@canonry/canonry 4.166.0 → 4.167.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/README.md +31 -19
  2. package/assets/assets/{AuditHistoryPanel-CZByTZjH.js → AuditHistoryPanel-Dvz6QFtW.js} +1 -1
  3. package/assets/assets/{BacklinksPage-DPsSKu1M.js → BacklinksPage-BHOtOIr5.js} +1 -1
  4. package/assets/assets/{HistoryPage-9acsanzg.js → HistoryPage-Bc5Nx6dX.js} +1 -1
  5. package/assets/assets/{MeasurementPropertyPage-gIOHHJ4x.js → MeasurementPropertyPage-D4FIFiWv.js} +1 -1
  6. package/assets/assets/{ProjectPage-CTic0OFR.js → ProjectPage-CT5ZD7_A.js} +1 -1
  7. package/assets/assets/{RunRow-cuE1cBCg.js → RunRow-CB2oG45_.js} +1 -1
  8. package/assets/assets/{RunsPage-Bt6T2Kz2.js → RunsPage-OLbocIOY.js} +1 -1
  9. package/assets/assets/{SettingsPage-ChyewFuC.js → SettingsPage-DVdPBrap.js} +1 -1
  10. package/assets/assets/{SiteHealthSection-BYM32RDv.js → SiteHealthSection-B1bjMCqY.js} +3 -3
  11. package/assets/assets/{TrafficPage-DMpuFJua.js → TrafficPage-BUWXjHhw.js} +1 -1
  12. package/assets/assets/{TrafficSourceDetailPage-D4G26uyv.js → TrafficSourceDetailPage-DwoFzTu7.js} +1 -1
  13. package/assets/assets/{extract-error-message-D7fD7zwP.js → extract-error-message-CNH2-nPH.js} +1 -1
  14. package/assets/assets/{index-BliSumN-.js → index-DdXb59Rg.js} +3 -3
  15. package/assets/assets/{react-sigma_core.esm.min-CmW2JaYh.js → react-sigma_core.esm.min-DLRh4X_G.js} +1 -1
  16. package/assets/index.html +1 -1
  17. package/dist/{chunk-KU45I42F.js → chunk-7M3QVRJD.js} +80 -4
  18. package/dist/{chunk-IUWFALUQ.js → chunk-NFG2BPQP.js} +25 -6
  19. package/dist/{chunk-QFMHIUV7.js → chunk-P5LR3NDQ.js} +1 -1
  20. package/dist/{chunk-GU7T2JUB.js → chunk-TP4KXU3E.js} +4 -2
  21. package/dist/cli.js +11 -5
  22. package/dist/index.js +4 -4
  23. package/dist/{intelligence-service-KRQNQNEB.js → intelligence-service-ULDOVV5Y.js} +2 -2
  24. package/dist/mcp.js +2 -2
  25. package/package.json +8 -8
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./SiteHealthSection-BYM32RDv.js","./vendor-tanstack-Dock0eH1.js","./vendor-lucide-nYKv-BB7.js","./ChartPrimitives-BoYe2M-i.js","./vendor-recharts-D8rt5lKn.js","./ProjectPage-CTic0OFR.js","./RunRow-cuE1cBCg.js","./extract-error-message-D7fD7zwP.js","./AuditHistoryPanel-CZByTZjH.js","./v2-overview-adapter-COMP5UGt.js","./vendor-radix-4UOaVWza.js","./vendor-markdown-Bn7fRwrx.js","./vendor-yaml-GWJz5H2G.js","./RunsPage-Bt6T2Kz2.js","./HistoryPage-9acsanzg.js","./SettingsPage-ChyewFuC.js","./BacklinksPage-DPsSKu1M.js","./TrafficPage-DMpuFJua.js","./TrafficSourceDetailPage-D4G26uyv.js","./MeasurementPropertyPage-gIOHHJ4x.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./SiteHealthSection-B1bjMCqY.js","./vendor-tanstack-Dock0eH1.js","./vendor-lucide-nYKv-BB7.js","./ChartPrimitives-BoYe2M-i.js","./vendor-recharts-D8rt5lKn.js","./ProjectPage-CT5ZD7_A.js","./RunRow-CB2oG45_.js","./extract-error-message-CNH2-nPH.js","./AuditHistoryPanel-Dvz6QFtW.js","./v2-overview-adapter-COMP5UGt.js","./vendor-radix-4UOaVWza.js","./vendor-markdown-Bn7fRwrx.js","./vendor-yaml-GWJz5H2G.js","./RunsPage-OLbocIOY.js","./HistoryPage-Bc5Nx6dX.js","./SettingsPage-DVdPBrap.js","./BacklinksPage-BHOtOIr5.js","./TrafficPage-BUWXjHhw.js","./TrafficSourceDetailPage-DwoFzTu7.js","./MeasurementPropertyPage-D4FIFiWv.js"])))=>i.map(i=>d[i]);
2
2
  import{c as Ww,d as eS,r as z,j as c,Q as tS,M as aS,q as ye,e as Jc,L as Je,a as nS,t as io,u as Kt,f as iS,h as cs,k as Yb,l as sS,m as Xb,O as cp,n as Mn,o as us,p as oS,s as kt,v as Jb,x as Si,y as rS,z as lS,A as cS}from"./vendor-tanstack-Dock0eH1.js";import{S as uS,O as Pp,P as Wb,C as Ip,a as ev,T as Up,D as tv,R as av}from"./vendor-radix-4UOaVWza.js";import{c as nv}from"./vendor-recharts-D8rt5lKn.js";import{A as dS,X as No,S as mS,L as fo,C as Lp,R as $g,a as iv,M as pS,b as hS,c as fS,d as Vp,T as sv,W as gS,e as $p,f as ov,g as yS,G as bS,P as vS,H as xS,h as kS,i as wS,j as SS,k as jS,l as AS,B as NS,F as CS,m as _S,n as zS,o as ES,p as Hg,E as DS}from"./vendor-lucide-nYKv-BB7.js";import{M as TS}from"./vendor-markdown-Bn7fRwrx.js";import{p as RS}from"./vendor-yaml-GWJz5H2G.js";(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))r(u);new MutationObserver(u=>{for(const f of u)if(f.type==="childList")for(const g of f.addedNodes)g.tagName==="LINK"&&g.rel==="modulepreload"&&r(g)}).observe(document,{childList:!0,subtree:!0});function s(u){const f={};return u.integrity&&(f.integrity=u.integrity),u.referrerPolicy&&(f.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?f.credentials="include":u.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function r(u){if(u.ep)return;u.ep=!0;const f=s(u);fetch(u.href,f)}})();var Mm={exports:{}},_r={},Pm={exports:{}},Im={};var Gg;function OS(){return Gg||(Gg=1,(function(e){function n(I,ne){var he=I.length;I.push(ne);e:for(;0<he;){var Ee=he-1>>>1,le=I[Ee];if(0<u(le,ne))I[Ee]=ne,I[he]=le,he=Ee;else break e}}function s(I){return I.length===0?null:I[0]}function r(I){if(I.length===0)return null;var ne=I[0],he=I.pop();if(he!==ne){I[0]=he;e:for(var Ee=0,le=I.length,et=le>>>1;Ee<et;){var G=2*(Ee+1)-1,ce=I[G],ie=G+1,re=I[ie];if(0>u(ce,he))ie<le&&0>u(re,ce)?(I[Ee]=re,I[ie]=he,Ee=ie):(I[Ee]=ce,I[G]=he,Ee=G);else if(ie<le&&0>u(re,he))I[Ee]=re,I[ie]=he,Ee=ie;else break e}}return ne}function u(I,ne){var he=I.sortIndex-ne.sortIndex;return he!==0?he:I.id-ne.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var f=performance;e.unstable_now=function(){return f.now()}}else{var g=Date,b=g.now();e.unstable_now=function(){return g.now()-b}}var x=[],k=[],S=1,A=null,j=3,D=!1,R=!1,q=!1,L=!1,V=typeof setTimeout=="function"?setTimeout:null,te=typeof clearTimeout=="function"?clearTimeout:null,X=typeof setImmediate<"u"?setImmediate:null;function ae(I){for(var ne=s(k);ne!==null;){if(ne.callback===null)r(k);else if(ne.startTime<=I)r(k),ne.sortIndex=ne.expirationTime,n(x,ne);else break;ne=s(k)}}function oe(I){if(q=!1,ae(I),!R)if(s(x)!==null)R=!0,fe||(fe=!0,Re());else{var ne=s(k);ne!==null&&ge(oe,ne.startTime-I)}}var fe=!1,M=-1,J=5,_e=-1;function me(){return L?!0:!(e.unstable_now()-_e<J)}function we(){if(L=!1,fe){var I=e.unstable_now();_e=I;var ne=!0;try{e:{R=!1,q&&(q=!1,te(M),M=-1),D=!0;var he=j;try{t:{for(ae(I),A=s(x);A!==null&&!(A.expirationTime>I&&me());){var Ee=A.callback;if(typeof Ee=="function"){A.callback=null,j=A.priorityLevel;var le=Ee(A.expirationTime<=I);if(I=e.unstable_now(),typeof le=="function"){A.callback=le,ae(I),ne=!0;break t}A===s(x)&&r(x),ae(I)}else r(x);A=s(x)}if(A!==null)ne=!0;else{var et=s(k);et!==null&&ge(oe,et.startTime-I),ne=!1}}break e}finally{A=null,j=he,D=!1}ne=void 0}}finally{ne?Re():fe=!1}}}var Re;if(typeof X=="function")Re=function(){X(we)};else if(typeof MessageChannel<"u"){var je=new MessageChannel,Qe=je.port2;je.port1.onmessage=we,Re=function(){Qe.postMessage(null)}}else Re=function(){V(we,0)};function ge(I,ne){M=V(function(){I(e.unstable_now())},ne)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(I){I.callback=null},e.unstable_forceFrameRate=function(I){0>I||125<I?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):J=0<I?Math.floor(1e3/I):5},e.unstable_getCurrentPriorityLevel=function(){return j},e.unstable_next=function(I){switch(j){case 1:case 2:case 3:var ne=3;break;default:ne=j}var he=j;j=ne;try{return I()}finally{j=he}},e.unstable_requestPaint=function(){L=!0},e.unstable_runWithPriority=function(I,ne){switch(I){case 1:case 2:case 3:case 4:case 5:break;default:I=3}var he=j;j=I;try{return ne()}finally{j=he}},e.unstable_scheduleCallback=function(I,ne,he){var Ee=e.unstable_now();switch(typeof he=="object"&&he!==null?(he=he.delay,he=typeof he=="number"&&0<he?Ee+he:Ee):he=Ee,I){case 1:var le=-1;break;case 2:le=250;break;case 5:le=1073741823;break;case 4:le=1e4;break;default:le=5e3}return le=he+le,I={id:S++,callback:ne,priorityLevel:I,startTime:he,expirationTime:le,sortIndex:-1},he>Ee?(I.sortIndex=he,n(k,I),s(x)===null&&I===s(k)&&(q?(te(M),M=-1):q=!0,ge(oe,he-Ee))):(I.sortIndex=le,n(x,I),R||D||(R=!0,fe||(fe=!0,Re()))),I},e.unstable_shouldYield=me,e.unstable_wrapCallback=function(I){var ne=j;return function(){var he=j;j=ne;try{return I.apply(this,arguments)}finally{j=he}}}})(Im)),Im}var Kg;function qS(){return Kg||(Kg=1,Pm.exports=OS()),Pm.exports}var Qg;function BS(){if(Qg)return _r;Qg=1;var e=qS(),n=Ww(),s=eS();function r(t){var a="https://react.dev/errors/"+t;if(1<arguments.length){a+="?args[]="+encodeURIComponent(arguments[1]);for(var i=2;i<arguments.length;i++)a+="&args[]="+encodeURIComponent(arguments[i])}return"Minified React error #"+t+"; visit "+a+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function u(t){return!(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)}function f(t){var a=t,i=t;if(t.alternate)for(;a.return;)a=a.return;else{t=a;do a=t,(a.flags&4098)!==0&&(i=a.return),t=a.return;while(t)}return a.tag===3?i:null}function g(t){if(t.tag===13){var a=t.memoizedState;if(a===null&&(t=t.alternate,t!==null&&(a=t.memoizedState)),a!==null)return a.dehydrated}return null}function b(t){if(t.tag===31){var a=t.memoizedState;if(a===null&&(t=t.alternate,t!==null&&(a=t.memoizedState)),a!==null)return a.dehydrated}return null}function x(t){if(f(t)!==t)throw Error(r(188))}function k(t){var a=t.alternate;if(!a){if(a=f(t),a===null)throw Error(r(188));return a!==t?null:t}for(var i=t,l=a;;){var d=i.return;if(d===null)break;var p=d.alternate;if(p===null){if(l=d.return,l!==null){i=l;continue}break}if(d.child===p.child){for(p=d.child;p;){if(p===i)return x(d),t;if(p===l)return x(d),a;p=p.sibling}throw Error(r(188))}if(i.return!==l.return)i=d,l=p;else{for(var v=!1,w=d.child;w;){if(w===i){v=!0,i=d,l=p;break}if(w===l){v=!0,l=d,i=p;break}w=w.sibling}if(!v){for(w=p.child;w;){if(w===i){v=!0,i=p,l=d;break}if(w===l){v=!0,l=p,i=d;break}w=w.sibling}if(!v)throw Error(r(189))}}if(i.alternate!==l)throw Error(r(190))}if(i.tag!==3)throw Error(r(188));return i.stateNode.current===i?t:a}function S(t){var a=t.tag;if(a===5||a===26||a===27||a===6)return t;for(t=t.child;t!==null;){if(a=S(t),a!==null)return a;t=t.sibling}return null}var A=Object.assign,j=Symbol.for("react.element"),D=Symbol.for("react.transitional.element"),R=Symbol.for("react.portal"),q=Symbol.for("react.fragment"),L=Symbol.for("react.strict_mode"),V=Symbol.for("react.profiler"),te=Symbol.for("react.consumer"),X=Symbol.for("react.context"),ae=Symbol.for("react.forward_ref"),oe=Symbol.for("react.suspense"),fe=Symbol.for("react.suspense_list"),M=Symbol.for("react.memo"),J=Symbol.for("react.lazy"),_e=Symbol.for("react.activity"),me=Symbol.for("react.memo_cache_sentinel"),we=Symbol.iterator;function Re(t){return t===null||typeof t!="object"?null:(t=we&&t[we]||t["@@iterator"],typeof t=="function"?t:null)}var je=Symbol.for("react.client.reference");function Qe(t){if(t==null)return null;if(typeof t=="function")return t.$$typeof===je?null:t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case q:return"Fragment";case V:return"Profiler";case L:return"StrictMode";case oe:return"Suspense";case fe:return"SuspenseList";case _e:return"Activity"}if(typeof t=="object")switch(t.$$typeof){case R:return"Portal";case X:return t.displayName||"Context";case te:return(t._context.displayName||"Context")+".Consumer";case ae:var a=t.render;return t=t.displayName,t||(t=a.displayName||a.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case M:return a=t.displayName||null,a!==null?a:Qe(t.type)||"Memo";case J:a=t._payload,t=t._init;try{return Qe(t(a))}catch{}}return null}var ge=Array.isArray,I=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ne=s.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,he={pending:!1,data:null,method:null,action:null},Ee=[],le=-1;function et(t){return{current:t}}function G(t){0>le||(t.current=Ee[le],Ee[le]=null,le--)}function ce(t,a){le++,Ee[le]=t.current,t.current=a}var ie=et(null),re=et(null),W=et(null),Z=et(null);function Ce(t,a){switch(ce(W,a),ce(re,t),ce(ie,null),a.nodeType){case 9:case 11:t=(t=a.documentElement)&&(t=t.namespaceURI)?mg(t):0;break;default:if(t=a.tagName,a=a.namespaceURI)a=mg(a),t=pg(a,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}G(ie),ce(ie,t)}function Ae(){G(ie),G(re),G(W)}function Le(t){t.memoizedState!==null&&ce(Z,t);var a=ie.current,i=pg(a,t.type);a!==i&&(ce(re,t),ce(ie,i))}function Ze(t){re.current===t&&(G(ie),G(re)),Z.current===t&&(G(Z),jr._currentValue=he)}var Lt,Ia;function zt(t){if(Lt===void 0)try{throw Error()}catch(i){var a=i.stack.trim().match(/\n( *(at )?)/);Lt=a&&a[1]||"",Ia=-1<i.stack.indexOf(`
3
3
  at`)?" (<anonymous>)":-1<i.stack.indexOf("@")?"@unknown:0:0":""}return`
4
4
  `+Lt+t+Ia}var Un=!1;function Ei(t,a){if(!t||Un)return"";Un=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var l={DetermineComponentFrameRoot:function(){try{if(a){var ee=function(){throw Error()};if(Object.defineProperty(ee.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(ee,[])}catch(H){var U=H}Reflect.construct(t,[],ee)}else{try{ee.call()}catch(H){U=H}t.call(ee.prototype)}}else{try{throw Error()}catch(H){U=H}(ee=t())&&typeof ee.catch=="function"&&ee.catch(function(){})}}catch(H){if(H&&U&&typeof H.stack=="string")return[H.stack,U.stack]}return[null,null]}};l.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var d=Object.getOwnPropertyDescriptor(l.DetermineComponentFrameRoot,"name");d&&d.configurable&&Object.defineProperty(l.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var p=l.DetermineComponentFrameRoot(),v=p[0],w=p[1];if(v&&w){var C=v.split(`
@@ -49,7 +49,7 @@ Error generating stack: `+l.message+`
49
49
 
50
50
  `)}D.write("payload.value = newResult;"),D.write("return payload;");const te=D.compile();return(X,ae)=>te(j,X,ae)};let f;const g=Vr,b=!qv.jitless,k=b&&z6.value,S=n.catchall;let A;e._zod.parse=(j,D)=>{A??(A=r.value);const R=j.value;return g(R)?b&&k&&D?.async===!1&&D.jitless!==!0?(f||(f=u(n.shape)),j=f(j,D),S?Jv([],R,j,D,A,e):j):s(j,D):(j.issues.push({expected:"object",code:"invalid_type",input:R,inst:e}),j)}});function ly(e,n,s,r){for(const f of e)if(f.issues.length===0)return n.value=f.value,n;const u=e.filter(f=>!lo(f));return u.length===1?(n.value=u[0].value,u[0]):(n.issues.push({code:"invalid_union",input:n.value,inst:s,errors:e.map(f=>f.issues.map(g=>ki(g,r,xi())))}),n)}const Wv=Q("$ZodUnion",(e,n)=>{bt.init(e,n),at(e._zod,"optin",()=>n.options.some(u=>u._zod.optin==="optional")?"optional":void 0),at(e._zod,"optout",()=>n.options.some(u=>u._zod.optout==="optional")?"optional":void 0),at(e._zod,"values",()=>{if(n.options.every(u=>u._zod.values))return new Set(n.options.flatMap(u=>Array.from(u._zod.values)))}),at(e._zod,"pattern",()=>{if(n.options.every(u=>u._zod.pattern)){const u=n.options.map(f=>f._zod.pattern);return new RegExp(`^(${u.map(f=>Yp(f.source)).join("|")})$`)}});const s=n.options.length===1,r=n.options[0]._zod.run;e._zod.parse=(u,f)=>{if(s)return r(u,f);let g=!1;const b=[];for(const x of n.options){const k=x._zod.run({value:u.value,issues:[]},f);if(k instanceof Promise)b.push(k),g=!0;else{if(k.issues.length===0)return k;b.push(k)}}return g?Promise.all(b).then(x=>ly(x,u,e,f)):ly(b,u,e,f)}}),yN=Q("$ZodDiscriminatedUnion",(e,n)=>{n.inclusive=!1,Wv.init(e,n);const s=e._zod.parse;at(e._zod,"propValues",()=>{const u={};for(const f of n.options){const g=f._zod.propValues;if(!g||Object.keys(g).length===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(f)}"`);for(const[b,x]of Object.entries(g)){u[b]||(u[b]=new Set);for(const k of x)u[b].add(k)}}return u});const r=eu(()=>{const u=n.options,f=new Map;for(const g of u){const b=g._zod.propValues?.[n.discriminator];if(!b||b.size===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(g)}"`);for(const x of b){if(f.has(x))throw new Error(`Duplicate discriminator value "${String(x)}"`);f.set(x,g)}}return f});e._zod.parse=(u,f)=>{const g=u.value;if(!Vr(g))return u.issues.push({code:"invalid_type",expected:"object",input:g,inst:e}),u;const b=r.value.get(g?.[n.discriminator]);return b?b._zod.run(u,f):n.unionFallback?s(u,f):(u.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:n.discriminator,input:g,path:[n.discriminator],inst:e}),u)}}),bN=Q("$ZodIntersection",(e,n)=>{bt.init(e,n),e._zod.parse=(s,r)=>{const u=s.value,f=n.left._zod.run({value:u,issues:[]},r),g=n.right._zod.run({value:u,issues:[]},r);return f instanceof Promise||g instanceof Promise?Promise.all([f,g]).then(([x,k])=>cy(s,x,k)):cy(s,f,g)}});function gp(e,n){if(e===n)return{valid:!0,data:e};if(e instanceof Date&&n instanceof Date&&+e==+n)return{valid:!0,data:e};if(yo(e)&&yo(n)){const s=Object.keys(n),r=Object.keys(e).filter(f=>s.indexOf(f)!==-1),u={...e,...n};for(const f of r){const g=gp(e[f],n[f]);if(!g.valid)return{valid:!1,mergeErrorPath:[f,...g.mergeErrorPath]};u[f]=g.data}return{valid:!0,data:u}}if(Array.isArray(e)&&Array.isArray(n)){if(e.length!==n.length)return{valid:!1,mergeErrorPath:[]};const s=[];for(let r=0;r<e.length;r++){const u=e[r],f=n[r],g=gp(u,f);if(!g.valid)return{valid:!1,mergeErrorPath:[r,...g.mergeErrorPath]};s.push(g.data)}return{valid:!0,data:s}}return{valid:!1,mergeErrorPath:[]}}function cy(e,n,s){const r=new Map;let u;for(const b of n.issues)if(b.code==="unrecognized_keys"){u??(u=b);for(const x of b.keys)r.has(x)||r.set(x,{}),r.get(x).l=!0}else e.issues.push(b);for(const b of s.issues)if(b.code==="unrecognized_keys")for(const x of b.keys)r.has(x)||r.set(x,{}),r.get(x).r=!0;else e.issues.push(b);const f=[...r].filter(([,b])=>b.l&&b.r).map(([b])=>b);if(f.length&&u&&e.issues.push({...u,keys:f}),lo(e))return e;const g=gp(n.value,s.value);if(!g.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(g.mergeErrorPath)}`);return e.value=g.data,e}const vN=Q("$ZodRecord",(e,n)=>{bt.init(e,n),e._zod.parse=(s,r)=>{const u=s.value;if(!yo(u))return s.issues.push({expected:"record",code:"invalid_type",input:u,inst:e}),s;const f=[],g=n.keyType._zod.values;if(g){s.value={};const b=new Set;for(const k of g)if(typeof k=="string"||typeof k=="number"||typeof k=="symbol"){b.add(typeof k=="number"?k.toString():k);const S=n.valueType._zod.run({value:u[k],issues:[]},r);S instanceof Promise?f.push(S.then(A=>{A.issues.length&&s.issues.push(...co(k,A.issues)),s.value[k]=A.value})):(S.issues.length&&s.issues.push(...co(k,S.issues)),s.value[k]=S.value)}let x;for(const k in u)b.has(k)||(x=x??[],x.push(k));x&&x.length>0&&s.issues.push({code:"unrecognized_keys",input:u,inst:e,keys:x})}else{s.value={};for(const b of Reflect.ownKeys(u)){if(b==="__proto__")continue;let x=n.keyType._zod.run({value:b,issues:[]},r);if(x instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof b=="string"&&Gv.test(b)&&x.issues.length){const A=n.keyType._zod.run({value:Number(b),issues:[]},r);if(A instanceof Promise)throw new Error("Async schemas not supported in object keys currently");A.issues.length===0&&(x=A)}if(x.issues.length){n.mode==="loose"?s.value[b]=u[b]:s.issues.push({code:"invalid_key",origin:"record",issues:x.issues.map(A=>ki(A,r,xi())),input:b,path:[b],inst:e});continue}const S=n.valueType._zod.run({value:u[b],issues:[]},r);S instanceof Promise?f.push(S.then(A=>{A.issues.length&&s.issues.push(...co(b,A.issues)),s.value[x.value]=A.value})):(S.issues.length&&s.issues.push(...co(b,S.issues)),s.value[x.value]=S.value)}}return f.length?Promise.all(f).then(()=>s):s}}),xN=Q("$ZodEnum",(e,n)=>{bt.init(e,n);const s=Bv(n.entries),r=new Set(s);e._zod.values=r,e._zod.pattern=new RegExp(`^(${s.filter(u=>E6.has(typeof u)).map(u=>typeof u=="string"?bo(u):u.toString()).join("|")})$`),e._zod.parse=(u,f)=>{const g=u.value;return r.has(g)||u.issues.push({code:"invalid_value",values:s,input:g,inst:e}),u}}),kN=Q("$ZodLiteral",(e,n)=>{if(bt.init(e,n),n.values.length===0)throw new Error("Cannot create literal schema with no valid values");const s=new Set(n.values);e._zod.values=s,e._zod.pattern=new RegExp(`^(${n.values.map(r=>typeof r=="string"?bo(r):r?bo(r.toString()):String(r)).join("|")})$`),e._zod.parse=(r,u)=>{const f=r.value;return s.has(f)||r.issues.push({code:"invalid_value",values:n.values,input:f,inst:e}),r}}),wN=Q("$ZodTransform",(e,n)=>{bt.init(e,n),e._zod.parse=(s,r)=>{if(r.direction==="backward")throw new Ov(e.constructor.name);const u=n.transform(s.value,s);if(r.async)return(u instanceof Promise?u:Promise.resolve(u)).then(g=>(s.value=g,s));if(u instanceof Promise)throw new mo;return s.value=u,s}});function uy(e,n){return e.issues.length&&n===void 0?{issues:[],value:void 0}:e}const ex=Q("$ZodOptional",(e,n)=>{bt.init(e,n),e._zod.optin="optional",e._zod.optout="optional",at(e._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,void 0]):void 0),at(e._zod,"pattern",()=>{const s=n.innerType._zod.pattern;return s?new RegExp(`^(${Yp(s.source)})?$`):void 0}),e._zod.parse=(s,r)=>{if(n.innerType._zod.optin==="optional"){const u=n.innerType._zod.run(s,r);return u instanceof Promise?u.then(f=>uy(f,s.value)):uy(u,s.value)}return s.value===void 0?s:n.innerType._zod.run(s,r)}}),SN=Q("$ZodExactOptional",(e,n)=>{ex.init(e,n),at(e._zod,"values",()=>n.innerType._zod.values),at(e._zod,"pattern",()=>n.innerType._zod.pattern),e._zod.parse=(s,r)=>n.innerType._zod.run(s,r)}),jN=Q("$ZodNullable",(e,n)=>{bt.init(e,n),at(e._zod,"optin",()=>n.innerType._zod.optin),at(e._zod,"optout",()=>n.innerType._zod.optout),at(e._zod,"pattern",()=>{const s=n.innerType._zod.pattern;return s?new RegExp(`^(${Yp(s.source)}|null)$`):void 0}),at(e._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,null]):void 0),e._zod.parse=(s,r)=>s.value===null?s:n.innerType._zod.run(s,r)}),AN=Q("$ZodDefault",(e,n)=>{bt.init(e,n),e._zod.optin="optional",at(e._zod,"values",()=>n.innerType._zod.values),e._zod.parse=(s,r)=>{if(r.direction==="backward")return n.innerType._zod.run(s,r);if(s.value===void 0)return s.value=n.defaultValue,s;const u=n.innerType._zod.run(s,r);return u instanceof Promise?u.then(f=>dy(f,n)):dy(u,n)}});function dy(e,n){return e.value===void 0&&(e.value=n.defaultValue),e}const NN=Q("$ZodPrefault",(e,n)=>{bt.init(e,n),e._zod.optin="optional",at(e._zod,"values",()=>n.innerType._zod.values),e._zod.parse=(s,r)=>(r.direction==="backward"||s.value===void 0&&(s.value=n.defaultValue),n.innerType._zod.run(s,r))}),CN=Q("$ZodNonOptional",(e,n)=>{bt.init(e,n),at(e._zod,"values",()=>{const s=n.innerType._zod.values;return s?new Set([...s].filter(r=>r!==void 0)):void 0}),e._zod.parse=(s,r)=>{const u=n.innerType._zod.run(s,r);return u instanceof Promise?u.then(f=>my(f,e)):my(u,e)}});function my(e,n){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:n}),e}const _N=Q("$ZodCatch",(e,n)=>{bt.init(e,n),at(e._zod,"optin",()=>n.innerType._zod.optin),at(e._zod,"optout",()=>n.innerType._zod.optout),at(e._zod,"values",()=>n.innerType._zod.values),e._zod.parse=(s,r)=>{if(r.direction==="backward")return n.innerType._zod.run(s,r);const u=n.innerType._zod.run(s,r);return u instanceof Promise?u.then(f=>(s.value=f.value,f.issues.length&&(s.value=n.catchValue({...s,error:{issues:f.issues.map(g=>ki(g,r,xi()))},input:s.value}),s.issues=[]),s)):(s.value=u.value,u.issues.length&&(s.value=n.catchValue({...s,error:{issues:u.issues.map(f=>ki(f,r,xi()))},input:s.value}),s.issues=[]),s)}}),zN=Q("$ZodPipe",(e,n)=>{bt.init(e,n),at(e._zod,"values",()=>n.in._zod.values),at(e._zod,"optin",()=>n.in._zod.optin),at(e._zod,"optout",()=>n.out._zod.optout),at(e._zod,"propValues",()=>n.in._zod.propValues),e._zod.parse=(s,r)=>{if(r.direction==="backward"){const f=n.out._zod.run(s,r);return f instanceof Promise?f.then(g=>Sc(g,n.in,r)):Sc(f,n.in,r)}const u=n.in._zod.run(s,r);return u instanceof Promise?u.then(f=>Sc(f,n.out,r)):Sc(u,n.out,r)}});function Sc(e,n,s){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:e.value,issues:e.issues},s)}const EN=Q("$ZodReadonly",(e,n)=>{bt.init(e,n),at(e._zod,"propValues",()=>n.innerType._zod.propValues),at(e._zod,"values",()=>n.innerType._zod.values),at(e._zod,"optin",()=>n.innerType?._zod?.optin),at(e._zod,"optout",()=>n.innerType?._zod?.optout),e._zod.parse=(s,r)=>{if(r.direction==="backward")return n.innerType._zod.run(s,r);const u=n.innerType._zod.run(s,r);return u instanceof Promise?u.then(py):py(u)}});function py(e){return e.value=Object.freeze(e.value),e}const DN=Q("$ZodCustom",(e,n)=>{ha.init(e,n),bt.init(e,n),e._zod.parse=(s,r)=>s,e._zod.check=s=>{const r=s.value,u=n.fn(r);if(u instanceof Promise)return u.then(f=>hy(f,s,r,e));hy(u,s,r,e)}});function hy(e,n,s,r){if(!e){const u={code:"custom",input:s,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(u.params=r._zod.def.params),n.issues.push($r(u))}}var fy;class TN{constructor(){this._map=new WeakMap,this._idmap=new Map}add(n,...s){const r=s[0];return this._map.set(n,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,n),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(n){const s=this._map.get(n);return s&&typeof s=="object"&&"id"in s&&this._idmap.delete(s.id),this._map.delete(n),this}get(n){const s=n._zod.parent;if(s){const r={...this.get(s)??{}};delete r.id;const u={...r,...this._map.get(n)};return Object.keys(u).length?u:void 0}return this._map.get(n)}has(n){return this._map.has(n)}}function RN(){return new TN}(fy=globalThis).__zod_globalRegistry??(fy.__zod_globalRegistry=RN());const Br=globalThis.__zod_globalRegistry;function ON(e,n){return new e({type:"string",...ze(n)})}function qN(e,n){return new e({type:"string",format:"email",check:"string_format",abort:!1,...ze(n)})}function gy(e,n){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...ze(n)})}function BN(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...ze(n)})}function MN(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...ze(n)})}function PN(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...ze(n)})}function IN(e,n){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...ze(n)})}function UN(e,n){return new e({type:"string",format:"url",check:"string_format",abort:!1,...ze(n)})}function LN(e,n){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...ze(n)})}function VN(e,n){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...ze(n)})}function $N(e,n){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...ze(n)})}function HN(e,n){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...ze(n)})}function GN(e,n){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...ze(n)})}function KN(e,n){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...ze(n)})}function QN(e,n){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...ze(n)})}function ZN(e,n){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...ze(n)})}function FN(e,n){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...ze(n)})}function YN(e,n){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...ze(n)})}function XN(e,n){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...ze(n)})}function JN(e,n){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...ze(n)})}function WN(e,n){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...ze(n)})}function e8(e,n){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...ze(n)})}function t8(e,n){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...ze(n)})}function a8(e,n){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...ze(n)})}function n8(e,n){return new e({type:"string",format:"date",check:"string_format",...ze(n)})}function i8(e,n){return new e({type:"string",format:"time",check:"string_format",precision:null,...ze(n)})}function s8(e,n){return new e({type:"string",format:"duration",check:"string_format",...ze(n)})}function o8(e,n){return new e({type:"number",checks:[],...ze(n)})}function r8(e,n){return new e({type:"number",coerce:!0,checks:[],...ze(n)})}function l8(e,n){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...ze(n)})}function c8(e,n){return new e({type:"boolean",...ze(n)})}function u8(e,n){return new e({type:"null",...ze(n)})}function d8(e){return new e({type:"unknown"})}function m8(e,n){return new e({type:"never",...ze(n)})}function yy(e,n){return new Qv({check:"less_than",...ze(n),value:e,inclusive:!1})}function Vm(e,n){return new Qv({check:"less_than",...ze(n),value:e,inclusive:!0})}function by(e,n){return new Zv({check:"greater_than",...ze(n),value:e,inclusive:!1})}function $m(e,n){return new Zv({check:"greater_than",...ze(n),value:e,inclusive:!0})}function vy(e,n){return new jA({check:"multiple_of",...ze(n),value:e})}function tx(e,n){return new NA({check:"max_length",...ze(n),maximum:e})}function Ic(e,n){return new CA({check:"min_length",...ze(n),minimum:e})}function ax(e,n){return new _A({check:"length_equals",...ze(n),length:e})}function p8(e,n){return new zA({check:"string_format",format:"regex",...ze(n),pattern:e})}function h8(e){return new EA({check:"string_format",format:"lowercase",...ze(e)})}function f8(e){return new DA({check:"string_format",format:"uppercase",...ze(e)})}function g8(e,n){return new TA({check:"string_format",format:"includes",...ze(n),includes:e})}function y8(e,n){return new RA({check:"string_format",format:"starts_with",...ze(n),prefix:e})}function b8(e,n){return new OA({check:"string_format",format:"ends_with",...ze(n),suffix:e})}function _o(e){return new qA({check:"overwrite",tx:e})}function v8(e){return _o(n=>n.normalize(e))}function x8(){return _o(e=>e.trim())}function k8(){return _o(e=>e.toLowerCase())}function w8(){return _o(e=>e.toUpperCase())}function S8(){return _o(e=>_6(e))}function j8(e,n,s){return new e({type:"array",element:n,...ze(s)})}function A8(e,n,s){return new e({type:"custom",check:"custom",fn:n,...ze(s)})}function N8(e){const n=C8(s=>(s.addIssue=r=>{if(typeof r=="string")s.issues.push($r(r,s.value,n._zod.def));else{const u=r;u.fatal&&(u.continue=!1),u.code??(u.code="custom"),u.input??(u.input=s.value),u.inst??(u.inst=n),u.continue??(u.continue=!n._zod.def.abort),s.issues.push($r(u))}},e(s.value,s)));return n}function C8(e,n){const s=new ha({check:"custom",...ze(n)});return s._zod.check=e,s}function nx(e){let n=e?.target??"draft-2020-12";return n==="draft-4"&&(n="draft-04"),n==="draft-7"&&(n="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??Br,target:n,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function Ot(e,n,s={path:[],schemaPath:[]}){var r;const u=e._zod.def,f=n.seen.get(e);if(f)return f.count++,s.schemaPath.includes(e)&&(f.cycle=s.path),f.schema;const g={schema:{},count:1,cycle:void 0,path:s.path};n.seen.set(e,g);const b=e._zod.toJSONSchema?.();if(b)g.schema=b;else{const S={...s,schemaPath:[...s.schemaPath,e],path:s.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(n,g.schema,S);else{const j=g.schema,D=n.processors[u.type];if(!D)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${u.type}`);D(e,n,j,S)}const A=e._zod.parent;A&&(g.ref||(g.ref=A),Ot(A,n,S),n.seen.get(A).isParent=!0)}const x=n.metadataRegistry.get(e);return x&&Object.assign(g.schema,x),n.io==="input"&&ta(e)&&(delete g.schema.examples,delete g.schema.default),n.io==="input"&&g.schema._prefault&&((r=g.schema).default??(r.default=g.schema._prefault)),delete g.schema._prefault,n.seen.get(e).schema}function ix(e,n){const s=e.seen.get(n);if(!s)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=new Map;for(const g of e.seen.entries()){const b=e.metadataRegistry.get(g[0])?.id;if(b){const x=r.get(b);if(x&&x!==g[0])throw new Error(`Duplicate schema id "${b}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(b,g[0])}}const u=g=>{const b=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const A=e.external.registry.get(g[0])?.id,j=e.external.uri??(R=>R);if(A)return{ref:j(A)};const D=g[1].defId??g[1].schema.id??`schema${e.counter++}`;return g[1].defId=D,{defId:D,ref:`${j("__shared")}#/${b}/${D}`}}if(g[1]===s)return{ref:"#"};const k=`#/${b}/`,S=g[1].schema.id??`__schema${e.counter++}`;return{defId:S,ref:k+S}},f=g=>{if(g[1].schema.$ref)return;const b=g[1],{ref:x,defId:k}=u(g);b.def={...b.schema},k&&(b.defId=k);const S=b.schema;for(const A in S)delete S[A];S.$ref=x};if(e.cycles==="throw")for(const g of e.seen.entries()){const b=g[1];if(b.cycle)throw new Error(`Cycle detected: #/${b.cycle?.join("/")}/<root>
51
51
 
52
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const g of e.seen.entries()){const b=g[1];if(n===g[0]){f(g);continue}if(e.external){const k=e.external.registry.get(g[0])?.id;if(n!==g[0]&&k){f(g);continue}}if(e.metadataRegistry.get(g[0])?.id){f(g);continue}if(b.cycle){f(g);continue}if(b.count>1&&e.reused==="ref"){f(g);continue}}}function sx(e,n){const s=e.seen.get(n);if(!s)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=g=>{const b=e.seen.get(g);if(b.ref===null)return;const x=b.def??b.schema,k={...x},S=b.ref;if(b.ref=null,S){r(S);const j=e.seen.get(S),D=j.schema;if(D.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(x.allOf=x.allOf??[],x.allOf.push(D)):Object.assign(x,D),Object.assign(x,k),g._zod.parent===S)for(const q in x)q==="$ref"||q==="allOf"||q in k||delete x[q];if(D.$ref&&j.def)for(const q in x)q==="$ref"||q==="allOf"||q in j.def&&JSON.stringify(x[q])===JSON.stringify(j.def[q])&&delete x[q]}const A=g._zod.parent;if(A&&A!==S){r(A);const j=e.seen.get(A);if(j?.schema.$ref&&(x.$ref=j.schema.$ref,j.def))for(const D in x)D==="$ref"||D==="allOf"||D in j.def&&JSON.stringify(x[D])===JSON.stringify(j.def[D])&&delete x[D]}e.override({zodSchema:g,jsonSchema:x,path:b.path??[]})};for(const g of[...e.seen.entries()].reverse())r(g[0]);const u={};if(e.target==="draft-2020-12"?u.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?u.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?u.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const g=e.external.registry.get(n)?.id;if(!g)throw new Error("Schema is missing an `id` property");u.$id=e.external.uri(g)}Object.assign(u,s.def??s.schema);const f=e.external?.defs??{};for(const g of e.seen.entries()){const b=g[1];b.def&&b.defId&&(f[b.defId]=b.def)}e.external||Object.keys(f).length>0&&(e.target==="draft-2020-12"?u.$defs=f:u.definitions=f);try{const g=JSON.parse(JSON.stringify(u));return Object.defineProperty(g,"~standard",{value:{...n["~standard"],jsonSchema:{input:Uc(n,"input",e.processors),output:Uc(n,"output",e.processors)}},enumerable:!1,writable:!1}),g}catch{throw new Error("Error converting schema to JSON.")}}function ta(e,n){const s=n??{seen:new Set};if(s.seen.has(e))return!1;s.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return ta(r.element,s);if(r.type==="set")return ta(r.valueType,s);if(r.type==="lazy")return ta(r.getter(),s);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return ta(r.innerType,s);if(r.type==="intersection")return ta(r.left,s)||ta(r.right,s);if(r.type==="record"||r.type==="map")return ta(r.keyType,s)||ta(r.valueType,s);if(r.type==="pipe")return ta(r.in,s)||ta(r.out,s);if(r.type==="object"){for(const u in r.shape)if(ta(r.shape[u],s))return!0;return!1}if(r.type==="union"){for(const u of r.options)if(ta(u,s))return!0;return!1}if(r.type==="tuple"){for(const u of r.items)if(ta(u,s))return!0;return!!(r.rest&&ta(r.rest,s))}return!1}const _8=(e,n={})=>s=>{const r=nx({...s,processors:n});return Ot(e,r),ix(r,e),sx(r,e)},Uc=(e,n,s={})=>r=>{const{libraryOptions:u,target:f}=r??{},g=nx({...u??{},target:f,io:n,processors:s});return Ot(e,g),ix(g,e),sx(g,e)},z8={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},E8=(e,n,s,r)=>{const u=s;u.type="string";const{minimum:f,maximum:g,format:b,patterns:x,contentEncoding:k}=e._zod.bag;if(typeof f=="number"&&(u.minLength=f),typeof g=="number"&&(u.maxLength=g),b&&(u.format=z8[b]??b,u.format===""&&delete u.format,b==="time"&&delete u.format),k&&(u.contentEncoding=k),x&&x.size>0){const S=[...x];S.length===1?u.pattern=S[0].source:S.length>1&&(u.allOf=[...S.map(A=>({...n.target==="draft-07"||n.target==="draft-04"||n.target==="openapi-3.0"?{type:"string"}:{},pattern:A.source}))])}},D8=(e,n,s,r)=>{const u=s,{minimum:f,maximum:g,format:b,multipleOf:x,exclusiveMaximum:k,exclusiveMinimum:S}=e._zod.bag;typeof b=="string"&&b.includes("int")?u.type="integer":u.type="number",typeof S=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(u.minimum=S,u.exclusiveMinimum=!0):u.exclusiveMinimum=S),typeof f=="number"&&(u.minimum=f,typeof S=="number"&&n.target!=="draft-04"&&(S>=f?delete u.minimum:delete u.exclusiveMinimum)),typeof k=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(u.maximum=k,u.exclusiveMaximum=!0):u.exclusiveMaximum=k),typeof g=="number"&&(u.maximum=g,typeof k=="number"&&n.target!=="draft-04"&&(k<=g?delete u.maximum:delete u.exclusiveMaximum)),typeof x=="number"&&(u.multipleOf=x)},T8=(e,n,s,r)=>{s.type="boolean"},R8=(e,n,s,r)=>{n.target==="openapi-3.0"?(s.type="string",s.nullable=!0,s.enum=[null]):s.type="null"},O8=(e,n,s,r)=>{s.not={}},q8=(e,n,s,r)=>{},B8=(e,n,s,r)=>{const u=e._zod.def,f=Bv(u.entries);f.every(g=>typeof g=="number")&&(s.type="number"),f.every(g=>typeof g=="string")&&(s.type="string"),s.enum=f},M8=(e,n,s,r)=>{const u=e._zod.def,f=[];for(const g of u.values)if(g===void 0){if(n.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof g=="bigint"){if(n.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");f.push(Number(g))}else f.push(g);if(f.length!==0)if(f.length===1){const g=f[0];s.type=g===null?"null":typeof g,n.target==="draft-04"||n.target==="openapi-3.0"?s.enum=[g]:s.const=g}else f.every(g=>typeof g=="number")&&(s.type="number"),f.every(g=>typeof g=="string")&&(s.type="string"),f.every(g=>typeof g=="boolean")&&(s.type="boolean"),f.every(g=>g===null)&&(s.type="null"),s.enum=f},P8=(e,n,s,r)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},I8=(e,n,s,r)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},U8=(e,n,s,r)=>{const u=s,f=e._zod.def,{minimum:g,maximum:b}=e._zod.bag;typeof g=="number"&&(u.minItems=g),typeof b=="number"&&(u.maxItems=b),u.type="array",u.items=Ot(f.element,n,{...r,path:[...r.path,"items"]})},L8=(e,n,s,r)=>{const u=s,f=e._zod.def;u.type="object",u.properties={};const g=f.shape;for(const k in g)u.properties[k]=Ot(g[k],n,{...r,path:[...r.path,"properties",k]});const b=new Set(Object.keys(g)),x=new Set([...b].filter(k=>{const S=f.shape[k]._zod;return n.io==="input"?S.optin===void 0:S.optout===void 0}));x.size>0&&(u.required=Array.from(x)),f.catchall?._zod.def.type==="never"?u.additionalProperties=!1:f.catchall?f.catchall&&(u.additionalProperties=Ot(f.catchall,n,{...r,path:[...r.path,"additionalProperties"]})):n.io==="output"&&(u.additionalProperties=!1)},V8=(e,n,s,r)=>{const u=e._zod.def,f=u.inclusive===!1,g=u.options.map((b,x)=>Ot(b,n,{...r,path:[...r.path,f?"oneOf":"anyOf",x]}));f?s.oneOf=g:s.anyOf=g},$8=(e,n,s,r)=>{const u=e._zod.def,f=Ot(u.left,n,{...r,path:[...r.path,"allOf",0]}),g=Ot(u.right,n,{...r,path:[...r.path,"allOf",1]}),b=k=>"allOf"in k&&Object.keys(k).length===1,x=[...b(f)?f.allOf:[f],...b(g)?g.allOf:[g]];s.allOf=x},H8=(e,n,s,r)=>{const u=s,f=e._zod.def;u.type="object";const g=f.keyType,x=g._zod.bag?.patterns;if(f.mode==="loose"&&x&&x.size>0){const S=Ot(f.valueType,n,{...r,path:[...r.path,"patternProperties","*"]});u.patternProperties={};for(const A of x)u.patternProperties[A.source]=S}else(n.target==="draft-07"||n.target==="draft-2020-12")&&(u.propertyNames=Ot(f.keyType,n,{...r,path:[...r.path,"propertyNames"]})),u.additionalProperties=Ot(f.valueType,n,{...r,path:[...r.path,"additionalProperties"]});const k=g._zod.values;if(k){const S=[...k].filter(A=>typeof A=="string"||typeof A=="number");S.length>0&&(u.required=S)}},G8=(e,n,s,r)=>{const u=e._zod.def,f=Ot(u.innerType,n,r),g=n.seen.get(e);n.target==="openapi-3.0"?(g.ref=u.innerType,s.nullable=!0):s.anyOf=[f,{type:"null"}]},K8=(e,n,s,r)=>{const u=e._zod.def;Ot(u.innerType,n,r);const f=n.seen.get(e);f.ref=u.innerType},Q8=(e,n,s,r)=>{const u=e._zod.def;Ot(u.innerType,n,r);const f=n.seen.get(e);f.ref=u.innerType,s.default=JSON.parse(JSON.stringify(u.defaultValue))},Z8=(e,n,s,r)=>{const u=e._zod.def;Ot(u.innerType,n,r);const f=n.seen.get(e);f.ref=u.innerType,n.io==="input"&&(s._prefault=JSON.parse(JSON.stringify(u.defaultValue)))},F8=(e,n,s,r)=>{const u=e._zod.def;Ot(u.innerType,n,r);const f=n.seen.get(e);f.ref=u.innerType;let g;try{g=u.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}s.default=g},Y8=(e,n,s,r)=>{const u=e._zod.def,f=n.io==="input"?u.in._zod.def.type==="transform"?u.out:u.in:u.out;Ot(f,n,r);const g=n.seen.get(e);g.ref=f},X8=(e,n,s,r)=>{const u=e._zod.def;Ot(u.innerType,n,r);const f=n.seen.get(e);f.ref=u.innerType,s.readOnly=!0},ox=(e,n,s,r)=>{const u=e._zod.def;Ot(u.innerType,n,r);const f=n.seen.get(e);f.ref=u.innerType},J8=Q("ZodISODateTime",(e,n)=>{FA.init(e,n),wt.init(e,n)});function rx(e){return a8(J8,e)}const W8=Q("ZodISODate",(e,n)=>{YA.init(e,n),wt.init(e,n)});function lx(e){return n8(W8,e)}const eC=Q("ZodISOTime",(e,n)=>{XA.init(e,n),wt.init(e,n)});function tC(e){return i8(eC,e)}const aC=Q("ZodISODuration",(e,n)=>{JA.init(e,n),wt.init(e,n)});function nC(e){return s8(aC,e)}const iC=(e,n)=>{Uv.init(e,n),e.name="ZodError",Object.defineProperties(e,{format:{value:s=>L6(e,s)},flatten:{value:s=>U6(e,s)},addIssue:{value:s=>{e.issues.push(s),e.message=JSON.stringify(e.issues,fp,2)}},addIssues:{value:s=>{e.issues.push(...s),e.message=JSON.stringify(e.issues,fp,2)}},isEmpty:{get(){return e.issues.length===0}}})},Ma=Q("ZodError",iC,{Parent:Error}),sC=Jp(Ma),oC=Wp(Ma),rC=tu(Ma),lC=au(Ma),cC=H6(Ma),uC=G6(Ma),dC=K6(Ma),mC=Q6(Ma),pC=Z6(Ma),hC=F6(Ma),fC=Y6(Ma),gC=X6(Ma),xt=Q("ZodType",(e,n)=>(bt.init(e,n),Object.assign(e["~standard"],{jsonSchema:{input:Uc(e,"input"),output:Uc(e,"output")}}),e.toJSONSchema=_8(e,{}),e.def=n,e.type=n.type,Object.defineProperty(e,"_def",{value:n}),e.check=(...s)=>e.clone(ji(n,{checks:[...n.checks??[],...s.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0}),e.with=e.check,e.clone=(s,r)=>Ai(e,s,r),e.brand=()=>e,e.register=((s,r)=>(s.add(e,r),e)),e.parse=(s,r)=>sC(e,s,r,{callee:e.parse}),e.safeParse=(s,r)=>rC(e,s,r),e.parseAsync=async(s,r)=>oC(e,s,r,{callee:e.parseAsync}),e.safeParseAsync=async(s,r)=>lC(e,s,r),e.spa=e.safeParseAsync,e.encode=(s,r)=>cC(e,s,r),e.decode=(s,r)=>uC(e,s,r),e.encodeAsync=async(s,r)=>dC(e,s,r),e.decodeAsync=async(s,r)=>mC(e,s,r),e.safeEncode=(s,r)=>pC(e,s,r),e.safeDecode=(s,r)=>hC(e,s,r),e.safeEncodeAsync=async(s,r)=>fC(e,s,r),e.safeDecodeAsync=async(s,r)=>gC(e,s,r),e.refine=(s,r)=>e.check(c7(s,r)),e.superRefine=s=>e.check(u7(s)),e.overwrite=s=>e.check(_o(s)),e.optional=()=>wy(e),e.exactOptional=()=>YC(e),e.nullable=()=>Sy(e),e.nullish=()=>wy(Sy(e)),e.nonoptional=s=>a7(e,s),e.array=()=>y(e),e.or=s=>Ie([e,s]),e.and=s=>GC(e,s),e.transform=s=>bp(e,dx(s)),e.default=s=>WC(e,s),e.prefault=s=>t7(e,s),e.catch=s=>i7(e,s),e.pipe=s=>bp(e,s),e.readonly=()=>r7(e),e.describe=s=>{const r=e.clone();return Br.add(r,{description:s}),r},Object.defineProperty(e,"description",{get(){return Br.get(e)?.description},configurable:!0}),e.meta=(...s)=>{if(s.length===0)return Br.get(e);const r=e.clone();return Br.add(r,s[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=s=>s(e),e)),cx=Q("_ZodString",(e,n)=>{e0.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(r,u,f)=>E8(e,r,u);const s=e._zod.bag;e.format=s.format??null,e.minLength=s.minimum??null,e.maxLength=s.maximum??null,e.regex=(...r)=>e.check(p8(...r)),e.includes=(...r)=>e.check(g8(...r)),e.startsWith=(...r)=>e.check(y8(...r)),e.endsWith=(...r)=>e.check(b8(...r)),e.min=(...r)=>e.check(Ic(...r)),e.max=(...r)=>e.check(tx(...r)),e.length=(...r)=>e.check(ax(...r)),e.nonempty=(...r)=>e.check(Ic(1,...r)),e.lowercase=r=>e.check(h8(r)),e.uppercase=r=>e.check(f8(r)),e.trim=()=>e.check(x8()),e.normalize=(...r)=>e.check(v8(...r)),e.toLowerCase=()=>e.check(k8()),e.toUpperCase=()=>e.check(w8()),e.slugify=()=>e.check(S8())}),yC=Q("ZodString",(e,n)=>{e0.init(e,n),cx.init(e,n),e.email=s=>e.check(qN(bC,s)),e.url=s=>e.check(UN(vC,s)),e.jwt=s=>e.check(t8(OC,s)),e.emoji=s=>e.check(LN(xC,s)),e.guid=s=>e.check(gy(xy,s)),e.uuid=s=>e.check(BN(jc,s)),e.uuidv4=s=>e.check(MN(jc,s)),e.uuidv6=s=>e.check(PN(jc,s)),e.uuidv7=s=>e.check(IN(jc,s)),e.nanoid=s=>e.check(VN(kC,s)),e.guid=s=>e.check(gy(xy,s)),e.cuid=s=>e.check($N(wC,s)),e.cuid2=s=>e.check(HN(SC,s)),e.ulid=s=>e.check(GN(jC,s)),e.base64=s=>e.check(JN(DC,s)),e.base64url=s=>e.check(WN(TC,s)),e.xid=s=>e.check(KN(AC,s)),e.ksuid=s=>e.check(QN(NC,s)),e.ipv4=s=>e.check(ZN(CC,s)),e.ipv6=s=>e.check(FN(_C,s)),e.cidrv4=s=>e.check(YN(zC,s)),e.cidrv6=s=>e.check(XN(EC,s)),e.e164=s=>e.check(e8(RC,s)),e.datetime=s=>e.check(rx(s)),e.date=s=>e.check(lx(s)),e.time=s=>e.check(tC(s)),e.duration=s=>e.check(nC(s))});function o(e){return ON(yC,e)}const wt=Q("ZodStringFormat",(e,n)=>{vt.init(e,n),cx.init(e,n)}),bC=Q("ZodEmail",(e,n)=>{UA.init(e,n),wt.init(e,n)}),xy=Q("ZodGUID",(e,n)=>{PA.init(e,n),wt.init(e,n)}),jc=Q("ZodUUID",(e,n)=>{IA.init(e,n),wt.init(e,n)}),vC=Q("ZodURL",(e,n)=>{LA.init(e,n),wt.init(e,n)}),xC=Q("ZodEmoji",(e,n)=>{VA.init(e,n),wt.init(e,n)}),kC=Q("ZodNanoID",(e,n)=>{$A.init(e,n),wt.init(e,n)}),wC=Q("ZodCUID",(e,n)=>{HA.init(e,n),wt.init(e,n)}),SC=Q("ZodCUID2",(e,n)=>{GA.init(e,n),wt.init(e,n)}),jC=Q("ZodULID",(e,n)=>{KA.init(e,n),wt.init(e,n)}),AC=Q("ZodXID",(e,n)=>{QA.init(e,n),wt.init(e,n)}),NC=Q("ZodKSUID",(e,n)=>{ZA.init(e,n),wt.init(e,n)}),CC=Q("ZodIPv4",(e,n)=>{WA.init(e,n),wt.init(e,n)}),_C=Q("ZodIPv6",(e,n)=>{eN.init(e,n),wt.init(e,n)}),zC=Q("ZodCIDRv4",(e,n)=>{tN.init(e,n),wt.init(e,n)}),EC=Q("ZodCIDRv6",(e,n)=>{aN.init(e,n),wt.init(e,n)}),DC=Q("ZodBase64",(e,n)=>{nN.init(e,n),wt.init(e,n)}),TC=Q("ZodBase64URL",(e,n)=>{sN.init(e,n),wt.init(e,n)}),RC=Q("ZodE164",(e,n)=>{oN.init(e,n),wt.init(e,n)}),OC=Q("ZodJWT",(e,n)=>{lN.init(e,n),wt.init(e,n)}),t0=Q("ZodNumber",(e,n)=>{Yv.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(r,u,f)=>D8(e,r,u),e.gt=(r,u)=>e.check(by(r,u)),e.gte=(r,u)=>e.check($m(r,u)),e.min=(r,u)=>e.check($m(r,u)),e.lt=(r,u)=>e.check(yy(r,u)),e.lte=(r,u)=>e.check(Vm(r,u)),e.max=(r,u)=>e.check(Vm(r,u)),e.int=r=>e.check(ky(r)),e.safe=r=>e.check(ky(r)),e.positive=r=>e.check(by(0,r)),e.nonnegative=r=>e.check($m(0,r)),e.negative=r=>e.check(yy(0,r)),e.nonpositive=r=>e.check(Vm(0,r)),e.multipleOf=(r,u)=>e.check(vy(r,u)),e.step=(r,u)=>e.check(vy(r,u)),e.finite=()=>e;const s=e._zod.bag;e.minValue=Math.max(s.minimum??Number.NEGATIVE_INFINITY,s.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(s.maximum??Number.POSITIVE_INFINITY,s.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(s.format??"").includes("int")||Number.isSafeInteger(s.multipleOf??.5),e.isFinite=!0,e.format=s.format??null});function m(e){return o8(t0,e)}const qC=Q("ZodNumberFormat",(e,n)=>{cN.init(e,n),t0.init(e,n)});function ky(e){return l8(qC,e)}const BC=Q("ZodBoolean",(e,n)=>{uN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>T8(e,s,r)});function E(e){return c8(BC,e)}const MC=Q("ZodNull",(e,n)=>{dN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>R8(e,s,r)});function de(e){return u8(MC,e)}const PC=Q("ZodUnknown",(e,n)=>{mN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>q8()});function pa(){return d8(PC)}const IC=Q("ZodNever",(e,n)=>{pN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>O8(e,s,r)});function UC(e){return m8(IC,e)}const LC=Q("ZodArray",(e,n)=>{hN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>U8(e,s,r,u),e.element=n.element,e.min=(s,r)=>e.check(Ic(s,r)),e.nonempty=s=>e.check(Ic(1,s)),e.max=(s,r)=>e.check(tx(s,r)),e.length=(s,r)=>e.check(ax(s,r)),e.unwrap=()=>e.element});function y(e,n){return j8(LC,e,n)}const VC=Q("ZodObject",(e,n)=>{gN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>L8(e,s,r,u),at(e,"shape",()=>n.shape),e.keyof=()=>N(Object.keys(e._zod.def.shape)),e.catchall=s=>e.clone({...e._zod.def,catchall:s}),e.passthrough=()=>e.clone({...e._zod.def,catchall:pa()}),e.loose=()=>e.clone({...e._zod.def,catchall:pa()}),e.strict=()=>e.clone({...e._zod.def,catchall:UC()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=s=>q6(e,s),e.safeExtend=s=>B6(e,s),e.merge=s=>M6(e,s),e.pick=s=>R6(e,s),e.omit=s=>O6(e,s),e.partial=(...s)=>P6(mx,e,s[0]),e.required=(...s)=>I6(px,e,s[0])});function h(e,n){const s={type:"object",shape:e??{},...ze(n)};return new VC(s)}const ux=Q("ZodUnion",(e,n)=>{Wv.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>V8(e,s,r,u),e.options=n.options});function Ie(e,n){return new ux({type:"union",options:e,...ze(n)})}const $C=Q("ZodDiscriminatedUnion",(e,n)=>{ux.init(e,n),yN.init(e,n)});function Fe(e,n,s){return new $C({type:"union",options:n,discriminator:e,...ze(s)})}const HC=Q("ZodIntersection",(e,n)=>{bN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>$8(e,s,r,u)});function GC(e,n){return new HC({type:"intersection",left:e,right:n})}const KC=Q("ZodRecord",(e,n)=>{vN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>H8(e,s,r,u),e.keyType=n.keyType,e.valueType=n.valueType});function Pe(e,n,s){return new KC({type:"record",keyType:e,valueType:n,...ze(s)})}const yp=Q("ZodEnum",(e,n)=>{xN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(r,u,f)=>B8(e,r,u),e.enum=n.entries,e.options=Object.values(n.entries);const s=new Set(Object.keys(n.entries));e.extract=(r,u)=>{const f={};for(const g of r)if(s.has(g))f[g]=n.entries[g];else throw new Error(`Key ${g} not found in enum`);return new yp({...n,checks:[],...ze(u),entries:f})},e.exclude=(r,u)=>{const f={...n.entries};for(const g of r)if(s.has(g))delete f[g];else throw new Error(`Key ${g} not found in enum`);return new yp({...n,checks:[],...ze(u),entries:f})}});function N(e,n){const s=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new yp({type:"enum",entries:s,...ze(n)})}const QC=Q("ZodLiteral",(e,n)=>{kN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>M8(e,s,r),e.values=new Set(n.values),Object.defineProperty(e,"value",{get(){if(n.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return n.values[0]}})});function $(e,n){return new QC({type:"literal",values:Array.isArray(e)?e:[e],...ze(n)})}const ZC=Q("ZodTransform",(e,n)=>{wN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>I8(e,s),e._zod.parse=(s,r)=>{if(r.direction==="backward")throw new Ov(e.constructor.name);s.addIssue=f=>{if(typeof f=="string")s.issues.push($r(f,s.value,n));else{const g=f;g.fatal&&(g.continue=!1),g.code??(g.code="custom"),g.input??(g.input=s.value),g.inst??(g.inst=e),s.issues.push($r(g))}};const u=n.transform(s.value,s);return u instanceof Promise?u.then(f=>(s.value=f,s)):(s.value=u,s)}});function dx(e){return new ZC({type:"transform",transform:e})}const mx=Q("ZodOptional",(e,n)=>{ex.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>ox(e,s,r,u),e.unwrap=()=>e._zod.def.innerType});function wy(e){return new mx({type:"optional",innerType:e})}const FC=Q("ZodExactOptional",(e,n)=>{SN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>ox(e,s,r,u),e.unwrap=()=>e._zod.def.innerType});function YC(e){return new FC({type:"optional",innerType:e})}const XC=Q("ZodNullable",(e,n)=>{jN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>G8(e,s,r,u),e.unwrap=()=>e._zod.def.innerType});function Sy(e){return new XC({type:"nullable",innerType:e})}const JC=Q("ZodDefault",(e,n)=>{AN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>Q8(e,s,r,u),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function WC(e,n){return new JC({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():Pv(n)}})}const e7=Q("ZodPrefault",(e,n)=>{NN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>Z8(e,s,r,u),e.unwrap=()=>e._zod.def.innerType});function t7(e,n){return new e7({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():Pv(n)}})}const px=Q("ZodNonOptional",(e,n)=>{CN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>K8(e,s,r,u),e.unwrap=()=>e._zod.def.innerType});function a7(e,n){return new px({type:"nonoptional",innerType:e,...ze(n)})}const n7=Q("ZodCatch",(e,n)=>{_N.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>F8(e,s,r,u),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function i7(e,n){return new n7({type:"catch",innerType:e,catchValue:typeof n=="function"?n:()=>n})}const s7=Q("ZodPipe",(e,n)=>{zN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>Y8(e,s,r,u),e.in=n.in,e.out=n.out});function bp(e,n){return new s7({type:"pipe",in:e,out:n})}const o7=Q("ZodReadonly",(e,n)=>{EN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>X8(e,s,r,u),e.unwrap=()=>e._zod.def.innerType});function r7(e){return new o7({type:"readonly",innerType:e})}const l7=Q("ZodCustom",(e,n)=>{DN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>P8(e,s)});function c7(e,n={}){return A8(l7,e,n)}function u7(e){return N8(e)}function a0(e,n){return bp(dx(e),n)}const ft={custom:"custom"};function hx(e){return r8(t0,e)}const fx=h({id:o(),name:o(),keyPrefix:o(),scopes:y(o()),projectId:o().nullable(),projectName:o().nullable(),readOnly:E(),createdAt:o(),lastUsedAt:o().nullable(),revokedAt:o().nullable()});h({keys:y(fx)});h({name:o().min(1).max(100),scopes:y(o()).min(1).optional(),projectId:o().optional()});fx.extend({key:o()});const d7=h({maxConcurrency:m().int().positive(),maxRequestsPerMinute:m().int().positive(),maxRequestsPerDay:m().int().positive()}),mt=o().min(1),n0=Pe(o(),o().trim().min(1));o().min(1);const sa=h({label:o().min(1),city:o().min(1),region:o().min(1),country:o().length(2),timezone:o().optional()}),i0=N(["citation.lost","citation.gained","run.completed","run.failed","insight.critical","insight.high","health.degraded","health.recovered"]);h({id:o(),projectId:o(),channel:$("webhook"),url:o().url(),urlDisplay:o(),urlHost:o(),events:y(i0),enabled:E().default(!0),source:o().optional(),webhookSecret:o().optional(),createdAt:o(),updatedAt:o()});h({channel:$("webhook"),url:o().url(),events:y(i0).min(1),source:o().optional()});function m7(e){if(e instanceof Error)return e.message;if(typeof e=="string")return e;if(e==null)return"unknown error";try{const n=JSON.stringify(e);if(n!==void 0)return n}catch{}try{return String(e)}catch{return"unknown error"}}function Hm(e,n=!1){const s=new Set,r=[];for(const u of e){const f=n?u.toLowerCase():u;s.has(f)||(s.add(f),r.push(u))}return r}function jy(e){try{const n=e.includes("://"),s=new URL(n?e:`https://${e}`);if(!n&&(s.pathname!=="/"||s.search||s.hash)||s.username||s.password||s.port)return null;const r=s.hostname.trim().toLowerCase().replace(/^www\./,"");return!r||r.includes("/")||r.includes("?")||r.includes("#")?null:r}catch{return null}}const p7=o().trim().min(1).refine(e=>jy(e)!==null,{message:"Marketing hosts must be valid hostnames without credentials or ports"}).overwrite(e=>jy(e)??e),h7=o().trim().min(1),f7=o().trim().regex(/^[a-z]\w{0,39}$/i,{message:"GA4 event names must start with a letter and contain only letters, numbers, or underscores"}),s0=h({marketingHosts:y(p7).overwrite(e=>Hm(e,!0)),brandTerms:y(h7).overwrite(e=>Hm(e,!0)),leadEventNames:y(f7).overwrite(e=>Hm(e))});function g7(){return{marketingHosts:[],brandTerms:[],leadEventNames:["generate_lead"]}}const Gm=Object.freeze({marketingHosts:Object.freeze([]),brandTerms:Object.freeze([]),leadEventNames:Object.freeze(["generate_lead"])}),gx=()=>g7(),Ay=N(["never-synced","ready","error"]),y7=N(["landing-page","channel"]),b7=N(["30d","60d","90d"]),v7=N(["marketing","all"]),Mr=lx(),Yr=h({label:N(["earliest","middle","previous","latest"]),startDate:Mr,endDate:Mr}),Km=Yr.extend({sessions:m().int().nonnegative()}),Ny=Yr.extend({eventCount:m().int().nonnegative()}),Cy=Yr.extend({clicks:m().int().nonnegative(),impressions:m().int().nonnegative()}),x7=Yr.extend({propertyClicks:m().int().nonnegative(),propertyImpressions:m().int().nonnegative(),reportedQueryClicks:m().int().nonnegative(),reportedQueryImpressions:m().int().nonnegative(),brandedClicks:m().int().nonnegative(),brandedImpressions:m().int().nonnegative(),nonBrandedClicks:m().int().nonnegative(),nonBrandedImpressions:m().int().nonnegative(),unreportedClicks:m().int().nonnegative(),unreportedImpressions:m().int().nonnegative()}),k7=Yr.extend({sessions:m().int().nonnegative(),engagementRate:m().min(0).max(1).nullable(),dailyTotalUsers:m().int().nonnegative().nullable(),dailyNewUsers:m().int().nonnegative().nullable(),metricsAvailable:E(),daysInPeriod:m().int().nonnegative(),daysWithEngagementRate:m().int().nonnegative(),daysWithUserSplit:m().int().nonnegative()}),w7=h({window:b7,bucketDays:$(30),filters:h({hostScope:v7,marketingHosts:y(o()),pathPrefix:o().nullable(),brandTerms:y(o()),queryMixScope:$("property")}),acquisition:h({status:Ay,error:o().nullable(),syncedAt:o().datetime().nullable(),periods:y(Km),channels:y(h({channelGroup:o(),periods:y(Km)})),pages:y(h({hostName:o(),landingPage:o(),periods:y(Km)}))}),leads:h({status:Ay,error:o().nullable(),syncedAt:o().datetime().nullable(),attributionScope:y7.nullable(),hostAndPathFiltersApplied:E(),periods:y(Ny),channels:y(h({channelGroup:o(),periods:y(Ny)}))}),engagement:h({status:N(["ready","unavailable"]),availableFromDate:Mr.nullable(),latestDate:Mr.nullable(),periods:y(k7)}),searchDemand:h({status:N(["ready","unavailable"]),periods:y(x7),queries:y(h({query:o(),classification:N(["branded","non-branded"]),periods:y(Cy)})),pages:y(h({hostName:o(),landingPage:o(),periods:y(Cy)})),latestDate:Mr.nullable()})}),S7=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,j7=/[\0-\x1F\x7F-\x9F]/,A7=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B4E\u1B4F\u1B5A-\u1B60\u1B7D-\u1B7F\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDD6E\uDEAD\uDED0\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9\uDFD4\uDFD5\uDFD7\uDFD8]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09\uDFE1]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDD6D-\uDD6F\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD839\uDDFF|\uD83A[\uDD5E\uDD5F]/,N7=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/;var C7=class{src_Any=S7.source;src_Cc=j7.source;src_Z=N7.source;src_P=A7.source;src_ZPCc=[this.src_Z,this.src_P,this.src_Cc].join("|");src_ZCc=[this.src_Z,this.src_Cc].join("|");cache={};opts={maxLength:1e4,urlAuth:!1,schema_names:[]};constructor(e={}){this.opts={...this.opts,...e}}set(e={}){return this.opts={...this.opts,...e},this.cache={},this}escapeRE(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}nestedPairRE(e,n,s=4){const r=this.escapeRE(e),u=this.escapeRE(n),f=`(?:(?!${this.src_ZCc}|${r}|${u}).)`;let g=`${r}${f}{0,1000}${u}`;for(let b=2;b<=s;b++)g=`${r}(?:${f}|${g}){0,1000}${u}`;return g}get_text_separators(){return this.cache.text_separators??=/[><\uff5c]/}get_pseudo_letter(){return this.cache.src_pseudo_letter??=new RegExp(`(?:(?!${this.get_text_separators().source}|${this.src_ZPCc})${this.src_Any})`)}get_ipv4_addr(){return this.cache.src_ip4??=new RegExp("(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])[.]){3}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])")}get_ipv6_addr(){const e="[0-9A-Fa-f]{1,4}",n=`(?:(?:${e}:${e})|${this.get_ipv4_addr().source})`;return this.cache.src_ip6_addr??=new RegExp(`(?:(?:${e}:){6}${n}|::(?:${e}:){5}${n}|(?:${e})?::(?:${e}:){4}${n}|(?:(?:${e}:){0,1}${e})?::(?:${e}:){3}${n}|(?:(?:${e}:){0,2}${e})?::(?:${e}:){2}${n}|(?:(?:${e}:){0,3}${e})?::${e}:${n}|(?:(?:${e}:){0,4}${e})?::${n}|(?:(?:${e}:){0,5}${e})?::${e}|(?:(?:${e}:){0,6}${e})?::)`)}get_ipv6_url_host(){return this.cache.src_ip6_host??=new RegExp(`\\[${this.get_ipv6_addr().source}\\]`)}get_ipv6_mail_host(){return this.cache.src_ipv6_mail_host??=new RegExp(`\\[IPv6:${this.get_ipv6_addr().source}\\]`)}get_auth(){return this.cache.src_auth??=new RegExp(`(?:(?:(?!${this.src_ZCc}|[@/\\[\\]()]).){1,50}@)?`)}get_port(){return this.cache.src_port??=new RegExp("(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?")}get_host_terminator(){return this.cache.src_host_terminator??=new RegExp(`(?=$|${this.get_text_separators().source}|${this.src_ZPCc})(?!${this.opts["---"]?"-(?!--)|":"-|"}_|:\\d|\\.-|\\.(?!$|${this.src_ZPCc}))`)}get_path_terminator(){return this.cache.src_path_terminator??=new RegExp(`${this.src_ZPCc}|${this.get_text_separators().source}`)}get_path(){return this.cache.src_path??=new RegExp(`(?:[/?#](?:${this.nestedPairRE("[","]")}|${this.nestedPairRE("(",")")}|${this.nestedPairRE("{","}")}|\\"(?:(?!${this.src_ZCc}|["]).){1,100}\\"|\\'(?:(?!${this.src_ZCc}|[']).){1,100}\\'|\\'(?=${this.get_pseudo_letter().source}|[-])|\\.{2,20}[:]?[a-zA-Z0-9%/&]|\\.(?!${this.src_ZCc}|[.]|$)|`+(this.opts["---"]?"\\-(?!--(?:[^-]|$))(?:-{0,19})|":"\\-{1,20}|")+`,(?!${this.src_ZCc}|$)|;(?!${this.src_ZCc}|$)|\\!{1,20}(?!${this.src_ZCc}|[!]|$)|\\?(?!${this.src_ZCc}|[?]|$)|`+this.get_path_extra().source+`[\\\\/:%@#&=_~*]|(?!${this.get_path_terminator().source}).){1,${this.opts.maxLength}}|\\/)?`)}get_mail_name(){return this.cache.src_mail_name??=new RegExp("[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9](?:[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9]|[.](?=[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9])){0,63}")}get_xn(){return this.cache.src_xn??=new RegExp("xn--[a-z0-9\\-]{1,59}")}get_tld(){if(this.cache.tld)return this.cache.tld;const e=[...new Set(this.opts.tlds||[])].sort().reverse().join("|");return this.cache.tld=new RegExp(`${e||"$#none#$"}|${this.get_xn().source}`),this.cache.tld}get_domain_root(){return this.cache.src_domain_root??=new RegExp("(?:"+this.get_xn().source+`|${this.get_pseudo_letter().source}{1,63})`)}get_domain(){return this.cache.src_domain??=new RegExp("(?:"+this.get_xn().source+`|(?:${this.get_pseudo_letter().source})|(?:${this.get_pseudo_letter().source}(?:-|${this.get_pseudo_letter().source}){0,61}${this.get_pseudo_letter().source}))`)}get_url_host_port(){return this.cache.url_host_port??=new RegExp("(?:"+this.get_ipv6_url_host().source+`|(?:(?:(?:${this.get_domain().source})\\.){0,10}${this.get_domain().source}))`+this.get_port().source+this.get_host_terminator().source)}get_fuzzy_url_host_port(){return this.cache.fuzzy_url_host_port??=new RegExp("(?:"+(this.opts.fuzzyIP?this.get_ipv4_addr().source+"|":"")+`(?:(?:(?:${this.get_domain().source})\\.){1,10}(?:${this.get_tld().source})))`+this.get_host_terminator().source)}get_mail_host(){return this.cache.src_mail_host??=new RegExp("(?:"+this.get_ipv6_mail_host().source+`|(?:(?:(?:${this.get_domain().source})\\.){0,4}${this.get_domain().source}))`+this.get_host_terminator().source)}get_fuzzy_mail_host(){return this.cache.src_fuzzy_mail_host??=new RegExp("(?:"+this.get_ipv6_mail_host().source+`|(?:(?:(?:${this.get_domain().source})[.]){1,4}${this.get_domain_root().source}))`+this.get_host_terminator().source)}get_path_extra(){return this.cache.src_path_extra??=new RegExp("")}get_fuzzy_mail_host_search(){return this.cache.mail_fuzzy_host_search??=new RegExp(`@${this.get_fuzzy_mail_host().source}`,"ig")}get_fuzzy_link_search(){return this.cache.link_fuzzy_search??=new RegExp(`(^|(?![.:/\\-_@])(?:[$+<=>^\`||]|${this.src_ZPCc}))(?:(?![$+<=>^\`||])${this.get_fuzzy_url_host_port().source}${this.get_path().source})`,"ig")}get_http_validator(){return this.cache.http_validator??=new RegExp("\\/\\/"+(this.opts.urlAuth?this.get_auth().source:"")+this.get_url_host_port().source+this.get_path().source,"iy")}get_relative_proto_validator(){return this.cache.relative_proto_validator??=new RegExp((this.opts.urlAuth?this.get_auth().source:"")+`(?:localhost|${this.get_ipv6_url_host().source}|(?:(?:${this.get_domain().source})[.]){1,10}${this.get_domain_root().source})`+this.get_port().source+this.get_host_terminator().source+this.get_path().source,"iy")}get_mail_name_validator(){return this.cache.mail_name_validator??=new RegExp(`(?:^|${this.get_text_separators().source}|"|\\(|${this.src_ZCc})(${this.get_mail_name().source})$`)}get_mailto_validator(){return this.cache.mailto_validator??=new RegExp(`${this.get_mail_name().source}@${this.get_mail_host().source}`,"iy")}get_schema_names(){return this.cache.schema_names??=new RegExp((this.opts.schema_names||[]).map(e=>this.escapeRE(e)).join("|"))}get_schema_search(){return this.cache.schema_search??=new RegExp(`(^|(?!_)(?:[><|]|${this.src_ZPCc}))(${this.get_schema_names().source})`,"ig")}get_schema_at_start(){return this.cache.schema_at_start??=new RegExp(`^${this.get_schema_search().source}`,"i")}},Qm={validate:(e,n,s)=>{const r=s.re.get_http_validator();r.lastIndex=n;const u=r.exec(e);return u?u[0].length:0},normalize:(e,n)=>n.normalize(e)},_7={"http:":Qm,"https:":Qm,"ftp:":Qm,"//":{validate:function(e,n,s){const r=s.re.get_relative_proto_validator();r.lastIndex=n;const u=r.exec(e);return u?n>=3&&e[n-3]===":"||n>=3&&e[n-3]==="/"?0:u[0].length:0},normalize:(e,n)=>n.normalize(e)},"mailto:":{validate:function(e,n,s){const r=s.re.get_mailto_validator();r.lastIndex=n;const u=r.exec(e);return u?u[0].length:0},normalize:(e,n)=>n.normalize(e)}},z7="a:cdefgilmnoqrstuwxz|b:abdefghijmnorstvwyz|c:acdfghiklmnoruvwxyz|d:ejkmoz|e:cegrstu|f:ijkmor|g:abdefghilmnpqrstuwy|h:kmnrtu|i:delmnoqrst|j:emop|k:eghimnprwyz|l:abcikrstuvy|m:acdeghklmnopqrstuvwxyz|n:acefgilopruz|o:m|p:aefghklmnrstwy|q:a|r:eosuw|s:abcdeghijklmnortuvxyz|t:cdfghjklmnortvwz|u:agksyz|v:aceginu|w:fs|y:et|z:amw",E7="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф";function D7(){const e=E7.split("|");return z7.split("|").forEach(n=>{const s=n.indexOf(":"),r=n.slice(0,s);for(const u of n.slice(s+1))e.push(r+u)}),e}var T7={fuzzyLink:!1,fuzzyEmail:!0,fuzzyIP:!1,"---":!1,tlds:D7(),urlAuth:!1,maxLength:1e4},_y=class{schema;index;lastIndex;raw;text;url;constructor(e,n,s,r){const u=e.slice(s,r);this.schema=n.toLowerCase(),this.index=s,this.lastIndex=r,this.raw=u,this.text=u,this.url=u}},R7=class{__opts__;__schemas__;re;constructor(e={}){const{rebuilder:n,...s}=e;this.__opts__={...T7,...s},this.__schemas__={..._7},this.re=n||new C7,this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)})}add(e,n=null){if(!n)delete this.__schemas__[e];else{const s={normalize:(r,u)=>u.normalize(r),...n};this.__schemas__[e]=s}return this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}set(e={}){return this.__opts__={...this.__opts__,...e},this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}test(e){if(!e.length)return!1;let n,s;for(s=this.re.get_schema_search(),s.lastIndex=0;(n=s.exec(e))!==null;)if(this.testSchemaAt(e,n[2],s.lastIndex))return!0;if(this.__opts__.fuzzyLink&&this.__schemas__["http:"]&&(s=this.re.get_fuzzy_link_search(),s.lastIndex=0,s.exec(e)!==null))return!0;if(this.__opts__.fuzzyEmail&&this.__schemas__["mailto:"]&&e.indexOf("@")>=0){const r=this.re.get_fuzzy_mail_host_search(),u=this.re.get_mail_name_validator();for(r.lastIndex=0;(n=r.exec(e))!==null;){const f=e.slice(Math.max(0,n.index-65),n.index);if(u.test(f))return!0}}return!1}testSchemaAt(e,n,s){return this.__schemas__[n.toLowerCase()]?this.__schemas__[n.toLowerCase()].validate(e.slice(0,s+this.__opts__.maxLength),s,this):0}match(e){const n=[],s=this.re.get_schema_search();let r,u,f,g,b,x,k=!1,S=!1,A=!1,j=0;if(!e.length)return null;for(s.lastIndex=0,this.__opts__.fuzzyLink&&this.__schemas__["http:"]&&(r=this.re.get_fuzzy_link_search(),r.lastIndex=0),this.__opts__.fuzzyEmail&&this.__schemas__["mailto:"]&&(u=this.re.get_fuzzy_mail_host_search(),u.lastIndex=0,f=this.re.get_mail_name_validator());;){const D=Math.max(j-1,0);if(u&&f&&!A&&(!b||b.index<j))for(u.lastIndex<D&&(u.lastIndex=D);;){const te=u.exec(e);if(!te){A=!0,b=void 0;break}const X=f.exec(e.slice(Math.max(0,te.index-65),te.index));if(X){if(b={schema:"mailto:",index:te.index-X[1].length,lastIndex:te.index+te[0].length},b.index>=j)break;u.lastIndex<D&&(u.lastIndex=D)}}if(r&&!S&&(!g||g.index<j))for(r.lastIndex<D&&(r.lastIndex=D);;){const te=r.exec(e);if(!te){S=!0,g=void 0;break}if(g={schema:"",index:te.index+te[1].length,lastIndex:te.index+te[0].length},g.index>=j)break;r.lastIndex<D&&(r.lastIndex=D)}let R=b;(!R||g&&(g.index<R.index||g.index===R.index&&g.lastIndex>R.lastIndex))&&(R=g);let q;if(!k)for(;;){if(!x){s.lastIndex<D&&(s.lastIndex=D);const ae=s.exec(e);if(!ae){k=!0;break}x={schema:ae[2],index:ae.index+ae[1].length,lastIndex:ae.index+ae[0].length}}if(x.index<j){x=void 0;continue}if(R&&x.index>R.index)break;const te=x;x=void 0;const X=this.testSchemaAt(e,te.schema,te.lastIndex);if(X){q={schema:te.schema,index:te.index,lastIndex:te.lastIndex+X};break}}let L=q;if((!L||b&&(b.index<L.index||b.index===L.index&&b.lastIndex>L.lastIndex))&&(L=b),(!L||g&&(g.index<L.index||g.index===L.index&&g.lastIndex>L.lastIndex))&&(L=g),!L)break;L===b?b=void 0:L===g&&(g=void 0);const V=new _y(e,L.schema,L.index,L.lastIndex);V.schema?this.__schemas__[V.schema].normalize(V,this):this.normalize(V),n.push(V),j=L.lastIndex}return n.length?n:null}matchAtStart(e){if(!e.length)return null;const n=this.re.get_schema_at_start().exec(e);if(!n)return null;const s=this.testSchemaAt(e,n[2],n[0].length);if(!s)return null;const r=new _y(e,n[2],n.index+n[1].length,n.index+n[0].length+s);return this.__schemas__[r.schema].normalize(r,this),r}tlds(e,n=!1){return e=Array.isArray(e)?e:[e],n?this.__opts__.tlds=this.__opts__.tlds.concat(e):this.__opts__.tlds=e,this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}normalize(e){e.schema||(e.url=`http://${e.url}`),e.schema==="mailto:"&&!/^mailto:/i.test(e.url)&&(e.url=`mailto:${e.url}`)}};const O7=JSON.parse('["aaa","aarp","abb","abbott","abbvie","abc","able","abogado","abudhabi","ac","academy","accenture","accountant","accountants","aco","actor","ad","ads","adult","ae","aeg","aero","aetna","af","afl","africa","ag","agakhan","agency","ai","aig","airbus","airforce","airtel","akdn","al","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","am","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","ao","aol","apartments","app","apple","aq","aquarelle","ar","arab","aramco","archi","army","arpa","art","arte","as","asda","asia","associates","at","athleta","attorney","au","auction","audi","audible","audio","auspost","author","auto","autos","aw","aws","ax","axa","az","azure","ba","baby","baidu","banamex","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bb","bbc","bbt","bbva","bcg","bcn","bd","be","beats","beauty","beer","berlin","best","bestbuy","bet","bf","bg","bh","bharti","bi","bible","bid","bike","bing","bingo","bio","biz","bj","black","blackfriday","blockbuster","blog","bloomberg","blue","bm","bms","bmw","bn","bnpparibas","bo","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","br","bradesco","bridgestone","broadway","broker","brother","brussels","bs","bt","build","builders","business","buy","buzz","bv","bw","by","bz","bzh","ca","cab","cafe","cal","call","calvinklein","cam","camera","camp","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","cash","casino","cat","catering","catholic","cba","cbn","cbre","cc","cd","center","ceo","cern","cf","cfa","cfd","cg","ch","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","ci","cipriani","circle","cisco","citadel","citi","citic","city","ck","cl","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","cm","cn","co","coach","codes","coffee","college","cologne","com","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cool","coop","corsica","country","coupon","coupons","courses","cpa","cr","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","cu","cuisinella","cv","cw","cx","cy","cymru","cyou","cz","dad","dance","data","date","dating","datsun","day","dclk","dds","de","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dj","dk","dm","dnp","do","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","dupont","durban","dvag","dvr","dz","earth","eat","ec","eco","edeka","edu","education","ee","eg","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","er","ericsson","erni","es","esq","estate","et","eu","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fi","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","fj","fk","flickr","flights","flir","florist","flowers","fly","fm","fo","foo","food","football","ford","forex","forsale","forum","foundation","fox","fr","free","fresenius","frl","frogans","frontier","ftr","fujitsu","fun","fund","furniture","futbol","fyi","ga","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gb","gbiz","gd","gdn","ge","gea","gent","genting","george","gf","gg","ggee","gh","gi","gift","gifts","gives","giving","gl","glass","gle","global","globo","gm","gmail","gmbh","gmo","gmx","gn","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","gov","gp","gq","gr","grainger","graphics","gratis","green","gripe","grocery","group","gs","gt","gu","gucci","guge","guide","guitars","guru","gw","gy","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hiphop","hisamitsu","hitachi","hiv","hk","hkt","hm","hn","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hotels","hotmail","house","how","hr","hsbc","ht","hu","hughes","hyatt","hyundai","ibm","icbc","ice","icu","id","ie","ieee","ifm","ikano","il","im","imamat","imdb","immo","immobilien","in","inc","industries","infiniti","info","ing","ink","institute","insurance","insure","int","international","intuit","investments","io","ipiranga","iq","ir","irish","is","ismaili","ist","istanbul","it","itau","itv","jaguar","java","jcb","je","jeep","jetzt","jewelry","jio","jll","jm","jmp","jnj","jo","jobs","joburg","jot","joy","jp","jpmorgan","jprs","juegos","juniper","kaufen","kddi","ke","kerryhotels","kerryproperties","kfh","kg","kh","ki","kia","kids","kim","kindle","kitchen","kiwi","km","kn","koeln","komatsu","kosher","kp","kpmg","kpn","kr","krd","kred","kuokgroup","kw","ky","kyoto","kz","la","lacaixa","lamborghini","lamer","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lb","lc","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","li","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","link","live","living","lk","llc","llp","loan","loans","locker","locus","lol","london","lotte","lotto","love","lpl","lplfinancial","lr","ls","lt","ltd","ltda","lu","lundbeck","luxe","luxury","lv","ly","ma","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","mattel","mba","mc","mckinsey","md","me","med","media","meet","melbourne","meme","memorial","men","menu","merckmsd","mg","mh","miami","microsoft","mil","mini","mint","mit","mitsubishi","mk","ml","mlb","mls","mm","mma","mn","mo","mobi","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","mp","mq","mr","ms","msd","mt","mtn","mtr","mu","museum","music","mv","mw","mx","my","mz","na","nab","nagoya","name","navy","nba","nc","ne","nec","net","netbank","netflix","network","neustar","new","news","next","nextdirect","nexus","nf","nfl","ng","ngo","nhk","ni","nico","nike","nikon","ninja","nissan","nissay","nl","no","nokia","norton","now","nowruz","nowtv","np","nr","nra","nrw","ntt","nu","nyc","nz","obi","observer","office","okinawa","olayan","olayangroup","ollo","om","omega","one","ong","onl","online","ooo","open","oracle","orange","org","organic","origins","osaka","otsuka","ott","ovh","pa","page","panasonic","paris","pars","partners","parts","party","pay","pccw","pe","pet","pf","pfizer","pg","ph","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","pk","pl","place","play","playstation","plumbing","plus","pm","pn","pnc","pohl","poker","politie","porn","post","pr","praxi","press","prime","pro","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","ps","pt","pub","pw","pwc","py","qa","qpon","quebec","quest","racing","radio","re","read","realestate","realtor","realty","recipes","red","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","ril","rio","rip","ro","rocks","rodeo","rogers","room","rs","rsvp","ru","rugby","ruhr","run","rw","rwe","ryukyu","sa","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sb","sbi","sbs","sc","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scot","sd","se","search","seat","secure","security","seek","select","sener","services","seven","sew","sex","sexy","sfr","sg","sh","shangrila","sharp","shell","shia","shiksha","shoes","shop","shopping","shouji","show","si","silk","sina","singles","site","sj","sk","ski","skin","sky","skype","sl","sling","sm","smart","smile","sn","sncf","so","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","sr","srl","ss","st","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","su","sucks","supplies","supply","support","surf","surgery","suzuki","sv","swatch","swiss","sx","sy","sydney","systems","sz","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tc","tci","td","tdk","team","tech","technology","tel","temasek","tennis","teva","tf","tg","th","thd","theater","theatre","tiaa","tickets","tienda","tips","tires","tirol","tj","tjmaxx","tjx","tk","tkmaxx","tl","tm","tmall","tn","to","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","tr","trade","trading","training","travel","travelers","travelersinsurance","trust","trv","tt","tube","tui","tunes","tushu","tv","tvs","tw","tz","ua","ubank","ubs","ug","uk","unicom","university","uno","uol","ups","us","uy","uz","va","vacations","vana","vanguard","vc","ve","vegas","ventures","verisign","vermögensberater","vermögensberatung","versicherung","vet","vg","vi","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vn","vodka","volvo","vote","voting","voto","voyage","vu","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","wf","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","ws","wtc","wtf","xbox","xerox","xihuan","xin","xxx","xyz","yachts","yahoo","yamaxun","yandex","ye","yodobashi","yoga","yokohama","you","youtube","yt","yun","za","zappos","zara","zero","zip","zm","zone","zuerich","zw","ελ","ευ","бг","бел","дети","ею","католик","ком","мкд","мон","москва","онлайн","орг","рус","рф","сайт","срб","укр","қаз","հայ","ישראל","קום","ابوظبي","ارامكو","الاردن","البحرين","الجزائر","السعودية","العليان","المغرب","امارات","ایران","بارت","بازار","بيتك","بھارت","تونس","سودان","سورية","شبكة","عراق","عرب","عمان","فلسطين","قطر","كاثوليك","كوم","مصر","مليسيا","موريتانيا","موقع","همراه","پاکستان","ڀارت","कॉम","नेट","भारत","भारतम्","भारोत","संगठन","বাংলা","ভারত","ভাৰত","ਭਾਰਤ","ભારત","ଭାରତ","இந்தியா","இலங்கை","சிங்கப்பூர்","భారత్","ಭಾರತ","ഭാരതം","ලංකා","คอม","ไทย","ລາວ","გე","みんな","アマゾン","クラウド","グーグル","コム","ストア","セール","ファッション","ポイント","世界","中信","中国","中國","中文网","亚马逊","企业","佛山","信息","健康","八卦","公司","公益","台湾","台灣","商城","商店","商标","嘉里","嘉里大酒店","在线","大拿","天主教","娱乐","家電","广东","微博","慈善","我爱你","手机","招聘","政务","政府","新加坡","新闻","时尚","書籍","机构","淡马锡","游戏","澳門","点看","移动","组织机构","网址","网店","网站","网络","联通","谷歌","购物","通販","集团","電訊盈科","飞利浦","食品","餐厅","香格里拉","香港","닷넷","닷컴","삼성","한국"]');function q7(e,n){return e.endsWith(n)?e.length===n.length||e[e.length-n.length-1]===".":!1}function B7(e,n){const s=e.length-n.length-2,r=e.lastIndexOf(".",s);return r===-1?e:e.slice(r+1)}function M7(e,n,s){if(s.validHosts!==null){const u=s.validHosts;for(const f of u)if(q7(n,f))return f}let r=0;if(n.startsWith("."))for(;r<n.length&&n[r]===".";)r+=1;return e.length===n.length-r?null:B7(n,e)}function P7(e,n){return e.slice(0,-n.length-1)}const Zm=/[\t\n\r]/g;let vp=!1;function zy(e){return e>=97&&e<=122||e>=48&&e<=57||e>127||e>=65&&e<=90||e===45||e===95}function Ey(e,n,s){const r=s-n,u=e.charCodeAt(n)|32;if(r===2)return u===119&&(e.charCodeAt(n+1)|32)===115?1:0;if(r===3){const f=e.charCodeAt(n+1)|32,g=e.charCodeAt(n+2)|32;return u===119&&f===115&&g===115||u===102&&f===116&&g===112?1:0}else if(r===4){const f=e.charCodeAt(n+1)|32,g=e.charCodeAt(n+2)|32,b=e.charCodeAt(n+3)|32;return u===104&&f===116&&g===116&&b===112?1:u===102&&f===105&&g===108&&b===101?2:0}else if(r===5)return u===104&&(e.charCodeAt(n+1)|32)===116&&(e.charCodeAt(n+2)|32)===116&&(e.charCodeAt(n+3)|32)===112&&(e.charCodeAt(n+4)|32)===115?1:0;return 0}function Pr(e,n,s=!1){let r=0,u=e.length,f=!1,g=!1;if(vp=!1,!n){if(e.startsWith("data:"))return null;for(;r<e.length&&e.charCodeAt(r)<=32;)r+=1;for(;u>r+1&&e.charCodeAt(u-1)<=32;)u-=1;if(e.charCodeAt(r)===47&&e.charCodeAt(r+1)===47)r+=2;else{const L=e.indexOf(":/",r);if(L!==-1){const V=Ey(e,r,L);if(V===1)for(g=!0,r=L+2;e.charCodeAt(r)===47||e.charCodeAt(r)===92;)r+=1;else if(V===2){g=!0,r=L+1;let te=0;for(;(e.charCodeAt(r)===47||e.charCodeAt(r)===92)&&te<2;)r+=1,te+=1;if(te<2)return null}else{for(let te=r;te<L;te+=1){const X=e.charCodeAt(te)|32;if(!(X>=97&&X<=122||X>=48&&X<=57||X===46||X===45||X===43)){const ae=e.charCodeAt(te);return ae===9||ae===10||ae===13?Pr(e.replace(Zm,""),n,s):null}}if(e.charCodeAt(L+2)===47)r=L+3;else return null}}else if(e.charCodeAt(r)!==91){let V=-1;for(let te=r;te<u;te+=1){const X=e.charCodeAt(te);if(X===9||X===10||X===13)return Pr(e.replace(Zm,""),n,s);if(X===58){V=te;break}if(X===47||X===92||X===63||X===35)break}if(V!==-1){let te=!1;for(let X=V+1;X<u;X+=1){const ae=e.charCodeAt(X);if(ae===47||ae===92||ae===63||ae===35)break;if(ae===64){te=!0;break}}if(!te){let X=!0,ae=V+1;for(;ae<u;ae+=1){const oe=e.charCodeAt(ae);if(oe===47||oe===92||oe===63||oe===35)break;if(oe<48||oe>57){X=!1;break}}if(ae===V+1&&(X=!1),!X){const oe=Ey(e,r,V);if(oe===0){let fe=!1;for(let M=V+1;M<u;M+=1){const J=e.charCodeAt(M);if(J===47||J===92||J===63||J===35)break;if(J===58){fe=!0;break}}if(!fe)return null}else if(g=!0,r=V+1,oe===2){let fe=0;for(;(e.charCodeAt(r)===47||e.charCodeAt(r)===92)&&fe<2;)r+=1,fe+=1;if(fe<2)return null}else for(;e.charCodeAt(r)===47||e.charCodeAt(r)===92;)r+=1}}}}}let x=-1,k=-1,S=-1,A=-1,j=!1,D=s,R=r-1,q=-1;if(s&&r<u){const L=e.charCodeAt(r);(!(zy(L)||L===46||L===95)||L===45)&&(D=!1)}for(let L=r;L<u;L+=1){const V=e.charCodeAt(L);if(V<64)if(V===47||V===35||V===63){u=L;break}else V===58?(A===-1&&(A=L),S=L):V===9||V===10||V===13?j=!0:s&&(V===46?((L-R>64||q===46||q===45)&&(D=!1),R=L):(V<48||V>57)&&(V!==45||q===46)&&(D=!1));else if(g&&V===92){u=L;break}else V===64?(x=L,A=-1):V===93?k=L:V>=65&&V<=90?f=!0:s&&!zy(V)&&(D=!1);s&&(q=V)}if(j)return Pr(e.replace(Zm,""),n,s);if(x!==-1&&x>=r&&x<u&&(r=x+1),e.charCodeAt(r)===91)return k!==-1?e.slice(r+1,k).toLowerCase():null;if(S!==-1&&S>r&&S<u&&A===S&&(u=S),r>=u)return null;s&&D&&x===-1&&S===-1&&k===-1&&e.charCodeAt(u-1)!==46&&u-r<=255&&u-R-1<=63&&q!==45&&(vp=!0)}for(;u>r+1&&e.charCodeAt(u-1)===46;)u-=1;const b=r!==0||u!==e.length?e.slice(r,u):e;return f?b.toLowerCase():b}function I7(e){if(e.length<7||e.length>15)return!1;let n=0;for(let s=0;s<e.length;s+=1){const r=e.charCodeAt(s);if(r===46)n+=1;else if(r<48||r>57)return!1}return n===3&&e.charCodeAt(0)!==46&&e.charCodeAt(e.length-1)!==46}function U7(e){if(e.length<3)return!1;let n=e.startsWith("[")?1:0,s=e.length;if(e[s-1]==="]"&&(s-=1),s-n>39)return!1;let r=!1;for(;n<s;n+=1){const u=e.charCodeAt(n);if(u===58)r=!0;else if(!(u>=48&&u<=57||u>=97&&u<=102||u>=65&&u<=70))return!1}return r}function L7(e){return U7(e)||I7(e)}const V7=["test","localhost","invalid","example","example.com","example.net","example.org","local","onion","alt","home.arpa","ipv4only.arpa","resolver.arpa","service.arpa","6tisch.arpa","eap.arpa"];function $7(e){for(const n of V7)if(e.endsWith(n)&&(e.length===n.length||e.charCodeAt(e.length-n.length-1)===46))return!0;return!1}function Dy(e){return e>=97&&e<=122||e>=48&&e<=57||e>127}function Ty(e){if(e.length>255||e.length===0||!Dy(e.charCodeAt(0))&&e.charCodeAt(0)!==46&&e.charCodeAt(0)!==95)return!1;let n=-1,s=-1;const r=e.length;for(let u=0;u<r;u+=1){const f=e.charCodeAt(u);if(f===46){if(u-n>64||s===46||s===45)return!1;n=u}else if(!(Dy(f)||f===45||f===95)||f===45&&s===46)return!1;s=f}return r-n-1<=63&&s!==45}function yx({allowIcannDomains:e=!0,allowPrivateDomains:n=!1,detectIp:s=!0,detectSpecialUse:r=!1,extractHostname:u=!0,mixedInputs:f=!0,validHosts:g=null,validateHostname:b=!0}){return{allowIcannDomains:e,allowPrivateDomains:n,detectIp:s,detectSpecialUse:r,extractHostname:u,mixedInputs:f,validHosts:g,validateHostname:b}}const H7=yx({});function G7(e){return e===void 0?H7:yx(e)}function K7(e,n){return n.length===e.length?"":e.slice(0,-n.length-1)}function Q7(){return{domain:null,domainWithoutSuffix:null,hostname:null,isIcann:null,isIp:null,isPrivate:null,isSpecialUse:null,publicSuffix:null,subdomain:null}}function bx(e){e.domain=null,e.domainWithoutSuffix=null,e.hostname=null,e.isIcann=null,e.isIp=null,e.isPrivate=null,e.isSpecialUse=null,e.publicSuffix=null,e.subdomain=null}function vx(e,n,s,r,u){const f=G7(r);if(typeof e!="string")return u;let g=!1;return f.extractHostname?f.mixedInputs?(g=Ty(e),u.hostname=Pr(e,g,f.validateHostname)):u.hostname=Pr(e,!1,f.validateHostname):u.hostname=e,f.detectIp&&u.hostname!==null&&(u.isIp=L7(u.hostname),u.isIp)?u:f.validateHostname&&f.extractHostname&&u.hostname!==null&&!(g&&u.hostname===e)&&!vp&&!Ty(u.hostname)?(u.hostname=null,u):(n===0||u.hostname===null||(n===5&&f.detectSpecialUse&&(u.isSpecialUse=$7(u.hostname)),s(u.hostname,f,u),n===2||u.publicSuffix===null)||(u.domain=M7(u.publicSuffix,u.hostname,f),n===3||u.domain===null)||(u.subdomain=K7(u.hostname,u.domain),n===4)||(u.domainWithoutSuffix=P7(u.domain,u.publicSuffix)),u)}function Z7(e,n,s){if(!n.allowPrivateDomains&&e.length>3){const r=e.length-1,u=e.charCodeAt(r),f=e.charCodeAt(r-1),g=e.charCodeAt(r-2),b=e.charCodeAt(r-3);if(u===109&&f===111&&g===99&&b===46)return s.isIcann=!0,s.isPrivate=!1,s.publicSuffix="com",!0;if(u===103&&f===114&&g===111&&b===46)return s.isIcann=!0,s.isPrivate=!1,s.publicSuffix="org",!0;if(u===117&&f===100&&g===101&&b===46)return s.isIcann=!0,s.isPrivate=!1,s.publicSuffix="edu",!0;if(u===118&&f===111&&g===103&&b===46)return s.isIcann=!0,s.isPrivate=!1,s.publicSuffix="gov",!0;if(u===116&&f===101&&g===110&&b===46)return s.isIcann=!0,s.isPrivate=!1,s.publicSuffix="net",!0;if(u===101&&f===100&&g===46)return s.isIcann=!0,s.isPrivate=!1,s.publicSuffix="de",!0}return!1}const ss=new Uint8Array([1,2,1,1,1,1,1,1,1,1,1,1,0,2,2,2,0,2,2,0,2,0,0,1,0,0,2,1,1,1,1,1,1,0,0,0,1,0,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,1,0,0,0,0,0,0,1,1,1,0,2,0,0,0,0,0,0,0,2,0,2,2,0,0,2,2,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,2,1,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,2,2,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,1,0,2,2,0,0,0,2,0,1,1,0,2,0,2,2,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,2,2,0,2,2,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,2,0,2,2,2,2,0,0,0,0,2,0,0,0,0,0,0,2,2,0,0,0,2,2,1,1,1,1,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,2,2,0,0,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,2,2,1,2,1,1,1,2,1,1,1,1,1,0,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0]),Lc=new Uint16Array([0,0,0,10,11,18,106,111,117,124,130,136,145,146,147,148,149,150,151,153,154,155,157,159,226,239,241,242,243,258,265,266,269,270,271,274,276,295,296,298,307,312,313,331,332,335,337,338,340,374,375,377,380,381,385,387,391,394,426,429,442,443,451,452,454,464,478,479,480,489,490,527,532,548,568,574,615,616,643,670,671,819,825,828,829,830,835,840,849,871,872,873,874,875,876,877,895,897,898,901,903,904,906,908,923,938,943,944,946,947,948,949,950,952,955,960,961,962,964,965,968,971,972,973,986,988,1e3,1011,1019,1021,1061,1064,1068,1069,1071,1074,1085,1087,1097,1099,1105,1107,1108,1110,1113,1114,1115,1167,1169,1171,1191,1192,1193,1194,1196,1207,1238,1249,1261,1270,1277,1282,1295,1306,1319,1320,1331,1365,1366,1367,1382,1397,1469,1470,1472,1473,1507,1508,1509,1512,1516,1518,1547,1548,1556,1557,1558,1560,1562,1563,1565,1566,1567,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1594,1595,1596,1598,2053,2056,2057,2059,2066,2073,2083,2087,2098,2099,2100,2112,2113,2115,2117,2118,2125,2126,2128,2129,2131,2132,2133,2134,2135,2209,2211,2232,2233,2234,2236,2262,2263,2314,2315,2317,2324,2330,2340,2350,2403,2404,2405,2415,2429,2430,2433,2440,2441,2449,2450,2451,2452,2453,2464,2465,2466,2468,2469,2470,2471,2473,2483,2495,2501,2533,2537,2539,2540,2542,2543,2554,2555,2557,2565,2572,2578,2583,2584,2590,2593,2599,2606,2607,2614,2622,2623,2624,2662,2668,2683,2684,2689,2707,2738,2756,2758,2761,2769,2771,2778,2830,2854,2855,2856,2857,2858,2859,2860,2861,2868,2869,2870,2871,2872,2873,2875,2876,2880,2964,2977,2978,3414,3418,3432,3484,3512,3534,3592,3614,3629,3692,3743,3781,3817,3842,3984,4030,4081,4100,4134,4149,4169,4199,4230,4253,4284,4314,4346,4373,4448,4470,4508,4518,4552,4571,4597,4639,4689,4715,4784,4785,4787,4810,4833,4869,4900,4917,4974,4987,5011,5040,5042,5076,5092,5120,5425,5434,5443,5450,5467,5471,5477,5516,5518,5525,5532,5541,5548,5549,5560,5563,5578,5579,5588,5589,5598,5607,5613,5615,5616,5617,5653,5654,5656,5664,5671,5684,5688,5690,5691,5697,5704,5718,5728,5733,5741,5749,5755,5756,5760,5762,5763,5775,5776,5777,5778,5780,5781,5784,5786,5789,5793,5794,5800,5801,5802,5804,5806,5808,5809,5810,5813,5815,5818,5819,5821,6019,6026,6027,6037,6042,6059,6073,6082,6083,6084,6088,6089,6091,6093,6099,6100,6103,6104,6106,6107,6108,7008,7009,7013,7031,7040,7043,7050,7051,7053,7054,7055,7057,7109,7110,7113,7114,7231,7232,7243,7254,7261,7264,7273,7274,7275,7290,7345,7536,7538,7539,7541,7546,7559,7574,7581,7590,7593,7596,7603,7611,7615,7616,7617,7631,7635,7644,7645,7646,7650,7685,7686,7703,7710,7718,7719,7724,7732,7776,7777,7783,7786,7797,7802,7803,7806,7839,7840,7846,7853,7854,7863,7872,7887,7891,7943,7944,7949,7951,7954,7956,7957,7958,7967,7981,7989,8003,8015,8016,8018,8020,8042,8053,8059,8060,8072,8084,8171,8183,8185,8194,8197,8203,8228,8231,8232,8233,8235,8238,8241,8252,8254,8256,8284,8358,8365,8369,8370,8379,8401,8402,8407,8408,8487,8489,8491,8500,8504,8510,8516,8522,8532,8537,8538,8556,8567,8572,8577,8587,8593,8597,8603,8609,10217,10218,10219,10226,10228]),Vc=new Uint8Array([3,3,3,3,3,3,3,3,5,8,8,2,2,3,3,3,3,3,8,5,5,5,5,5,3,3,5,5,9,12,19,8,19,8,11,9,9,8,7,7,6,8,9,16,10,7,7,11,8,6,6,9,7,11,7,14,4,4,4,4,4,4,10,7,6,6,6,6,10,10,6,10,10,22,11,9,10,10,10,9,10,8,7,7,7,8,21,13,11,11,9,10,9,13,10,8,8,9,12,9,7,10,7,7,13,7,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,8,6,3,3,3,3,3,3,2,5,3,3,3,7,2,2,2,2,2,2,3,3,3,1,1,7,8,5,2,2,7,2,2,1,4,1,11,9,9,5,5,8,5,5,5,5,5,5,5,3,3,3,3,3,5,11,9,9,13,7,14,7,6,6,6,7,6,6,6,6,6,10,7,11,9,4,4,4,4,4,4,6,6,6,6,6,8,7,10,9,9,9,8,9,8,10,6,9,9,8,10,10,7,8,1,9,10,12,12,12,10,9,9,10,10,9,9,1,1,5,3,3,3,3,3,3,3,3,3,3,3,3,6,6,6,4,3,3,3,7,4,4,4,3,3,6,7,3,4,1,2,2,2,6,1,2,2,2,2,2,12,5,3,8,9,13,4,4,13,9,9,11,7,3,12,9,2,2,2,3,3,3,3,3,8,2,2,3,3,3,3,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,4,4,3,7,10,15,7,15,15,20,15,9,10,10,12,14,14,14,12,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,13,13,9,9,9,9,9,9,7,8,6,8,8,6,8,13,8,8,6,13,8,11,13,8,6,13,8,6,9,10,10,12,14,14,14,12,12,12,12,14,14,10,10,10,10,9,9,9,10,14,14,11,13,13,9,9,9,9,9,9,2,6,9,2,2,3,3,3,3,3,3,3,3,3,4,4,4,2,3,3,3,3,3,3,7,7,2,3,2,2,5,3,3,3,3,3,3,4,2,2,2,2,2,2,3,3,3,3,3,3,3,4,5,7,2,2,12,8,10,8,10,7,18,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,2,3,3,3,5,5,3,8,8,6,8,6,6,4,6,7,7,7,10,11,2,5,5,3,3,3,3,3,3,5,5,6,11,10,7,7,7,4,4,4,2,3,3,3,3,3,2,7,5,5,3,3,3,3,3,3,3,3,7,7,7,11,7,6,9,6,6,8,10,8,6,8,13,4,4,4,4,4,10,8,11,8,8,8,10,10,7,10,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,7,10,13,7,8,7,11,8,8,6,9,8,8,6,6,6,8,8,6,6,6,6,6,9,7,6,4,4,4,4,4,4,4,6,6,6,9,7,8,10,8,8,2,3,3,3,3,3,2,8,9,9,2,2,2,3,3,3,2,3,3,3,9,2,2,3,3,3,3,3,3,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,12,5,5,3,5,4,2,3,2,4,3,9,2,2,2,2,2,5,5,3,8,8,13,6,10,9,4,7,9,11,2,3,7,3,3,4,1,3,4,2,9,3,3,12,5,3,7,10,10,7,4,4,6,14,7,9,7,13,2,2,2,2,2,2,3,3,3,3,3,8,15,4,4,2,3,3,3,7,4,9,9,2,3,3,3,5,3,2,2,7,2,7,6,6,7,2,4,2,2,2,2,2,2,8,8,8,9,5,2,3,3,3,3,3,3,10,7,4,4,4,4,3,4,2,3,3,3,3,3,10,7,4,4,4,4,2,3,3,3,3,10,7,4,4,4,4,3,9,6,6,6,9,13,9,2,2,2,8,7,9,5,3,3,3,5,5,12,9,10,7,8,7,6,8,6,11,12,7,9,10,4,4,7,8,11,6,7,9,8,7,10,8,9,15,7,8,5,4,7,2,3,3,3,2,14,10,2,14,10,2,14,3,9,13,13,10,14,16,17,11,2,14,2,14,3,9,13,10,14,16,17,11,14,10,14,2,7,3,10,7,14,10,2,14,10,9,9,17,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,10,10,10,12,9,4,10,11,8,8,8,7,9,5,3,3,3,3,3,3,3,3,5,8,4,4,4,4,4,4,6,16,3,3,14,3,14,2,14,9,13,10,10,14,16,17,11,6,9,10,10,12,14,14,14,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,9,9,9,9,9,9,2,14,9,13,10,10,14,16,17,11,6,2,14,9,17,13,10,10,14,16,17,11,6,2,14,9,13,10,14,16,17,11,2,14,9,13,10,16,11,2,14,10,19,7,2,14,9,13,10,19,10,7,14,16,17,11,6,2,14,9,13,10,19,7,14,16,17,11,2,14,9,13,17,13,10,10,14,16,17,11,6,3,2,14,9,13,10,10,14,16,17,11,6,9,10,12,14,14,14,12,12,12,12,12,14,14,14,10,10,10,14,9,9,9,9,14,14,14,13,13,14,9,9,9,9,9,9,4,11,2,14,9,13,17,13,10,19,10,7,14,16,17,11,6,2,14,9,13,17,13,10,19,10,7,14,16,17,11,6,2,9,10,10,7,17,3,3,12,12,16,15,15,12,14,14,14,20,20,13,12,12,12,12,12,12,20,25,14,14,12,12,10,10,10,10,9,9,9,25,4,9,17,10,7,14,16,21,13,13,14,20,14,13,17,24,9,12,13,25,13,21,20,17,9,9,9,9,9,9,12,17,4,4,9,9,9,10,10,12,14,14,14,12,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,13,13,9,9,9,9,9,9,1,8,7,11,11,1,3,3,3,4,8,9,10,14,14,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,13,13,9,9,9,9,9,7,4,4,4,4,4,4,4,4,4,4,9,12,6,14,4,12,7,2,2,1,2,7,6,4,4,4,6,8,8,7,4,5,6,3,3,3,3,4,16,8,3,5,4,3,3,3,5,2,2,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,11,12,7,7,13,9,10,12,8,9,7,8,5,12,10,13,14,5,5,5,13,5,5,5,3,3,3,5,16,5,5,5,5,5,7,12,14,8,12,8,10,12,9,11,7,9,7,10,7,13,9,7,12,8,17,7,7,16,10,13,13,8,10,10,14,17,7,16,16,15,8,10,10,12,17,7,17,14,7,10,17,8,7,7,7,8,15,15,7,14,10,10,10,11,11,7,7,13,8,10,7,16,7,8,7,14,17,12,10,11,21,8,9,7,13,9,8,13,6,12,7,6,13,10,10,10,8,18,9,17,13,10,12,6,13,6,11,8,13,10,13,18,13,11,13,8,16,7,10,8,16,12,10,8,8,6,14,11,8,15,8,8,7,7,12,7,8,9,14,15,8,9,10,9,15,7,8,8,12,13,9,10,15,15,13,7,10,10,20,7,6,9,6,6,14,11,14,11,12,9,10,16,16,12,7,11,28,8,11,10,7,21,8,7,9,4,4,4,17,7,8,6,9,6,6,13,6,6,6,6,18,20,14,8,11,12,9,10,13,15,19,8,9,12,7,10,16,12,9,9,9,14,12,11,9,12,11,18,9,9,9,10,7,7,16,8,9,7,13,12,10,18,7,8,11,7,7,8,8,13,7,7,7,11,15,13,11,7,8,15,11,7,8,18,14,13,18,15,10,12,12,9,7,11,11,8,7,10,8,14,12,10,18,7,10,9,7,8,13,10,14,9,10,8,8,23,7,7,11,12,12,17,7,7,11,11,17,16,16,7,8,11,14,14,8,10,7,7,16,16,13,9,11,9,15,15,11,11,7,7,14,7,9,7,7,16,10,13,10,11,14,7,11,10,11,7,11,10,11,15,11,15,10,12,17,10,14,13,11,11,12,13,10,7,13,10,16,12,21,9,10,10,7,11,14,17,7,7,8,11,12,8,15,14,14,8,17,12,10,10,7,9,11,7,10,7,11,18,7,11,7,12,11,8,8,14,12,7,8,15,3,7,7,5,2,9,2,2,2,2,2,2,2,3,3,3,3,3,3,3,2,5,3,3,3,3,3,3,4,4,3,3,3,3,3,3,5,11,6,4,7,10,7,7,11,1,10,2,2,3,3,3,3,3,3,3,3,5,7,3,5,6,3,3,5,2,2,5,3,4,13,11,3,3,6,3,5,14,2,2,3,8,2,2,12,5,18,5,3,3,3,16,5,5,5,10,7,13,12,13,9,12,14,19,9,9,21,9,9,10,6,9,6,15,10,6,12,8,6,10,15,4,4,6,6,9,9,12,16,14,23,7,7,7,14,9,7,7,11,14,10,7,10,10,10,12,6,11,10,13,11,15,11,7,12,10,3,7,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4,3,7,2,5,5,3,3,5,5,5,5,7,6,6,6,4,4,4,4,4,4,6,6,6,6,6,7,10,2,2,2,5,5,5,5,3,3,3,3,3,5,5,10,9,11,8,7,12,8,9,7,6,13,11,6,13,7,9,9,4,4,4,4,4,4,6,10,7,8,13,8,8,9,14,8,10,7,7,7,9,6,9,7,2,12,5,3,3,13,4,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,4,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,4,4,4,4,4,4,4,4,4,4,4,4,9,3,3,3,3,3,3,3,3,3,3,4,2,2,2,5,3,3,3,3,3,3,3,3,4,4,1,7,6,4,12,3,3,3,3,3,8,7,3,3,3,3,3,3,4,4,11,14,2,8,3,5,5,8,10,8,6,4,7,17,7,4,5,2,6,3,5,2,4,4,2,12,5,5,3,15,13,10,8,11,2,2,3,3,3,3,3,3,3,3,4,4,5,3,3,3,3,4,18,2,12,5,3,3,3,3,3,5,16,8,8,9,6,6,4,4,4,4,31,6,6,10,11,21,10,9,7,10,7,7,2,4,4,4,4,6,5,3,3,4,3,3,3,3,3,3,3,3,3,6,6,6,2,2,2,5,3,3,3,7,7,4,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,8,2,3,3,3,3,3,5,9,11,3,3,3,3,4,4,3,3,3,3,3,5,10,9,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,11,10,10,10,10,10,11,10,11,10,11,10,9,9,11,3,3,3,3,3,3,5,3,7,8,8,7,6,6,11,4,4,4,7,8,9,9,2,3,7,4,4,2,5,5,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,2,2,5,5,5,5,5,3,3,5,5,5,7,7,6,6,6,4,4,4,4,4,4,4,4,4,4,6,6,8,8,1,2,2,2,2,2,2,3,3,3,3,3,3,3,4,4,6,9,12,3,7,10,7,2,2,3,3,3,3,3,4,3,3,2,2,2,2,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,8,8,6,6,8,6,7,4,4,4,4,4,4,6,7,5,5,20,19,8,10,9,7,10,6,8,11,6,6,6,6,13,12,8,6,7,14,11,9,2,5,3,3,6,2,3,2,2,2,2,2,2,2,5,4,3,7,6,4,7,4,3,6,4,7,2,7,7,7,5,5,5,5,3,3,3,3,3,3,3,3,3,3,5,9,10,10,8,11,7,8,20,7,8,9,8,12,6,6,6,8,9,8,12,6,6,8,13,10,12,6,6,7,7,8,9,6,4,4,4,4,4,4,4,10,6,6,6,7,14,11,10,7,8,10,8,11,14,11,11,9,7,9,8,11,9,17,10,9,2,2,2,9,3,3,3,3,15,14,9,5,5,2,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,15,12,22,19,17,18,18,19,21,7,16,16,5,5,5,5,5,5,5,5,5,5,5,7,5,5,5,5,5,5,5,5,5,5,5,9,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,7,16,11,11,7,7,7,7,17,7,8,12,15,9,19,7,19,8,16,21,11,12,19,14,22,7,7,7,7,7,7,7,7,7,7,7,16,16,19,24,12,7,14,7,12,7,8,10,10,13,7,12,12,7,7,10,18,15,12,16,7,14,12,17,10,16,17,12,17,25,7,7,7,13,6,9,6,9,18,6,6,11,20,10,6,6,6,6,6,6,6,17,6,6,6,15,6,6,6,6,6,8,14,11,12,15,13,19,17,21,7,18,8,13,13,8,12,8,6,6,13,6,15,15,16,6,6,16,6,6,6,14,6,18,6,6,6,17,18,9,13,15,8,19,8,15,15,18,14,16,4,4,4,4,4,4,4,4,4,4,4,4,6,11,10,11,6,21,23,12,17,12,11,14,13,22,15,15,11,12,14,12,7,12,8,14,12,18,10,8,16,19,17,12,14,15,8,9,19,17,12,13,13,15,18,13,23,24,23,21,17,24,8,21,8,14,14,16,14,8,8,15,20,8,19,21,9,8,13,12,13,15,11,8,11,9,9,8,11,8,21,14,21,15,15,13,7,19,7,7,7,7,7,7,16,12,17,18,7,7,11,11,7,9,9,2,2,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,4,5,5,5,5,5,5,5,5,3,3,10,10,7,9,7,7,7,6,8,6,6,6,6,6,6,6,7,6,8,6,6,9,7,7,7,4,4,4,4,4,4,4,4,8,9,8,7,8,7,8,10,7,5,5,5,5,5,5,3,9,7,7,8,6,6,6,6,6,6,6,6,9,6,6,9,11,13,7,8,9,9,5,5,5,7,8,6,6,6,6,6,6,6,7,8,9,7,10,9,10,7,8,5,5,5,5,5,5,7,7,9,8,7,7,6,6,6,6,6,6,10,6,6,6,6,6,6,6,6,6,6,6,9,10,4,4,4,4,8,7,7,10,10,9,8,8,15,9,8,8,8,8,8,9,10,9,10,7,8,13,5,5,5,5,5,3,3,7,7,8,6,6,6,4,4,11,9,7,8,9,10,7,5,5,5,5,5,3,3,7,6,6,13,7,9,8,7,5,5,5,5,5,5,5,5,3,3,3,3,7,8,7,8,13,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,8,6,6,6,6,7,6,7,6,6,9,7,4,4,4,4,4,4,4,7,8,7,8,9,8,8,8,7,10,7,8,5,5,5,5,5,5,5,5,3,7,7,7,7,9,7,10,9,6,6,6,6,6,8,8,6,6,6,7,6,6,6,9,9,4,4,13,7,10,9,9,12,7,8,8,10,8,8,8,8,8,8,5,5,5,5,3,7,7,11,7,9,8,8,6,6,10,6,8,8,8,6,7,6,6,12,4,4,4,4,4,4,4,4,4,9,8,8,16,8,9,8,7,5,5,5,5,5,3,3,7,7,7,10,15,8,9,8,9,9,6,6,6,6,6,6,7,4,8,7,8,8,7,8,11,8,5,5,5,5,5,3,7,7,6,11,16,7,6,4,4,4,4,9,9,8,8,8,13,12,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,11,7,8,8,9,13,7,7,7,9,8,8,9,12,7,12,7,12,8,7,10,12,9,9,6,6,8,8,6,6,6,6,6,6,6,9,8,9,11,8,6,6,6,6,6,12,7,6,6,6,9,7,7,6,6,6,6,6,11,9,6,6,6,6,6,7,9,4,4,4,4,4,4,4,4,9,9,9,9,7,7,7,7,7,11,7,7,8,8,8,8,8,8,9,8,9,9,7,7,11,11,7,12,8,8,8,8,8,7,8,8,8,8,8,13,12,8,8,8,8,7,7,7,9,5,5,5,5,5,5,5,3,3,7,7,11,7,8,8,8,6,6,6,6,6,6,6,6,6,6,6,10,11,6,7,9,4,4,4,4,4,4,9,9,8,9,8,8,8,7,7,5,5,5,5,5,5,5,5,5,5,3,3,11,7,7,7,9,6,6,11,8,10,6,6,6,12,8,8,7,6,6,8,7,4,4,4,4,4,4,4,4,9,10,9,9,8,10,9,11,8,5,5,5,7,6,6,8,7,4,4,4,4,8,7,7,8,7,8,8,5,5,5,5,7,7,8,8,8,6,6,6,6,6,10,8,9,13,6,7,6,6,8,7,8,4,4,4,4,11,8,8,8,10,5,5,8,7,8,13,8,7,6,8,6,9,7,8,7,5,5,5,5,5,5,3,3,7,8,9,6,4,8,10,10,8,12,9,13,2,7,5,5,5,5,5,7,7,10,6,6,6,6,6,6,6,8,4,4,9,8,8,8,14,8,8,8,9,8,5,5,5,5,5,3,3,9,6,6,6,6,10,12,6,6,6,6,6,6,6,4,4,4,4,11,8,7,8,8,8,5,5,3,3,3,3,7,7,6,8,6,8,11,7,6,6,6,7,4,8,11,9,10,5,5,5,3,3,3,7,7,8,9,8,15,9,6,6,6,6,6,6,11,11,4,4,4,4,4,7,9,9,10,8,7,5,5,5,5,5,5,3,3,8,6,6,6,6,6,6,6,6,6,9,7,4,4,4,4,4,9,9,8,8,10,13,5,5,5,3,17,7,7,7,7,7,8,6,8,13,6,6,6,6,6,6,6,6,4,4,4,9,10,8,8,8,5,5,5,5,3,7,7,7,8,8,6,6,6,8,8,8,9,10,8,4,8,10,9,8,8,8,9,13,10,5,5,5,5,5,5,5,5,5,5,3,3,7,8,9,9,7,7,7,10,9,9,8,9,8,8,8,6,6,6,6,6,6,6,6,6,6,6,6,6,8,12,6,6,6,6,6,6,6,6,6,12,4,4,4,4,4,4,4,4,4,4,4,11,8,8,9,9,10,8,9,7,7,5,5,5,5,5,5,3,7,8,7,6,6,8,6,6,10,4,7,8,9,12,8,7,7,5,5,5,5,5,5,3,3,7,14,7,9,8,8,6,6,8,12,12,6,6,7,7,10,4,4,4,4,4,9,9,14,9,13,8,7,5,5,5,6,6,6,7,4,8,7,5,5,5,5,5,5,5,5,3,3,7,7,7,8,6,6,6,6,6,6,12,6,6,6,6,4,4,9,9,8,8,11,7,7,7,5,5,5,3,9,8,6,6,7,4,4,4,4,4,4,8,8,11,5,5,5,7,7,7,9,6,6,6,6,6,6,9,8,4,4,4,4,7,12,9,8,8,8,7,10,10,5,5,5,5,5,5,5,3,11,14,8,7,8,8,6,6,6,6,6,8,7,6,6,6,7,6,8,9,4,4,4,7,8,9,7,9,7,7,9,8,5,5,5,5,5,5,5,5,5,11,3,9,7,7,12,14,8,6,6,12,11,8,6,6,6,6,6,6,6,6,6,15,7,4,4,4,16,9,9,9,8,9,9,9,9,9,8,8,8,13,11,8,5,5,5,5,3,7,6,6,8,8,8,6,6,7,10,7,4,4,4,4,9,7,8,7,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,7,7,9,6,6,6,6,6,8,8,7,7,9,6,6,6,7,6,6,6,6,6,15,4,4,4,4,4,8,8,7,8,12,9,8,8,8,8,8,9,8,8,10,8,8,8,8,16,9,10,2,5,5,5,5,5,5,5,9,7,6,8,9,4,4,4,4,4,7,8,8,8,9,8,11,10,5,5,5,5,3,7,8,6,6,6,6,6,8,6,6,6,6,4,12,10,12,7,7,7,7,7,7,7,5,5,5,5,3,3,7,7,10,8,9,7,6,10,7,6,6,4,4,8,9,7,9,9,9,9,8,8,8,8,10,5,5,5,5,5,5,8,7,6,6,6,10,6,7,10,7,4,4,4,4,4,4,4,12,9,10,7,7,10,8,10,5,12,9,6,6,6,6,6,7,6,4,4,4,10,9,9,8,7,7,5,5,5,5,5,5,3,3,13,7,7,9,7,7,7,8,9,9,7,8,6,6,6,6,6,6,6,6,6,6,6,6,6,7,13,9,15,15,4,4,4,4,4,10,10,9,8,9,8,8,9,7,8,7,8,5,5,7,6,6,6,4,4,4,7,8,11,8,5,5,5,5,5,5,5,7,6,6,6,6,6,6,9,11,10,7,4,4,4,9,8,8,5,5,5,5,5,9,9,6,6,6,6,6,6,6,9,9,4,4,4,4,8,8,8,9,9,8,8,8,13,2,4,2,7,5,5,5,5,5,5,9,9,6,6,6,6,10,8,8,8,6,6,6,4,4,9,8,10,8,9,8,8,8,9,8,8,5,3,3,3,11,6,6,6,7,6,6,6,4,4,9,8,5,5,5,5,5,3,11,8,6,6,6,6,6,9,7,4,4,14,10,9,8,12,8,8,8,11,15,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,11,11,11,10,10,7,7,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,5,5,5,3,3,3,7,11,7,7,11,11,7,8,9,10,7,7,9,9,9,9,7,7,10,8,13,8,8,8,8,11,10,6,6,8,10,11,14,14,6,6,6,6,6,6,9,11,7,7,6,8,12,11,11,6,6,10,6,6,6,6,6,10,7,7,6,6,11,6,6,6,11,8,9,7,6,10,11,9,10,11,7,11,8,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,6,6,8,9,10,9,6,6,6,10,6,6,6,6,11,10,11,10,9,8,7,7,7,7,11,14,8,10,9,9,8,8,7,11,8,8,8,11,11,10,10,9,10,8,11,10,8,11,9,12,8,10,8,11,8,9,9,11,11,10,11,13,8,7,8,8,9,7,8,8,8,8,7,8,2,2,2,2,2,2,2,4,4,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,4,2,3,3,3,3,3,3,3,3,8,6,4,4,4,11,7,11,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,5,3,3,3,3,8,7,7,8,8,4,8,7,7,7,9,7,8,9,8,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,3,3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,4,5,5,3,8,8,6,9,4,4,10,7,3,3,3,2,5,3,3,3,3,3,3,3,3,3,3,3,3,4,3,2,2,2,3,3,3,3,3,4,10,2,3,3,3,3,3,3,3,4,2,3,3,3,3,3,3,3,3,2,2,3,3,3,5,2,4,2,6,2,2,9,5,5,3,3,3,3,3,3,3,5,5,5,9,8,7,6,6,11,4,4,4,4,4,4,4,4,6,6,7,7,11,8,8,6,5,11,2,3,3,3,3,3,3,3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,3,6,4,4,4,4,3,3,3,3,5,7,2,3,3,3,3,3,8,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,6,4,4,4,4,2,2,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,3,2,3,3,3,3,3,6,3,3,8,10,3,4,4,1,1,1,1,1,1,1,8,9,10,7,7,1,1,3,8,7,7,8,8,8,1,6,1,1,6,3,3,4,7,3,5,5,4,4,4,4,4,2,7,7,8,12,3,4,5,1,3,4,4,10,4,3,3,3,8,7,7,2,2,2,2,2,2,2,2,2,12,9,20,7,5,5,5,9,13,5,5,5,5,5,3,3,3,16,5,5,5,13,7,8,8,11,8,7,9,7,11,12,9,9,8,8,11,10,14,7,12,10,11,13,7,9,11,17,17,14,13,7,8,7,10,10,7,16,13,7,8,17,12,9,8,6,7,10,6,6,12,6,8,10,8,8,8,6,8,6,14,6,6,6,13,6,10,6,6,7,14,8,6,6,10,11,10,9,9,7,7,6,6,6,9,9,7,9,10,9,13,12,4,4,4,4,4,4,4,4,4,6,6,6,8,8,6,8,9,10,9,7,10,10,8,7,8,7,10,12,9,8,15,8,7,8,8,7,7,15,13,7,10,9,14,18,16,7,24,7,8,10,11,16,8,14,7,9,9,9,11,13,19,14,15,14,11,7,13,9,10,7,13,9,10,11,12,8,9,2,3,5,8,7,4,4,10,5,3,3,3,3,3,5,4,4,4,2,2,2,2,2,1,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,2,2,2,3,3,3,3,3,3,3,3,3,3,4,2,12,5,3,8,10,15,6,7,2,3,2,5,5,12,2,5,5,5,5,2,2,5,5,12,9,5,2,2,9,5,5,12,12,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,12,5,8,8,9,5,5,5,8,19,7,16,15,14,9,9,9,9,7,11,11,11,7,14,10,10,5,5,5,5,5,5,5,5,5,15,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,9,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,14,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,15,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,9,12,9,9,12,12,12,15,7,11,7,14,11,18,13,8,18,15,18,12,14,12,8,8,8,8,9,9,9,12,7,10,10,8,8,12,12,12,7,12,12,9,7,7,7,7,7,8,15,12,9,10,10,7,10,10,13,11,10,9,22,11,9,8,8,8,8,8,13,18,13,9,15,19,9,7,7,10,7,7,7,11,8,13,17,7,7,10,10,10,7,20,16,7,7,7,7,7,7,11,21,12,12,13,11,14,16,8,8,13,11,7,7,13,7,7,14,15,15,6,6,6,6,6,6,6,6,6,6,13,10,18,6,6,6,6,6,6,6,6,6,11,8,8,12,12,11,11,8,12,9,9,9,13,13,9,9,9,9,9,9,6,10,12,6,6,6,6,17,11,7,7,7,7,14,14,12,6,7,7,6,6,15,10,13,10,6,8,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,13,9,9,15,13,6,12,12,6,19,11,10,7,7,16,8,19,17,9,9,9,9,9,6,6,6,10,8,16,8,6,6,9,6,6,6,6,6,6,6,6,8,8,8,6,7,6,6,6,6,6,6,6,6,6,6,6,14,6,6,6,6,20,6,9,6,14,9,9,9,6,9,8,8,12,9,8,8,8,8,7,8,12,7,8,8,8,6,8,6,6,6,6,6,6,6,9,8,8,6,6,13,9,12,13,12,14,13,12,11,11,6,8,8,8,6,13,12,11,11,12,6,11,12,11,13,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,6,6,6,6,6,6,6,13,6,6,6,6,6,6,6,6,6,6,6,6,6,8,8,8,8,6,18,6,12,13,13,13,9,10,15,9,12,6,6,6,6,6,6,6,6,9,15,10,9,10,13,9,19,8,18,17,10,10,8,8,6,6,6,6,6,6,10,14,8,16,16,9,8,15,8,8,10,12,14,7,7,8,8,7,7,7,7,8,13,13,11,9,9,9,12,10,17,8,11,9,7,7,14,8,14,14,7,7,7,7,7,7,14,7,7,7,7,7,10,10,8,14,7,7,7,7,8,8,8,8,8,17,9,7,15,7,8,12,7,9,14,7,7,7,9,13,8,14,7,16,18,13,15,14,12,13,10,15,9,7,7,7,10,13,15,15,9,9,9,9,19,11,7,11,11,13,8,8,8,8,7,12,19,17,9,9,13,7,7,7,9,7,7,7,12,13,15,10,8,8,14,15,12,13,13,8,12,14,7,11,7,14,15,13,12,8,8,8,8,11,13,15,15,8,13,12,8,8,8,13,10,16,14,11,8,8,12,12,9,15,15,12,12,13,8,8,9,12,13,9,8,8,8,8,8,8,8,8,8,8,8,11,12,11,7,14,7,13,13,13,12,18,16,7,12,11,10,10,15,9,9,9,21,7,7,7,11,16,8,8,11,11,7,7,7,7,7,19,7,7,7,7,7,7,7,7,7,12,8,9,12,14,11,9,9,9,22,12,3,8,8,15,4,2,2,5,5,3,3,3,3,3,3,6,6,4,4,4,12,7,10,2,3,3,3,3,3,3,3,6,7,3,7,5,14,4,4,7,8,10,4,1,3,3,6,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,4,2,2,5,3,4,2,2,2,2,2,2,11,5,5,5,11,5,5,3,5,5,5,5,11,14,13,9,11,9,12,8,11,11,8,11,16,9,9,7,10,9,12,8,15,6,7,6,6,13,10,8,11,8,6,6,6,12,16,6,11,7,8,9,18,6,6,9,4,4,6,13,6,6,6,6,8,8,9,16,7,7,14,7,8,8,8,7,7,7,7,7,7,15,13,7,10,7,7,10,12,16,15,7,9,9,14,11,11,10,9,10,8,12,7,8,7,7,10,12,7,12,8,7,2,3,3,3,3,3,3,3,3,3,3,5,3,3,5,5,5,10,4,8,7,10,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,7,4,5,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,8,2,2,2,8,12,7,7,5,5,5,5,5,5,5,5,5,5,5,5,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,7,11,9,8,8,8,7,8,9,7,7,9,7,7,7,10,7,7,10,9,10,6,6,6,6,6,6,15,7,8,9,9,8,6,6,10,9,6,8,13,9,7,6,6,6,6,6,6,12,6,6,7,6,7,6,6,6,10,10,7,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,14,6,6,7,7,9,6,6,6,6,9,9,8,9,10,9,8,9,12,7,7,7,8,7,10,12,11,9,10,7,7,7,9,10,10,8,12,9,7,7,9,8,8,8,10,7,7,8,9,9,7,7,7,8,2,4,6,3,4,2,3,3,3,3,2,3,3,3,3,3,3,3,3,4,4,4,4,5,5,3,3,3,3,3,3,3,3,5,8,6,4,7,3,3,3,3,3,3,3,12,3,3,3,3,3,3,4,4,2,3,5,3,4,7,3,3,3,3,3,3,4,3,3,3,3,3,3,3,4,3,3,6,4,3,4,2,2,2,5,3,3,3,3,3,5,4,4,4,4,7,6,8,9,2,2,2,2,3,3,3,5,7,2,3,3,8,7,7,2,2,8,5,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,8,8,7,7,6,10,6,9,7,11,4,6,8,8,7,8,4,5,5,5,3,3,11,8,9,6,6,8,7,4,4,7,8,7,2,2,3,3,3,3,4,3,3,3,3,3,3,3,3,7,2,2,5,3,3,2,3,3,3,3,3,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,12,5,5,3,3,3,5,10,12,6,15,4,6,6,7,14,9,3,3,3,3,3,8,2,2,3,5,3,3,3,3,3,3,8,8,8,7,5,8,4,6,11,2,2,6,7,2,9,8,5,5,3,3,5,5,7,7,6,6,10,6,6,8,9,7,4,4,4,4,7,6,6,7,7,10,9,8,11,8,3,3,3,3,3,4,4,2,3,3,3,3,3,7,6,2,5,6,7,6,4,8,9,11,2,2,3,3,3,3,3,3,3,2,2,5,3,3,3,3,3,9,9,6,4,8,7,7,5,9,8,6,8,7,8,5,5,5,5,5,3,3,3,16,8,7,7,7,8,7,7,7,7,9,6,9,6,10,7,7,7,6,10,8,9,11,11,8,4,4,10,8,8,6,9,6,11,8,8,8,15,7,8,9,5,3,3,3,3,3,5,11,2,2,3,8,9,10,3,2,2,2,2,2,2,3,6,4,2,2,3,3,3,3,3,3,3,3,3,3,4,4,2,3,3,3,3,3,3,3,11,5,3,3,3,3,3,3,3,3,6,7,4,4,2,3,3,3,3,3,3,3,3,12,7,4,12,4,6,5,4,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,3,3,3,3,3,3,3,3,4,4,11,10,6,4,6,10,8,3,3,3,3,3,3,3,3,5,4,4,4,2,2,2,2,2,2,2,2,5,3,4,4,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,10,5,5,5,5,5,5,3,3,3,3,3,3,3,3,7,8,8,7,13,12,10,10,8,8,7,7,9,12,11,6,6,8,8,9,7,7,7,10,15,10,4,4,4,4,4,11,8,8,9,7,9,14,14,12,2,2,2,2,2,2,2,3,3,3,3,3,2,2,12,5,5,5,8,11,10,7,9,3,8,7,3,15,13,11,4,4,2,2,2,19,7,5,5,3,3,3,3,3,3,3,5,22,18,6,14,17,4,4,19,16,18,2,3,3,2,3,2,3,3,6,4,2,3,3,2,5,3,3,3,3,3,3,3,9,9,2,3,2,2,2,3,3,3,5,7,14,7,7,12,9,13,6,11,6,10,9,7,7,8,12,12,8,8,8,10,7,7,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,5,8,10,7,8,11,8,12,9,4,7,7,9,13,2,3,3,3,3,3,3,2,3,3,3,1,2,2,3,3,3,3,3,3,5,2,2,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,4,4,4,3,2,3,3,3,3,5,2,2,2,2,5,5,5,5,3,3,3,3,3,3,3,3,3,7,7,7,7,7,8,8,8,8,8,12,9,8,8,9,8,6,17,6,6,6,8,8,6,6,6,6,6,6,6,6,6,6,6,7,4,4,8,8,9,9,9,7,7,7,7,7,7,7,9,9,9,7,8,8,8,10,7,13,10,8,9,3,3,5,13,3,3,3,3,3,7,7,6,6,10,13,11,11,8,8,9,8,9,9,10,10,10,11,10,10,13,13,16,15,11,12,9,9,10,9,11,10,9,9,14,7,8,3,10,7,7,3,2,2,2,5,3,3,3,3,3,3,3,3,3,3,3,3,6,7,2,2,3,3,3,3,3,3,3,3,4,11,6,7,4,6,2,2,3,3,3,1,3,3,3,3,3,3,6,4,4,2,2,2,3,3,3,3,4,4,6,6,6,6,5,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,11,6,10,9,12,7,7,11,14,9,7,12,3,3,7,12,11,12,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,11,5,5,5,5,5,5,5,5,11,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,3,3,3,5,5,5,5,5,5,5,5,5,5,5,3,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,3,10,3,3,3,11,3,5,9,11,8,12,14,9,7,8,7,7,11,11,7,7,10,9,8,10,9,7,7,7,7,7,7,8,8,7,11,8,8,8,7,7,10,8,7,13,12,7,17,10,8,8,11,7,11,11,14,7,11,7,8,6,9,20,8,7,9,16,7,10,6,11,10,8,9,7,16,11,11,9,8,9,8,8,8,11,8,15,8,8,9,7,8,8,11,10,7,5,7,10,10,15,7,7,7,8,7,8,8,10,11,10,10,10,11,11,7,8,6,8,8,8,10,6,8,6,6,7,8,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,16,6,15,6,7,11,11,7,9,10,11,13,10,6,16,8,10,12,11,6,6,6,6,6,6,6,10,6,10,7,7,7,7,11,7,11,6,6,6,6,6,6,17,7,7,6,6,12,22,6,6,6,6,6,8,6,6,6,6,7,6,6,5,6,6,8,11,6,9,14,11,9,11,7,7,8,6,6,6,8,10,9,6,6,6,6,9,7,6,6,6,6,6,15,6,4,4,4,6,4,17,8,11,6,6,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,6,6,6,6,10,6,10,6,6,6,6,12,8,6,6,6,6,6,6,6,6,6,9,6,6,6,6,18,6,6,6,8,9,10,7,8,9,10,11,7,13,6,8,8,6,6,14,7,7,7,7,10,7,14,9,6,6,9,15,9,7,14,6,11,14,13,7,12,8,7,7,7,7,7,12,7,10,9,16,6,8,6,5,17,6,8,10,4,6,4,10,15,17,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,4,4,11,7,4,4,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,19,17,6,10,11,6,6,6,6,18,6,6,11,4,4,4,5,6,6,6,9,5,6,4,6,6,4,6,6,6,6,10,6,6,4,6,6,10,6,10,6,6,6,6,11,6,6,10,6,6,8,6,6,6,8,6,11,4,11,9,10,9,11,4,8,4,11,12,7,9,8,6,7,7,8,12,12,11,13,10,11,7,7,7,9,7,11,10,7,7,7,16,11,10,11,17,9,9,8,8,7,7,7,9,7,7,7,14,7,13,9,11,10,14,10,10,12,11,10,7,10,5,14,8,8,8,9,7,8,7,7,9,8,7,8,7,7,7,7,7,7,7,11,8,10,8,7,8,14,11,8,9,9,9,8,24,10,10,12,7,7,15,11,8,8,12,11,8,9,9,7,8,9,10,11,10,11,7,12,7,7,11,9,8,14,13,12,8,11,10,8,8,7,7,14,9,10,8,9,11,7,14,8,8,13,8,8,12,7,10,14,14,11,9,10,9,9,7,7,11,11,13,9,13,5,5,5,7,9,5,11,12,14,8,7,7,11,10,9,7,8,8,7,10,11,11,5,5,7,5,5,5,7,7,15,7,7,8,7,15,12,12,10,7,8,7,11,7,7,7,23,11,8,8,11,10,7,8,11,7,19,7,7,6,9,9,9,11,3,4,7,8,6,6,4,10,8,2,2]),Ry=new Uint16Array([0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,12,1,1,1,1,1,17,1,1,1,12,1,12,1,12,13,1,1,1,1,12,1,12,1,1,1,1,1,14,21,1,1,1,1,1,1,1,19,12,1,1,1,1,1,1,1,20,1,1,1,16,1,18,1,1,15,1,1,1,1,12,1,1,1,1,1,1,22,1,1,1,12,1,1,1,1,1,1,1,1,1,12,12,12,12,12,12,12,12,12,12,12,12,1,24,25,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,12,12,12,12,1,32,0,0,0,1,1,1,1,35,34,1,1,1,1,1,33,1,1,1,1,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,38,0,0,0,0,39,40,0,0,0,41,0,12,1,1,12,1,1,1,1,44,45,45,45,44,45,44,44,46,45,44,45,44,44,44,44,44,44,46,44,44,44,44,44,44,45,47,47,45,44,44,44,44,44,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,50,52,50,50,50,52,50,51,50,53,50,51,51,50,50,50,51,53,51,53,50,51,51,12,55,55,54,56,51,53,50,50,48,49,57,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,60,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,67,1,12,1,1,66,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78,0,0,0,0,0,0,0,0,0,0,0,0,0,76,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,12,1,1,1,1,89,1,91,1,1,1,1,1,1,1,1,94,1,1,1,1,1,1,1,1,1,1,1,1,0,1,97,97,1,1,12,1,100,1,1,1,1,1,1,1,98,1,99,1,101,1,1,1,1,1,102,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,110,111,1,1,1,1,1,1,113,113,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,121,122,1,1,1,1,1,1,1,1,1,1,1,1,1,122,1,1,1,1,1,1,1,1,1,1,122,1,1,1,1,1,1,1,1,1,126,123,125,120,1,124,1,1,114,1,1,1,1,117,1,127,1,1,1,1,1,119,1,108,1,109,1,12,128,106,1,112,1,1,1,1,1,107,115,1,12,12,12,118,116,1,1,1,1,1,1,0,0,0,0,1,12,12,1,1,1,1,1,12,134,1,1,1,1,1,1,1,1,1,1,1,12,136,1,1,1,1,1,1,1,1,137,138,12,12,135,133,45,45,140,50,50,139,142,141,1,1,0,0,0,0,0,0,0,0,0,0,0,0,145,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143,0,0,0,0,1,0,144,132,1,0,1,12,12,1,1,1,1,1,0,0,0,0,0,0,0,1,148,147,20,1,1,12,12,1,20,12,12,1,1,1,1,1,134,1,1,152,1,1,1,1,153,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,1,136,1,1,152,1,1,1,1,153,1,1,134,1,1,1,152,1,1,1,1,153,1,1,134,1,1,1,1,1,1,1,1,134,1,1,1,1,1,1,1,1,1,1,1,160,1,1,1,152,1,1,1,1,1,153,1,1,160,1,1,1,1,1,1,1,1,1,1,134,1,1,1,1,152,1,1,1,1,153,1,1,1,134,1,1,152,1,1,1,1,164,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,167,1,1,160,1,1,1,1,1,152,1,1,1,1,1,153,1,1,160,1,1,1,1,1,152,1,1,1,1,1,153,1,154,158,158,12,1,12,166,1,1,1,1,1,158,158,158,154,1,1,1,157,158,161,165,1,1,1,1,157,157,1,1,156,154,154,157,170,156,170,1,1,168,1,156,155,157,1,1,1,1,157,1,159,1,1,1,12,1,162,1,162,1,1,1,162,161,163,169,156,154,1,1,1,1,1,1,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,173,172,173,172,172,172,172,174,174,172,173,172,173,172,172,12,12,12,12,12,1,12,12,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,193,1,1,1,1,12,199,200,201,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,151,1,1,1,1,1,1,1,1,1,1,1,196,1,1,1,184,1,210,1,1,1,208,1,1,205,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,12,1,1,1,1,1,1,1,1,190,1,1,1,186,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,182,1,1,1,1,1,1,1,191,1,1,1,1,195,1,1,1,1,171,1,1,189,1,1,1,192,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,180,1,12,1,1,12,1,1,1,1,183,1,1,1,188,1,203,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,209,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,194,1,1,1,1,1,12,1,1,1,1,1,1,1,1,176,12,1,1,1,178,12,1,1,1,1,1,1,1,198,1,1,1,1,1,1,1,1,1,1,177,1,1,1,1,1,1,204,1,1,1,181,1,1,1,187,1,12,1,1,12,1,1,1,1,1,1,1,1,1,1,191,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,175,1,1,1,1,1,1,1,1,1,1,185,1,1,1,1,1,1,1,1,1,1,1,206,1,1,1,1,1,1,1,1,1,1,1,1,1,207,1,1,12,1,1,1,1,179,1,1,1,185,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,197,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,12,1,1,1,1,1,1,1,1,1,202,1,1,12,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,220,0,0,0,0,0,221,0,0,0,0,0,0,1,12,1,1,1,225,1,1,1,0,226,223,224,1,1,1,1,1,1,231,1,233,1,1,1,1,1,1,1,1,1,1,1,229,1,1,1,1,1,235,1,1,12,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,234,1,1,1,12,1,1,1,1,230,1,1,1,228,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,232,1,1,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,241,13,1,1,1,12,12,238,239,1,1,1,1,240,1,1,12,1,1,1,1,1,1,1,242,1,1,12,16,1,1,1,1,1,1,1,243,1,1,1,12,12,1,1,1,1,1,243,12,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,256,256,1,0,0,0,0,0,1,12,0,0,0,0,0,0,0,0,172,261,262,1,12,1,1,1,1,12,264,1,1,263,1,1,266,1,1,1,1,1,1,1,1,1,0,1,1,1,271,272,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,12,1,0,1,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,12,0,283,0,0,284,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,12,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,60,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,1,0,308,0,0,0,0,0,0,0,0,0,310,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,327,327,328,327,0,185,1,1,13,323,1,321,0,0,0,0,1,0,0,0,324,1,1,329,1,205,1,1,1,1,1,322,1,319,1,325,1,317,1,326,1,318,1,1,1,1,1,1,1,12,1,1,1,12,1,12,320,320,1,1,1,316,184,1,1,12,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,12,1,1,1,1,315,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,332,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,266,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,372,372,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,364,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,1,340,351,1,1,339,374,1,345,1,1,337,369,1,1,355,336,341,1,1,1,348,379,357,1,1,1,1,1,1,358,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,367,371,0,0,79,1,1,0,365,342,378,343,346,353,1,368,0,1,0,79,362,360,1,0,0,1,1,1,0,0,0,0,381,1,1,352,1,79,1,0,1,1,1,384,1,0,0,79,359,0,1,338,1,1,1,0,1,1,361,1,0,1,1,1,0,1,386,349,1,1,0,1,0,0,377,0,1,1,1,79,370,1,1,366,363,1,1,1,1,1,1,1,1,1,1,1,344,1,1,1,1,1,1,1,1,1,1,1,376,0,79,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,380,1,1,1,0,0,383,0,0,0,1,356,1,0,79,382,1,0,0,0,0,385,1,1,0,0,1,0,1,0,354,0,350,0,1,1,1,0,1,1,0,373,347,375,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,1,1,400,400,1,1,12,12,1,400,1,1,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,412,1,1,0,1,1,1,1,205,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,430,430,1,1,0,0,317,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,442,1,441,1,1,1,1,1,1,1,1,445,1,12,12,1,1,1,1,1,12,1,1,1,1,453,1,1,1,455,1,1,1,1,1,1,1,1,1,1,452,1,447,1,1,1,1,435,1,1,1,1,1,1,1,1,448,12,1,1,1,1,454,1,1,1,449,444,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,317,1,433,1,1,12,451,1,1,317,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,437,1,1,1,1,1,1,1,1,1,1,1,454,1,1,1,1,317,1,450,1,1,1,439,1,1,1,1,1,440,1,456,443,1,1,1,1,1,438,1,1,1,1,1,1,1,1,1,434,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,446,1,1,1,1,1,1,1,12,1,1,1,1,1,436,1,1,1,1,1,1,1,220,457,1,1,1,1,1,12,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0,0,462,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,12,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,466,466,466,466,466,466,466,0,466,466,466,466,466,1,466,466,466,0,466,466,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,471,470,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,475,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,469,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,477,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,474,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,467,0,0,478,473,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,472,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,467,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,476,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,12,1,1,1,1,1,1,1,1,1,1,1,1,488,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,198,198,1,492,1,1,1,491,1,1,1,1,487,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,489,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,493,1,1,490,1,1,1,1,1,1,1,1,372,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,494,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,505,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,1,0,0,12,1,507,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,12,12,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,1,1,1,0,0,0,1,0,0,0,1,60,1,1,12,12,12,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,526,1,1,1,1,1,1,1,527,1,1,1,1,1,1,1,525,1,1,12,1,529,239,1,1,12,12,1,1,12,1,12,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,533,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,539,1,1,1,1,1,1,1,1,1,1,1,1,1,1,132,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,107,1,1,12,1,1,1,12,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,548,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,144,1,1,1,228,1,1,12,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,572,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,577,1,220,1,328,1,1,1,1,1,1,1,1,1,0,0,578,1,1,1,1,0,580,0,79,0,579,0,1,1,1,0,1,1,1,1,1,1,12,0,0,0,0,1,0,0,0,0,0,0,586,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,582,582,0,585,583,582,582,582,582,582,587,582,582,591,582,582,582,582,582,582,582,582,582,582,588,585,582,582,585,582,582,582,582,582,582,582,582,582,582,582,582,582,583,582,582,582,582,582,589,582,582,582,582,582,582,0,0,0,1,590,1,1,1,1,584,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,12,595,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,12,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,12,1,1,12,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,65,280,306,411,535,0,4,68,236,254,282,307,334,388,413,0,499,519,536,597,9,0,61,88,398,409,429,575,0,497,518,532,612,0,30,6,0,461,500,602,560,70,0,7,285,255,389,463,416,538,79,598,0,576,309,418,465,9,105,288,506,6,30,0,311,79,391,79,483,10,6,131,248,275,0,613,509,0,563,0,64,6,6,251,95,2,432,399,410,596,0,6,0,6,286,103,6,561,501,540,0,464,390,273,287,8,71,104,599,543,392,312,300,419,146,74,290,546,510,601,564,335,330,479,6,75,149,11,0,249,522,547,565,514,551,570,611,36,6,260,295,333,304,218,30,528,553,218,42,216,265,296,305,406,423,481,274,0,73,562,0,403,417,299,79,247,79,0,581,545,504,292,421,79,393,387,0,0,0,9,555,571,217,0,424,407,531,516,573,615,85,218,43,297,396,425,569,0,511,293,276,79,215,80,28,390,30,6,394,331,303,604,592,524,550,513,0,258,81,30,405,422,0,30,426,0,219,593,517,9,408,427,218,248,86,222,594,574,557,482,428,397,250,227,87,59,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,620,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,414,0,0,0,0,0,0,0,0,82,0,129,0,0,84,549,0,0,0,0,0,0,0,27,0,552,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,414,0,0,0,0,503,0,257,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,294,0,0,0,0,0,0,0,617,0,0,0,0,0,616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,395,0,0,0,484,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,0,0,0,0,0,0,495,0,0,0,0,0,0,404,0,0,0,0,0,0,0,0,0,0,0,0,0,211,0,0,0,0,0,0,0,0,0,0,515,0,0,0,0,0,0,0,0,0,0,0,0,496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,269,281,0,0,0,0,0,530,277,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,458,0,0,0,314,0,0,0,0,0,0,253,0,0,0,0,0,0,23,0,0,0,0,568,0,0,0,0,600,521,0,0,0,0,244,0,0,0,0,0,0,0,0,0,480,0,0,0,0,0,62,0,0,0,267,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,246,0,0,0,0,0,279,610,0,72,0,0,0,0,0,0,0,0,0,619,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,150,0,278,0,0,0,0,0,0,567,0,0,0,0,0,0,523,0,0,0,0,0,0,0,0,0,566,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,213,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,502,0,0,0,0,0,554,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,83,0,0,0,0,0,0,0,0,0,0,0,0,486,0,485,0,0,0,0,0,0,0,0,0,0,259,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,459,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,289,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,537,0,0,0,0,0,0,0,0,298,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,237,0,0,0,0,0,0,0,0,0,0,84,0,606,0,0,0,0,0,0,0,0,0,0,0,0,245,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,609,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,520,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,498,0,614,0,0,431,0,0,0,0,0,0,0,0,0,0,0,0,402,0,0,0,544,0,93,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,29,92,0,0,0,0,0,0,0,0,0,0,0,0,291,0,0,0,214,0,0,0,0,0,0,558,0,270,0,0,130,0,0,0,0,0,559,0,0,0,0,0,0,0,414,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,313,0,0,0,0,0,5,0,0,0,0,0,0,0,301,0,0,0,0,0,0,0,0,0,0,0,0,0,534,0,0,0,415,0,0,401,0,0,0,0,0,0,603,0,0,0,541,0,0,90,0,542,0,0,0,0,0,0,0,0,0,0,508,460,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,414,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,608,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,607,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,618,0,0,0,0,0,556,0,0,0,0,0,0,0,0,0,0,302,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,605,0,0,212,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,623,623,623,623,623,623,623,622,624]),xp="orgmilcomschnetedugovdrrformsfeedbackofficialaccoorgmilschnetgovmagazinemediaunioncargopilotgroupcaarespressworksaerodromeworkinggroupair-traffic-controlaircraftaccident-preventioneducatormarketplaceambulanceinsurancecateringairportrepbodyenginesoftwaremodellingair-surveillanceconsultingchartertrainermaintenanceservicesdesignflightskydivingfreightassociationstudentgroundhandlingdgcafuelclubtaxicrewshowballooningexpresstraderbrokerauthoragentsairtrafficjournalistsafetyconsultantmicrolightaccident-investigationparachutingequipmentproductionfederationrecreationscientistnavigationengineertradingglidingleasingresearchpassenger-associationentertainmentparaglidinghangglidingaerobaticrotorcraftemergencycertificationgovernmentaeroclubexchangelogisticschampionshiphomebuiltcouncilconferencecontrolairlinecivilaviationjournalorgcomnetedugovcoorgcomnomnetobjofforgcomnetuwukiloappsframerorgmilcomnetedugovcoradioorgcomnetcommuneedogpbcoitgvorgedugov*spreviewfrontendrelayononstagingupid*mtls*privatelinktypedreamdeveloperbravemochawindsurfaivenmirenupsunwnextbegetngrokclerkwale2bwebcsbrunputerflutterflowspawnbaseshiptodaymagicpatternsnetlifyondigitaloceanrailwayhostedclaudehasurabotdashvercelgithubluyanigadgetreplitcloudflaretelebitedgecomputeevervaultdetaexponyatnoopencrpplxzeaburwasmerframerzeropsconvexmedusajsspritesonherculeseasypanelstreamlitsnowflakemesserliloginlinehackclubnorthflankbase44corespeedadaptableleapcellngrok-freeclerkstagelovableon-fleek*us-west-3ap-south-2us-central-2us-central-1eu-central-1ap-south-1us-west-2us-east-2eu-north-1ap-north-1us-west-1us-east-1*rcloudintsegorgmilcomgobbetnetintedugovturmusicasenasamutualcoopip6uriurnin-addre164homeirisgovdixdaemoncloudnssthwien*inexexkunden4accogvormymyspreadshop4lima2ixortsinfofuturecmsfuturehosting12hpprivfuturemailinglima-cityfunkfeuer123webseitednshomemelmyspreadshopcloudletswasantqldvicactnswtascatholicwasaqldvictasvpsidwasantozqldorgcomvicasnactnetedugovnswtasconfhrsncomairflowlambda-urltransfer-webappairflowtransfer-webapptransfer-webapptransfer-webapp-fipstransfer-webappeu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1mx-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1privatenotebookstudiolabelingnotebookstudionotebooknotebook-fipslabelingnotebookstudionotebook-fipsnotebookstudio-fipsnotebook-fipsnotebookstudionotebook-fipsnotebookstudioeu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2experimentsus-gov-west-1us-gov-east-1ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1onrepostsagemakercopporgmilcompronetintedugovbiznameinfoshoprsorgmilcomnetedugovbrendlyresolvenzauscotvstoreorgcomnetedugovbizinfoidacaicoittvorgmilcomschnetedugovinfocloudezproxyacmymyspreadshopkuleuvenwebhostingtransurl123websitecloudnsinterhostsolutionsddns5476103298edgfacbmlonihkjutwvqpsryxzbarsycoororgcomedumyftpno-iporxcloud-ipfor-somemmafanfor-morewebhopselfipjozidyndnscloudnsdscloudfor-thefor-betteractivetrailcoeconorestooteorgcomeconeteduassurmoneyafricaarchitectesrestaurantloisirstourismavocatsinfoagrounivcoorgcomnetedugovtvdeportesaludtksatorgmilcomwebgobnetinteducienciaboliviarevistacooperativaempresanombreindustriamusicapatriamedicinademocraciapoliticapuebloindigenaplurinacionalarteblogwikiinfoagrotransportenoticiasprofesionalacademiaeconomiaecologiamovimientotecnologianaturalsimplesitecepesebamapadfmgalampbacscpirngorotomtrjspaprrprrsesmscepesebamapadfmgalampbacscpirngorotomtrjspaprrprrsesms*biaamfmtcmptvfeirasampajampanatalbelemananiradiog12medindfndbmdtrdthepoaggfjdfdefinfenflegsegongengcngorgzlgslglogppgmillelqslcimcomnomadmjabimbbibbsbabcrectecsjcetcpscpvhudieticriapipsiecnbiorioecogeoteoodoproatoartfstmatvetdetbetnetcntnotfotgrueduajuespappreptmpemparqsrvadvdevgovntrturagrjorfarjusmusdesvixxyzcozfozslzbhzmaringasantamariacampinagrandegoianiasorocabafloripasaobernardocuritibaboavistarecifeaparecidasaogoncasalvadorcuiabamorenamacapalondrinacontagemsocialfortalmaceioleilaoosascoriobranconiteroi9guacutcheblogflogvlogwikitaxicoopmanauspalmascaxiasjoinvillebaruericampinassantoandreribeiraoriopretoweorgcomnetedugovv0windsurfshiptodaycloudsitecoaccoorgnetgovofmilcomgovmediatechzacoorgcomnetedugsjgovmydnspenfnlabnbmbgcbcqconcontnuyksknsmyspreadshopno-ipawdevboxbarsyonidatemfuinabusavinstanceseceuguukussryzespawncsxcloud-ipmyphotosfantasyleaguetwmailcleverappsscrappingccwucloudnsftpaccessgame-serverccgovobjectsrmalpgcust*svcalp1aeappenginermalpgmyspreadshop4lima2ixsquare7cloudscale123websitefirenet12hpflowgotdnslinkyard-cloudcloudnslima-citydnskingobjectstorageedaccogoorusorgcomnetinteduaéroportxn--aroport-byaassogouvcomilgobgovcloudnses-1eu-west-1us-east-1euvipit1eurarubait1s3lbwebsites3websiteru-spbru-mskelasticcsrunstnukukcaukusnl-ams-1fr-par-1fr-par-2functionsnodess3ddlwhmrdbfnck8sifrs3-websitecockpitscblmgdbdtwhkafkpubprivs3ddlwhmrdbk8sifrs3-websitecockpitscblmgdbdtwhkafks3ddlrdbk8sifrs3-websitecockpitscblmgdbdtwhkafkk8sscalebookpl-wawfr-parnl-amsbaremetalsmartlabelinginstancesdechk2kuleuvenlaravelvoorloperurownoxazapscwhstgrvaporobservablehqelementorantagonistreclaimjoteluluencowaydiademjelasticmatlabmagentositetrendhostingaxarnetperspectajenv-arubajelejoteravendbemergenttrafficplexconvexkeliwebserveboltbegetcdnstaticson-rancherprimetelonstackitunison-servicesdnshomelinkyardbarsyjelecloudnscocomnetgovmycn-northwest-1cn-north-1s3s3-accesspoints3-websites3s3-accesspointrdsdualstacks3-deprecatedemrappui-prods3-websiteemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apis3s3-accesspoints3s3-accesspointrdsdualstackemrappui-prods3-websiteemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicn-northwest-1cn-north-1cn-northwest-1ebcomputeelbcn-north-1airflowcn-northwest-1cn-north-1oncn-northwest-1cn-north-1amazonawssagemakeramazonwebservicesdirectasgdsdhehahljlnmhbacscahqhshhihnlnynsnmofjbjzjxjtjhkcqtwgsjssxnxjxgxxzgz網絡网络公司orgmilcomnetedugovxn--55qx5dcanva-appsxn--io0a7iquickconnectcanvasitekhsjxn--od0algmyqnapcloudsrvrlessclustersrealtimestorageleadpagescarrdcrdorgmilcomnomnetedugovhidnssupabaserdpareplmypiumsoxmitotaplpagesfirewalledreplitowodevwebview-assetsvfswebview-assetss3s3-accesspointdualstackemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9eu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1s3s3-accesspointdualstackemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstackanalytics-gatewayemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstackemrappui-prods3-websiteemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apis3s3-accesspointdualstacks3-deprecateds3-websites3-object-lambdaexecute-apis3s3-accesspoints3-websites3-accesspoint-fipss3-fipss3s3-accesspointdualstackemrappui-prods3-websites3-accesspoint-fipsaws-cloud9s3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstackemrappui-prods3-websites3-accesspoint-fipss3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apis3s3-accesspointdualstacks3-deprecatedanalytics-gatewayemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9vfss3s3-accesspointdualstackemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9eu-west-3ap-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1mx-central-1me-central-1ca-central-1il-central-1ap-northeast-1us-northeast-1ap-southeast-1me-south-1af-south-1ap-south-1ap-southeast-7us-west-2eu-west-2ap-east-2us-east-2ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1ap-southeast-6ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1mrapaccesspoints3s3-accesspointdualstacks3-deprecatedanalytics-gatewayemrappui-prods3-websites3-accesspoint-fipsaws-cloud9s3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstacks3-deprecatedanalytics-gatewayemrappui-prods3-websites3-accesspoint-fipsaws-cloud9s3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3eu-west-3ap-south-2eu-south-2computes3-ap-northeast-2elbrdss3-ap-east-1s3-sa-east-1s3-us-gov-west-1s3-eu-central-1s3-ca-central-1eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3s3-website-us-west-2s3-website-eu-west-1s3-external-1eu-central-1me-central-1ca-central-1il-central-1s3-us-west-1s3-eu-west-1s3-website-sa-east-1s3-website-ap-southeast-2ap-northeast-1ap-southeast-1s3-us-west-2s3-eu-west-2me-south-1af-south-1eu-south-1ap-south-1us-west-2eu-west-2us-east-2s3-website-ap-southeast-1s3-1s3-globals3-ap-northeast-3eu-north-1airflowap-southeast-2s3-us-gov-east-1s3-fips-us-gov-east-1s3-me-south-1s3-ap-south-1ap-northeast-2s3-website-us-west-1ap-southeast-5s3-eu-north-1s3-ap-southeast-1s3-website-us-gov-west-1compute-1s3-eu-west-3us-gov-west-1s3-website-ap-northeast-1us-gov-east-1s3-fips-us-gov-west-1s3-website-us-east-1s3-ap-southeast-2ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1s3-us-east-2s3-ap-northeast-1authauthauth-fipsauth-fipseu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1mx-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1rservicesbuilderstg-builderdev-builder*ociocpocsdemoinstanceeu-west-3eu-south-2ap-southeast-3ap-northeast-3eu-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1previeweu-4us-4us-1eu-1us-2eu-2us-3eu-3appspaasrag-cloudrag-cloud-chjcloudjcloud-ver-jpcdemonodebalancermembersipeuxvsoncillaocelotonzayalilynxsphinxfentigercustomercaracalo365cloudstaticxendevapp001testcode-builder-stgplatformapimediasiteprojedrydpagesjsu2u2-localx0desazacncoitrueu4uhkukgrbrushatenadiarymyspreadshopfrom-flfrom-wvwebspace-hosttheworkpchatenablogservesarcasmapplinzisakuratanwixsiteappchizigiizeis-into-carsdnsiskinkyadobeaemcloudis-a-therapistpgfogmyvncdojinis-an-actress1kappfldrvkozowqa2jpnmexprgmrfirewall-gatewaydynnscafjsfbsbxooguyxnbayfrom-gawoltlab-demois-a-anarchistwiardwebteaches-yogadattowebtb-hostinglive-websiteservegamegotpantheonfrom-nhsubsc-payfrom-ohvipsinaappfrom-cadyndns-officehomelinuxfrom-mahercules-appservebbsstreakusercontentfrom-okfrom-wyfastly-terrariumis-a-llamaqualyhqportalserveexchangeon-vaporvivenushopciscofreakgrayjayleaguesmetaaiusercontentfrom-iais-a-libertariansaves-the-whalestaveusercontentyolasiteoperaunitepoint2thisis-a-catererlinodeusercontentfrom-vagithubusercontentsells-for-lesshosteurcanva-appsplaystation-cloudddnsfreefrom-pafrom-prfrom-waddnskingoutsystemscloudhotelwithflightmydattois-a-nascarfanmydbserverminiserverdamnserverservehumouris-a-playerfrom-nvfrom-nmemergentagentgentappsamplifyappfrom-kyis-an-accountantnfshostserveircfrom-akpythonanywherestackhero-networkpostman-echolikescandydyndns-mailobservableusercontentserveftpfreeboxosfrom-utcdn77-storageamazonawsneat-urldyndns-serverlinodeis-a-teacherfrom-vtgleezemythic-beastsus1-pleniteu1-plenitla1-plenitpaywhirlservecounterstrikejdevcloudhealth-carereformis-into-animegoogleapisis-a-painterafricaisa-hockeynutatmetais-an-actora2hostedis-a-democratdatadetectest-le-patrondigitaloceanspacesis-a-designeris-a-hunterlinodeobjectstemp-dnsissmarterthanyoufrom-arsimplesiteevennodetownnews-stagingis-a-liberalgooglecodejelasticservemp3stdlibqualyhqpartnerdyndns-free1cooldnsest-a-la-masiondrayddnsdynuddnsfrom-orfrom-miis-a-bloggerfrom-himydobisscanvacodeis-an-engineerest-a-la-maisonupsunappdevinappswafflecellmyasustorwpenginepoweredfrom-ctservep2psame-appmyshopblocksthingdustdatalikes-piediscordsezis-with-thebanddev-myqnapcloudlpusercontentis-leetshopitsite3utilitiesis-a-personaltrainersinaappladeskis-a-cheflogoipselfipbase44-sandboxnospamproxyalibabacloudcsmesswithdnsauthgearappsiamallamawithgooglelutrausercontentmochausercontentframercanvasmytabitdyndns-homew-credentialless-staticblitzcpserverdiscordsaysis-a-nurseappspotatlassian-isolated-3premotewdfrom-mtwixstudiocode0emm180rmyactivedirectoryawsappsmytuleapdnsabrpolyspaceqbuserrenderbuiltwithdarkboutirgotdnsabrdnsdopaascanva-hosted-embedawsglobalacceleratorhomesecuritypcmyiphostditchyouripclever-clouddyndns-ipon-aptibleis-a-musiciansecuritytacticsappspaceusercontenthomeunixstrapiappsame-previewcf-ipfsmycloudnaselasticbeanstalkis-certifieddontexistkasserverik-serverdrive-platformatlassian-3pfirebaseappherokuappawsapprunnerbarsycenteris-a-cubicle-slaveservehttpmyshopifyis-a-guruquicksytessiiitesorsitesmagicpatternsappis-a-cpameteorappfrom-wiis-a-rockstarbumbleshrimpdattolocalreadthedocs-hostedfrom-rifamilydsdyndns-picsplesknsbplaceddnsaliasdynaliasdyndns-remotedoomdnsip-ddnsblogdnsis-a-doctorroutingthecloudamazoncognitobarsyonlinedsmynasddnsgurucloudflare-ipfsdeus-canvasfrom-idsmushcdnpagespeedmobilizerdyndns-at-homeunusualpersonhosted-by-previderis-a-republicandyn-o-saurstreamlitappworkisboringonthewificprapidqualifioappis-uberleetis-slickgetmyipwpdevcloudtypeformdyndns-at-workgentlentapismynascloudw-corp-staticblitzfrom-ingeekgalaxyservebeerfrom-mdonrenderspace-to-rentaivencloudappspacehostedonfabricawafaicloudcodespotblogspotatlassian-3p-us-gov-modfrom-ndfrom-msis-a-techieis-a-studentcustomer-ociis-a-photographerdurumisfrom-ksmassivegriddyndns-wikiis-an-entertaineris-a-hard-workermysecuritycamerafrom-mnrackmazedyndns-blogis-a-bulls-fanwritesthisblogfreemyipsimple-urlfrom-sdreservdauthgear-stagingest-mon-blogueuris-into-gamesrice-labsxtooldevicesakurawebis-an-anarchistoraclecloudappsdyndns-worksells-for-urhcloudfrom-dcfastvps-serverwpmucdnis-a-geekscrysecfrom-txis-into-cartoonsmodelscapetrycloudflarelocaltonetstreak-linkbalena-devicesfrom-njforgeblocksfreebox-oswebadorsitefrom-ncdoesntexisthobby-sitestreaklinkshomesecuritymacownprovidertuleap-partnersdattorelaywphostedmailalpha-myqnapcloudservequakeis-a-socialistservehalflifepivohostingdynuhostingquipelementsw-staticblitzdyndns-webfrom-deproject-studyaliases121is-not-certifiedhercules-devis-a-financialadvisorservepicsis-a-greenloseyouripfrom-ilwithyoutubemwcloudnonprodwiredbladehostingdnsdojofrom-tnpixolinomyqnapcloudis-an-artisthostedpiis-a-landscaperauiusercontentoaiusercontenton-forgeis-a-conservativedreamhostersnet-freaksapps-1and1is-goneencoreapifastly-edgefrom-nesalesforcefrom-scdeployagentoraclegovcloudappsfrom-alis-a-lawyercechirevultrobjectsstufftoreadisa-geekddnsgeeklovableprojecttry-snowplowfrom-moblogsyteis-a-bookkeepernogmyforumravendbmyboxdeelementoredsaacficogoorinforgcomgobnatneteduidstoreorgcomnetintedudevnomepublorgcomneteduathgovtestscalculatorspaynowinfoquizzesresearchedcloudnsfunnelsassessmentsjscaleforcetmacltdorgmilcompronetgovbizpresseklogesrsccloudcustomfltusrcloude4corealmgovmunicontentproxy9metacentrumdyndyndyndnsdynpagespages-researchitionoccustomercomymyspreadshopipv64diskussionsbereich4limacomrub2ixfirewall-gatewayddnssspdnsbarsykeymachinesquare7myhome-serverspeedpartnercommunity-proschuldockxenonconnectgünstigliefernbwcloud-os-instancedyndnssecmy-routerxn--gnstigliefern-wobin-butterl-o-g-i-nisteingeekin-dslin-berlinin-brbfuettertdasnetzleitungsenin-vpnlcube-serverdyn-ip24logoipdyn-berlinruhr-uni-bochum12hpgoipsrvdnsfruskygit-repossvn-reposinternet-dnsgünstigbestellenhome-webserverxn--gnstigbestellen-zvbbplacedheimdnscosidnswebspaceconfiglima-citydyndns1istmeinvirtualuserschulplattformmy-gatewayddnsseclebtimnetztest-iservmein-iservvirtual-userhome64iservschuletaifun-dnstraeumtgeradeschulserverdynamisches-dns123webseitednshomehs-heilbronndnsupdaterbssgraphicdwadpdwdaepeweaawapaafpfwfabwbpbacwcpcciwebuserapiobjectsidsiskospockkimodorikerbonesteamsparisjanewaypicardglobaltarpitreedpikekiraworfsulukirkarchertuckerhackercanarywesleystagingprereleaset3r2lpbravepanelngrokiservstglclcrmerpflypagesbarsyvivenushoplocalcertlocalplayerbearbloggatewaydeno-stagingis-not-ais-a-goodbotdashvercelmocha-sandboxplatter-appreplitgithubpreviewworkersinbrowserevervaultdetais-ahrsndenoxmitmodxmyaddrstorageapipayloadgrebedocruncontainersstgstagelclstageloginlineis-a-fullstackleapcellngrok-freeis-coolstoragewebharemediatechlibp2pdiscourseimaginecomyspreadshopstoreregbiz123hjemmesidefirmcoorgcomnetedugovsldorgmilcomwebgobartnetedugovtmorgpolcomsocartnetedugovassoagrondiscoodontk12medcuegyecpaabgengorgmilgalsaltulcomadmesmgobpubdocmonfindgnriouioproartlatvetnetfotedulojgovntrturibrbarxxxofficialbasechefprofmktgpsictechinfoarqtcontdentrrpppsiqgit-pagesritmedfieorgcomlibprieduaipgovriikmeactvsportorgmilcomscieunnetedugovnameinfopintouchtawktotawkmyspreadshoporgcomnomgobedu123miwebcomputeorgcomnetedugovbiznameinfocognito-idpeusc-de-east-1onjelasticnxaspdnsbarsydirectwpdeuxfleurstransurldogadoprvwcloudnsamazonwebservicesdnshomeuserpartycokoobinmkmstorjfidemopaasdymyspreadshopalandkapsiikixn--hkkinen-5wacloudplatformdatacenterhäkkinen123kotisivuidacorgmilcompronetedugovbiznameinforadioorgcomneteduuserexperts-comptablestmmyspreadshopgretaprdcomnomynhccifbxoshuissier-justicenotairesaeroportfreeboxoson-webavocatassoportgouvkdnschirurgiens-dentistes-en-franceavouesfbx-os123sitewebveterinairechirurgiens-dentistespharmacienchambagrimedecinfreebox-osdediboxgoupilemszicpyicpvicppleysheezypagesedugovcnpyorgcomcybllcpvtnetedugovtnxonlineschooldaemond6atcopanelorgnetplybotdashstackitkaasorgmilcomnetedugovbizmodltdorgcomedugovcoorgcomneteduappwriteacorgcomnetedugovcloudtranslateusercontentorgcomnetedumobiassoorgcomnetedugovbarsysimplesitediscourseindorgmilcomgobneteduorgcomwebnetedugovguaminfonxhra教育敎育網絡网絡组織組織网络網络组织組织公司政府個人个人箇人ltdorgcomincneteduidvgovxn--uc0ay4axn--55qx5dxn--mk0axixn--io0a7ixn--uc0atvxn--zf0avxxn--lcvr32dxn--od0algxn--wcvs22dxn--gmqw5axn--od0aq3bxn--mxtq1mxn--ciqpnxn--tn0agxn--gmq050iorgmilcomgobneteduiservwp2tempurlmircloudfreesitewpmudevmyfastgadgetcloudaccessjelehalfboltfastvpsemergenteasypanelopencraftizcombrendlynamefromrtpersoadultmedorgpolrelcomproartnetedufirminfoassoshopcoopgouvtmcomediahotelforumvideosportorgsexagrargameslakaseroticaerotikatozsdereklamcasino2000filmsuliinfoboltshopprivnewsszexcityutazasjogaszkonyveloingatlaneacaicogoormyᬩᬮᬶmilwebschnetkopbizzonedesaponpesxn--9tfkymyspreadshopgovmytabittabitorderravpageaccok12idforgnetgovmuniltdplcaccotttvorgcomnetmeca6g5gpgamubacaicniocoukuptverdruscsdelhiindorgmilcomwebnicfingenpronetintedugovresbizbiharbarsyinternetbusinessschooltravelsupabasealumnigujaratfirminfoaeropostbankcoopindevscloudnsno-ipbarsybarrell-of-knowledgebarrel-of-knowledgensupdategroks-thisdnsupdatefor-ourknowsitalldvrcammittwalddynamic-dnsv-infowebhopselfipdyndnshere-for-moreilovecollegemayfirstforumzcloudnsmittwaldservertypo3servergroks-theeusekd1uk0cdndyndnsidrawsainaueuapjpusstagemocksysdevicesclientcustreservdcustdevdisrecprodtestingcobeebyteutwenteboxfusebravepstmndedynngrokorgmilcomnomhzcnetedugovqcxqzzbarsythingdustmo-siemensrb-hostingprotonetfh-muenstergitbookbluebitecloudbeesusercontentnodeartkiloappsforgerockdarklangresinstagingapigeebubbleb-datascryptedhypernodedappnodepantheonsitegitlabgithubkeeneticvirtualservercleverappshostyhostingon-rioedugitticketstelebiton-acornwixstudioon-k3sicp0icp12038jeleqotobigvlairbubbleappsmyaddrstolosmyrdbxwebflowdrive-platformbeagleboardhasura-applolipopdefinimavaporcloudmusicianwebflowtestazurecontainerresindevicereadthedocsloginlineeditorxmoonscalesandcatsbasicserverwebthingsbrowsersafetymarkbeebyteappbitbucketidaccovistablogorgschnetgovxn--mgba3a4f16axn--mgba3a4fraarvanedgeايرانایرانjclaspeziapdudcefegelemeperetevebacanatavaparasabgagfgogrgpgalclblimfmrmcbmbvbfclcmcvcrcpcchlimifibicivipirisimncnbnanenrnpntnnolomobocoaogorosopotoptvtatctbtmtltotpulunutpspapaqsvpvvvtvavvrtrsrprgrfrcrbrarorkrvstsssbscsmsispzczbzbozen-suedtirolmyspreadshopxn--bulsan-sdtirol-nsbxn--valledaoste-ebbtrentinoaltoadigetrentin-sued-tirolxn--forlcesena-c8axn--forl-cesena-fcbxn--bozen-sdtirol-2obtriestetrentinsuedtiroltrentino-s-tirollecceudineaostesienaparmaluccapaviagenoapaduaaostamonzaabruzzoternirietiturinmilanbozenlaziofermoleccocuneonuoropratola-speziavdataaligfvgpugmolcalcamlomumbsicpmnvenvaoedugovabrsarmaremrbastoslazibxosfirenzetrentinosüdtirolval-d-aostavalle-aostamessinacremonaravennatoscanatrentin-suedtirolbolognacalabriaurbinopesarofriuli-v-giuliaogliastraxn--valle-aoste-ebblaquilaandriatranibarlettasyncloudtrentinosudtirolxn--valle-d-aoste-ehbaostavalleyvalled-aostatrentino-alto-adigevallee-d-aostexn--balsan-sdtirol-nsbpistoiasicilialucaniacataniaiserniaperugiabresciaveneziagorizialiguriaimperiabulsan-suedtirolbalsan-suedtirolbarlettatraniandriaxn--trentino-sdtirol-szbforlì-cesenatuscanyvallée-d-aostemantovavallée-aostecasertapiemontevalleaostaval-daostafriulivgiuliatrevisoforli-cesenavalléedaosteferrarapescaravald-aostatrentino-altoadigefriuli-vegiuliavallee-aostecarboniaiglesiastarantomediocampidanovalleedaostetrentinosud-tirolcampobassotrentinsüd-tiroltrentinosüd-tirolmonzabrianzatrentino-südtirolxn--trentino-sd-tirol-c3bpotenzacosenzavicenzaemiliaromagnavenicefrosinonemarchepordenonetrentinosued-tirolvaresemolisevalléeaostefriuli-veneziagiuliabasilicatalatinaanconasavonaveronamodenaaquilabiellabolzano-altoadigepugliafoggiaumbriatrentino-stirolgenovapadovamateranovararagusapiacenzatrentinostirolvalleeaostetempio-olbiatrentinsudtirolmassa-carrarafriuliveneziagiuliatrentinosuedtirolandria-barletta-tranitrapanixn--cesenaforl-i8amaceratacaltanissettaascoli-picenobrindisicarraramassacagliaririmininapolivibo-valentiachietibulsan-sudtirolbalsan-sudtiroltrentino-a-adigebulsanbalsaniglesiascarboniamilanotorinoteramodell-ogliastraarezzotrentinoalto-adigerovigotrentovenetoiglesias-carboniatrentino-sud-tirolaltoadigereggio-emiliareggio-calabriasardegnatranibarlettaandriapiedmontxn--sdtirol-n2amedio-campidanotrentino-süd-tirolfriuli-vgiuliafriuli-ve-giuliaromeennaromapisa32-b16-b64-blodiastibarineencomonaplesforlicesenailiadboxosalessandriasicilytrani-barletta-andriaxn--trentin-sdtirol-7vbpesarourbinotrentinsued-tirolcesena-forliforlìcesenaemilia-romagnamonzaebrianzaxn--trentinsdtirol-nsbtrentinos-tiroltrentinsüdtirolvalledaostaolbia-tempiocampidanomediovibovalentiasassarivalle-daostalombardyfriulivegiuliareggioemiliamonzaedellabrianzaalto-adigevercellitrentin-sudtiroltraniandriabarlettatrentino-sudtirolascolipicenobozen-südtirolfriulive-giuliaflorencevaldaostaxn--cesena-forl-mcbcarbonia-iglesiasaosta-valleycarrara-massadellogliastratrentinoa-adigexn--valleaoste-e7apesaro-urbinoxn--trentinosdtirol-7vbxn--trentin-sd-tirol-rzbxn--trentinsd-tirol-6vbtrani-andria-barlettatrentin-süd-tirolxn--trentinosd-tirol-rzbgrossetomonza-e-della-brianzasüdtirolreggiocalabriatrentinoaadigetrentin-südtirolfriuliv-giuliaverbaniacampaniatrentino-aadigefriulivenezia-giuliasardiniaandriabarlettatranibarletta-trani-andriacatanzarooristanourbino-pesarocesena-forlìvalle-d-aostacampidano-medio123homepagesiracusatempioolbiasuedtirollombardiaavellinocesenaforlìtrentinofriuli-venezia-giuliabozen-sudtirolandria-trani-barlettabulsan-südtirolbalsan-südtirolmonza-brianzabolzanotrentino-sued-tirolbellunosalernolivornocrotonesondriodnshometrentinsud-tirolmassacarraratrentin-sud-tiroltrentino-suedtirolviterbobergamocesenaforliolbiatempiopalermobeneventoagrigentoofcoorgnetfmaitvphdengorgmilcomschnetedugovperagrikanieasukehandachitatokaiaisaikonanoharuamaobuhigashiuraowariasahiinuyamatobishimaiwakurashitarainazawatoyonegamagorimihamatoyotataharakariyayatomioguchikomakimiyoshinishiotokonamekiyosuchiryutoyohashiokazakiisshikikasugaikotakiratoeianjotogofusosetohazutsushimashinshirotakahamanisshinshikatsuhekinantoyokawaichinomiyatoyoakeodateogataakitaikawakyowahonjoogayurihonjonoshirokamiokakatagamimitanegojomeyokotekosakadaisenkazunonikahohonjyomoriyoshimisatohappoukamikoanihachirogatahigashinarusesembokufujisatokitaakitaitayanagiowanitakkomutsutsurutahirosakigonoheoirasetowadamisawanohejiaomorishingohiranairokunohehashikamitsugarushichinohehachinohenakadomarisannohekuroishisakaeisumiasahiotakiinzaiabikomatsudoyachiyomutsuzawakujukuriomigawakashiwatoganemihamanaritasakuranagaramobarahanamigawachoshishiroichoseikozakishisuikatorimidorichonankyonanfuttsuonjukufunabashinagareyamanodasosatakochuotohnoshourayasukimitsuyokaichibayotsukaidosodegauratateyamakamagayayokoshibahikariyachimatakatsuuratomisatokisarazukamogawaichikawanarashinoichinomiyashimofusaminamibososhirakoichiharaoamishirasatoikatahonaiainansaijoseiyoiyoozuuwajimaniihamanamikatamasakiuchikokihokutobetoonshikokuchuomatsuyamaimabarikamijimakumakogenyawatahamamatsunosabaeikedaobamasakaifukuiohionotsurugamihamawakasaminamiechizeneiheijikatsuyamatakahamaechizensoedaukihaomutaokawanishiogoribuzenonojosueumiokiotochikugosasagurisaigawamizumakishinyoshitomikurumekurateyamadakasuganakamamiyamanogatatakatahakataiizukakawaratagawakasuyaashiyainatsukimunakataminamitsuikishonaikurogifukuchikeisenhigashimiyakoshinguyukuhashiokagakiyamekogaongausuikahotohochuotoyotsumiyawakadazaifuhisayamatachiaraiyanagawanakagawahirokawachikujochikushinochikuhochikuzennamieotamaokumashowateneiiwakikoorinangoononishigoshimogoomotegomishimafukushimaasakawakagamiishishirakawaiitatefutabahiratayugawahanawakitakatakawamatakunimiyabukibandaihigashihironoyamatomiharuyamatsuriaizubangedatesomaaizuwakamatsuyanaizuaizumisatonishiaizuizumizakikitashiobarataishinkaneyamakoriyamainawashirotanagurafurudonosamegawasukagawaishikawatamakawaikedaogakitaruiginanenahashimahichisonakatsugawaibigawashirakawamizunamiminokamomitakekawauesekigaharatomikasakahogikitagatayamagatatajimianpachimotosuyaotsukakamigaharahidakanisekitokigujominogodoyorogifukasamatsutakayamawanouchihigashishirakawakasaharashimonitatsumagoichiyodakannakanrashowameiwakiryuotaoratomiokafujiokaitakuranaganoharahigashiagatsumatakasakishibukawaminakamikatashinatsukiyonokawabanumataannakaoizumimidorishintoisesakiuenoyoshiokakusatsutakayamanakanojonanmokutamamuratatebayashimaebashiotakekaitadaiwahongofuchukuietajimashobaramiharahatsukaichihigashihiroshimamiyoshikumanokurenakasakaseraseranishiasaminamifukuyamashinichionomichiosakikamijimajinsekikogentakeharaotobenanaeikedatohmaozoraobiraabirakyowaeniwataikibibaisharirebunerimohiroooketootarupippunishiokoppechitosefurubirahakodateshiranukakitahiroshimakushiroobihironanporoiwamizawaniikappukunneppufukushimanakasatsunaitoyourakuromatsunaiakabirakamisunagawashibechaurakawakamifuranonakatombetsuasahikawashimokawakayabeokoppebiratoriabashirisaromaatsumanumatahidakabifukamukawamikasahorokanaitoyotomisarufutsuhigashikawaishikarikitamiyoichiesashiiwanaitomariminamifuranoakkeshifuranotoyakoyakumootoineppushikaoishiraoinemuronayorohaboroashorobihororishirifujiutashinaihokutotakasuebetsuurausuassabukikonaishimamakinaiedatetoyabieinikiesanuryuoumuteshikagarikubetsuashibetsukimobetsuaibetsutobetsusobetsuembetsushimizuchippubetsurishirihokuryuhoronobeshintokutsubetsushibetsuhonbetsumombetsutsukigatakuriyamakoshimizushiriuchikutchanmurorannoboribetsukamishihorowassamushinshinotsukembuchiwakkanaikamoenaikiyosatotakinoueshikabesunagawafukagawanakagawatakikawakamikawahigashikagurahamatonbetsumatsumaemoseushirankoshishakotanimakanemashikeotofuketomakomaisandatambaitamiawajikasaiasagoshisoonoakoyashirotoyookaminamiawajiinagawafukusakitakasagokamigorikasugaharimayokawaashiyahimejiakashitaishiaogakisannantakinosumototakarazukanishinomiyashingugoshikinishiwakiyokatakaaioimikisayoyabukawanishiamagasakisasayamashinonsenkakogawaichikawakamikawatatsunotsukubaiwamaogawaasahisakaitokaioaraiitakobandodaigosuifuinaamikasumigaurakashimaomitamayachiyoshimodatetomobetoridehitachinakainashikisakuragawakasamayawaramoriyahitachiomiyanamegatayamagatahitachikamisuushikutakahagiibarakitonekoganakasowayukimihojosomitoryugasakishimotsumafujishirotsuchiurachikuseihitachiotashirosatotamatsukuriuchiharashikahakuinanaotsubatawajimakahokukawakitatsurugikaganominotosuzuuchinadakomatsuanamizunakanotohakusannonoichikanazawaiwateshiwafudaikawaimoriokaofunatohanamakikuzumakikitakamininohekunoheyamadayahabasumitaichinosekitanohatahiraizumirikuzentakatajobojiotsuchihironomiyakoiwaizumikarumaiichinohenodakujitonooshushizukuishifujisawamizusawakamaishikanegasakimannoutazukotohiraayagawazentsujihigashikagawauchinomikanonjisanukimarugamemitoyotakamatsutadotsunaoshimatonoshoakuneamamiizumihiokiyusuikinkoisasookouyamanakatanekagoshimakanoyaisenkawanabeminamitanemakurazakitarumizunishinoomotematsumotosatsumasendaioimatsudaayaseebinamiurazushinakaiodawaraiseharasagamiharahakoneaikawakaiseiatsugitsukuihadanoyamatoyamakitazamaoisochigasakininomiyayokosukakamakuraminamiashigarafujisawasamukawakiyokawahiratsukayugawaraokawaumajikochitsunootoyoakiinonishitosayasudahidakamiharasakawaniyodogawahigashitsunokagamigeiseisusakiotsukinaharisukumomurototosakamiochitoyotosashimizumotoyamanankokunakamurakitagawayusuharaogunichoyoukiasoutoozugyokutoamakusamifunetakamoriyamagaminamataminamiogunikikuchisumotoyamatonagasumashikiaraokumamotokamiamakusanishiharayatsushiroayabeseikasakyoideineujinakagyokameokakyotangokyotanabekyotambaminamiyamashiroyamashinatanabeyawatawazukaminaminantanmiyazuhigashiyamafukuchiyamakitamukokamojoyokizumaizuruujitawaraoyamazakinagaokakyokumiyamakawagoeinabeshimameiwaasahitaikiudonoisetsukisosakikuwanamihamamiyamasuzukatamakimisuginabarikumanokomonominamiisewataraitobakiwatakikihotadomatsusakayokkaichikameyamaureshinoishinomakishichikashukuohirataiwaosakizaohigashimatsushimashikamaiwanumashibataogawaraonagawakawasakiseminemarumoriminamisanrikukakudamuratawakuyatomiyanatoriwataritagajomisatotomekamirifushiroishimatsushimayamamotoshiogamafurukawahyugaebinotsunosaitoayakushimanobeokakitauramiyazakitakazakigokaseshiibamimatashintomikunitomikitakatakobayashikawaminamitakaharukijotakanabemiyakonojonishimeranichinankitagawakadogawamorotsukakisofukushimaminamimakisakaeobuseikedaogawamiasaokayaasahiotakiotarichinoinaomichikumakomaganechikuhokukaruizawayasuokaooshikaikusakaminamiaikitogakushimatsukawakawakamitateshinatakamorikitaaikishiojirimiyadahakubaiizunaiijimaiiyamamiyotasuzakayasakatoguraookuwanagawaminowahirayayamagataminamiminowafujimiomachisakakitakaginaganonakanosakuhokomoronagisoshinanomachiwadauedaiidaharasuwatomiachiaokianankisosakunozawaonsenagematsutakayamashimosuwamatsumotoyamanouchinakagawamochizukiazuminotatsunoobamaomuraseihiunzenosetofutsuikichijiwanagasakiisahayahasamisaikaikawatanasasebohiradokuchinotsugototogitsutsushimashimabarashinkamigotomatsuurayamazoekashibaikomakawaitenrioyodosangokoryoudaojiikarugayamatokoriyamatenkawakatsuragikurotakikawakamimiyakemitsuetakatorikamikitayamayamatotakadahegurishinjokanmakisakuraitawaramotogoseoudanarasoniandokawanishishimoichihigashiyoshinokashiharashimokitayamanosegawayoshinomintsivorytopazsakuragehirnsumomoaseinetopalmail-boxmokurenyoitamuikaojiyagosensanjoaganomyokoseiroagaomishibataniigatanagaokamurakamiuonumayuzawakariwatagamitainaitsunanminamiuonumatochioyahikojoetsuseiroukamosadoizumozakitokamachiitoigawasekikawakashiwazakitsubamemitsukekokonoesaikiusukibeppuusahimeshimakunisakihasamataketatsukumihitaoitahijikusuyufukujukamitsuebungoonobungotakadaibaraniimibizentsuyamaokayamakasaokahayashimayakagemaniwaakaiwamisakishinjotamanotakahashikibichuowakesojanagishookumenannishiawakurakurashikiasakuchisetouchikagaminosatoshotomigusukunakagusukuyaeseizenaurumaiheyaaguniogiminanjokinminamidaitokitanakagusukuyonaguniokinawaishigakikunigamiurasoekadenataramahiraraginozataketomishimojizamamitonakiitomanhigashimotobuyonabarugushikamionnanahanagohaebarukumejimakitadaitonakijinnishiharayomitanginowantokashikiishikawaikedasuitaminohizuminishisakaikananabenodaitoosakasayamayaokishiwadatadaokakaizukatondabayashichihayaakasakakumatorikadomasayamahigashiosakashijonawatehirakatataishimisakitajirihannansennankatanotoyonominatosettsuhigashiyodogawaibarakinosekitachuohigashisumiyoshifujiiderakashiwaraizumiotsutoyonakamatsubaramoriguchiizumisanoshimamototakatsukineyagawahabikinotakaishikawachinaganoyoshinogarikamiminearitaouchiimarihizenogikashimaariakekiyamafukudomikitagatakitahataomachigenkaikanzakinishiaritakyuragisagataratosutakushiroishikaratsuhamatamakouhokukawagoeyoshidasatteogoseirumaasakaurawaogawaniizaomiyayoriiotakishikihonjooganohannohanyuinasaitamaokegawaarakawayoshikawayokozehasudasayamahidakafukayachichibuiwatsukiryokamiyoshimikamiizumifujimiwarabiranzanmiyoshiminanoyashiosakadosugitomisatohigashichichibutodasokakukiyonokazoshiraokakasukabekounosukawajimatsurugashimamiyashirokitamotohatoyamamoroyamahatogayakumagayakawaguchinagatorokamisatomatsubushinamegawatokigawakamikawafujiminohigashimatsuyamakoshigayatokorozawas3isk01isk02ryuohkoseikonanaishorittotakashimamaibarahikonetorahimenishiazaikokagamokotoyasuotsukusatsunagahamamoriyamatoyosatotakatsukinotogawaomihachimanhigashiomiakagiunnanizumogotsuamayatsukakakinokimatsuehamadamasudahikawahikimiokuizumoyasugiyakumomisatotamayuohdahigashiizumookinoshimanishinoshimatsuwanoshimaneshimadafujiedayoshidashimodagotembaiwataatamikosaiyaizuitoizumishimahaibaramakinoharaomaezakikawanehonkannamisusonohigashiizufukuroinumazukawazufujiaraishizuokahamamatsushimizuizunokunimatsuzakimorimachiminamiizunishiizukikugawakakegawafujikawafujinomiyaujiietsugaoyamayaitaohiranikkoashikagakuroisokanumasakurashioyakarasuyamamotegiichikaikaminokawatochigihagamokanogisanobatonasumibunasushiobaranishikatautsunomiyaiwafunemashikoshimotsukeohtawaratakanezawaitanokomatsushimatokushimaichibaminamiaizumiwajikikainanmiyoshinarutomimamugiananmatsushigesanagochishishikuinakagawamachidachiyodakomaefussainagitaitochofufuchuomeotahigashiyamatotoshimaokutamaaogashimakodairaedogawaarakawahachiojishinagawatachikawashibuyasuginamihinodekiyosesumidaoshimanerimamitakahamuraadachinakanomizuhobunkyomegurominatokoganeihigashikurumekokubunjihigashimurayamamusashimurayamatamakitahinochuokotokatsushikakouzushimaogasawaraakishimakunitachishinjukusetagayamusashinohachijoitabashiakirunohinoharachizunanbukotouramisasawakasayonagokogehinoyazutottorinichinansakaiminatokawaharaoyabetairainamiasahinantoimizufuchutakaokakurobeyamadajohanatoyamatonaminyuzenfunahashinakaniikawanamerikawaunazukitogahimiuozufukumitsutateyamakamiichiiwadearidayuasainamitaijikatsuragiaridagawatanabemihamahidakakainankiminomisatoshingushirahamakamitondayurakozakoyagobokitayamawakayamakudoyamahashimotokushimotokozagawahirogawakinokawanachikatsuurarsuseroeoishidasagaeoguniasahinagaitendonanyoobanazawanishikawasakataohkuratozawamikawamamurogawayamagatafunagatatakahatashonaishinjokahokuiideyuzakawanishitsuruokakaminoyamayamanobeshiratakamurayamanakayamakaneyamahigashineyonezawasakegawamitouubeyuuabushimonosekitabuseoshimatoyotaiwakunihikarishunannagatohagihofukudamatsutokuyamashowadoshitsurunanbukoshukaiminami-alpsnirasakikosugeotsukioshinohokutominobuyamanashifuefukichuokofuichikawamisatoyamanakakonakamichitabayamanishikatsuranarusawafujikawahayakawafujiyoshidafujikawaguchikouenohara長野京都岐阜大阪三重群馬千葉滋賀佐賀奈良adednelgaccogogror秋田愛知高知埼玉沖縄栃木熊本岩手青森山梨新潟島根鳥取長崎香川宮城石川大分宮崎茨城山口兵庫山形徳島広島福島福岡岡山富山静岡愛媛福井東京xn--4it168dhatenadiaryxn--vgu402ckawaiishophatenablogcocottenamaste北海道penneehimeiwateversestabachibashigagonnagunmapermahaccaakitaosakauh-ohblushkochiaichifukuikuroncapooitigohyogotokyokyotopunyuthickcheap0t00g00j0mie2-ddaapyawjg0amfemsubxiiboomoobutchueekpgwrgrherskrboyrdyupperunderflierchipsmydnsheavyangryhippygirlyrulez神奈川鹿児島和歌山bambinaxn--nit225kokayamasaitamaxn--k7yn95exn--1lqs03nsapporoparasitelolipopmcxn--efvn9sniigatafukuokatokushimafukushimahiroshimakagoshimafakefurokinawaxn--8pvr4ucoolblogxn--0trq7p7nnkawasakinagasakimiyazakichilloutxn--8ltr62kxn--klty5xpeeweezombiecutegirlxn--rny31hxn--uuwu58axn--ntso0iqx3axn--djrs72d6uytoyamanikitanyantakagawamimozanagoyaboyfriendxn--2m4a15egreaterchowderegoismyamagatafashionstorexn--elqq16hxn--pssu33lsendaimiyagixn--rht27zpecoriaomorisaloonwatsonvivianxn--djty4knobushipigboatnaganopinokoxn--f6qx53asadistvelvetsecretxn--5js045dchicappayamanashiibarakidigickgirlfriendxn--1lqs71dmongolianxn--c3s14mxn--qqqt11mtochigixn--5rtq34kparallelo0o0mondkobesagabonadecaoitanarafoolkilldecimainhiholomosblokilociaoundopupugifutankcrapflopnooroopsmodsholyjeezstripperpepperbittershizuokaxn--rht3dkitakyushureadymadeicurusversusmatrixxn--rht61ehungryfloppygloomycrankyhandcraftedlittlestarxn--klt787dxn--kltx9awhitesnowsunnydaytottorilovepoptheshopbuyshopxn--5rtp49cxn--d5qv7z876cwebaccelxn--kbrq7oxn--4pvxsxn--1ctwolovesickkumamotocatfoodxn--tor131oyokohamawakayamatonkotsuxn--ehqz56nxn--uist22hxn--6btw5axn--kltp7dyamaguchifrenchkisspussycatxn--4it797kxn--uisz3gbabybluexn--zbx025dnetgamersxn--7t0a264ckanagawaxn--6orx2rishikawaxn--ntsq17ghalfmoonschoolbusjellybeanxn--mkru45iusercontentlolitapunkxn--32vp30hsakurastoragehokkaidoshimanecandypopbabymilksupersaleweblikeraindropbackdropwebsozaikikirarahateblodaynightmeneacsccogoormobiinfoaeusxxorgmilcomnetedugovorgcomnetedugovbizinfotmprdorgmilcomnomedugovassnotairespresseassocoopgouvveterinairemedecinpharmaciensorgnetedugovtraorgcomedurepgovmeneperekgacscaiiocogoitoresmshsseoulbusanulsandaeguc01milvkimmvchungnamjeonnamjeonbukeliv-dnsgyeonggijejueliv-cdnincheondaejeongangwongyeongbukgwangjuchungbukgyeongnameliv-apicoeduindorgcomembnetedugovorgmilcomnetedugovjcloudorgcomnetintedugovperbnrinfocooyorgcomnetedugovipfscanvamypepw3sstorachakeeneticjoinmcinbrowserdwebcyonnftstoragemyfritzaemewphlxachotelltdorgcomwebsocschngonetintedugrpgovassnomgacsccoorgnetedugovbizinfo123websiteidorgmilcomasnnetedugovconfidmedorgcomplcschnetedugovaccoorgnetgovpresstmassoirseproxaccosoundcasthoptocraftvp4c66orgnetedugovitsmcdirmyboxbarsyedgestacksynologylogintonohostwebhopdiskstationi234tcp4hoocgroknoipprivmydsddnsdnsforlohmustransipdscloudfilegear-sgbrasiliafilegearframerbarsybarsyonlinecoprdorgmilcomnomedugovinforgcomnetedugovnameacprorgcomartnetedugovpresseinfoassoinstgouvorgnycedugovbarsydscloudjuorgcomnetedugovminisiteaccoororgcomnetgovorgmilcompronetintedugovbizmuseumnameinfoaerocoopaccoorgcomnetintedugovbizcooporgcomgobneteduorgmilcomnetedugovbiznameaccoorgmilneteduadvgovcoorgcomnetaltgovforgotherhiskeeneticispmanagernomassoprod5476132eastasiacentraluswesteuropewestus2eastus2rucdnwest1-usfra1-desandboxjls-sto1jls-sto3jls-sto2aglobalabglobalsslmapprodfreetlsmaplon-1lon-2ny-1fr-1sg-1ny-2paassnwebpaashostingjelasticnordeste-idcsocuserpagescwebfileblobservicebuscoreatlricnjsjelasticwebsitestoragesezagbinruhuukjptsmyspreadshopmynetnameakamaiorigin-stagingfrom-coipv64dynv6cdn77serveblogadobeaemcloudhicamsprytdnsupno-ipownipde5ovhicpfirewall-gatewaysytesmypsxbarsyusgovcloudapimyamazemyradwebakamaihdsaveincloudfastlylbfrom-lasubsc-paysquare7in-the-bandblackbaudcdnhomelinuxoninfernoctfcloudservebbsdns-dynamiccloudfrontakamai-stagingipifonyham-radio-opsenseeringclickrisingcommunity-profrom-nylocalcertgrafana-devedgesuite-stagingcloudflareanycasteating-organicatlassian-devmydattofeste-iplocaltotorprojectknx-serveredgekeycloudflareglobalcloudyclustercasacamserveftpakamaized-stagingakamaiorigindns-cloudmyeffectboomlabotdashbuyshousestwmailhetemlazure-mobilein-dslthruhereredirectmedynuddnsbouncemesupabaseluyanicloudappakamaicloudfunctionsdebiannhlfanpgafanstatic-accessin-vpnmysynologymafeloappudohomeftptrafficmanagersiteleafseidatmemsetcloudflarecloudaccesskeyword-onazure-apiis-a-chefdoes-itgets-itwebhopselfiphomeipkicks-assedgesuitewindowsserver-ontunnelmolemydissentscrapper-sitecloudflarecnuni5srcfggffiobbzabcdenodynuopikddnsvpndnsakadnselastxkinghostvps-hostfastlyhomeunixazureedgeshopselectdontexistmyfritzcloudjiffyalwaysdatasells-itsquaresbroke-itazurefddattolocalat-band-campmeinforumfamilydsazurestaticappsdefinimabplaceddnsaliasdynaliasnow-dnsblogdnsroutingthecloudendofinternetdsmynasakamaiedgemymediapcadobeio-staticakamaiedge-stagingakamaihd-stagingddns-ipprivatizehealthinsurancelive-onkrellianschokokeksmassivegridmysecuritycamerarackmazeserveminecraftfrom-azis-a-geekakamaizedmoonscalecryptonomicoffice-on-theusgovtrafficmanageradobeioruntimeedgekey-stagingreserve-onlinechannelsdvrdnsdojousgovcloudappcdn77-sslapps-1and1podzoneazurewebsitesdynathomescaleforceyandexcloudvusercontentisa-geekcdn-edgescoaemalcesappwriteazimuthtlonarvonoticeablestorecomwebrecnetperotherfirminfoartslgdloncogoiltdorgmilcolcomplcschgenngonetedugovbiznamefirmmobiacincoorgmilcomnomwebgobnetintedubizinfocomyspreadshopdemongovtransurl123websitehosting-clusterkhplaycistrongsnesosvalervålerxn--vler-qoaossandeheroysandeherøybøboheroyherøyxn--hery-iraxn--b-5gavalerbøboxn--b-5gasandesandexn--hery-iraxn--vler-qoavålerhåreålaahavaofsfvfhlolnlalrlhmfmtmahcostntbuåstrmreigersundmyspreadshopgálsáeidsvolltingvollgildeskalflorøvadsøvardøvanylvenxn--bhccavuotna-k7astrandaxn--kvnangen-k0axn--sknland-fxaxn--mosjen-eyarakkestadhyllestadnannestadvevelstadvaapstenordre-landsondre-landsøndre-landtjieltexn--vrggt-xqadsør-aurdalsor-aurdalheradstordmoldefordeførdeseljefedjeryggehemnexn--krehamn-dxasognegranesøgnebrynetjomevallebykletokkegiskedovretjømehobølvoldasaudatolgasømnaviknadønnasomnadonnatranafrananesnaraumasmolatrænafrænalesjasmølaørstaorstahitrafloraaukraloppafrøyarissasnasahalsagalsaromsaraisaráisafroyasnåsagronghobolfjelltydalårdalardalaskimharamkraanghkekråanghkesorumbarumhurumbærumsørummodumsálátbálátfrognbjugnvåganvagangulenskienløtenlotenstrynvefsnxn--merker-kuaskaunsveiobømlobomloskjåkvardoflorovadsosalatbalatsálatklæbuklabuselbubarduulvikskjakklepprisørxn--nttery-byaeflåeidflahofmilgolholsellomskifetvikdepvgsfhsaskerrisorhamarasnesåsnesrørosrorosxn--slat-5namasoynaroyvaroyluroydyroyaskoyradoyandoyrodoymeloyradøyandøyrødøymeløyaskøylurøydyrøymåsøyværøynærøyhoylandethøylandetdivtasvuodnalørenskoglorenskognesoddtangenxn--tjme-hraxn--smla-hraxn--stjrdal-s1aunjargalillehammerunjárgaxn--hamary-fyadavvenjargaxn--bearalvhki-y4a123hjemmesidegjerdrumxn--brnnysund-m8acxn--tnsberg-q1axn--mlatvuopmi-s4axn--snsa-roaxn--skierv-utaxn--brum-voatysfjordkvafjordeidfjordkvæfjordsongdalenmjondalenmjøndalenxn--gls-elackragerogáŋgaviikagangaviikasørreisasorreisasør-varangersor-varangerxn--risr-iraskiervaxn--frna-woaxn--trna-woakvinesdalleksvikleirvikrøyrvikroyrviksvelvikvenneslaevje-og-hornnessandnessjøenmarnardalvindafjordsandefjordenebakksnillfjordullensvangxn--trany-yuabrønnøysundnamsskoganaustevollxn--stjrdalshalsen-sqbnord-aurdalnord-frontrøgstadtrogstadgrimstadflakstadgjerstadxn--sandy-yuaxn--leagaviika-52bnore-og-uvdalvegarsheixn--rlingen-mxaxn--ggaviika-8ya47hvegårsheikarlsoykvitsoymasfjordenhamaroyinderoyosteroydavvenjárgasauheradguovdageaidnuxn--vre-eiker-k8abronnoysiellakkrødsheradkrodsheradkvinnheradbrønnøyxn--mtta-vrjjat-k7afxn--lrenskog-54akvitsøyvárggátkarlsøyosterøyinderøyhamarøybronnoysundxn--aurskog-hland-jnbbahccavuotnabáhccavuotnagiehtavuoatnastor-elvdalmidtre-gauldalxn--gildeskl-g0akarasjokevenassixn--bievt-0qaxn--yer-znalebesbynessebyxn--hbmer-xqamalselvmålselvxn--unjrga-rtamøre-og-romsdalmore-og-romsdalhareidmelandørlandorlandstrandålgårdsolundalgardafjordåfjorddielddanuorrikautokeinoxn--stre-toten-zcbskodjeaejriestangeliernebamblestokkefauskesnåasesnaasekongsvingerlangevagberlevagxn--flor-jrahattfjelldalostre-totenøstre-totenvestfoldxn--mely-iraálaheadjualaheadjunordreisaxn--troms-zuaxn--lgrd-poacporsangerflatangerstavangerleikangerbremangersamnangergieldakarasjohkaxn--rdy-0nabfrostautsirasnoasatromsaxn--sr-aurdal-l8aflekkefjordjølsterjolsteraremarkhedmarknååmesjevuemienaamesjevuemiexn--vard-jrarollagmeråkermerakerorskogørskogxn--bdddj-mrabdákŋoluoktaxn--osyro-wuaaknoluoktatrysilskjervøymandaljondalbindalrindalmeldalsuldalorkdalsigdalalvdallærdalhurdalsirdalverdallerdallardaloppdalåseralaseralhadselkragerødivttasvuotnaoverhallasteinkjerxn--hnefoss-q1askedsmokorsettromsøxn--dyry-iravestre-totenmuseumxn--sandnessjen-ogbrahkkeravjufylkesbiblbájddarbajddarxn--laheadju-7yarennesøyxn--koluokta-7ya57hxn--hgebostad-g3aleirfjordstorfjordbalsfjordbåtsfjordbatsfjordmuosátbievátloabátkárášjohkanøtterøyxn--mjndalen-64anordkappláhppilahppialstahaugsiljanverranrøykenroykenhaldenlyngenbergenhortenhønefosshonefosstroandinbeiarnvarggatosoyroosøyrotromsoidrettmuosatbievatruovatloabatvoagattynsetnessetxn--indery-fyaskánitskanitraholtråholtxn--ystre-slidre-ujbandebusarpsborgbearduxn--karlsy-fyahordalandjorpelandjørpelanddeatnuringsakersør-odalsor-odalxn--slt-elabringerikeaudnedalnittedalnissedalhemsedalslattumsurnadalxn--blt-elabelverumstjørdalnaustdalhjartdalgjøvikfyresdalhasviknarviklarvikgjovikmalvikgamviklenvikporsgrunnstjordalengerdaldrobakdrøbakxn--msy-ula0hvestvagoyxn--vgan-qoaxn--ryken-vuaxn--lten-graxn--stfold-9xaxn--hpmir-xqaxn--lury-iramálatvuopmimalatvuopmitysværkirkenesbirkenesmoskenesbáidárxn--fjord-lraxn--rdal-poabahcavuotnabáhcavuotnaxn--frde-gralindåsbearalvahkixn--hobl-iraráhkkerávjuxn--loabt-0qavågåáltábodøsundlundraderådeetnetimeholeauregrueoddavagavegaranatanaarnasolasulaaltalekafusavangbergkvamåmliamlibokntinnroangranosenoslobodorøstroststatåmotamotivguprivøyeroyerliermossvossxn--nvuotna-hwalusterlunnermarkerhábmerhabmerhvalerfjalerxn--rholt-mratysvarbaidarfitjargaularhápmirhapmirmelhusfosnesøksnesoksnestysneshemnesevenesflesbergeidsbergtonsbergtønsberglindasxn--sndre-land-0cbnamsosxn--srum-graøystre-slidreoystre-slidrevestre-slidretrondheimbalestrandxn--langevg-jxaaustrheimxn--skjk-soavagsoyaveroysandoykarmoyfinnoytranoyvestbytranbysykkylvenxn--hyanger-q1aspjelkavikandasuoloxn--fl-ziaxn--drbak-wuastathellexn--sr-varanger-ggbtelemarkxn--bhcavuotna-s4axn--porsgu-sta26fčáhcesuolocahcesuoloakrehamnåkrehamnsandøykarmøyfinnøytranøyvågsøyaverøynamdalseidxn--lesund-huabadaddjaxn--vegrshei-c0axn--btsfjord-9zagildeskålporsanguxn--trgstad-r1anávuotnanavuotnahammerfestxn--sgne-graxn--brnny-wuacibestadharstadnarviikaevenáššivestnesgjemnessandnesagdenesrennesoyxn--avery-yuaxn--tysvr-vrabearalváhkikongsbergspydebergrandabergxn--andy-iradavvesiidaxn--krdsherad-m8aporsáŋgufredrikstadbjerkreimringeburennebuaurskog-holandnotteroyxn--vgsy-qoa0jxn--rmskog-byaskierváivelandbyglandfrolandaurlandforsandxn--bjddar-ptamidsundålesundalesundfetsundfarsundovre-eikerøvre-eikerakershusxn--moreke-juasørfoldøstfoldostfoldsorfoldhøyangerhoyangerlevangerorkangertanangerxn--vestvgy-ixa6olillesandulsteinxn--rennesy-v1agranvinskjervoyxn--klbu-woalavagisxn--h-2faxn--ryrvik-byakafjordkåfjordseljordfolkebiblxn--gjvik-wuajevnakerxn--kfjord-iuabudejjuxn--kranghke-b0axn--davvenjrga-y4axn--rland-uuaxn--ldingen-q1axn--mlselv-iuaxn--rady-iraxn--linds-prabrumunddalxn--ygarden-p1amo-i-ranaeidskogrømskogromskoghjelmelandxn--finny-yuaxn--sr-odal-q1axn--skjervy-v1aballangenkvanangenkvænangengratangenxn--hmmrfeasta-s4acvossevangensuohkanxn--rde-ulaxn--mli-tlaxn--ksnes-uuanordlandskanlandskånlandsortlandfuoiskuxn--rros-graxn--hcesuolo-7ya35bxn--eveni-0qa01gagaivuotnagáivuotnaxn--seral-lradrammenmodalenmosjoenjan-mayentorskensteigengloppenxn--snes-poamatta-varjjatxn--sr-fron-q1aomasvuotnajessheimbådåddjåxn--krager-gyaxn--kvfjord-nxaxn--asky-iraxn--snase-nraxn--bidr-5nacholtålenxn--vads-jraxn--jlster-byamosjøenxn--rst-0nastavernxn--ostery-fyaxn--oppegrd-ixaxn--sknit-yqaxn--risa-5naoppegårdskiptvetrendalenholtalenxn--mot-tlaxn--lhppi-xqaxn--holtlen-hxaxn--srreisa-q1akopervikxn--muost-0qaxn--bmlo-grahokksundkvalsundegersundxn--karmy-yuaullensakerxn--hylandet-54axn--kvitsy-fyaxn--bod-2nalangevågberlevågkristiansandxn--rsta-frahornindalstjørdalshalsenstjordalshalsensandnessjoenhámmárfeastaxn--lrdal-srasør-fronsor-fronnord-odalkristiansundmátta-várjjatvestvågøynesoddennotoddenbuskerudøygardenoygardensalangenlavangenralingenrælingenlodingenlødingenleaŋgaviikalaakesvuemieleangaviikauenorgexn--srfold-byaaskvollxn--rskog-uuaxn--nry-yla5gxn--vry-yla5ghammarfeastaxn--rhkkervju-01afxn--givuotna-8yakommunekrokstadelvanedre-eikerhagebostadhægebostadxn--berlevg-jxakviteseidxn--s-1faxn--l-1faxn--nmesjevuemie-tcbafuosskomoårekemoarekexn--lt-liacxn--jrpeland-54asvalbardoppegardholmestrandtvedestrandsogndalsokndalarendalsunndalfolldalxn--krjohka-hwab49jlyngdaletnedalnorddalsaltdalgausdalskedsmovaksdalgjesdalstordalxn--frya-hraaarbortedrangedalxn--smna-graaurskog-hølandxn--vg-yiabtjeldsundhaugesundlindesnesxn--mre-og-romsdal-qqbxn--dnna-gradynmerseineshacknetenterprisecloudmineaccomaorimāoriorgmilcriiwigennetschoolhealthkiwigovtgeekxn--mori-qsacloudnsparliamentcomedorgcompronetedugovmuseumwebsitekinservicebarsywebsitebuildereerobookheimdnsleapcelleero-stagetechcrscsslorigingohomecdbedeeeiemesecabgngilnlalplchfisiincnnoroptatitmtltruauhulumkdkukskjplvtrgrfrkrhrusesismycynzcznetinteduassoososcloudstgbetaaezaeuhkusjshatenadiarycdn77hoptozaptois-a-knightmyftpno-ipjpnddnssdpdnsspdnsbarsysweetpepperis-a-bruinsfanis-very-sweetservegameis-a-soxfanhomelinuxcdn77-secureservebbsmisconfusedwebredirectblogsitefreedesktopcouchpotatofriestoolforgeaccesscamis-lostreadmyblogsmall-webfedorapeopleserveftpis-a-celticsfanmywirepotagertwmailin-dslsellsyourhomeread-booksfreeddnscable-modemis-savednflfanufcfanmlbfanstuff-4-saleendoftheinternetin-vpnmy-firewallhomeftpis-localis-a-chefboldlygoingnowherewebhopselfipkicks-assroxatunkcamdvrfedoraprojectgotdnsdvrdnsdyndnspubtlspimientahomeunixdontexistfedorainfracloudwmflabsfspagesbmoattachmentsteckidsfamilydsdnsaliasdynaliasnow-dnscloudnsdoomdnsduckdnsblogdnshomednsroutingthecloudendofinternetdsmynasip-dynamicpoivronhttpbinmyfirewallis-very-evilmysecuritycamerais-a-linux-userwmcloudis-a-geektuxfamilyis-a-candidatedoesntexistis-very-badhobby-sitegame-hostaltervistais-foundis-a-patsfandnsdojohepforgepodzonedynservcollegefanis-very-goodfrom-meis-very-niceisa-geeknerdpolacmedsldingorgcomnomgobabonetedupleskaemhlxmyboxrockyprvcydeuxfleurspdnscodebergheyflowstatichostorgmilcomnomgobneteduorgcomeduiorgmilcomngonetedugovcloudns1337ngrokacorggogfamcomwebgobnetedugokgopgkpgovgosbizpasaugumicsopozpapuwmwsrprusiskwpspkppspkmpspokeoiawsawifoumsdnskokwpmuppuppsppiwwiwoowuzswkzoschrzpisdnwzmiuwwitdpssewsseumigugimoirmpinbwinbwiihupporzgwgriwupowwskrwioswuozstarostwokonsulattmpccopruszkowmyspreadshopostrodakartuzyopolegminamediaustkazgorajgoraolawailawalomzawloclradombytomjaworznotargilubinkoninzagantorunkutnokepnonakloczestsopotsanokturekplockslasksklepzarowlukowmedaidgdaorgmilrelcomnomatmgsmartneteduelkgovwawsossexbiztgorysejnytychypomorzeboleslawiechomesklepsdscloudunicloudzakopanelegnicarawa-mazbydgoszczswidnikkrasnikwloclawekbielawamragowograjeworealestatebeskidykaszubymalopolskaprzeworskswiebodzinlecznadfirmaszkolawarmiagdyniamiastakazimierz-dolnymalborkswidnicadlugolekaostrolekapodlasieelblagtravelsimplesitezachpomormielecszczecinnieruchomosciwalbrzychlezajsklublinbedzinpoznanwielunmielnooleckostarachowicedkontopowiatwroclawrybniksuwalkileborkslupskgdanskostrowwlkptarnobrzegtourismwegrowkrakowglogowyou2pilanysamailwrocinfoagroautobeepshopprivlapypiszlodzcfolksecommerce-shopmazurypulawyskoczowrzeszowpomorskiezgierzkaliszolkuszlowiczostrowiecsosnowiecmazowszewodzislawbialowiezazgorzeleckatowicepabianicejelenia-gorawolominkarpaczsieradznowarudaczeladzkonskowolaskierniewiceswinoujscieturystykabieszczadycieszynketrzynolsztynbialystokbabia-goraprochowicewarszawastalowa-wolapolkowicegorlicegliwiceponiatowalimanowalubartowaugustowkobierzyceopocznognieznoszczytnokolobrzegshoparenapodhalebielskoklodzkostargardatwithplayitownnamecoorgnetedugovacorgcomproestnetedugovbiznameislaprofinforechtngrokmedaaaacacpaenglawjurbarbarsykeeneticavocatacctcloudnsorgcomsecplonetedugov123paginaweborgcomnetintedugovnomepublidkinbarsygovx443cloudnsorgmilcomnetedugovcooporgmilcomschnetedugovnamecomcannetlibassoaemclantmcontstoreorgcomnomrecwwwbarsyfirminfoshopartsstackitmyddnswebspacelima-cityacincooxorgedugovbarsybrendlyhbvpsvpsspectrumlandinghostingacppmordoviamcprecbgorgmilcomspbnetintedumsknovgovbirrasmcdirmytismircloudvladimirnalchikadygeyamarinepyatigorskmyjinobashkiriaeurodirvladikavkazna4ugroznykustanaikalmykiacldmaildagestaniranbuildcanvaliaravalwixdevelopmentappwritemigrationneedleverceldatabasestackitcodereplravendbonporterlovableaccoorgmilnetgovcoopmedorgcompubschnetedugovservicemecomygovorggovtvmedorgcomnetedugovinfoedgfacbmlonihkutwpsryxzbdtmacfhppmyspreadshopbrandpartiorgcomfhvpress123minsidaitcouldbeworlanbibkommunalforbundfhskiopsyskomvuxkomforbnaturbruksgymnloginlineorgcomnetedugovenscaledeuusentbotdaorgmilcomnetgovnowteleporthashbangplatformlovablebarsyshopwarebasehoplixbarsyonlinemsf5gitappgitpagecofigma-govcaffeinefigmacanvasoltstputerbarsysupportchatgptsquareomniweopensocialcpanelnotionnovecorewpsquaredpreviewjelecyonbyensrhtfastvpspieboxconvexjouwwebheyflowplatformshloginlinemadethissourcecraftclouderaorgorgcomartedugouvunivmeorgcomnetedugovsurveysstatichfheiyuxs4allprojectmyfastubervibehostapp-ionosdeployagentmecoorgcomschnetedugovbizcncostoreorgmilcomneteduembaixadaconsuladokiraranohoprincipesaotomeheliohobarsystorebaseshopwaresellfyabkhaziavologdamordoviapenzalenugsochinavoiexnetspbmsknovnorth-kazakhstanashgabadkareliaarmeniageorgiavladimirnalchikivanovobukharaadygeyakhakassiakalugakrasnodarjambylaktyubinsktroitskbryanskobninskkurganazerbaijanpokrovskbashkiriatselinogradvladikavkazmurmansktulatuvamangyshlaktashkentchimkentgroznykaragandatermezarkhangelskkustanaikalmykiabalashoveast-kazakhstankaracoldagestantogliattibarsyredorgcomgobedumirenknightpointaccoorgjelasticdiscoursecleverappsschacmiincogoornetonlineshopcogoorgmilcomwebnicnetintedugovbiznametestcoorgmilcomnomnetedugovorangecloudpersoindorgcomfinnatnetgovensmincomtourismintlinfox0611oyaorgmilcomnetedugovquickconnectvpnplusnettprequalifymeaddrmyaddrntdllwadlnctvavdrk12orgmilpolbeltelcomwebgennetedutskkepgovbbsbiznameinfocoorgmilcompronetedugovbiznameinfobetter-thanworse-thansakurafromdyndnson-the-webmymailerorgmilurlcomneteduidvgovmydnsgameclubebizmeneacsccogotvorhotelmilmobiinfovodteiflgplkmsmsbcckhincndnvncoztltmkckppzpdprvcvkvlvcrkrkscxuzchernovtsyrivneyaltaodesavolynrovnolutskltdinforgcomnetedugovbizvinnicazhitomirternopilpoltavakropyvnytskyizaporizhzhiasevastopolsebastopoluzhgoroduzhhorodkharkovkharkivvinnytsiakhmelnytskyizaporizhzhecrimeaodessazhytomyrnikolaevcherkassydonetskluganskluhanskkirovogradivano-frankivskchernivtsikrymkievkyivlvivsumyzakarpattiamykolaivcherkasychernigovkhersonchernihivdnipropetrovskdnepropetrovskkhmelnitskiyneacsccogoorusorgmilcomedugovvmdhmyspreadshopadimono-ipbarsybytemarkbarsyonlinelayershiftnh-servretrosnubapicampaignservicelugaffinitylotteryweeklylotteryraffleentrygluglugsmeaccoindependent-inquestnimsitecopropymntltdorgplcschnetgovnhsbarsyindependent-commissionindependent-reviewpolicepublic-inquiryindependent-panelconnhospindependent-inquiryroyal-commissionoraclegovcloudappscck12libccphxcclibpvtparochchtrcck12libcceatonk12coglibtecgendstmusann-arborwashtenawcck12glghcck12sealibforksolympiabainbridge-islkeyporthoquiamyarrow-pointcentraliaport-townsendsequimport-ludlowrentonsilverdalebremertonredmondsheltonbellevueport-orchardport-angeleskingstonchehalisaberdeengig-harborseattlepoulsboidmdndsddemenegacalamaiavawapailalflnmdcncscohnhmihiviwiriinmntnmocoutvtctmtgunjokakwvnvprarorasmskstxwynykyazisadninsnngosrvis-bymircloudservernamepointtoenscaledland-4-salefreeddnsstuff-4-saleazure-apinoipcloudnsgolffanheliohostazurewebsitesgvorgmilcomgubneteducoorgcomnetd0egvorgmilcomnetedugovmydnsiacostoree12orgmilcomnomwebgobbibrectecnetintedugovraremprendefirminfoartseducok12orgcomnethidnsidacaiiosonlahanamhanoicamauhueorgcompronetintedugovbizbacninhtayninhhoabinhnamdinhtravinhhaiphongvinhlonghaiduongquangnamquangtrithuathienhuequangninhbacgianghaugiangquangbinhsoctrangbentrethanhphohochiminhdanangkontumhatinhkhanhhoathanhhoahealthgialailaocaiyenbaibackanngheanlonganphuyenphuthocanthodaklakdongnainameinfovinhphucdongthapkiengiangtiengiangquangngailaichaulangsonlamdongdaknonghagiangangiangcaobangbinhduongninhthuanbinhthuanbaclieuthaibinhninhbinhbinhdinhtuyenquanghungyenbaria-vungtauthainguyendienbienbinhphuocschbizputerimagine-proxyorgcomnetedugovcloud66advisormypetsdyndnsxn--8dbq2axn--4dbgdty6cxn--5dbhl8dxn--hebda8bxn--80auxn--d1atxn--c1avgxn--o1acxn--o1achxn--90azhxn--55qx5dxn--uc0atvxn--od0algxn--wcvs22dxn--gmqw5axn--mxtq1mxn--12c1fe0brxn--h3cuzk1dixn--12co0c3b4evaxn--12cfi8ixb8lxn--o3cyx2axn--m3ch0j3axn--j1adpxn--90amcxn--90a1afxn--h1ahnxn--j1ael8bxn--h1alizxn--c1avgxn--j1aefxn--80aaa0cvacxn--41acaffeineexeopentunnelbotdashtelebitorgtmaccoagricorgmilnomwebnicngonetaltedugovlawnisschoolgrondaraccoorgmilcomschnetedugovbizinfoprg1-zeropstritonstackitlimazeropsaccoorgmilgovяспборгкоммскбизмирсамаракрымсочиакодпроргобрупрצהלממשלישובאקדמיהองค์กรธุรกิจรัฐบาลศึกษาทหารเน็ต教育網絡組織公司政府個人닷넷한국澳门新闻澳門联通家電嘉里招聘通販닷컴삼성コムგეбгрфеюadcdbdgdidmdsdtdaebedeeegeiejekemenepereseveyegabacalamanauavapaqasazacfbfafgfnfpfwftfbgcgagggegkgngmgsgpgvgtgugilmlnlalclglplsltlhmimjmkmmmomambmcmdmfmgmzmpmsmtmgbbblbsbecccacnclcmcvctcscmhkhghchbhthphshlinikifigiaibicivisikninhnmncnbngnsnpnvntnjoionomobocoaofodorosotoptstttytatbtetgtithtmtltrusuvuaucueuguhulumunufjdjbjtjsjlkmkhkfkdkcktkukskpkgpmpnpkpjpgqaqmqiqsvtvcvbvmvlvrwpwtwzwbwcwawgwkwmwtrsrprgrfrercrbrarnrmrlrkrirhrwsusrssspsgsesbsaslsmsissxmxaxcxuypysylymykygybycyuztzsznzmzkzdzczbzazελευ世界台灣购物公益点看臺灣网络書籍在线网站手机机构大拿游戏信息台湾谷歌慈善商标香港中国餐厅网址中國商城食品微博政务移动集团公司八卦商店健康网店政府时尚佛山中信娱乐广东企业homedepotengineeringاماراتrepublicankuokgroupversicherungchannelcitadelxn--pgbs0dhxn--b4w605ferdstatebankwebsitexn--mgb9awbf亚马逊淡马锡alibabaxn--ngbc5azdxn--mgbbh1axn--45br5cyltoshibabuildworldcloudtradeguideplacespacedancemoviephoneprimesmilebiblestyleappleazurestoreskypegripexn--l1accdrivelottehorsehouseleasechasereisestadahondaomegaaetnaamicaninjanokiamediadeltavodkaedekaosakapizzaslingemailgmailtirolshelltmallfinallegaltotalhotelamfamforumrehabmusicciticricohcoachwatchboschearthfaithirishmiamiarchidubaiguccipraxiみんなストアセールcanonsalononionnikonepsonkoelngreensevencrownikanoradioaudioweiboglobopromogalloyahoociscorodeovideomangobingotokyovolvolottokyotophotosmartsportquesttrusthyattjetztadultcymrubaidutushuxn--kprw13dubankclickblackmerckgroupsharpcheapnowtvxn--h2brj9cקוםհայоргсрбмонкомбелмкдқазрусукрمصرقطرعربكومdadcfdmedwedredphdthdbidpidkrdmsdltdiceonewmeglemoerwecfageacbanbambaaaammakianraspacpaaxawtfbcgaegongingaigvigorgdogdhlmilrilonlaolloluoljllcalgalnflafltelsrlfrllplkimibmcamcombommomifmabbjcbscbcabnabtabmlbpubabcbbcnecincpncllcstcwtcpwcnyckfhbzhovhmoiskiobisbitcifyituipinvinwinxincbnbcnmanfangdnmenrenkpnmtnyunrunfununobiojioriohbogmofooboooooacoecoceongoproartistottnttbbtcateatlatvetpetbetnethktmitfitintjothotgotdotbotprueduicujnjyouinknhktdkappsapgapmapdnptopgopllpjmpzipvipripesqtrvdtvitvdevmovgovhivnrwlawsewnewbmwwownowhowdvrftrmtrsfrbarcartvscrseusawsupsubssbsadsddsldssasbmsmlsxxxboxfoxgmxtjxsextaxbuyflydiysoyjoyskypaydaygayxyzanzbizwebersenerpokerlameractortatarsolarລາວคอมไทยtourslocusnexuslexusgiftsbeatsboatspartspressglassswissकॉमनेटtiresgivescodeshomesgamestunesshoescardswalesloansvegastoolsdealsautosparisファッションworkssucksrocksxeroxforexfedexpartylillymoneystudyrugbytoraytoday中文网xn--unup4y天主教飞利浦新加坡enterprises我爱你嘉里大酒店christmasxn--fct429kholdingsxn--8y0a063axn--mgbx4cd0ablifestyleabogadoallstatenetbankكاثوليكxn--s9brj9cxn--gk3at1ebestbuycharityxn--55qx5dmicrosoftpropertybasketballhomegoodscorsicajewelrygallerygrocerysurgerycountrybrusselsverisignferreroxn--czr694bhdfcbankcommbanksoftbankپاكستانپاکستانnextdirectالسعوديهالعليانxn--h2brj9c8cxn--80adxhksshikshaxn--mgbai9azgqp6jcuisinellabarclayscatholicxn--kpry57dcompanyxn--xhq521bblackfridayxn--mgba3a3ejtsandvikxn--d1acj3bacademydownloadمليسياxn--j1amhxn--w4r85el8fhu5dnraipirangaathletaxn--fhbeixn--mgbqly7cvafrzuerichxn--c2br7gஇலங்கைcontractorsxn--io0a7igraphicsinsurancetemasekxn--xkc2al3hye2amotorcyclesphotographydirectoryplumbingxn--vhquvclothingtrainingcleaningwilliamhilllightingxn--mgba3a4f16ashoppingcateringeducationokinawapicturesventuresproductionsxn--9et52uwalmartഭാരതംsupportrealestatecapitalonexn--nqv7fs00emaauspostfloristdentistxn--qxamgodaddybradescobargainsmitsubishikerryhotelsxn--9dbq2axn--3pxu8kimmobilienxn--fjq720axn--mgbtx2bholidaymckinseymadridbusinessbuildershelsinkixn--4gbrimмоскваالسعودیةcoffeedegreelacaixapartnersalsaceofficeabbvievoyageorangegeorgeonlinechromemobilekindlegoogleoraclecircleschulesecureinsurexn--mgba7c0bbn0aestatexn--mgbc0a9azcgcruisehangoutxn--vuq861bxn--42c2d9arexrothfirestoneuniversityxn--nnx388alifeinsuranceextraspaceонлайнvermögensberatersoftwarexn--fiqs8sxn--mgbab2bdxn--w4rs40ltiendaभारतम्africatoyotaotsukasakuracameracreditcardnagoyaconsultingnetworkjunipertheatermonsterprogressivepioneerxn--55qw42gracingdatingvotingvikinglivinggivingxn--bck1b9a5dre4cbrotherweatherjoburgفلسطينlplfinancialxn--clchc0ea0b2g2a9gcdfutbolschoolsocialglobaldentalwoodsidechanelairtelmatteltravelrealtorwebcamstreamభారత్unicomalstomxn--nodexn--6frz82gmuseumfurniturexn--rvc1e0am3exn--mix891faccenturexn--11b4c3dismailineustardiscountquebeccomsecclinicservicesxn--y9a3aqxn--c1avgswatchchurchsearchالاردنmarketingcontacthealthmonashshoujisanofitaipeiamericanexpresssuzukiアマゾンクラウドポイントbhartiグーグルxn--mgberp4a5d4armemorialxn--1qqw23alondonmormoninstitutevisionbostonnortoncouponmaisonamazonvirginberlindesigndurbanolayannissananquanxihuanhitachikaufengardenreisenbayerntechnologydatsunxn--90a3aclatinocasinostudiophysioxn--ngbe9e0apharmacytattootaobaoaramcoexpertreportabbottdirectselectimamatfairwindspictettargetmarketintuittravelersinsurancecreditdupontryukyusuppliesxn--tckwebnpparibasschmidtmerckmsdyodobashirestaurantbridgestonecricketxn--fpcrj9c3dbostikbroadwayattorneylefrakemerckxn--fiq228c5hscareersfarmerswinnersflowersxn--wgbh1cguitarsxn--54b7fta0ccxn--p1acfmakeupgalluplandroverxn--kcrx77d1x4agoldpointbauhausxn--mgbayh7gpahiphopplaystationxn--mgba3a4fraxn--eckvdtc9dhyundaixn--gckr3f0fistanbulticketsmarketsflightschintaireviewsxn--3e0b707ewindowsxn--fiqz9sfinancialxn--fzys8d69uvgmابوظبيdiscoverreviewবাংলাxn--5su34j936bgsgmoscowobserverapartmentsдетиارامكوсайтeurovisionxn--i1b6b1a6a2exn--xkc2dl3a5ee0hتونسموقعبارتڀارتشبكةعمانبيتكعراقreadkredbondlandbandfundfoodprodgoldfordtubecafesafelifeggeeieeefreefagepagegugezonewinememenamegamesaleablebikenikelikecarecbreherefiresaveloveliveblueartedatesitevotecaseluxebofamodaltdaasdatiaayogasinavanashiaasiajavabbvatevavivadatazaraarpacasavisasncfprofmaifsurfgolfdvagsongbingpingwangkpmggoogblogpohlfailcooldellcalldeallidlsarlfilmteamroomfarmimdbarabclubhdfcicbchsbcgmbhrichtechfishdishcashminiernikddiaudiwikimobitaxicitikiwidesiqponskinloanakdnwienopenporncerntownimmolimoolloinfonicofidolegosaxozeroaerovivoautovotomotofastbestresthostpostnextlgbtchatseatgiftmeetdietreitmintrentgentspotscotguruitausohumenucyoubanklinkpinkdclktalksilkbookseekworkrsvpaarpjeepshopcoophelpcamppccwshowbeerstarruhrflirweirhaircarsparsjprshausplusnewstipstoysjobskidsfanspicsdocsxboxamexsexynavycitysonyarmyallybabyplaydeliverybuzzgbizlamborghiniphilipsලංකාಭಾರತfitnessexpresslanxesspfizercenterwalterlawyersoccercareerkosherbrokerlockerdealerdoctorauthorxn--mgbqly7c0a67fbcvermögensberatungjaguarxn--pssy2uxn--hxt814eflickrrepairrogersairbusxn--mgbai9a5eva00beventsyachtsxn--t60b56aভাৰতভারতभारतभारोतviajeshermeshughesxn--j1aefसंगठनvillasଭାରତclaimshotelsભારતzapposphotosjuegoscondostatamotorsgratistennisਭਾਰਤtkmaxxtjmaxxschaeffleryandexxn--80aswgrealtysafetybeautyluxuryxn--3ds443gsupplyfamilyxn--o3cw4hhockeysydneyxn--90aenissayalipayenergycomputeragencyxn--rovu88b電訊盈科xn--gecrj9cstatefarmaccountantaquarelleolayangroup香格里拉xn--p1ai组织机构xn--1ck2e1bxn--mgbt3dhdschwarzموريتانياabudhabinowruzkomatsufujitsuhospitalxn--80asehdbxn--mgbtf8flxn--j6w193gxn--yfro4i67oprudentialxn--flw351ecruisescoursesrecipesxn--e1a4cferrarixn--ses554gxn--wgbl6awatchesstaplessinglesxn--mgbcpq6gpa1axn--otu796dpropertiescreditunionxn--mgbah1a3hjkrdstockholmhisamitsuالسعوديةstcgroupdomainsoriginscouponsbloombergclubmedfroganslimitedxn--80aqecdr1aexposedinternationalequipmentbarclaycardxn--q7ce6axn--mgbi4ecexpprotectionassociatesconstructionxn--cck2b3bxn--45q11candroidfoundationישראלxn--mgbca7dzdocliniqueboutiqueengineerxn--qxa6asystemsfirmdalefashionauctionxn--nqv7finfinitirentalsreliancetradingweddingfishinghostinggentingbookingcookingxn--3hcrj9cgraingerxn--czrs0tdemocratsamsungyokohamaxn--h2breg3evexn--nyqy26alundbeckmelbournevacationssolutionsfrontierxn--vermgensberatung-pwbmanagementxn--cg4bkixn--mgb2ddeslincolnhamburgsandvikcoromantblockbusterairforcebarefootxn--4dbrk0ceinvestmentsfeedbackcommunityxn--ngbrxالبحرينdiamondsamsterdamhealthcareredumbrellaxn--mxtq1mxn--2scrj9cagakhanxn--mgbpl2fhкатоликcaravanசிங்கப்பூர்richardlimortgageamericanfamilyxn--fzc2c9e2cscholarshipssaarlandxn--imr513nvlaanderensamsclubgoodyearkitchenஇந்தியாweatherchannelallfinanzxn--kput3iالسعودیۃxn--90aisxn--efvy88hالجزائرxn--mgbaam7a8hexchangejpmorganxn--tiq49xqyjfidelitysecurityxn--mk1bu44cwanggouxn--fiq64bxn--6qq986b3xlxn--mgbbh1a71exn--80ao21amarshallsxn--5tzm5gtravelerspanasoniclatrobeyoutubeaccountantsxn--rhqv96gxn--cckwcxetdanalyticsxn--ygbi2ammxبازاربھارتسوريةorganicfreseniusسورياxn--9krt00axn--qcka1pmcxn--jlq480n2rgdeloittesciencefinancexn--jvr189mxn--30rr7yhomesensehotmailbaseballfootballleclercboehringerxn--q9jyb4cxn--mix082fاليمنهمراهpolitieسودانايرانایرانnetflixyamaxunxn--lgbbat1ad8jcollegestoragecapetowncolognekerrypropertiesxn--mgbgu82axn--ogbpf8flxn--czru2dwhoswhociprianilasallexn--g2xx48cforsalebanamexaudiblexn--vermgensberater-ctbxn--zfr164bericssonvanguardxn--45brj9cindustriestheatremarriottxn--3bst00mcomparexn--mgberp4a5d4a87gcapitaldigitalالمغربbarcelonashangrilaxn--d1alfcalvinkleinwwwcitysapporokawasakinagoyasendaikobekitakyushuyokohamackjp",F7=621,Y7=625,xx=ss.length,kx=Vc.length,wx=new Uint32Array(kx),Oc=new Uint32Array(kx),kp=new Int32Array(xx).fill(-1);for(let e=0,n=0;e<xx;e+=1)for(let s=Lc[e];s<Lc[e+1];s+=1){wx[s]=n;const r=n+Vc[s];let u=5381;for(let f=r-1;f>=n;f-=1)u=u*33^xp.charCodeAt(f);Oc[s]=u>>>0,Vc[s]===1&&xp.charCodeAt(n)===42&&(kp[e]=s),n=r}let Rn=-1,wp=0,Sp=0;function Oy(e,n,s,r){if(Vc[e]!==r)return!1;const u=wx[e];for(let f=0;f<r;f+=1)if(xp.charCodeAt(u+f)!==n.charCodeAt(s+f))return!1;return!0}function qy(e,n,s,r,u){let f=Lc[e],g=Lc[e+1];for(;f<g;){const b=f+g>>>1,x=Oc[b];if(x<n)f=b+1;else if(x>n)g=b;else{for(let k=b;k>=f&&Oc[k]===n;k-=1)if(Oy(k,s,r,u))return k;for(let k=b+1;k<g&&Oc[k]===n;k+=1)if(Oy(k,s,r,u))return k;return-1}}return-1}function By(e,n,s){let r=n,u=e.length,f=5381;Rn=-1;for(let b=e.length-1;b>=0;b-=1){const x=e.charCodeAt(b);if(x===46){const k=b+1;let S=qy(r,f>>>0,e,k,u-k);if(S===-1&&(S=kp[r]),S===-1)return Rn!==-1;r=Ry[S],(ss[r]&s)!==0&&(Rn=r,wp=k,Sp=u),u=b,f=5381}else f=f*33^x}let g=qy(r,f>>>0,e,0,u);return g===-1&&(g=kp[r]),g!==-1&&(r=Ry[g],(ss[r]&s)!==0&&(Rn=r,wp=0,Sp=u)),Rn!==-1}function Sx(e,n,s){if(Z7(e,n,s))return;const r=(n.allowPrivateDomains?2:0)|(n.allowIcannDomains?1:0);if(By(e,Y7,r)){s.isIcann=(ss[Rn]&1)!==0,s.isPrivate=(ss[Rn]&2)!==0,s.publicSuffix=e.slice(Sp+1);return}if(By(e,F7,r)){s.isIcann=(ss[Rn]&1)!==0,s.isPrivate=(ss[Rn]&2)!==0,s.publicSuffix=e.slice(wp);return}s.isIcann=!1,s.isPrivate=!1;const u=e.lastIndexOf(".");s.publicSuffix=u===-1?e:e.slice(u+1)}const $c=Q7();function X7(e,n){return bx($c),vx(e,0,Sx,n,$c).hostname}function J7(e,n){return bx($c),vx(e,5,Sx,n,$c).domainWithoutSuffix}const W7={allowPrivateDomains:!0};new R7({fuzzyLink:!0,fuzzyEmail:!1}).tlds(O7);function o0(e){if(e==null)return null;const n=e.trim();if(!n)return null;const s=X7(n);return s?s.replace(/^www\./i,"").toLowerCase():null}function e_(e){return e==null||e.trim()===""?"":J7(e,W7)?.toLowerCase()??""}const t_=new Intl.Segmenter("en",{granularity:"word"}),a_=/[\p{L}\p{N}]+/gu;function n_(e){return e.normalize("NFKC").toLocaleLowerCase("en")}function i_(e){const n=[];for(const s of t_.segment(e))if(s.isWordLike)for(const r of s.segment.match(a_)??[])n.push(r);return n}function s_(e){return i_(n_(e))}function os(e){return s_(e).join("")}const jx=N(["cli","api","config-file"]);function o_(e){const n=new Set,s=new Set;for(const r of e){if(n.has(r.label)){s.add(r.label);continue}n.add(r.label)}return[...s]}function r_(e,n){return n?e.some(s=>s.label===n):!0}const l_=h({displayName:o().min(1),canonicalDomain:o().min(1),ownedDomains:y(o().min(1)).optional(),aliases:y(o()).optional(),country:o().length(2),language:o().min(2),tags:y(o()).optional(),labels:Pe(o(),o()).optional(),providers:y(mt).optional(),providerModels:n0.optional(),locations:y(sa).optional(),defaultLocation:o().nullable().optional(),measurement:s0.optional(),autoExtractBacklinks:E().optional(),configSource:jx.optional()});l_.extend({name:o().trim().min(1).max(120)});const c_=h({id:o(),name:o(),displayName:o().optional(),canonicalDomain:o(),ownedDomains:y(o()).default([]),aliases:y(o()).default([]),country:o().length(2),language:o().min(2),tags:y(o()).default([]),labels:Pe(o(),o()).default({}),providers:y(o()).default([]),providerModels:n0.default({}),locations:y(sa).default([]),defaultLocation:o().nullable().optional(),measurement:s0.default(gx),autoExtractBacklinks:E().default(!1),configSource:jx.default("cli"),configRevision:m().int().positive().default(1),createdAt:o().optional(),updatedAt:o().optional()});h({id:o(),query:o(),createdAt:o()});h({id:o(),keyword:o(),createdAt:o()});h({queries:y(o().trim().min(1)).min(1)});h({keywords:y(o().trim().min(1)).min(1)});h({provider:mt,count:m().int().min(1).max(20).optional()});h({id:o(),domain:o(),createdAt:o()});h({competitors:y(o().trim().min(1)).min(1)});function jp(e){return o0(e)??e.trim().toLowerCase().replace(/^www\./,"")}function u_(e){const n=[e.canonicalDomain,...e.ownedDomains??[]],s=new Set,r=[];for(const u of n){const f=u.trim();if(!f)continue;const g=jp(f);s.has(g)||(s.add(g),r.push(f))}return r}const d_=h({name:o().min(1).max(63).regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/,{message:"Name must be a lowercase slug (letters, numbers, hyphens)"}),labels:Pe(o(),o()).optional().default({})}),m_=h({preset:o().optional(),cron:o().optional(),timezone:o().optional().default("UTC"),providers:y(mt).optional().default([]),enabled:E().optional()}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'}).optional(),p_=h({channel:$("webhook"),url:o().url(),events:y(i0).min(1)}),h_=h({gsc:h({propertyUrl:o()}).optional(),syncSchedule:h({preset:o().optional(),cron:o().optional()}).optional()}).optional(),My=y(o().min(1)),f_=h({displayName:o().min(1),canonicalDomain:o().min(1),ownedDomains:y(o().min(1)).optional().default([]),aliases:y(o().min(1)).optional().default([]),country:o().length(2),language:o().min(2),queries:My.optional(),keywords:My.optional(),competitors:y(o().min(1)).optional().default([]),providers:y(mt).optional().default([]),providerModels:n0.optional().default({}),locations:y(sa).optional().default([]),defaultLocation:o().optional(),measurement:s0.optional().default(gx),schedule:m_,notifications:y(p_).optional().default([]),google:h_,autoExtractBacklinks:E().optional().default(!1)}).superRefine((e,n)=>{e.queries!==void 0&&e.keywords!==void 0&&n.addIssue({code:"custom",message:"Use spec.queries; spec.keywords is accepted only as a legacy alias when spec.queries is omitted",path:["keywords"]});const s=o_(e.locations);s.length>0&&n.addIssue({code:"custom",message:`Duplicate location labels are not allowed: ${s.join(", ")}`,path:["locations"]}),r_(e.locations,e.defaultLocation)||n.addIssue({code:"custom",message:`defaultLocation "${e.defaultLocation}" must match a configured location label`,path:["defaultLocation"]})});h({apiVersion:$("canonry/v1"),kind:$("Project"),metadata:d_,spec:f_});const g_=2,y_=o().regex(/^[a-f0-9]{64}$/),iu=o().trim().min(1).max(256),Py=N(["sensitive","insensitive"]),ke=o().trim().min(1).max(128).regex(/^[a-z0-9][\w.~-]*$/i,"Must be a URL-safe stable key"),b_=o().trim().min(1).refine(e=>o0(e)!==null,"A competitor domain must be a valid hostname"),v_=Fe("kind",[h({kind:$("exact"),url:o().min(1),pathCase:Py}).strict(),h({kind:$("prefix"),host:o().min(1),pathPrefix:o().min(1),pathCase:Py}).strict(),h({kind:$("host"),host:o().min(1)}).strict()]),x_=h({canonicalHost:o().min(1),ownedHosts:y(o().min(1)),names:y(o().min(1))}).strict(),k_=h({projectBrand:x_}).strict(),w_=h({stableKey:ke,label:o().trim().min(1),aliases:y(o().min(1)),urlMatchers:y(v_),mentionNotApplicable:E(),discoveryIdentity:o().min(1).nullable()}).strict(),Ax=h({stableKey:ke,label:o().trim().min(1),domain:b_,aliases:y(o().min(1))}).strict(),S_=h({stableKey:ke,label:o().trim().min(1),targetKeys:y(ke),competitors:y(Ax)}).strict(),j_=N(["manual","query-set","template","discovery"]),A_=h({source:j_,sourceId:o().min(1).nullable(),capturedAt:o().datetime()}).strict(),N_=h({queryId:iu,queryText:o().min(1),provenance:A_}).strict(),C_=h({providers:y(mt).min(1),models:Pe(mt,o().min(1)),location:sa.nullable()}).strict(),__=h({stableKey:o().min(1),queryId:iu,queryText:o().min(1),context:C_,expectedSnapshots:m().int().nonnegative()}).strict(),r0=N(["branded","non-brand"]),z_=h({targetKey:ke,queryId:iu,queryClass:r0,executionNodeKey:o().min(1)}).strict(),E_=h({executionNodeKey:o().min(1),targetKey:ke,queryId:iu}).strict(),su=h({schemaVersion:$(g_),identities:k_,targets:y(w_),groups:y(S_),querySnapshots:y(N_),assignments:y(z_),executionNodes:y(__),usageEdges:y(E_),compiledChecksum:y_}).strict().superRefine((e,n)=>{const s=new Set;for(const u of e.executionNodes)s.has(u.stableKey)&&n.addIssue({code:ft.custom,path:["executionNodes"],message:`Duplicate execution node key "${u.stableKey}"`}),s.add(u.stableKey);const r=new Set(e.targets.map(u=>u.stableKey));e.usageEdges.forEach((u,f)=>{s.has(u.executionNodeKey)||n.addIssue({code:ft.custom,path:["usageEdges",f,"executionNodeKey"],message:`Usage edge references unknown execution node "${u.executionNodeKey}"`}),r.has(u.targetKey)||n.addIssue({code:ft.custom,path:["usageEdges",f,"targetKey"],message:`Usage edge references unknown Target "${u.targetKey}"`})}),e.assignments.forEach((u,f)=>{r.has(u.targetKey)||n.addIssue({code:ft.custom,path:["assignments",f,"targetKey"],message:`Assignment references unknown Target "${u.targetKey}"`})});for(const u of e.groups)for(const f of u.targetKeys)r.has(f)||n.addIssue({code:ft.custom,path:["groups"],message:`Group "${u.stableKey}" references unknown Target "${f}"`})}),l0=100;function vo(e){return h({items:y(e),nextCursor:o().min(1).nullable(),totalEstimate:m().int().nonnegative().optional()}).strict()}const c0=N(["no_completed_run","plan_v1","no_population","evidence_incomplete","not_applicable"]),Mt=Fe("state",[h({state:$("available"),value:m(),numerator:m().int().nonnegative().optional(),denominator:m().int().positive().optional()}).strict(),h({state:$("unavailable"),reason:c0}).strict()]),u0=N(["all","group","property"]),Za=N(["all","branded","non-brand"]),D_=N(["label-asc","label-desc","citationCoverage-asc","citationCoverage-desc","mentionCoverage-asc","mentionCoverage-desc"]),d0=N(["not_measured","queued","running","complete","partial","failed"]),T_=N(["run_measurement","review_flags","complete_setup","republish_setup","none"]);h({scope:u0,groupKey:ke.optional(),targetKey:ke.optional(),queryClass:Za.optional(),provider:mt.optional(),location:o().trim().min(1).optional(),from:o().trim().min(1).optional(),to:o().trim().min(1).optional(),runId:o().trim().min(1).optional(),search:o().optional(),sort:D_.optional(),cursor:o().trim().min(1).optional(),limit:m().int().positive().max(l0).optional()}).strict();const R_=h({provider:mt,mentionCoverage:Mt,citationCoverage:Mt}).strict(),O_=h({bothSignals:m().int().nonnegative(),mentionedOnly:m().int().nonnegative(),citedOnly:m().int().nonnegative(),neither:m().int().nonnegative(),notMeasured:m().int().nonnegative(),total:m().int().nonnegative()}).strict(),q_=h({targetKey:ke,label:o().min(1),mentionCoverage:Mt,citationCoverage:Mt,providers:y(R_),flags:m().int().nonnegative()}).strict(),B_=h({kind:N(["project","competitor"]),stableKey:o().min(1),label:o().min(1),domain:o().min(1),credits:m().int().nonnegative(),share:m().min(0).max(1)}).strict(),M_=h({groupKey:ke,queryClass:$("non-brand"),denominator:m().int().positive(),entries:y(B_)}).strict();h({mode:N(["active-v1","active-v2"]),scope:h({kind:u0,key:o().min(1).optional(),label:o().min(1)}).strict(),queryClass:Za,measurement:h({state:d0,currentRunId:o().min(1).optional(),displayedRunId:o().min(1).optional(),completed:m().int().nonnegative(),expected:m().int().nonnegative(),completedAt:o().datetime().optional(),includesHistoricalData:E().optional()}).strict(),nextAction:h({kind:T_,count:m().int().nonnegative().optional()}).strict(),metrics:h({propertiesMentioned:Mt,mentionCoverage:Mt,citationCoverage:Mt,brandPresence:Mt,sov:Mt.describe("Deprecated alias of brandPresence carrying the identical value. Remove once the browser migrates.")}).strict(),properties:vo(q_),outcomes:O_,flags:h({total:m().int().nonnegative()}).strict(),namedShareOfVoice:M_.optional()}).strict();const Nx=N(["sources","answers"]),P_=Nx.enum;P_.sources;h({targetKey:ke,queryClass:Za.optional(),provider:mt.optional(),location:o().trim().min(1).optional(),runId:o().trim().min(1).optional(),shape:Nx.optional(),cursor:o().trim().min(1).optional(),limit:m().int().positive().max(l0).optional()}).strict();const Cx=1,Xr=m().int().positive(),Pt=o().trim().min(1).max(128).regex(/^[a-z0-9][\w.~-]*$/i,"Must be a URL-safe stable key"),Jr=o().trim().min(1).max(256),Iy=N(["sensitive","insensitive"]);function Hc(e){const n=o0(e);if(!n)throw new Error(`Invalid measurement host: ${e}`);return n}function I_(e){const n=[];let s=!1;for(let r=0;r<e.length;r++){const u=e[r];u==="/"?(s||n.push(u),s=!0):(n.push(u),s=!1)}for(;n.length>1&&n.at(-1)==="/";)n.pop();return n.length?n.join(""):"/"}function Uy(e){try{return decodeURI(e).normalize("NFC").toLowerCase()}catch{return e.normalize("NFC").toLowerCase()}}function _x(e){const n=new URL(`https://measurement.invalid${e}`).pathname;return I_(n.replace(/%[0-9a-f]{2}/gi,s=>s.toUpperCase()))}function Ap(e){const n=e.trim();if(!n||n.includes("?")||n.includes("#")||n.includes("://")||n.includes("\\"))throw new Error(`Invalid measurement path prefix: ${e}`);const s=n.startsWith("/")?n:`/${n}`;for(const r of s.split("/")){let u;try{u=decodeURIComponent(r)}catch{throw new Error(`Invalid measurement path prefix: ${e}`)}if(u==="."||u==="..")throw new Error(`Invalid measurement path prefix: ${e}`)}try{return _x(s)}catch{throw new Error(`Invalid measurement path prefix: ${e}`)}}function U_(e){const n=/^[a-z][a-z0-9+.-]*:\/\/[^/?#]*/i.exec(e);if(!n)throw new Error(`Invalid exact measurement URL: ${e}`);return e.slice(n[0].length).split(/[?#]/,1)[0]||"/"}function Ly(e){const n=e.trim();if(!n||n.includes("\\"))throw new Error(`Invalid exact measurement URL: ${e}`);let s;try{s=new URL(n)}catch{throw new Error(`Invalid exact measurement URL: ${e}`)}if(s.protocol!=="http:"&&s.protocol!=="https:"||s.username||s.password||s.port||s.search||s.hash)throw new Error(`Invalid exact measurement URL: ${e}`);const r=Hc(s.hostname),u=Ap(U_(n));return`https://${r}${u}`}const Hr=o().trim().min(1).refine(e=>{try{return Hc(e),!0}catch{return!1}},"A target URL matcher host must be a valid hostname").overwrite(e=>Hc(e)),L_=o().trim().min(1).refine(e=>{try{return Ap(e),!0}catch{return!1}},"A target URL matcher pathPrefix must be an absolute path without query or fragment").overwrite(e=>Ap(e)),V_=o().trim().min(1).refine(e=>{try{return Ly(e),!0}catch{return!1}},"A target exact matcher must be an HTTP(S) URL without credentials, port, query, or fragment").overwrite(e=>Ly(e)),$_=Fe("kind",[h({kind:$("exact"),url:V_,pathCase:Iy}).strict(),h({kind:$("prefix"),host:Hr,pathPrefix:L_,pathCase:Iy}).strict(),h({kind:$("host"),host:Hr}).strict()]),zx=o().trim().min(1).max(256).refine(e=>os(e).length>0,"A target alias must contain mention text"),H_=Pe(o().trim().min(1),o()),G_=Hr,Ex=h({stableKey:Pt,label:o().trim().min(1),urls:y($_).min(1),aliases:y(zx),metadata:H_.optional()}).strict(),m0=h({stableKey:Pt,label:o().trim().min(1),targetKeys:y(Pt).min(1),competitors:y(G_).optional()}).strict(),Dx=h({targetKey:Pt,queryIds:y(Jr).min(1),context:sa.nullable().optional()}).strict();function K_(e,n){return e<n?-1:e>n?1:0}function Q_(e,n=s=>s){const s=new Set,r=new Set;for(const u of e){const f=n(u);s.has(f)&&r.add(f),s.add(f)}return r}function Fm(e,n,s,r,u){for(const f of Q_(n,u))e.addIssue({code:"custom",path:[...s],message:`Duplicate ${r}: ${f}`})}function Vy(e){if(e.kind==="host")return{host:e.host,pathname:null};if(e.kind==="prefix")return{host:e.host,pathname:e.pathPrefix};const n=new URL(e.url);return{host:Hc(n.hostname),pathname:_x(n.pathname||"/")}}function Z_(e,n,s,r){return e===s||(n==="insensitive"||r==="insensitive")&&Uy(e)===Uy(s)}function F_(e,n){if(e.kind!==n.kind)return!1;const s=Vy(e),r=Vy(n);return s.host!==r.host?!1:e.kind==="host"||n.kind==="host"?!0:Z_(s.pathname,e.pathCase,r.pathname,n.pathCase)}function Y_(e){const n=new Set;return[...e].sort(K_).filter(s=>{const r=os(s);return n.has(r)?!1:(n.add(r),!0)})}const Tx=h({schemaVersion:$(Cx),targets:y(Ex).min(1),groups:y(m0).optional(),targetQuerySelections:y(Dx).optional()}).strict().superRefine((e,n)=>{const s=e.groups??[],r=e.targetQuerySelections??[];Fm(n,e.targets.map(x=>x.stableKey),["targets"],"target stable key"),Fm(n,s.map(x=>x.stableKey),["groups"],"group stable key");const u=new Set(e.targets.map(x=>x.stableKey)),f=new Set(s.map(x=>x.stableKey));for(const x of u)f.has(x)&&n.addIssue({code:"custom",path:["groups"],message:`Target and group stable keys must be globally unique: ${x}`});const g=new Map,b=[];e.targets.forEach((x,k)=>{for(const S of Y_(x.aliases)){const A=os(S),j=g.get(A);j&&j!==x.stableKey&&n.addIssue({code:"custom",path:["targets",k,"aliases"],message:`Target alias is already assigned to target ${j}: ${S}`}),g.set(A,x.stableKey)}x.urls.forEach((S,A)=>{b.find(D=>D.targetKey!==x.stableKey&&F_(D.matcher,S))&&n.addIssue({code:"custom",path:["targets",k,"urls",A],message:"Target URL matcher has an equal-specificity cross-target tie"}),b.push({targetKey:x.stableKey,matcher:S})})}),s.forEach((x,k)=>{Fm(n,x.targetKeys,["groups",k,"targetKeys"],"group target key");for(let S=0;S<x.targetKeys.length;S++){const A=x.targetKeys[S];u.has(A)||n.addIssue({code:"custom",path:["groups",k,"targetKeys",S],message:`Unknown target: ${A}`})}}),r.forEach((x,k)=>{u.has(x.targetKey)||n.addIssue({code:"custom",path:["targetQuerySelections",k,"targetKey"],message:`Unknown target: ${x.targetKey}`})})});Tx.transform(e=>({...e,groups:e.groups??[],targetQuerySelections:e.targetQuerySelections??[]}));h({expectedActiveRevision:Xr.nullable(),plan:Tx}).strict();const X_=h({queryId:Jr,queryText:o().min(1)}).strict(),p0=h({stableKey:o().min(1),queryText:o().min(1),context:sa.nullable(),expectedSnapshots:m().int().nonnegative()}).strict(),J_=h({kind:$("baseline"),executionNodeKey:o().min(1),queryId:Jr}).strict(),W_=h({kind:$("target"),executionNodeKey:o().min(1),queryId:Jr,targetKey:Pt}).strict(),Np=Fe("kind",[J_,W_]),Rx=h({code:$("target-alias-prefix-overlap"),message:o().min(1),targetKeys:y(Pt).min(1),aliases:y(o().min(1)).min(1)}).strict(),Ox=Ex.extend({mentionNotApplicable:E()}),qx=h({schemaVersion:$(Cx),defaultContext:sa.nullable(),effectiveOwnedHosts:y(Hr),projectCanonicalHost:Hr,projectBrandNames:y(zx),targets:y(Ox),groups:y(m0),targetQuerySelections:y(Dx),querySnapshots:y(X_),executionNodes:y(p0),usageEdges:y(Np),warnings:y(Rx)}).strict(),ez=qx,Bx=Fe("schemaVersion",[qx,su]),h0=o().regex(/^[a-f0-9]{64}$/),f0=o().datetime(),Mx=h({schemaVersion:$(1),providers:y(o().min(1)).min(1),models:Pe(o().min(1),o().min(1)),checksum:o().regex(/^[a-f0-9]{64}$/)}).strict(),tz=h({groups:y(Pt).optional(),targets:y(Pt).optional()}).strict(),az=h({groups:y(Pt),targets:y(Pt),queries:y(o().min(1)),resolvedTargets:y(Pt)}).strict().superRefine((e,n)=>{e.resolvedTargets.length===0&&e.queries.length===0&&n.addIssue({code:"custom",path:["resolvedTargets"],message:"A recorded scope must name something it measured"})});h({stableKey:Pt,retiredAt:o().datetime()});h({active:h({revision:Xr,checksum:h0,createdAt:f0,plan:Bx}).nullable()});h({versions:y(h({revision:Xr,checksum:h0,createdAt:f0,active:E()}))});h({version:h({revision:Xr,checksum:h0,createdAt:f0,active:E(),plan:Bx})});const qc=h({targets:m().int(),groups:m().int(),queries:m().int(),executionNodes:m().int(),usageEdges:m().int(),baselineEdges:m().int(),targetEdges:m().int(),dedupSavings:m().int()}).strict(),nz=N(["invalid-authoring","duplicate-identity","unknown-target","unknown-query","invalid-project-context","unowned-target-url","owned-competitor","target-query-context-conflict","target-url-ownership-tie","target-alias-cross-target-collision","target-alias-project-brand-collision","target-alias-prefix-overlap"]),Px=h({id:nz,severity:N(["fail","warn"]),message:o().min(1),path:y(Ie([o(),m().int()]))}).strict(),iz=h({baseline:m().int().nonnegative(),target:m().int().nonnegative()}).strict(),Ix=h({ok:$(!0),checks:y(Px),executionNodes:y(p0),dedupSaved:m().int().nonnegative(),usageEdges:iz,estCostUsd:de(),plan:ez,warnings:y(Rx),counts:qc}).strict(),Ux=h({ok:$(!1),checks:y(Px).min(1),executionNodes:y(p0).length(0),dedupSaved:$(0),usageEdges:h({baseline:$(0),target:$(0)}).strict(),estCostUsd:de()}).strict();Fe("ok",[Ix,Ux]);const Ac=h({targetKey:Pt,context:sa.nullable(),queryIds:y(Jr)}).strict();function $y(e){return h({added:y(e),removed:y(e),changed:y(h({stableKey:Pt,before:e,after:e}).strict()),unchanged:y(Pt)}).strict()}const sz=Ix.extend({diff:h({activeRevision:Xr.nullable(),targets:$y(Ox),groups:$y(m0),querySelections:h({added:y(Ac),removed:y(Ac),changed:y(h({targetKey:Pt,before:Ac,after:Ac}).strict()),unchanged:y(h({targetKey:Pt,context:sa.nullable()}).strict())}).strict(),execution:h({addedNodeKeys:y(o().min(1)),removedNodeKeys:y(o().min(1)),addedUsageEdges:y(Np),removedUsageEdges:y(Np),counts:h({before:qc.nullable(),after:qc,delta:qc.nullable()}).strict()}).strict()}).strict()}).strict(),oz=Ux.extend({diff:de()}).strict();Fe("ok",[sz,oz]);const ou=N(["complete","partial","failed","unsupported"]);ou.enum;N(["proposed","alias","shared","unmatched","excluded"]);N(["primary-match","exact-slug-match","excluded-slug","shared-path","unmatched-path","alias-without-primary","unsupported-slug"]);const rz=N(["invalid-url","unowned-host","duplicate-url","url-cap-reached"]),lz=h({kind:N(["exact","prefix","suffix","contains"]),value:o().trim().min(1)}).strict(),Hy=h({host:o().trim().min(1),pathTemplate:o().trim().min(1)}).strict(),g0=h({primary:Hy,aliases:y(Hy).optional(),excludedSlugSuffixes:y(o().trim().min(1)).optional(),excludedSlugPatterns:y(lz).optional()}).strict();h({sitemapUrl:o().url().refine(e=>{try{const n=new URL(e).protocol;return n==="http:"||n==="https:"}catch{return!1}},"Sitemap URL must use http or https"),rule:g0,maxUrls:m().int().positive().max(1e4).optional()}).strict();const Ym=h({url:o(),canonicalUrl:o().nullable(),classification:N(["shared","unmatched","excluded"]),reason:N(["excluded-slug","shared-path","unmatched-path","alias-without-primary","unsupported-slug"])}).strict().superRefine((e,n)=>{({shared:["shared-path"],unmatched:["unmatched-path","alias-without-primary","unsupported-slug"],excluded:["excluded-slug"]})[e.classification].includes(e.reason)||n.addIssue({code:"custom",message:"Discovery classification and reason do not match"})}),cz=h({classification:$("proposed"),reason:$("primary-match"),stableKey:Pt,slug:o().trim().min(1),label:o().trim().min(1),primaryUrl:o().url(),aliasCoverageUrls:y(o().url())}).strict(),uz=h({classification:$("alias"),reason:$("exact-slug-match"),slug:o().trim().min(1),url:o().url(),targetStableKey:Pt}).strict(),dz=h({kind:rz,url:o(),canonicalUrl:o().nullable(),duplicateOf:o().optional()}).strict();h({proposed:y(cz),aliases:y(uz),shared:y(Ym),unmatched:y(Ym),excluded:y(Ym),diagnostics:y(dz)}).strict().superRefine((e,n)=>{const s=[["shared",["shared"]],["unmatched",["unmatched"]],["excluded",["excluded"]]];for(const[r,u]of s)for(const f of e[r])u.includes(f.classification)||n.addIssue({code:"custom",path:[r],message:"Discovery item is in the wrong result bucket"})});const y0=N(["assigned","sibling","ownedUnmapped","external","ambiguous","invalid"]),Lx=N(["baseline","target"]),Vx=N(["incomplete","evidence-incomplete","no-population","aliasless","no-competitors","no-project-aliases"]),rs=Ie([h({numerator:m().int().nonnegative(),denominator:m().int().positive(),rate:m().min(0).max(1)}).strict(),h({numerator:de(),denominator:de(),rate:de(),reason:Vx}).strict()]).superRefine((e,n)=>{e.numerator!==null&&e.numerator>e.denominator&&n.addIssue({code:"custom",path:["numerator"],message:"Rate numerator cannot exceed denominator"})}),mz=o().trim().min(1).overwrite(e=>e.toLocaleLowerCase("en")),pz=h({executionId:o().trim().min(1),queryText:o().trim().min(1),provider:mz,context:sa.nullable(),requestedModel:o().trim().min(1).optional()}).strict();h({schemaVersion:$(1),expectedSlots:y(pz)}).strict().superRefine((e,n)=>{const s=new Set;for(const[r,u]of e.expectedSlots.entries()){const f=[u.executionId,u.provider].join("\0");s.has(f)&&n.addIssue({code:"custom",path:["expectedSlots",r],message:"Duplicate expected provider slot"}),s.add(f)}});const ru=h({executed:m().int().nonnegative(),expected:m().int().nonnegative(),complete:E(),sourceComplete:E(),sourceCompleteObservations:m().int().nonnegative(),answerComplete:E()}).strict(),Gy=Ie([h({domain:o().trim().min(1),own:E(),presentIn:m().int().nonnegative(),of:m().int().positive()}).strict(),h({domain:o().trim().min(1),own:E(),presentIn:de(),of:de(),reason:Vx}).strict()]),hz=h({domains:y(Gy),providers:y(h({provider:mt,domains:y(Gy)}).strict())}).strict(),fz=h({provider:mt,completeness:ru,answerCoverage:rs}).strict(),gz=h({id:o().trim().min(1),label:o().trim().min(1),targetIds:y(o().trim().min(1)),completeness:ru,answerCoverage:rs,targetCoverage:rs,sov:hz,providers:y(fz)}).strict(),yz=h({provider:mt,completeness:ru,citationCoverage:rs,mentionCoverage:rs}).strict(),bz=h({id:o().trim().min(1),label:o().trim().min(1),completeness:ru,citationCoverage:rs,mentionCoverage:rs,providers:y(yz)}).strict(),$x=h({observationId:o().trim().min(1),expectedSlotId:o().trim().min(1),executionId:o().trim().min(1),usageEdgeId:o().trim().min(1),usageEdgeType:Lx,provider:mt,queryText:o().trim().min(1),location:o().nullable(),sourceUrl:o(),bridged:E(),historical:E(),evidenceComplete:E(),classification:y0,normalizedUrl:o().nullable(),matchedTargetIds:y(o().trim().min(1)),matchedUrlIds:y(o().trim().min(1))}).strict(),vz=h({sourceUrl:o(),normalizedUrl:o().nullable(),classification:y0,matchedTargetIds:y(o().trim().min(1)),matchedUrlIds:y(o().trim().min(1))}).strict(),xz=h({observationId:o().trim().min(1),expectedSlotId:o().trim().min(1),executionId:o().trim().min(1),usageEdgeId:o().trim().min(1),usageEdgeType:Lx,provider:mt,queryText:o().trim().min(1),location:o().nullable(),queryClass:Ie([N(["branded","non-brand"]),de()]),mentioned:E().nullable(),cited:E().nullable(),sources:y(vz),sourceCount:m().int().nonnegative(),sourcesTruncated:E(),bridged:E(),historical:E(),evidenceComplete:E()}).strict(),kz=h({bridgedObservationIds:y(o()),historicalObservationIds:y(o()),evidenceIncompleteObservationIds:y(o()),ambiguousObservationIds:y(o()),unmatchedObservationIds:y(o())}).strict(),wz=h({id:o().trim().min(1),status:N(["completed","partial"]),createdAt:o().datetime(),startedAt:o().datetime().nullable(),finishedAt:o().datetime().nullable()}).strict();h({revision:m().int().positive(),run:wz.nullable(),groups:y(gz),targets:y(bz),evidence:y($x),diagnostics:kz}).strict();h({property:h({targetKey:ke,label:o().min(1)}).strict(),queryClass:Za,measurement:h({state:d0,displayedRunId:o().min(1).optional(),completedAt:o().datetime().optional()}).strict(),evidence:vo($x).optional(),answers:vo(xz).optional()}).strict().refine(e=>e.evidence===void 0!=(e.answers===void 0),{message:"Exactly one of evidence or answers is present, naming the shape that was served."});const b0=N(["used","not-used","unknown","not-applicable"]);b0.enum;const v0=N(["native-auto-v1","search-required-v1"]);v0.enum;const Ka=o().trim().min(1),Wr=o().trim().min(1),Sz=o().trim().min(1),We=m().int().nonnegative(),el=h({state:d0,displayedRunId:Ka.nullable(),planRevision:m().int().positive(),completedAt:o().datetime().nullable()}).strict(),tl=h({targetKey:ke,label:Wr}).strict(),ja={runId:Ka.optional(),provider:mt.optional(),location:Sz.optional()},Gr=o().trim().min(1);h({runId:ja.runId,groupKey:ke.optional(),queryClass:Za.default("non-brand"),provider:ja.provider,location:ja.location,limit:m().int().positive().max(50).optional()}).strict();const jz=tl.extend({mentionCoverage:Mt,citationCoverage:Mt,flags:We,recommendedInstead:y(h({name:Gr,occurrences:We}).strict()).max(5),recommendedInsteadTotal:We,recommendedInsteadTruncated:E()}).strict().superRefine((e,n)=>{e.recommendedInstead.length>e.recommendedInsteadTotal&&n.addIssue({code:ft.custom,path:["recommendedInsteadTotal"],message:"Total cannot be smaller than the returned replacements"}),e.recommendedInsteadTruncated!==e.recommendedInstead.length<e.recommendedInsteadTotal&&n.addIssue({code:ft.custom,path:["recommendedInsteadTruncated"],message:"Truncation must agree with the replacement total"})}),Az=h({groupKey:ke,label:Wr,propertyCount:We,propertiesMentioned:Mt,mentionCoverage:Mt,citationCoverage:Mt}).strict();h({portfolio:h({groupKey:ke.nullable(),label:Wr.nullable(),measurementScope:Ie([N(["full","spot_check"]),de()])}).strict(),measurement:el,queryClass:Za,metrics:h({propertiesMentioned:Mt,mentionCoverage:Mt,citationCoverage:Mt}).strict(),weakestProperties:y(jz),markets:y(Az),totalProperties:We,truncated:E()}).strict();h({targetKey:ke,runId:ja.runId,provider:ja.provider,location:ja.location,queryClass:Za.optional(),offset:m().int().nonnegative().optional(),limit:m().int().positive().max(100).optional()}).strict();N(["answered","missing"]);const Cp={queryId:Ka,text:Wr,class:r0,provider:mt,requestedModel:o().nullable(),servedModel:o().nullable(),location:o().nullable()},Nz=Fe("status",[h({resultId:Ka,...Cp,status:$("answered"),mentioned:E().nullable(),cited:E().nullable(),recommendedInstead:y(Gr),answerExcerpt:o().nullable()}).strict(),h({resultId:de(),...Cp,status:$("missing"),mentioned:de(),cited:de(),recommendedInstead:y(Gr).length(0),answerExcerpt:de()}).strict()]);h({property:tl,measurement:el,queryClass:Za,questions:y(Nz),total:We,truncated:E()}).strict();h({targetKey:ke,resultId:Ka}).strict();const Cz=h({url:Ka,classification:y0,matchedTargetKeys:y(ke),assigned:E(),historical:E(),evidenceComplete:E()}).strict().superRefine((e,n)=>{e.assigned!==(e.classification==="assigned")&&n.addIssue({code:ft.custom,path:["assigned"],message:"Assigned must agree with the source attribution classification"})});h({property:tl,measurement:el,question:h({resultId:Ka,...Cp,status:$("answered")}).strict(),mentioned:E().nullable(),cited:E().nullable(),recommendedInstead:y(Gr),answer:o().nullable(),sources:y(Cz),captureStatus:Ie([ou,de()]),retrievalStatus:Ie([b0,de()]),retrievalContract:Ie([v0,de()])}).strict();h({targetKey:ke,runId:ja.runId,provider:ja.provider,location:ja.location,queryClass:Za.optional(),limit:m().int().positive().max(50).optional()}).strict();const _z=Fe("state",[h({state:$("available"),answeredResults:We,targetMissResults:We,recommendationOccurrences:We}).strict(),h({state:$("unavailable"),reason:c0}).strict()]),zz=h({name:Gr,occurrences:We,providers:y(mt).max(5),providerTotal:We,providersTruncated:E(),questions:y(Wr).max(5),questionTotal:We,questionsTruncated:E()}).strict().superRefine((e,n)=>{(e.providers.length>e.providerTotal||e.questions.length>e.questionTotal)&&n.addIssue({code:ft.custom,message:"Evidence totals cannot be smaller than returned evidence"}),e.providersTruncated!==e.providers.length<e.providerTotal&&n.addIssue({code:ft.custom,path:["providersTruncated"],message:"Provider truncation must agree with its total"}),e.questionsTruncated!==e.questions.length<e.questionTotal&&n.addIssue({code:ft.custom,path:["questionsTruncated"],message:"Question truncation must agree with its total"})});h({property:tl,measurement:el,queryClass:Za,basis:_z,competitors:y(zz),total:We,truncated:E()}).strict();h({runId:ja.runId,scope:u0.default("all"),groupKey:ke.optional(),targetKey:ke.optional(),queryClass:Za.default("all"),provider:ja.provider,location:ja.location,limit:m().int().positive().max(50).optional()}).strict().superRefine((e,n)=>{e.scope==="all"&&(e.groupKey!==void 0||e.targetKey!==void 0)&&n.addIssue({code:ft.custom,path:["scope"],message:"All scope cannot name a group or Property"}),e.scope==="group"&&(e.groupKey===void 0||e.targetKey!==void 0)&&n.addIssue({code:ft.custom,path:["groupKey"],message:"Group scope requires groupKey only"}),e.scope==="property"&&(e.targetKey===void 0||e.groupKey!==void 0)&&n.addIssue({code:ft.custom,path:["targetKey"],message:"Property scope requires targetKey only"})});const Hx=N(["no_previous_run","execution_identity_changed","incomplete","not_comparable"]),Gx=el.extend({executionIdentity:Ka.nullable(),measurementScope:Ie([N(["full","spot_check"]),de()])}).strict(),zr=Fe("state",[h({state:$("available"),previous:Mt,current:Mt,delta:m()}).strict().superRefine((e,n)=>{if(e.previous.state!=="available"||e.current.state!=="available"){n.addIssue({code:ft.custom,message:"Available deltas require two available metrics"});return}Math.abs(e.delta-(e.current.value-e.previous.value))>Number.EPSILON&&n.addIssue({code:ft.custom,path:["delta"],message:"Delta must equal current minus previous"})}),h({state:$("unavailable"),reason:c0}).strict()]);h({current:Gx,comparison:Fe("state",[h({state:$("available"),previous:h({displayedRunId:Ka,planRevision:m().int().positive(),completedAt:o().datetime().nullable(),executionIdentity:Ka,measurementScope:N(["full","spot_check"])}).strict(),metrics:h({propertiesMentioned:zr,mentionCoverage:zr,citationCoverage:zr}).strict(),changedProperties:y(tl.extend({mentionCoverage:zr,citationCoverage:zr,flags:We}).strict()),totalProperties:We,truncated:E()}).strict(),h({state:$("unavailable"),reason:Hx}).strict()])}).strict().superRefine((e,n)=>{if(e.comparison.state==="available"){if(e.current.displayedRunId===null||e.current.executionIdentity===null){n.addIssue({code:ft.custom,path:["current"],message:"A comparison requires an identified current run"});return}e.comparison.previous.planRevision!==e.current.planRevision&&n.addIssue({code:ft.custom,path:["comparison","previous","planRevision"],message:"Comparisons cannot cross plan revisions"}),e.comparison.previous.executionIdentity!==e.current.executionIdentity&&n.addIssue({code:ft.custom,path:["comparison","previous","executionIdentity"],message:"Comparisons cannot cross execution identities"})}});h({runId:ja.runId}).strict();const Ez=N(["no_completed_run","incomplete","evidence_incomplete","no_population","not_applicable"]),lu=h({state:$("unavailable"),reason:Ez}).strict(),Dz=h({state:$("available"),expected:We,executed:We,answered:We,missing:We}).strict(),Tz=Fe("state",[Dz,lu]).superRefine((e,n)=>{e.state==="available"&&(e.executed+e.missing!==e.expected&&n.addIssue({code:ft.custom,message:"Expected must equal executed plus missing"}),e.answered>e.executed&&n.addIssue({code:ft.custom,path:["answered"],message:"Answered cannot exceed executed"}))}),Rz=h({state:$("available"),complete:We,partial:We,failed:We,unsupported:We,notRecorded:We}).strict(),Oz=Fe("state",[Rz,lu]),qz=h({state:$("available"),used:We,notUsed:We,unknown:We,notApplicable:We,notRecorded:We}).strict(),Bz=Fe("state",[qz,lu]),Mz=h({state:$("available"),expectedQuestions:We,answeredQuestions:We,missingQuestions:We}).strict(),Pz=Fe("state",[Mz,lu]).superRefine((e,n)=>{e.state==="available"&&e.answeredQuestions+e.missingQuestions!==e.expectedQuestions&&n.addIssue({code:ft.custom,message:"Expected questions must equal answered plus missing"})});h({run:Gx,completeness:Tz,capture:Oz,retrieval:Bz,population:Pz,comparison:Fe("state",[h({state:$("available"),previousDisplayedRunId:Ka}).strict(),h({state:$("unavailable"),reason:Hx}).strict()])}).strict().superRefine((e,n)=>{if(e.completeness.state!=="available")return;const s=e.completeness.executed;e.capture.state==="available"&&e.capture.complete+e.capture.partial+e.capture.failed+e.capture.unsupported+e.capture.notRecorded!==s&&n.addIssue({code:ft.custom,path:["capture"],message:"Capture counts must total executed snapshots"}),e.retrieval.state==="available"&&e.retrieval.used+e.retrieval.notUsed+e.retrieval.unknown+e.retrieval.notApplicable+e.retrieval.notRecorded!==s&&n.addIssue({code:ft.custom,path:["retrieval"],message:"Retrieval counts must total executed snapshots"})});const xo=o().regex(/^[a-f0-9]{64}$/),Qa=o().trim().min(1).max(256),Ni=m().int().positive(),Ky=h({kind:N(["user","api-key","system"]),id:o().trim().min(1),label:o().trim().min(1)}).strict(),Iz=N(["proposed","included","excluded"]),Uz=N(["manual","sitemap"]),x0=h({stableKey:ke,label:o().trim().min(1),status:Iz,aliases:y(o().trim().min(1)),urlMatchers:y(o().trim().min(1)),source:Uz,discoveredUrl:o().trim().min(1).optional(),discoveryIdentity:o().trim().min(1).optional()}).strict(),cu=h({providers:y(mt).optional(),models:Pe(mt,o().trim().min(1)).optional(),locations:y(o().trim().min(1)).optional()}).strict(),Lz=N(["branded","non-brand","unclassified"]),Vz=N(["rule","operator"]),Kx=h({targetKey:ke,queryId:Qa,contextOverride:cu.optional(),queryClass:Lz,classificationSource:Vz}).strict(),k0=Ax,Qx=h({stableKey:ke,label:o().trim().min(1),targetKeys:y(ke),competitors:y(k0)}).strict(),$z=h({sitemapUrl:o().url(),rule:g0,exclusions:y(o().trim().min(1)),inputChecksum:xo,reviewedAt:o().datetime().optional()}).strict(),Hz=h({providers:y(mt),models:Pe(mt,o().trim().min(1)).optional(),locations:y(o().trim().min(1))}).strict(),Gz=h({defaultContext:Hz,targets:y(x0),assignments:y(Kx),groups:y(Qx),discovery:$z.optional()}).strict(),Kz=h({id:o().trim().min(1),projectId:o().trim().min(1),schemaVersion:$(2),baseActiveVersionId:o().trim().min(1).nullable(),baseActiveRevision:Ni.nullable(),authoring:Gz,createdBy:Ky,updatedBy:Ky,createdAt:o().datetime(),updatedAt:o().datetime()}).strict(),w0=h({targets:m().int().nonnegative(),includedTargets:m().int().nonnegative(),assignments:m().int().nonnegative(),unclassifiedAssignments:m().int().nonnegative(),groups:m().int().nonnegative(),competitors:m().int().nonnegative()}).strict(),Qz=h({code:o().trim().min(1),message:o().trim().min(1),path:y(Ie([o(),m().int()]))}).strict(),Zz=h({etag:o().trim().min(1),changed:E(),warnings:y(Qz),counts:w0}).strict();h({draft:Kz.nullable(),etag:o().trim().min(1).nullable()}).strict();vo(x0);vo(Kx);vo(Qx);h({search:o().optional(),cursor:o().trim().min(1).optional(),limit:m().int().positive().max(l0).optional()}).strict();h({expectedActiveRevision:Ni.nullable()}).strict();h({sitemapUrl:o().url(),rule:g0,exclusions:y(o().trim().min(1)).optional()}).strict();const Fz=h({discoveryIdentity:o().trim().min(1),action:N(["create","rebind","ignore"]),targetKey:ke.optional(),label:o().trim().min(1).optional()}).strict();h({selections:y(Fz),selectedTargetKeys:y(ke).optional()}).strict().superRefine((e,n)=>{e.selections.length===0&&e.selectedTargetKeys===void 0&&n.addIssue({code:"custom",message:"A proposal or reviewed Property selection is required."}),e.selectedTargetKeys&&new Set(e.selectedTargetKeys).size!==e.selectedTargetKeys.length&&n.addIssue({code:"custom",path:["selectedTargetKeys"],message:"Property keys must be unique."})});h({target:x0}).strict();h({targetKey:ke,label:o().trim().min(1)}).strict();h({targetKey:ke,mergedKeys:y(ke).min(1)}).strict();h({targetKey:ke,cleanup:$("assignments-and-group-memberships").optional()}).strict();h({targetKey:ke,discoveryIdentity:o().trim().min(1),discoveredUrl:o().url()}).strict();const Zx={targetKeys:y(ke).optional(),groupKeys:y(ke).optional()};function Fx(e,n){(e.targetKeys?.length??0)===0&&(e.groupKeys?.length??0)===0&&n.addIssue({code:"custom",message:"At least one Target or group selector is required."})}h(Zx).strict().superRefine(Fx);const Yz=h({...Zx,queryIds:y(Qa).min(1),contextOverride:cu.optional()}).strict().superRefine(Fx);Ie([h({targetKey:ke,queryIds:y(Qa).min(1),contextOverride:cu.optional()}).strict(),Yz]);const Xz=h({groupKey:ke,label:o().trim().min(1),memberCount:m().int().positive()}).strict();h({draftEtag:o().trim().min(1),groups:y(Xz),resolvedTargetKeys:y(ke),overlapCount:m().int().nonnegative(),assignments:h({requested:m().int().nonnegative(),added:m().int().nonnegative(),alreadyPresent:m().int().nonnegative()}).strict(),execution:h({addedNodes:m().int().nonnegative(),addedProviderCalls:m().int().nonnegative(),fullRunNodes:m().int().nonnegative(),fullRunProviderCalls:m().int().nonnegative()}).strict()}).strict();h({pairs:y(h({targetKey:ke,queryId:Qa}).strict()).min(1),contextOverride:cu.optional()}).strict();Ie([h({targetKey:ke,queryId:Qa}).strict(),h({targetKeys:y(ke).min(1),queryId:Qa}).strict()]);h({targetKey:ke}).strict();h({queryClass:r0,assignments:y(h({targetKey:ke,queryId:Qa}).strict()).min(1)}).strict();h({group:h({stableKey:ke,label:o().trim().min(1),targetKeys:y(ke),competitors:y(k0).optional()}).strict()}).strict();h({groupKey:ke}).strict();h({groupKey:ke,competitor:k0}).strict();h({groupKey:ke,competitorKey:ke}).strict();const Gc=h({ruleId:o().trim().min(1),severity:N(["fail","warn"]),message:o().trim().min(1),path:y(Ie([o(),m().int()]))}).strict();Fe("ok",[h({ok:$(!0),compiledChecksum:xo,checks:y(Gc),counts:w0,plan:su}).strict(),h({ok:$(!1),compiledChecksum:de(),checks:y(Gc).min(1)}).strict()]);const Qy=h({added:y(o().trim().min(1)),removed:y(o().trim().min(1)),changed:y(o().trim().min(1)),unchanged:y(o().trim().min(1))}).strict(),Jz=h({activeRevision:Ni.nullable(),targets:Qy,groups:Qy,assignments:h({added:m().int().nonnegative(),removed:m().int().nonnegative(),reclassified:m().int().nonnegative()}).strict(),execution:h({addedNodeKeys:y(o().trim().min(1)),removedNodeKeys:y(o().trim().min(1))}).strict()}).strict();Fe("ok",[h({ok:$(!0),compiledChecksum:xo,checks:y(Gc),counts:w0,plan:su,diff:Jz}).strict(),h({ok:$(!1),compiledChecksum:de(),checks:y(Gc).min(1),diff:de()}).strict()]);h({expectedActiveRevision:Ni.nullable(),expectedCompiledChecksum:xo}).strict();h({published:E(),active:h({revision:Ni,checksum:xo,compiledChecksum:xo,createdAt:o().datetime(),plan:su}).strict()}).strict();h({discarded:E()}).strict();h({expectedActiveRevision:Ni}).strict();h({deactivated:E(),previousRevision:Ni.nullable()}).strict();const Wz=N(["republish_required","setup_in_progress","awaiting_first_run","operational","simple"]),e9=N(["republish_setup","continue_setup","run_measurement","view_measurement","start_setup"]),t9=N(["simple","draft-only","active-v1","active-v2"]);h({state:Wz,nextAction:e9,mode:t9,activeRevision:Ni.nullable(),activeSchemaVersion:Ie([$(1),$(2)]).nullable(),draft:h({etag:o().trim().min(1),updatedAt:o().datetime()}).strict().nullable()}).strict();const Yx=h({id:o().trim().min(1),projectId:o().trim().min(1),name:o().trim().min(1),description:o().nullable(),itemCount:m().int().nonnegative(),createdAt:o().datetime(),updatedAt:o().datetime()}).strict(),a9=h({queryId:Qa,queryText:o().min(1),position:m().int().nonnegative()}).strict();Yx.extend({items:y(a9)}).strict();h({querySets:y(Yx)}).strict();h({name:o().trim().min(1),description:o().nullable().optional(),queryIds:y(Qa)}).strict();const n9=h({id:o().trim().min(1),projectId:o().trim().min(1),name:o().trim().min(1),description:o().nullable(),pattern:o().trim().min(1),variables:y(o().trim().min(1)),createdAt:o().datetime(),updatedAt:o().datetime()}).strict();h({templates:y(n9)}).strict();h({name:o().trim().min(1),description:o().nullable().optional(),pattern:o().trim().min(1),variables:y(o().trim().min(1))}).strict();h({bindings:y(Pe(o().trim().min(1),o().trim().min(1))).min(1),querySetId:o().trim().min(1).optional()}).strict();h({created:y(h({queryId:Qa,queryText:o().min(1)}).strict()),existing:y(h({queryId:Qa,queryText:o().min(1)}).strict())}).strict();const Kc=o().regex(/^[a-f0-9]{64}$/),uu=m().int().positive();h({stableKey:ke,kind:N(["target","group"]),retiredAt:o().datetime().nullable()}).strict();h({csv:o()}).strict();N(["matched","ambiguous","unmatched","invalid","duplicate","proposed","excluded"]);const i9=N(["column-count","missing-property","missing-group","invalid-url","property-not-found","property-label-ambiguous","url-not-exact-match","target-proposed","target-excluded","group-label-ambiguous","group-key-conflict"]),_p=h({dataRow:uu,property:o(),group:o(),url:o().nullable(),normalizedProperty:o(),normalizedGroupLabel:o()}).strict(),Er=_p.extend({reason:i9}),s9=h({source:N(["draft-target","draft-group","persisted-segment","retired-segment","proposed-group"]),stableKey:ke,kind:N(["target","group"]).optional(),retiredAt:o().datetime().nullable().optional(),normalizedGroupLabel:o().optional()}).strict(),o9=h({proposedGroupKey:ke,evidence:y(s9).min(1)}).strict(),r9=Fe("status",[_p.extend({status:$("matched"),targetKey:ke,groupKey:ke}).strict(),Er.extend({status:$("ambiguous"),candidateTargetKeys:y(ke).min(1).optional(),candidateGroupKeys:y(ke).min(1).optional()}).strict(),Er.extend({status:$("unmatched")}).strict(),Er.extend({status:$("invalid"),groupKeyConflict:o9.optional()}).strict(),_p.extend({status:$("duplicate"),duplicateOfRow:uu,targetKey:ke,groupKey:ke}).strict(),Er.extend({status:$("proposed"),targetKey:ke}).strict(),Er.extend({status:$("excluded"),targetKey:ke}).strict()]),l9=h({normalizedGroupLabel:o(),groupKey:ke,label:o().trim().min(1),action:N(["create","extend"]),matchedRows:y(uu),targetKeys:y(ke),addedTargetKeys:y(ke),unchangedTargetKeys:y(ke)}).strict(),c9=h({dataRows:m().int().nonnegative(),matchedRows:m().int().nonnegative(),ambiguousRows:m().int().nonnegative(),unmatchedRows:m().int().nonnegative(),invalidRows:m().int().nonnegative(),duplicateRows:m().int().nonnegative(),proposedRows:m().int().nonnegative(),excludedRows:m().int().nonnegative(),needsAttention:m().int().nonnegative(),groupsReady:m().int().nonnegative(),groupsToCreate:m().int().nonnegative(),groupsToExtend:m().int().nonnegative(),membershipsReady:m().int().nonnegative(),addedMemberships:m().int().nonnegative(),unchangedMemberships:m().int().nonnegative()}).strict();h({draftEtag:o().trim().min(1),sourceChecksum:Kc,previewChecksum:Kc,rows:y(r9),groupChanges:y(l9),counts:c9}).strict();h({csv:o(),sourceChecksum:Kc,previewChecksum:Kc,acceptedRows:y(uu).min(1)}).strict().superRefine((e,n)=>{new Set(e.acceptedRows).size!==e.acceptedRows.length&&n.addIssue({code:"custom",path:["acceptedRows"],message:"Accepted CSV data rows must be unique."})});Zz.extend({appliedRows:m().int().nonnegative(),addedMemberships:m().int().nonnegative(),unchangedMemberships:m().int().nonnegative()}).strict();const Xx=N(["introduced","repointed","retired"]),u9=Xx.enum;h({modelId:o().trim().min(1),date:o().regex(/^\d{4}-\d{2}-\d{2}$/,"date must be YYYY-MM-DD"),kind:Xx,confirmed:E(),sourceUrl:o().url(),note:o().min(1)});const d9=[{modelId:"chatgpt-4o-latest",date:"2024-08-15",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Released dynamic model for chatgpt-4o-latest—this model will point to the latest GPT-4o model used by ChatGPT." First moving id in the lineage.'},{modelId:"chatgpt-4o-latest",date:"2026-02-17",kind:"retired",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/deprecations.md",note:'Shutdown 2026-02-17, replacement gpt-5.1-chat-latest. Announced under the heading "2025-11-18: chatgpt-4o-latest snapshot".'},{modelId:"gpt-5.1-chat-latest",date:"2025-11-13",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:"Introduced inside the GPT-5.1 launch entry, not as a standalone entry."},{modelId:"gpt-5.2-chat-latest",date:"2025-12-11",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:"Introduced inside the GPT-5.2 launch entry."},{modelId:"gpt-5.2-chat-latest",date:"2026-02-10",kind:"repointed",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Updated the gpt-5.2-chat-latest slug to point to the latest model currently used in ChatGPT." Target model NOT named.'},{modelId:"gpt-5.3-chat-latest",date:"2026-03-03",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Released gpt-5.3-chat-latest to the Chat Completions and Responses API. This model points to the GPT-5.3 Instant snapshot currently used in ChatGPT."'},{modelId:"gpt-5.3-chat-latest",date:"2026-03-16",kind:"repointed",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Updated the gpt-5.3-chat-latest slug to point to the latest model currently used in ChatGPT." Target model NOT named.'},{modelId:"chat-latest",date:"2026-05-05",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Released chat-latest snapshot which points to the latest Instant model currently used in ChatGPT... The underlying model snapshot will be regularly updated."'},{modelId:"chat-latest",date:"2026-05-28",kind:"repointed",confirmed:!1,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'UNCONFIRMED. The entry reads "Released chat-latest snapshot..." — the verb is "Released", the same boilerplate as the 2026-05-05 entry, not "Updated" as used on 2026-06-24. Only "the latest improvements" vs "our latest improvements" differs. Either a real change logged with copy-pasted text, or a duplicated entry; the record does not disambiguate.'},{modelId:"chat-latest",date:"2026-06-24",kind:"repointed",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim (re-read at source 2026-07-20): "Updated the chat-latest snapshot, which points to the latest Instant model currently used in ChatGPT." The verb is "Updated", unlike the "Released" boilerplate of 2026-05-05 and 2026-05-28, which is the wording the changelog reserves for a real change. Target model NOT named. The only unambiguous chat-latest change on record.'}];u9.repointed;new Set(d9.map(e=>e.modelId.toLowerCase()));const m9=N(["not-exposed","no-known-change","known-change"]);m9.enum;const p9=h({modelId:o().trim().min(1),date:o().regex(/^\d{4}-\d{2}-\d{2}$/),confirmed:E(),sourceUrl:o().url()}),h9=h({status:N(["no-known-change","known-change"]),modelIds:y(o().trim().min(1)).min(1),changes:y(p9),changeCount:m().int().nonnegative(),unverifiedChangeCount:m().int().nonnegative(),firstChangeDate:o().optional(),lastChangeDate:o().optional(),knownGoodAsOf:o(),checkedThroughPeriodEnd:E()}),f9={openai:"ChatGPT",chatgpt:"ChatGPT",anthropic:"Claude",claude:"Claude",google:"Gemini",gemini:"Gemini",perplexity:"Perplexity"};function g9(e){const n=e.trim().toLowerCase();return f9[n]??e.charAt(0).toUpperCase()+e.slice(1)}function Xm(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):0}function Dr(e){return typeof e=="string"&&e.trim().length>=10?e.trim().slice(0,10):null}function Jm(e){return[...new Set(e.filter(n=>n!==null))].sort()}function y9(e,n){const s=g9(e),r=Array.isArray(n.changes)?n.changes:[],u=Xm(n.changeCount)||r.length,f=Math.min(u,Xm(n.unverifiedChangeCount)||Xm(n.unconfirmedChangeCount)||r.filter(S=>S.confirmed===!1).length),g=Dr(n.knownGoodAsOf),b=n.checkedThroughPeriodEnd!==!1,x={engine:s,confirmedCount:u-f,unconfirmedCount:f,knownGoodAsOf:g,checkedThroughPeriodEnd:b};if(r.length>0)return{...x,confirmedDates:Jm(r.filter(S=>S.confirmed!==!1).map(S=>Dr(S.date))),unconfirmedDates:Jm(r.filter(S=>S.confirmed===!1).map(S=>Dr(S.date)))};const k=Jm([Dr(n.firstChangeDate),Dr(n.lastChangeDate)]);return u===0?{...x,confirmedDates:[],unconfirmedDates:[]}:f===0?{...x,confirmedDates:k,unconfirmedDates:[]}:x.confirmedCount===0?{...x,confirmedDates:[],unconfirmedDates:k}:{...x,confirmedDates:[],unconfirmedDates:[]}}function b9(e){return e.length===1?e[0]:e.length===2?`${e[0]} and ${e[1]}`:`${e.slice(0,-1).join(", ")}, and ${e[e.length-1]}`}function Zy(e,n){return e.length===0?null:e.length===1&&n<=1?`on ${e[0]}`:`more than once between ${e[0]} and ${e[e.length-1]}`}function v9(e){const n=Zy(e.confirmedDates,e.confirmedCount),s=Zy(e.unconfirmedDates,e.unconfirmedCount),r=`The model behind ${e.engine}`;if(e.confirmedCount>0&&e.unconfirmedCount===0)return n?`${r} was updated ${n}, inside this period.`:`${r} was updated inside this period.`;if(e.confirmedCount===0)return s?`${r} may have been updated ${s}, inside this period, though that is not confirmed.`:`${r} may have been updated inside this period, though that is not confirmed.`;if(n&&s)return`${r} was updated ${n}, inside this period, and may also have been updated ${s}.`;const u=e.unconfirmedCount>1?"more times":"once more";return`${r} was updated inside this period, and may have been updated ${u}, though that is not confirmed.`}function Fy(e){const n=e.filter(r=>!r.checkedThroughPeriodEnd&&r.knownGoodAsOf!==null);return n.length===0?null:`We last checked for model updates on ${n.map(r=>r.knownGoodAsOf).sort()[0]}, and this period runs past that date, so there may be later updates we do not know about.`}function VL(e){const n=Object.entries(e??{}).map(([x,k])=>y9(x,k??{})).sort((x,k)=>x.engine.localeCompare(k.engine));if(n.length===0)return null;const s=n.filter(x=>x.confirmedCount+x.unconfirmedCount>0);if(s.length===0){const x=[...new Set(n.map(D=>D.engine))],k=x.length>1,S=Fy(n),A=[...new Set(n.map(D=>D.knownGoodAsOf).filter(D=>D!==null))].sort(),j=S??(A.length>0?`We last checked for model updates on ${A[0]}.`:null);return{kind:"no-known-change",text:`No model updates are on record for ${b9(x)} in this period.`,detail:`${k?"These engines":"This engine"} can be moved onto a different underlying model without the data ever showing a different model name, so we check each period against a record of known updates. Nothing is listed inside this one.${j?` ${j}`:""}`}}const r=s.reduce((x,k)=>x+k.confirmedCount+k.unconfirmedCount,0),u=s.some(x=>x.confirmedCount>0),f=r===1?"this update":"these updates",g=u?`Some of the movement in these numbers may come from ${f} rather than from a real change in how AI answers about you, so compare periods carefully.`:`If so, some of the movement in these numbers may come from ${f} rather than from a real change in how AI answers about you, so compare periods carefully.`,b=Fy(n);return{kind:"change",text:`${s.map(v9).join(" ")} ${g}${b?` ${b}`:""}`}}const Nc=h({slope:m(),intercept:m(),r2:m(),start:m(),end:m(),n:m(),startIndex:m(),endIndex:m()}),x9=N(["gsc","ga4","gbp"]);h({id:o(),domain:o(),connectionType:x9,propertyId:o().nullable().optional(),sitemapUrl:o().nullable().optional(),scopes:y(o()).default([]),createdAt:o(),updatedAt:o()});const k9=h({date:o(),query:o(),page:o(),country:o().nullable().optional(),device:o().nullable().optional(),clicks:m(),impressions:m(),ctr:m(),position:m()});N(["clicks","impressions","date"]);h({rows:y(k9),totalMatching:m(),truncated:E(),latestAvailableDate:o().nullable()});const w9=h({date:o(),clicks:m(),impressions:m(),ctr:m(),position:m().nullable()}),S9=h({startDate:o().nullable(),endDate:o().nullable(),latestDataDate:o().nullable(),daysSinceLatestData:m().nullable()}),j9=h({clicks:Nc.nullable(),impressions:Nc.nullable(),ctr:Nc.nullable(),position:Nc.nullable()});h({totals:h({clicks:m(),impressions:m(),ctr:m(),position:m().nullable(),positionDays:m(),days:m()}),daily:y(w9),window:S9.optional(),trends:j9.optional()});const A9=h({page:o(),clicks:m(),impressions:m(),ctr:m()});h({rows:y(A9),totals:h({clicks:m(),impressions:m(),ctr:m(),days:m(),coveredFrom:o().nullable(),coveredThrough:o().nullable(),complete:E()}).nullable(),totalsSource:$("property-daily"),rankedFrom:o().nullable(),rankedThrough:o().nullable()});const zp=h({id:o(),url:o(),indexingState:o().nullable().optional(),verdict:o().nullable().optional(),coverageState:o().nullable().optional(),pageFetchState:o().nullable().optional(),robotsTxtState:o().nullable().optional(),crawlTime:o().nullable().optional(),lastCrawlResult:o().nullable().optional(),isMobileFriendly:E().nullable().optional(),richResults:y(o()).default([]),referringUrls:y(o()).default([]),inspectedAt:o()});N(["stable","reindexed","deindexed","still-missing","new"]);const N9=h({url:o(),previousState:o().nullable(),currentState:o().nullable(),transitionDate:o()}),C9=h({reason:o(),count:m(),urls:y(zp).default([])});h({summary:h({total:m(),indexed:m(),notIndexed:m(),deindexed:m(),percentage:m()}),lastInspectedAt:o().nullable(),lastSyncedAt:o().nullable(),indexed:y(zp).default([]),notIndexed:y(zp).default([]),deindexed:y(N9).default([]),reasonGroups:y(C9).default([])});h({url:o(),type:N(["URL_UPDATED","URL_DELETED"]),notifiedAt:o()});const _9=h({url:o(),type:N(["URL_UPDATED","URL_DELETED"]),notifiedAt:o(),status:N(["success","error"]),error:o().optional()});h({summary:h({total:m().int().nonnegative(),succeeded:m().int().nonnegative(),failed:m().int().nonnegative()}),results:y(_9).default([])});h({date:o(),indexed:m(),notIndexed:m(),unknownPages:m().default(0),verifiedByInspection:m().default(0),derivedFromImpressions:m().default(0),reasonBreakdown:Pe(o(),m()).default({})});const z9=h({siteUrl:o(),permissionLevel:o()});h({sites:y(z9).default([])});const E9=h({type:o(),submitted:o(),indexed:o().optional().describe("Deprecated compatibility field.")}),Jx=h({path:o(),parentSitemapUrl:o().optional(),lastSubmitted:o().optional(),isPending:E().optional(),isSitemapsIndex:E().optional(),type:o().optional(),lastDownloaded:o().optional(),warnings:o().optional(),errors:o().optional(),contents:y(E9).optional()});h({sitemaps:y(Jx).default([]),summary:h({total:m().int().nonnegative(),indexes:m().int().nonnegative(),files:m().int().nonnegative()}),preferredSubmissionUrls:y(o()).default([])});h({sitemapUrls:y(o().url().refine(e=>{const n=new URL(e).protocol;return n==="http:"||n==="https:"},{message:"Sitemap URL must use http or https."})).min(1).max(50)});const D9=h({sitemapUrl:o(),status:N(["accepted","error"]),submittedAt:o().optional(),error:o().optional()});h({summary:h({total:m().int().nonnegative(),accepted:m().int().nonnegative(),failed:m().int().nonnegative()}),results:y(D9)});h({sitemaps:y(Jx),primarySitemapUrl:o(),run:h({id:o(),projectId:o(),kind:o(),status:o(),trigger:o(),createdAt:o()}).nullable()});const T9=h({name:o(),accountName:o().nullable(),type:o().nullable(),role:o().nullable()});h({accounts:y(T9),total:m().int().nonnegative()});const R9=h({id:o(),projectId:o(),accountName:o(),locationName:o(),displayName:o(),primaryCategoryDisplayName:o().nullable(),storefrontAddress:o().nullable(),websiteUri:o().nullable(),placeId:o().nullable(),mapsUri:o().nullable(),additionalCategories:y(o()),description:o().nullable(),serviceArea:Pe(o(),pa()).nullable(),regularHours:Pe(o(),pa()).nullable(),primaryPhone:o().nullable(),openStatus:o().nullable(),openingDate:o().nullable(),selected:E(),syncedAt:o().nullable(),createdAt:o(),updatedAt:o()});h({locations:y(R9),totalDiscovered:m().int().nonnegative(),totalSelected:m().int().nonnegative()});h({selectAllNew:E().default(!0),accountName:o().optional(),switchAccount:E().default(!1)});h({selected:E()});h({locationNames:y(o()).optional(),daysOfMetrics:m().int().positive().max(540).optional(),monthsOfKeywords:m().int().positive().max(18).optional()});h({runId:o(),status:o()});const O9=h({locationName:o(),date:o(),metric:o(),value:m().int()});h({metrics:y(O9),total:m().int().nonnegative()});const q9=h({locationName:o(),periodStart:o(),periodEnd:o(),keyword:o(),valueCount:m().int().nullable(),valueThreshold:m().int().nullable()});h({keywords:y(q9),total:m().int().nonnegative(),thresholdedPct:m().int().min(0).max(100)});const B9=h({locationName:o(),placeActionLinkName:o(),placeActionType:o(),uri:o().nullable(),isPreferred:E(),providerType:o().nullable()});h({placeActions:y(B9),total:m().int().nonnegative()});const M9=h({locationName:o(),populatedGroupCount:m().int().nonnegative(),syncedAt:o(),attributes:Pe(o(),pa())});h({lodging:y(M9),total:m().int().nonnegative()});const P9=h({name:o(),valueType:o(),values:y(Ie([E(),o()])),unsetValues:y(o()),uris:y(o())}),I9=h({locationName:o(),attributeCount:m().int().nonnegative(),syncedAt:o(),attributes:y(P9)});h({attributes:y(I9),total:m().int().nonnegative()});const U9=h({locationName:o(),placeId:o(),tier:o(),amenities:y(o()),syncedAt:o(),place:Pe(o(),pa())});h({places:y(U9),total:m().int().nonnegative()});h({scope:h({locationName:o().nullable(),locationCount:m().int().nonnegative()}),performance:h({totals:Pe(o(),m()),recent7d:Pe(o(),m()),prior7d:Pe(o(),m()),deltaPct:Pe(o(),m().nullable())}),freshness:h({dataThroughDate:o().nullable(),latestStoredDate:o().nullable(),pendingDays:m().int().nonnegative()}),timeseries:y(h({date:o(),pending:E(),metrics:Pe(o(),m())})),keywords:h({total:m().int().nonnegative(),thresholdedCount:m().int().nonnegative(),thresholdedPct:m().int().min(0).max(100)}),placeActions:h({total:m().int().nonnegative(),hasReservationCta:E(),hasBookingCta:E(),hasDirectMerchantCta:E()}),lodging:h({lodgingLocationCount:m().int().nonnegative(),populatedLodgingCount:m().int().nonnegative(),emptyLodgingCount:m().int().nonnegative()}),profileCompleteness:h({locationCount:m().int().nonnegative(),withSecondaryCategories:m().int().nonnegative(),secondaryCategoryTotal:m().int().nonnegative(),withDescription:m().int().nonnegative(),withServiceArea:m().int().nonnegative(),withHours:m().int().nonnegative(),withPrimaryPhone:m().int().nonnegative(),permanentlyClosed:m().int().nonnegative(),temporarilyClosed:m().int().nonnegative()})});const L9={BUSINESS_DIRECTION_REQUESTS:"Direction requests",WEBSITE_CLICKS:"Website clicks",CALL_CLICKS:"Call clicks",BUSINESS_BOOKINGS:"Bookings",BUSINESS_CONVERSATIONS:"Conversations",BUSINESS_FOOD_ORDERS:"Food orders",BUSINESS_FOOD_MENU_CLICKS:"Food menu clicks",BUSINESS_IMPRESSIONS_DESKTOP_SEARCH:"Search impressions (desktop)",BUSINESS_IMPRESSIONS_MOBILE_SEARCH:"Search impressions (mobile)",BUSINESS_IMPRESSIONS_DESKTOP_MAPS:"Maps impressions (desktop)",BUSINESS_IMPRESSIONS_MOBILE_MAPS:"Maps impressions (mobile)"};function V9(e){const n=e.replace(/^BUSINESS_/,"").split("_").filter(Boolean).map(r=>r.toLowerCase());if(n.length===0)return e;const s=n.join(" ");return s.charAt(0).toUpperCase()+s.slice(1)}function $L(e){return L9[e]??V9(e)}const $9=["BUSINESS_DIRECTION_REQUESTS","WEBSITE_CLICKS","CALL_CLICKS"],H9=["BUSINESS_IMPRESSIONS_DESKTOP_SEARCH","BUSINESS_IMPRESSIONS_MOBILE_SEARCH","BUSINESS_IMPRESSIONS_DESKTOP_MAPS","BUSINESS_IMPRESSIONS_MOBILE_MAPS"];function HL(e){return $9.includes(e)?"conversion":H9.includes(e)?"reach":"other"}h({id:o(),domain:o(),siteUrl:o().nullable().optional(),createdAt:o(),updatedAt:o()});const Wm=h({id:o(),url:o(),httpCode:m().nullable().optional(),inIndex:E().nullable().optional(),lastCrawledDate:o().nullable().optional(),inIndexDate:o().nullable().optional(),inspectedAt:o(),documentSize:m().nullable().optional(),anchorCount:m().nullable().optional(),discoveryDate:o().nullable().optional()});h({summary:h({total:m(),indexed:m(),notIndexed:m(),unknown:m().optional(),percentage:m()}),lastInspectedAt:o().nullable(),indexed:y(Wm).default([]),notIndexed:y(Wm).default([]),unknown:y(Wm).default([]).optional()});h({query:o(),impressions:m(),clicks:m(),ctr:m(),averagePosition:m()});h({date:o(),indexed:m(),notIndexed:m(),unknown:m()});const G9=h({url:o(),status:N(["success","error"]),submittedAt:o(),error:o().optional()});h({summary:h({total:m().int().nonnegative(),succeeded:m().int().nonnegative(),failed:m().int().nonnegative()}),results:y(G9).default([])});const Wx=h({url:o(),verified:E()});h({sites:y(Wx).default([])});h({connected:E(),domain:o(),siteUrl:o().nullable(),createdAt:o().nullable(),updatedAt:o().nullable()});h({connected:E(),domain:o(),siteUrl:o().nullable(),availableSites:y(Wx).default([])});h({siteUrl:o()});const K9=h({name:o(),alive:E(),lastUsed:o().nullable()});h({connected:E(),endpoint:o(),version:o().optional(),browserVersion:o().optional(),targets:y(K9).default([])});const zo=N(["live","staging"]);h({projectName:o(),url:o(),stagingUrl:o().optional(),username:o(),defaultEnv:zo,createdAt:o(),updatedAt:o()});const Yy=h({url:o(),reachable:E(),pageCount:m().nullable().optional(),version:o().nullable().optional(),error:o().nullable().optional(),plugins:y(o()).optional(),authenticatedUser:h({id:m(),slug:o()}).nullable().optional()});h({connected:E(),projectName:o(),defaultEnv:zo,live:Yy.nullable(),staging:Yy.nullable(),adminUrl:o().nullable().optional()});const Q9=h({id:m(),slug:o(),title:o(),status:o(),modifiedAt:o().nullable().optional(),link:o().nullable().optional()}),e2=h({title:o().nullable(),description:o().nullable(),noindex:E().nullable(),writable:E().default(!1),writeTargets:y(o()).default([])}),Z9=h({type:o(),json:Pe(o(),pa())}),F9=Q9.extend({env:zo,content:o(),seo:e2,schemaBlocks:y(Z9).default([])}),Xy=F9.extend({contentHash:o(),contentSnippet:o()}),t2=h({manualRequired:$(!0),targetUrl:o(),adminUrl:o().nullable().optional(),content:o(),nextSteps:y(o()).default([])}),Y9=h({slug:o(),severity:N(["high","medium","low"]),code:N(["noindex","missing-seo-title","missing-meta-description","missing-schema","thin-content"]),message:o()});h({slug:o(),title:o(),status:o(),wordCount:m(),seo:e2,schemaPresent:E(),issues:y(Y9).default([])});const X9=h({slug:o(),status:N(["applied","skipped","manual"]),error:o().optional(),manualAssist:t2.optional()});h({env:zo,strategy:N(["plugin","manual"]),results:y(X9)});const J9=h({slug:o(),status:N(["deployed","stripped","skipped","failed"]),schemasInjected:y(o()).optional(),manualAssist:t2.optional(),error:o().optional()});h({env:zo,results:y(J9)});const W9=h({slug:o(),title:o(),canonrySchemas:y(o()),thirdPartySchemas:y(o()),hasCanonrySchema:E()});h({env:zo,pages:y(W9)});const eE=h({name:o(),status:N(["completed","skipped","failed"]),summary:o().optional(),error:o().optional()});h({projectName:o(),steps:y(eE)});h({slug:o(),live:Xy,staging:Xy,hasDifferences:E(),differences:h({title:E(),slug:E(),content:E(),seoTitle:E(),seoDescription:E(),noindex:E(),schema:E()})});const tE=h({name:o(),displayName:o().optional(),keyUrl:o().optional(),modelHint:o().optional(),model:o().optional(),defaultModel:o().optional(),configured:E(),quota:d7.optional(),vertexConfigured:E().optional()}),aE=h({name:o(),displayName:o(),mode:N(["api","browser"]),modelConfigurable:E(),defaultModel:o(),knownModels:y(h({id:o(),displayName:o(),tier:N(["flagship","standard","fast","economy"])})).default([]),modelValidationPattern:h({source:o(),flags:o()}),modelValidationHint:o()}),Jy=h({configured:E()});h({providers:y(tE).default([]),providerCatalog:y(aE).default([]),google:Jy,bing:Jy});const Fa=N(["queued","running","completed","partial","failed","cancelled"]),aa=Fa.enum,a2=N(["answer-visibility","site-audit","gsc-sync","inspect-sitemap","ga-sync","bing-inspect","bing-inspect-sitemap","backlink-extract","traffic-sync","aeo-discover-seed","aeo-discover-probe","gbp-sync","ads-sync"]),Oe=a2.enum,S0=N(["manual","scheduled","config-apply","backfill","probe"]),po=S0.enum,qn=N(["cited","not-cited"]),Qc=qn.enum,Zc=N(["visible","not-visible"]);Zc.enum;const Kr=N(["mentioned","not-mentioned"]);Kr.enum;const n2=N(["new","cited","lost","emerging","not-cited"]);n2.enum;const nE=N(["new","mentioned","lost","emerging","not-mentioned"]);nE.enum;const iE=N([po.manual,po.probe]);h({kind:$(Oe["answer-visibility"]).optional(),trigger:iE.optional(),providers:y(mt).optional(),queries:y(o().min(1)).min(1).optional(),measurementScope:tz.optional(),location:o().min(1).optional(),allLocations:E().optional(),noLocation:E().optional()}).refine(e=>+!!e.location+ +!!e.allLocations+ +!!e.noLocation<=1,{message:'Only one of "location", "allLocations", or "noLocation" may be provided'});const sE=h({message:o(),raw:pa().optional()}),oE=h({message:o().optional(),providers:Pe(o(),sE).optional()}),rE=h({id:o(),projectId:o(),kind:a2,status:Fa,trigger:S0.default("manual"),measurementPlanVersionId:o().nullable().optional(),measurementManifest:Pe(o(),pa()).nullable().optional(),measurementScope:az.nullable().optional(),measurementExecutionIdentity:Mx.nullable().optional(),location:o().nullable().optional(),queries:y(o()).nullable().optional(),startedAt:o().nullable().optional(),finishedAt:o().nullable().optional(),error:oE.nullable().optional(),queryBasketRevision:m().int().nullable().optional(),createdAt:o()});function j0(e){if(e.providers){const n=Object.entries(e.providers);if(n.length===1){const[s,r]=n[0];return`${s}: ${r.message}`}if(n.length>1)return n.map(([s,r])=>`${s}: ${r.message}`).join(" • ")}return e.message??"Run failed."}const du=h({uri:o(),title:o()}),lE=h({status:N(["applied","ignored","browser-implicit","unknown"]),resolved:sa.nullable().optional()}),i2=h({id:o(),runId:o(),queryId:o(),query:o().optional(),provider:mt,citationState:qn,answerMentioned:E().optional(),visibilityState:Zc.optional(),mentionState:Kr.optional(),transition:n2.optional(),answerText:o().nullable().optional(),citedDomains:y(o()).default([]),citedUrls:y(o()).nullable().default(null),captureStatus:Ie([ou,de()]).default(null),sourceCount:m().int().nonnegative().nullable().default(null),resolvedCount:m().int().nonnegative().nullable().default(null),captureVersion:m().int().positive().nullable().default(null),retrievalStatus:Ie([b0,de()]).default(null),retrievalContract:Ie([v0,de()]).default(null),competitorOverlap:y(o()).default([]),recommendedCompetitors:y(o()).default([]),matchedTerms:y(o()).default([]),groundingSources:y(du).default([]),searchQueries:y(o()).default([]),model:o().nullable().optional(),servedModel:o().nullable().optional(),location:o().nullable().optional(),requestedContext:sa.nullable().optional(),supportedContext:lE.nullable().optional(),createdAt:o()});h({snapshots:y(i2),total:m().int().nonnegative()});const cE=h({queryId:o().nullable(),query:o().nullable(),run1State:qn.nullable(),run2State:qn.nullable(),run1AnswerMentioned:E().nullable(),run2AnswerMentioned:E().nullable(),run1VisibilityState:Zc.nullable(),run2VisibilityState:Zc.nullable(),run1MentionState:Kr.nullable().optional(),run2MentionState:Kr.nullable().optional(),changed:E(),visibilityChanged:E()});h({run1:o(),run2:o(),diff:y(cE)});const uE=rE.extend({snapshots:y(i2).optional()}),dE=h({totalRuns:m().int().nonnegative(),run:uE.nullable()});h({id:o(),projectId:o().nullable().optional(),actor:o(),action:o(),entityType:o(),entityId:o().nullable().optional(),diff:pa().optional(),userAgent:o().nullable().optional(),actorSession:o().nullable().optional(),createdAt:o()});const mE=N(["yes","no","unknown","not-mentioned"]),Wy=y(o().min(1));h({companyName:o().min(1),domain:o().min(1),queries:Wy.optional(),phrases:Wy.optional(),competitors:y(o().min(1)).optional().default([])}).superRefine((e,n)=>{e.queries!==void 0&&e.phrases!==void 0&&n.addIssue({code:"custom",message:"Use queries; phrases is accepted only as a legacy alias when queries is omitted",path:["phrases"]})});const pE=h({name:o(),count:m().int().nonnegative()}),hE=h({id:o(),name:o(),weight:m(),score:m(),findings:y(h({type:o(),message:o()})).default([]),recommendations:y(o()).default([])}),fE=h({url:o(),finalUrl:o(),auditedAt:o(),overallScore:m(),summary:o(),factors:y(hE).default([])}),gE=h({industry:o(),summary:o(),services:y(o()).default([]),categoryTerms:y(o()).default([])}),yE=h({provider:o(),displayName:o(),model:o().nullable().optional(),mentioned:E(),cited:E(),describedAccurately:mE,accuracyNotes:o().nullable().optional(),incorrectClaims:y(o()).default([]),recommendedCompetitors:y(o()).default([]),citedDomains:y(o()).default([]),groundingSources:y(du).default([]),searchQueries:y(o()).default([]),answerText:o(),error:o().nullable().optional()}),bE=h({query:o(),providerResults:y(yE).default([])}),vE=h({totalQueries:m().int().nonnegative(),totalProviders:m().int().nonnegative(),totalComparisons:m().int().nonnegative(),mentionCount:m().int().nonnegative(),citationCount:m().int().nonnegative(),topCompetitors:y(pE).default([]),visibilityGap:o(),whatThisMeans:y(o()).default([]),recommendedActions:y(o()).default([])});h({companyName:o(),domain:o(),homepageUrl:o(),generatedAt:o(),queries:y(o()).default([]),competitors:y(o()).default([]),profile:gE,audit:fE,queryResults:y(bE).default([]),summary:vE});const s2=Ie([Fa,de()]),A0=N(["pass","partial","fail"]);A0.enum;const o2=N(["up","down","flat"]);o2.enum;const xE=h({id:o(),name:o(),weight:m(),avgScore:m(),status:A0,pagesPassing:m().int().nonnegative(),pagesPartial:m().int().nonnegative(),pagesFailing:m().int().nonnegative()}),kE=h({factorId:o(),factorName:o(),avgScore:m(),affectedPages:m().int().nonnegative(),totalPages:m().int().nonnegative(),affectedPct:m().int().nonnegative(),topRecommendations:y(o()).default([])});h({project:o(),hasData:E(),runId:o().nullable(),runStatus:s2,sitemapUrl:o().nullable(),auditedAt:o().nullable(),aggregateScore:m(),pagesDiscovered:m().int().nonnegative(),pagesAudited:m().int().nonnegative(),pagesSkipped:m().int().nonnegative(),pagesErrored:m().int().nonnegative(),deltaScore:m().nullable(),trend:Ie([o2,de()]),previousScore:m().nullable(),previousAuditedAt:o().nullable(),factors:y(xE).default([]),crossCuttingIssues:y(kE).default([]),prioritizedFixes:y(o()).default([])});const r2=h({id:o(),name:o(),weight:m(),score:m()}),wE=h({url:o(),overallScore:m(),status:N(["success","error"]),error:o().nullable().optional(),factors:y(r2).default([])});h({project:o(),runId:o().nullable(),auditedAt:o().nullable(),total:m().int().nonnegative(),pages:y(wE).default([])});const SE=h({runId:o(),auditedAt:o(),aggregateScore:m(),pagesAudited:m().int().nonnegative()});h({project:o(),points:y(SE).default([])});const jE=N(["disabled","complete","partial","unavailable"]);jE.enum;const AE=h({pagesDiscovered:m().int().nonnegative(),pagesFetched:m().int().nonnegative(),pagesEligible:m().int().nonnegative(),edges:m().int().nonnegative(),findings:m().int().nonnegative()}),NE=Fe("state",[h({state:$("unavailable")}),h({state:$("disabled")}),h({state:$("complete"),checked:m().int().nonnegative(),found:m().int().nonnegative()}),h({state:$("partial"),checked:m().int().nonnegative(),found:m().int().nonnegative()})]);h({project:o(),hasCrawlData:E(),legacyAuditAvailable:E(),runId:o().nullable(),runStatus:s2,requestedRootUrl:o().nullable(),rootUrl:o().nullable(),crawlSchemaVersion:o().nullable().optional(),engineVersion:o().nullable().optional(),normalizationVersion:o().nullable().optional(),indexabilityVersion:o().nullable().optional(),linkScoreVersion:o().nullable().optional(),effectiveOptions:Pe(o(),pa()).default({}),complete:E(),termination:o().nullable(),detailsAvailable:E(),counts:AE,deadLinks:NE});N(["complete","unknown","max-pages","max-edges","max-fetches","max-duration","max-bytes","max-page-bytes","max-depth","max-links-per-page","max-query-variants","max-sitemap-fanout","max-sitemap-urls","root-host-redirect"]);const mu=N(["eligible","hidden","resource","redirect","failed","unchecked"]),GL=mu.enum,KL=mu.options,so={discovered:"discovered",robotsBlocked:"robots-blocked",html:"html",redirect:"redirect",nonHtml:"non-html",fetchError:"fetch-error"},Cc={indexable:"indexable",noindex:"noindex",blocked:"blocked",unknown:"unknown"},CE={robotsDisallow:"robots-disallow",redirectTerminal:"redirect-terminal",metaRobotsNoindex:"meta-robots-noindex",xRobotsNoindex:"x-robots-noindex",canonicalToOther:"canonical-to-other",notHtmlOrUnavailable:"not-html-or-unavailable"};function _E(e){return e.indexabilityReasons?.some(n=>n===CE.canonicalToOther)===!0||e.nodeKey!==void 0&&e.canonicalNodeKey!==null&&e.canonicalNodeKey!==void 0&&e.canonicalNodeKey!==e.nodeKey}function QL(e){switch(e.fetchState){case so.fetchError:return"failed";case so.discovered:return"unchecked";case so.nonHtml:return"resource";case so.redirect:return"redirect";case so.robotsBlocked:return"hidden";case so.html:break;default:return"unchecked"}if(_E(e))return"hidden";switch(e.indexabilityState){case Cc.indexable:return"eligible";case Cc.noindex:case Cc.blocked:return"hidden";case Cc.unknown:default:return"unchecked"}}const ZL=15,zE=N(["navigation","content","unknown"]);zE.enum;const EE=h({navigation:m().int().nonnegative(),content:m().int().nonnegative(),unknown:m().int().nonnegative()}),l2=N(["placement","ubiquity","unmeasured"]);l2.enum;const pu=N(["applied","applied-placement","applied-placement-with-ubiquity","applied-placement-partial","unavailable-too-few-pages","unavailable-legacy-scan"]);pu.enum;function FL(e){switch(e){case"applied":case"applied-placement":case"applied-placement-with-ubiquity":case"applied-placement-partial":return!0;case"unavailable-too-few-pages":case"unavailable-legacy-scan":return!1}}const hu=N(["all","content","template"]);hu.enum;const DE=N(["anchor","redirect","canonical","link"]);DE.enum;const Qr=h({nodeKey:o(),url:o(),finalUrl:o().nullable(),path:o(),parentPath:o(),discoverySource:o(),fetchState:o(),httpStatus:m().int().nullable(),canonicalUrl:o().nullable(),indexabilityState:o(),indexabilityReasons:y(o()).default([]),auditState:o(),auditScore:m().nullable(),inventoryEligible:E(),depth:m().int().nullable(),inboundUniqueEdges:m().int().nonnegative(),outboundUniqueEdges:m().int().nonnegative(),inboundOccurrences:m().int().nonnegative(),outboundOccurrences:m().int().nonnegative(),linkScoreRaw:m().nullable(),linkScoreNormalized:m().nullable(),healthState:mu}),TE=h({type:N(["found","missing","info","timeout","unreachable"]),code:o().min(1),message:o().min(1)}),eb=r2.extend({status:A0,applicable:E().nullable(),findings:y(TE).default([]),recommendations:y(o()).default([])}),tb=h({id:o().min(1),severity:N(["critical","warning"]),detail:o().min(1),recommendation:o().min(1)}),_c=h({project:o(),runId:o(),complete:E(),termination:o().nullable()}),ab=h({nodeKey:o(),url:o(),auditState:o()});Fe("state",[h({state:$("no-crawl"),project:o(),runId:de()}),_c.extend({state:$("details-unavailable")}),_c.extend({state:$("not-found")}),_c.merge(ab).extend({state:$("not-audited"),auditScore:de(),factors:y(eb).length(0).default([]),criticalDefects:y(tb).length(0).default([])}),_c.merge(ab).extend({state:$("ready"),auditScore:m(),evidenceState:N(["complete","scores-only"]),factors:y(eb).default([]),criticalDefects:y(tb).default([])})]);const RE=N(["applied","unavailable-legacy-scan"]);h({project:o(),hasCrawlData:E(),runId:o().nullable(),total:m().int().nonnegative(),nextCursor:o().nullable(),healthStateFilter:Ie([RE,de()]).default(null),pages:y(Qr).default([])});const OE=h({path:o(),url:o().nullable(),hasPage:E(),pageCount:m().int().positive(),inventoryEligibleCount:m().int().nonnegative(),fetchedCount:m().int().nonnegative()});h({project:o(),hasCrawlData:E(),runId:o().nullable(),parentPath:o(),nextCursor:o().nullable(),children:y(OE).default([])});const ls=h({edgeKey:o(),sourceNodeKey:o(),sourceUrl:o(),targetNodeKey:o().nullable(),targetUrl:o(),relation:o(),internal:E(),followable:E(),occurrences:m().int().positive(),followableOccurrences:m().int().nonnegative(),nofollowOccurrences:m().int().nonnegative(),anchors:y(o()).default([]),isTemplate:Ie([E(),de()]),templateRatio:Ie([m(),de()]),templateSource:l2,placementOccurrences:Ie([EE,de()])}),qE=h({nodeKey:o(),url:o(),path:o(),depth:m().int().nonnegative().nullable(),indexabilityState:o(),fetchState:o(),auditState:o(),auditScore:m().nullable(),inventoryEligible:E(),inboundUniqueEdges:m().int().nonnegative(),outboundUniqueEdges:m().int().nonnegative(),linkScoreNormalized:m().nullable(),healthState:mu,x:m(),y:m()}),BE=h({edgeKey:o(),sourceNodeKey:o(),targetNodeKey:o(),followable:E(),occurrences:m().int().positive(),isTemplate:E()}),ME=N(["no-crawl","legacy-snapshot","details-unavailable","layout-failed","empty-crawl"]),PE=Fe("state",[h({state:$("ready"),version:o().min(1),computedAt:o().min(1),templateLinksExcluded:E()}),h({state:$("unavailable"),version:de(),reason:ME})]);h({project:o(),hasCrawlData:E(),runId:o().nullable(),rootNodeKey:o().nullable(),layout:PE,templateDetection:pu,linkKind:hu,totalNodes:m().int().nonnegative(),totalEdges:m().int().nonnegative(),totalTemplateEdges:m().int().nonnegative(),totalContentEdges:m().int().nonnegative(),nodes:y(qE).default([]),edges:y(BE).default([]),omittedNodes:m().int().nonnegative(),omittedEdges:m().int().nonnegative(),sampled:E()});const YL=2e4,XL=5e4,IE=N(["focus","inbound","outbound","both","transitive"]),UE=Qr.extend({distance:m().int().nonnegative(),relationToFocus:IE});h({project:o(),hasCrawlData:E(),runId:o().nullable(),complete:E(),termination:o().nullable(),state:N(["no-crawl","details-unavailable","ready"]),focusNodeKey:o().nullable(),focusUrl:o().nullable(),hops:m().int().min(0).max(3),totalNodes:m().int().nonnegative(),totalEdges:m().int().nonnegative(),nodes:y(UE).default([]),edges:y(ls).default([]),omittedNodes:m().int().nonnegative(),omittedEdges:m().int().nonnegative(),countAccuracy:N(["exact","lower-bound"]),truncated:E()});const nb=h({nodeKey:o(),url:o(),path:o()});h({project:o(),runId:o().nullable(),complete:E(),termination:o().nullable(),state:N(["no-crawl","details-unavailable","found","unreachable","truncated"]),from:nb.nullable(),to:nb.nullable(),maxDepth:m().int().positive(),visitedNodes:m().int().nonnegative(),nodes:y(Qr).default([]),edges:y(ls).default([])});const c2=N(["added","removed","changed"]),LE=h({entity:$("page"),change:c2,key:o(),changedFields:y(o()).default([]),before:Qr.nullable(),after:Qr.nullable()}),VE=h({entity:$("link"),change:c2,key:o(),changedFields:y(o()).default([]),before:ls.nullable(),after:ls.nullable()}),$E=Fe("entity",[LE,VE]),ib=h({added:m().int().nonnegative(),removed:m().int().nonnegative(),changed:m().int().nonnegative()}),HE=h({scope:N(["all","pages","links"]),change:N(["all","added","removed","changed"])});Fe("state",[h({project:o(),state:$("unavailable"),reason:N(["no-crawl","insufficient-history","details-unavailable","partial-not-comparable"]),fromRunId:o().nullable(),toRunId:o().nullable()}),h({project:o(),state:$("incompatible"),reason:$("incompatible-versions"),fromRunId:o(),toRunId:o(),mismatchedVersions:y(o()).min(1)}),h({project:o(),state:$("ready"),fromRunId:o(),toRunId:o(),versions:h({crawlSchema:o(),normalization:o(),indexability:o(),linkScore:o()}),filters:HE,summaryState:N(["exact","omitted-on-continuation"]),summary:h({pages:ib,links:ib}).nullable(),total:m().int().nonnegative().nullable(),nextCursor:o().nullable(),changes:y($E).default([])})]);h({project:o(),hasCrawlData:E(),runId:o().nullable(),total:m().int().nonnegative(),nextCursor:o().nullable(),templateDetection:pu,linkKind:hu,edges:y(ls).default([])});h({project:o(),hasCrawlData:E(),runId:o().nullable(),nodeKey:o().nullable(),url:o().nullable(),templateDetection:pu,linkKind:hu,inbound:y(ls).default([]),outbound:y(ls).default([]),inboundTruncated:E(),outboundTruncated:E()});const sb=h({findingKey:o(),severity:o(),sourceNodeKey:o().nullable(),sourceUrl:o().nullable(),targetNodeKey:o().nullable(),targetUrl:o().nullable(),evidence:Pe(o(),pa()).default({})});Fe("state",[h({project:o(),runId:o().nullable(),state:$("unavailable"),legacyAuditAvailable:E()}),h({project:o(),runId:o(),state:$("disabled"),checkDeadLinks:$(!1)}),h({project:o(),runId:o(),state:$("complete"),checkDeadLinks:$(!0),checked:m().int().nonnegative(),found:m().int().nonnegative(),total:m().int().nonnegative(),nextCursor:o().nullable(),deadLinks:y(sb).default([])}),h({project:o(),runId:o(),state:$("partial"),checkDeadLinks:$(!0),checked:m().int().nonnegative(),found:m().int().nonnegative(),total:m().int().nonnegative(),nextCursor:o().nullable(),deadLinks:y(sb).default([])})]);h({sitemapUrl:o().url().optional(),limit:m().int().positive().max(2e3).optional(),maxPages:m().int().positive().max(5e4).optional(),maxEdges:m().int().positive().max(1e6).optional(),maxDepth:m().int().min(0).max(100).optional(),checkDeadLinks:E().default(!1)});h({runId:o(),status:Fa});const GE=h({runId:o(),status:Fa,createdAt:o(),startedAt:o().nullable(),finishedAt:o().nullable(),hasCrawlData:E()});h({project:o(),scans:y(GE).default([])});const KE=N(["queued","discovering","checking","arranging-map","completed","partial","failed","cancelled"]),QE=h({state:N(["pending","ready","unavailable"]),layoutVersion:o().nullable(),failureCode:o().nullable(),updatedAt:o().nullable()}),ZE=h({id:o(),state:o(),pagesDiscovered:m().int().nonnegative(),pagesFetched:m().int().nonnegative(),pagesEligible:m().int().nonnegative(),pagesErrored:m().int().nonnegative(),edgesDiscovered:m().int().nonnegative(),lastUpdatedAt:o(),startedAt:o().nullable(),finishedAt:o().nullable(),error:o().nullable()});h({project:o(),runId:o(),status:Fa,phase:KE,attempt:ZE.nullable(),layout:QE,error:o().nullable()});const FE=N(["waiting","collecting","terminal"]),YE=h({nodeKey:o(),url:o(),auditScore:m(),checksNeedingAttention:m().int().nonnegative()});h({project:o(),runId:o(),status:Fa,state:FE,attemptId:o().nullable(),pagesAudited:m().int().nonnegative(),updatedAt:o().nullable(),examples:y(YE).max(12).default([])});const N0=N(["answer-visibility","traffic-sync","gbp-sync","data-refresh","backlinks-sync","site-audit","ads-sync","doctor"]);N0.enum;h({id:o(),projectId:o(),kind:N0,cronExpr:o(),preset:o().nullable().optional(),timezone:o().default("UTC"),enabled:E().default(!0),providers:y(mt).default([]),sourceId:o().nullable().optional(),lastRunAt:o().nullable().optional(),nextRunAt:o().nullable().optional(),createdAt:o(),updatedAt:o()});h({kind:N0.optional(),preset:o().optional(),cron:o().optional(),timezone:o().optional().default("UTC"),enabled:E().optional().default(!0),providers:y(mt).optional().default([]),sourceId:o().optional()}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'});const C0=N(["competitor","directory","social","forum","news","reference","blog","ecommerce","video","academic","other"]);C0.enum;const _0=N(["cited","aspirational","wasted-surface"]),ob=_0.enum;ob.cited,ob.aspirational;const fu=N(["direct-competitor","ota-aggregator","editorial-media","other","unknown"]),XE=fu.enum;XE["direct-competitor"];const gu=N(["queued","seeding","probing","completed","failed"]);gu.enum;const u2=h({domain:o().min(1),hits:m().int().positive(),competitorType:fu.default("unknown")}),JE=h({id:o(),sessionId:o(),projectId:o(),query:o(),bucket:_0.nullable().default(null),citationState:qn,citedDomains:y(o()).default([]),answerMentioned:E().nullable().default(null),createdAt:o()}),WE=h({id:o(),projectId:o(),status:gu,icpDescription:o().nullable().optional(),seedProvider:o().nullable().optional(),seedCountRaw:m().int().nullable().optional(),seedCount:m().int().nullable().optional(),seedFromAnswerCount:m().int().nullable().optional(),seedFromGroundingCount:m().int().nullable().optional(),seedBrandFilteredCount:m().int().nullable().optional(),buyerDescription:o().nullable().optional(),locations:y(sa).nullable().optional(),seedRawCandidates:y(o()).nullable().optional(),dedupClusterMinSims:y(m()).nullable().optional(),dedupBandPairFraction:m().nullable().optional(),dedupPairsTotal:m().int().nullable().optional(),seedProviders:y(o()).nullable().optional(),seedProviderCounts:Pe(o(),m().int()).nullable().optional(),canonicalCount:m().int().nullable().optional(),dedupThreshold:m().nullable().optional(),probeCount:m().int().nullable().optional(),citedCount:m().int().nullable().default(null),aspirationalCount:m().int().nullable().default(null),wastedCount:m().int().nullable().default(null),competitorMap:y(u2).default([]),warning:o().nullable().optional(),error:o().nullable().optional(),startedAt:o().nullable().optional(),finishedAt:o().nullable().optional(),createdAt:o()});WE.extend({probes:y(JE).default([])});const eD=500,tD=8,aD=["gemini","openai"],nD=N(aD);h({icpDescription:o().min(1).optional(),buyerDescription:o().min(1).optional(),seedProviders:y(nD).min(1).transform(e=>[...new Set(e)].sort()).optional(),dedupThreshold:m().min(0).max(1).optional(),maxProbes:m().int().positive().max(eD).optional(),probeConcurrency:m().int().min(1).max(tD).optional(),locations:y(o().min(1)).optional()});h({buckets:y(_0).min(1).optional(),includeCompetitors:E().optional(),competitorTypes:y(fu).min(1).optional()});h({sessionId:o(),projectId:o(),status:gu,queriesByBucket:h({cited:y(o()),aspirational:y(o()),"wasted-surface":y(o())}),suggestedCompetitors:y(u2)});h({sessionId:o(),projectId:o(),promoted:h({queries:y(o()),competitors:y(o())}),skipped:h({queries:y(o()),competitors:y(o())})});Ie([$("cli"),o().regex(/^discovery:.+$/)]);const iD=h({query:o().min(1),probeHits:m().int().positive()}),sD=h({rawCandidates:m().int().nonnegative(),admitted:m().int().nonnegative(),rejected:h({belowFloor:m().int().nonnegative(),length:m().int().nonnegative(),navigational:m().int().nonnegative(),duplicate:m().int().nonnegative(),offAnchor:m().int().nonnegative(),semanticDuplicate:m().int().nonnegative()})});h({sessionId:o(),projectId:o(),provider:o(),status:gu,minProbeHits:m().int().positive(),anchorApplied:E(),semanticNoveltyApplied:E(),candidates:y(iD),stats:sD});const z0=N(["own","direct-competitor","ota-aggregator","editorial-media","other"]);z0.enum;const d2=N(["7d","30d","90d","all"]),rb=N(["improving","declining","stable"]),oD=N(["mentioned","cited"]);oD.enum;const Ep=h({citationRate:m(),cited:m().int(),total:m().int(),mentionRate:m(),mentionedCount:m().int()}),E0=o().trim().min(1),rD=y(E0).min(1).superRefine((e,n)=>{for(let s=1;s<e.length;s+=1)e[s-1]>=e[s]&&n.addIssue({code:"custom",message:"mixed model IDs must be sorted and unique",path:[s]})}),ko=Fe("status",[h({status:$("known"),model:E0}),h({status:$("unknown")}),h({status:$("mixed"),models:rD,includesUnknown:E()})]),lD=h({observedAt:o(),bucketStartDate:o(),from:ko,to:ko,fromPreWindowAnchor:E().optional(),anchorObservedAt:o().optional()}),m2=h({latestObservation:h({observedAt:o(),state:ko}),events:y(lD),eventTotal:m().int().nonnegative().optional(),anchorUnavailable:E().optional()}),cD=Pe(o(),m2),uD=m2.extend({latestServedModelIds:y(E0).default([])}),dD=Pe(o(),uD),mD=h({observedAt:o(),configured:ko,served:ko}),pD=h({rate:m().nullable(),projectMentionSnapshots:m().int().nonnegative(),competitorMentionSnapshots:m().int().nonnegative()}),hD=h({startDate:o(),endDate:o(),dataStartDate:o(),dataEndDate:o(),sweepCount:m().int().nonnegative(),citationRate:m(),cited:m().int(),total:m().int(),queryCount:m().int(),mentionRate:m(),mentionedCount:m().int(),mentionShare:pD,byProvider:Pe(o(),Ep),modelEvidenceByProvider:Pe(o(),ko).default({}),basketRevision:m().int().nullable().default(null)}),fD=h({revision:m().int(),at:o(),added:y(o()),removed:y(o())}),gD=h({date:o(),delta:m().int(),label:o()}),yD=h({at:o(),identity:Mx});h({window:d2,buckets:y(hD),overall:Ep,byProvider:Pe(o(),Ep),trend:rb,mentionTrend:rb,queryChanges:y(gD),basketChanges:y(fD).default([]),executionIdentityChanges:y(yD).default([]),referenceBasketRevision:m().int().nullable().default(null),modelAttribution:cD.default({}),servedModelAttribution:dD.default({}),modelServiceMismatch:Pe(o(),mD).default({}),modelPointerChanges:Pe(o(),h9).default({})});const lb=h({category:C0,label:o(),count:m().int(),percentage:m(),topDomains:y(h({domain:o(),count:m().int()}))}),bD=h({domain:o(),count:m().int(),percentage:m(),category:C0,label:o(),surfaceClass:z0}),vD=h({surfaceClass:z0,label:o(),count:m().int(),percentage:m(),domainCount:m().int()}),cb=h({totalCitedSlots:m().int(),domainTotal:m().int(),entries:y(bD),truncatedDomainCount:m().int(),truncatedCitedSlots:m().int(),bySurfaceClass:y(vD)});h({overall:y(lb),byQuery:Pe(o(),y(lb)),ranked:cb,byProvider:Pe(o(),cb),runId:o(),window:d2,limit:m().int().nullable()});const D0=h({total:m().int(),checked:m().int(),mentioned:m().int(),cited:m().int(),mentionRate:m().nullable(),citedRate:m().nullable()}),p2=D0.extend({provider:o(),firstObserved:o(),lastObserved:o()}),xD=D0.extend({queryId:o().nullable(),query:o(),firstObserved:o(),lastObserved:o(),providers:y(p2).optional()}),kD=h({since:o().nullable(),until:o().nullable(),lastRuns:m().int().nullable(),runCount:m().int()}),wD=N(["provider"]),Dp=h({domain:o(),mentions:m().int()}),SD=h({percent:m().nullable(),projectMentions:m().int(),competitorMentions:m().int(),snapshotsWithAnswerText:m().int(),perCompetitor:y(Dp)});h({project:o(),groupBy:wD.optional(),window:kD,totals:D0,byProvider:y(p2).optional(),queries:y(xD),shareOfVoice:SD.optional()});const jD=N(["within-noise","moved","insufficient-data","model-discontinuous","model-unknown"]),AD=N(["up","down","flat"]),ub=h({point:m().nullable(),ciLow:m().nullable(),ciHigh:m().nullable(),numerator:m().int(),denominator:m().int()}),ND=N(["mention-share-of-voice","cited-share-of-voice","mention-rate","cited-rate"]),CD=h({key:ND,label:o(),driftRobust:E(),from:ub,to:ub,rateRatio:m().nullable(),direction:Ie([AD,de()]),verdict:jD}),db=h({month:o(),since:o(),until:o(),runCount:m().int(),lowRunCount:E()}),_D=h({queryCount:m().int(),excludedFromOnly:m().int(),excludedToOnly:m().int(),providers:y(o()),excludedProviders:y(o())}),zD=h({provider:o(),fromModels:y(o()),toModels:y(o())}),ED=N(["included","model-discontinuous","model-unknown"]),DD=h({provider:o(),status:ED,fromModels:y(o()),toModels:y(o())}),TD=N(["comparable","model-discontinuous","model-unknown","insufficient-data"]),RD=h({status:TD,comparedProviders:y(o()),providers:y(DD)}),OD=h({provider:o(),from:h({checked:m().int(),mentioned:m().int(),cited:m().int()}),to:h({checked:m().int(),mentioned:m().int(),cited:m().int()})}),qD=h({from:h({count:m().int(),of:m().int()}),to:h({count:m().int(),of:m().int()})});h({project:o(),from:db,to:db,basket:_D,metrics:y(CD),queriesMentioned:qD,byProvider:y(OD),modelChanges:y(zD),continuity:RD,competitors:h({from:y(Dp),to:y(Dp)})});N(["json","csv"]);const BD=h({runId:o(),runKind:$("answer-visibility"),runStatus:Fa,runTrigger:S0,runCreatedAt:o(),runStartedAt:o().nullable(),runFinishedAt:o().nullable(),snapshotId:o(),snapshotCreatedAt:o(),queryId:o().nullable(),query:o().nullable(),provider:o(),model:o().nullable(),location:o().nullable(),citationState:qn,cited:E(),answerMentioned:E().nullable(),mentionState:Ie([Kr,de()]),citedDomains:y(o()),citedUrls:y(o()).nullable(),captureStatus:Ie([ou,de()]),sourceCount:m().int().nonnegative().nullable(),resolvedCount:m().int().nonnegative().nullable(),captureVersion:m().int().positive().nullable(),competitorOverlap:y(o()),recommendedCompetitors:y(o()),answerText:o().nullable(),groundingSources:y(du),searchQueries:y(o())}),MD=h({since:o().nullable(),until:o().nullable(),includeProbes:E()});h({schemaVersion:$("canonry.results-export/v1"),generatedAt:o(),project:h({id:o(),name:o(),displayName:o(),canonicalDomain:o(),country:o(),language:o()}),filters:MD,recordCount:m().int().nonnegative(),records:y(BD)});const yu=N(["organic","paid"]);yu.enum;h({id:o(),projectId:o(),propertyId:o(),clientEmail:o(),connected:E(),createdAt:o(),updatedAt:o()});h({date:o(),landingPage:o(),sessions:m(),organicSessions:m(),users:m()});const T0=N(["session","first_user","manual_utm"]),PD=h({source:o(),medium:o(),trafficClass:yu,sessions:m(),users:m().optional(),sourceDimension:T0}),ID=h({source:o(),medium:o(),trafficClass:yu,sourceDimension:T0,landingPage:o(),sessions:m(),users:m().optional()}),UD=h({source:o(),medium:o(),sessions:m(),users:m(),channelGroup:o()}),Tr=h({sessions:m(),sharePct:m(),sharePctDisplay:o()}),LD=h({organic:Tr,social:Tr,direct:Tr,ai:Tr,other:Tr});h({totalSessions:m(),totalOrganicSessions:m(),totalDirectSessions:m(),totalUsers:m().nullable(),topPages:y(h({landingPage:o(),sessions:m(),organicSessions:m(),directSessions:m(),users:m()})),aiReferrals:y(PD),aiReferralLandingPages:y(ID),aiSessionsDeduped:m(),aiUsersDeduped:m().optional(),paidAiSessionsDeduped:m(),paidAiUsersDeduped:m().optional(),organicAiSessionsDeduped:m(),organicAiUsersDeduped:m().optional(),aiSessionsBySession:m(),aiUsersBySession:m().optional(),paidAiSessionsBySession:m(),paidAiUsersBySession:m().optional(),organicAiSessionsBySession:m(),organicAiUsersBySession:m().optional(),socialReferrals:y(UD),socialSessions:m(),socialUsers:m(),channelBreakdown:LD,organicSharePct:m(),aiSharePct:m(),aiSharePctBySession:m(),paidAiSharePct:m(),paidAiSharePctBySession:m(),organicAiSharePct:m(),organicAiSharePctBySession:m(),directSharePct:m(),socialSharePct:m(),organicSharePctDisplay:o(),aiSharePctDisplay:o(),aiSharePctBySessionDisplay:o(),paidAiSharePctDisplay:o(),paidAiSharePctBySessionDisplay:o(),organicAiSharePctDisplay:o(),organicAiSharePctBySessionDisplay:o(),directSharePctDisplay:o(),socialSharePctDisplay:o(),otherSessions:m(),otherSharePct:m(),otherSharePctDisplay:o(),lastSyncedAt:o().nullable()});h({connected:E(),propertyId:o().nullable(),clientEmail:o().nullable(),authMethod:N(["service-account","oauth"]).nullable(),lastSyncedAt:o().nullable(),createdAt:o().nullable().optional(),updatedAt:o().nullable().optional()});const VD=h({propertyId:o(),displayName:o(),accountName:o()});h({properties:y(VD)});h({synced:E(),rowCount:m().int().nonnegative(),aiReferralCount:m().int().nonnegative(),socialReferralCount:m().int().nonnegative(),days:m().int().nonnegative(),requestedDays:m().int().nonnegative(),clamped:E(),syncedAt:o(),measurement:h({acquisition:h({days:m().int().nonnegative(),status:N(["ready","error"]),rowCount:m().int().nonnegative(),error:o().optional()}),leads:h({days:m().int().nonnegative(),status:N(["ready","error","not-configured"]),rowCount:m().int().nonnegative(),attributionScope:N(["landing-page","channel"]).optional(),error:o().optional()})}),syncedComponents:y(o()).optional()});h({date:o(),source:o(),medium:o(),trafficClass:yu,landingPage:o(),sessions:m(),users:m(),sourceDimension:T0});const $D=h({source:o(),sessions:m(),paidSessions:m(),organicSessions:m()}),HD=h({date:o(),sessions:m(),paidSessions:m(),organicSessions:m(),bySource:y($D)});h({days:y(HD),sources:y(o()),totalSessions:m(),totalPaidSessions:m(),totalOrganicSessions:m()});h({date:o(),source:o(),medium:o(),sessions:m(),users:m(),channelGroup:o()});h({date:o(),sessions:m(),organicSessions:m(),users:m(),usersSource:N(["deduplicated","landing-page-sum"])});h({id:o(),projectId:o(),runId:o().nullable(),overallCitedRate:m(),overallMentionRate:m(),totalPairs:m().int().nonnegative(),citedPairs:m().int().nonnegative(),mentionedPairs:m().int().nonnegative(),providerBreakdown:Pe(o(),h({citedRate:m(),mentionRate:m(),cited:m().int().nonnegative(),mentioned:m().int().nonnegative(),total:m().int().nonnegative()})),createdAt:o(),status:N(["ready","no-data"]),reason:$("no-runs-yet").optional()});const h2=N(["claude","openai","gemini","zai","deepinfra"]),GD=h({id:h2,label:o(),defaultModel:o(),configured:E(),keySource:N(["config","env"]).nullable()});h({providers:y(GD).default([]),defaultProvider:h2.nullable()});const KD=N(["aero","user","compaction"]);KD.enum;const f2=128;h({key:o().min(1).max(f2),value:o().min(1)});h({key:o().min(1).max(f2)});const Eo=N(["commoncrawl","bing-webmaster"]);Eo.enum;const R0=N(["queued","downloading","querying","ready","failed"]);R0.enum;h({id:o(),release:o(),status:R0,phaseDetail:o().nullable().optional(),vertexPath:o().nullable().optional(),edgesPath:o().nullable().optional(),vertexSha256:o().nullable().optional(),edgesSha256:o().nullable().optional(),vertexBytes:m().int().nullable().optional(),edgesBytes:m().int().nullable().optional(),projectsProcessed:m().int().nullable().optional(),domainsDiscovered:m().int().nullable().optional(),downloadStartedAt:o().nullable().optional(),downloadFinishedAt:o().nullable().optional(),queryStartedAt:o().nullable().optional(),queryFinishedAt:o().nullable().optional(),error:o().nullable().optional(),createdAt:o(),updatedAt:o()});const QD=h({linkingDomain:o(),numHosts:m().int(),source:Eo}),ZD=h({projectId:o(),release:o(),targetDomain:o(),totalLinkingDomains:m().int(),totalHosts:m().int(),top10HostsShare:o(),queriedAt:o(),source:Eo,excludedLinkingDomains:m().int().optional(),excludedHosts:m().int().optional()});h({source:Eo,summary:ZD.nullable(),total:m().int(),rows:y(QD)});h({release:o(),totalLinkingDomains:m().int(),totalHosts:m().int(),top10HostsShare:o(),queriedAt:o(),source:Eo});const FD=h({source:Eo,connected:E(),hasData:E(),latestRelease:o().nullable(),totalLinkingDomains:m().int(),lastSyncedAt:o().nullable()});h({projectId:o(),targetDomain:o(),sources:y(FD),anyConnected:E(),anyData:E()});h({duckdbInstalled:E(),duckdbVersion:o().nullable().optional(),duckdbSpec:o(),pluginDir:o()});h({installed:E(),version:o(),path:o(),alreadyPresent:E()});h({release:o(),vertexUrl:o(),edgesUrl:o(),vertexBytes:m().int().nullable(),edgesBytes:m().int().nullable(),lastModified:o().nullable()});h({release:o(),syncStatus:R0.nullable(),bytes:m().int(),lastUsedAt:o().nullable()});const O0=N(["positive","caution","negative","neutral"]),vi=h({label:o(),value:o(),delta:o(),tone:O0,description:o(),tooltip:o().optional(),trend:y(m()),progress:m().optional(),providerCoverage:o().optional()}),YD=vi.extend({breakdown:h({projectMentionSnapshots:m().int().nonnegative(),competitorMentionSnapshots:m().int().nonnegative(),perCompetitor:y(h({domain:o(),mentionSnapshots:m().int().nonnegative(),shareOfCompetitiveTotal:m()})),snapshotsWithAnswerText:m().int().nonnegative(),snapshotsTotal:m().int().nonnegative()})}),ep=h({gained:m().int().nonnegative(),lost:m().int().nonnegative(),tone:O0,hasPreviousRun:E(),gainedQueries:y(o()).optional(),lostQueries:y(o()).optional()}),XD=h({hasPreviousRun:E(),comparable:E(),querySetChanged:E(),previousRunAt:o().nullable(),currentQueryCount:m().int().nonnegative(),previousQueryCount:m().int().nonnegative(),comparableQueryCount:m().int().nonnegative(),addedQueryCount:m().int().nonnegative(),removedQueryCount:m().int().nonnegative(),addedQueries:y(o()),removedQueries:y(o())}),JD=h({id:o(),projectId:o(),runId:o().nullable(),type:N(["regression","gain","opportunity","first-citation","provider-pickup","persistent-gap","competitor-gained","competitor-lost","gbp-lodging-gap","gbp-listing-discrepancy","gbp-cta-gap","gbp-description-missing","gbp-metric-drop","gbp-keyword-drop"]),severity:N(["critical","high","medium","low"]),title:o(),query:o(),provider:o(),recommendation:h({action:o(),target:o().optional(),reason:o()}).optional(),cause:h({cause:o(),competitorDomain:o().optional(),details:o().optional()}).optional(),dismissed:E(),createdAt:o()}),WD=h({id:o(),projectId:o(),runId:o().nullable(),overallCitedRate:m(),overallMentionRate:m(),totalPairs:m().int().nonnegative(),citedPairs:m().int().nonnegative(),mentionedPairs:m().int().nonnegative(),providerBreakdown:Pe(o(),h({citedRate:m(),mentionRate:m(),cited:m().int().nonnegative(),mentioned:m().int().nonnegative(),total:m().int().nonnegative()})),createdAt:o(),status:N(["ready","no-data"]),reason:$("no-runs-yet").optional()});h({project:c_,latestRun:dE,health:WD.nullable(),topInsights:y(JD),queryCounts:h({totalQueries:m().int().nonnegative(),citedQueries:m().int().nonnegative(),notCitedQueries:m().int().nonnegative(),citedRate:m(),mentionedQueries:m().int().nonnegative(),notMentionedQueries:m().int().nonnegative(),mentionRate:m()}),providers:y(h({provider:o(),citedRate:m(),cited:m().int().nonnegative(),total:m().int().nonnegative()})),transitions:h({since:o().nullable(),gained:m().int().nonnegative(),lost:m().int().nonnegative(),emerging:m().int().nonnegative()}),scores:h({mention:vi,visibility:vi,mentionShare:YD,gapQueries:vi,mentionGaps:vi,indexCoverage:vi,competitorPressure:vi,runStatus:vi}),movementSummary:ep,citationMovement:ep,mentionMovement:ep,movementComparison:XD,competitors:y(h({id:o(),domain:o(),citationCount:m().int().nonnegative(),totalQueries:m().int().nonnegative(),pressureLabel:N(["None","Low","Moderate","High"]),citedQueries:y(o())})),providerScores:y(h({provider:o(),model:o().nullable(),score:m(),cited:m().int().nonnegative(),total:m().int().nonnegative(),trend:y(m()).optional()})),attentionItems:y(h({id:o(),tone:O0,title:o(),detail:o(),actionLabel:o(),href:o()})),runHistory:y(h({runId:o(),createdAt:o(),citedCount:m().int().nonnegative(),totalCount:m().int().nonnegative(),citationRate:m(),mentionedCount:m().int().nonnegative(),mentionRate:m(),status:o()})),suggestedQueries:h({rows:y(h({query:o(),impressions:m(),clicks:m(),avgPosition:m(),reason:o()})),totalCandidates:m().int().nonnegative(),skippedAlreadyTracked:m().int().nonnegative()}),dateRangeLabel:o(),contextLabel:o()});N(["snapshot","insight"]);const eT=h({kind:$("snapshot"),id:o(),runId:o(),query:o(),provider:o(),model:o().nullable(),citationState:qn,matchedField:N(["answerText","citedDomains","citedUrls","searchQueries","query"]),snippet:o(),createdAt:o()}),tT=h({kind:$("insight"),id:o(),runId:o().nullable(),type:N(["regression","gain","opportunity","first-citation","provider-pickup","persistent-gap","competitor-gained","competitor-lost","gbp-lodging-gap","gbp-listing-discrepancy","gbp-cta-gap","gbp-description-missing","gbp-metric-drop","gbp-keyword-drop"]),severity:N(["critical","high","medium","low"]),title:o(),query:o(),provider:o(),matchedField:N(["title","query","recommendation","cause"]),snippet:o(),dismissed:E(),createdAt:o()}),aT=Fe("kind",[eT,tT]);h({query:o(),totalHits:m().int().nonnegative(),truncated:E(),hits:y(aT)});const g2=N(["create","expand","refresh","add-schema"]);g2.enum;function JL(e){switch(e){case"create":return"Create";case"expand":return"Expand";case"refresh":return"Refresh";case"add-schema":return"Add schema"}}const y2=N(["gsc","competitor-evidence","both"]);y2.enum;const b2=N(["high","medium","low"]);b2.enum;const nT=N(["blog-post","comparison","listicle","how-to","guide","glossary"]);nT.enum;const v2=N(["proposed","briefed","payload-generated","draft-created","published","validated","dismissed"]);v2.enum;const q0=N(["ownable","ceded"]);q0.enum;const iT=h({url:o(),gscImpressions:m().nonnegative(),gscClicks:m().nonnegative(),gscAvgPosition:m().nonnegative().nullable(),organicSessions:m().nonnegative()}),sT=h({domain:o(),url:o(),title:o(),citationCount:m().int().nonnegative()}),oT=h({demand:m(),competitor:m(),absence:m(),gapSeverity:m()}),rT=h({actionId:o(),state:v2,lastUpdated:o()}),x2=h({targetRef:o(),query:o(),action:g2,ourBestPage:iT.nullable(),winningCompetitor:sT.nullable(),score:m(),scoreBreakdown:oT,drivers:y(o()),demandSource:y2,actionConfidence:b2,existingAction:rT.nullable(),winnabilityClass:q0,winnability:m().min(0).max(1).nullable()});h({targets:y(x2),contextMetrics:h({totalAiReferralSessions:m().int().nonnegative(),latestRunId:o(),runTimestamp:o()})});const lT=h({targetRef:o(),addressedUrl:o().nullable(),note:o().nullable(),dismissedAt:o()});h({dismissals:y(lT)});h({targetRef:o().min(1),addressedUrl:o().url().optional(),note:o().max(500).optional()});h({targetRef:o(),promptVersion:o(),provider:o(),model:o(),responseText:o(),costMillicents:m().int().nonnegative(),generatedAt:o()});h({provider:o().optional(),model:o().optional(),forceRefresh:E().optional()});const cT=h({targetQuery:o().trim().min(1),winnabilityClass:q0,angle:o().trim().min(1),whyWinnable:o().trim().min(1),schemaHookup:o().trim().min(1),controllableSurfaceRationale:o().trim().min(1)});h({targetRef:o(),promptVersion:o(),provider:o(),model:o(),brief:cT,costMillicents:m().int().nonnegative(),generatedAt:o()});const uT=h({domain:o(),competitorType:fu,hits:m().int().nonnegative(),updatedAt:o()});h({classifications:y(uT)});const dT=h({uri:o(),title:o(),domain:o(),isOurDomain:E(),isCompetitor:E(),citationCount:m().int().nonnegative(),providers:y(mt)}),k2=h({query:o(),groundingSources:y(dT)});h({sources:y(k2),latestRunId:o()});const w2=h({query:o(),competitorDomains:y(o()),competitorCount:m().int().nonnegative(),missRate:m().min(0).max(1),lastSeenInRunId:o()});h({gaps:y(w2),latestRunId:o()});const S2=N(["ok","warn","fail","skipped"]);S2.enum;const B0=N(["global","project"]);B0.enum;const j2=N(["auth","config","providers","integrations","database","schedules","agent"]);j2.enum;const mT=h({id:o(),category:j2,scope:B0,title:o(),status:S2,code:o().describe('Stable machine-readable code (e.g. "google.token.refresh-failed"). Use this for filtering and remediation logic.'),summary:o(),remediation:o().nullable().optional().describe('Operator-facing next step. Null when status is "ok" or no specific remediation applies.'),details:Pe(o(),pa()).optional().describe("Structured context — principal email, redirect URI, missing scopes, etc. Stable per check id."),durationMs:m().int().nonnegative().describe("How long the check took to execute.")});h({scope:B0,project:o().nullable().describe('Project name when scope is "project", null otherwise.'),generatedAt:o().describe("ISO-8601 timestamp when this doctor run started."),durationMs:m().int().nonnegative(),summary:h({total:m().int().nonnegative(),ok:m().int().nonnegative(),warn:m().int().nonnegative(),fail:m().int().nonnegative(),skipped:m().int().nonnegative()}),checks:y(mT)});const pT=h({provider:o(),citationState:qn,cited:E(),mentioned:E(),runId:o(),runCreatedAt:o()}),hT=h({queryId:o(),query:o(),providers:y(pT),citedCount:m().int().nonnegative(),mentionedCount:m().int().nonnegative(),totalProviders:m().int().nonnegative()}),fT=h({queryId:o(),query:o(),provider:o(),citingCompetitors:y(o()),runId:o(),runCreatedAt:o()}),gT=h({providersConfigured:m().int().nonnegative(),providersCiting:m().int().nonnegative(),providersMentioning:m().int().nonnegative(),totalQueries:m().int().nonnegative(),queriesCitedAndMentioned:m().int().nonnegative(),queriesCitedOnly:m().int().nonnegative(),queriesMentionedOnly:m().int().nonnegative(),queriesInvisible:m().int().nonnegative(),latestRunId:o().nullable(),latestRunAt:o().nullable()});h({summary:gT,byQuery:y(hT),competitorGaps:y(fT),status:N(["ready","no-data"]),reason:N(["no-runs-yet","no-queries"]).optional()});const WL=[7,14,30,90],eV=30;Ie([$(7),$(14),$(30),$(90)]).describe("Report window in days (7, 14, 30, or 90). Defaults to 30 when omitted.");const yT=N(["prompt","request-param","browser-geo","ignored"]),bT=h({label:o(),city:o(),region:o(),country:o(),otherConfiguredLabels:y(o())}),vT=h({provider:o(),treatment:yT,description:o()}),xT=h({generatedAt:o(),project:h({id:o(),name:o(),displayName:o(),canonicalDomain:o(),country:o(),language:o()}),location:bT.nullable(),providerLocationHandling:y(vT),periodStart:o().nullable(),periodEnd:o().nullable(),periodDays:m().int().positive()}),kT=h({citationRate:m(),citedQueryCount:m(),totalQueryCount:m(),mentionRate:m(),mentionedQueryCount:m(),trend:N(["up","down","flat","unknown"]),queryCount:m(),competitorCount:m(),providerCount:m(),gsc:h({clicks:m(),impressions:m(),ctr:m(),avgPosition:m(),periodStart:o(),periodEnd:o()}).nullable(),ga:h({sessions:m(),users:m(),periodStart:o(),periodEnd:o()}).nullable(),findings:y(h({title:o(),detail:o(),tone:N(["positive","caution","negative","neutral"])}))}),wT=h({citationState:N(["cited","not-cited","pending"]),answerMentioned:E().nullable(),model:o().nullable()}),ST=h({queries:y(o()),providers:y(o()),matrix:y(y(wT.nullable())),providerRates:y(h({provider:o(),citedCount:m(),mentionedCount:m(),totalCount:m(),citationRate:m(),mentionRate:m()}))}),jT=h({domain:o(),citationCount:m(),totalCount:m(),pressureLabel:N(["High","Moderate","Low","None"]),citedQueries:y(o()),sharePct:m(),theirCitedPages:y(h({url:o(),citedFor:y(o())}))}),AT=h({projectCitationCount:m(),competitors:y(jT)}),NT=h({domain:o(),mentionCount:m(),totalCount:m(),pressureLabel:N(["High","Moderate","Low","None"]),mentionedQueries:y(o()),sharePct:m()}),CT=h({projectMentionCount:m(),totalAnswerSnapshots:m(),competitors:y(NT)}),_T=h({category:o(),label:o(),count:m(),sharePct:m()}),zT=h({categories:y(_T),topDomains:y(h({domain:o(),count:m(),isCompetitor:E()}))}),ET=h({query:o(),clicks:m(),impressions:m(),ctr:m(),avgPosition:m(),category:N(["brand","lead-gen","industry","other"])}),DT=h({periodStart:o(),periodEnd:o(),totalClicks:m(),totalImpressions:m(),ctr:m(),avgPosition:m(),topQueries:y(ET),categoryBreakdown:y(h({category:N(["brand","lead-gen","industry","other"]),clicks:m(),impressions:m(),sharePct:m()})),trend:y(h({date:o(),clicks:m(),impressions:m()})),trackedButNoGsc:y(o()),gscButNotTracked:y(o())}),TT=h({totalSessions:m(),totalUsers:m(),totalOrganicSessions:m(),periodStart:o(),periodEnd:o(),topLandingPages:y(h({page:o(),sessions:m(),users:m(),organicSessions:m()})),channelBreakdown:y(h({channel:o(),sessions:m(),sharePct:m()}))}),RT=h({totalSessions:m(),organicSessions:m(),paidSessions:m(),channels:y(h({channelGroup:o(),sessions:m(),sharePct:m()})),topCampaigns:y(h({source:o(),medium:o(),sessions:m()}))}),OT=h({totalSessions:m(),paidSessions:m(),organicSessions:m(),totalUsers:m().optional(),paidUsers:m().optional(),organicUsers:m().optional(),bySource:y(h({source:o(),sessions:m(),users:m().optional(),paidSessions:m(),organicSessions:m(),sharePct:m()})),trend:y(h({date:o(),sessions:m()})),topLandingPages:y(h({page:o(),sessions:m(),users:m().optional()}))}),qT=h({windowStart:o(),windowEnd:o(),hasData:E(),verifiedCrawlerHits:h({current:m(),prior:m(),deltaPct:m().nullable()}),unverifiedCrawlerHits:h({current:m(),prior:m(),deltaPct:m().nullable()}),aiUserFetchHits:h({current:m(),prior:m(),deltaPct:m().nullable()}),referralArrivals:h({current:m(),prior:m(),deltaPct:m().nullable()}),referralArrivalsByClass:h({paid:h({current:m(),prior:m(),deltaPct:m().nullable()}),organic:h({current:m(),prior:m(),deltaPct:m().nullable()}),unclassified:h({current:m(),prior:m(),deltaPct:m().nullable()})}),referralArrivalsClassSummary:o(),byOperator:y(h({operator:o(),verifiedHits:m(),unverifiedHits:m(),userFetchHits:m(),referralArrivals:m(),deltaPct:m().nullable()})),topCrawledPaths:y(h({path:o(),verifiedHits:m(),distinctOperators:m()})),referralProducts:y(h({product:o(),arrivals:m(),distinctLandingPaths:m()})),dailyTrend:y(h({date:o(),verifiedCrawlerHits:m(),userFetchHits:m(),referralArrivals:m()})),topReferralLandingPaths:y(h({path:o(),arrivals:m(),distinctProducts:m()}))}),BT=h({provider:N(["google","bing"]).nullable(),total:m(),indexed:m(),notIndexed:m(),deindexed:m(),unknown:m(),indexedPct:m()}),MT=h({runId:o(),date:o(),citationRate:m(),citedQueryCount:m(),totalQueryCount:m(),mentionRate:m(),mentionedQueryCount:m(),providerRates:y(h({provider:o(),citationRate:m(),mentionRate:m()}))}),Tp=h({id:o(),type:N(["regression","gain","opportunity"]),severity:N(["critical","high","medium","low"]),title:o(),query:o(),provider:o(),recommendation:o().nullable(),createdAt:o(),instanceCount:m()}),PT=h({horizon:N(["immediate","short-term","medium-term"]),title:o(),rationale:o()}),oo=h({current:m(),prior:m(),deltaAbs:m(),deltaPct:m().nullable(),direction:N(["up","down","flat"]),window:m().optional()}),IT=h({provider:o(),current:m(),prior:m(),deltaAbs:m(),direction:N(["up","down","flat"])}),UT=h({enoughHistory:E(),headline:o(),citationRate:oo.nullable(),mentionRate:oo.nullable(),citedQueryCount:oo.nullable(),mentionedQueryCount:oo.nullable(),gscClicksDelta:oo.nullable(),aiReferralsDelta:oo.nullable(),comparisonWindowDays:m().int().positive(),providerMovements:y(IT),wins:y(Tp),regressions:y(Tp)});N(["agency","client"]);const LT=N(["agency","client","both"]),VT=N(["immediate","short-term","medium-term"]),$T=N(["high","medium","low"]);N(["positive","caution","negative","neutral"]);const HT=N(["content","competitors","provider","search-demand","indexing","location","monitoring"]),M0=h({audience:LT,priority:m(),horizon:VT,category:HT,title:o(),action:o(),why:y(o()),evidence:y(o()),successMetric:o(),confidence:$T,targetRef:o().optional()}),GT=h({headline:o(),overview:o(),actionItems:y(M0),confidenceNotes:y(o())}),KT=h({title:o(),detail:o(),severity:N(["positive","caution","negative","neutral"]),evidence:y(o())}),QT=h({priorities:y(M0),diagnostics:y(KT)});function tV(e){return e.horizon==="immediate"?"negative":e.confidence==="high"?"caution":e.confidence==="low"?"neutral":"caution"}function aV(e){switch(e){case"critical":return"Critical";case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}function nV(e){switch(e){case"immediate":return"Immediate";case"short-term":return"Short term";case"medium-term":return"Medium term"}}function iV(e){switch(e){case"content":return"Content";case"competitors":return"Competitors";case"provider":return"Provider";case"search-demand":return"Search demand";case"indexing":return"Indexing";case"location":return"Location";case"monitoring":return"Monitoring"}}function sV(e){switch(e){case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}h({meta:xT,executiveSummary:kT,citationScorecard:ST,competitorLandscape:AT,mentionLandscape:CT,aiSourceOrigin:zT,gsc:DT.nullable(),ga:TT.nullable(),socialReferrals:RT.nullable(),aiReferrals:OT.nullable(),serverActivity:qT.nullable(),indexingHealth:BT.nullable(),citationsTrend:y(MT),whatsChanged:UT,insights:y(Tp),recommendedNextSteps:y(PT),actionPlan:y(M0),clientSummary:GT,agencyDiagnostics:QT,contentOpportunities:y(x2),contentGaps:y(w2),groundingSources:y(k2)});const ZT=Ie([$(60),$(90)]),FT=N(["earliest","middle","prior","latest"]),ro=h({clicks:m().int().nonnegative(),impressions:m().int().nonnegative()}),A2=h({name:FT,startDate:o(),endDate:o()}),YT=A2.extend({totals:ro}),XT=A2.extend({organicSessions:m().int().nonnegative()}),tp=h({startDate:o(),endDate:o(),observedDays:m().int().nonnegative()}),zc=h({verified:m().int().nonnegative(),claimedUnverified:m().int().nonnegative(),unknownAiLike:m().int().nonnegative()}),mb=h({total:m().int().nonnegative(),paid:m().int().nonnegative(),organic:m().int().nonnegative(),unknown:m().int().nonnegative()});h({contractVersion:$("organic-evidence/v1"),periodDays:ZT,asOfDate:o().nullable(),coverage:h({gsc:E(),ga4:E(),server:E(),visibility:E()}),sourceCoverage:h({gsc:tp.nullable(),ga4:tp.nullable(),server:tp.nullable(),visibility:h({completedAt:o(),ageDays:m().nonnegative()}).nullable()}),gsc:h({propertyTotals:ro,namedBrand:ro,namedNonBrand:ro,suppressedOrUnreportedResidual:ro,cohorts:y(YT)}).nullable(),ga4:h({organicSessions:m().int().nonnegative(),cohorts:y(XT)}).nullable(),gaAiReferrals:h({paidSessions:m().int().nonnegative(),organicSessions:m().int().nonnegative()}).nullable(),server:h({crawlerHits:zc,userFetchHits:zc,referralSessions:mb}).nullable(),visibility:h({runId:o(),completedAt:o(),ageDays:m().nonnegative(),answerPairs:m().int().nonnegative(),mentionedPairs:m().int().nonnegative(),citedPairs:m().int().nonnegative()}).nullable(),measurement:w7,pages:y(h({path:o(),gsc:ro,ga4OrganicSessions:m().int().nonnegative(),server:h({crawlerHits:zc,userFetchHits:zc,referralSessions:mb})})),findings:y(h({tone:N(["positive","caution","neutral"]),title:o(),detail:o()})),limitations:y(h({code:o(),detail:o()}))});const JT=N(["claude","codex"]);JT.enum;const WT=N(["claude","codex","all"]);WT.enum;const N2=h({content:m().int().nonnegative(),sitemap:m().int().nonnegative(),robots:m().int().nonnegative(),asset:m().int().nonnegative(),other:m().int().nonnegative()}),eR=N(["content","sitemap","robots","asset","other"]),P0=N(["cloud-run","wordpress","cloudflare","vercel","generic-log"]);P0.enum;const tR=N(["raw-request-events","aggregate-request-metrics","request-url","status-code","user-agent","remote-ip","referer","cursor-pull"]);tR.enum;const aR=N(["raw-request","aggregate-bucket"]),nR=aR.enum,iR=N(["observed","provider-aggregated","inferred"]),sR=iR.enum,oR=h({type:o().nullable(),labels:Pe(o(),o())}),rR=h({sourceType:P0,evidenceKind:$(nR["raw-request"]),confidence:$(sR.observed),eventId:o().min(1),observedAt:o().min(1),method:o().nullable(),requestUrl:o().nullable(),host:o().nullable(),path:o().min(1),queryString:o().nullable(),status:m().int().nullable(),userAgent:o().nullable(),remoteIp:o().nullable(),referer:o().nullable(),latencyMs:m().nullable(),requestSizeBytes:m().int().nullable(),responseSizeBytes:m().int().nullable(),providerResource:oR,providerLabels:Pe(o(),o())});h({events:y(rR),rawEntryCount:m().int().nonnegative(),skippedEntryCount:m().int().nonnegative(),nextPageToken:o().optional(),filter:o()});const C2=N(["connected","paused","error","archived"]),oV=C2.enum,_2=N(["oauth","service-account"]);_2.enum;const lR=N(["verified","claimed_unverified","unknown_ai_like"]),rV=lR.enum,cR=h({id:o().min(1),source:o().min(1),version:o().min(1)}),z2=h({manifestId:o().min(1),manifest:cR.nullable(),hits:m().int().nonnegative()});h({gcpProjectId:o().min(1),serviceName:o().nullable().optional(),location:o().nullable().optional(),authMode:_2});h({baseUrl:o().url(),username:o().min(1)});const I0=N(["production","preview"]);I0.enum;h({projectId:o().min(1),teamId:o().min(1),environment:I0});const E2=h({id:o(),projectId:o(),sourceType:P0,displayName:o(),status:C2,lastSyncedAt:o().nullable(),lastCursor:o().nullable(),lastError:o().nullable(),skippedThroughAt:o().nullable(),queueBacklogCount:m().int().nonnegative().nullable(),queueBacklogObservedAt:o().nullable(),archivedAt:o().nullable(),config:Pe(o(),pa()),createdAt:o(),updatedAt:o()});h({gcpProjectId:o().min(1),serviceName:o().min(1).optional(),location:o().min(1).optional(),displayName:o().min(1).optional(),keyJson:o().optional()});h({baseUrl:o().url(),username:o().min(1),applicationPassword:o().min(1),displayName:o().min(1).optional()});h({projectId:o().min(1),teamId:o().min(1),token:o().min(1),environment:I0.optional(),displayName:o().min(1).optional()});const uR=N(["direct-push","queue-pull"]),Do=uR.enum,U0=o().regex(/^(?=.{1,63}$)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,"Cloudflare Queue name must be 1-63 characters, use only letters, numbers, or dashes, and start and end with a letter or number"),D2=h({schemaVersion:$(1),workerVersion:o().min(1),expectedBotListVersion:o().min(1),zoneId:o().nullable()}),dR=D2.extend({deliveryMode:$(Do["direct-push"]),accountId:o().nullable()}),mR=D2.extend({deliveryMode:$(Do["queue-pull"]),accountId:o().min(1),queueId:o().min(1),queueName:U0,retentionSeconds:m().int().min(60).max(1209600)});function T2(e){if(typeof e!="object"||e===null||Array.isArray(e))return e;const n=e;return"deliveryMode"in n?e:{...n,deliveryMode:"direct-push"}}a0(T2,Fe("deliveryMode",[dR,mR]));const R2=h({displayName:o().min(1).optional(),zoneId:o().min(1).optional()}),pR=R2.extend({deliveryMode:$(Do["direct-push"]),accountId:o().min(1).optional()}),hR=R2.extend({deliveryMode:$(Do["queue-pull"]),accountId:o().min(1),queueId:o().min(1),queueName:U0,retentionSeconds:m().int().min(60).max(1209600),apiToken:o().min(1)});a0(T2,Fe("deliveryMode",[pR,hR]));const O2=h({sourceId:o().min(1),workerScript:o().min(1),wranglerToml:o().min(1),workerVersion:o().min(1),instructions:o().min(1)}),fR=O2.extend({deliveryMode:$(Do["direct-push"]),activationRequired:E().default(!1)}),gR=O2.extend({deliveryMode:$(Do["queue-pull"]),activationRequired:E().default(!1),accountId:o().min(1),queueId:o().min(1),queueName:U0,retentionSeconds:m().int().min(60).max(1209600)});Fe("deliveryMode",[fR,gR]);const yR=h({eventId:o().min(1),observedAt:o().datetime(),method:o().nullable(),host:o().nullable(),path:o().min(1),queryString:o().nullable(),status:m().int().nullable(),userAgent:o().nullable(),remoteIp:o().nullable(),referer:o().nullable(),cf:h({verifiedBot:E().nullable(),botScore:m().int().nullable(),country:o().nullable(),asn:m().int().nullable(),asOrganization:o().nullable()}).nullable()});h({schemaVersion:$(1),workerVersion:o().min(1),events:y(yR).min(1).max(100)});h({acceptedEvents:m().int(),droppedEvents:m().int(),workerVersionAck:o(),crawlerBucketRows:m().int(),aiUserFetchBucketRows:m().int(),aiReferralBucketRows:m().int(),sampleRows:m().int()});h({sourceId:o(),runId:o(),syncedAt:o(),pulledEvents:m().int().nonnegative(),selfTrafficExcluded:m().int().nonnegative(),crawlerHits:m().int().nonnegative(),aiUserFetchHits:m().int().nonnegative(),aiReferralHits:m().int().nonnegative(),unknownHits:m().int().nonnegative(),crawlerBucketRows:m().int().nonnegative(),aiUserFetchBucketRows:m().int().nonnegative(),aiReferralBucketRows:m().int().nonnegative(),sampleRows:m().int().nonnegative(),remainingBacklogCount:m().int().nonnegative().optional(),windowStart:o(),windowEnd:o()});h({days:m().int().positive().optional()});h({advanceToNow:$(!0)});h({sourceId:o(),runId:o(),status:Fa,windowStart:o(),windowEnd:o(),daysRequested:m().int().positive(),daysApplied:m().int().positive()});const bR=h({crawlerHits:m().int().nonnegative(),crawlerContentHits:m().int().nonnegative(),crawlerInfraHits:m().int().nonnegative(),crawlerSegments:N2,aiUserFetchHits:m().int().nonnegative(),aiReferralHits:m().int().nonnegative(),sampleCount:m().int().nonnegative()});h({sources:y(E2)});const vR=E2.extend({totals24h:bR,latestRun:h({runId:o(),status:Fa,startedAt:o().nullable(),finishedAt:o().nullable(),error:o().nullable()}).nullable()});h({sources:y(vR)});const xR=N(["crawler","ai-user-fetch","ai-referral"]),L0=xR.enum,q2=N(["hour","day"]);q2.enum;const kR=h({bucket:o(),crawlerHits:m().int().nonnegative(),aiUserFetchHits:m().int().nonnegative(),aiReferralHits:m().int().nonnegative()}),wR=h({kind:$(L0.crawler),sourceId:o(),tsHour:o(),botId:o(),operator:o(),verificationStatus:o(),verificationManifests:y(z2).optional(),verificationUnattributedHits:m().int().nonnegative().optional(),pathNormalized:o(),pathClass:eR,status:m().int(),hits:m().int().nonnegative()}),SR=h({kind:$(L0["ai-user-fetch"]),sourceId:o(),tsHour:o(),botId:o(),operator:o(),verificationStatus:o(),verificationManifests:y(z2).optional(),verificationUnattributedHits:m().int().nonnegative().optional(),pathNormalized:o(),status:m().int(),hits:m().int().nonnegative()}),jR=h({kind:$(L0["ai-referral"]),sourceId:o(),tsHour:o(),product:o(),operator:o(),sourceDomain:o(),evidenceType:o(),landingPathNormalized:o(),status:m().int(),hits:m().int().nonnegative(),paidHits:m().int().nonnegative(),organicHits:m().int().nonnegative(),unknownHits:m().int().nonnegative()}),AR=Fe("kind",[wR,SR,jR]);h({windowStart:o(),windowEnd:o(),series:h({granularity:q2,points:y(kR)}),totals:h({crawlerHits:m().int().nonnegative(),crawlerContentHits:m().int().nonnegative(),crawlerInfraHits:m().int().nonnegative(),crawlerSegments:N2,aiUserFetchHits:m().int().nonnegative(),aiReferralHits:m().int().nonnegative(),aiReferralPaidHits:m().int().nonnegative(),aiReferralOrganicHits:m().int().nonnegative(),aiReferralUnknownHits:m().int().nonnegative()}),eventRows:h({total:m().int().nonnegative(),returned:m().int().nonnegative(),truncated:E()}),events:y(AR)});const B2=N(["queued","running","completed","partial","failed"]),lV=B2.enum,M2=N(["queued","running","completed","failed"]),cV=M2.enum;h({queries:y(o().trim().min(1).max(4e3)).min(1).max(50),provider:o().trim().min(1).optional(),model:o().trim().min(1).max(200).optional(),location:sa.nullable().optional(),idempotencyKey:o().trim().min(1).max(128).optional()}).superRefine((e,n)=>{e.model&&!e.provider&&n.addIssue({code:ft.custom,path:["provider"],message:"provider is required when model is supplied"})});const P2=h({id:o(),projectId:o(),status:B2,provider:o(),requestedModel:o().nullable(),resolvedModel:o(),location:sa.nullable(),totalQueries:m().int(),completedQueries:m().int(),failedQueries:m().int(),error:o().nullable(),startedAt:o().nullable(),finishedAt:o().nullable(),createdAt:o()}),NR=h({id:o(),position:m().int(),query:o(),status:M2,requestedModel:o().nullable(),resolvedModel:o(),servedModel:o().nullable(),answerText:o().nullable(),groundingSources:y(du),citedDomains:y(o()),searchQueries:y(o()),namedCompetitors:y(o()).default([]),citedCompetitorDomains:y(o()).default([]),answerMentioned:E().nullable(),citationState:qn.nullable(),error:o().nullable(),startedAt:o().nullable(),finishedAt:o().nullable(),createdAt:o()});P2.extend({queries:y(NR)});h({runs:y(P2)});h({apiKey:o().min(1)});h({id:o(),name:o(),status:o(),currencyCode:o().nullable(),timezone:o().nullable(),url:o().nullable(),reviewStatus:o().nullable(),integrityReviewStatus:o().nullable(),integrityDecision:o().nullable()});h({q:o().trim().min(1).max(200),limit:m().int().min(1).max(100).default(20)});const CR=h({id:o(),type:o(),canonicalName:o(),countryCode:o(),name:o(),regionCode:o().nullable()});h({count:m().int().nonnegative(),query:o(),results:y(CR)});const _R=h({id:o(),clientType:o().optional(),name:o().optional(),pixelId:o().optional()});h({pixels:y(_R)});const zR=h({id:o(),name:o().optional()}),ER=h({id:o(),name:o().optional(),eventType:o().optional(),customEventName:o().nullable().optional(),attributionWindowDays:m().int().positive().optional(),adAccountId:o().optional(),sourceIds:y(o()).optional(),sources:y(zR).optional(),archived:E().optional(),version:m().int().nonnegative().optional()});h({eventSettings:y(ER)});h({connected:E(),adAccountId:o().nullable().optional(),displayName:o().nullable().optional(),currencyCode:o().nullable().optional(),timezone:o().nullable().optional(),status:o().nullable().optional(),reviewStatus:o().nullable().optional(),integrityReviewStatus:o().nullable().optional(),integrityDecision:o().nullable().optional(),lastSyncedAt:o().nullable().optional(),conversionTrackingConfigured:E().optional()});h({disconnected:E()});h({runId:o(),status:o()});const DR=h({type:o().nullable().optional(),title:o().nullable().optional(),body:o().nullable().optional(),targetUrl:o().nullable().optional(),fileId:o().nullable().optional()}),al=N(["impressions","clicks"]),TR=al.enum,nl=N(["impression","click"]);nl.enum;const RR=h({id:o(),adGroupId:o(),name:o(),status:o(),reviewStatus:o().nullable().optional(),creative:DR.nullable().optional(),upstreamUpdatedAt:m().int().nullable().optional(),syncedAt:o().optional()}),OR=h({id:o(),campaignId:o(),name:o(),description:o().nullable().optional(),status:o(),billingEventType:Ie([nl,de()]).optional(),maxBidMicros:m().int().nullable().optional(),contextHints:y(o()).default([]),ads:y(RR).default([]),upstreamUpdatedAt:m().int().nullable().optional(),syncedAt:o().optional()}),qR=h({id:o(),name:o(),description:o().nullable().optional(),status:o(),startTime:m().int().nullable().optional(),endTime:m().int().nullable().optional(),biddingType:Ie([al,de()]).optional(),dailySpendLimitMicros:m().int().nullable().optional(),lifetimeSpendLimitMicros:m().int().nullable().optional(),conversionEventSettingIds:y(o()).default([]),locationIds:y(o()).optional(),adGroups:y(OR).default([]),upstreamUpdatedAt:m().int().nullable().optional(),syncedAt:o().optional()});h({campaigns:y(qR)});const I2=N(["campaign","ad_group"]);I2.enum;const BR=h({level:I2,entityId:o(),date:o(),impressions:m().int(),clicks:m().int(),spendMicros:m().int(),conversions:m().int(),ctr:m().nullable(),cpcMicros:m().int().nullable(),inProgress:E()});h({rows:y(BR),currencyCode:o().nullable().optional()});const U2=h({from:o().nullable(),to:o().nullable(),inProgressDate:o().nullable()}),L2=h({impressions:m().int(),clicks:m().int(),spendMicros:m().int(),conversions:m().int(),ctr:m().nullable(),cpcMicros:m().int().nullable()});h({connected:E(),displayName:o().nullable().optional(),currencyCode:o().nullable().optional(),lastSyncedAt:o().nullable().optional(),campaignCount:m().int(),adGroupCount:m().int(),adCount:m().int(),window:U2,totals:L2});const V2=N(["unavailable","partial","complete"]);V2.enum;const $2=N(["no_ads_connection","connection_not_synced","no_ads_sync","entity_rows_missing_sync_run_id","entity_rows_span_multiple_sync_runs","source_sync_missing","source_sync_not_ads_sync","source_sync_not_completed"]);$2.enum;const H2=N(["unavailable","reported"]);H2.enum;const MR={storedSnapshot:"stored_ads_snapshot"},G2=N(["unavailable","partial_snapshot","metrics_unavailable","observed_activity","no_observed_activity"]);G2.enum;const PR=h({id:o(),name:o(),status:o(),reviewStatus:o().nullable()}),IR=h({id:o(),name:o(),status:o(),billingEventType:Ie([nl,de()]),maxBidMicros:m().int().nullable(),contextHints:y(o()),ads:y(PR)}),UR=h({id:o(),name:o(),status:o(),biddingType:Ie([al,de()]),dailySpendLimitMicros:m().int().nullable(),lifetimeSpendLimitMicros:m().int().nullable(),conversionEventSettingIds:y(o()),adGroups:y(IR)});h({snapshot:h({status:V2,issue:Ie([$2,de()]),lastSyncedAt:o().nullable(),campaignCount:m().int().nonnegative(),adGroupCount:m().int().nonnegative(),adCount:m().int().nonnegative(),sourceSync:h({runId:o(),status:Fa}).nullable()}),historicalCampaignRollups:h({status:H2,window:U2,totals:L2.nullable()}),storedConfiguration:h({basis:$(MR.storedSnapshot),connection:h({status:o().nullable(),reviewStatus:o().nullable(),integrityReviewStatus:o().nullable(),integrityDecision:o().nullable(),conversionTrackingConfigured:E()}).nullable(),campaigns:y(UR)}),assessment:h({state:G2})});const In=o().min(8).max(128).regex(/^[\w.:-]+$/,"operationKey may contain letters, numbers, dot, underscore, colon, and hyphen"),yt=o().min(1).max(200),ms=o().min(3).max(1e3).refine(e=>e.trim().length>0),wo=m().int().min(946684800).max(4102444800),So=m().int().positive().max(Number.MAX_SAFE_INTEGER),V0=o().regex(/^[a-f0-9]{64}$/),K2=y(yt).max(100).refine(e=>new Set(e).size===e.length,"conversionEventSettingIds must be unique"),Q2=o().url().refine(e=>new URL(e).protocol==="https:",{message:"URL must use https"}),Z2=N(["image_upload","campaign_create","campaign_update","campaign_pause","campaign_tree_activate","ad_group_create","ad_group_update","ad_group_pause","ad_create","ad_update","ad_pause"]);Z2.enum;const F2=N(["pending","reconciling","succeeded","failed","unknown"]),ho=F2.enum,Y2=N(["known_entity","create_fingerprint","manual_only"]);Y2.enum;const X2=N([ho.pending,ho.unknown,ho.reconciling]);X2.enum;const J2=N(["active","paused","archived"]);J2.enum;const W2=N(["file","campaign","ad_group","ad"]);W2.enum;const ek=N(["campaign","ad_group","ad"]);ek.enum;const $0=h({id:yt,expectedUpdatedAt:m().int().nonnegative()}).strict(),LR=$0,Fc=100,VR=$0.extend({ads:y(LR).min(1).max(Fc-1)}).strict(),$R=$0.extend({adGroups:y(VR).min(1).max(Fc-1)}).strict();function HR(e,n){return e<n?-1:e>n?1:0}function pb(e,n,s){for(let r=1;r<e.length;r+=1)if(HR(e[r-1].id,e[r].id)>=0){s.addIssue({code:"custom",path:n,message:"Activation manifest entities must be uniquely sorted by id"});return}}const tk=h({campaign:$R}).strict().superRefine((e,n)=>{1+e.campaign.adGroups.reduce((u,f)=>u+1+f.ads.length,0)>Fc&&n.addIssue({code:"custom",path:["campaign"],message:`Activation manifests may contain at most ${Fc} entities`}),pb(e.campaign.adGroups,["campaign","adGroups"],n);const r=new Set;for(let u=0;u<e.campaign.adGroups.length;u+=1){const f=e.campaign.adGroups[u];pb(f.ads,["campaign","adGroups",u,"ads"],n);for(let g=0;g<f.ads.length;g+=1){const b=f.ads[g];r.has(b.id)&&n.addIssue({code:"custom",path:["campaign","adGroups",u,"ads",g,"id"],message:"An ad may appear only once in an activation manifest"}),r.add(b.id)}}}),ak=V0,GR=N(["approved","executing","consumed","revoked","expired","unknown"]),On=GR.enum,KR=N(["pending","executing","active","failed","rollback_executing","rolled_back","rollback_failed","unknown"]),Ci=KR.enum,QR=h({name:ms.optional(),description:o().max(4e3).nullable().optional(),status:J2.optional(),startTime:wo.nullable().optional(),endTime:wo.nullable().optional(),lifetimeSpendLimitMicros:So.min(1e6).optional(),locationIds:y(yt).max(100).optional(),biddingType:al.optional(),conversionEventSettingIds:K2.optional(),campaignId:yt.optional(),contextHints:y(o().min(1).max(1e3)).max(100).optional(),maxBidMicros:So.max(1e8).optional(),billingEventType:nl.optional(),adGroupId:yt.optional(),creativeFingerprint:V0.optional()}).strict();h({operationKey:In,imageUrl:Q2});h({operationKey:In,name:ms,description:o().max(4e3).optional(),startTime:wo.optional(),endTime:wo.optional(),lifetimeSpendLimitMicros:So.min(1e6),locationIds:y(yt).min(1).max(100),biddingType:al.optional(),conversionEventSettingIds:K2.optional()}).superRefine((e,n)=>{e.startTime!==void 0&&e.endTime!==void 0&&e.endTime<=e.startTime&&n.addIssue({code:"custom",path:["endTime"],message:"endTime must be after startTime"}),e.biddingType===TR.clicks&&(e.conversionEventSettingIds===void 0||e.conversionEventSettingIds.length===0)&&n.addIssue({code:"custom",path:["conversionEventSettingIds"],message:"conversionEventSettingIds must be non-empty when biddingType is clicks"})});h({operationKey:In,campaignId:yt,name:ms,description:o().max(4e3).optional(),contextHints:y(o().min(1).max(1e3)).min(1).max(100),maxBidMicros:So.max(1e8),billingEventType:nl.optional()});const nk=h({title:o().min(3).max(50),body:o().min(1).max(100),targetUrl:Q2,fileId:yt});h({operationKey:In,adGroupId:yt,name:ms,creative:nk});function H0(e){return Object.keys(e).some(n=>n!=="operationKey"&&n!=="expectedUpdatedAt")}h({operationKey:In,expectedUpdatedAt:m().int().nonnegative(),name:ms.optional(),description:o().max(4e3).nullable().optional(),startTime:wo.nullable().optional(),endTime:wo.nullable().optional(),lifetimeSpendLimitMicros:So.min(1e6).optional(),locationIds:y(yt).min(1).max(100).optional()}).refine(H0,{message:"At least one campaign field must be updated"});h({operationKey:In,expectedUpdatedAt:m().int().nonnegative(),name:ms.optional(),description:o().max(4e3).nullable().optional(),contextHints:y(o().min(1).max(1e3)).min(1).max(100).optional(),maxBidMicros:So.max(1e8).optional()}).refine(H0,{message:"At least one ad group field must be updated"});h({operationKey:In,expectedUpdatedAt:m().int().nonnegative(),name:ms.optional(),creative:nk.optional()}).refine(H0,{message:"At least one ad field must be updated"});h({operationKey:In});const bu=h({id:o(),adAccountId:o().nullable(),operationKey:o(),kind:Z2,state:F2,entityType:Ie([W2,de()]),entityId:o().nullable(),upstreamUpdatedAt:m().int().nullable(),errorCode:o().nullable(),errorMessage:o().nullable(),reconcileStrategy:Ie([Y2,de()]),reconcileParentId:yt.nullable(),reconcileFingerprint:V0.nullable(),reconcileFields:QR.nullable(),reconcileAttempts:m().int().nonnegative(),lastReconciledAt:o().nullable(),createdAt:o(),updatedAt:o()});h({operation:bu,replayed:E()});const dt=rx({offset:!0}),To={id:yt,projectId:yt,adAccountId:yt,manifestHash:ak,manifest:tk,executorApiKeyId:yt,approverApiKeyId:yt,expiresAt:dt,approvedAt:dt,createdAt:dt,updatedAt:dt,revocationRequestedAt:dt.nullable()},ZR=h({...To,state:$(On.approved),operationId:de(),executionStartedAt:de(),consumedAt:de(),revokedAt:de(),expiredAt:de()}).strict(),FR=h({...To,state:$(On.executing),operationId:yt,executionStartedAt:dt,consumedAt:de(),revokedAt:de(),expiredAt:de()}).strict(),YR=h({...To,state:$(On.consumed),operationId:yt,executionStartedAt:dt,consumedAt:dt,revokedAt:de(),expiredAt:de()}).strict(),XR=h({...To,state:$(On.revoked),operationId:de(),executionStartedAt:de(),consumedAt:de(),revokedAt:dt,expiredAt:de()}).strict(),JR=h({...To,state:$(On.expired),operationId:de(),executionStartedAt:de(),consumedAt:de(),revokedAt:de(),expiredAt:dt}).strict(),WR=h({...To,state:$(On.unknown),operationId:yt,executionStartedAt:dt,consumedAt:de(),revokedAt:de(),expiredAt:de()}).strict(),ik=Fe("state",[ZR,FR,YR,XR,JR,WR]).superRefine((e,n)=>{e.executorApiKeyId===e.approverApiKeyId&&n.addIssue({code:"custom",path:["executorApiKeyId"],message:"The activation executor must use a different API key from the approver"}),e.revocationRequestedAt!==null&&e.state!==On.executing&&e.state!==On.unknown&&e.state!==On.consumed&&n.addIssue({code:"custom",path:["revocationRequestedAt"],message:"Only an executing, cancelled, or unresolved activation can carry a cancellation request"})}),_i={id:yt,operationId:yt,ordinal:m().int().nonnegative(),entityType:ek,entityId:yt,expectedUpdatedAt:m().int().nonnegative(),createdAt:dt,updatedAt:dt},il={errorCode:de(),errorMessage:de()},G0={errorCode:o().min(1).max(100),errorMessage:o().min(1).max(500),remediation:o().min(1).max(500)},eO=h({..._i,...il,state:$(Ci.pending),providerUpdatedAt:de(),remediation:de(),startedAt:de(),finishedAt:de()}).strict(),tO=h({..._i,...il,state:$(Ci.executing),providerUpdatedAt:de(),remediation:de(),startedAt:dt,finishedAt:de()}).strict(),aO=h({..._i,...il,state:$(Ci.active),providerUpdatedAt:m().int().nonnegative(),remediation:de(),startedAt:dt,finishedAt:dt}).strict(),nO=h({..._i,...G0,state:$(Ci.failed),providerUpdatedAt:Ie([m().int().nonnegative(),de()]),startedAt:dt,finishedAt:dt}).strict(),iO=h({..._i,...il,state:$(Ci.rollback_executing),providerUpdatedAt:m().int().nonnegative(),remediation:o().min(1).max(500),startedAt:dt,finishedAt:de()}).strict(),sO=h({..._i,...il,state:$(Ci.rolled_back),providerUpdatedAt:m().int().nonnegative(),remediation:o().min(1).max(500),startedAt:dt,finishedAt:dt}).strict(),oO=h({..._i,...G0,state:$(Ci.rollback_failed),providerUpdatedAt:m().int().nonnegative(),startedAt:dt,finishedAt:dt}).strict(),rO=h({..._i,...G0,state:$(Ci.unknown),providerUpdatedAt:Ie([m().int().nonnegative(),de()]),startedAt:dt,finishedAt:dt}).strict(),lO=Fe("state",[eO,tO,aO,nO,iO,sO,oO,rO]),Rp={exact:"exact",refreshSemanticallyUnchanged:"refresh_semantically_unchanged"},cO=N([Rp.exact,Rp.refreshSemanticallyUnchanged]);h({manifest:tk,executorApiKeyId:yt,expiresAt:dt,versionPolicy:cO.default(Rp.exact)}).strict();h({grant:ik}).strict();h({}).strict();h({operationKey:In,grantId:yt,manifestHash:ak}).strict();h({grant:ik,operation:bu,steps:y(lO)}).strict();const uO=[ho.pending,ho.unknown,ho.reconciling];function dO(e){if(e===void 0||e==="")return uO;if(Array.isArray(e)){const n=[];for(const s of e)typeof s=="string"?n.push(...s.split(",")):n.push(s);return n}return typeof e=="string"?e.split(",").filter(Boolean):e}h({state:a0(dO,y(X2).min(1).max(3).refine(e=>new Set(e).size===e.length,"state values must be unique")),limit:hx().int().min(1).max(200).default(100),cursor:o().min(1).max(1e3).optional()});h({operations:y(bu),count:m().int().nonnegative(),nextCursor:o().nullable()});h({}).strict();h({operation:bu,resolved:E()});h({campaignId:o().min(1).max(200).optional(),lookbackDays:hx().int().min(1).max(30).default(7)});const sk=N(["campaign","ad_group","ad"]);sk.enum;const ok=N(["both","live-only","stored-only"]);ok.enum;const mO=$("live-provider-read"),pO=h({date:o().nullable(),startTime:m().nullable(),endTime:m().nullable(),impressions:m().nullable(),clicks:m().nullable(),spend:m().nullable(),conversions:m().nullable(),ctr:m().nullable(),cpc:m().nullable(),cpm:m().nullable()}),hb=h({impressions:m().int(),clicks:m().int(),spendMicros:m().int(),conversions:m().int()}),hO=h({date:o(),live:hb.nullable(),stored:hb.nullable(),drifted:E()}),fO=h({field:o(),live:o().nullable(),stored:o().nullable()}),gO=h({name:o().nullable(),status:o(),reviewStatus:o().nullable(),mode:o().nullable(),updatedAt:m().nullable()}),yO=h({name:o(),status:o(),reviewStatus:o().nullable(),upstreamUpdatedAt:m().nullable(),syncedAt:o()}),bO=h({entityType:sk,id:o(),parentId:o().nullable(),presence:ok,live:gO.nullable(),stored:yO.nullable(),fieldDeltas:y(fO),liveMetrics:y(pO).nullable(),metricDeltas:y(hO).nullable(),drifted:E()}),vO=h({surface:o(),entityId:o().nullable(),upstreamStatus:m().int().nullable()});h({basis:mO,fetchedAt:o(),adAccountId:o(),storedSnapshotSyncedAt:o().nullable(),metricsWindow:h({lookbackDays:m().int().positive()}),bounds:h({maxCampaigns:m().int().positive(),maxAdGroupsPerCampaign:m().int().positive(),maxAdsPerAdGroup:m().int().positive(),maxReaderCalls:m().int().positive(),readerCalls:m().int().nonnegative(),maxPagesPerReaderCall:m().int().positive(),maxUpstreamHttpRequests:m().int().positive(),truncated:E()}),entities:y(bO),drift:h({entitiesCompared:m().int().nonnegative(),driftedEntities:m().int().nonnegative(),statusDrifted:m().int().nonnegative(),metricsDrifted:m().int().nonnegative()}),errors:y(vO)});const rk=N(["admin","viewer"]),xO=/^[a-z\d][\w.-]{0,63}$/i,kO=o().regex(xO,"A name may use letters, digits, dots, dashes and underscores, and must start with a letter or digit."),fb=12,wO=o().min(fb,`A password must be at least ${fb} characters.`),lk=h({id:o(),name:o(),role:rk,createdAt:o(),lastLoginAt:o().nullable()});h({users:y(lk)});h({name:kO,password:wO,role:rk});h({name:o().min(1),password:o().min(1)});h({authRequired:E(),user:lk.pick({name:!0,role:!0}).nullable()});const At=1,ap=N(["system","project","queries","competitors","run"]),np=N(["0","1","2-3","4-5","6-10","11+"]);function sn(e){return!Number.isFinite(e)||e<=0?"0":e<2?"1":e<4?"2-3":e<6?"4-5":e<11?"6-10":"11+"}const gb=N(["api_unavailable","database_unavailable","worker_unavailable","no_provider","no_queries","provider_save_failed","project_create_failed","query_save_failed","run_rejected","run_failed","run_cancelled","unknown"]),Ec=h({eventId:o().uuid(),flowVersion:$(At),onboardingSessionId:o().uuid()});Fe("event",[Ec.extend({event:$("onboarding.started"),step:ap,resumed:E()}).strict(),Ec.extend({event:$("onboarding.step_completed"),step:ap,method:N(["existing","inline","manual","generated","skipped","automatic"]),countBucket:np.optional()}).strict(),Ec.extend({event:$("onboarding.blocked"),step:ap,action:N(["continue","configure_provider","generate_queries","save","launch_run","retry_run"]),reasonCode:gb}).strict(),Ec.extend({event:$("run.requested"),origin:$("dashboard_setup"),result:N(["queued","rejected"]),providerCountBucket:np,queryCountBucket:np,reasonCode:gb.optional()}).strict()]);h({accepted:E()});const SO=4;function jO(e){return e.length<SO}var AO=(e=>(e.Clicks="clicks",e.Impressions="impressions",e.CTR="ctr",e.Position="position",e))(AO||{});const uV={clicks:"Clicks",impressions:"Impressions",ctr:"CTR",position:"Position"},dV={clicks:"Clicks",impressions:"Impr",ctr:"CTR",position:"Pos"},NO=j0;function CO(e){const n=[];if(e.message&&n.push(e.message),e.providers)for(const[s,r]of Object.entries(e.providers)){const u=`[${s}] ${r.message}`;r.raw!==void 0?n.push(`${u}
52
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const g of e.seen.entries()){const b=g[1];if(n===g[0]){f(g);continue}if(e.external){const k=e.external.registry.get(g[0])?.id;if(n!==g[0]&&k){f(g);continue}}if(e.metadataRegistry.get(g[0])?.id){f(g);continue}if(b.cycle){f(g);continue}if(b.count>1&&e.reused==="ref"){f(g);continue}}}function sx(e,n){const s=e.seen.get(n);if(!s)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=g=>{const b=e.seen.get(g);if(b.ref===null)return;const x=b.def??b.schema,k={...x},S=b.ref;if(b.ref=null,S){r(S);const j=e.seen.get(S),D=j.schema;if(D.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(x.allOf=x.allOf??[],x.allOf.push(D)):Object.assign(x,D),Object.assign(x,k),g._zod.parent===S)for(const q in x)q==="$ref"||q==="allOf"||q in k||delete x[q];if(D.$ref&&j.def)for(const q in x)q==="$ref"||q==="allOf"||q in j.def&&JSON.stringify(x[q])===JSON.stringify(j.def[q])&&delete x[q]}const A=g._zod.parent;if(A&&A!==S){r(A);const j=e.seen.get(A);if(j?.schema.$ref&&(x.$ref=j.schema.$ref,j.def))for(const D in x)D==="$ref"||D==="allOf"||D in j.def&&JSON.stringify(x[D])===JSON.stringify(j.def[D])&&delete x[D]}e.override({zodSchema:g,jsonSchema:x,path:b.path??[]})};for(const g of[...e.seen.entries()].reverse())r(g[0]);const u={};if(e.target==="draft-2020-12"?u.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?u.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?u.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const g=e.external.registry.get(n)?.id;if(!g)throw new Error("Schema is missing an `id` property");u.$id=e.external.uri(g)}Object.assign(u,s.def??s.schema);const f=e.external?.defs??{};for(const g of e.seen.entries()){const b=g[1];b.def&&b.defId&&(f[b.defId]=b.def)}e.external||Object.keys(f).length>0&&(e.target==="draft-2020-12"?u.$defs=f:u.definitions=f);try{const g=JSON.parse(JSON.stringify(u));return Object.defineProperty(g,"~standard",{value:{...n["~standard"],jsonSchema:{input:Uc(n,"input",e.processors),output:Uc(n,"output",e.processors)}},enumerable:!1,writable:!1}),g}catch{throw new Error("Error converting schema to JSON.")}}function ta(e,n){const s=n??{seen:new Set};if(s.seen.has(e))return!1;s.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return ta(r.element,s);if(r.type==="set")return ta(r.valueType,s);if(r.type==="lazy")return ta(r.getter(),s);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return ta(r.innerType,s);if(r.type==="intersection")return ta(r.left,s)||ta(r.right,s);if(r.type==="record"||r.type==="map")return ta(r.keyType,s)||ta(r.valueType,s);if(r.type==="pipe")return ta(r.in,s)||ta(r.out,s);if(r.type==="object"){for(const u in r.shape)if(ta(r.shape[u],s))return!0;return!1}if(r.type==="union"){for(const u of r.options)if(ta(u,s))return!0;return!1}if(r.type==="tuple"){for(const u of r.items)if(ta(u,s))return!0;return!!(r.rest&&ta(r.rest,s))}return!1}const _8=(e,n={})=>s=>{const r=nx({...s,processors:n});return Ot(e,r),ix(r,e),sx(r,e)},Uc=(e,n,s={})=>r=>{const{libraryOptions:u,target:f}=r??{},g=nx({...u??{},target:f,io:n,processors:s});return Ot(e,g),ix(g,e),sx(g,e)},z8={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},E8=(e,n,s,r)=>{const u=s;u.type="string";const{minimum:f,maximum:g,format:b,patterns:x,contentEncoding:k}=e._zod.bag;if(typeof f=="number"&&(u.minLength=f),typeof g=="number"&&(u.maxLength=g),b&&(u.format=z8[b]??b,u.format===""&&delete u.format,b==="time"&&delete u.format),k&&(u.contentEncoding=k),x&&x.size>0){const S=[...x];S.length===1?u.pattern=S[0].source:S.length>1&&(u.allOf=[...S.map(A=>({...n.target==="draft-07"||n.target==="draft-04"||n.target==="openapi-3.0"?{type:"string"}:{},pattern:A.source}))])}},D8=(e,n,s,r)=>{const u=s,{minimum:f,maximum:g,format:b,multipleOf:x,exclusiveMaximum:k,exclusiveMinimum:S}=e._zod.bag;typeof b=="string"&&b.includes("int")?u.type="integer":u.type="number",typeof S=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(u.minimum=S,u.exclusiveMinimum=!0):u.exclusiveMinimum=S),typeof f=="number"&&(u.minimum=f,typeof S=="number"&&n.target!=="draft-04"&&(S>=f?delete u.minimum:delete u.exclusiveMinimum)),typeof k=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(u.maximum=k,u.exclusiveMaximum=!0):u.exclusiveMaximum=k),typeof g=="number"&&(u.maximum=g,typeof k=="number"&&n.target!=="draft-04"&&(k<=g?delete u.maximum:delete u.exclusiveMaximum)),typeof x=="number"&&(u.multipleOf=x)},T8=(e,n,s,r)=>{s.type="boolean"},R8=(e,n,s,r)=>{n.target==="openapi-3.0"?(s.type="string",s.nullable=!0,s.enum=[null]):s.type="null"},O8=(e,n,s,r)=>{s.not={}},q8=(e,n,s,r)=>{},B8=(e,n,s,r)=>{const u=e._zod.def,f=Bv(u.entries);f.every(g=>typeof g=="number")&&(s.type="number"),f.every(g=>typeof g=="string")&&(s.type="string"),s.enum=f},M8=(e,n,s,r)=>{const u=e._zod.def,f=[];for(const g of u.values)if(g===void 0){if(n.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof g=="bigint"){if(n.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");f.push(Number(g))}else f.push(g);if(f.length!==0)if(f.length===1){const g=f[0];s.type=g===null?"null":typeof g,n.target==="draft-04"||n.target==="openapi-3.0"?s.enum=[g]:s.const=g}else f.every(g=>typeof g=="number")&&(s.type="number"),f.every(g=>typeof g=="string")&&(s.type="string"),f.every(g=>typeof g=="boolean")&&(s.type="boolean"),f.every(g=>g===null)&&(s.type="null"),s.enum=f},P8=(e,n,s,r)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},I8=(e,n,s,r)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},U8=(e,n,s,r)=>{const u=s,f=e._zod.def,{minimum:g,maximum:b}=e._zod.bag;typeof g=="number"&&(u.minItems=g),typeof b=="number"&&(u.maxItems=b),u.type="array",u.items=Ot(f.element,n,{...r,path:[...r.path,"items"]})},L8=(e,n,s,r)=>{const u=s,f=e._zod.def;u.type="object",u.properties={};const g=f.shape;for(const k in g)u.properties[k]=Ot(g[k],n,{...r,path:[...r.path,"properties",k]});const b=new Set(Object.keys(g)),x=new Set([...b].filter(k=>{const S=f.shape[k]._zod;return n.io==="input"?S.optin===void 0:S.optout===void 0}));x.size>0&&(u.required=Array.from(x)),f.catchall?._zod.def.type==="never"?u.additionalProperties=!1:f.catchall?f.catchall&&(u.additionalProperties=Ot(f.catchall,n,{...r,path:[...r.path,"additionalProperties"]})):n.io==="output"&&(u.additionalProperties=!1)},V8=(e,n,s,r)=>{const u=e._zod.def,f=u.inclusive===!1,g=u.options.map((b,x)=>Ot(b,n,{...r,path:[...r.path,f?"oneOf":"anyOf",x]}));f?s.oneOf=g:s.anyOf=g},$8=(e,n,s,r)=>{const u=e._zod.def,f=Ot(u.left,n,{...r,path:[...r.path,"allOf",0]}),g=Ot(u.right,n,{...r,path:[...r.path,"allOf",1]}),b=k=>"allOf"in k&&Object.keys(k).length===1,x=[...b(f)?f.allOf:[f],...b(g)?g.allOf:[g]];s.allOf=x},H8=(e,n,s,r)=>{const u=s,f=e._zod.def;u.type="object";const g=f.keyType,x=g._zod.bag?.patterns;if(f.mode==="loose"&&x&&x.size>0){const S=Ot(f.valueType,n,{...r,path:[...r.path,"patternProperties","*"]});u.patternProperties={};for(const A of x)u.patternProperties[A.source]=S}else(n.target==="draft-07"||n.target==="draft-2020-12")&&(u.propertyNames=Ot(f.keyType,n,{...r,path:[...r.path,"propertyNames"]})),u.additionalProperties=Ot(f.valueType,n,{...r,path:[...r.path,"additionalProperties"]});const k=g._zod.values;if(k){const S=[...k].filter(A=>typeof A=="string"||typeof A=="number");S.length>0&&(u.required=S)}},G8=(e,n,s,r)=>{const u=e._zod.def,f=Ot(u.innerType,n,r),g=n.seen.get(e);n.target==="openapi-3.0"?(g.ref=u.innerType,s.nullable=!0):s.anyOf=[f,{type:"null"}]},K8=(e,n,s,r)=>{const u=e._zod.def;Ot(u.innerType,n,r);const f=n.seen.get(e);f.ref=u.innerType},Q8=(e,n,s,r)=>{const u=e._zod.def;Ot(u.innerType,n,r);const f=n.seen.get(e);f.ref=u.innerType,s.default=JSON.parse(JSON.stringify(u.defaultValue))},Z8=(e,n,s,r)=>{const u=e._zod.def;Ot(u.innerType,n,r);const f=n.seen.get(e);f.ref=u.innerType,n.io==="input"&&(s._prefault=JSON.parse(JSON.stringify(u.defaultValue)))},F8=(e,n,s,r)=>{const u=e._zod.def;Ot(u.innerType,n,r);const f=n.seen.get(e);f.ref=u.innerType;let g;try{g=u.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}s.default=g},Y8=(e,n,s,r)=>{const u=e._zod.def,f=n.io==="input"?u.in._zod.def.type==="transform"?u.out:u.in:u.out;Ot(f,n,r);const g=n.seen.get(e);g.ref=f},X8=(e,n,s,r)=>{const u=e._zod.def;Ot(u.innerType,n,r);const f=n.seen.get(e);f.ref=u.innerType,s.readOnly=!0},ox=(e,n,s,r)=>{const u=e._zod.def;Ot(u.innerType,n,r);const f=n.seen.get(e);f.ref=u.innerType},J8=Q("ZodISODateTime",(e,n)=>{FA.init(e,n),wt.init(e,n)});function rx(e){return a8(J8,e)}const W8=Q("ZodISODate",(e,n)=>{YA.init(e,n),wt.init(e,n)});function lx(e){return n8(W8,e)}const eC=Q("ZodISOTime",(e,n)=>{XA.init(e,n),wt.init(e,n)});function tC(e){return i8(eC,e)}const aC=Q("ZodISODuration",(e,n)=>{JA.init(e,n),wt.init(e,n)});function nC(e){return s8(aC,e)}const iC=(e,n)=>{Uv.init(e,n),e.name="ZodError",Object.defineProperties(e,{format:{value:s=>L6(e,s)},flatten:{value:s=>U6(e,s)},addIssue:{value:s=>{e.issues.push(s),e.message=JSON.stringify(e.issues,fp,2)}},addIssues:{value:s=>{e.issues.push(...s),e.message=JSON.stringify(e.issues,fp,2)}},isEmpty:{get(){return e.issues.length===0}}})},Ma=Q("ZodError",iC,{Parent:Error}),sC=Jp(Ma),oC=Wp(Ma),rC=tu(Ma),lC=au(Ma),cC=H6(Ma),uC=G6(Ma),dC=K6(Ma),mC=Q6(Ma),pC=Z6(Ma),hC=F6(Ma),fC=Y6(Ma),gC=X6(Ma),xt=Q("ZodType",(e,n)=>(bt.init(e,n),Object.assign(e["~standard"],{jsonSchema:{input:Uc(e,"input"),output:Uc(e,"output")}}),e.toJSONSchema=_8(e,{}),e.def=n,e.type=n.type,Object.defineProperty(e,"_def",{value:n}),e.check=(...s)=>e.clone(ji(n,{checks:[...n.checks??[],...s.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0}),e.with=e.check,e.clone=(s,r)=>Ai(e,s,r),e.brand=()=>e,e.register=((s,r)=>(s.add(e,r),e)),e.parse=(s,r)=>sC(e,s,r,{callee:e.parse}),e.safeParse=(s,r)=>rC(e,s,r),e.parseAsync=async(s,r)=>oC(e,s,r,{callee:e.parseAsync}),e.safeParseAsync=async(s,r)=>lC(e,s,r),e.spa=e.safeParseAsync,e.encode=(s,r)=>cC(e,s,r),e.decode=(s,r)=>uC(e,s,r),e.encodeAsync=async(s,r)=>dC(e,s,r),e.decodeAsync=async(s,r)=>mC(e,s,r),e.safeEncode=(s,r)=>pC(e,s,r),e.safeDecode=(s,r)=>hC(e,s,r),e.safeEncodeAsync=async(s,r)=>fC(e,s,r),e.safeDecodeAsync=async(s,r)=>gC(e,s,r),e.refine=(s,r)=>e.check(c7(s,r)),e.superRefine=s=>e.check(u7(s)),e.overwrite=s=>e.check(_o(s)),e.optional=()=>wy(e),e.exactOptional=()=>YC(e),e.nullable=()=>Sy(e),e.nullish=()=>wy(Sy(e)),e.nonoptional=s=>a7(e,s),e.array=()=>y(e),e.or=s=>Ie([e,s]),e.and=s=>GC(e,s),e.transform=s=>bp(e,dx(s)),e.default=s=>WC(e,s),e.prefault=s=>t7(e,s),e.catch=s=>i7(e,s),e.pipe=s=>bp(e,s),e.readonly=()=>r7(e),e.describe=s=>{const r=e.clone();return Br.add(r,{description:s}),r},Object.defineProperty(e,"description",{get(){return Br.get(e)?.description},configurable:!0}),e.meta=(...s)=>{if(s.length===0)return Br.get(e);const r=e.clone();return Br.add(r,s[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=s=>s(e),e)),cx=Q("_ZodString",(e,n)=>{e0.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(r,u,f)=>E8(e,r,u);const s=e._zod.bag;e.format=s.format??null,e.minLength=s.minimum??null,e.maxLength=s.maximum??null,e.regex=(...r)=>e.check(p8(...r)),e.includes=(...r)=>e.check(g8(...r)),e.startsWith=(...r)=>e.check(y8(...r)),e.endsWith=(...r)=>e.check(b8(...r)),e.min=(...r)=>e.check(Ic(...r)),e.max=(...r)=>e.check(tx(...r)),e.length=(...r)=>e.check(ax(...r)),e.nonempty=(...r)=>e.check(Ic(1,...r)),e.lowercase=r=>e.check(h8(r)),e.uppercase=r=>e.check(f8(r)),e.trim=()=>e.check(x8()),e.normalize=(...r)=>e.check(v8(...r)),e.toLowerCase=()=>e.check(k8()),e.toUpperCase=()=>e.check(w8()),e.slugify=()=>e.check(S8())}),yC=Q("ZodString",(e,n)=>{e0.init(e,n),cx.init(e,n),e.email=s=>e.check(qN(bC,s)),e.url=s=>e.check(UN(vC,s)),e.jwt=s=>e.check(t8(OC,s)),e.emoji=s=>e.check(LN(xC,s)),e.guid=s=>e.check(gy(xy,s)),e.uuid=s=>e.check(BN(jc,s)),e.uuidv4=s=>e.check(MN(jc,s)),e.uuidv6=s=>e.check(PN(jc,s)),e.uuidv7=s=>e.check(IN(jc,s)),e.nanoid=s=>e.check(VN(kC,s)),e.guid=s=>e.check(gy(xy,s)),e.cuid=s=>e.check($N(wC,s)),e.cuid2=s=>e.check(HN(SC,s)),e.ulid=s=>e.check(GN(jC,s)),e.base64=s=>e.check(JN(DC,s)),e.base64url=s=>e.check(WN(TC,s)),e.xid=s=>e.check(KN(AC,s)),e.ksuid=s=>e.check(QN(NC,s)),e.ipv4=s=>e.check(ZN(CC,s)),e.ipv6=s=>e.check(FN(_C,s)),e.cidrv4=s=>e.check(YN(zC,s)),e.cidrv6=s=>e.check(XN(EC,s)),e.e164=s=>e.check(e8(RC,s)),e.datetime=s=>e.check(rx(s)),e.date=s=>e.check(lx(s)),e.time=s=>e.check(tC(s)),e.duration=s=>e.check(nC(s))});function o(e){return ON(yC,e)}const wt=Q("ZodStringFormat",(e,n)=>{vt.init(e,n),cx.init(e,n)}),bC=Q("ZodEmail",(e,n)=>{UA.init(e,n),wt.init(e,n)}),xy=Q("ZodGUID",(e,n)=>{PA.init(e,n),wt.init(e,n)}),jc=Q("ZodUUID",(e,n)=>{IA.init(e,n),wt.init(e,n)}),vC=Q("ZodURL",(e,n)=>{LA.init(e,n),wt.init(e,n)}),xC=Q("ZodEmoji",(e,n)=>{VA.init(e,n),wt.init(e,n)}),kC=Q("ZodNanoID",(e,n)=>{$A.init(e,n),wt.init(e,n)}),wC=Q("ZodCUID",(e,n)=>{HA.init(e,n),wt.init(e,n)}),SC=Q("ZodCUID2",(e,n)=>{GA.init(e,n),wt.init(e,n)}),jC=Q("ZodULID",(e,n)=>{KA.init(e,n),wt.init(e,n)}),AC=Q("ZodXID",(e,n)=>{QA.init(e,n),wt.init(e,n)}),NC=Q("ZodKSUID",(e,n)=>{ZA.init(e,n),wt.init(e,n)}),CC=Q("ZodIPv4",(e,n)=>{WA.init(e,n),wt.init(e,n)}),_C=Q("ZodIPv6",(e,n)=>{eN.init(e,n),wt.init(e,n)}),zC=Q("ZodCIDRv4",(e,n)=>{tN.init(e,n),wt.init(e,n)}),EC=Q("ZodCIDRv6",(e,n)=>{aN.init(e,n),wt.init(e,n)}),DC=Q("ZodBase64",(e,n)=>{nN.init(e,n),wt.init(e,n)}),TC=Q("ZodBase64URL",(e,n)=>{sN.init(e,n),wt.init(e,n)}),RC=Q("ZodE164",(e,n)=>{oN.init(e,n),wt.init(e,n)}),OC=Q("ZodJWT",(e,n)=>{lN.init(e,n),wt.init(e,n)}),t0=Q("ZodNumber",(e,n)=>{Yv.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(r,u,f)=>D8(e,r,u),e.gt=(r,u)=>e.check(by(r,u)),e.gte=(r,u)=>e.check($m(r,u)),e.min=(r,u)=>e.check($m(r,u)),e.lt=(r,u)=>e.check(yy(r,u)),e.lte=(r,u)=>e.check(Vm(r,u)),e.max=(r,u)=>e.check(Vm(r,u)),e.int=r=>e.check(ky(r)),e.safe=r=>e.check(ky(r)),e.positive=r=>e.check(by(0,r)),e.nonnegative=r=>e.check($m(0,r)),e.negative=r=>e.check(yy(0,r)),e.nonpositive=r=>e.check(Vm(0,r)),e.multipleOf=(r,u)=>e.check(vy(r,u)),e.step=(r,u)=>e.check(vy(r,u)),e.finite=()=>e;const s=e._zod.bag;e.minValue=Math.max(s.minimum??Number.NEGATIVE_INFINITY,s.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(s.maximum??Number.POSITIVE_INFINITY,s.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(s.format??"").includes("int")||Number.isSafeInteger(s.multipleOf??.5),e.isFinite=!0,e.format=s.format??null});function m(e){return o8(t0,e)}const qC=Q("ZodNumberFormat",(e,n)=>{cN.init(e,n),t0.init(e,n)});function ky(e){return l8(qC,e)}const BC=Q("ZodBoolean",(e,n)=>{uN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>T8(e,s,r)});function E(e){return c8(BC,e)}const MC=Q("ZodNull",(e,n)=>{dN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>R8(e,s,r)});function de(e){return u8(MC,e)}const PC=Q("ZodUnknown",(e,n)=>{mN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>q8()});function pa(){return d8(PC)}const IC=Q("ZodNever",(e,n)=>{pN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>O8(e,s,r)});function UC(e){return m8(IC,e)}const LC=Q("ZodArray",(e,n)=>{hN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>U8(e,s,r,u),e.element=n.element,e.min=(s,r)=>e.check(Ic(s,r)),e.nonempty=s=>e.check(Ic(1,s)),e.max=(s,r)=>e.check(tx(s,r)),e.length=(s,r)=>e.check(ax(s,r)),e.unwrap=()=>e.element});function y(e,n){return j8(LC,e,n)}const VC=Q("ZodObject",(e,n)=>{gN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>L8(e,s,r,u),at(e,"shape",()=>n.shape),e.keyof=()=>N(Object.keys(e._zod.def.shape)),e.catchall=s=>e.clone({...e._zod.def,catchall:s}),e.passthrough=()=>e.clone({...e._zod.def,catchall:pa()}),e.loose=()=>e.clone({...e._zod.def,catchall:pa()}),e.strict=()=>e.clone({...e._zod.def,catchall:UC()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=s=>q6(e,s),e.safeExtend=s=>B6(e,s),e.merge=s=>M6(e,s),e.pick=s=>R6(e,s),e.omit=s=>O6(e,s),e.partial=(...s)=>P6(mx,e,s[0]),e.required=(...s)=>I6(px,e,s[0])});function h(e,n){const s={type:"object",shape:e??{},...ze(n)};return new VC(s)}const ux=Q("ZodUnion",(e,n)=>{Wv.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>V8(e,s,r,u),e.options=n.options});function Ie(e,n){return new ux({type:"union",options:e,...ze(n)})}const $C=Q("ZodDiscriminatedUnion",(e,n)=>{ux.init(e,n),yN.init(e,n)});function Fe(e,n,s){return new $C({type:"union",options:n,discriminator:e,...ze(s)})}const HC=Q("ZodIntersection",(e,n)=>{bN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>$8(e,s,r,u)});function GC(e,n){return new HC({type:"intersection",left:e,right:n})}const KC=Q("ZodRecord",(e,n)=>{vN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>H8(e,s,r,u),e.keyType=n.keyType,e.valueType=n.valueType});function Pe(e,n,s){return new KC({type:"record",keyType:e,valueType:n,...ze(s)})}const yp=Q("ZodEnum",(e,n)=>{xN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(r,u,f)=>B8(e,r,u),e.enum=n.entries,e.options=Object.values(n.entries);const s=new Set(Object.keys(n.entries));e.extract=(r,u)=>{const f={};for(const g of r)if(s.has(g))f[g]=n.entries[g];else throw new Error(`Key ${g} not found in enum`);return new yp({...n,checks:[],...ze(u),entries:f})},e.exclude=(r,u)=>{const f={...n.entries};for(const g of r)if(s.has(g))delete f[g];else throw new Error(`Key ${g} not found in enum`);return new yp({...n,checks:[],...ze(u),entries:f})}});function N(e,n){const s=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new yp({type:"enum",entries:s,...ze(n)})}const QC=Q("ZodLiteral",(e,n)=>{kN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>M8(e,s,r),e.values=new Set(n.values),Object.defineProperty(e,"value",{get(){if(n.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return n.values[0]}})});function $(e,n){return new QC({type:"literal",values:Array.isArray(e)?e:[e],...ze(n)})}const ZC=Q("ZodTransform",(e,n)=>{wN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>I8(e,s),e._zod.parse=(s,r)=>{if(r.direction==="backward")throw new Ov(e.constructor.name);s.addIssue=f=>{if(typeof f=="string")s.issues.push($r(f,s.value,n));else{const g=f;g.fatal&&(g.continue=!1),g.code??(g.code="custom"),g.input??(g.input=s.value),g.inst??(g.inst=e),s.issues.push($r(g))}};const u=n.transform(s.value,s);return u instanceof Promise?u.then(f=>(s.value=f,s)):(s.value=u,s)}});function dx(e){return new ZC({type:"transform",transform:e})}const mx=Q("ZodOptional",(e,n)=>{ex.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>ox(e,s,r,u),e.unwrap=()=>e._zod.def.innerType});function wy(e){return new mx({type:"optional",innerType:e})}const FC=Q("ZodExactOptional",(e,n)=>{SN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>ox(e,s,r,u),e.unwrap=()=>e._zod.def.innerType});function YC(e){return new FC({type:"optional",innerType:e})}const XC=Q("ZodNullable",(e,n)=>{jN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>G8(e,s,r,u),e.unwrap=()=>e._zod.def.innerType});function Sy(e){return new XC({type:"nullable",innerType:e})}const JC=Q("ZodDefault",(e,n)=>{AN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>Q8(e,s,r,u),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function WC(e,n){return new JC({type:"default",innerType:e,get defaultValue(){return typeof n=="function"?n():Pv(n)}})}const e7=Q("ZodPrefault",(e,n)=>{NN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>Z8(e,s,r,u),e.unwrap=()=>e._zod.def.innerType});function t7(e,n){return new e7({type:"prefault",innerType:e,get defaultValue(){return typeof n=="function"?n():Pv(n)}})}const px=Q("ZodNonOptional",(e,n)=>{CN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>K8(e,s,r,u),e.unwrap=()=>e._zod.def.innerType});function a7(e,n){return new px({type:"nonoptional",innerType:e,...ze(n)})}const n7=Q("ZodCatch",(e,n)=>{_N.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>F8(e,s,r,u),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function i7(e,n){return new n7({type:"catch",innerType:e,catchValue:typeof n=="function"?n:()=>n})}const s7=Q("ZodPipe",(e,n)=>{zN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>Y8(e,s,r,u),e.in=n.in,e.out=n.out});function bp(e,n){return new s7({type:"pipe",in:e,out:n})}const o7=Q("ZodReadonly",(e,n)=>{EN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>X8(e,s,r,u),e.unwrap=()=>e._zod.def.innerType});function r7(e){return new o7({type:"readonly",innerType:e})}const l7=Q("ZodCustom",(e,n)=>{DN.init(e,n),xt.init(e,n),e._zod.processJSONSchema=(s,r,u)=>P8(e,s)});function c7(e,n={}){return A8(l7,e,n)}function u7(e){return N8(e)}function a0(e,n){return bp(dx(e),n)}const ft={custom:"custom"};function hx(e){return r8(t0,e)}const fx=h({id:o(),name:o(),keyPrefix:o(),scopes:y(o()),projectId:o().nullable(),projectName:o().nullable(),readOnly:E(),createdAt:o(),lastUsedAt:o().nullable(),revokedAt:o().nullable()});h({keys:y(fx)});h({name:o().min(1).max(100),scopes:y(o()).min(1).optional(),projectId:o().optional()});fx.extend({key:o()});const d7=h({maxConcurrency:m().int().positive(),maxRequestsPerMinute:m().int().positive(),maxRequestsPerDay:m().int().positive()}),mt=o().min(1),n0=Pe(o(),o().trim().min(1));o().min(1);const sa=h({label:o().min(1),city:o().min(1),region:o().min(1),country:o().length(2),timezone:o().optional()}),i0=N(["citation.lost","citation.gained","run.completed","run.failed","insight.critical","insight.high","health.degraded","health.recovered"]);h({id:o(),projectId:o(),channel:$("webhook"),url:o().url(),urlDisplay:o(),urlHost:o(),events:y(i0),enabled:E().default(!0),source:o().optional(),webhookSecret:o().optional(),createdAt:o(),updatedAt:o()});h({channel:$("webhook"),url:o().url(),events:y(i0).min(1),source:o().optional()});function m7(e){if(e instanceof Error)return e.message;if(typeof e=="string")return e;if(e==null)return"unknown error";try{const n=JSON.stringify(e);if(n!==void 0)return n}catch{}try{return String(e)}catch{return"unknown error"}}function Hm(e,n=!1){const s=new Set,r=[];for(const u of e){const f=n?u.toLowerCase():u;s.has(f)||(s.add(f),r.push(u))}return r}function jy(e){try{const n=e.includes("://"),s=new URL(n?e:`https://${e}`);if(!n&&(s.pathname!=="/"||s.search||s.hash)||s.username||s.password||s.port)return null;const r=s.hostname.trim().toLowerCase().replace(/^www\./,"");return!r||r.includes("/")||r.includes("?")||r.includes("#")?null:r}catch{return null}}const p7=o().trim().min(1).refine(e=>jy(e)!==null,{message:"Marketing hosts must be valid hostnames without credentials or ports"}).overwrite(e=>jy(e)??e),h7=o().trim().min(1),f7=o().trim().regex(/^[a-z]\w{0,39}$/i,{message:"GA4 event names must start with a letter and contain only letters, numbers, or underscores"}),s0=h({marketingHosts:y(p7).overwrite(e=>Hm(e,!0)),brandTerms:y(h7).overwrite(e=>Hm(e,!0)),leadEventNames:y(f7).overwrite(e=>Hm(e))});function g7(){return{marketingHosts:[],brandTerms:[],leadEventNames:["generate_lead"]}}const Gm=Object.freeze({marketingHosts:Object.freeze([]),brandTerms:Object.freeze([]),leadEventNames:Object.freeze(["generate_lead"])}),gx=()=>g7(),Ay=N(["never-synced","ready","error"]),y7=N(["landing-page","channel"]),b7=N(["30d","60d","90d"]),v7=N(["marketing","all"]),Mr=lx(),Yr=h({label:N(["earliest","middle","previous","latest"]),startDate:Mr,endDate:Mr}),Km=Yr.extend({sessions:m().int().nonnegative()}),Ny=Yr.extend({eventCount:m().int().nonnegative()}),Cy=Yr.extend({clicks:m().int().nonnegative(),impressions:m().int().nonnegative()}),x7=Yr.extend({propertyClicks:m().int().nonnegative(),propertyImpressions:m().int().nonnegative(),reportedQueryClicks:m().int().nonnegative(),reportedQueryImpressions:m().int().nonnegative(),brandedClicks:m().int().nonnegative(),brandedImpressions:m().int().nonnegative(),nonBrandedClicks:m().int().nonnegative(),nonBrandedImpressions:m().int().nonnegative(),unreportedClicks:m().int().nonnegative(),unreportedImpressions:m().int().nonnegative()}),k7=Yr.extend({sessions:m().int().nonnegative(),engagementRate:m().min(0).max(1).nullable(),dailyTotalUsers:m().int().nonnegative().nullable(),dailyNewUsers:m().int().nonnegative().nullable(),metricsAvailable:E(),daysInPeriod:m().int().nonnegative(),daysWithEngagementRate:m().int().nonnegative(),daysWithUserSplit:m().int().nonnegative()}),w7=h({window:b7,bucketDays:$(30),filters:h({hostScope:v7,marketingHosts:y(o()),pathPrefix:o().nullable(),brandTerms:y(o()),queryMixScope:$("property")}),acquisition:h({status:Ay,error:o().nullable(),syncedAt:o().datetime().nullable(),periods:y(Km),channels:y(h({channelGroup:o(),periods:y(Km)})),pages:y(h({hostName:o(),landingPage:o(),periods:y(Km)}))}),leads:h({status:Ay,error:o().nullable(),syncedAt:o().datetime().nullable(),attributionScope:y7.nullable(),hostAndPathFiltersApplied:E(),periods:y(Ny),channels:y(h({channelGroup:o(),periods:y(Ny)}))}),engagement:h({status:N(["ready","unavailable"]),availableFromDate:Mr.nullable(),latestDate:Mr.nullable(),periods:y(k7)}),searchDemand:h({status:N(["ready","unavailable"]),periods:y(x7),queries:y(h({query:o(),classification:N(["branded","non-branded"]),periods:y(Cy)})),pages:y(h({hostName:o(),landingPage:o(),periods:y(Cy)})),latestDate:Mr.nullable()})}),S7=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,j7=/[\0-\x1F\x7F-\x9F]/,A7=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B4E\u1B4F\u1B5A-\u1B60\u1B7D-\u1B7F\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDD6E\uDEAD\uDED0\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9\uDFD4\uDFD5\uDFD7\uDFD8]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09\uDFE1]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDD6D-\uDD6F\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD839\uDDFF|\uD83A[\uDD5E\uDD5F]/,N7=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/;var C7=class{src_Any=S7.source;src_Cc=j7.source;src_Z=N7.source;src_P=A7.source;src_ZPCc=[this.src_Z,this.src_P,this.src_Cc].join("|");src_ZCc=[this.src_Z,this.src_Cc].join("|");cache={};opts={maxLength:1e4,urlAuth:!1,schema_names:[]};constructor(e={}){this.opts={...this.opts,...e}}set(e={}){return this.opts={...this.opts,...e},this.cache={},this}escapeRE(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}nestedPairRE(e,n,s=4){const r=this.escapeRE(e),u=this.escapeRE(n),f=`(?:(?!${this.src_ZCc}|${r}|${u}).)`;let g=`${r}${f}{0,1000}${u}`;for(let b=2;b<=s;b++)g=`${r}(?:${f}|${g}){0,1000}${u}`;return g}get_text_separators(){return this.cache.text_separators??=/[><\uff5c]/}get_pseudo_letter(){return this.cache.src_pseudo_letter??=new RegExp(`(?:(?!${this.get_text_separators().source}|${this.src_ZPCc})${this.src_Any})`)}get_ipv4_addr(){return this.cache.src_ip4??=new RegExp("(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])[.]){3}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])")}get_ipv6_addr(){const e="[0-9A-Fa-f]{1,4}",n=`(?:(?:${e}:${e})|${this.get_ipv4_addr().source})`;return this.cache.src_ip6_addr??=new RegExp(`(?:(?:${e}:){6}${n}|::(?:${e}:){5}${n}|(?:${e})?::(?:${e}:){4}${n}|(?:(?:${e}:){0,1}${e})?::(?:${e}:){3}${n}|(?:(?:${e}:){0,2}${e})?::(?:${e}:){2}${n}|(?:(?:${e}:){0,3}${e})?::${e}:${n}|(?:(?:${e}:){0,4}${e})?::${n}|(?:(?:${e}:){0,5}${e})?::${e}|(?:(?:${e}:){0,6}${e})?::)`)}get_ipv6_url_host(){return this.cache.src_ip6_host??=new RegExp(`\\[${this.get_ipv6_addr().source}\\]`)}get_ipv6_mail_host(){return this.cache.src_ipv6_mail_host??=new RegExp(`\\[IPv6:${this.get_ipv6_addr().source}\\]`)}get_auth(){return this.cache.src_auth??=new RegExp(`(?:(?:(?!${this.src_ZCc}|[@/\\[\\]()]).){1,50}@)?`)}get_port(){return this.cache.src_port??=new RegExp("(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?")}get_host_terminator(){return this.cache.src_host_terminator??=new RegExp(`(?=$|${this.get_text_separators().source}|${this.src_ZPCc})(?!${this.opts["---"]?"-(?!--)|":"-|"}_|:\\d|\\.-|\\.(?!$|${this.src_ZPCc}))`)}get_path_terminator(){return this.cache.src_path_terminator??=new RegExp(`${this.src_ZPCc}|${this.get_text_separators().source}`)}get_path(){return this.cache.src_path??=new RegExp(`(?:[/?#](?:${this.nestedPairRE("[","]")}|${this.nestedPairRE("(",")")}|${this.nestedPairRE("{","}")}|\\"(?:(?!${this.src_ZCc}|["]).){1,100}\\"|\\'(?:(?!${this.src_ZCc}|[']).){1,100}\\'|\\'(?=${this.get_pseudo_letter().source}|[-])|\\.{2,20}[:]?[a-zA-Z0-9%/&]|\\.(?!${this.src_ZCc}|[.]|$)|`+(this.opts["---"]?"\\-(?!--(?:[^-]|$))(?:-{0,19})|":"\\-{1,20}|")+`,(?!${this.src_ZCc}|$)|;(?!${this.src_ZCc}|$)|\\!{1,20}(?!${this.src_ZCc}|[!]|$)|\\?(?!${this.src_ZCc}|[?]|$)|`+this.get_path_extra().source+`[\\\\/:%@#&=_~*]|(?!${this.get_path_terminator().source}).){1,${this.opts.maxLength}}|\\/)?`)}get_mail_name(){return this.cache.src_mail_name??=new RegExp("[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9](?:[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9]|[.](?=[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9])){0,63}")}get_xn(){return this.cache.src_xn??=new RegExp("xn--[a-z0-9\\-]{1,59}")}get_tld(){if(this.cache.tld)return this.cache.tld;const e=[...new Set(this.opts.tlds||[])].sort().reverse().join("|");return this.cache.tld=new RegExp(`${e||"$#none#$"}|${this.get_xn().source}`),this.cache.tld}get_domain_root(){return this.cache.src_domain_root??=new RegExp("(?:"+this.get_xn().source+`|${this.get_pseudo_letter().source}{1,63})`)}get_domain(){return this.cache.src_domain??=new RegExp("(?:"+this.get_xn().source+`|(?:${this.get_pseudo_letter().source})|(?:${this.get_pseudo_letter().source}(?:-|${this.get_pseudo_letter().source}){0,61}${this.get_pseudo_letter().source}))`)}get_url_host_port(){return this.cache.url_host_port??=new RegExp("(?:"+this.get_ipv6_url_host().source+`|(?:(?:(?:${this.get_domain().source})\\.){0,10}${this.get_domain().source}))`+this.get_port().source+this.get_host_terminator().source)}get_fuzzy_url_host_port(){return this.cache.fuzzy_url_host_port??=new RegExp("(?:"+(this.opts.fuzzyIP?this.get_ipv4_addr().source+"|":"")+`(?:(?:(?:${this.get_domain().source})\\.){1,10}(?:${this.get_tld().source})))`+this.get_host_terminator().source)}get_mail_host(){return this.cache.src_mail_host??=new RegExp("(?:"+this.get_ipv6_mail_host().source+`|(?:(?:(?:${this.get_domain().source})\\.){0,4}${this.get_domain().source}))`+this.get_host_terminator().source)}get_fuzzy_mail_host(){return this.cache.src_fuzzy_mail_host??=new RegExp("(?:"+this.get_ipv6_mail_host().source+`|(?:(?:(?:${this.get_domain().source})[.]){1,4}${this.get_domain_root().source}))`+this.get_host_terminator().source)}get_path_extra(){return this.cache.src_path_extra??=new RegExp("")}get_fuzzy_mail_host_search(){return this.cache.mail_fuzzy_host_search??=new RegExp(`@${this.get_fuzzy_mail_host().source}`,"ig")}get_fuzzy_link_search(){return this.cache.link_fuzzy_search??=new RegExp(`(^|(?![.:/\\-_@])(?:[$+<=>^\`||]|${this.src_ZPCc}))(?:(?![$+<=>^\`||])${this.get_fuzzy_url_host_port().source}${this.get_path().source})`,"ig")}get_http_validator(){return this.cache.http_validator??=new RegExp("\\/\\/"+(this.opts.urlAuth?this.get_auth().source:"")+this.get_url_host_port().source+this.get_path().source,"iy")}get_relative_proto_validator(){return this.cache.relative_proto_validator??=new RegExp((this.opts.urlAuth?this.get_auth().source:"")+`(?:localhost|${this.get_ipv6_url_host().source}|(?:(?:${this.get_domain().source})[.]){1,10}${this.get_domain_root().source})`+this.get_port().source+this.get_host_terminator().source+this.get_path().source,"iy")}get_mail_name_validator(){return this.cache.mail_name_validator??=new RegExp(`(?:^|${this.get_text_separators().source}|"|\\(|${this.src_ZCc})(${this.get_mail_name().source})$`)}get_mailto_validator(){return this.cache.mailto_validator??=new RegExp(`${this.get_mail_name().source}@${this.get_mail_host().source}`,"iy")}get_schema_names(){return this.cache.schema_names??=new RegExp((this.opts.schema_names||[]).map(e=>this.escapeRE(e)).join("|"))}get_schema_search(){return this.cache.schema_search??=new RegExp(`(^|(?!_)(?:[><|]|${this.src_ZPCc}))(${this.get_schema_names().source})`,"ig")}get_schema_at_start(){return this.cache.schema_at_start??=new RegExp(`^${this.get_schema_search().source}`,"i")}},Qm={validate:(e,n,s)=>{const r=s.re.get_http_validator();r.lastIndex=n;const u=r.exec(e);return u?u[0].length:0},normalize:(e,n)=>n.normalize(e)},_7={"http:":Qm,"https:":Qm,"ftp:":Qm,"//":{validate:function(e,n,s){const r=s.re.get_relative_proto_validator();r.lastIndex=n;const u=r.exec(e);return u?n>=3&&e[n-3]===":"||n>=3&&e[n-3]==="/"?0:u[0].length:0},normalize:(e,n)=>n.normalize(e)},"mailto:":{validate:function(e,n,s){const r=s.re.get_mailto_validator();r.lastIndex=n;const u=r.exec(e);return u?u[0].length:0},normalize:(e,n)=>n.normalize(e)}},z7="a:cdefgilmnoqrstuwxz|b:abdefghijmnorstvwyz|c:acdfghiklmnoruvwxyz|d:ejkmoz|e:cegrstu|f:ijkmor|g:abdefghilmnpqrstuwy|h:kmnrtu|i:delmnoqrst|j:emop|k:eghimnprwyz|l:abcikrstuvy|m:acdeghklmnopqrstuvwxyz|n:acefgilopruz|o:m|p:aefghklmnrstwy|q:a|r:eosuw|s:abcdeghijklmnortuvxyz|t:cdfghjklmnortvwz|u:agksyz|v:aceginu|w:fs|y:et|z:amw",E7="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф";function D7(){const e=E7.split("|");return z7.split("|").forEach(n=>{const s=n.indexOf(":"),r=n.slice(0,s);for(const u of n.slice(s+1))e.push(r+u)}),e}var T7={fuzzyLink:!1,fuzzyEmail:!0,fuzzyIP:!1,"---":!1,tlds:D7(),urlAuth:!1,maxLength:1e4},_y=class{schema;index;lastIndex;raw;text;url;constructor(e,n,s,r){const u=e.slice(s,r);this.schema=n.toLowerCase(),this.index=s,this.lastIndex=r,this.raw=u,this.text=u,this.url=u}},R7=class{__opts__;__schemas__;re;constructor(e={}){const{rebuilder:n,...s}=e;this.__opts__={...T7,...s},this.__schemas__={..._7},this.re=n||new C7,this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)})}add(e,n=null){if(!n)delete this.__schemas__[e];else{const s={normalize:(r,u)=>u.normalize(r),...n};this.__schemas__[e]=s}return this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}set(e={}){return this.__opts__={...this.__opts__,...e},this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}test(e){if(!e.length)return!1;let n,s;for(s=this.re.get_schema_search(),s.lastIndex=0;(n=s.exec(e))!==null;)if(this.testSchemaAt(e,n[2],s.lastIndex))return!0;if(this.__opts__.fuzzyLink&&this.__schemas__["http:"]&&(s=this.re.get_fuzzy_link_search(),s.lastIndex=0,s.exec(e)!==null))return!0;if(this.__opts__.fuzzyEmail&&this.__schemas__["mailto:"]&&e.indexOf("@")>=0){const r=this.re.get_fuzzy_mail_host_search(),u=this.re.get_mail_name_validator();for(r.lastIndex=0;(n=r.exec(e))!==null;){const f=e.slice(Math.max(0,n.index-65),n.index);if(u.test(f))return!0}}return!1}testSchemaAt(e,n,s){return this.__schemas__[n.toLowerCase()]?this.__schemas__[n.toLowerCase()].validate(e.slice(0,s+this.__opts__.maxLength),s,this):0}match(e){const n=[],s=this.re.get_schema_search();let r,u,f,g,b,x,k=!1,S=!1,A=!1,j=0;if(!e.length)return null;for(s.lastIndex=0,this.__opts__.fuzzyLink&&this.__schemas__["http:"]&&(r=this.re.get_fuzzy_link_search(),r.lastIndex=0),this.__opts__.fuzzyEmail&&this.__schemas__["mailto:"]&&(u=this.re.get_fuzzy_mail_host_search(),u.lastIndex=0,f=this.re.get_mail_name_validator());;){const D=Math.max(j-1,0);if(u&&f&&!A&&(!b||b.index<j))for(u.lastIndex<D&&(u.lastIndex=D);;){const te=u.exec(e);if(!te){A=!0,b=void 0;break}const X=f.exec(e.slice(Math.max(0,te.index-65),te.index));if(X){if(b={schema:"mailto:",index:te.index-X[1].length,lastIndex:te.index+te[0].length},b.index>=j)break;u.lastIndex<D&&(u.lastIndex=D)}}if(r&&!S&&(!g||g.index<j))for(r.lastIndex<D&&(r.lastIndex=D);;){const te=r.exec(e);if(!te){S=!0,g=void 0;break}if(g={schema:"",index:te.index+te[1].length,lastIndex:te.index+te[0].length},g.index>=j)break;r.lastIndex<D&&(r.lastIndex=D)}let R=b;(!R||g&&(g.index<R.index||g.index===R.index&&g.lastIndex>R.lastIndex))&&(R=g);let q;if(!k)for(;;){if(!x){s.lastIndex<D&&(s.lastIndex=D);const ae=s.exec(e);if(!ae){k=!0;break}x={schema:ae[2],index:ae.index+ae[1].length,lastIndex:ae.index+ae[0].length}}if(x.index<j){x=void 0;continue}if(R&&x.index>R.index)break;const te=x;x=void 0;const X=this.testSchemaAt(e,te.schema,te.lastIndex);if(X){q={schema:te.schema,index:te.index,lastIndex:te.lastIndex+X};break}}let L=q;if((!L||b&&(b.index<L.index||b.index===L.index&&b.lastIndex>L.lastIndex))&&(L=b),(!L||g&&(g.index<L.index||g.index===L.index&&g.lastIndex>L.lastIndex))&&(L=g),!L)break;L===b?b=void 0:L===g&&(g=void 0);const V=new _y(e,L.schema,L.index,L.lastIndex);V.schema?this.__schemas__[V.schema].normalize(V,this):this.normalize(V),n.push(V),j=L.lastIndex}return n.length?n:null}matchAtStart(e){if(!e.length)return null;const n=this.re.get_schema_at_start().exec(e);if(!n)return null;const s=this.testSchemaAt(e,n[2],n[0].length);if(!s)return null;const r=new _y(e,n[2],n.index+n[1].length,n.index+n[0].length+s);return this.__schemas__[r.schema].normalize(r,this),r}tlds(e,n=!1){return e=Array.isArray(e)?e:[e],n?this.__opts__.tlds=this.__opts__.tlds.concat(e):this.__opts__.tlds=e,this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}normalize(e){e.schema||(e.url=`http://${e.url}`),e.schema==="mailto:"&&!/^mailto:/i.test(e.url)&&(e.url=`mailto:${e.url}`)}};const O7=JSON.parse('["aaa","aarp","abb","abbott","abbvie","abc","able","abogado","abudhabi","ac","academy","accenture","accountant","accountants","aco","actor","ad","ads","adult","ae","aeg","aero","aetna","af","afl","africa","ag","agakhan","agency","ai","aig","airbus","airforce","airtel","akdn","al","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","am","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","ao","aol","apartments","app","apple","aq","aquarelle","ar","arab","aramco","archi","army","arpa","art","arte","as","asda","asia","associates","at","athleta","attorney","au","auction","audi","audible","audio","auspost","author","auto","autos","aw","aws","ax","axa","az","azure","ba","baby","baidu","banamex","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bb","bbc","bbt","bbva","bcg","bcn","bd","be","beats","beauty","beer","berlin","best","bestbuy","bet","bf","bg","bh","bharti","bi","bible","bid","bike","bing","bingo","bio","biz","bj","black","blackfriday","blockbuster","blog","bloomberg","blue","bm","bms","bmw","bn","bnpparibas","bo","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","br","bradesco","bridgestone","broadway","broker","brother","brussels","bs","bt","build","builders","business","buy","buzz","bv","bw","by","bz","bzh","ca","cab","cafe","cal","call","calvinklein","cam","camera","camp","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","cash","casino","cat","catering","catholic","cba","cbn","cbre","cc","cd","center","ceo","cern","cf","cfa","cfd","cg","ch","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","ci","cipriani","circle","cisco","citadel","citi","citic","city","ck","cl","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","cm","cn","co","coach","codes","coffee","college","cologne","com","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cool","coop","corsica","country","coupon","coupons","courses","cpa","cr","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","cu","cuisinella","cv","cw","cx","cy","cymru","cyou","cz","dad","dance","data","date","dating","datsun","day","dclk","dds","de","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dj","dk","dm","dnp","do","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","dupont","durban","dvag","dvr","dz","earth","eat","ec","eco","edeka","edu","education","ee","eg","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","er","ericsson","erni","es","esq","estate","et","eu","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fi","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","fj","fk","flickr","flights","flir","florist","flowers","fly","fm","fo","foo","food","football","ford","forex","forsale","forum","foundation","fox","fr","free","fresenius","frl","frogans","frontier","ftr","fujitsu","fun","fund","furniture","futbol","fyi","ga","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gb","gbiz","gd","gdn","ge","gea","gent","genting","george","gf","gg","ggee","gh","gi","gift","gifts","gives","giving","gl","glass","gle","global","globo","gm","gmail","gmbh","gmo","gmx","gn","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","gov","gp","gq","gr","grainger","graphics","gratis","green","gripe","grocery","group","gs","gt","gu","gucci","guge","guide","guitars","guru","gw","gy","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hiphop","hisamitsu","hitachi","hiv","hk","hkt","hm","hn","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hotels","hotmail","house","how","hr","hsbc","ht","hu","hughes","hyatt","hyundai","ibm","icbc","ice","icu","id","ie","ieee","ifm","ikano","il","im","imamat","imdb","immo","immobilien","in","inc","industries","infiniti","info","ing","ink","institute","insurance","insure","int","international","intuit","investments","io","ipiranga","iq","ir","irish","is","ismaili","ist","istanbul","it","itau","itv","jaguar","java","jcb","je","jeep","jetzt","jewelry","jio","jll","jm","jmp","jnj","jo","jobs","joburg","jot","joy","jp","jpmorgan","jprs","juegos","juniper","kaufen","kddi","ke","kerryhotels","kerryproperties","kfh","kg","kh","ki","kia","kids","kim","kindle","kitchen","kiwi","km","kn","koeln","komatsu","kosher","kp","kpmg","kpn","kr","krd","kred","kuokgroup","kw","ky","kyoto","kz","la","lacaixa","lamborghini","lamer","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lb","lc","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","li","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","link","live","living","lk","llc","llp","loan","loans","locker","locus","lol","london","lotte","lotto","love","lpl","lplfinancial","lr","ls","lt","ltd","ltda","lu","lundbeck","luxe","luxury","lv","ly","ma","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","mattel","mba","mc","mckinsey","md","me","med","media","meet","melbourne","meme","memorial","men","menu","merckmsd","mg","mh","miami","microsoft","mil","mini","mint","mit","mitsubishi","mk","ml","mlb","mls","mm","mma","mn","mo","mobi","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","mp","mq","mr","ms","msd","mt","mtn","mtr","mu","museum","music","mv","mw","mx","my","mz","na","nab","nagoya","name","navy","nba","nc","ne","nec","net","netbank","netflix","network","neustar","new","news","next","nextdirect","nexus","nf","nfl","ng","ngo","nhk","ni","nico","nike","nikon","ninja","nissan","nissay","nl","no","nokia","norton","now","nowruz","nowtv","np","nr","nra","nrw","ntt","nu","nyc","nz","obi","observer","office","okinawa","olayan","olayangroup","ollo","om","omega","one","ong","onl","online","ooo","open","oracle","orange","org","organic","origins","osaka","otsuka","ott","ovh","pa","page","panasonic","paris","pars","partners","parts","party","pay","pccw","pe","pet","pf","pfizer","pg","ph","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","pk","pl","place","play","playstation","plumbing","plus","pm","pn","pnc","pohl","poker","politie","porn","post","pr","praxi","press","prime","pro","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","ps","pt","pub","pw","pwc","py","qa","qpon","quebec","quest","racing","radio","re","read","realestate","realtor","realty","recipes","red","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","ril","rio","rip","ro","rocks","rodeo","rogers","room","rs","rsvp","ru","rugby","ruhr","run","rw","rwe","ryukyu","sa","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sb","sbi","sbs","sc","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scot","sd","se","search","seat","secure","security","seek","select","sener","services","seven","sew","sex","sexy","sfr","sg","sh","shangrila","sharp","shell","shia","shiksha","shoes","shop","shopping","shouji","show","si","silk","sina","singles","site","sj","sk","ski","skin","sky","skype","sl","sling","sm","smart","smile","sn","sncf","so","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","sr","srl","ss","st","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","su","sucks","supplies","supply","support","surf","surgery","suzuki","sv","swatch","swiss","sx","sy","sydney","systems","sz","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tc","tci","td","tdk","team","tech","technology","tel","temasek","tennis","teva","tf","tg","th","thd","theater","theatre","tiaa","tickets","tienda","tips","tires","tirol","tj","tjmaxx","tjx","tk","tkmaxx","tl","tm","tmall","tn","to","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","tr","trade","trading","training","travel","travelers","travelersinsurance","trust","trv","tt","tube","tui","tunes","tushu","tv","tvs","tw","tz","ua","ubank","ubs","ug","uk","unicom","university","uno","uol","ups","us","uy","uz","va","vacations","vana","vanguard","vc","ve","vegas","ventures","verisign","vermögensberater","vermögensberatung","versicherung","vet","vg","vi","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vn","vodka","volvo","vote","voting","voto","voyage","vu","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","wf","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","ws","wtc","wtf","xbox","xerox","xihuan","xin","xxx","xyz","yachts","yahoo","yamaxun","yandex","ye","yodobashi","yoga","yokohama","you","youtube","yt","yun","za","zappos","zara","zero","zip","zm","zone","zuerich","zw","ελ","ευ","бг","бел","дети","ею","католик","ком","мкд","мон","москва","онлайн","орг","рус","рф","сайт","срб","укр","қаз","հայ","ישראל","קום","ابوظبي","ارامكو","الاردن","البحرين","الجزائر","السعودية","العليان","المغرب","امارات","ایران","بارت","بازار","بيتك","بھارت","تونس","سودان","سورية","شبكة","عراق","عرب","عمان","فلسطين","قطر","كاثوليك","كوم","مصر","مليسيا","موريتانيا","موقع","همراه","پاکستان","ڀارت","कॉम","नेट","भारत","भारतम्","भारोत","संगठन","বাংলা","ভারত","ভাৰত","ਭਾਰਤ","ભારત","ଭାରତ","இந்தியா","இலங்கை","சிங்கப்பூர்","భారత్","ಭಾರತ","ഭാരതം","ලංකා","คอม","ไทย","ລາວ","გე","みんな","アマゾン","クラウド","グーグル","コム","ストア","セール","ファッション","ポイント","世界","中信","中国","中國","中文网","亚马逊","企业","佛山","信息","健康","八卦","公司","公益","台湾","台灣","商城","商店","商标","嘉里","嘉里大酒店","在线","大拿","天主教","娱乐","家電","广东","微博","慈善","我爱你","手机","招聘","政务","政府","新加坡","新闻","时尚","書籍","机构","淡马锡","游戏","澳門","点看","移动","组织机构","网址","网店","网站","网络","联通","谷歌","购物","通販","集团","電訊盈科","飞利浦","食品","餐厅","香格里拉","香港","닷넷","닷컴","삼성","한국"]');function q7(e,n){return e.endsWith(n)?e.length===n.length||e[e.length-n.length-1]===".":!1}function B7(e,n){const s=e.length-n.length-2,r=e.lastIndexOf(".",s);return r===-1?e:e.slice(r+1)}function M7(e,n,s){if(s.validHosts!==null){const u=s.validHosts;for(const f of u)if(q7(n,f))return f}let r=0;if(n.startsWith("."))for(;r<n.length&&n[r]===".";)r+=1;return e.length===n.length-r?null:B7(n,e)}function P7(e,n){return e.slice(0,-n.length-1)}const Zm=/[\t\n\r]/g;let vp=!1;function zy(e){return e>=97&&e<=122||e>=48&&e<=57||e>127||e>=65&&e<=90||e===45||e===95}function Ey(e,n,s){const r=s-n,u=e.charCodeAt(n)|32;if(r===2)return u===119&&(e.charCodeAt(n+1)|32)===115?1:0;if(r===3){const f=e.charCodeAt(n+1)|32,g=e.charCodeAt(n+2)|32;return u===119&&f===115&&g===115||u===102&&f===116&&g===112?1:0}else if(r===4){const f=e.charCodeAt(n+1)|32,g=e.charCodeAt(n+2)|32,b=e.charCodeAt(n+3)|32;return u===104&&f===116&&g===116&&b===112?1:u===102&&f===105&&g===108&&b===101?2:0}else if(r===5)return u===104&&(e.charCodeAt(n+1)|32)===116&&(e.charCodeAt(n+2)|32)===116&&(e.charCodeAt(n+3)|32)===112&&(e.charCodeAt(n+4)|32)===115?1:0;return 0}function Pr(e,n,s=!1){let r=0,u=e.length,f=!1,g=!1;if(vp=!1,!n){if(e.startsWith("data:"))return null;for(;r<e.length&&e.charCodeAt(r)<=32;)r+=1;for(;u>r+1&&e.charCodeAt(u-1)<=32;)u-=1;if(e.charCodeAt(r)===47&&e.charCodeAt(r+1)===47)r+=2;else{const L=e.indexOf(":/",r);if(L!==-1){const V=Ey(e,r,L);if(V===1)for(g=!0,r=L+2;e.charCodeAt(r)===47||e.charCodeAt(r)===92;)r+=1;else if(V===2){g=!0,r=L+1;let te=0;for(;(e.charCodeAt(r)===47||e.charCodeAt(r)===92)&&te<2;)r+=1,te+=1;if(te<2)return null}else{for(let te=r;te<L;te+=1){const X=e.charCodeAt(te)|32;if(!(X>=97&&X<=122||X>=48&&X<=57||X===46||X===45||X===43)){const ae=e.charCodeAt(te);return ae===9||ae===10||ae===13?Pr(e.replace(Zm,""),n,s):null}}if(e.charCodeAt(L+2)===47)r=L+3;else return null}}else if(e.charCodeAt(r)!==91){let V=-1;for(let te=r;te<u;te+=1){const X=e.charCodeAt(te);if(X===9||X===10||X===13)return Pr(e.replace(Zm,""),n,s);if(X===58){V=te;break}if(X===47||X===92||X===63||X===35)break}if(V!==-1){let te=!1;for(let X=V+1;X<u;X+=1){const ae=e.charCodeAt(X);if(ae===47||ae===92||ae===63||ae===35)break;if(ae===64){te=!0;break}}if(!te){let X=!0,ae=V+1;for(;ae<u;ae+=1){const oe=e.charCodeAt(ae);if(oe===47||oe===92||oe===63||oe===35)break;if(oe<48||oe>57){X=!1;break}}if(ae===V+1&&(X=!1),!X){const oe=Ey(e,r,V);if(oe===0){let fe=!1;for(let M=V+1;M<u;M+=1){const J=e.charCodeAt(M);if(J===47||J===92||J===63||J===35)break;if(J===58){fe=!0;break}}if(!fe)return null}else if(g=!0,r=V+1,oe===2){let fe=0;for(;(e.charCodeAt(r)===47||e.charCodeAt(r)===92)&&fe<2;)r+=1,fe+=1;if(fe<2)return null}else for(;e.charCodeAt(r)===47||e.charCodeAt(r)===92;)r+=1}}}}}let x=-1,k=-1,S=-1,A=-1,j=!1,D=s,R=r-1,q=-1;if(s&&r<u){const L=e.charCodeAt(r);(!(zy(L)||L===46||L===95)||L===45)&&(D=!1)}for(let L=r;L<u;L+=1){const V=e.charCodeAt(L);if(V<64)if(V===47||V===35||V===63){u=L;break}else V===58?(A===-1&&(A=L),S=L):V===9||V===10||V===13?j=!0:s&&(V===46?((L-R>64||q===46||q===45)&&(D=!1),R=L):(V<48||V>57)&&(V!==45||q===46)&&(D=!1));else if(g&&V===92){u=L;break}else V===64?(x=L,A=-1):V===93?k=L:V>=65&&V<=90?f=!0:s&&!zy(V)&&(D=!1);s&&(q=V)}if(j)return Pr(e.replace(Zm,""),n,s);if(x!==-1&&x>=r&&x<u&&(r=x+1),e.charCodeAt(r)===91)return k!==-1?e.slice(r+1,k).toLowerCase():null;if(S!==-1&&S>r&&S<u&&A===S&&(u=S),r>=u)return null;s&&D&&x===-1&&S===-1&&k===-1&&e.charCodeAt(u-1)!==46&&u-r<=255&&u-R-1<=63&&q!==45&&(vp=!0)}for(;u>r+1&&e.charCodeAt(u-1)===46;)u-=1;const b=r!==0||u!==e.length?e.slice(r,u):e;return f?b.toLowerCase():b}function I7(e){if(e.length<7||e.length>15)return!1;let n=0;for(let s=0;s<e.length;s+=1){const r=e.charCodeAt(s);if(r===46)n+=1;else if(r<48||r>57)return!1}return n===3&&e.charCodeAt(0)!==46&&e.charCodeAt(e.length-1)!==46}function U7(e){if(e.length<3)return!1;let n=e.startsWith("[")?1:0,s=e.length;if(e[s-1]==="]"&&(s-=1),s-n>39)return!1;let r=!1;for(;n<s;n+=1){const u=e.charCodeAt(n);if(u===58)r=!0;else if(!(u>=48&&u<=57||u>=97&&u<=102||u>=65&&u<=70))return!1}return r}function L7(e){return U7(e)||I7(e)}const V7=["test","localhost","invalid","example","example.com","example.net","example.org","local","onion","alt","home.arpa","ipv4only.arpa","resolver.arpa","service.arpa","6tisch.arpa","eap.arpa"];function $7(e){for(const n of V7)if(e.endsWith(n)&&(e.length===n.length||e.charCodeAt(e.length-n.length-1)===46))return!0;return!1}function Dy(e){return e>=97&&e<=122||e>=48&&e<=57||e>127}function Ty(e){if(e.length>255||e.length===0||!Dy(e.charCodeAt(0))&&e.charCodeAt(0)!==46&&e.charCodeAt(0)!==95)return!1;let n=-1,s=-1;const r=e.length;for(let u=0;u<r;u+=1){const f=e.charCodeAt(u);if(f===46){if(u-n>64||s===46||s===45)return!1;n=u}else if(!(Dy(f)||f===45||f===95)||f===45&&s===46)return!1;s=f}return r-n-1<=63&&s!==45}function yx({allowIcannDomains:e=!0,allowPrivateDomains:n=!1,detectIp:s=!0,detectSpecialUse:r=!1,extractHostname:u=!0,mixedInputs:f=!0,validHosts:g=null,validateHostname:b=!0}){return{allowIcannDomains:e,allowPrivateDomains:n,detectIp:s,detectSpecialUse:r,extractHostname:u,mixedInputs:f,validHosts:g,validateHostname:b}}const H7=yx({});function G7(e){return e===void 0?H7:yx(e)}function K7(e,n){return n.length===e.length?"":e.slice(0,-n.length-1)}function Q7(){return{domain:null,domainWithoutSuffix:null,hostname:null,isIcann:null,isIp:null,isPrivate:null,isSpecialUse:null,publicSuffix:null,subdomain:null}}function bx(e){e.domain=null,e.domainWithoutSuffix=null,e.hostname=null,e.isIcann=null,e.isIp=null,e.isPrivate=null,e.isSpecialUse=null,e.publicSuffix=null,e.subdomain=null}function vx(e,n,s,r,u){const f=G7(r);if(typeof e!="string")return u;let g=!1;return f.extractHostname?f.mixedInputs?(g=Ty(e),u.hostname=Pr(e,g,f.validateHostname)):u.hostname=Pr(e,!1,f.validateHostname):u.hostname=e,f.detectIp&&u.hostname!==null&&(u.isIp=L7(u.hostname),u.isIp)?u:f.validateHostname&&f.extractHostname&&u.hostname!==null&&!(g&&u.hostname===e)&&!vp&&!Ty(u.hostname)?(u.hostname=null,u):(n===0||u.hostname===null||(n===5&&f.detectSpecialUse&&(u.isSpecialUse=$7(u.hostname)),s(u.hostname,f,u),n===2||u.publicSuffix===null)||(u.domain=M7(u.publicSuffix,u.hostname,f),n===3||u.domain===null)||(u.subdomain=K7(u.hostname,u.domain),n===4)||(u.domainWithoutSuffix=P7(u.domain,u.publicSuffix)),u)}function Z7(e,n,s){if(!n.allowPrivateDomains&&e.length>3){const r=e.length-1,u=e.charCodeAt(r),f=e.charCodeAt(r-1),g=e.charCodeAt(r-2),b=e.charCodeAt(r-3);if(u===109&&f===111&&g===99&&b===46)return s.isIcann=!0,s.isPrivate=!1,s.publicSuffix="com",!0;if(u===103&&f===114&&g===111&&b===46)return s.isIcann=!0,s.isPrivate=!1,s.publicSuffix="org",!0;if(u===117&&f===100&&g===101&&b===46)return s.isIcann=!0,s.isPrivate=!1,s.publicSuffix="edu",!0;if(u===118&&f===111&&g===103&&b===46)return s.isIcann=!0,s.isPrivate=!1,s.publicSuffix="gov",!0;if(u===116&&f===101&&g===110&&b===46)return s.isIcann=!0,s.isPrivate=!1,s.publicSuffix="net",!0;if(u===101&&f===100&&g===46)return s.isIcann=!0,s.isPrivate=!1,s.publicSuffix="de",!0}return!1}const ss=new Uint8Array([1,2,1,1,1,1,1,1,1,1,1,1,0,2,2,2,0,2,2,0,2,0,0,1,0,0,2,1,1,1,1,1,1,0,0,0,1,0,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,1,0,0,0,0,0,0,1,1,1,0,2,0,0,0,0,0,0,0,2,0,2,2,0,0,2,2,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,2,1,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,2,2,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,1,0,2,2,0,0,0,2,0,1,1,0,2,0,2,2,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,2,2,0,2,2,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,2,0,2,2,2,2,0,0,0,0,2,0,0,0,0,0,0,2,2,0,0,0,2,2,1,1,1,1,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,2,2,0,0,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,2,2,1,2,1,1,1,2,1,1,1,1,1,0,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0]),Lc=new Uint16Array([0,0,0,10,11,18,106,111,117,124,130,136,145,146,147,148,149,150,151,153,154,155,157,159,226,239,241,242,243,258,265,266,269,270,271,274,276,295,296,298,307,312,313,331,332,335,337,338,340,374,375,377,380,381,385,387,391,394,426,429,442,443,451,452,454,464,478,479,480,489,490,527,532,548,568,574,615,616,643,670,671,819,825,828,829,830,835,840,849,871,872,873,874,875,876,877,895,897,898,901,903,904,906,908,923,938,943,944,946,947,948,949,950,952,955,960,961,962,964,965,968,971,972,973,986,988,1e3,1011,1019,1021,1061,1064,1068,1069,1071,1074,1085,1087,1097,1099,1105,1107,1108,1110,1113,1114,1115,1167,1169,1171,1191,1192,1193,1194,1196,1207,1238,1249,1261,1270,1277,1282,1295,1306,1319,1320,1331,1365,1366,1367,1382,1397,1469,1470,1472,1473,1507,1508,1509,1512,1516,1518,1547,1548,1556,1557,1558,1560,1562,1563,1565,1566,1567,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1594,1595,1596,1598,2053,2056,2057,2059,2066,2073,2083,2087,2098,2099,2100,2112,2113,2115,2117,2118,2125,2126,2128,2129,2131,2132,2133,2134,2135,2209,2211,2232,2233,2234,2236,2262,2263,2314,2315,2317,2324,2330,2340,2350,2403,2404,2405,2415,2429,2430,2433,2440,2441,2449,2450,2451,2452,2453,2464,2465,2466,2468,2469,2470,2471,2473,2483,2495,2501,2533,2537,2539,2540,2542,2543,2554,2555,2557,2565,2572,2578,2583,2584,2590,2593,2599,2606,2607,2614,2622,2623,2624,2662,2668,2683,2684,2689,2707,2738,2756,2758,2761,2769,2771,2778,2830,2854,2855,2856,2857,2858,2859,2860,2861,2868,2869,2870,2871,2872,2873,2875,2876,2880,2964,2977,2978,3414,3418,3432,3484,3512,3534,3592,3614,3629,3692,3743,3781,3817,3842,3984,4030,4081,4100,4134,4149,4169,4199,4230,4253,4284,4314,4346,4373,4448,4470,4508,4518,4552,4571,4597,4639,4689,4715,4784,4785,4787,4810,4833,4869,4900,4917,4974,4987,5011,5040,5042,5076,5092,5120,5425,5434,5443,5450,5467,5471,5477,5516,5518,5525,5532,5541,5548,5549,5560,5563,5578,5579,5588,5589,5598,5607,5613,5615,5616,5617,5653,5654,5656,5664,5671,5684,5688,5690,5691,5697,5704,5718,5728,5733,5741,5749,5755,5756,5760,5762,5763,5775,5776,5777,5778,5780,5781,5784,5786,5789,5793,5794,5800,5801,5802,5804,5806,5808,5809,5810,5813,5815,5818,5819,5821,6019,6026,6027,6037,6042,6059,6073,6082,6083,6084,6088,6089,6091,6093,6099,6100,6103,6104,6106,6107,6108,7008,7009,7013,7031,7040,7043,7050,7051,7053,7054,7055,7057,7109,7110,7113,7114,7231,7232,7243,7254,7261,7264,7273,7274,7275,7290,7345,7536,7538,7539,7541,7546,7559,7574,7581,7590,7593,7596,7603,7611,7615,7616,7617,7631,7635,7644,7645,7646,7650,7685,7686,7703,7710,7718,7719,7724,7732,7776,7777,7783,7786,7797,7802,7803,7806,7839,7840,7846,7853,7854,7863,7872,7887,7891,7943,7944,7949,7951,7954,7956,7957,7958,7967,7981,7989,8003,8015,8016,8018,8020,8042,8053,8059,8060,8072,8084,8171,8183,8185,8194,8197,8203,8228,8231,8232,8233,8235,8238,8241,8252,8254,8256,8284,8358,8365,8369,8370,8379,8401,8402,8407,8408,8487,8489,8491,8500,8504,8510,8516,8522,8532,8537,8538,8556,8567,8572,8577,8587,8593,8597,8603,8609,10217,10218,10219,10226,10228]),Vc=new Uint8Array([3,3,3,3,3,3,3,3,5,8,8,2,2,3,3,3,3,3,8,5,5,5,5,5,3,3,5,5,9,12,19,8,19,8,11,9,9,8,7,7,6,8,9,16,10,7,7,11,8,6,6,9,7,11,7,14,4,4,4,4,4,4,10,7,6,6,6,6,10,10,6,10,10,22,11,9,10,10,10,9,10,8,7,7,7,8,21,13,11,11,9,10,9,13,10,8,8,9,12,9,7,10,7,7,13,7,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,8,6,3,3,3,3,3,3,2,5,3,3,3,7,2,2,2,2,2,2,3,3,3,1,1,7,8,5,2,2,7,2,2,1,4,1,11,9,9,5,5,8,5,5,5,5,5,5,5,3,3,3,3,3,5,11,9,9,13,7,14,7,6,6,6,7,6,6,6,6,6,10,7,11,9,4,4,4,4,4,4,6,6,6,6,6,8,7,10,9,9,9,8,9,8,10,6,9,9,8,10,10,7,8,1,9,10,12,12,12,10,9,9,10,10,9,9,1,1,5,3,3,3,3,3,3,3,3,3,3,3,3,6,6,6,4,3,3,3,7,4,4,4,3,3,6,7,3,4,1,2,2,2,6,1,2,2,2,2,2,12,5,3,8,9,13,4,4,13,9,9,11,7,3,12,9,2,2,2,3,3,3,3,3,8,2,2,3,3,3,3,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,4,4,3,7,10,15,7,15,15,20,15,9,10,10,12,14,14,14,12,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,13,13,9,9,9,9,9,9,7,8,6,8,8,6,8,13,8,8,6,13,8,11,13,8,6,13,8,6,9,10,10,12,14,14,14,12,12,12,12,14,14,10,10,10,10,9,9,9,10,14,14,11,13,13,9,9,9,9,9,9,2,6,9,2,2,3,3,3,3,3,3,3,3,3,4,4,4,2,3,3,3,3,3,3,7,7,2,3,2,2,5,3,3,3,3,3,3,4,2,2,2,2,2,2,3,3,3,3,3,3,3,4,5,7,2,2,12,8,10,8,10,7,18,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,2,3,3,3,5,5,3,8,8,6,8,6,6,4,6,7,7,7,10,11,2,5,5,3,3,3,3,3,3,5,5,6,11,10,7,7,7,4,4,4,2,3,3,3,3,3,2,7,5,5,3,3,3,3,3,3,3,3,7,7,7,11,7,6,9,6,6,8,10,8,6,8,13,4,4,4,4,4,10,8,11,8,8,8,10,10,7,10,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,7,10,13,7,8,7,11,8,8,6,9,8,8,6,6,6,8,8,6,6,6,6,6,9,7,6,4,4,4,4,4,4,4,6,6,6,9,7,8,10,8,8,2,3,3,3,3,3,2,8,9,9,2,2,2,3,3,3,2,3,3,3,9,2,2,3,3,3,3,3,3,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,12,5,5,3,5,4,2,3,2,4,3,9,2,2,2,2,2,5,5,3,8,8,13,6,10,9,4,7,9,11,2,3,7,3,3,4,1,3,4,2,9,3,3,12,5,3,7,10,10,7,4,4,6,14,7,9,7,13,2,2,2,2,2,2,3,3,3,3,3,8,15,4,4,2,3,3,3,7,4,9,9,2,3,3,3,5,3,2,2,7,2,7,6,6,7,2,4,2,2,2,2,2,2,8,8,8,9,5,2,3,3,3,3,3,3,10,7,4,4,4,4,3,4,2,3,3,3,3,3,10,7,4,4,4,4,2,3,3,3,3,10,7,4,4,4,4,3,9,6,6,6,9,13,9,2,2,2,8,7,9,5,3,3,3,5,5,12,9,10,7,8,7,6,8,6,11,12,7,9,10,4,4,7,8,11,6,7,9,8,7,10,8,9,15,7,8,5,4,7,2,3,3,3,2,14,10,2,14,10,2,14,3,9,13,13,10,14,16,17,11,2,14,2,14,3,9,13,10,14,16,17,11,14,10,14,2,7,3,10,7,14,10,2,14,10,9,9,17,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,10,10,10,12,9,4,10,11,8,8,8,7,9,5,3,3,3,3,3,3,3,3,5,8,4,4,4,4,4,4,6,16,3,3,14,3,14,2,14,9,13,10,10,14,16,17,11,6,9,10,10,12,14,14,14,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,9,9,9,9,9,9,2,14,9,13,10,10,14,16,17,11,6,2,14,9,17,13,10,10,14,16,17,11,6,2,14,9,13,10,14,16,17,11,2,14,9,13,10,16,11,2,14,10,19,7,2,14,9,13,10,19,10,7,14,16,17,11,6,2,14,9,13,10,19,7,14,16,17,11,2,14,9,13,17,13,10,10,14,16,17,11,6,3,2,14,9,13,10,10,14,16,17,11,6,9,10,12,14,14,14,12,12,12,12,12,14,14,14,10,10,10,14,9,9,9,9,14,14,14,13,13,14,9,9,9,9,9,9,4,11,2,14,9,13,17,13,10,19,10,7,14,16,17,11,6,2,14,9,13,17,13,10,19,10,7,14,16,17,11,6,2,9,10,10,7,17,3,3,12,12,16,15,15,12,14,14,14,20,20,13,12,12,12,12,12,12,20,25,14,14,12,12,10,10,10,10,9,9,9,25,4,9,17,10,7,14,16,21,13,13,14,20,14,13,17,24,9,12,13,25,13,21,20,17,9,9,9,9,9,9,12,17,4,4,9,9,9,10,10,12,14,14,14,12,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,13,13,9,9,9,9,9,9,1,8,7,11,11,1,3,3,3,4,8,9,10,14,14,12,12,12,12,14,14,10,10,10,10,14,9,9,9,10,14,14,14,13,13,9,9,9,9,9,7,4,4,4,4,4,4,4,4,4,4,9,12,6,14,4,12,7,2,2,1,2,7,6,4,4,4,6,8,8,7,4,5,6,3,3,3,3,4,16,8,3,5,4,3,3,3,5,2,2,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,11,12,7,7,13,9,10,12,8,9,7,8,5,12,10,13,14,5,5,5,13,5,5,5,3,3,3,5,16,5,5,5,5,5,7,12,14,8,12,8,10,12,9,11,7,9,7,10,7,13,9,7,12,8,17,7,7,16,10,13,13,8,10,10,14,17,7,16,16,15,8,10,10,12,17,7,17,14,7,10,17,8,7,7,7,8,15,15,7,14,10,10,10,11,11,7,7,13,8,10,7,16,7,8,7,14,17,12,10,11,21,8,9,7,13,9,8,13,6,12,7,6,13,10,10,10,8,18,9,17,13,10,12,6,13,6,11,8,13,10,13,18,13,11,13,8,16,7,10,8,16,12,10,8,8,6,14,11,8,15,8,8,7,7,12,7,8,9,14,15,8,9,10,9,15,7,8,8,12,13,9,10,15,15,13,7,10,10,20,7,6,9,6,6,14,11,14,11,12,9,10,16,16,12,7,11,28,8,11,10,7,21,8,7,9,4,4,4,17,7,8,6,9,6,6,13,6,6,6,6,18,20,14,8,11,12,9,10,13,15,19,8,9,12,7,10,16,12,9,9,9,14,12,11,9,12,11,18,9,9,9,10,7,7,16,8,9,7,13,12,10,18,7,8,11,7,7,8,8,13,7,7,7,11,15,13,11,7,8,15,11,7,8,18,14,13,18,15,10,12,12,9,7,11,11,8,7,10,8,14,12,10,18,7,10,9,7,8,13,10,14,9,10,8,8,23,7,7,11,12,12,17,7,7,11,11,17,16,16,7,8,11,14,14,8,10,7,7,16,16,13,9,11,9,15,15,11,11,7,7,14,7,9,7,7,16,10,13,10,11,14,7,11,10,11,7,11,10,11,15,11,15,10,12,17,10,14,13,11,11,12,13,10,7,13,10,16,12,21,9,10,10,7,11,14,17,7,7,8,11,12,8,15,14,14,8,17,12,10,10,7,9,11,7,10,7,11,18,7,11,7,12,11,8,8,14,12,7,8,15,3,7,7,5,2,9,2,2,2,2,2,2,2,3,3,3,3,3,3,3,2,5,3,3,3,3,3,3,4,4,3,3,3,3,3,3,5,11,6,4,7,10,7,7,11,1,10,2,2,3,3,3,3,3,3,3,3,5,7,3,5,6,3,3,5,2,2,5,3,4,13,11,3,3,6,3,5,14,2,2,3,8,2,2,12,5,18,5,3,3,3,16,5,5,5,10,7,13,12,13,9,12,14,19,9,9,21,9,9,10,6,9,6,15,10,6,12,8,6,10,15,4,4,6,6,9,9,12,16,14,23,7,7,7,14,9,7,7,11,14,10,7,10,10,10,12,6,11,10,13,11,15,11,7,12,10,3,7,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4,3,7,2,5,5,3,3,5,5,5,5,7,6,6,6,4,4,4,4,4,4,6,6,6,6,6,7,10,2,2,2,5,5,5,5,3,3,3,3,3,5,5,10,9,11,8,7,12,8,9,7,6,13,11,6,13,7,9,9,4,4,4,4,4,4,6,10,7,8,13,8,8,9,14,8,10,7,7,7,9,6,9,7,2,12,5,3,3,13,4,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,4,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,4,4,4,4,4,4,4,4,4,4,4,4,9,3,3,3,3,3,3,3,3,3,3,4,2,2,2,5,3,3,3,3,3,3,3,3,4,4,1,7,6,4,12,3,3,3,3,3,8,7,3,3,3,3,3,3,4,4,11,14,2,8,3,5,5,8,10,8,6,4,7,17,7,4,5,2,6,3,5,2,4,4,2,12,5,5,3,15,13,10,8,11,2,2,3,3,3,3,3,3,3,3,4,4,5,3,3,3,3,4,18,2,12,5,3,3,3,3,3,5,16,8,8,9,6,6,4,4,4,4,31,6,6,10,11,21,10,9,7,10,7,7,2,4,4,4,4,6,5,3,3,4,3,3,3,3,3,3,3,3,3,6,6,6,2,2,2,5,3,3,3,7,7,4,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,8,2,3,3,3,3,3,5,9,11,3,3,3,3,4,4,3,3,3,3,3,5,10,9,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,11,10,10,10,10,10,11,10,11,10,11,10,9,9,11,3,3,3,3,3,3,5,3,7,8,8,7,6,6,11,4,4,4,7,8,9,9,2,3,7,4,4,2,5,5,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,2,2,5,5,5,5,5,3,3,5,5,5,7,7,6,6,6,4,4,4,4,4,4,4,4,4,4,6,6,8,8,1,2,2,2,2,2,2,3,3,3,3,3,3,3,4,4,6,9,12,3,7,10,7,2,2,3,3,3,3,3,4,3,3,2,2,2,2,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,8,8,6,6,8,6,7,4,4,4,4,4,4,6,7,5,5,20,19,8,10,9,7,10,6,8,11,6,6,6,6,13,12,8,6,7,14,11,9,2,5,3,3,6,2,3,2,2,2,2,2,2,2,5,4,3,7,6,4,7,4,3,6,4,7,2,7,7,7,5,5,5,5,3,3,3,3,3,3,3,3,3,3,5,9,10,10,8,11,7,8,20,7,8,9,8,12,6,6,6,8,9,8,12,6,6,8,13,10,12,6,6,7,7,8,9,6,4,4,4,4,4,4,4,10,6,6,6,7,14,11,10,7,8,10,8,11,14,11,11,9,7,9,8,11,9,17,10,9,2,2,2,9,3,3,3,3,15,14,9,5,5,2,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,15,12,22,19,17,18,18,19,21,7,16,16,5,5,5,5,5,5,5,5,5,5,5,7,5,5,5,5,5,5,5,5,5,5,5,9,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,7,16,11,11,7,7,7,7,17,7,8,12,15,9,19,7,19,8,16,21,11,12,19,14,22,7,7,7,7,7,7,7,7,7,7,7,16,16,19,24,12,7,14,7,12,7,8,10,10,13,7,12,12,7,7,10,18,15,12,16,7,14,12,17,10,16,17,12,17,25,7,7,7,13,6,9,6,9,18,6,6,11,20,10,6,6,6,6,6,6,6,17,6,6,6,15,6,6,6,6,6,8,14,11,12,15,13,19,17,21,7,18,8,13,13,8,12,8,6,6,13,6,15,15,16,6,6,16,6,6,6,14,6,18,6,6,6,17,18,9,13,15,8,19,8,15,15,18,14,16,4,4,4,4,4,4,4,4,4,4,4,4,6,11,10,11,6,21,23,12,17,12,11,14,13,22,15,15,11,12,14,12,7,12,8,14,12,18,10,8,16,19,17,12,14,15,8,9,19,17,12,13,13,15,18,13,23,24,23,21,17,24,8,21,8,14,14,16,14,8,8,15,20,8,19,21,9,8,13,12,13,15,11,8,11,9,9,8,11,8,21,14,21,15,15,13,7,19,7,7,7,7,7,7,16,12,17,18,7,7,11,11,7,9,9,2,2,3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,4,5,5,5,5,5,5,5,5,3,3,10,10,7,9,7,7,7,6,8,6,6,6,6,6,6,6,7,6,8,6,6,9,7,7,7,4,4,4,4,4,4,4,4,8,9,8,7,8,7,8,10,7,5,5,5,5,5,5,3,9,7,7,8,6,6,6,6,6,6,6,6,9,6,6,9,11,13,7,8,9,9,5,5,5,7,8,6,6,6,6,6,6,6,7,8,9,7,10,9,10,7,8,5,5,5,5,5,5,7,7,9,8,7,7,6,6,6,6,6,6,10,6,6,6,6,6,6,6,6,6,6,6,9,10,4,4,4,4,8,7,7,10,10,9,8,8,15,9,8,8,8,8,8,9,10,9,10,7,8,13,5,5,5,5,5,3,3,7,7,8,6,6,6,4,4,11,9,7,8,9,10,7,5,5,5,5,5,3,3,7,6,6,13,7,9,8,7,5,5,5,5,5,5,5,5,3,3,3,3,7,8,7,8,13,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,8,6,6,6,6,7,6,7,6,6,9,7,4,4,4,4,4,4,4,7,8,7,8,9,8,8,8,7,10,7,8,5,5,5,5,5,5,5,5,3,7,7,7,7,9,7,10,9,6,6,6,6,6,8,8,6,6,6,7,6,6,6,9,9,4,4,13,7,10,9,9,12,7,8,8,10,8,8,8,8,8,8,5,5,5,5,3,7,7,11,7,9,8,8,6,6,10,6,8,8,8,6,7,6,6,12,4,4,4,4,4,4,4,4,4,9,8,8,16,8,9,8,7,5,5,5,5,5,3,3,7,7,7,10,15,8,9,8,9,9,6,6,6,6,6,6,7,4,8,7,8,8,7,8,11,8,5,5,5,5,5,3,7,7,6,11,16,7,6,4,4,4,4,9,9,8,8,8,13,12,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,11,7,8,8,9,13,7,7,7,9,8,8,9,12,7,12,7,12,8,7,10,12,9,9,6,6,8,8,6,6,6,6,6,6,6,9,8,9,11,8,6,6,6,6,6,12,7,6,6,6,9,7,7,6,6,6,6,6,11,9,6,6,6,6,6,7,9,4,4,4,4,4,4,4,4,9,9,9,9,7,7,7,7,7,11,7,7,8,8,8,8,8,8,9,8,9,9,7,7,11,11,7,12,8,8,8,8,8,7,8,8,8,8,8,13,12,8,8,8,8,7,7,7,9,5,5,5,5,5,5,5,3,3,7,7,11,7,8,8,8,6,6,6,6,6,6,6,6,6,6,6,10,11,6,7,9,4,4,4,4,4,4,9,9,8,9,8,8,8,7,7,5,5,5,5,5,5,5,5,5,5,3,3,11,7,7,7,9,6,6,11,8,10,6,6,6,12,8,8,7,6,6,8,7,4,4,4,4,4,4,4,4,9,10,9,9,8,10,9,11,8,5,5,5,7,6,6,8,7,4,4,4,4,8,7,7,8,7,8,8,5,5,5,5,7,7,8,8,8,6,6,6,6,6,10,8,9,13,6,7,6,6,8,7,8,4,4,4,4,11,8,8,8,10,5,5,8,7,8,13,8,7,6,8,6,9,7,8,7,5,5,5,5,5,5,3,3,7,8,9,6,4,8,10,10,8,12,9,13,2,7,5,5,5,5,5,7,7,10,6,6,6,6,6,6,6,8,4,4,9,8,8,8,14,8,8,8,9,8,5,5,5,5,5,3,3,9,6,6,6,6,10,12,6,6,6,6,6,6,6,4,4,4,4,11,8,7,8,8,8,5,5,3,3,3,3,7,7,6,8,6,8,11,7,6,6,6,7,4,8,11,9,10,5,5,5,3,3,3,7,7,8,9,8,15,9,6,6,6,6,6,6,11,11,4,4,4,4,4,7,9,9,10,8,7,5,5,5,5,5,5,3,3,8,6,6,6,6,6,6,6,6,6,9,7,4,4,4,4,4,9,9,8,8,10,13,5,5,5,3,17,7,7,7,7,7,8,6,8,13,6,6,6,6,6,6,6,6,4,4,4,9,10,8,8,8,5,5,5,5,3,7,7,7,8,8,6,6,6,8,8,8,9,10,8,4,8,10,9,8,8,8,9,13,10,5,5,5,5,5,5,5,5,5,5,3,3,7,8,9,9,7,7,7,10,9,9,8,9,8,8,8,6,6,6,6,6,6,6,6,6,6,6,6,6,8,12,6,6,6,6,6,6,6,6,6,12,4,4,4,4,4,4,4,4,4,4,4,11,8,8,9,9,10,8,9,7,7,5,5,5,5,5,5,3,7,8,7,6,6,8,6,6,10,4,7,8,9,12,8,7,7,5,5,5,5,5,5,3,3,7,14,7,9,8,8,6,6,8,12,12,6,6,7,7,10,4,4,4,4,4,9,9,14,9,13,8,7,5,5,5,6,6,6,7,4,8,7,5,5,5,5,5,5,5,5,3,3,7,7,7,8,6,6,6,6,6,6,12,6,6,6,6,4,4,9,9,8,8,11,7,7,7,5,5,5,3,9,8,6,6,7,4,4,4,4,4,4,8,8,11,5,5,5,7,7,7,9,6,6,6,6,6,6,9,8,4,4,4,4,7,12,9,8,8,8,7,10,10,5,5,5,5,5,5,5,3,11,14,8,7,8,8,6,6,6,6,6,8,7,6,6,6,7,6,8,9,4,4,4,7,8,9,7,9,7,7,9,8,5,5,5,5,5,5,5,5,5,11,3,9,7,7,12,14,8,6,6,12,11,8,6,6,6,6,6,6,6,6,6,15,7,4,4,4,16,9,9,9,8,9,9,9,9,9,8,8,8,13,11,8,5,5,5,5,3,7,6,6,8,8,8,6,6,7,10,7,4,4,4,4,9,7,8,7,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,7,7,7,9,6,6,6,6,6,8,8,7,7,9,6,6,6,7,6,6,6,6,6,15,4,4,4,4,4,8,8,7,8,12,9,8,8,8,8,8,9,8,8,10,8,8,8,8,16,9,10,2,5,5,5,5,5,5,5,9,7,6,8,9,4,4,4,4,4,7,8,8,8,9,8,11,10,5,5,5,5,3,7,8,6,6,6,6,6,8,6,6,6,6,4,12,10,12,7,7,7,7,7,7,7,5,5,5,5,3,3,7,7,10,8,9,7,6,10,7,6,6,4,4,8,9,7,9,9,9,9,8,8,8,8,10,5,5,5,5,5,5,8,7,6,6,6,10,6,7,10,7,4,4,4,4,4,4,4,12,9,10,7,7,10,8,10,5,12,9,6,6,6,6,6,7,6,4,4,4,10,9,9,8,7,7,5,5,5,5,5,5,3,3,13,7,7,9,7,7,7,8,9,9,7,8,6,6,6,6,6,6,6,6,6,6,6,6,6,7,13,9,15,15,4,4,4,4,4,10,10,9,8,9,8,8,9,7,8,7,8,5,5,7,6,6,6,4,4,4,7,8,11,8,5,5,5,5,5,5,5,7,6,6,6,6,6,6,9,11,10,7,4,4,4,9,8,8,5,5,5,5,5,9,9,6,6,6,6,6,6,6,9,9,4,4,4,4,8,8,8,9,9,8,8,8,13,2,4,2,7,5,5,5,5,5,5,9,9,6,6,6,6,10,8,8,8,6,6,6,4,4,9,8,10,8,9,8,8,8,9,8,8,5,3,3,3,11,6,6,6,7,6,6,6,4,4,9,8,5,5,5,5,5,3,11,8,6,6,6,6,6,9,7,4,4,14,10,9,8,12,8,8,8,11,15,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,11,11,11,10,10,7,7,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,5,5,5,3,3,3,7,11,7,7,11,11,7,8,9,10,7,7,9,9,9,9,7,7,10,8,13,8,8,8,8,11,10,6,6,8,10,11,14,14,6,6,6,6,6,6,9,11,7,7,6,8,12,11,11,6,6,10,6,6,6,6,6,10,7,7,6,6,11,6,6,6,11,8,9,7,6,10,11,9,10,11,7,11,8,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,6,6,8,9,10,9,6,6,6,10,6,6,6,6,11,10,11,10,9,8,7,7,7,7,11,14,8,10,9,9,8,8,7,11,8,8,8,11,11,10,10,9,10,8,11,10,8,11,9,12,8,10,8,11,8,9,9,11,11,10,11,13,8,7,8,8,9,7,8,8,8,8,7,8,2,2,2,2,2,2,2,4,4,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,4,2,3,3,3,3,3,3,3,3,8,6,4,4,4,11,7,11,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,5,3,3,3,3,8,7,7,8,8,4,8,7,7,7,9,7,8,9,8,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,3,3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,4,5,5,3,8,8,6,9,4,4,10,7,3,3,3,2,5,3,3,3,3,3,3,3,3,3,3,3,3,4,3,2,2,2,3,3,3,3,3,4,10,2,3,3,3,3,3,3,3,4,2,3,3,3,3,3,3,3,3,2,2,3,3,3,5,2,4,2,6,2,2,9,5,5,3,3,3,3,3,3,3,5,5,5,9,8,7,6,6,11,4,4,4,4,4,4,4,4,6,6,7,7,11,8,8,6,5,11,2,3,3,3,3,3,3,3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,3,6,4,4,4,4,3,3,3,3,5,7,2,3,3,3,3,3,8,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,6,4,4,4,4,2,2,3,3,3,3,3,3,3,4,3,3,3,3,3,3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,3,2,3,3,3,3,3,6,3,3,8,10,3,4,4,1,1,1,1,1,1,1,8,9,10,7,7,1,1,3,8,7,7,8,8,8,1,6,1,1,6,3,3,4,7,3,5,5,4,4,4,4,4,2,7,7,8,12,3,4,5,1,3,4,4,10,4,3,3,3,8,7,7,2,2,2,2,2,2,2,2,2,12,9,20,7,5,5,5,9,13,5,5,5,5,5,3,3,3,16,5,5,5,13,7,8,8,11,8,7,9,7,11,12,9,9,8,8,11,10,14,7,12,10,11,13,7,9,11,17,17,14,13,7,8,7,10,10,7,16,13,7,8,17,12,9,8,6,7,10,6,6,12,6,8,10,8,8,8,6,8,6,14,6,6,6,13,6,10,6,6,7,14,8,6,6,10,11,10,9,9,7,7,6,6,6,9,9,7,9,10,9,13,12,4,4,4,4,4,4,4,4,4,6,6,6,8,8,6,8,9,10,9,7,10,10,8,7,8,7,10,12,9,8,15,8,7,8,8,7,7,15,13,7,10,9,14,18,16,7,24,7,8,10,11,16,8,14,7,9,9,9,11,13,19,14,15,14,11,7,13,9,10,7,13,9,10,11,12,8,9,2,3,5,8,7,4,4,10,5,3,3,3,3,3,5,4,4,4,2,2,2,2,2,1,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,2,2,2,3,3,3,3,3,3,3,3,3,3,4,2,12,5,3,8,10,15,6,7,2,3,2,5,5,12,2,5,5,5,5,2,2,5,5,12,9,5,2,2,9,5,5,12,12,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,12,5,8,8,9,5,5,5,8,19,7,16,15,14,9,9,9,9,7,11,11,11,7,14,10,10,5,5,5,5,5,5,5,5,5,15,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,9,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,14,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,15,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,9,12,9,9,12,12,12,15,7,11,7,14,11,18,13,8,18,15,18,12,14,12,8,8,8,8,9,9,9,12,7,10,10,8,8,12,12,12,7,12,12,9,7,7,7,7,7,8,15,12,9,10,10,7,10,10,13,11,10,9,22,11,9,8,8,8,8,8,13,18,13,9,15,19,9,7,7,10,7,7,7,11,8,13,17,7,7,10,10,10,7,20,16,7,7,7,7,7,7,11,21,12,12,13,11,14,16,8,8,13,11,7,7,13,7,7,14,15,15,6,6,6,6,6,6,6,6,6,6,13,10,18,6,6,6,6,6,6,6,6,6,11,8,8,12,12,11,11,8,12,9,9,9,13,13,9,9,9,9,9,9,6,10,12,6,6,6,6,17,11,7,7,7,7,14,14,12,6,7,7,6,6,15,10,13,10,6,8,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,13,9,9,15,13,6,12,12,6,19,11,10,7,7,16,8,19,17,9,9,9,9,9,6,6,6,10,8,16,8,6,6,9,6,6,6,6,6,6,6,6,8,8,8,6,7,6,6,6,6,6,6,6,6,6,6,6,14,6,6,6,6,20,6,9,6,14,9,9,9,6,9,8,8,12,9,8,8,8,8,7,8,12,7,8,8,8,6,8,6,6,6,6,6,6,6,9,8,8,6,6,13,9,12,13,12,14,13,12,11,11,6,8,8,8,6,13,12,11,11,12,6,11,12,11,13,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,6,6,6,6,6,6,6,13,6,6,6,6,6,6,6,6,6,6,6,6,6,8,8,8,8,6,18,6,12,13,13,13,9,10,15,9,12,6,6,6,6,6,6,6,6,9,15,10,9,10,13,9,19,8,18,17,10,10,8,8,6,6,6,6,6,6,10,14,8,16,16,9,8,15,8,8,10,12,14,7,7,8,8,7,7,7,7,8,13,13,11,9,9,9,12,10,17,8,11,9,7,7,14,8,14,14,7,7,7,7,7,7,14,7,7,7,7,7,10,10,8,14,7,7,7,7,8,8,8,8,8,17,9,7,15,7,8,12,7,9,14,7,7,7,9,13,8,14,7,16,18,13,15,14,12,13,10,15,9,7,7,7,10,13,15,15,9,9,9,9,19,11,7,11,11,13,8,8,8,8,7,12,19,17,9,9,13,7,7,7,9,7,7,7,12,13,15,10,8,8,14,15,12,13,13,8,12,14,7,11,7,14,15,13,12,8,8,8,8,11,13,15,15,8,13,12,8,8,8,13,10,16,14,11,8,8,12,12,9,15,15,12,12,13,8,8,9,12,13,9,8,8,8,8,8,8,8,8,8,8,8,11,12,11,7,14,7,13,13,13,12,18,16,7,12,11,10,10,15,9,9,9,21,7,7,7,11,16,8,8,11,11,7,7,7,7,7,19,7,7,7,7,7,7,7,7,7,12,8,9,12,14,11,9,9,9,22,12,3,8,8,15,4,2,2,5,5,3,3,3,3,3,3,6,6,4,4,4,12,7,10,2,3,3,3,3,3,3,3,6,7,3,7,5,14,4,4,7,8,10,4,1,3,3,6,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,4,2,2,5,3,4,2,2,2,2,2,2,11,5,5,5,11,5,5,3,5,5,5,5,11,14,13,9,11,9,12,8,11,11,8,11,16,9,9,7,10,9,12,8,15,6,7,6,6,13,10,8,11,8,6,6,6,12,16,6,11,7,8,9,18,6,6,9,4,4,6,13,6,6,6,6,8,8,9,16,7,7,14,7,8,8,8,7,7,7,7,7,7,15,13,7,10,7,7,10,12,16,15,7,9,9,14,11,11,10,9,10,8,12,7,8,7,7,10,12,7,12,8,7,2,3,3,3,3,3,3,3,3,3,3,5,3,3,5,5,5,10,4,8,7,10,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,7,4,5,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,8,2,2,2,8,12,7,7,5,5,5,5,5,5,5,5,5,5,5,5,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,7,11,9,8,8,8,7,8,9,7,7,9,7,7,7,10,7,7,10,9,10,6,6,6,6,6,6,15,7,8,9,9,8,6,6,10,9,6,8,13,9,7,6,6,6,6,6,6,12,6,6,7,6,7,6,6,6,10,10,7,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,14,6,6,7,7,9,6,6,6,6,9,9,8,9,10,9,8,9,12,7,7,7,8,7,10,12,11,9,10,7,7,7,9,10,10,8,12,9,7,7,9,8,8,8,10,7,7,8,9,9,7,7,7,8,2,4,6,3,4,2,3,3,3,3,2,3,3,3,3,3,3,3,3,4,4,4,4,5,5,3,3,3,3,3,3,3,3,5,8,6,4,7,3,3,3,3,3,3,3,12,3,3,3,3,3,3,4,4,2,3,5,3,4,7,3,3,3,3,3,3,4,3,3,3,3,3,3,3,4,3,3,6,4,3,4,2,2,2,5,3,3,3,3,3,5,4,4,4,4,7,6,8,9,2,2,2,2,3,3,3,5,7,2,3,3,8,7,7,2,2,8,5,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,8,8,7,7,6,10,6,9,7,11,4,6,8,8,7,8,4,5,5,5,3,3,11,8,9,6,6,8,7,4,4,7,8,7,2,2,3,3,3,3,4,3,3,3,3,3,3,3,3,7,2,2,5,3,3,2,3,3,3,3,3,3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,12,5,5,3,3,3,5,10,12,6,15,4,6,6,7,14,9,3,3,3,3,3,8,2,2,3,5,3,3,3,3,3,3,8,8,8,7,5,8,4,6,11,2,2,6,7,2,9,8,5,5,3,3,5,5,7,7,6,6,10,6,6,8,9,7,4,4,4,4,7,6,6,7,7,10,9,8,11,8,3,3,3,3,3,4,4,2,3,3,3,3,3,7,6,2,5,6,7,6,4,8,9,11,2,2,3,3,3,3,3,3,3,2,2,5,3,3,3,3,3,9,9,6,4,8,7,7,5,9,8,6,8,7,8,5,5,5,5,5,3,3,3,16,8,7,7,7,8,7,7,7,7,9,6,9,6,10,7,7,7,6,10,8,9,11,11,8,4,4,10,8,8,6,9,6,11,8,8,8,15,7,8,9,5,3,3,3,3,3,5,11,2,2,3,8,9,10,3,2,2,2,2,2,2,3,6,4,2,2,3,3,3,3,3,3,3,3,3,3,4,4,2,3,3,3,3,3,3,3,11,5,3,3,3,3,3,3,3,3,6,7,4,4,2,3,3,3,3,3,3,3,3,12,7,4,12,4,6,5,4,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,3,3,3,3,3,3,3,3,4,4,11,10,6,4,6,10,8,3,3,3,3,3,3,3,3,5,4,4,4,2,2,2,2,2,2,2,2,5,3,4,4,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,10,5,5,5,5,5,5,3,3,3,3,3,3,3,3,7,8,8,7,13,12,10,10,8,8,7,7,9,12,11,6,6,8,8,9,7,7,7,10,15,10,4,4,4,4,4,11,8,8,9,7,9,14,14,12,2,2,2,2,2,2,2,3,3,3,3,3,2,2,12,5,5,5,8,11,10,7,9,3,8,7,3,15,13,11,4,4,2,2,2,19,7,5,5,3,3,3,3,3,3,3,5,22,18,6,14,17,4,4,19,16,18,2,3,3,2,3,2,3,3,6,4,2,3,3,2,5,3,3,3,3,3,3,3,9,9,2,3,2,2,2,3,3,3,5,7,14,7,7,12,9,13,6,11,6,10,9,7,7,8,12,12,8,8,8,10,7,7,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,5,8,10,7,8,11,8,12,9,4,7,7,9,13,2,3,3,3,3,3,3,2,3,3,3,1,2,2,3,3,3,3,3,3,5,2,2,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,4,4,4,3,2,3,3,3,3,5,2,2,2,2,5,5,5,5,3,3,3,3,3,3,3,3,3,7,7,7,7,7,8,8,8,8,8,12,9,8,8,9,8,6,17,6,6,6,8,8,6,6,6,6,6,6,6,6,6,6,6,7,4,4,8,8,9,9,9,7,7,7,7,7,7,7,9,9,9,7,8,8,8,10,7,13,10,8,9,3,3,5,13,3,3,3,3,3,7,7,6,6,10,13,11,11,8,8,9,8,9,9,10,10,10,11,10,10,13,13,16,15,11,12,9,9,10,9,11,10,9,9,14,7,8,3,10,7,7,3,2,2,2,5,3,3,3,3,3,3,3,3,3,3,3,3,6,7,2,2,3,3,3,3,3,3,3,3,4,11,6,7,4,6,2,2,3,3,3,1,3,3,3,3,3,3,6,4,4,2,2,2,3,3,3,3,4,4,6,6,6,6,5,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,11,6,10,9,12,7,7,11,14,9,7,12,3,3,7,12,11,12,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,11,5,5,5,5,5,5,5,5,11,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,3,3,3,5,5,5,5,5,5,5,5,5,5,5,3,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,3,10,3,3,3,11,3,5,9,11,8,12,14,9,7,8,7,7,11,11,7,7,10,9,8,10,9,7,7,7,7,7,7,8,8,7,11,8,8,8,7,7,10,8,7,13,12,7,17,10,8,8,11,7,11,11,14,7,11,7,8,6,9,20,8,7,9,16,7,10,6,11,10,8,9,7,16,11,11,9,8,9,8,8,8,11,8,15,8,8,9,7,8,8,11,10,7,5,7,10,10,15,7,7,7,8,7,8,8,10,11,10,10,10,11,11,7,8,6,8,8,8,10,6,8,6,6,7,8,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,16,6,15,6,7,11,11,7,9,10,11,13,10,6,16,8,10,12,11,6,6,6,6,6,6,6,10,6,10,7,7,7,7,11,7,11,6,6,6,6,6,6,17,7,7,6,6,12,22,6,6,6,6,6,8,6,6,6,6,7,6,6,5,6,6,8,11,6,9,14,11,9,11,7,7,8,6,6,6,8,10,9,6,6,6,6,9,7,6,6,6,6,6,15,6,4,4,4,6,4,17,8,11,6,6,9,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,6,6,6,6,10,6,10,6,6,6,6,12,8,6,6,6,6,6,6,6,6,6,9,6,6,6,6,18,6,6,6,8,9,10,7,8,9,10,11,7,13,6,8,8,6,6,14,7,7,7,7,10,7,14,9,6,6,9,15,9,7,14,6,11,14,13,7,12,8,7,7,7,7,7,12,7,10,9,16,6,8,6,5,17,6,8,10,4,6,4,10,15,17,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,4,4,11,7,4,4,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,19,17,6,10,11,6,6,6,6,18,6,6,11,4,4,4,5,6,6,6,9,5,6,4,6,6,4,6,6,6,6,10,6,6,4,6,6,10,6,10,6,6,6,6,11,6,6,10,6,6,8,6,6,6,8,6,11,4,11,9,10,9,11,4,8,4,11,12,7,9,8,6,7,7,8,12,12,11,13,10,11,7,7,7,9,7,11,10,7,7,7,16,11,10,11,17,9,9,8,8,7,7,7,9,7,7,7,14,7,13,9,11,10,14,10,10,12,11,10,7,10,5,14,8,8,8,9,7,8,7,7,9,8,7,8,7,7,7,7,7,7,7,11,8,10,8,7,8,14,11,8,9,9,9,8,24,10,10,12,7,7,15,11,8,8,12,11,8,9,9,7,8,9,10,11,10,11,7,12,7,7,11,9,8,14,13,12,8,11,10,8,8,7,7,14,9,10,8,9,11,7,14,8,8,13,8,8,12,7,10,14,14,11,9,10,9,9,7,7,11,11,13,9,13,5,5,5,7,9,5,11,12,14,8,7,7,11,10,9,7,8,8,7,10,11,11,5,5,7,5,5,5,7,7,15,7,7,8,7,15,12,12,10,7,8,7,11,7,7,7,23,11,8,8,11,10,7,8,11,7,19,7,7,6,9,9,9,11,3,4,7,8,6,6,4,10,8,2,2]),Ry=new Uint16Array([0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,12,1,1,1,1,1,17,1,1,1,12,1,12,1,12,13,1,1,1,1,12,1,12,1,1,1,1,1,14,21,1,1,1,1,1,1,1,19,12,1,1,1,1,1,1,1,20,1,1,1,16,1,18,1,1,15,1,1,1,1,12,1,1,1,1,1,1,22,1,1,1,12,1,1,1,1,1,1,1,1,1,12,12,12,12,12,12,12,12,12,12,12,12,1,24,25,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,12,12,12,12,1,32,0,0,0,1,1,1,1,35,34,1,1,1,1,1,33,1,1,1,1,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,38,0,0,0,0,39,40,0,0,0,41,0,12,1,1,12,1,1,1,1,44,45,45,45,44,45,44,44,46,45,44,45,44,44,44,44,44,44,46,44,44,44,44,44,44,45,47,47,45,44,44,44,44,44,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,50,52,50,50,50,52,50,51,50,53,50,51,51,50,50,50,51,53,51,53,50,51,51,12,55,55,54,56,51,53,50,50,48,49,57,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,60,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,67,1,12,1,1,66,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,78,0,0,0,0,0,0,0,0,0,0,0,0,0,76,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,12,1,1,1,1,89,1,91,1,1,1,1,1,1,1,1,94,1,1,1,1,1,1,1,1,1,1,1,1,0,1,97,97,1,1,12,1,100,1,1,1,1,1,1,1,98,1,99,1,101,1,1,1,1,1,102,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,110,111,1,1,1,1,1,1,113,113,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,121,122,1,1,1,1,1,1,1,1,1,1,1,1,1,122,1,1,1,1,1,1,1,1,1,1,122,1,1,1,1,1,1,1,1,1,126,123,125,120,1,124,1,1,114,1,1,1,1,117,1,127,1,1,1,1,1,119,1,108,1,109,1,12,128,106,1,112,1,1,1,1,1,107,115,1,12,12,12,118,116,1,1,1,1,1,1,0,0,0,0,1,12,12,1,1,1,1,1,12,134,1,1,1,1,1,1,1,1,1,1,1,12,136,1,1,1,1,1,1,1,1,137,138,12,12,135,133,45,45,140,50,50,139,142,141,1,1,0,0,0,0,0,0,0,0,0,0,0,0,145,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143,0,0,0,0,1,0,144,132,1,0,1,12,12,1,1,1,1,1,0,0,0,0,0,0,0,1,148,147,20,1,1,12,12,1,20,12,12,1,1,1,1,1,134,1,1,152,1,1,1,1,153,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,1,136,1,1,152,1,1,1,1,153,1,1,134,1,1,1,152,1,1,1,1,153,1,1,134,1,1,1,1,1,1,1,1,134,1,1,1,1,1,1,1,1,1,1,1,160,1,1,1,152,1,1,1,1,1,153,1,1,160,1,1,1,1,1,1,1,1,1,1,134,1,1,1,1,152,1,1,1,1,153,1,1,1,134,1,1,152,1,1,1,1,164,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,167,1,1,160,1,1,1,1,1,152,1,1,1,1,1,153,1,1,160,1,1,1,1,1,152,1,1,1,1,1,153,1,154,158,158,12,1,12,166,1,1,1,1,1,158,158,158,154,1,1,1,157,158,161,165,1,1,1,1,157,157,1,1,156,154,154,157,170,156,170,1,1,168,1,156,155,157,1,1,1,1,157,1,159,1,1,1,12,1,162,1,162,1,1,1,162,161,163,169,156,154,1,1,1,1,1,1,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,173,172,173,172,172,172,172,174,174,172,173,172,173,172,172,12,12,12,12,12,1,12,12,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,193,1,1,1,1,12,199,200,201,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,151,1,1,1,1,1,1,1,1,1,1,1,196,1,1,1,184,1,210,1,1,1,208,1,1,205,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,12,1,1,1,1,1,1,1,1,190,1,1,1,186,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,182,1,1,1,1,1,1,1,191,1,1,1,1,195,1,1,1,1,171,1,1,189,1,1,1,192,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,180,1,12,1,1,12,1,1,1,1,183,1,1,1,188,1,203,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,209,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,194,1,1,1,1,1,12,1,1,1,1,1,1,1,1,176,12,1,1,1,178,12,1,1,1,1,1,1,1,198,1,1,1,1,1,1,1,1,1,1,177,1,1,1,1,1,1,204,1,1,1,181,1,1,1,187,1,12,1,1,12,1,1,1,1,1,1,1,1,1,1,191,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,175,1,1,1,1,1,1,1,1,1,1,185,1,1,1,1,1,1,1,1,1,1,1,206,1,1,1,1,1,1,1,1,1,1,1,1,1,207,1,1,12,1,1,1,1,179,1,1,1,185,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,1,1,197,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,12,1,1,1,1,1,1,1,1,1,202,1,1,12,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,220,0,0,0,0,0,221,0,0,0,0,0,0,1,12,1,1,1,225,1,1,1,0,226,223,224,1,1,1,1,1,1,231,1,233,1,1,1,1,1,1,1,1,1,1,1,229,1,1,1,1,1,235,1,1,12,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,234,1,1,1,12,1,1,1,1,230,1,1,1,228,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,232,1,1,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,241,13,1,1,1,12,12,238,239,1,1,1,1,240,1,1,12,1,1,1,1,1,1,1,242,1,1,12,16,1,1,1,1,1,1,1,243,1,1,1,12,12,1,1,1,1,1,243,12,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,256,256,1,0,0,0,0,0,1,12,0,0,0,0,0,0,0,0,172,261,262,1,12,1,1,1,1,12,264,1,1,263,1,1,266,1,1,1,1,1,1,1,1,1,0,1,1,1,271,272,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,12,1,0,1,0,0,0,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,12,0,283,0,0,284,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,12,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,60,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,1,0,308,0,0,0,0,0,0,0,0,0,310,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,327,327,328,327,0,185,1,1,13,323,1,321,0,0,0,0,1,0,0,0,324,1,1,329,1,205,1,1,1,1,1,322,1,319,1,325,1,317,1,326,1,318,1,1,1,1,1,1,1,12,1,1,1,12,1,12,320,320,1,1,1,316,184,1,1,12,1,1,1,1,1,1,1,1,1,1,12,1,1,1,1,12,1,1,1,1,315,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,332,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,266,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,372,372,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,364,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,1,340,351,1,1,339,374,1,345,1,1,337,369,1,1,355,336,341,1,1,1,348,379,357,1,1,1,1,1,1,358,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,367,371,0,0,79,1,1,0,365,342,378,343,346,353,1,368,0,1,0,79,362,360,1,0,0,1,1,1,0,0,0,0,381,1,1,352,1,79,1,0,1,1,1,384,1,0,0,79,359,0,1,338,1,1,1,0,1,1,361,1,0,1,1,1,0,1,386,349,1,1,0,1,0,0,377,0,1,1,1,79,370,1,1,366,363,1,1,1,1,1,1,1,1,1,1,1,344,1,1,1,1,1,1,1,1,1,1,1,376,0,79,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,380,1,1,1,0,0,383,0,0,0,1,356,1,0,79,382,1,0,0,0,0,385,1,1,0,0,1,0,1,0,354,0,350,0,1,1,1,0,1,1,0,373,347,375,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,1,1,400,400,1,1,12,12,1,400,1,1,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,412,1,1,0,1,1,1,1,205,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,430,430,1,1,0,0,317,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,442,1,441,1,1,1,1,1,1,1,1,445,1,12,12,1,1,1,1,1,12,1,1,1,1,453,1,1,1,455,1,1,1,1,1,1,1,1,1,1,452,1,447,1,1,1,1,435,1,1,1,1,1,1,1,1,448,12,1,1,1,1,454,1,1,1,449,444,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,317,1,433,1,1,12,451,1,1,317,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,437,1,1,1,1,1,1,1,1,1,1,1,454,1,1,1,1,317,1,450,1,1,1,439,1,1,1,1,1,440,1,456,443,1,1,1,1,1,438,1,1,1,1,1,1,1,1,1,434,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,446,1,1,1,1,1,1,1,12,1,1,1,1,1,436,1,1,1,1,1,1,1,220,457,1,1,1,1,1,12,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,0,0,462,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,12,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,466,466,466,466,466,466,466,0,466,466,466,466,466,1,466,466,466,0,466,466,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,471,470,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,475,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,469,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,477,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,474,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,467,0,0,478,473,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,472,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,467,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,476,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,12,1,1,1,1,1,1,1,1,1,1,1,1,488,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,198,198,1,492,1,1,1,491,1,1,1,1,487,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,489,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,493,1,1,490,1,1,1,1,1,1,1,1,372,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,494,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,505,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,1,0,0,12,1,507,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,12,12,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,1,1,1,0,0,0,1,0,0,0,1,60,1,1,12,12,12,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,526,1,1,1,1,1,1,1,527,1,1,1,1,1,1,1,525,1,1,12,1,529,239,1,1,12,12,1,1,12,1,12,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,533,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,539,1,1,1,1,1,1,1,1,1,1,1,1,1,1,132,1,12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,107,1,1,12,1,1,1,12,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,548,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,144,1,1,1,228,1,1,12,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,572,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,577,1,220,1,328,1,1,1,1,1,1,1,1,1,0,0,578,1,1,1,1,0,580,0,79,0,579,0,1,1,1,0,1,1,1,1,1,1,12,0,0,0,0,1,0,0,0,0,0,0,586,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,582,582,0,585,583,582,582,582,582,582,587,582,582,591,582,582,582,582,582,582,582,582,582,582,588,585,582,582,585,582,582,582,582,582,582,582,582,582,582,582,582,582,583,582,582,582,582,582,589,582,582,582,582,582,582,0,0,0,1,590,1,1,1,1,584,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,12,595,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,12,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,12,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,12,1,1,12,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,65,280,306,411,535,0,4,68,236,254,282,307,334,388,413,0,499,519,536,597,9,0,61,88,398,409,429,575,0,497,518,532,612,0,30,6,0,461,500,602,560,70,0,7,285,255,389,463,416,538,79,598,0,576,309,418,465,9,105,288,506,6,30,0,311,79,391,79,483,10,6,131,248,275,0,613,509,0,563,0,64,6,6,251,95,2,432,399,410,596,0,6,0,6,286,103,6,561,501,540,0,464,390,273,287,8,71,104,599,543,392,312,300,419,146,74,290,546,510,601,564,335,330,479,6,75,149,11,0,249,522,547,565,514,551,570,611,36,6,260,295,333,304,218,30,528,553,218,42,216,265,296,305,406,423,481,274,0,73,562,0,403,417,299,79,247,79,0,581,545,504,292,421,79,393,387,0,0,0,9,555,571,217,0,424,407,531,516,573,615,85,218,43,297,396,425,569,0,511,293,276,79,215,80,28,390,30,6,394,331,303,604,592,524,550,513,0,258,81,30,405,422,0,30,426,0,219,593,517,9,408,427,218,248,86,222,594,574,557,482,428,397,250,227,87,59,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,620,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,414,0,0,0,0,0,0,0,0,82,0,129,0,0,84,549,0,0,0,0,0,0,0,27,0,552,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,414,0,0,0,0,503,0,257,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,294,0,0,0,0,0,0,0,617,0,0,0,0,0,616,0,0,0,0,0,0,0,0,0,0,0,0,0,0,395,0,0,0,484,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,0,0,0,0,0,0,495,0,0,0,0,0,0,404,0,0,0,0,0,0,0,0,0,0,0,0,0,211,0,0,0,0,0,0,0,0,0,0,515,0,0,0,0,0,0,0,0,0,0,0,0,496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,269,281,0,0,0,0,0,530,277,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,458,0,0,0,314,0,0,0,0,0,0,253,0,0,0,0,0,0,23,0,0,0,0,568,0,0,0,0,600,521,0,0,0,0,244,0,0,0,0,0,0,0,0,0,480,0,0,0,0,0,62,0,0,0,267,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,246,0,0,0,0,0,279,610,0,72,0,0,0,0,0,0,0,0,0,619,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,150,0,278,0,0,0,0,0,0,567,0,0,0,0,0,0,523,0,0,0,0,0,0,0,0,0,566,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,213,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,502,0,0,0,0,0,554,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,83,0,0,0,0,0,0,0,0,0,0,0,0,486,0,485,0,0,0,0,0,0,0,0,0,0,259,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,459,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,289,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,537,0,0,0,0,0,0,0,0,298,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,237,0,0,0,0,0,0,0,0,0,0,84,0,606,0,0,0,0,0,0,0,0,0,0,0,0,245,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,609,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,520,0,0,0,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,498,0,614,0,0,431,0,0,0,0,0,0,0,0,0,0,0,0,402,0,0,0,544,0,93,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,29,92,0,0,0,0,0,0,0,0,0,0,0,0,291,0,0,0,214,0,0,0,0,0,0,558,0,270,0,0,130,0,0,0,0,0,559,0,0,0,0,0,0,0,414,420,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,313,0,0,0,0,0,5,0,0,0,0,0,0,0,301,0,0,0,0,0,0,0,0,0,0,0,0,0,534,0,0,0,415,0,0,401,0,0,0,0,0,0,603,0,0,0,541,0,0,90,0,542,0,0,0,0,0,0,0,0,0,0,508,460,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,268,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,414,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,608,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,607,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,618,0,0,0,0,0,556,0,0,0,0,0,0,0,0,0,0,302,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,605,0,0,212,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,623,623,623,623,623,623,623,622,624]),xp="orgmilcomschnetedugovdrrformsfeedbackofficialaccoorgmilschnetgovmagazinemediaunioncargopilotgroupcaarespressworksaerodromeworkinggroupair-traffic-controlaircraftaccident-preventioneducatormarketplaceambulanceinsurancecateringairportrepbodyenginesoftwaremodellingair-surveillanceconsultingchartertrainermaintenanceservicesdesignflightskydivingfreightassociationstudentgroundhandlingdgcafuelclubtaxicrewshowballooningexpresstraderbrokerauthoragentsairtrafficjournalistsafetyconsultantmicrolightaccident-investigationparachutingequipmentproductionfederationrecreationscientistnavigationengineertradingglidingleasingresearchpassenger-associationentertainmentparaglidinghangglidingaerobaticrotorcraftemergencycertificationgovernmentaeroclubexchangelogisticschampionshiphomebuiltcouncilconferencecontrolairlinecivilaviationjournalorgcomnetedugovcoorgcomnomnetobjofforgcomnetuwukiloappsframerorgmilcomnetedugovcoradioorgcomnetcommuneedogpbcoitgvorgedugov*spreviewfrontendrelayononstagingupid*mtls*privatelinktypedreamdeveloperbravemochawindsurfaivenmirenupsunwnextbegetngrokclerkwale2bwebcsbrunputerflutterflowspawnbaseshiptodaymagicpatternsnetlifyondigitaloceanrailwayhostedclaudehasurabotdashvercelgithubluyanigadgetreplitcloudflaretelebitedgecomputeevervaultdetaexponyatnoopencrpplxzeaburwasmerframerzeropsconvexmedusajsspritesonherculeseasypanelstreamlitsnowflakemesserliloginlinehackclubnorthflankbase44corespeedadaptableleapcellngrok-freeclerkstagelovableon-fleek*us-west-3ap-south-2us-central-2us-central-1eu-central-1ap-south-1us-west-2us-east-2eu-north-1ap-north-1us-west-1us-east-1*rcloudintsegorgmilcomgobbetnetintedugovturmusicasenasamutualcoopip6uriurnin-addre164homeirisgovdixdaemoncloudnssthwien*inexexkunden4accogvormymyspreadshop4lima2ixortsinfofuturecmsfuturehosting12hpprivfuturemailinglima-cityfunkfeuer123webseitednshomemelmyspreadshopcloudletswasantqldvicactnswtascatholicwasaqldvictasvpsidwasantozqldorgcomvicasnactnetedugovnswtasconfhrsncomairflowlambda-urltransfer-webappairflowtransfer-webapptransfer-webapptransfer-webapp-fipstransfer-webappeu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1mx-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1privatenotebookstudiolabelingnotebookstudionotebooknotebook-fipslabelingnotebookstudionotebook-fipsnotebookstudio-fipsnotebook-fipsnotebookstudionotebook-fipsnotebookstudioeu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2experimentsus-gov-west-1us-gov-east-1ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1onrepostsagemakercopporgmilcompronetintedugovbiznameinfoshoprsorgmilcomnetedugovbrendlyresolvenzauscotvstoreorgcomnetedugovbizinfoidacaicoittvorgmilcomschnetedugovinfocloudezproxyacmymyspreadshopkuleuvenwebhostingtransurl123websitecloudnsinterhostsolutionsddns5476103298edgfacbmlonihkjutwvqpsryxzbarsycoororgcomedumyftpno-iporxcloud-ipfor-somemmafanfor-morewebhopselfipjozidyndnscloudnsdscloudfor-thefor-betteractivetrailcoeconorestooteorgcomeconeteduassurmoneyafricaarchitectesrestaurantloisirstourismavocatsinfoagrounivcoorgcomnetedugovtvdeportesaludtksatorgmilcomwebgobnetinteducienciaboliviarevistacooperativaempresanombreindustriamusicapatriamedicinademocraciapoliticapuebloindigenaplurinacionalarteblogwikiinfoagrotransportenoticiasprofesionalacademiaeconomiaecologiamovimientotecnologianaturalsimplesitecepesebamapadfmgalampbacscpirngorotomtrjspaprrprrsesmscepesebamapadfmgalampbacscpirngorotomtrjspaprrprrsesms*biaamfmtcmptvfeirasampajampanatalbelemananiradiog12medindfndbmdtrdthepoaggfjdfdefinfenflegsegongengcngorgzlgslglogppgmillelqslcimcomnomadmjabimbbibbsbabcrectecsjcetcpscpvhudieticriapipsiecnbiorioecogeoteoodoproatoartfstmatvetdetbetnetcntnotfotgrueduajuespappreptmpemparqsrvadvdevgovntrturagrjorfarjusmusdesvixxyzcozfozslzbhzmaringasantamariacampinagrandegoianiasorocabafloripasaobernardocuritibaboavistarecifeaparecidasaogoncasalvadorcuiabamorenamacapalondrinacontagemsocialfortalmaceioleilaoosascoriobranconiteroi9guacutcheblogflogvlogwikitaxicoopmanauspalmascaxiasjoinvillebaruericampinassantoandreribeiraoriopretoweorgcomnetedugovv0windsurfshiptodaycloudsitecoaccoorgnetgovofmilcomgovmediatechzacoorgcomnetedugsjgovmydnspenfnlabnbmbgcbcqconcontnuyksknsmyspreadshopno-ipawdevboxbarsyonidatemfuinabusavinstanceseceuguukussryzespawncsxcloud-ipmyphotosfantasyleaguetwmailcleverappsscrappingccwucloudnsftpaccessgame-serverccgovobjectsrmalpgcust*svcalp1aeappenginermalpgmyspreadshop4lima2ixsquare7cloudscale123websitefirenet12hpflowgotdnslinkyard-cloudcloudnslima-citydnskingobjectstorageedaccogoorusorgcomnetinteduaéroportxn--aroport-byaassogouvcomilgobgovcloudnses-1eu-west-1us-east-1euvipit1eurarubait1s3lbwebsites3websiteru-spbru-mskelasticcsrunstnukukcaukusnl-ams-1fr-par-1fr-par-2functionsnodess3ddlwhmrdbfnck8sifrs3-websitecockpitscblmgdbdtwhkafkpubprivs3ddlwhmrdbk8sifrs3-websitecockpitscblmgdbdtwhkafks3ddlrdbk8sifrs3-websitecockpitscblmgdbdtwhkafkk8sscalebookpl-wawfr-parnl-amsbaremetalsmartlabelinginstancesdechk2kuleuvenlaravelvoorloperurownoxazapscwhstgrvaporobservablehqelementorantagonistreclaimjoteluluencowaydiademjelasticmatlabmagentositetrendhostingaxarnetperspectajenv-arubajelejoteravendbemergenttrafficplexconvexkeliwebserveboltbegetcdnstaticson-rancherprimetelonstackitunison-servicesdnshomelinkyardbarsyjelecloudnscocomnetgovmycn-northwest-1cn-north-1s3s3-accesspoints3-websites3s3-accesspointrdsdualstacks3-deprecatedemrappui-prods3-websiteemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apis3s3-accesspoints3s3-accesspointrdsdualstackemrappui-prods3-websiteemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicn-northwest-1cn-north-1cn-northwest-1ebcomputeelbcn-north-1airflowcn-northwest-1cn-north-1oncn-northwest-1cn-north-1amazonawssagemakeramazonwebservicesdirectasgdsdhehahljlnmhbacscahqhshhihnlnynsnmofjbjzjxjtjhkcqtwgsjssxnxjxgxxzgz網絡网络公司orgmilcomnetedugovxn--55qx5dcanva-appsxn--io0a7iquickconnectcanvasitekhsjxn--od0algmyqnapcloudsrvrlessclustersrealtimestorageleadpagescarrdcrdorgmilcomnomnetedugovhidnssupabaserdpareplmypiumsoxmitotaplpagesfirewalledreplitowodevwebview-assetsvfswebview-assetss3s3-accesspointdualstackemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9eu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1s3s3-accesspointdualstackemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstackanalytics-gatewayemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstackemrappui-prods3-websiteemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apis3s3-accesspointdualstacks3-deprecateds3-websites3-object-lambdaexecute-apis3s3-accesspoints3-websites3-accesspoint-fipss3-fipss3s3-accesspointdualstackemrappui-prods3-websites3-accesspoint-fipsaws-cloud9s3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstackemrappui-prods3-websites3-accesspoint-fipss3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apis3s3-accesspointdualstacks3-deprecatedanalytics-gatewayemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9vfss3s3-accesspointdualstackemrappui-prods3-websiteaws-cloud9emrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9eu-west-3ap-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1mx-central-1me-central-1ca-central-1il-central-1ap-northeast-1us-northeast-1ap-southeast-1me-south-1af-south-1ap-south-1ap-southeast-7us-west-2eu-west-2ap-east-2us-east-2ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1ap-southeast-6ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1mrapaccesspoints3s3-accesspointdualstacks3-deprecatedanalytics-gatewayemrappui-prods3-websites3-accesspoint-fipsaws-cloud9s3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3s3-accesspointdualstacks3-deprecatedanalytics-gatewayemrappui-prods3-websites3-accesspoint-fipsaws-cloud9s3-fipsemrstudio-prods3-object-lambdaemrnotebooks-prodexecute-apicloud9s3eu-west-3ap-south-2eu-south-2computes3-ap-northeast-2elbrdss3-ap-east-1s3-sa-east-1s3-us-gov-west-1s3-eu-central-1s3-ca-central-1eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3s3-website-us-west-2s3-website-eu-west-1s3-external-1eu-central-1me-central-1ca-central-1il-central-1s3-us-west-1s3-eu-west-1s3-website-sa-east-1s3-website-ap-southeast-2ap-northeast-1ap-southeast-1s3-us-west-2s3-eu-west-2me-south-1af-south-1eu-south-1ap-south-1us-west-2eu-west-2us-east-2s3-website-ap-southeast-1s3-1s3-globals3-ap-northeast-3eu-north-1airflowap-southeast-2s3-us-gov-east-1s3-fips-us-gov-east-1s3-me-south-1s3-ap-south-1ap-northeast-2s3-website-us-west-1ap-southeast-5s3-eu-north-1s3-ap-southeast-1s3-website-us-gov-west-1compute-1s3-eu-west-3us-gov-west-1s3-website-ap-northeast-1us-gov-east-1s3-fips-us-gov-west-1s3-website-us-east-1s3-ap-southeast-2ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1s3-us-east-2s3-ap-northeast-1authauthauth-fipsauth-fipseu-west-3ap-south-2eu-south-2eu-central-2ap-southeast-3ap-southeast-4ap-northeast-3eu-central-1mx-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1ca-west-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1rservicesbuilderstg-builderdev-builder*ociocpocsdemoinstanceeu-west-3eu-south-2ap-southeast-3ap-northeast-3eu-central-1me-central-1ca-central-1il-central-1ap-northeast-1ap-southeast-1me-south-1af-south-1eu-south-1ap-south-1ap-southeast-7us-west-2eu-west-2us-east-2eu-north-1ap-southeast-2ap-northeast-2ap-southeast-5us-gov-west-1us-gov-east-1us-west-1eu-west-1us-east-1ap-east-1sa-east-1previeweu-4us-4us-1eu-1us-2eu-2us-3eu-3appspaasrag-cloudrag-cloud-chjcloudjcloud-ver-jpcdemonodebalancermembersipeuxvsoncillaocelotonzayalilynxsphinxfentigercustomercaracalo365cloudstaticxendevapp001testcode-builder-stgplatformapimediasiteprojedrydpagesjsu2u2-localx0desazacncoitrueu4uhkukgrbrushatenadiarymyspreadshopfrom-flfrom-wvwebspace-hosttheworkpchatenablogservesarcasmapplinzisakuratanwixsiteappchizigiizeis-into-carsdnsiskinkyadobeaemcloudis-a-therapistpgfogmyvncdojinis-an-actress1kappfldrvkozowqa2jpnmexprgmrfirewall-gatewaydynnscafjsfbsbxooguyxnbayfrom-gawoltlab-demois-a-anarchistwiardwebteaches-yogadattowebtb-hostinglive-websiteservegamegotpantheonfrom-nhsubsc-payfrom-ohvipsinaappfrom-cadyndns-officehomelinuxfrom-mahercules-appservebbsstreakusercontentfrom-okfrom-wyfastly-terrariumis-a-llamaqualyhqportalserveexchangeon-vaporvivenushopciscofreakgrayjayleaguesmetaaiusercontentfrom-iais-a-libertariansaves-the-whalestaveusercontentyolasiteoperaunitepoint2thisis-a-catererlinodeusercontentfrom-vagithubusercontentsells-for-lesshosteurcanva-appsplaystation-cloudddnsfreefrom-pafrom-prfrom-waddnskingoutsystemscloudhotelwithflightmydattois-a-nascarfanmydbserverminiserverdamnserverservehumouris-a-playerfrom-nvfrom-nmemergentagentgentappsamplifyappfrom-kyis-an-accountantnfshostserveircfrom-akpythonanywherestackhero-networkpostman-echolikescandydyndns-mailobservableusercontentserveftpfreeboxosfrom-utcdn77-storageamazonawsneat-urldyndns-serverlinodeis-a-teacherfrom-vtgleezemythic-beastsus1-pleniteu1-plenitla1-plenitpaywhirlservecounterstrikejdevcloudhealth-carereformis-into-animegoogleapisis-a-painterafricaisa-hockeynutatmetais-an-actora2hostedis-a-democratdatadetectest-le-patrondigitaloceanspacesis-a-designeris-a-hunterlinodeobjectstemp-dnsissmarterthanyoufrom-arsimplesiteevennodetownnews-stagingis-a-liberalgooglecodejelasticservemp3stdlibqualyhqpartnerdyndns-free1cooldnsest-a-la-masiondrayddnsdynuddnsfrom-orfrom-miis-a-bloggerfrom-himydobisscanvacodeis-an-engineerest-a-la-maisonupsunappdevinappswafflecellmyasustorwpenginepoweredfrom-ctservep2psame-appmyshopblocksthingdustdatalikes-piediscordsezis-with-thebanddev-myqnapcloudlpusercontentis-leetshopitsite3utilitiesis-a-personaltrainersinaappladeskis-a-cheflogoipselfipbase44-sandboxnospamproxyalibabacloudcsmesswithdnsauthgearappsiamallamawithgooglelutrausercontentmochausercontentframercanvasmytabitdyndns-homew-credentialless-staticblitzcpserverdiscordsaysis-a-nurseappspotatlassian-isolated-3premotewdfrom-mtwixstudiocode0emm180rmyactivedirectoryawsappsmytuleapdnsabrpolyspaceqbuserrenderbuiltwithdarkboutirgotdnsabrdnsdopaascanva-hosted-embedawsglobalacceleratorhomesecuritypcmyiphostditchyouripclever-clouddyndns-ipon-aptibleis-a-musiciansecuritytacticsappspaceusercontenthomeunixstrapiappsame-previewcf-ipfsmycloudnaselasticbeanstalkis-certifieddontexistkasserverik-serverdrive-platformatlassian-3pfirebaseappherokuappawsapprunnerbarsycenteris-a-cubicle-slaveservehttpmyshopifyis-a-guruquicksytessiiitesorsitesmagicpatternsappis-a-cpameteorappfrom-wiis-a-rockstarbumbleshrimpdattolocalreadthedocs-hostedfrom-rifamilydsdyndns-picsplesknsbplaceddnsaliasdynaliasdyndns-remotedoomdnsip-ddnsblogdnsis-a-doctorroutingthecloudamazoncognitobarsyonlinedsmynasddnsgurucloudflare-ipfsdeus-canvasfrom-idsmushcdnpagespeedmobilizerdyndns-at-homeunusualpersonhosted-by-previderis-a-republicandyn-o-saurstreamlitappworkisboringonthewificprapidqualifioappis-uberleetis-slickgetmyipwpdevcloudtypeformdyndns-at-workgentlentapismynascloudw-corp-staticblitzfrom-ingeekgalaxyservebeerfrom-mdonrenderspace-to-rentaivencloudappspacehostedonfabricawafaicloudcodespotblogspotatlassian-3p-us-gov-modfrom-ndfrom-msis-a-techieis-a-studentcustomer-ociis-a-photographerdurumisfrom-ksmassivegriddyndns-wikiis-an-entertaineris-a-hard-workermysecuritycamerafrom-mnrackmazedyndns-blogis-a-bulls-fanwritesthisblogfreemyipsimple-urlfrom-sdreservdauthgear-stagingest-mon-blogueuris-into-gamesrice-labsxtooldevicesakurawebis-an-anarchistoraclecloudappsdyndns-worksells-for-urhcloudfrom-dcfastvps-serverwpmucdnis-a-geekscrysecfrom-txis-into-cartoonsmodelscapetrycloudflarelocaltonetstreak-linkbalena-devicesfrom-njforgeblocksfreebox-oswebadorsitefrom-ncdoesntexisthobby-sitestreaklinkshomesecuritymacownprovidertuleap-partnersdattorelaywphostedmailalpha-myqnapcloudservequakeis-a-socialistservehalflifepivohostingdynuhostingquipelementsw-staticblitzdyndns-webfrom-deproject-studyaliases121is-not-certifiedhercules-devis-a-financialadvisorservepicsis-a-greenloseyouripfrom-ilwithyoutubemwcloudnonprodwiredbladehostingdnsdojofrom-tnpixolinomyqnapcloudis-an-artisthostedpiis-a-landscaperauiusercontentoaiusercontenton-forgeis-a-conservativedreamhostersnet-freaksapps-1and1is-goneencoreapifastly-edgefrom-nesalesforcefrom-scdeployagentoraclegovcloudappsfrom-alis-a-lawyercechirevultrobjectsstufftoreadisa-geekddnsgeeklovableprojecttry-snowplowfrom-moblogsyteis-a-bookkeepernogmyforumravendbmyboxdeelementoredsaacficogoorinforgcomgobnatneteduidstoreorgcomnetintedudevnomepublorgcomneteduathgovtestscalculatorspaynowinfoquizzesresearchedcloudnsfunnelsassessmentsjscaleforcetmacltdorgmilcompronetgovbizpresseklogesrsccloudcustomfltusrcloude4corealmgovmunicontentproxy9metacentrumdyndyndyndnsdynpagespages-researchitionoccustomercomymyspreadshopipv64diskussionsbereich4limacomrub2ixfirewall-gatewayddnssspdnsbarsykeymachinesquare7myhome-serverspeedpartnercommunity-proschuldockxenonconnectgünstigliefernbwcloud-os-instancedyndnssecmy-routerxn--gnstigliefern-wobin-butterl-o-g-i-nisteingeekin-dslin-berlinin-brbfuettertdasnetzleitungsenin-vpnlcube-serverdyn-ip24logoipdyn-berlinruhr-uni-bochum12hpgoipsrvdnsfruskygit-repossvn-reposinternet-dnsgünstigbestellenhome-webserverxn--gnstigbestellen-zvbbplacedheimdnscosidnswebspaceconfiglima-citydyndns1istmeinvirtualuserschulplattformmy-gatewayddnsseclebtimnetztest-iservmein-iservvirtual-userhome64iservschuletaifun-dnstraeumtgeradeschulserverdynamisches-dns123webseitednshomehs-heilbronndnsupdaterbssgraphicdwadpdwdaepeweaawapaafpfwfabwbpbacwcpcciwebuserapiobjectsidsiskospockkimodorikerbonesteamsparisjanewaypicardglobaltarpitreedpikekiraworfsulukirkarchertuckerhackercanarywesleystagingprereleaset3r2lpbravepanelngrokiservstglclcrmerpflypagesbarsyvivenushoplocalcertlocalplayerbearbloggatewaydeno-stagingis-not-ais-a-goodbotdashvercelmocha-sandboxplatter-appreplitgithubpreviewworkersinbrowserevervaultdetais-ahrsndenoxmitmodxmyaddrstorageapipayloadgrebedocruncontainersstgstagelclstageloginlineis-a-fullstackleapcellngrok-freeis-coolstoragewebharemediatechlibp2pdiscourseimaginecomyspreadshopstoreregbiz123hjemmesidefirmcoorgcomnetedugovsldorgmilcomwebgobartnetedugovtmorgpolcomsocartnetedugovassoagrondiscoodontk12medcuegyecpaabgengorgmilgalsaltulcomadmesmgobpubdocmonfindgnriouioproartlatvetnetfotedulojgovntrturibrbarxxxofficialbasechefprofmktgpsictechinfoarqtcontdentrrpppsiqgit-pagesritmedfieorgcomlibprieduaipgovriikmeactvsportorgmilcomscieunnetedugovnameinfopintouchtawktotawkmyspreadshoporgcomnomgobedu123miwebcomputeorgcomnetedugovbiznameinfocognito-idpeusc-de-east-1onjelasticnxaspdnsbarsydirectwpdeuxfleurstransurldogadoprvwcloudnsamazonwebservicesdnshomeuserpartycokoobinmkmstorjfidemopaasdymyspreadshopalandkapsiikixn--hkkinen-5wacloudplatformdatacenterhäkkinen123kotisivuidacorgmilcompronetedugovbiznameinforadioorgcomneteduuserexperts-comptablestmmyspreadshopgretaprdcomnomynhccifbxoshuissier-justicenotairesaeroportfreeboxoson-webavocatassoportgouvkdnschirurgiens-dentistes-en-franceavouesfbx-os123sitewebveterinairechirurgiens-dentistespharmacienchambagrimedecinfreebox-osdediboxgoupilemszicpyicpvicppleysheezypagesedugovcnpyorgcomcybllcpvtnetedugovtnxonlineschooldaemond6atcopanelorgnetplybotdashstackitkaasorgmilcomnetedugovbizmodltdorgcomedugovcoorgcomneteduappwriteacorgcomnetedugovcloudtranslateusercontentorgcomnetedumobiassoorgcomnetedugovbarsysimplesitediscourseindorgmilcomgobneteduorgcomwebnetedugovguaminfonxhra教育敎育網絡网絡组織組織网络網络组织組织公司政府個人个人箇人ltdorgcomincneteduidvgovxn--uc0ay4axn--55qx5dxn--mk0axixn--io0a7ixn--uc0atvxn--zf0avxxn--lcvr32dxn--od0algxn--wcvs22dxn--gmqw5axn--od0aq3bxn--mxtq1mxn--ciqpnxn--tn0agxn--gmq050iorgmilcomgobneteduiservwp2tempurlmircloudfreesitewpmudevmyfastgadgetcloudaccessjelehalfboltfastvpsemergenteasypanelopencraftizcombrendlynamefromrtpersoadultmedorgpolrelcomproartnetedufirminfoassoshopcoopgouvtmcomediahotelforumvideosportorgsexagrargameslakaseroticaerotikatozsdereklamcasino2000filmsuliinfoboltshopprivnewsszexcityutazasjogaszkonyveloingatlaneacaicogoormyᬩᬮᬶmilwebschnetkopbizzonedesaponpesxn--9tfkymyspreadshopgovmytabittabitorderravpageaccok12idforgnetgovmuniltdplcaccotttvorgcomnetmeca6g5gpgamubacaicniocoukuptverdruscsdelhiindorgmilcomwebnicfingenpronetintedugovresbizbiharbarsyinternetbusinessschooltravelsupabasealumnigujaratfirminfoaeropostbankcoopindevscloudnsno-ipbarsybarrell-of-knowledgebarrel-of-knowledgensupdategroks-thisdnsupdatefor-ourknowsitalldvrcammittwalddynamic-dnsv-infowebhopselfipdyndnshere-for-moreilovecollegemayfirstforumzcloudnsmittwaldservertypo3servergroks-theeusekd1uk0cdndyndnsidrawsainaueuapjpusstagemocksysdevicesclientcustreservdcustdevdisrecprodtestingcobeebyteutwenteboxfusebravepstmndedynngrokorgmilcomnomhzcnetedugovqcxqzzbarsythingdustmo-siemensrb-hostingprotonetfh-muenstergitbookbluebitecloudbeesusercontentnodeartkiloappsforgerockdarklangresinstagingapigeebubbleb-datascryptedhypernodedappnodepantheonsitegitlabgithubkeeneticvirtualservercleverappshostyhostingon-rioedugitticketstelebiton-acornwixstudioon-k3sicp0icp12038jeleqotobigvlairbubbleappsmyaddrstolosmyrdbxwebflowdrive-platformbeagleboardhasura-applolipopdefinimavaporcloudmusicianwebflowtestazurecontainerresindevicereadthedocsloginlineeditorxmoonscalesandcatsbasicserverwebthingsbrowsersafetymarkbeebyteappbitbucketidaccovistablogorgschnetgovxn--mgba3a4f16axn--mgba3a4fraarvanedgeايرانایرانjclaspeziapdudcefegelemeperetevebacanatavaparasabgagfgogrgpgalclblimfmrmcbmbvbfclcmcvcrcpcchlimifibicivipirisimncnbnanenrnpntnnolomobocoaogorosopotoptvtatctbtmtltotpulunutpspapaqsvpvvvtvavvrtrsrprgrfrcrbrarorkrvstsssbscsmsispzczbzbozen-suedtirolmyspreadshopxn--bulsan-sdtirol-nsbxn--valledaoste-ebbtrentinoaltoadigetrentin-sued-tirolxn--forlcesena-c8axn--forl-cesena-fcbxn--bozen-sdtirol-2obtriestetrentinsuedtiroltrentino-s-tirollecceudineaostesienaparmaluccapaviagenoapaduaaostamonzaabruzzoternirietiturinmilanbozenlaziofermoleccocuneonuoropratola-speziavdataaligfvgpugmolcalcamlomumbsicpmnvenvaoedugovabrsarmaremrbastoslazibxosfirenzetrentinosüdtirolval-d-aostavalle-aostamessinacremonaravennatoscanatrentin-suedtirolbolognacalabriaurbinopesarofriuli-v-giuliaogliastraxn--valle-aoste-ebblaquilaandriatranibarlettasyncloudtrentinosudtirolxn--valle-d-aoste-ehbaostavalleyvalled-aostatrentino-alto-adigevallee-d-aostexn--balsan-sdtirol-nsbpistoiasicilialucaniacataniaiserniaperugiabresciaveneziagorizialiguriaimperiabulsan-suedtirolbalsan-suedtirolbarlettatraniandriaxn--trentino-sdtirol-szbforlì-cesenatuscanyvallée-d-aostemantovavallée-aostecasertapiemontevalleaostaval-daostafriulivgiuliatrevisoforli-cesenavalléedaosteferrarapescaravald-aostatrentino-altoadigefriuli-vegiuliavallee-aostecarboniaiglesiastarantomediocampidanovalleedaostetrentinosud-tirolcampobassotrentinsüd-tiroltrentinosüd-tirolmonzabrianzatrentino-südtirolxn--trentino-sd-tirol-c3bpotenzacosenzavicenzaemiliaromagnavenicefrosinonemarchepordenonetrentinosued-tirolvaresemolisevalléeaostefriuli-veneziagiuliabasilicatalatinaanconasavonaveronamodenaaquilabiellabolzano-altoadigepugliafoggiaumbriatrentino-stirolgenovapadovamateranovararagusapiacenzatrentinostirolvalleeaostetempio-olbiatrentinsudtirolmassa-carrarafriuliveneziagiuliatrentinosuedtirolandria-barletta-tranitrapanixn--cesenaforl-i8amaceratacaltanissettaascoli-picenobrindisicarraramassacagliaririmininapolivibo-valentiachietibulsan-sudtirolbalsan-sudtiroltrentino-a-adigebulsanbalsaniglesiascarboniamilanotorinoteramodell-ogliastraarezzotrentinoalto-adigerovigotrentovenetoiglesias-carboniatrentino-sud-tirolaltoadigereggio-emiliareggio-calabriasardegnatranibarlettaandriapiedmontxn--sdtirol-n2amedio-campidanotrentino-süd-tirolfriuli-vgiuliafriuli-ve-giuliaromeennaromapisa32-b16-b64-blodiastibarineencomonaplesforlicesenailiadboxosalessandriasicilytrani-barletta-andriaxn--trentin-sdtirol-7vbpesarourbinotrentinsued-tirolcesena-forliforlìcesenaemilia-romagnamonzaebrianzaxn--trentinsdtirol-nsbtrentinos-tiroltrentinsüdtirolvalledaostaolbia-tempiocampidanomediovibovalentiasassarivalle-daostalombardyfriulivegiuliareggioemiliamonzaedellabrianzaalto-adigevercellitrentin-sudtiroltraniandriabarlettatrentino-sudtirolascolipicenobozen-südtirolfriulive-giuliaflorencevaldaostaxn--cesena-forl-mcbcarbonia-iglesiasaosta-valleycarrara-massadellogliastratrentinoa-adigexn--valleaoste-e7apesaro-urbinoxn--trentinosdtirol-7vbxn--trentin-sd-tirol-rzbxn--trentinsd-tirol-6vbtrani-andria-barlettatrentin-süd-tirolxn--trentinosd-tirol-rzbgrossetomonza-e-della-brianzasüdtirolreggiocalabriatrentinoaadigetrentin-südtirolfriuliv-giuliaverbaniacampaniatrentino-aadigefriulivenezia-giuliasardiniaandriabarlettatranibarletta-trani-andriacatanzarooristanourbino-pesarocesena-forlìvalle-d-aostacampidano-medio123homepagesiracusatempioolbiasuedtirollombardiaavellinocesenaforlìtrentinofriuli-venezia-giuliabozen-sudtirolandria-trani-barlettabulsan-südtirolbalsan-südtirolmonza-brianzabolzanotrentino-sued-tirolbellunosalernolivornocrotonesondriodnshometrentinsud-tirolmassacarraratrentin-sud-tiroltrentino-suedtirolviterbobergamocesenaforliolbiatempiopalermobeneventoagrigentoofcoorgnetfmaitvphdengorgmilcomschnetedugovperagrikanieasukehandachitatokaiaisaikonanoharuamaobuhigashiuraowariasahiinuyamatobishimaiwakurashitarainazawatoyonegamagorimihamatoyotataharakariyayatomioguchikomakimiyoshinishiotokonamekiyosuchiryutoyohashiokazakiisshikikasugaikotakiratoeianjotogofusosetohazutsushimashinshirotakahamanisshinshikatsuhekinantoyokawaichinomiyatoyoakeodateogataakitaikawakyowahonjoogayurihonjonoshirokamiokakatagamimitanegojomeyokotekosakadaisenkazunonikahohonjyomoriyoshimisatohappoukamikoanihachirogatahigashinarusesembokufujisatokitaakitaitayanagiowanitakkomutsutsurutahirosakigonoheoirasetowadamisawanohejiaomorishingohiranairokunohehashikamitsugarushichinohehachinohenakadomarisannohekuroishisakaeisumiasahiotakiinzaiabikomatsudoyachiyomutsuzawakujukuriomigawakashiwatoganemihamanaritasakuranagaramobarahanamigawachoshishiroichoseikozakishisuikatorimidorichonankyonanfuttsuonjukufunabashinagareyamanodasosatakochuotohnoshourayasukimitsuyokaichibayotsukaidosodegauratateyamakamagayayokoshibahikariyachimatakatsuuratomisatokisarazukamogawaichikawanarashinoichinomiyashimofusaminamibososhirakoichiharaoamishirasatoikatahonaiainansaijoseiyoiyoozuuwajimaniihamanamikatamasakiuchikokihokutobetoonshikokuchuomatsuyamaimabarikamijimakumakogenyawatahamamatsunosabaeikedaobamasakaifukuiohionotsurugamihamawakasaminamiechizeneiheijikatsuyamatakahamaechizensoedaukihaomutaokawanishiogoribuzenonojosueumiokiotochikugosasagurisaigawamizumakishinyoshitomikurumekurateyamadakasuganakamamiyamanogatatakatahakataiizukakawaratagawakasuyaashiyainatsukimunakataminamitsuikishonaikurogifukuchikeisenhigashimiyakoshinguyukuhashiokagakiyamekogaongausuikahotohochuotoyotsumiyawakadazaifuhisayamatachiaraiyanagawanakagawahirokawachikujochikushinochikuhochikuzennamieotamaokumashowateneiiwakikoorinangoononishigoshimogoomotegomishimafukushimaasakawakagamiishishirakawaiitatefutabahiratayugawahanawakitakatakawamatakunimiyabukibandaihigashihironoyamatomiharuyamatsuriaizubangedatesomaaizuwakamatsuyanaizuaizumisatonishiaizuizumizakikitashiobarataishinkaneyamakoriyamainawashirotanagurafurudonosamegawasukagawaishikawatamakawaikedaogakitaruiginanenahashimahichisonakatsugawaibigawashirakawamizunamiminokamomitakekawauesekigaharatomikasakahogikitagatayamagatatajimianpachimotosuyaotsukakamigaharahidakanisekitokigujominogodoyorogifukasamatsutakayamawanouchihigashishirakawakasaharashimonitatsumagoichiyodakannakanrashowameiwakiryuotaoratomiokafujiokaitakuranaganoharahigashiagatsumatakasakishibukawaminakamikatashinatsukiyonokawabanumataannakaoizumimidorishintoisesakiuenoyoshiokakusatsutakayamanakanojonanmokutamamuratatebayashimaebashiotakekaitadaiwahongofuchukuietajimashobaramiharahatsukaichihigashihiroshimamiyoshikumanokurenakasakaseraseranishiasaminamifukuyamashinichionomichiosakikamijimajinsekikogentakeharaotobenanaeikedatohmaozoraobiraabirakyowaeniwataikibibaisharirebunerimohiroooketootarupippunishiokoppechitosefurubirahakodateshiranukakitahiroshimakushiroobihironanporoiwamizawaniikappukunneppufukushimanakasatsunaitoyourakuromatsunaiakabirakamisunagawashibechaurakawakamifuranonakatombetsuasahikawashimokawakayabeokoppebiratoriabashirisaromaatsumanumatahidakabifukamukawamikasahorokanaitoyotomisarufutsuhigashikawaishikarikitamiyoichiesashiiwanaitomariminamifuranoakkeshifuranotoyakoyakumootoineppushikaoishiraoinemuronayorohaboroashorobihororishirifujiutashinaihokutotakasuebetsuurausuassabukikonaishimamakinaiedatetoyabieinikiesanuryuoumuteshikagarikubetsuashibetsukimobetsuaibetsutobetsusobetsuembetsushimizuchippubetsurishirihokuryuhoronobeshintokutsubetsushibetsuhonbetsumombetsutsukigatakuriyamakoshimizushiriuchikutchanmurorannoboribetsukamishihorowassamushinshinotsukembuchiwakkanaikamoenaikiyosatotakinoueshikabesunagawafukagawanakagawatakikawakamikawahigashikagurahamatonbetsumatsumaemoseushirankoshishakotanimakanemashikeotofuketomakomaisandatambaitamiawajikasaiasagoshisoonoakoyashirotoyookaminamiawajiinagawafukusakitakasagokamigorikasugaharimayokawaashiyahimejiakashitaishiaogakisannantakinosumototakarazukanishinomiyashingugoshikinishiwakiyokatakaaioimikisayoyabukawanishiamagasakisasayamashinonsenkakogawaichikawakamikawatatsunotsukubaiwamaogawaasahisakaitokaioaraiitakobandodaigosuifuinaamikasumigaurakashimaomitamayachiyoshimodatetomobetoridehitachinakainashikisakuragawakasamayawaramoriyahitachiomiyanamegatayamagatahitachikamisuushikutakahagiibarakitonekoganakasowayukimihojosomitoryugasakishimotsumafujishirotsuchiurachikuseihitachiotashirosatotamatsukuriuchiharashikahakuinanaotsubatawajimakahokukawakitatsurugikaganominotosuzuuchinadakomatsuanamizunakanotohakusannonoichikanazawaiwateshiwafudaikawaimoriokaofunatohanamakikuzumakikitakamininohekunoheyamadayahabasumitaichinosekitanohatahiraizumirikuzentakatajobojiotsuchihironomiyakoiwaizumikarumaiichinohenodakujitonooshushizukuishifujisawamizusawakamaishikanegasakimannoutazukotohiraayagawazentsujihigashikagawauchinomikanonjisanukimarugamemitoyotakamatsutadotsunaoshimatonoshoakuneamamiizumihiokiyusuikinkoisasookouyamanakatanekagoshimakanoyaisenkawanabeminamitanemakurazakitarumizunishinoomotematsumotosatsumasendaioimatsudaayaseebinamiurazushinakaiodawaraiseharasagamiharahakoneaikawakaiseiatsugitsukuihadanoyamatoyamakitazamaoisochigasakininomiyayokosukakamakuraminamiashigarafujisawasamukawakiyokawahiratsukayugawaraokawaumajikochitsunootoyoakiinonishitosayasudahidakamiharasakawaniyodogawahigashitsunokagamigeiseisusakiotsukinaharisukumomurototosakamiochitoyotosashimizumotoyamanankokunakamurakitagawayusuharaogunichoyoukiasoutoozugyokutoamakusamifunetakamoriyamagaminamataminamiogunikikuchisumotoyamatonagasumashikiaraokumamotokamiamakusanishiharayatsushiroayabeseikasakyoideineujinakagyokameokakyotangokyotanabekyotambaminamiyamashiroyamashinatanabeyawatawazukaminaminantanmiyazuhigashiyamafukuchiyamakitamukokamojoyokizumaizuruujitawaraoyamazakinagaokakyokumiyamakawagoeinabeshimameiwaasahitaikiudonoisetsukisosakikuwanamihamamiyamasuzukatamakimisuginabarikumanokomonominamiisewataraitobakiwatakikihotadomatsusakayokkaichikameyamaureshinoishinomakishichikashukuohirataiwaosakizaohigashimatsushimashikamaiwanumashibataogawaraonagawakawasakiseminemarumoriminamisanrikukakudamuratawakuyatomiyanatoriwataritagajomisatotomekamirifushiroishimatsushimayamamotoshiogamafurukawahyugaebinotsunosaitoayakushimanobeokakitauramiyazakitakazakigokaseshiibamimatashintomikunitomikitakatakobayashikawaminamitakaharukijotakanabemiyakonojonishimeranichinankitagawakadogawamorotsukakisofukushimaminamimakisakaeobuseikedaogawamiasaokayaasahiotakiotarichinoinaomichikumakomaganechikuhokukaruizawayasuokaooshikaikusakaminamiaikitogakushimatsukawakawakamitateshinatakamorikitaaikishiojirimiyadahakubaiizunaiijimaiiyamamiyotasuzakayasakatoguraookuwanagawaminowahirayayamagataminamiminowafujimiomachisakakitakaginaganonakanosakuhokomoronagisoshinanomachiwadauedaiidaharasuwatomiachiaokianankisosakunozawaonsenagematsutakayamashimosuwamatsumotoyamanouchinakagawamochizukiazuminotatsunoobamaomuraseihiunzenosetofutsuikichijiwanagasakiisahayahasamisaikaikawatanasasebohiradokuchinotsugototogitsutsushimashimabarashinkamigotomatsuurayamazoekashibaikomakawaitenrioyodosangokoryoudaojiikarugayamatokoriyamatenkawakatsuragikurotakikawakamimiyakemitsuetakatorikamikitayamayamatotakadahegurishinjokanmakisakuraitawaramotogoseoudanarasoniandokawanishishimoichihigashiyoshinokashiharashimokitayamanosegawayoshinomintsivorytopazsakuragehirnsumomoaseinetopalmail-boxmokurenyoitamuikaojiyagosensanjoaganomyokoseiroagaomishibataniigatanagaokamurakamiuonumayuzawakariwatagamitainaitsunanminamiuonumatochioyahikojoetsuseiroukamosadoizumozakitokamachiitoigawasekikawakashiwazakitsubamemitsukekokonoesaikiusukibeppuusahimeshimakunisakihasamataketatsukumihitaoitahijikusuyufukujukamitsuebungoonobungotakadaibaraniimibizentsuyamaokayamakasaokahayashimayakagemaniwaakaiwamisakishinjotamanotakahashikibichuowakesojanagishookumenannishiawakurakurashikiasakuchisetouchikagaminosatoshotomigusukunakagusukuyaeseizenaurumaiheyaaguniogiminanjokinminamidaitokitanakagusukuyonaguniokinawaishigakikunigamiurasoekadenataramahiraraginozataketomishimojizamamitonakiitomanhigashimotobuyonabarugushikamionnanahanagohaebarukumejimakitadaitonakijinnishiharayomitanginowantokashikiishikawaikedasuitaminohizuminishisakaikananabenodaitoosakasayamayaokishiwadatadaokakaizukatondabayashichihayaakasakakumatorikadomasayamahigashiosakashijonawatehirakatataishimisakitajirihannansennankatanotoyonominatosettsuhigashiyodogawaibarakinosekitachuohigashisumiyoshifujiiderakashiwaraizumiotsutoyonakamatsubaramoriguchiizumisanoshimamototakatsukineyagawahabikinotakaishikawachinaganoyoshinogarikamiminearitaouchiimarihizenogikashimaariakekiyamafukudomikitagatakitahataomachigenkaikanzakinishiaritakyuragisagataratosutakushiroishikaratsuhamatamakouhokukawagoeyoshidasatteogoseirumaasakaurawaogawaniizaomiyayoriiotakishikihonjooganohannohanyuinasaitamaokegawaarakawayoshikawayokozehasudasayamahidakafukayachichibuiwatsukiryokamiyoshimikamiizumifujimiwarabiranzanmiyoshiminanoyashiosakadosugitomisatohigashichichibutodasokakukiyonokazoshiraokakasukabekounosukawajimatsurugashimamiyashirokitamotohatoyamamoroyamahatogayakumagayakawaguchinagatorokamisatomatsubushinamegawatokigawakamikawafujiminohigashimatsuyamakoshigayatokorozawas3isk01isk02ryuohkoseikonanaishorittotakashimamaibarahikonetorahimenishiazaikokagamokotoyasuotsukusatsunagahamamoriyamatoyosatotakatsukinotogawaomihachimanhigashiomiakagiunnanizumogotsuamayatsukakakinokimatsuehamadamasudahikawahikimiokuizumoyasugiyakumomisatotamayuohdahigashiizumookinoshimanishinoshimatsuwanoshimaneshimadafujiedayoshidashimodagotembaiwataatamikosaiyaizuitoizumishimahaibaramakinoharaomaezakikawanehonkannamisusonohigashiizufukuroinumazukawazufujiaraishizuokahamamatsushimizuizunokunimatsuzakimorimachiminamiizunishiizukikugawakakegawafujikawafujinomiyaujiietsugaoyamayaitaohiranikkoashikagakuroisokanumasakurashioyakarasuyamamotegiichikaikaminokawatochigihagamokanogisanobatonasumibunasushiobaranishikatautsunomiyaiwafunemashikoshimotsukeohtawaratakanezawaitanokomatsushimatokushimaichibaminamiaizumiwajikikainanmiyoshinarutomimamugiananmatsushigesanagochishishikuinakagawamachidachiyodakomaefussainagitaitochofufuchuomeotahigashiyamatotoshimaokutamaaogashimakodairaedogawaarakawahachiojishinagawatachikawashibuyasuginamihinodekiyosesumidaoshimanerimamitakahamuraadachinakanomizuhobunkyomegurominatokoganeihigashikurumekokubunjihigashimurayamamusashimurayamatamakitahinochuokotokatsushikakouzushimaogasawaraakishimakunitachishinjukusetagayamusashinohachijoitabashiakirunohinoharachizunanbukotouramisasawakasayonagokogehinoyazutottorinichinansakaiminatokawaharaoyabetairainamiasahinantoimizufuchutakaokakurobeyamadajohanatoyamatonaminyuzenfunahashinakaniikawanamerikawaunazukitogahimiuozufukumitsutateyamakamiichiiwadearidayuasainamitaijikatsuragiaridagawatanabemihamahidakakainankiminomisatoshingushirahamakamitondayurakozakoyagobokitayamawakayamakudoyamahashimotokushimotokozagawahirogawakinokawanachikatsuurarsuseroeoishidasagaeoguniasahinagaitendonanyoobanazawanishikawasakataohkuratozawamikawamamurogawayamagatafunagatatakahatashonaishinjokahokuiideyuzakawanishitsuruokakaminoyamayamanobeshiratakamurayamanakayamakaneyamahigashineyonezawasakegawamitouubeyuuabushimonosekitabuseoshimatoyotaiwakunihikarishunannagatohagihofukudamatsutokuyamashowadoshitsurunanbukoshukaiminami-alpsnirasakikosugeotsukioshinohokutominobuyamanashifuefukichuokofuichikawamisatoyamanakakonakamichitabayamanishikatsuranarusawafujikawahayakawafujiyoshidafujikawaguchikouenohara長野京都岐阜大阪三重群馬千葉滋賀佐賀奈良adednelgaccogogror秋田愛知高知埼玉沖縄栃木熊本岩手青森山梨新潟島根鳥取長崎香川宮城石川大分宮崎茨城山口兵庫山形徳島広島福島福岡岡山富山静岡愛媛福井東京xn--4it168dhatenadiaryxn--vgu402ckawaiishophatenablogcocottenamaste北海道penneehimeiwateversestabachibashigagonnagunmapermahaccaakitaosakauh-ohblushkochiaichifukuikuroncapooitigohyogotokyokyotopunyuthickcheap0t00g00j0mie2-ddaapyawjg0amfemsubxiiboomoobutchueekpgwrgrherskrboyrdyupperunderflierchipsmydnsheavyangryhippygirlyrulez神奈川鹿児島和歌山bambinaxn--nit225kokayamasaitamaxn--k7yn95exn--1lqs03nsapporoparasitelolipopmcxn--efvn9sniigatafukuokatokushimafukushimahiroshimakagoshimafakefurokinawaxn--8pvr4ucoolblogxn--0trq7p7nnkawasakinagasakimiyazakichilloutxn--8ltr62kxn--klty5xpeeweezombiecutegirlxn--rny31hxn--uuwu58axn--ntso0iqx3axn--djrs72d6uytoyamanikitanyantakagawamimozanagoyaboyfriendxn--2m4a15egreaterchowderegoismyamagatafashionstorexn--elqq16hxn--pssu33lsendaimiyagixn--rht27zpecoriaomorisaloonwatsonvivianxn--djty4knobushipigboatnaganopinokoxn--f6qx53asadistvelvetsecretxn--5js045dchicappayamanashiibarakidigickgirlfriendxn--1lqs71dmongolianxn--c3s14mxn--qqqt11mtochigixn--5rtq34kparallelo0o0mondkobesagabonadecaoitanarafoolkilldecimainhiholomosblokilociaoundopupugifutankcrapflopnooroopsmodsholyjeezstripperpepperbittershizuokaxn--rht3dkitakyushureadymadeicurusversusmatrixxn--rht61ehungryfloppygloomycrankyhandcraftedlittlestarxn--klt787dxn--kltx9awhitesnowsunnydaytottorilovepoptheshopbuyshopxn--5rtp49cxn--d5qv7z876cwebaccelxn--kbrq7oxn--4pvxsxn--1ctwolovesickkumamotocatfoodxn--tor131oyokohamawakayamatonkotsuxn--ehqz56nxn--uist22hxn--6btw5axn--kltp7dyamaguchifrenchkisspussycatxn--4it797kxn--uisz3gbabybluexn--zbx025dnetgamersxn--7t0a264ckanagawaxn--6orx2rishikawaxn--ntsq17ghalfmoonschoolbusjellybeanxn--mkru45iusercontentlolitapunkxn--32vp30hsakurastoragehokkaidoshimanecandypopbabymilksupersaleweblikeraindropbackdropwebsozaikikirarahateblodaynightmeneacsccogoormobiinfoaeusxxorgmilcomnetedugovorgcomnetedugovbizinfotmprdorgmilcomnomedugovassnotairespresseassocoopgouvveterinairemedecinpharmaciensorgnetedugovtraorgcomedurepgovmeneperekgacscaiiocogoitoresmshsseoulbusanulsandaeguc01milvkimmvchungnamjeonnamjeonbukeliv-dnsgyeonggijejueliv-cdnincheondaejeongangwongyeongbukgwangjuchungbukgyeongnameliv-apicoeduindorgcomembnetedugovorgmilcomnetedugovjcloudorgcomnetintedugovperbnrinfocooyorgcomnetedugovipfscanvamypepw3sstorachakeeneticjoinmcinbrowserdwebcyonnftstoragemyfritzaemewphlxachotelltdorgcomwebsocschngonetintedugrpgovassnomgacsccoorgnetedugovbizinfo123websiteidorgmilcomasnnetedugovconfidmedorgcomplcschnetedugovaccoorgnetgovpresstmassoirseproxaccosoundcasthoptocraftvp4c66orgnetedugovitsmcdirmyboxbarsyedgestacksynologylogintonohostwebhopdiskstationi234tcp4hoocgroknoipprivmydsddnsdnsforlohmustransipdscloudfilegear-sgbrasiliafilegearframerbarsybarsyonlinecoprdorgmilcomnomedugovinforgcomnetedugovnameacprorgcomartnetedugovpresseinfoassoinstgouvorgnycedugovbarsydscloudjuorgcomnetedugovminisiteaccoororgcomnetgovorgmilcompronetintedugovbizmuseumnameinfoaerocoopaccoorgcomnetintedugovbizcooporgcomgobneteduorgmilcomnetedugovbiznameaccoorgmilneteduadvgovcoorgcomnetaltgovforgotherhiskeeneticispmanagernomassoprod5476132eastasiacentraluswesteuropewestus2eastus2rucdnwest1-usfra1-desandboxjls-sto1jls-sto3jls-sto2aglobalabglobalsslmapprodfreetlsmaplon-1lon-2ny-1fr-1sg-1ny-2paassnwebpaashostingjelasticnordeste-idcsocuserpagescwebfileblobservicebuscoreatlricnjsjelasticwebsitestoragesezagbinruhuukjptsmyspreadshopmynetnameakamaiorigin-stagingfrom-coipv64dynv6cdn77serveblogadobeaemcloudhicamsprytdnsupno-ipownipde5ovhicpfirewall-gatewaysytesmypsxbarsyusgovcloudapimyamazemyradwebakamaihdsaveincloudfastlylbfrom-lasubsc-paysquare7in-the-bandblackbaudcdnhomelinuxoninfernoctfcloudservebbsdns-dynamiccloudfrontakamai-stagingipifonyham-radio-opsenseeringclickrisingcommunity-profrom-nylocalcertgrafana-devedgesuite-stagingcloudflareanycasteating-organicatlassian-devmydattofeste-iplocaltotorprojectknx-serveredgekeycloudflareglobalcloudyclustercasacamserveftpakamaized-stagingakamaiorigindns-cloudmyeffectboomlabotdashbuyshousestwmailhetemlazure-mobilein-dslthruhereredirectmedynuddnsbouncemesupabaseluyanicloudappakamaicloudfunctionsdebiannhlfanpgafanstatic-accessin-vpnmysynologymafeloappudohomeftptrafficmanagersiteleafseidatmemsetcloudflarecloudaccesskeyword-onazure-apiis-a-chefdoes-itgets-itwebhopselfiphomeipkicks-assedgesuitewindowsserver-ontunnelmolemydissentscrapper-sitecloudflarecnuni5srcfggffiobbzabcdenodynuopikddnsvpndnsakadnselastxkinghostvps-hostfastlyhomeunixazureedgeshopselectdontexistmyfritzcloudjiffyalwaysdatasells-itsquaresbroke-itazurefddattolocalat-band-campmeinforumfamilydsazurestaticappsdefinimabplaceddnsaliasdynaliasnow-dnsblogdnsroutingthecloudendofinternetdsmynasakamaiedgemymediapcadobeio-staticakamaiedge-stagingakamaihd-stagingddns-ipprivatizehealthinsurancelive-onkrellianschokokeksmassivegridmysecuritycamerarackmazeserveminecraftfrom-azis-a-geekakamaizedmoonscalecryptonomicoffice-on-theusgovtrafficmanageradobeioruntimeedgekey-stagingreserve-onlinechannelsdvrdnsdojousgovcloudappcdn77-sslapps-1and1podzoneazurewebsitesdynathomescaleforceyandexcloudvusercontentisa-geekcdn-edgescoaemalcesappwriteazimuthtlonarvonoticeablestorecomwebrecnetperotherfirminfoartslgdloncogoiltdorgmilcolcomplcschgenngonetedugovbiznamefirmmobiacincoorgmilcomnomwebgobnetintedubizinfocomyspreadshopdemongovtransurl123websitehosting-clusterkhplaycistrongsnesosvalervålerxn--vler-qoaossandeheroysandeherøybøboheroyherøyxn--hery-iraxn--b-5gavalerbøboxn--b-5gasandesandexn--hery-iraxn--vler-qoavålerhåreålaahavaofsfvfhlolnlalrlhmfmtmahcostntbuåstrmreigersundmyspreadshopgálsáeidsvolltingvollgildeskalflorøvadsøvardøvanylvenxn--bhccavuotna-k7astrandaxn--kvnangen-k0axn--sknland-fxaxn--mosjen-eyarakkestadhyllestadnannestadvevelstadvaapstenordre-landsondre-landsøndre-landtjieltexn--vrggt-xqadsør-aurdalsor-aurdalheradstordmoldefordeførdeseljefedjeryggehemnexn--krehamn-dxasognegranesøgnebrynetjomevallebykletokkegiskedovretjømehobølvoldasaudatolgasømnaviknadønnasomnadonnatranafrananesnaraumasmolatrænafrænalesjasmølaørstaorstahitrafloraaukraloppafrøyarissasnasahalsagalsaromsaraisaráisafroyasnåsagronghobolfjelltydalårdalardalaskimharamkraanghkekråanghkesorumbarumhurumbærumsørummodumsálátbálátfrognbjugnvåganvagangulenskienløtenlotenstrynvefsnxn--merker-kuaskaunsveiobømlobomloskjåkvardoflorovadsosalatbalatsálatklæbuklabuselbubarduulvikskjakklepprisørxn--nttery-byaeflåeidflahofmilgolholsellomskifetvikdepvgsfhsaskerrisorhamarasnesåsnesrørosrorosxn--slat-5namasoynaroyvaroyluroydyroyaskoyradoyandoyrodoymeloyradøyandøyrødøymeløyaskøylurøydyrøymåsøyværøynærøyhoylandethøylandetdivtasvuodnalørenskoglorenskognesoddtangenxn--tjme-hraxn--smla-hraxn--stjrdal-s1aunjargalillehammerunjárgaxn--hamary-fyadavvenjargaxn--bearalvhki-y4a123hjemmesidegjerdrumxn--brnnysund-m8acxn--tnsberg-q1axn--mlatvuopmi-s4axn--snsa-roaxn--skierv-utaxn--brum-voatysfjordkvafjordeidfjordkvæfjordsongdalenmjondalenmjøndalenxn--gls-elackragerogáŋgaviikagangaviikasørreisasorreisasør-varangersor-varangerxn--risr-iraskiervaxn--frna-woaxn--trna-woakvinesdalleksvikleirvikrøyrvikroyrviksvelvikvenneslaevje-og-hornnessandnessjøenmarnardalvindafjordsandefjordenebakksnillfjordullensvangxn--trany-yuabrønnøysundnamsskoganaustevollxn--stjrdalshalsen-sqbnord-aurdalnord-frontrøgstadtrogstadgrimstadflakstadgjerstadxn--sandy-yuaxn--leagaviika-52bnore-og-uvdalvegarsheixn--rlingen-mxaxn--ggaviika-8ya47hvegårsheikarlsoykvitsoymasfjordenhamaroyinderoyosteroydavvenjárgasauheradguovdageaidnuxn--vre-eiker-k8abronnoysiellakkrødsheradkrodsheradkvinnheradbrønnøyxn--mtta-vrjjat-k7afxn--lrenskog-54akvitsøyvárggátkarlsøyosterøyinderøyhamarøybronnoysundxn--aurskog-hland-jnbbahccavuotnabáhccavuotnagiehtavuoatnastor-elvdalmidtre-gauldalxn--gildeskl-g0akarasjokevenassixn--bievt-0qaxn--yer-znalebesbynessebyxn--hbmer-xqamalselvmålselvxn--unjrga-rtamøre-og-romsdalmore-og-romsdalhareidmelandørlandorlandstrandålgårdsolundalgardafjordåfjorddielddanuorrikautokeinoxn--stre-toten-zcbskodjeaejriestangeliernebamblestokkefauskesnåasesnaasekongsvingerlangevagberlevagxn--flor-jrahattfjelldalostre-totenøstre-totenvestfoldxn--mely-iraálaheadjualaheadjunordreisaxn--troms-zuaxn--lgrd-poacporsangerflatangerstavangerleikangerbremangersamnangergieldakarasjohkaxn--rdy-0nabfrostautsirasnoasatromsaxn--sr-aurdal-l8aflekkefjordjølsterjolsteraremarkhedmarknååmesjevuemienaamesjevuemiexn--vard-jrarollagmeråkermerakerorskogørskogxn--bdddj-mrabdákŋoluoktaxn--osyro-wuaaknoluoktatrysilskjervøymandaljondalbindalrindalmeldalsuldalorkdalsigdalalvdallærdalhurdalsirdalverdallerdallardaloppdalåseralaseralhadselkragerødivttasvuotnaoverhallasteinkjerxn--hnefoss-q1askedsmokorsettromsøxn--dyry-iravestre-totenmuseumxn--sandnessjen-ogbrahkkeravjufylkesbiblbájddarbajddarxn--laheadju-7yarennesøyxn--koluokta-7ya57hxn--hgebostad-g3aleirfjordstorfjordbalsfjordbåtsfjordbatsfjordmuosátbievátloabátkárášjohkanøtterøyxn--mjndalen-64anordkappláhppilahppialstahaugsiljanverranrøykenroykenhaldenlyngenbergenhortenhønefosshonefosstroandinbeiarnvarggatosoyroosøyrotromsoidrettmuosatbievatruovatloabatvoagattynsetnessetxn--indery-fyaskánitskanitraholtråholtxn--ystre-slidre-ujbandebusarpsborgbearduxn--karlsy-fyahordalandjorpelandjørpelanddeatnuringsakersør-odalsor-odalxn--slt-elabringerikeaudnedalnittedalnissedalhemsedalslattumsurnadalxn--blt-elabelverumstjørdalnaustdalhjartdalgjøvikfyresdalhasviknarviklarvikgjovikmalvikgamviklenvikporsgrunnstjordalengerdaldrobakdrøbakxn--msy-ula0hvestvagoyxn--vgan-qoaxn--ryken-vuaxn--lten-graxn--stfold-9xaxn--hpmir-xqaxn--lury-iramálatvuopmimalatvuopmitysværkirkenesbirkenesmoskenesbáidárxn--fjord-lraxn--rdal-poabahcavuotnabáhcavuotnaxn--frde-gralindåsbearalvahkixn--hobl-iraráhkkerávjuxn--loabt-0qavågåáltábodøsundlundraderådeetnetimeholeauregrueoddavagavegaranatanaarnasolasulaaltalekafusavangbergkvamåmliamlibokntinnroangranosenoslobodorøstroststatåmotamotivguprivøyeroyerliermossvossxn--nvuotna-hwalusterlunnermarkerhábmerhabmerhvalerfjalerxn--rholt-mratysvarbaidarfitjargaularhápmirhapmirmelhusfosnesøksnesoksnestysneshemnesevenesflesbergeidsbergtonsbergtønsberglindasxn--sndre-land-0cbnamsosxn--srum-graøystre-slidreoystre-slidrevestre-slidretrondheimbalestrandxn--langevg-jxaaustrheimxn--skjk-soavagsoyaveroysandoykarmoyfinnoytranoyvestbytranbysykkylvenxn--hyanger-q1aspjelkavikandasuoloxn--fl-ziaxn--drbak-wuastathellexn--sr-varanger-ggbtelemarkxn--bhcavuotna-s4axn--porsgu-sta26fčáhcesuolocahcesuoloakrehamnåkrehamnsandøykarmøyfinnøytranøyvågsøyaverøynamdalseidxn--lesund-huabadaddjaxn--vegrshei-c0axn--btsfjord-9zagildeskålporsanguxn--trgstad-r1anávuotnanavuotnahammerfestxn--sgne-graxn--brnny-wuacibestadharstadnarviikaevenáššivestnesgjemnessandnesagdenesrennesoyxn--avery-yuaxn--tysvr-vrabearalváhkikongsbergspydebergrandabergxn--andy-iradavvesiidaxn--krdsherad-m8aporsáŋgufredrikstadbjerkreimringeburennebuaurskog-holandnotteroyxn--vgsy-qoa0jxn--rmskog-byaskierváivelandbyglandfrolandaurlandforsandxn--bjddar-ptamidsundålesundalesundfetsundfarsundovre-eikerøvre-eikerakershusxn--moreke-juasørfoldøstfoldostfoldsorfoldhøyangerhoyangerlevangerorkangertanangerxn--vestvgy-ixa6olillesandulsteinxn--rennesy-v1agranvinskjervoyxn--klbu-woalavagisxn--h-2faxn--ryrvik-byakafjordkåfjordseljordfolkebiblxn--gjvik-wuajevnakerxn--kfjord-iuabudejjuxn--kranghke-b0axn--davvenjrga-y4axn--rland-uuaxn--ldingen-q1axn--mlselv-iuaxn--rady-iraxn--linds-prabrumunddalxn--ygarden-p1amo-i-ranaeidskogrømskogromskoghjelmelandxn--finny-yuaxn--sr-odal-q1axn--skjervy-v1aballangenkvanangenkvænangengratangenxn--hmmrfeasta-s4acvossevangensuohkanxn--rde-ulaxn--mli-tlaxn--ksnes-uuanordlandskanlandskånlandsortlandfuoiskuxn--rros-graxn--hcesuolo-7ya35bxn--eveni-0qa01gagaivuotnagáivuotnaxn--seral-lradrammenmodalenmosjoenjan-mayentorskensteigengloppenxn--snes-poamatta-varjjatxn--sr-fron-q1aomasvuotnajessheimbådåddjåxn--krager-gyaxn--kvfjord-nxaxn--asky-iraxn--snase-nraxn--bidr-5nacholtålenxn--vads-jraxn--jlster-byamosjøenxn--rst-0nastavernxn--ostery-fyaxn--oppegrd-ixaxn--sknit-yqaxn--risa-5naoppegårdskiptvetrendalenholtalenxn--mot-tlaxn--lhppi-xqaxn--holtlen-hxaxn--srreisa-q1akopervikxn--muost-0qaxn--bmlo-grahokksundkvalsundegersundxn--karmy-yuaullensakerxn--hylandet-54axn--kvitsy-fyaxn--bod-2nalangevågberlevågkristiansandxn--rsta-frahornindalstjørdalshalsenstjordalshalsensandnessjoenhámmárfeastaxn--lrdal-srasør-fronsor-fronnord-odalkristiansundmátta-várjjatvestvågøynesoddennotoddenbuskerudøygardenoygardensalangenlavangenralingenrælingenlodingenlødingenleaŋgaviikalaakesvuemieleangaviikauenorgexn--srfold-byaaskvollxn--rskog-uuaxn--nry-yla5gxn--vry-yla5ghammarfeastaxn--rhkkervju-01afxn--givuotna-8yakommunekrokstadelvanedre-eikerhagebostadhægebostadxn--berlevg-jxakviteseidxn--s-1faxn--l-1faxn--nmesjevuemie-tcbafuosskomoårekemoarekexn--lt-liacxn--jrpeland-54asvalbardoppegardholmestrandtvedestrandsogndalsokndalarendalsunndalfolldalxn--krjohka-hwab49jlyngdaletnedalnorddalsaltdalgausdalskedsmovaksdalgjesdalstordalxn--frya-hraaarbortedrangedalxn--smna-graaurskog-hølandxn--vg-yiabtjeldsundhaugesundlindesnesxn--mre-og-romsdal-qqbxn--dnna-gradynmerseineshacknetenterprisecloudmineaccomaorimāoriorgmilcriiwigennetschoolhealthkiwigovtgeekxn--mori-qsacloudnsparliamentcomedorgcompronetedugovmuseumwebsitekinservicebarsywebsitebuildereerobookheimdnsleapcelleero-stagetechcrscsslorigingohomecdbedeeeiemesecabgngilnlalplchfisiincnnoroptatitmtltruauhulumkdkukskjplvtrgrfrkrhrusesismycynzcznetinteduassoososcloudstgbetaaezaeuhkusjshatenadiarycdn77hoptozaptois-a-knightmyftpno-ipjpnddnssdpdnsspdnsbarsysweetpepperis-a-bruinsfanis-very-sweetservegameis-a-soxfanhomelinuxcdn77-secureservebbsmisconfusedwebredirectblogsitefreedesktopcouchpotatofriestoolforgeaccesscamis-lostreadmyblogsmall-webfedorapeopleserveftpis-a-celticsfanmywirepotagertwmailin-dslsellsyourhomeread-booksfreeddnscable-modemis-savednflfanufcfanmlbfanstuff-4-saleendoftheinternetin-vpnmy-firewallhomeftpis-localis-a-chefboldlygoingnowherewebhopselfipkicks-assroxatunkcamdvrfedoraprojectgotdnsdvrdnsdyndnspubtlspimientahomeunixdontexistfedorainfracloudwmflabsfspagesbmoattachmentsteckidsfamilydsdnsaliasdynaliasnow-dnscloudnsdoomdnsduckdnsblogdnshomednsroutingthecloudendofinternetdsmynasip-dynamicpoivronhttpbinmyfirewallis-very-evilmysecuritycamerais-a-linux-userwmcloudis-a-geektuxfamilyis-a-candidatedoesntexistis-very-badhobby-sitegame-hostaltervistais-foundis-a-patsfandnsdojohepforgepodzonedynservcollegefanis-very-goodfrom-meis-very-niceisa-geeknerdpolacmedsldingorgcomnomgobabonetedupleskaemhlxmyboxrockyprvcydeuxfleurspdnscodebergheyflowstatichostorgmilcomnomgobneteduorgcomeduiorgmilcomngonetedugovcloudns1337ngrokacorggogfamcomwebgobnetedugokgopgkpgovgosbizpasaugumicsopozpapuwmwsrprusiskwpspkppspkmpspokeoiawsawifoumsdnskokwpmuppuppsppiwwiwoowuzswkzoschrzpisdnwzmiuwwitdpssewsseumigugimoirmpinbwinbwiihupporzgwgriwupowwskrwioswuozstarostwokonsulattmpccopruszkowmyspreadshopostrodakartuzyopolegminamediaustkazgorajgoraolawailawalomzawloclradombytomjaworznotargilubinkoninzagantorunkutnokepnonakloczestsopotsanokturekplockslasksklepzarowlukowmedaidgdaorgmilrelcomnomatmgsmartneteduelkgovwawsossexbiztgorysejnytychypomorzeboleslawiechomesklepsdscloudunicloudzakopanelegnicarawa-mazbydgoszczswidnikkrasnikwloclawekbielawamragowograjeworealestatebeskidykaszubymalopolskaprzeworskswiebodzinlecznadfirmaszkolawarmiagdyniamiastakazimierz-dolnymalborkswidnicadlugolekaostrolekapodlasieelblagtravelsimplesitezachpomormielecszczecinnieruchomosciwalbrzychlezajsklublinbedzinpoznanwielunmielnooleckostarachowicedkontopowiatwroclawrybniksuwalkileborkslupskgdanskostrowwlkptarnobrzegtourismwegrowkrakowglogowyou2pilanysamailwrocinfoagroautobeepshopprivlapypiszlodzcfolksecommerce-shopmazurypulawyskoczowrzeszowpomorskiezgierzkaliszolkuszlowiczostrowiecsosnowiecmazowszewodzislawbialowiezazgorzeleckatowicepabianicejelenia-gorawolominkarpaczsieradznowarudaczeladzkonskowolaskierniewiceswinoujscieturystykabieszczadycieszynketrzynolsztynbialystokbabia-goraprochowicewarszawastalowa-wolapolkowicegorlicegliwiceponiatowalimanowalubartowaugustowkobierzyceopocznognieznoszczytnokolobrzegshoparenapodhalebielskoklodzkostargardatwithplayitownnamecoorgnetedugovacorgcomproestnetedugovbiznameislaprofinforechtngrokmedaaaacacpaenglawjurbarbarsykeeneticavocatacctcloudnsorgcomsecplonetedugov123paginaweborgcomnetintedugovnomepublidkinbarsygovx443cloudnsorgmilcomnetedugovcooporgmilcomschnetedugovnamecomcannetlibassoaemclantmcontstoreorgcomnomrecwwwbarsyfirminfoshopartsstackitmyddnswebspacelima-cityacincooxorgedugovbarsybrendlyhbvpsvpsspectrumlandinghostingacppmordoviamcprecbgorgmilcomspbnetintedumsknovgovbirrasmcdirmytismircloudvladimirnalchikadygeyamarinepyatigorskmyjinobashkiriaeurodirvladikavkazna4ugroznykustanaikalmykiacldmaildagestaniranbuildcanvaliaravalwixdevelopmentappwritemigrationneedleverceldatabasestackitcodereplravendbonporterlovableaccoorgmilnetgovcoopmedorgcompubschnetedugovservicemecomygovorggovtvmedorgcomnetedugovinfoedgfacbmlonihkutwpsryxzbdtmacfhppmyspreadshopbrandpartiorgcomfhvpress123minsidaitcouldbeworlanbibkommunalforbundfhskiopsyskomvuxkomforbnaturbruksgymnloginlineorgcomnetedugovenscaledeuusentbotdaorgmilcomnetgovnowteleporthashbangplatformlovablebarsyshopwarebasehoplixbarsyonlinemsf5gitappgitpagecofigma-govcaffeinefigmacanvasoltstputerbarsysupportchatgptsquareomniweopensocialcpanelnotionnovecorewpsquaredpreviewjelecyonbyensrhtfastvpspieboxconvexjouwwebheyflowplatformshloginlinemadethissourcecraftclouderaorgorgcomartedugouvunivmeorgcomnetedugovsurveysstatichfheiyuxs4allprojectmyfastubervibehostapp-ionosdeployagentmecoorgcomschnetedugovbizcncostoreorgmilcomneteduembaixadaconsuladokiraranohoprincipesaotomeheliohobarsystorebaseshopwaresellfyabkhaziavologdamordoviapenzalenugsochinavoiexnetspbmsknovnorth-kazakhstanashgabadkareliaarmeniageorgiavladimirnalchikivanovobukharaadygeyakhakassiakalugakrasnodarjambylaktyubinsktroitskbryanskobninskkurganazerbaijanpokrovskbashkiriatselinogradvladikavkazmurmansktulatuvamangyshlaktashkentchimkentgroznykaragandatermezarkhangelskkustanaikalmykiabalashoveast-kazakhstankaracoldagestantogliattibarsyredorgcomgobedumirenknightpointaccoorgjelasticdiscoursecleverappsschacmiincogoornetonlineshopcogoorgmilcomwebnicnetintedugovbiznametestcoorgmilcomnomnetedugovorangecloudpersoindorgcomfinnatnetgovensmincomtourismintlinfox0611oyaorgmilcomnetedugovquickconnectvpnplusnettprequalifymeaddrmyaddrntdllwadlnctvavdrk12orgmilpolbeltelcomwebgennetedutskkepgovbbsbiznameinfocoorgmilcompronetedugovbiznameinfobetter-thanworse-thansakurafromdyndnson-the-webmymailerorgmilurlcomneteduidvgovmydnsgameclubebizmeneacsccogotvorhotelmilmobiinfovodteiflgplkmsmsbcckhincndnvncoztltmkckppzpdprvcvkvlvcrkrkscxuzchernovtsyrivneyaltaodesavolynrovnolutskltdinforgcomnetedugovbizvinnicazhitomirternopilpoltavakropyvnytskyizaporizhzhiasevastopolsebastopoluzhgoroduzhhorodkharkovkharkivvinnytsiakhmelnytskyizaporizhzhecrimeaodessazhytomyrnikolaevcherkassydonetskluganskluhanskkirovogradivano-frankivskchernivtsikrymkievkyivlvivsumyzakarpattiamykolaivcherkasychernigovkhersonchernihivdnipropetrovskdnepropetrovskkhmelnitskiyneacsccogoorusorgmilcomedugovvmdhmyspreadshopadimono-ipbarsybytemarkbarsyonlinelayershiftnh-servretrosnubapicampaignservicelugaffinitylotteryweeklylotteryraffleentrygluglugsmeaccoindependent-inquestnimsitecopropymntltdorgplcschnetgovnhsbarsyindependent-commissionindependent-reviewpolicepublic-inquiryindependent-panelconnhospindependent-inquiryroyal-commissionoraclegovcloudappscck12libccphxcclibpvtparochchtrcck12libcceatonk12coglibtecgendstmusann-arborwashtenawcck12glghcck12sealibforksolympiabainbridge-islkeyporthoquiamyarrow-pointcentraliaport-townsendsequimport-ludlowrentonsilverdalebremertonredmondsheltonbellevueport-orchardport-angeleskingstonchehalisaberdeengig-harborseattlepoulsboidmdndsddemenegacalamaiavawapailalflnmdcncscohnhmihiviwiriinmntnmocoutvtctmtgunjokakwvnvprarorasmskstxwynykyazisadninsnngosrvis-bymircloudservernamepointtoenscaledland-4-salefreeddnsstuff-4-saleazure-apinoipcloudnsgolffanheliohostazurewebsitesgvorgmilcomgubneteducoorgcomnetd0egvorgmilcomnetedugovmydnsiacostoree12orgmilcomnomwebgobbibrectecnetintedugovraremprendefirminfoartseducok12orgcomnethidnsidacaiiosonlahanamhanoicamauhueorgcompronetintedugovbizbacninhtayninhhoabinhnamdinhtravinhhaiphongvinhlonghaiduongquangnamquangtrithuathienhuequangninhbacgianghaugiangquangbinhsoctrangbentrethanhphohochiminhdanangkontumhatinhkhanhhoathanhhoahealthgialailaocaiyenbaibackanngheanlonganphuyenphuthocanthodaklakdongnainameinfovinhphucdongthapkiengiangtiengiangquangngailaichaulangsonlamdongdaknonghagiangangiangcaobangbinhduongninhthuanbinhthuanbaclieuthaibinhninhbinhbinhdinhtuyenquanghungyenbaria-vungtauthainguyendienbienbinhphuocschbizputerimagine-proxyorgcomnetedugovcloud66advisormypetsdyndnsxn--8dbq2axn--4dbgdty6cxn--5dbhl8dxn--hebda8bxn--80auxn--d1atxn--c1avgxn--o1acxn--o1achxn--90azhxn--55qx5dxn--uc0atvxn--od0algxn--wcvs22dxn--gmqw5axn--mxtq1mxn--12c1fe0brxn--h3cuzk1dixn--12co0c3b4evaxn--12cfi8ixb8lxn--o3cyx2axn--m3ch0j3axn--j1adpxn--90amcxn--90a1afxn--h1ahnxn--j1ael8bxn--h1alizxn--c1avgxn--j1aefxn--80aaa0cvacxn--41acaffeineexeopentunnelbotdashtelebitorgtmaccoagricorgmilnomwebnicngonetaltedugovlawnisschoolgrondaraccoorgmilcomschnetedugovbizinfoprg1-zeropstritonstackitlimazeropsaccoorgmilgovяспборгкоммскбизмирсамаракрымсочиакодпроргобрупрצהלממשלישובאקדמיהองค์กรธุรกิจรัฐบาลศึกษาทหารเน็ต教育網絡組織公司政府個人닷넷한국澳门新闻澳門联通家電嘉里招聘通販닷컴삼성コムგეбгрфеюadcdbdgdidmdsdtdaebedeeegeiejekemenepereseveyegabacalamanauavapaqasazacfbfafgfnfpfwftfbgcgagggegkgngmgsgpgvgtgugilmlnlalclglplsltlhmimjmkmmmomambmcmdmfmgmzmpmsmtmgbbblbsbecccacnclcmcvctcscmhkhghchbhthphshlinikifigiaibicivisikninhnmncnbngnsnpnvntnjoionomobocoaofodorosotoptstttytatbtetgtithtmtltrusuvuaucueuguhulumunufjdjbjtjsjlkmkhkfkdkcktkukskpkgpmpnpkpjpgqaqmqiqsvtvcvbvmvlvrwpwtwzwbwcwawgwkwmwtrsrprgrfrercrbrarnrmrlrkrirhrwsusrssspsgsesbsaslsmsissxmxaxcxuypysylymykygybycyuztzsznzmzkzdzczbzazελευ世界台灣购物公益点看臺灣网络書籍在线网站手机机构大拿游戏信息台湾谷歌慈善商标香港中国餐厅网址中國商城食品微博政务移动集团公司八卦商店健康网店政府时尚佛山中信娱乐广东企业homedepotengineeringاماراتrepublicankuokgroupversicherungchannelcitadelxn--pgbs0dhxn--b4w605ferdstatebankwebsitexn--mgb9awbf亚马逊淡马锡alibabaxn--ngbc5azdxn--mgbbh1axn--45br5cyltoshibabuildworldcloudtradeguideplacespacedancemoviephoneprimesmilebiblestyleappleazurestoreskypegripexn--l1accdrivelottehorsehouseleasechasereisestadahondaomegaaetnaamicaninjanokiamediadeltavodkaedekaosakapizzaslingemailgmailtirolshelltmallfinallegaltotalhotelamfamforumrehabmusicciticricohcoachwatchboschearthfaithirishmiamiarchidubaiguccipraxiみんなストアセールcanonsalononionnikonepsonkoelngreensevencrownikanoradioaudioweiboglobopromogalloyahoociscorodeovideomangobingotokyovolvolottokyotophotosmartsportquesttrusthyattjetztadultcymrubaidutushuxn--kprw13dubankclickblackmerckgroupsharpcheapnowtvxn--h2brj9cקוםհայоргсрбмонкомбелмкдқазрусукрمصرقطرعربكومdadcfdmedwedredphdthdbidpidkrdmsdltdiceonewmeglemoerwecfageacbanbambaaaammakianraspacpaaxawtfbcgaegongingaigvigorgdogdhlmilrilonlaolloluoljllcalgalnflafltelsrlfrllplkimibmcamcombommomifmabbjcbscbcabnabtabmlbpubabcbbcnecincpncllcstcwtcpwcnyckfhbzhovhmoiskiobisbitcifyituipinvinwinxincbnbcnmanfangdnmenrenkpnmtnyunrunfununobiojioriohbogmofooboooooacoecoceongoproartistottnttbbtcateatlatvetpetbetnethktmitfitintjothotgotdotbotprueduicujnjyouinknhktdkappsapgapmapdnptopgopllpjmpzipvipripesqtrvdtvitvdevmovgovhivnrwlawsewnewbmwwownowhowdvrftrmtrsfrbarcartvscrseusawsupsubssbsadsddsldssasbmsmlsxxxboxfoxgmxtjxsextaxbuyflydiysoyjoyskypaydaygayxyzanzbizwebersenerpokerlameractortatarsolarລາວคอมไทยtourslocusnexuslexusgiftsbeatsboatspartspressglassswissकॉमनेटtiresgivescodeshomesgamestunesshoescardswalesloansvegastoolsdealsautosparisファッションworkssucksrocksxeroxforexfedexpartylillymoneystudyrugbytoraytoday中文网xn--unup4y天主教飞利浦新加坡enterprises我爱你嘉里大酒店christmasxn--fct429kholdingsxn--8y0a063axn--mgbx4cd0ablifestyleabogadoallstatenetbankكاثوليكxn--s9brj9cxn--gk3at1ebestbuycharityxn--55qx5dmicrosoftpropertybasketballhomegoodscorsicajewelrygallerygrocerysurgerycountrybrusselsverisignferreroxn--czr694bhdfcbankcommbanksoftbankپاكستانپاکستانnextdirectالسعوديهالعليانxn--h2brj9c8cxn--80adxhksshikshaxn--mgbai9azgqp6jcuisinellabarclayscatholicxn--kpry57dcompanyxn--xhq521bblackfridayxn--mgba3a3ejtsandvikxn--d1acj3bacademydownloadمليسياxn--j1amhxn--w4r85el8fhu5dnraipirangaathletaxn--fhbeixn--mgbqly7cvafrzuerichxn--c2br7gஇலங்கைcontractorsxn--io0a7igraphicsinsurancetemasekxn--xkc2al3hye2amotorcyclesphotographydirectoryplumbingxn--vhquvclothingtrainingcleaningwilliamhilllightingxn--mgba3a4f16ashoppingcateringeducationokinawapicturesventuresproductionsxn--9et52uwalmartഭാരതംsupportrealestatecapitalonexn--nqv7fs00emaauspostfloristdentistxn--qxamgodaddybradescobargainsmitsubishikerryhotelsxn--9dbq2axn--3pxu8kimmobilienxn--fjq720axn--mgbtx2bholidaymckinseymadridbusinessbuildershelsinkixn--4gbrimмоскваالسعودیةcoffeedegreelacaixapartnersalsaceofficeabbvievoyageorangegeorgeonlinechromemobilekindlegoogleoraclecircleschulesecureinsurexn--mgba7c0bbn0aestatexn--mgbc0a9azcgcruisehangoutxn--vuq861bxn--42c2d9arexrothfirestoneuniversityxn--nnx388alifeinsuranceextraspaceонлайнvermögensberatersoftwarexn--fiqs8sxn--mgbab2bdxn--w4rs40ltiendaभारतम्africatoyotaotsukasakuracameracreditcardnagoyaconsultingnetworkjunipertheatermonsterprogressivepioneerxn--55qw42gracingdatingvotingvikinglivinggivingxn--bck1b9a5dre4cbrotherweatherjoburgفلسطينlplfinancialxn--clchc0ea0b2g2a9gcdfutbolschoolsocialglobaldentalwoodsidechanelairtelmatteltravelrealtorwebcamstreamభారత్unicomalstomxn--nodexn--6frz82gmuseumfurniturexn--rvc1e0am3exn--mix891faccenturexn--11b4c3dismailineustardiscountquebeccomsecclinicservicesxn--y9a3aqxn--c1avgswatchchurchsearchالاردنmarketingcontacthealthmonashshoujisanofitaipeiamericanexpresssuzukiアマゾンクラウドポイントbhartiグーグルxn--mgberp4a5d4armemorialxn--1qqw23alondonmormoninstitutevisionbostonnortoncouponmaisonamazonvirginberlindesigndurbanolayannissananquanxihuanhitachikaufengardenreisenbayerntechnologydatsunxn--90a3aclatinocasinostudiophysioxn--ngbe9e0apharmacytattootaobaoaramcoexpertreportabbottdirectselectimamatfairwindspictettargetmarketintuittravelersinsurancecreditdupontryukyusuppliesxn--tckwebnpparibasschmidtmerckmsdyodobashirestaurantbridgestonecricketxn--fpcrj9c3dbostikbroadwayattorneylefrakemerckxn--fiq228c5hscareersfarmerswinnersflowersxn--wgbh1cguitarsxn--54b7fta0ccxn--p1acfmakeupgalluplandroverxn--kcrx77d1x4agoldpointbauhausxn--mgbayh7gpahiphopplaystationxn--mgba3a4fraxn--eckvdtc9dhyundaixn--gckr3f0fistanbulticketsmarketsflightschintaireviewsxn--3e0b707ewindowsxn--fiqz9sfinancialxn--fzys8d69uvgmابوظبيdiscoverreviewবাংলাxn--5su34j936bgsgmoscowobserverapartmentsдетиارامكوсайтeurovisionxn--i1b6b1a6a2exn--xkc2dl3a5ee0hتونسموقعبارتڀارتشبكةعمانبيتكعراقreadkredbondlandbandfundfoodprodgoldfordtubecafesafelifeggeeieeefreefagepagegugezonewinememenamegamesaleablebikenikelikecarecbreherefiresaveloveliveblueartedatesitevotecaseluxebofamodaltdaasdatiaayogasinavanashiaasiajavabbvatevavivadatazaraarpacasavisasncfprofmaifsurfgolfdvagsongbingpingwangkpmggoogblogpohlfailcooldellcalldeallidlsarlfilmteamroomfarmimdbarabclubhdfcicbchsbcgmbhrichtechfishdishcashminiernikddiaudiwikimobitaxicitikiwidesiqponskinloanakdnwienopenporncerntownimmolimoolloinfonicofidolegosaxozeroaerovivoautovotomotofastbestresthostpostnextlgbtchatseatgiftmeetdietreitmintrentgentspotscotguruitausohumenucyoubanklinkpinkdclktalksilkbookseekworkrsvpaarpjeepshopcoophelpcamppccwshowbeerstarruhrflirweirhaircarsparsjprshausplusnewstipstoysjobskidsfanspicsdocsxboxamexsexynavycitysonyarmyallybabyplaydeliverybuzzgbizlamborghiniphilipsලංකාಭಾರತfitnessexpresslanxesspfizercenterwalterlawyersoccercareerkosherbrokerlockerdealerdoctorauthorxn--mgbqly7c0a67fbcvermögensberatungjaguarxn--pssy2uxn--hxt814eflickrrepairrogersairbusxn--mgbai9a5eva00beventsyachtsxn--t60b56aভাৰতভারতभारतभारोतviajeshermeshughesxn--j1aefसंगठनvillasଭାରତclaimshotelsભારતzapposphotosjuegoscondostatamotorsgratistennisਭਾਰਤtkmaxxtjmaxxschaeffleryandexxn--80aswgrealtysafetybeautyluxuryxn--3ds443gsupplyfamilyxn--o3cw4hhockeysydneyxn--90aenissayalipayenergycomputeragencyxn--rovu88b電訊盈科xn--gecrj9cstatefarmaccountantaquarelleolayangroup香格里拉xn--p1ai组织机构xn--1ck2e1bxn--mgbt3dhdschwarzموريتانياabudhabinowruzkomatsufujitsuhospitalxn--80asehdbxn--mgbtf8flxn--j6w193gxn--yfro4i67oprudentialxn--flw351ecruisescoursesrecipesxn--e1a4cferrarixn--ses554gxn--wgbl6awatchesstaplessinglesxn--mgbcpq6gpa1axn--otu796dpropertiescreditunionxn--mgbah1a3hjkrdstockholmhisamitsuالسعوديةstcgroupdomainsoriginscouponsbloombergclubmedfroganslimitedxn--80aqecdr1aexposedinternationalequipmentbarclaycardxn--q7ce6axn--mgbi4ecexpprotectionassociatesconstructionxn--cck2b3bxn--45q11candroidfoundationישראלxn--mgbca7dzdocliniqueboutiqueengineerxn--qxa6asystemsfirmdalefashionauctionxn--nqv7finfinitirentalsreliancetradingweddingfishinghostinggentingbookingcookingxn--3hcrj9cgraingerxn--czrs0tdemocratsamsungyokohamaxn--h2breg3evexn--nyqy26alundbeckmelbournevacationssolutionsfrontierxn--vermgensberatung-pwbmanagementxn--cg4bkixn--mgb2ddeslincolnhamburgsandvikcoromantblockbusterairforcebarefootxn--4dbrk0ceinvestmentsfeedbackcommunityxn--ngbrxالبحرينdiamondsamsterdamhealthcareredumbrellaxn--mxtq1mxn--2scrj9cagakhanxn--mgbpl2fhкатоликcaravanசிங்கப்பூர்richardlimortgageamericanfamilyxn--fzc2c9e2cscholarshipssaarlandxn--imr513nvlaanderensamsclubgoodyearkitchenஇந்தியாweatherchannelallfinanzxn--kput3iالسعودیۃxn--90aisxn--efvy88hالجزائرxn--mgbaam7a8hexchangejpmorganxn--tiq49xqyjfidelitysecurityxn--mk1bu44cwanggouxn--fiq64bxn--6qq986b3xlxn--mgbbh1a71exn--80ao21amarshallsxn--5tzm5gtravelerspanasoniclatrobeyoutubeaccountantsxn--rhqv96gxn--cckwcxetdanalyticsxn--ygbi2ammxبازاربھارتسوريةorganicfreseniusسورياxn--9krt00axn--qcka1pmcxn--jlq480n2rgdeloittesciencefinancexn--jvr189mxn--30rr7yhomesensehotmailbaseballfootballleclercboehringerxn--q9jyb4cxn--mix082fاليمنهمراهpolitieسودانايرانایرانnetflixyamaxunxn--lgbbat1ad8jcollegestoragecapetowncolognekerrypropertiesxn--mgbgu82axn--ogbpf8flxn--czru2dwhoswhociprianilasallexn--g2xx48cforsalebanamexaudiblexn--vermgensberater-ctbxn--zfr164bericssonvanguardxn--45brj9cindustriestheatremarriottxn--3bst00mcomparexn--mgberp4a5d4a87gcapitaldigitalالمغربbarcelonashangrilaxn--d1alfcalvinkleinwwwcitysapporokawasakinagoyasendaikobekitakyushuyokohamackjp",F7=621,Y7=625,xx=ss.length,kx=Vc.length,wx=new Uint32Array(kx),Oc=new Uint32Array(kx),kp=new Int32Array(xx).fill(-1);for(let e=0,n=0;e<xx;e+=1)for(let s=Lc[e];s<Lc[e+1];s+=1){wx[s]=n;const r=n+Vc[s];let u=5381;for(let f=r-1;f>=n;f-=1)u=u*33^xp.charCodeAt(f);Oc[s]=u>>>0,Vc[s]===1&&xp.charCodeAt(n)===42&&(kp[e]=s),n=r}let Rn=-1,wp=0,Sp=0;function Oy(e,n,s,r){if(Vc[e]!==r)return!1;const u=wx[e];for(let f=0;f<r;f+=1)if(xp.charCodeAt(u+f)!==n.charCodeAt(s+f))return!1;return!0}function qy(e,n,s,r,u){let f=Lc[e],g=Lc[e+1];for(;f<g;){const b=f+g>>>1,x=Oc[b];if(x<n)f=b+1;else if(x>n)g=b;else{for(let k=b;k>=f&&Oc[k]===n;k-=1)if(Oy(k,s,r,u))return k;for(let k=b+1;k<g&&Oc[k]===n;k+=1)if(Oy(k,s,r,u))return k;return-1}}return-1}function By(e,n,s){let r=n,u=e.length,f=5381;Rn=-1;for(let b=e.length-1;b>=0;b-=1){const x=e.charCodeAt(b);if(x===46){const k=b+1;let S=qy(r,f>>>0,e,k,u-k);if(S===-1&&(S=kp[r]),S===-1)return Rn!==-1;r=Ry[S],(ss[r]&s)!==0&&(Rn=r,wp=k,Sp=u),u=b,f=5381}else f=f*33^x}let g=qy(r,f>>>0,e,0,u);return g===-1&&(g=kp[r]),g!==-1&&(r=Ry[g],(ss[r]&s)!==0&&(Rn=r,wp=0,Sp=u)),Rn!==-1}function Sx(e,n,s){if(Z7(e,n,s))return;const r=(n.allowPrivateDomains?2:0)|(n.allowIcannDomains?1:0);if(By(e,Y7,r)){s.isIcann=(ss[Rn]&1)!==0,s.isPrivate=(ss[Rn]&2)!==0,s.publicSuffix=e.slice(Sp+1);return}if(By(e,F7,r)){s.isIcann=(ss[Rn]&1)!==0,s.isPrivate=(ss[Rn]&2)!==0,s.publicSuffix=e.slice(wp);return}s.isIcann=!1,s.isPrivate=!1;const u=e.lastIndexOf(".");s.publicSuffix=u===-1?e:e.slice(u+1)}const $c=Q7();function X7(e,n){return bx($c),vx(e,0,Sx,n,$c).hostname}function J7(e,n){return bx($c),vx(e,5,Sx,n,$c).domainWithoutSuffix}const W7={allowPrivateDomains:!0};new R7({fuzzyLink:!0,fuzzyEmail:!1}).tlds(O7);function o0(e){if(e==null)return null;const n=e.trim();if(!n)return null;const s=X7(n);return s?s.replace(/^www\./i,"").toLowerCase():null}function e_(e){return e==null||e.trim()===""?"":J7(e,W7)?.toLowerCase()??""}const t_=new Intl.Segmenter("en",{granularity:"word"}),a_=/[\p{L}\p{N}]+/gu;function n_(e){return e.normalize("NFKC").toLocaleLowerCase("en")}function i_(e){const n=[];for(const s of t_.segment(e))if(s.isWordLike)for(const r of s.segment.match(a_)??[])n.push(r);return n}function s_(e){return i_(n_(e))}function os(e){return s_(e).join("")}const jx=N(["cli","api","config-file"]);function o_(e){const n=new Set,s=new Set;for(const r of e){if(n.has(r.label)){s.add(r.label);continue}n.add(r.label)}return[...s]}function r_(e,n){return n?e.some(s=>s.label===n):!0}const l_=h({displayName:o().min(1),canonicalDomain:o().min(1),ownedDomains:y(o().min(1)).optional(),aliases:y(o()).optional(),country:o().length(2),language:o().min(2),tags:y(o()).optional(),labels:Pe(o(),o()).optional(),providers:y(mt).optional(),providerModels:n0.optional(),locations:y(sa).optional(),defaultLocation:o().nullable().optional(),measurement:s0.optional(),autoExtractBacklinks:E().optional(),configSource:jx.optional()});l_.extend({name:o().trim().min(1).max(120)});const c_=h({id:o(),name:o(),displayName:o().optional(),canonicalDomain:o(),ownedDomains:y(o()).default([]),aliases:y(o()).default([]),country:o().length(2),language:o().min(2),tags:y(o()).default([]),labels:Pe(o(),o()).default({}),providers:y(o()).default([]),providerModels:n0.default({}),locations:y(sa).default([]),defaultLocation:o().nullable().optional(),measurement:s0.default(gx),autoExtractBacklinks:E().default(!1),configSource:jx.default("cli"),configRevision:m().int().positive().default(1),createdAt:o().optional(),updatedAt:o().optional()});h({id:o(),query:o(),createdAt:o()});h({id:o(),keyword:o(),createdAt:o()});h({queries:y(o().trim().min(1)).min(1)});h({keywords:y(o().trim().min(1)).min(1)});h({provider:mt,count:m().int().min(1).max(20).optional()});h({id:o(),domain:o(),createdAt:o()});h({competitors:y(o().trim().min(1)).min(1)});function jp(e){return o0(e)??e.trim().toLowerCase().replace(/^www\./,"")}function u_(e){const n=[e.canonicalDomain,...e.ownedDomains??[]],s=new Set,r=[];for(const u of n){const f=u.trim();if(!f)continue;const g=jp(f);s.has(g)||(s.add(g),r.push(f))}return r}const d_=h({name:o().min(1).max(63).regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/,{message:"Name must be a lowercase slug (letters, numbers, hyphens)"}),labels:Pe(o(),o()).optional().default({})}),m_=h({preset:o().optional(),cron:o().optional(),timezone:o().optional().default("UTC"),providers:y(mt).optional().default([]),enabled:E().optional()}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'}).optional(),p_=h({channel:$("webhook"),url:o().url(),events:y(i0).min(1)}),h_=h({gsc:h({propertyUrl:o()}).optional(),syncSchedule:h({preset:o().optional(),cron:o().optional()}).optional()}).optional(),My=y(o().min(1)),f_=h({displayName:o().min(1),canonicalDomain:o().min(1),ownedDomains:y(o().min(1)).optional().default([]),aliases:y(o().min(1)).optional().default([]),country:o().length(2),language:o().min(2),queries:My.optional(),keywords:My.optional(),competitors:y(o().min(1)).optional().default([]),providers:y(mt).optional().default([]),providerModels:n0.optional().default({}),locations:y(sa).optional().default([]),defaultLocation:o().optional(),measurement:s0.optional().default(gx),schedule:m_,notifications:y(p_).optional().default([]),google:h_,autoExtractBacklinks:E().optional().default(!1)}).superRefine((e,n)=>{e.queries!==void 0&&e.keywords!==void 0&&n.addIssue({code:"custom",message:"Use spec.queries; spec.keywords is accepted only as a legacy alias when spec.queries is omitted",path:["keywords"]});const s=o_(e.locations);s.length>0&&n.addIssue({code:"custom",message:`Duplicate location labels are not allowed: ${s.join(", ")}`,path:["locations"]}),r_(e.locations,e.defaultLocation)||n.addIssue({code:"custom",message:`defaultLocation "${e.defaultLocation}" must match a configured location label`,path:["defaultLocation"]})});h({apiVersion:$("canonry/v1"),kind:$("Project"),metadata:d_,spec:f_});const g_=2,y_=o().regex(/^[a-f0-9]{64}$/),iu=o().trim().min(1).max(256),Py=N(["sensitive","insensitive"]),ke=o().trim().min(1).max(128).regex(/^[a-z0-9][\w.~-]*$/i,"Must be a URL-safe stable key"),b_=o().trim().min(1).refine(e=>o0(e)!==null,"A competitor domain must be a valid hostname"),v_=Fe("kind",[h({kind:$("exact"),url:o().min(1),pathCase:Py}).strict(),h({kind:$("prefix"),host:o().min(1),pathPrefix:o().min(1),pathCase:Py}).strict(),h({kind:$("host"),host:o().min(1)}).strict()]),x_=h({canonicalHost:o().min(1),ownedHosts:y(o().min(1)),names:y(o().min(1))}).strict(),k_=h({projectBrand:x_}).strict(),w_=h({stableKey:ke,label:o().trim().min(1),aliases:y(o().min(1)),urlMatchers:y(v_),mentionNotApplicable:E(),discoveryIdentity:o().min(1).nullable()}).strict(),Ax=h({stableKey:ke,label:o().trim().min(1),domain:b_,aliases:y(o().min(1))}).strict(),S_=h({stableKey:ke,label:o().trim().min(1),targetKeys:y(ke),competitors:y(Ax)}).strict(),j_=N(["manual","query-set","template","discovery"]),A_=h({source:j_,sourceId:o().min(1).nullable(),capturedAt:o().datetime()}).strict(),N_=h({queryId:iu,queryText:o().min(1),provenance:A_}).strict(),C_=h({providers:y(mt).min(1),models:Pe(mt,o().min(1)),location:sa.nullable()}).strict(),__=h({stableKey:o().min(1),queryId:iu,queryText:o().min(1),context:C_,expectedSnapshots:m().int().nonnegative()}).strict(),r0=N(["branded","non-brand"]),z_=h({targetKey:ke,queryId:iu,queryClass:r0,executionNodeKey:o().min(1)}).strict(),E_=h({executionNodeKey:o().min(1),targetKey:ke,queryId:iu}).strict(),su=h({schemaVersion:$(g_),identities:k_,targets:y(w_),groups:y(S_),querySnapshots:y(N_),assignments:y(z_),executionNodes:y(__),usageEdges:y(E_),compiledChecksum:y_}).strict().superRefine((e,n)=>{const s=new Set;for(const u of e.executionNodes)s.has(u.stableKey)&&n.addIssue({code:ft.custom,path:["executionNodes"],message:`Duplicate execution node key "${u.stableKey}"`}),s.add(u.stableKey);const r=new Set(e.targets.map(u=>u.stableKey));e.usageEdges.forEach((u,f)=>{s.has(u.executionNodeKey)||n.addIssue({code:ft.custom,path:["usageEdges",f,"executionNodeKey"],message:`Usage edge references unknown execution node "${u.executionNodeKey}"`}),r.has(u.targetKey)||n.addIssue({code:ft.custom,path:["usageEdges",f,"targetKey"],message:`Usage edge references unknown Target "${u.targetKey}"`})}),e.assignments.forEach((u,f)=>{r.has(u.targetKey)||n.addIssue({code:ft.custom,path:["assignments",f,"targetKey"],message:`Assignment references unknown Target "${u.targetKey}"`})});for(const u of e.groups)for(const f of u.targetKeys)r.has(f)||n.addIssue({code:ft.custom,path:["groups"],message:`Group "${u.stableKey}" references unknown Target "${f}"`})}),l0=100;function vo(e){return h({items:y(e),nextCursor:o().min(1).nullable(),totalEstimate:m().int().nonnegative().optional()}).strict()}const c0=N(["no_completed_run","plan_v1","no_population","evidence_incomplete","not_applicable"]),Mt=Fe("state",[h({state:$("available"),value:m(),numerator:m().int().nonnegative().optional(),denominator:m().int().positive().optional()}).strict(),h({state:$("unavailable"),reason:c0}).strict()]),u0=N(["all","group","property"]),Za=N(["all","branded","non-brand"]),D_=N(["label-asc","label-desc","citationCoverage-asc","citationCoverage-desc","mentionCoverage-asc","mentionCoverage-desc"]),d0=N(["not_measured","queued","running","complete","partial","failed"]),T_=N(["run_measurement","review_flags","complete_setup","republish_setup","none"]);h({scope:u0,groupKey:ke.optional(),targetKey:ke.optional(),queryClass:Za.optional(),provider:mt.optional(),location:o().trim().min(1).optional(),from:o().trim().min(1).optional(),to:o().trim().min(1).optional(),runId:o().trim().min(1).optional(),search:o().optional(),sort:D_.optional(),cursor:o().trim().min(1).optional(),limit:m().int().positive().max(l0).optional()}).strict();const R_=h({provider:mt,mentionCoverage:Mt,citationCoverage:Mt}).strict(),O_=h({bothSignals:m().int().nonnegative(),mentionedOnly:m().int().nonnegative(),citedOnly:m().int().nonnegative(),neither:m().int().nonnegative(),notMeasured:m().int().nonnegative(),total:m().int().nonnegative()}).strict(),q_=h({targetKey:ke,label:o().min(1),mentionCoverage:Mt,citationCoverage:Mt,providers:y(R_),flags:m().int().nonnegative()}).strict(),B_=h({kind:N(["project","competitor"]),stableKey:o().min(1),label:o().min(1),domain:o().min(1),credits:m().int().nonnegative(),share:m().min(0).max(1)}).strict(),M_=h({groupKey:ke,queryClass:$("non-brand"),denominator:m().int().positive(),entries:y(B_)}).strict();h({mode:N(["active-v1","active-v2"]),scope:h({kind:u0,key:o().min(1).optional(),label:o().min(1)}).strict(),queryClass:Za,measurement:h({state:d0,currentRunId:o().min(1).optional(),displayedRunId:o().min(1).optional(),completed:m().int().nonnegative(),expected:m().int().nonnegative(),completedAt:o().datetime().optional(),includesHistoricalData:E().optional()}).strict(),nextAction:h({kind:T_,count:m().int().nonnegative().optional()}).strict(),metrics:h({propertiesMentioned:Mt,mentionCoverage:Mt,citationCoverage:Mt,brandPresence:Mt,sov:Mt.describe("Deprecated alias of brandPresence carrying the identical value. Remove once the browser migrates.")}).strict(),properties:vo(q_),outcomes:O_,flags:h({total:m().int().nonnegative()}).strict(),namedShareOfVoice:M_.optional()}).strict();const Nx=N(["sources","answers"]),P_=Nx.enum;P_.sources;h({targetKey:ke,queryClass:Za.optional(),provider:mt.optional(),location:o().trim().min(1).optional(),runId:o().trim().min(1).optional(),shape:Nx.optional(),cursor:o().trim().min(1).optional(),limit:m().int().positive().max(l0).optional()}).strict();const Cx=1,Xr=m().int().positive(),Pt=o().trim().min(1).max(128).regex(/^[a-z0-9][\w.~-]*$/i,"Must be a URL-safe stable key"),Jr=o().trim().min(1).max(256),Iy=N(["sensitive","insensitive"]);function Hc(e){const n=o0(e);if(!n)throw new Error(`Invalid measurement host: ${e}`);return n}function I_(e){const n=[];let s=!1;for(let r=0;r<e.length;r++){const u=e[r];u==="/"?(s||n.push(u),s=!0):(n.push(u),s=!1)}for(;n.length>1&&n.at(-1)==="/";)n.pop();return n.length?n.join(""):"/"}function Uy(e){try{return decodeURI(e).normalize("NFC").toLowerCase()}catch{return e.normalize("NFC").toLowerCase()}}function _x(e){const n=new URL(`https://measurement.invalid${e}`).pathname;return I_(n.replace(/%[0-9a-f]{2}/gi,s=>s.toUpperCase()))}function Ap(e){const n=e.trim();if(!n||n.includes("?")||n.includes("#")||n.includes("://")||n.includes("\\"))throw new Error(`Invalid measurement path prefix: ${e}`);const s=n.startsWith("/")?n:`/${n}`;for(const r of s.split("/")){let u;try{u=decodeURIComponent(r)}catch{throw new Error(`Invalid measurement path prefix: ${e}`)}if(u==="."||u==="..")throw new Error(`Invalid measurement path prefix: ${e}`)}try{return _x(s)}catch{throw new Error(`Invalid measurement path prefix: ${e}`)}}function U_(e){const n=/^[a-z][a-z0-9+.-]*:\/\/[^/?#]*/i.exec(e);if(!n)throw new Error(`Invalid exact measurement URL: ${e}`);return e.slice(n[0].length).split(/[?#]/,1)[0]||"/"}function Ly(e){const n=e.trim();if(!n||n.includes("\\"))throw new Error(`Invalid exact measurement URL: ${e}`);let s;try{s=new URL(n)}catch{throw new Error(`Invalid exact measurement URL: ${e}`)}if(s.protocol!=="http:"&&s.protocol!=="https:"||s.username||s.password||s.port||s.search||s.hash)throw new Error(`Invalid exact measurement URL: ${e}`);const r=Hc(s.hostname),u=Ap(U_(n));return`https://${r}${u}`}const Hr=o().trim().min(1).refine(e=>{try{return Hc(e),!0}catch{return!1}},"A target URL matcher host must be a valid hostname").overwrite(e=>Hc(e)),L_=o().trim().min(1).refine(e=>{try{return Ap(e),!0}catch{return!1}},"A target URL matcher pathPrefix must be an absolute path without query or fragment").overwrite(e=>Ap(e)),V_=o().trim().min(1).refine(e=>{try{return Ly(e),!0}catch{return!1}},"A target exact matcher must be an HTTP(S) URL without credentials, port, query, or fragment").overwrite(e=>Ly(e)),$_=Fe("kind",[h({kind:$("exact"),url:V_,pathCase:Iy}).strict(),h({kind:$("prefix"),host:Hr,pathPrefix:L_,pathCase:Iy}).strict(),h({kind:$("host"),host:Hr}).strict()]),zx=o().trim().min(1).max(256).refine(e=>os(e).length>0,"A target alias must contain mention text"),H_=Pe(o().trim().min(1),o()),G_=Hr,Ex=h({stableKey:Pt,label:o().trim().min(1),urls:y($_).min(1),aliases:y(zx),metadata:H_.optional()}).strict(),m0=h({stableKey:Pt,label:o().trim().min(1),targetKeys:y(Pt).min(1),competitors:y(G_).optional()}).strict(),Dx=h({targetKey:Pt,queryIds:y(Jr).min(1),context:sa.nullable().optional()}).strict();function K_(e,n){return e<n?-1:e>n?1:0}function Q_(e,n=s=>s){const s=new Set,r=new Set;for(const u of e){const f=n(u);s.has(f)&&r.add(f),s.add(f)}return r}function Fm(e,n,s,r,u){for(const f of Q_(n,u))e.addIssue({code:"custom",path:[...s],message:`Duplicate ${r}: ${f}`})}function Vy(e){if(e.kind==="host")return{host:e.host,pathname:null};if(e.kind==="prefix")return{host:e.host,pathname:e.pathPrefix};const n=new URL(e.url);return{host:Hc(n.hostname),pathname:_x(n.pathname||"/")}}function Z_(e,n,s,r){return e===s||(n==="insensitive"||r==="insensitive")&&Uy(e)===Uy(s)}function F_(e,n){if(e.kind!==n.kind)return!1;const s=Vy(e),r=Vy(n);return s.host!==r.host?!1:e.kind==="host"||n.kind==="host"?!0:Z_(s.pathname,e.pathCase,r.pathname,n.pathCase)}function Y_(e){const n=new Set;return[...e].sort(K_).filter(s=>{const r=os(s);return n.has(r)?!1:(n.add(r),!0)})}const Tx=h({schemaVersion:$(Cx),targets:y(Ex).min(1),groups:y(m0).optional(),targetQuerySelections:y(Dx).optional()}).strict().superRefine((e,n)=>{const s=e.groups??[],r=e.targetQuerySelections??[];Fm(n,e.targets.map(x=>x.stableKey),["targets"],"target stable key"),Fm(n,s.map(x=>x.stableKey),["groups"],"group stable key");const u=new Set(e.targets.map(x=>x.stableKey)),f=new Set(s.map(x=>x.stableKey));for(const x of u)f.has(x)&&n.addIssue({code:"custom",path:["groups"],message:`Target and group stable keys must be globally unique: ${x}`});const g=new Map,b=[];e.targets.forEach((x,k)=>{for(const S of Y_(x.aliases)){const A=os(S),j=g.get(A);j&&j!==x.stableKey&&n.addIssue({code:"custom",path:["targets",k,"aliases"],message:`Target alias is already assigned to target ${j}: ${S}`}),g.set(A,x.stableKey)}x.urls.forEach((S,A)=>{b.find(D=>D.targetKey!==x.stableKey&&F_(D.matcher,S))&&n.addIssue({code:"custom",path:["targets",k,"urls",A],message:"Target URL matcher has an equal-specificity cross-target tie"}),b.push({targetKey:x.stableKey,matcher:S})})}),s.forEach((x,k)=>{Fm(n,x.targetKeys,["groups",k,"targetKeys"],"group target key");for(let S=0;S<x.targetKeys.length;S++){const A=x.targetKeys[S];u.has(A)||n.addIssue({code:"custom",path:["groups",k,"targetKeys",S],message:`Unknown target: ${A}`})}}),r.forEach((x,k)=>{u.has(x.targetKey)||n.addIssue({code:"custom",path:["targetQuerySelections",k,"targetKey"],message:`Unknown target: ${x.targetKey}`})})});Tx.transform(e=>({...e,groups:e.groups??[],targetQuerySelections:e.targetQuerySelections??[]}));h({expectedActiveRevision:Xr.nullable(),plan:Tx}).strict();const X_=h({queryId:Jr,queryText:o().min(1)}).strict(),p0=h({stableKey:o().min(1),queryText:o().min(1),context:sa.nullable(),expectedSnapshots:m().int().nonnegative()}).strict(),J_=h({kind:$("baseline"),executionNodeKey:o().min(1),queryId:Jr}).strict(),W_=h({kind:$("target"),executionNodeKey:o().min(1),queryId:Jr,targetKey:Pt}).strict(),Np=Fe("kind",[J_,W_]),Rx=h({code:$("target-alias-prefix-overlap"),message:o().min(1),targetKeys:y(Pt).min(1),aliases:y(o().min(1)).min(1)}).strict(),Ox=Ex.extend({mentionNotApplicable:E()}),qx=h({schemaVersion:$(Cx),defaultContext:sa.nullable(),effectiveOwnedHosts:y(Hr),projectCanonicalHost:Hr,projectBrandNames:y(zx),targets:y(Ox),groups:y(m0),targetQuerySelections:y(Dx),querySnapshots:y(X_),executionNodes:y(p0),usageEdges:y(Np),warnings:y(Rx)}).strict(),ez=qx,Bx=Fe("schemaVersion",[qx,su]),h0=o().regex(/^[a-f0-9]{64}$/),f0=o().datetime(),Mx=h({schemaVersion:$(1),providers:y(o().min(1)).min(1),models:Pe(o().min(1),o().min(1)),checksum:o().regex(/^[a-f0-9]{64}$/)}).strict(),tz=h({groups:y(Pt).optional(),targets:y(Pt).optional()}).strict(),az=h({groups:y(Pt),targets:y(Pt),queries:y(o().min(1)),resolvedTargets:y(Pt)}).strict().superRefine((e,n)=>{e.resolvedTargets.length===0&&e.queries.length===0&&n.addIssue({code:"custom",path:["resolvedTargets"],message:"A recorded scope must name something it measured"})});h({stableKey:Pt,retiredAt:o().datetime()});h({active:h({revision:Xr,checksum:h0,createdAt:f0,plan:Bx}).nullable()});h({versions:y(h({revision:Xr,checksum:h0,createdAt:f0,active:E()}))});h({version:h({revision:Xr,checksum:h0,createdAt:f0,active:E(),plan:Bx})});const qc=h({targets:m().int(),groups:m().int(),queries:m().int(),executionNodes:m().int(),usageEdges:m().int(),baselineEdges:m().int(),targetEdges:m().int(),dedupSavings:m().int()}).strict(),nz=N(["invalid-authoring","duplicate-identity","unknown-target","unknown-query","invalid-project-context","unowned-target-url","owned-competitor","target-query-context-conflict","target-url-ownership-tie","target-alias-cross-target-collision","target-alias-project-brand-collision","target-alias-prefix-overlap"]),Px=h({id:nz,severity:N(["fail","warn"]),message:o().min(1),path:y(Ie([o(),m().int()]))}).strict(),iz=h({baseline:m().int().nonnegative(),target:m().int().nonnegative()}).strict(),Ix=h({ok:$(!0),checks:y(Px),executionNodes:y(p0),dedupSaved:m().int().nonnegative(),usageEdges:iz,estCostUsd:de(),plan:ez,warnings:y(Rx),counts:qc}).strict(),Ux=h({ok:$(!1),checks:y(Px).min(1),executionNodes:y(p0).length(0),dedupSaved:$(0),usageEdges:h({baseline:$(0),target:$(0)}).strict(),estCostUsd:de()}).strict();Fe("ok",[Ix,Ux]);const Ac=h({targetKey:Pt,context:sa.nullable(),queryIds:y(Jr)}).strict();function $y(e){return h({added:y(e),removed:y(e),changed:y(h({stableKey:Pt,before:e,after:e}).strict()),unchanged:y(Pt)}).strict()}const sz=Ix.extend({diff:h({activeRevision:Xr.nullable(),targets:$y(Ox),groups:$y(m0),querySelections:h({added:y(Ac),removed:y(Ac),changed:y(h({targetKey:Pt,before:Ac,after:Ac}).strict()),unchanged:y(h({targetKey:Pt,context:sa.nullable()}).strict())}).strict(),execution:h({addedNodeKeys:y(o().min(1)),removedNodeKeys:y(o().min(1)),addedUsageEdges:y(Np),removedUsageEdges:y(Np),counts:h({before:qc.nullable(),after:qc,delta:qc.nullable()}).strict()}).strict()}).strict()}).strict(),oz=Ux.extend({diff:de()}).strict();Fe("ok",[sz,oz]);const ou=N(["complete","partial","failed","unsupported"]);ou.enum;N(["proposed","alias","shared","unmatched","excluded"]);N(["primary-match","exact-slug-match","excluded-slug","shared-path","unmatched-path","alias-without-primary","unsupported-slug"]);const rz=N(["invalid-url","unowned-host","duplicate-url","url-cap-reached"]),lz=h({kind:N(["exact","prefix","suffix","contains"]),value:o().trim().min(1)}).strict(),Hy=h({host:o().trim().min(1),pathTemplate:o().trim().min(1)}).strict(),g0=h({primary:Hy,aliases:y(Hy).optional(),excludedSlugSuffixes:y(o().trim().min(1)).optional(),excludedSlugPatterns:y(lz).optional()}).strict();h({sitemapUrl:o().url().refine(e=>{try{const n=new URL(e).protocol;return n==="http:"||n==="https:"}catch{return!1}},"Sitemap URL must use http or https"),rule:g0,maxUrls:m().int().positive().max(1e4).optional()}).strict();const Ym=h({url:o(),canonicalUrl:o().nullable(),classification:N(["shared","unmatched","excluded"]),reason:N(["excluded-slug","shared-path","unmatched-path","alias-without-primary","unsupported-slug"])}).strict().superRefine((e,n)=>{({shared:["shared-path"],unmatched:["unmatched-path","alias-without-primary","unsupported-slug"],excluded:["excluded-slug"]})[e.classification].includes(e.reason)||n.addIssue({code:"custom",message:"Discovery classification and reason do not match"})}),cz=h({classification:$("proposed"),reason:$("primary-match"),stableKey:Pt,slug:o().trim().min(1),label:o().trim().min(1),primaryUrl:o().url(),aliasCoverageUrls:y(o().url())}).strict(),uz=h({classification:$("alias"),reason:$("exact-slug-match"),slug:o().trim().min(1),url:o().url(),targetStableKey:Pt}).strict(),dz=h({kind:rz,url:o(),canonicalUrl:o().nullable(),duplicateOf:o().optional()}).strict();h({proposed:y(cz),aliases:y(uz),shared:y(Ym),unmatched:y(Ym),excluded:y(Ym),diagnostics:y(dz)}).strict().superRefine((e,n)=>{const s=[["shared",["shared"]],["unmatched",["unmatched"]],["excluded",["excluded"]]];for(const[r,u]of s)for(const f of e[r])u.includes(f.classification)||n.addIssue({code:"custom",path:[r],message:"Discovery item is in the wrong result bucket"})});const y0=N(["assigned","sibling","ownedUnmapped","external","ambiguous","invalid"]),Lx=N(["baseline","target"]),Vx=N(["incomplete","evidence-incomplete","no-population","aliasless","no-competitors","no-project-aliases"]),rs=Ie([h({numerator:m().int().nonnegative(),denominator:m().int().positive(),rate:m().min(0).max(1)}).strict(),h({numerator:de(),denominator:de(),rate:de(),reason:Vx}).strict()]).superRefine((e,n)=>{e.numerator!==null&&e.numerator>e.denominator&&n.addIssue({code:"custom",path:["numerator"],message:"Rate numerator cannot exceed denominator"})}),mz=o().trim().min(1).overwrite(e=>e.toLocaleLowerCase("en")),pz=h({executionId:o().trim().min(1),queryText:o().trim().min(1),provider:mz,context:sa.nullable(),requestedModel:o().trim().min(1).optional()}).strict();h({schemaVersion:$(1),expectedSlots:y(pz)}).strict().superRefine((e,n)=>{const s=new Set;for(const[r,u]of e.expectedSlots.entries()){const f=[u.executionId,u.provider].join("\0");s.has(f)&&n.addIssue({code:"custom",path:["expectedSlots",r],message:"Duplicate expected provider slot"}),s.add(f)}});const ru=h({executed:m().int().nonnegative(),expected:m().int().nonnegative(),complete:E(),sourceComplete:E(),sourceCompleteObservations:m().int().nonnegative(),answerComplete:E()}).strict(),Gy=Ie([h({domain:o().trim().min(1),own:E(),presentIn:m().int().nonnegative(),of:m().int().positive()}).strict(),h({domain:o().trim().min(1),own:E(),presentIn:de(),of:de(),reason:Vx}).strict()]),hz=h({domains:y(Gy),providers:y(h({provider:mt,domains:y(Gy)}).strict())}).strict(),fz=h({provider:mt,completeness:ru,answerCoverage:rs}).strict(),gz=h({id:o().trim().min(1),label:o().trim().min(1),targetIds:y(o().trim().min(1)),completeness:ru,answerCoverage:rs,targetCoverage:rs,sov:hz,providers:y(fz)}).strict(),yz=h({provider:mt,completeness:ru,citationCoverage:rs,mentionCoverage:rs}).strict(),bz=h({id:o().trim().min(1),label:o().trim().min(1),completeness:ru,citationCoverage:rs,mentionCoverage:rs,providers:y(yz)}).strict(),$x=h({observationId:o().trim().min(1),expectedSlotId:o().trim().min(1),executionId:o().trim().min(1),usageEdgeId:o().trim().min(1),usageEdgeType:Lx,provider:mt,queryText:o().trim().min(1),location:o().nullable(),sourceUrl:o(),bridged:E(),historical:E(),evidenceComplete:E(),classification:y0,normalizedUrl:o().nullable(),matchedTargetIds:y(o().trim().min(1)),matchedUrlIds:y(o().trim().min(1))}).strict(),vz=h({sourceUrl:o(),normalizedUrl:o().nullable(),classification:y0,matchedTargetIds:y(o().trim().min(1)),matchedUrlIds:y(o().trim().min(1))}).strict(),xz=h({observationId:o().trim().min(1),expectedSlotId:o().trim().min(1),executionId:o().trim().min(1),usageEdgeId:o().trim().min(1),usageEdgeType:Lx,provider:mt,queryText:o().trim().min(1),location:o().nullable(),queryClass:Ie([N(["branded","non-brand"]),de()]),mentioned:E().nullable(),cited:E().nullable(),sources:y(vz),sourceCount:m().int().nonnegative(),sourcesTruncated:E(),bridged:E(),historical:E(),evidenceComplete:E()}).strict(),kz=h({bridgedObservationIds:y(o()),historicalObservationIds:y(o()),evidenceIncompleteObservationIds:y(o()),ambiguousObservationIds:y(o()),unmatchedObservationIds:y(o())}).strict(),wz=h({id:o().trim().min(1),status:N(["completed","partial"]),createdAt:o().datetime(),startedAt:o().datetime().nullable(),finishedAt:o().datetime().nullable()}).strict();h({revision:m().int().positive(),run:wz.nullable(),groups:y(gz),targets:y(bz),evidence:y($x),diagnostics:kz}).strict();h({property:h({targetKey:ke,label:o().min(1)}).strict(),queryClass:Za,measurement:h({state:d0,displayedRunId:o().min(1).optional(),completedAt:o().datetime().optional()}).strict(),evidence:vo($x).optional(),answers:vo(xz).optional()}).strict().refine(e=>e.evidence===void 0!=(e.answers===void 0),{message:"Exactly one of evidence or answers is present, naming the shape that was served."});const b0=N(["used","not-used","unknown","not-applicable"]);b0.enum;const v0=N(["native-auto-v1","search-required-v1"]);v0.enum;const Ka=o().trim().min(1),Wr=o().trim().min(1),Sz=o().trim().min(1),We=m().int().nonnegative(),el=h({state:d0,displayedRunId:Ka.nullable(),planRevision:m().int().positive(),completedAt:o().datetime().nullable()}).strict(),tl=h({targetKey:ke,label:Wr}).strict(),ja={runId:Ka.optional(),provider:mt.optional(),location:Sz.optional()},Gr=o().trim().min(1);h({runId:ja.runId,groupKey:ke.optional(),queryClass:Za.default("non-brand"),provider:ja.provider,location:ja.location,limit:m().int().positive().max(50).optional()}).strict();const jz=tl.extend({mentionCoverage:Mt,citationCoverage:Mt,flags:We,recommendedInstead:y(h({name:Gr,occurrences:We}).strict()).max(5),recommendedInsteadTotal:We,recommendedInsteadTruncated:E()}).strict().superRefine((e,n)=>{e.recommendedInstead.length>e.recommendedInsteadTotal&&n.addIssue({code:ft.custom,path:["recommendedInsteadTotal"],message:"Total cannot be smaller than the returned replacements"}),e.recommendedInsteadTruncated!==e.recommendedInstead.length<e.recommendedInsteadTotal&&n.addIssue({code:ft.custom,path:["recommendedInsteadTruncated"],message:"Truncation must agree with the replacement total"})}),Az=h({groupKey:ke,label:Wr,propertyCount:We,propertiesMentioned:Mt,mentionCoverage:Mt,citationCoverage:Mt}).strict();h({portfolio:h({groupKey:ke.nullable(),label:Wr.nullable(),measurementScope:Ie([N(["full","spot_check"]),de()])}).strict(),measurement:el,queryClass:Za,metrics:h({propertiesMentioned:Mt,mentionCoverage:Mt,citationCoverage:Mt}).strict(),weakestProperties:y(jz),markets:y(Az),totalProperties:We,truncated:E()}).strict();h({targetKey:ke,runId:ja.runId,provider:ja.provider,location:ja.location,queryClass:Za.optional(),offset:m().int().nonnegative().optional(),limit:m().int().positive().max(100).optional()}).strict();N(["answered","missing"]);const Cp={queryId:Ka,text:Wr,class:r0,provider:mt,requestedModel:o().nullable(),servedModel:o().nullable(),location:o().nullable()},Nz=Fe("status",[h({resultId:Ka,...Cp,status:$("answered"),mentioned:E().nullable(),cited:E().nullable(),recommendedInstead:y(Gr),answerExcerpt:o().nullable()}).strict(),h({resultId:de(),...Cp,status:$("missing"),mentioned:de(),cited:de(),recommendedInstead:y(Gr).length(0),answerExcerpt:de()}).strict()]);h({property:tl,measurement:el,queryClass:Za,questions:y(Nz),total:We,truncated:E()}).strict();h({targetKey:ke,resultId:Ka}).strict();const Cz=h({url:Ka,classification:y0,matchedTargetKeys:y(ke),assigned:E(),historical:E(),evidenceComplete:E()}).strict().superRefine((e,n)=>{e.assigned!==(e.classification==="assigned")&&n.addIssue({code:ft.custom,path:["assigned"],message:"Assigned must agree with the source attribution classification"})});h({property:tl,measurement:el,question:h({resultId:Ka,...Cp,status:$("answered")}).strict(),mentioned:E().nullable(),cited:E().nullable(),recommendedInstead:y(Gr),answer:o().nullable(),sources:y(Cz),captureStatus:Ie([ou,de()]),retrievalStatus:Ie([b0,de()]),retrievalContract:Ie([v0,de()])}).strict();h({targetKey:ke,runId:ja.runId,provider:ja.provider,location:ja.location,queryClass:Za.optional(),limit:m().int().positive().max(50).optional()}).strict();const _z=Fe("state",[h({state:$("available"),answeredResults:We,targetMissResults:We,recommendationOccurrences:We}).strict(),h({state:$("unavailable"),reason:c0}).strict()]),zz=h({name:Gr,occurrences:We,providers:y(mt).max(5),providerTotal:We,providersTruncated:E(),questions:y(Wr).max(5),questionTotal:We,questionsTruncated:E()}).strict().superRefine((e,n)=>{(e.providers.length>e.providerTotal||e.questions.length>e.questionTotal)&&n.addIssue({code:ft.custom,message:"Evidence totals cannot be smaller than returned evidence"}),e.providersTruncated!==e.providers.length<e.providerTotal&&n.addIssue({code:ft.custom,path:["providersTruncated"],message:"Provider truncation must agree with its total"}),e.questionsTruncated!==e.questions.length<e.questionTotal&&n.addIssue({code:ft.custom,path:["questionsTruncated"],message:"Question truncation must agree with its total"})});h({property:tl,measurement:el,queryClass:Za,basis:_z,competitors:y(zz),total:We,truncated:E()}).strict();h({runId:ja.runId,scope:u0.default("all"),groupKey:ke.optional(),targetKey:ke.optional(),queryClass:Za.default("all"),provider:ja.provider,location:ja.location,limit:m().int().positive().max(50).optional()}).strict().superRefine((e,n)=>{e.scope==="all"&&(e.groupKey!==void 0||e.targetKey!==void 0)&&n.addIssue({code:ft.custom,path:["scope"],message:"All scope cannot name a group or Property"}),e.scope==="group"&&(e.groupKey===void 0||e.targetKey!==void 0)&&n.addIssue({code:ft.custom,path:["groupKey"],message:"Group scope requires groupKey only"}),e.scope==="property"&&(e.targetKey===void 0||e.groupKey!==void 0)&&n.addIssue({code:ft.custom,path:["targetKey"],message:"Property scope requires targetKey only"})});const Hx=N(["no_previous_run","execution_identity_changed","incomplete","not_comparable"]),Gx=el.extend({executionIdentity:Ka.nullable(),measurementScope:Ie([N(["full","spot_check"]),de()])}).strict(),zr=Fe("state",[h({state:$("available"),previous:Mt,current:Mt,delta:m()}).strict().superRefine((e,n)=>{if(e.previous.state!=="available"||e.current.state!=="available"){n.addIssue({code:ft.custom,message:"Available deltas require two available metrics"});return}Math.abs(e.delta-(e.current.value-e.previous.value))>Number.EPSILON&&n.addIssue({code:ft.custom,path:["delta"],message:"Delta must equal current minus previous"})}),h({state:$("unavailable"),reason:c0}).strict()]);h({current:Gx,comparison:Fe("state",[h({state:$("available"),previous:h({displayedRunId:Ka,planRevision:m().int().positive(),completedAt:o().datetime().nullable(),executionIdentity:Ka,measurementScope:N(["full","spot_check"])}).strict(),metrics:h({propertiesMentioned:zr,mentionCoverage:zr,citationCoverage:zr}).strict(),changedProperties:y(tl.extend({mentionCoverage:zr,citationCoverage:zr,flags:We}).strict()),totalProperties:We,truncated:E()}).strict(),h({state:$("unavailable"),reason:Hx}).strict()])}).strict().superRefine((e,n)=>{if(e.comparison.state==="available"){if(e.current.displayedRunId===null||e.current.executionIdentity===null){n.addIssue({code:ft.custom,path:["current"],message:"A comparison requires an identified current run"});return}e.comparison.previous.planRevision!==e.current.planRevision&&n.addIssue({code:ft.custom,path:["comparison","previous","planRevision"],message:"Comparisons cannot cross plan revisions"}),e.comparison.previous.executionIdentity!==e.current.executionIdentity&&n.addIssue({code:ft.custom,path:["comparison","previous","executionIdentity"],message:"Comparisons cannot cross execution identities"})}});h({runId:ja.runId}).strict();const Ez=N(["no_completed_run","incomplete","evidence_incomplete","no_population","not_applicable"]),lu=h({state:$("unavailable"),reason:Ez}).strict(),Dz=h({state:$("available"),expected:We,executed:We,answered:We,missing:We}).strict(),Tz=Fe("state",[Dz,lu]).superRefine((e,n)=>{e.state==="available"&&(e.executed+e.missing!==e.expected&&n.addIssue({code:ft.custom,message:"Expected must equal executed plus missing"}),e.answered>e.executed&&n.addIssue({code:ft.custom,path:["answered"],message:"Answered cannot exceed executed"}))}),Rz=h({state:$("available"),complete:We,partial:We,failed:We,unsupported:We,notRecorded:We}).strict(),Oz=Fe("state",[Rz,lu]),qz=h({state:$("available"),used:We,notUsed:We,unknown:We,notApplicable:We,notRecorded:We}).strict(),Bz=Fe("state",[qz,lu]),Mz=h({state:$("available"),expectedQuestions:We,answeredQuestions:We,missingQuestions:We}).strict(),Pz=Fe("state",[Mz,lu]).superRefine((e,n)=>{e.state==="available"&&e.answeredQuestions+e.missingQuestions!==e.expectedQuestions&&n.addIssue({code:ft.custom,message:"Expected questions must equal answered plus missing"})});h({run:Gx,completeness:Tz,capture:Oz,retrieval:Bz,population:Pz,comparison:Fe("state",[h({state:$("available"),previousDisplayedRunId:Ka}).strict(),h({state:$("unavailable"),reason:Hx}).strict()])}).strict().superRefine((e,n)=>{if(e.completeness.state!=="available")return;const s=e.completeness.executed;e.capture.state==="available"&&e.capture.complete+e.capture.partial+e.capture.failed+e.capture.unsupported+e.capture.notRecorded!==s&&n.addIssue({code:ft.custom,path:["capture"],message:"Capture counts must total executed snapshots"}),e.retrieval.state==="available"&&e.retrieval.used+e.retrieval.notUsed+e.retrieval.unknown+e.retrieval.notApplicable+e.retrieval.notRecorded!==s&&n.addIssue({code:ft.custom,path:["retrieval"],message:"Retrieval counts must total executed snapshots"})});const xo=o().regex(/^[a-f0-9]{64}$/),Qa=o().trim().min(1).max(256),Ni=m().int().positive(),Ky=h({kind:N(["user","api-key","system"]),id:o().trim().min(1),label:o().trim().min(1)}).strict(),Iz=N(["proposed","included","excluded"]),Uz=N(["manual","sitemap"]),x0=h({stableKey:ke,label:o().trim().min(1),status:Iz,aliases:y(o().trim().min(1)),urlMatchers:y(o().trim().min(1)),source:Uz,discoveredUrl:o().trim().min(1).optional(),discoveryIdentity:o().trim().min(1).optional()}).strict(),cu=h({providers:y(mt).optional(),models:Pe(mt,o().trim().min(1)).optional(),locations:y(o().trim().min(1)).optional()}).strict(),Lz=N(["branded","non-brand","unclassified"]),Vz=N(["rule","operator"]),Kx=h({targetKey:ke,queryId:Qa,contextOverride:cu.optional(),queryClass:Lz,classificationSource:Vz}).strict(),k0=Ax,Qx=h({stableKey:ke,label:o().trim().min(1),targetKeys:y(ke),competitors:y(k0)}).strict(),$z=h({sitemapUrl:o().url(),rule:g0,exclusions:y(o().trim().min(1)),inputChecksum:xo,reviewedAt:o().datetime().optional()}).strict(),Hz=h({providers:y(mt),models:Pe(mt,o().trim().min(1)).optional(),locations:y(o().trim().min(1))}).strict(),Gz=h({defaultContext:Hz,targets:y(x0),assignments:y(Kx),groups:y(Qx),discovery:$z.optional()}).strict(),Kz=h({id:o().trim().min(1),projectId:o().trim().min(1),schemaVersion:$(2),baseActiveVersionId:o().trim().min(1).nullable(),baseActiveRevision:Ni.nullable(),authoring:Gz,createdBy:Ky,updatedBy:Ky,createdAt:o().datetime(),updatedAt:o().datetime()}).strict(),w0=h({targets:m().int().nonnegative(),includedTargets:m().int().nonnegative(),assignments:m().int().nonnegative(),unclassifiedAssignments:m().int().nonnegative(),groups:m().int().nonnegative(),competitors:m().int().nonnegative()}).strict(),Qz=h({code:o().trim().min(1),message:o().trim().min(1),path:y(Ie([o(),m().int()]))}).strict(),Zz=h({etag:o().trim().min(1),changed:E(),warnings:y(Qz),counts:w0}).strict();h({draft:Kz.nullable(),etag:o().trim().min(1).nullable()}).strict();vo(x0);vo(Kx);vo(Qx);h({search:o().optional(),cursor:o().trim().min(1).optional(),limit:m().int().positive().max(l0).optional()}).strict();h({expectedActiveRevision:Ni.nullable()}).strict();h({sitemapUrl:o().url(),rule:g0,exclusions:y(o().trim().min(1)).optional()}).strict();const Fz=h({discoveryIdentity:o().trim().min(1),action:N(["create","rebind","ignore"]),targetKey:ke.optional(),label:o().trim().min(1).optional()}).strict();h({selections:y(Fz),selectedTargetKeys:y(ke).optional()}).strict().superRefine((e,n)=>{e.selections.length===0&&e.selectedTargetKeys===void 0&&n.addIssue({code:"custom",message:"A proposal or reviewed Property selection is required."}),e.selectedTargetKeys&&new Set(e.selectedTargetKeys).size!==e.selectedTargetKeys.length&&n.addIssue({code:"custom",path:["selectedTargetKeys"],message:"Property keys must be unique."})});h({target:x0}).strict();h({targetKey:ke,label:o().trim().min(1)}).strict();h({targetKey:ke,mergedKeys:y(ke).min(1)}).strict();h({targetKey:ke,cleanup:$("assignments-and-group-memberships").optional()}).strict();h({targetKey:ke,discoveryIdentity:o().trim().min(1),discoveredUrl:o().url()}).strict();const Zx={targetKeys:y(ke).optional(),groupKeys:y(ke).optional()};function Fx(e,n){(e.targetKeys?.length??0)===0&&(e.groupKeys?.length??0)===0&&n.addIssue({code:"custom",message:"At least one Target or group selector is required."})}h(Zx).strict().superRefine(Fx);const Yz=h({...Zx,queryIds:y(Qa).min(1),contextOverride:cu.optional()}).strict().superRefine(Fx);Ie([h({targetKey:ke,queryIds:y(Qa).min(1),contextOverride:cu.optional()}).strict(),Yz]);const Xz=h({groupKey:ke,label:o().trim().min(1),memberCount:m().int().positive()}).strict();h({draftEtag:o().trim().min(1),groups:y(Xz),resolvedTargetKeys:y(ke),overlapCount:m().int().nonnegative(),assignments:h({requested:m().int().nonnegative(),added:m().int().nonnegative(),alreadyPresent:m().int().nonnegative()}).strict(),execution:h({addedNodes:m().int().nonnegative(),addedProviderCalls:m().int().nonnegative(),fullRunNodes:m().int().nonnegative(),fullRunProviderCalls:m().int().nonnegative()}).strict()}).strict();h({pairs:y(h({targetKey:ke,queryId:Qa}).strict()).min(1),contextOverride:cu.optional()}).strict();Ie([h({targetKey:ke,queryId:Qa}).strict(),h({targetKeys:y(ke).min(1),queryId:Qa}).strict()]);h({targetKey:ke}).strict();h({queryClass:r0,assignments:y(h({targetKey:ke,queryId:Qa}).strict()).min(1)}).strict();h({group:h({stableKey:ke,label:o().trim().min(1),targetKeys:y(ke),competitors:y(k0).optional()}).strict()}).strict();h({groupKey:ke}).strict();h({groupKey:ke,competitor:k0}).strict();h({groupKey:ke,competitorKey:ke}).strict();const Gc=h({ruleId:o().trim().min(1),severity:N(["fail","warn"]),message:o().trim().min(1),path:y(Ie([o(),m().int()]))}).strict();Fe("ok",[h({ok:$(!0),compiledChecksum:xo,checks:y(Gc),counts:w0,plan:su}).strict(),h({ok:$(!1),compiledChecksum:de(),checks:y(Gc).min(1)}).strict()]);const Qy=h({added:y(o().trim().min(1)),removed:y(o().trim().min(1)),changed:y(o().trim().min(1)),unchanged:y(o().trim().min(1))}).strict(),Jz=h({activeRevision:Ni.nullable(),targets:Qy,groups:Qy,assignments:h({added:m().int().nonnegative(),removed:m().int().nonnegative(),reclassified:m().int().nonnegative()}).strict(),execution:h({addedNodeKeys:y(o().trim().min(1)),removedNodeKeys:y(o().trim().min(1))}).strict()}).strict();Fe("ok",[h({ok:$(!0),compiledChecksum:xo,checks:y(Gc),counts:w0,plan:su,diff:Jz}).strict(),h({ok:$(!1),compiledChecksum:de(),checks:y(Gc).min(1),diff:de()}).strict()]);h({expectedActiveRevision:Ni.nullable(),expectedCompiledChecksum:xo}).strict();h({published:E(),active:h({revision:Ni,checksum:xo,compiledChecksum:xo,createdAt:o().datetime(),plan:su}).strict()}).strict();h({discarded:E()}).strict();h({expectedActiveRevision:Ni}).strict();h({deactivated:E(),previousRevision:Ni.nullable()}).strict();const Wz=N(["republish_required","setup_in_progress","awaiting_first_run","operational","simple"]),e9=N(["republish_setup","continue_setup","run_measurement","view_measurement","start_setup"]),t9=N(["simple","draft-only","active-v1","active-v2"]);h({state:Wz,nextAction:e9,mode:t9,activeRevision:Ni.nullable(),activeSchemaVersion:Ie([$(1),$(2)]).nullable(),draft:h({etag:o().trim().min(1),updatedAt:o().datetime()}).strict().nullable()}).strict();const Yx=h({id:o().trim().min(1),projectId:o().trim().min(1),name:o().trim().min(1),description:o().nullable(),itemCount:m().int().nonnegative(),createdAt:o().datetime(),updatedAt:o().datetime()}).strict(),a9=h({queryId:Qa,queryText:o().min(1),position:m().int().nonnegative()}).strict();Yx.extend({items:y(a9)}).strict();h({querySets:y(Yx)}).strict();h({name:o().trim().min(1),description:o().nullable().optional(),queryIds:y(Qa)}).strict();const n9=h({id:o().trim().min(1),projectId:o().trim().min(1),name:o().trim().min(1),description:o().nullable(),pattern:o().trim().min(1),variables:y(o().trim().min(1)),createdAt:o().datetime(),updatedAt:o().datetime()}).strict();h({templates:y(n9)}).strict();h({name:o().trim().min(1),description:o().nullable().optional(),pattern:o().trim().min(1),variables:y(o().trim().min(1))}).strict();h({bindings:y(Pe(o().trim().min(1),o().trim().min(1))).min(1),querySetId:o().trim().min(1).optional()}).strict();h({created:y(h({queryId:Qa,queryText:o().min(1)}).strict()),existing:y(h({queryId:Qa,queryText:o().min(1)}).strict())}).strict();const Kc=o().regex(/^[a-f0-9]{64}$/),uu=m().int().positive();h({stableKey:ke,kind:N(["target","group"]),retiredAt:o().datetime().nullable()}).strict();h({csv:o()}).strict();N(["matched","ambiguous","unmatched","invalid","duplicate","proposed","excluded"]);const i9=N(["column-count","missing-property","missing-group","invalid-url","property-not-found","property-label-ambiguous","url-not-exact-match","target-proposed","target-excluded","group-label-ambiguous","group-key-conflict"]),_p=h({dataRow:uu,property:o(),group:o(),url:o().nullable(),normalizedProperty:o(),normalizedGroupLabel:o()}).strict(),Er=_p.extend({reason:i9}),s9=h({source:N(["draft-target","draft-group","persisted-segment","retired-segment","proposed-group"]),stableKey:ke,kind:N(["target","group"]).optional(),retiredAt:o().datetime().nullable().optional(),normalizedGroupLabel:o().optional()}).strict(),o9=h({proposedGroupKey:ke,evidence:y(s9).min(1)}).strict(),r9=Fe("status",[_p.extend({status:$("matched"),targetKey:ke,groupKey:ke}).strict(),Er.extend({status:$("ambiguous"),candidateTargetKeys:y(ke).min(1).optional(),candidateGroupKeys:y(ke).min(1).optional()}).strict(),Er.extend({status:$("unmatched")}).strict(),Er.extend({status:$("invalid"),groupKeyConflict:o9.optional()}).strict(),_p.extend({status:$("duplicate"),duplicateOfRow:uu,targetKey:ke,groupKey:ke}).strict(),Er.extend({status:$("proposed"),targetKey:ke}).strict(),Er.extend({status:$("excluded"),targetKey:ke}).strict()]),l9=h({normalizedGroupLabel:o(),groupKey:ke,label:o().trim().min(1),action:N(["create","extend"]),matchedRows:y(uu),targetKeys:y(ke),addedTargetKeys:y(ke),unchangedTargetKeys:y(ke)}).strict(),c9=h({dataRows:m().int().nonnegative(),matchedRows:m().int().nonnegative(),ambiguousRows:m().int().nonnegative(),unmatchedRows:m().int().nonnegative(),invalidRows:m().int().nonnegative(),duplicateRows:m().int().nonnegative(),proposedRows:m().int().nonnegative(),excludedRows:m().int().nonnegative(),needsAttention:m().int().nonnegative(),groupsReady:m().int().nonnegative(),groupsToCreate:m().int().nonnegative(),groupsToExtend:m().int().nonnegative(),membershipsReady:m().int().nonnegative(),addedMemberships:m().int().nonnegative(),unchangedMemberships:m().int().nonnegative()}).strict();h({draftEtag:o().trim().min(1),sourceChecksum:Kc,previewChecksum:Kc,rows:y(r9),groupChanges:y(l9),counts:c9}).strict();h({csv:o(),sourceChecksum:Kc,previewChecksum:Kc,acceptedRows:y(uu).min(1)}).strict().superRefine((e,n)=>{new Set(e.acceptedRows).size!==e.acceptedRows.length&&n.addIssue({code:"custom",path:["acceptedRows"],message:"Accepted CSV data rows must be unique."})});Zz.extend({appliedRows:m().int().nonnegative(),addedMemberships:m().int().nonnegative(),unchangedMemberships:m().int().nonnegative()}).strict();const Xx=N(["introduced","repointed","retired"]),u9=Xx.enum;h({modelId:o().trim().min(1),date:o().regex(/^\d{4}-\d{2}-\d{2}$/,"date must be YYYY-MM-DD"),kind:Xx,confirmed:E(),sourceUrl:o().url(),note:o().min(1)});const d9=[{modelId:"chatgpt-4o-latest",date:"2024-08-15",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Released dynamic model for chatgpt-4o-latest—this model will point to the latest GPT-4o model used by ChatGPT." First moving id in the lineage.'},{modelId:"chatgpt-4o-latest",date:"2026-02-17",kind:"retired",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/deprecations.md",note:'Shutdown 2026-02-17, replacement gpt-5.1-chat-latest. Announced under the heading "2025-11-18: chatgpt-4o-latest snapshot".'},{modelId:"gpt-5.1-chat-latest",date:"2025-11-13",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:"Introduced inside the GPT-5.1 launch entry, not as a standalone entry."},{modelId:"gpt-5.2-chat-latest",date:"2025-12-11",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:"Introduced inside the GPT-5.2 launch entry."},{modelId:"gpt-5.2-chat-latest",date:"2026-02-10",kind:"repointed",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Updated the gpt-5.2-chat-latest slug to point to the latest model currently used in ChatGPT." Target model NOT named.'},{modelId:"gpt-5.3-chat-latest",date:"2026-03-03",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Released gpt-5.3-chat-latest to the Chat Completions and Responses API. This model points to the GPT-5.3 Instant snapshot currently used in ChatGPT."'},{modelId:"gpt-5.3-chat-latest",date:"2026-03-16",kind:"repointed",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Updated the gpt-5.3-chat-latest slug to point to the latest model currently used in ChatGPT." Target model NOT named.'},{modelId:"chat-latest",date:"2026-05-05",kind:"introduced",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim: "Released chat-latest snapshot which points to the latest Instant model currently used in ChatGPT... The underlying model snapshot will be regularly updated."'},{modelId:"chat-latest",date:"2026-05-28",kind:"repointed",confirmed:!1,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'UNCONFIRMED. The entry reads "Released chat-latest snapshot..." — the verb is "Released", the same boilerplate as the 2026-05-05 entry, not "Updated" as used on 2026-06-24. Only "the latest improvements" vs "our latest improvements" differs. Either a real change logged with copy-pasted text, or a duplicated entry; the record does not disambiguate.'},{modelId:"chat-latest",date:"2026-06-24",kind:"repointed",confirmed:!0,sourceUrl:"https://developers.openai.com/api/docs/changelog",note:'Verbatim (re-read at source 2026-07-20): "Updated the chat-latest snapshot, which points to the latest Instant model currently used in ChatGPT." The verb is "Updated", unlike the "Released" boilerplate of 2026-05-05 and 2026-05-28, which is the wording the changelog reserves for a real change. Target model NOT named. The only unambiguous chat-latest change on record.'}];u9.repointed;new Set(d9.map(e=>e.modelId.toLowerCase()));const m9=N(["not-exposed","no-known-change","known-change"]);m9.enum;const p9=h({modelId:o().trim().min(1),date:o().regex(/^\d{4}-\d{2}-\d{2}$/),confirmed:E(),sourceUrl:o().url()}),h9=h({status:N(["no-known-change","known-change"]),modelIds:y(o().trim().min(1)).min(1),changes:y(p9),changeCount:m().int().nonnegative(),unverifiedChangeCount:m().int().nonnegative(),firstChangeDate:o().optional(),lastChangeDate:o().optional(),knownGoodAsOf:o(),checkedThroughPeriodEnd:E()}),f9={openai:"ChatGPT",chatgpt:"ChatGPT",anthropic:"Claude",claude:"Claude",google:"Gemini",gemini:"Gemini",perplexity:"Perplexity"};function g9(e){const n=e.trim().toLowerCase();return f9[n]??e.charAt(0).toUpperCase()+e.slice(1)}function Xm(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.floor(e):0}function Dr(e){return typeof e=="string"&&e.trim().length>=10?e.trim().slice(0,10):null}function Jm(e){return[...new Set(e.filter(n=>n!==null))].sort()}function y9(e,n){const s=g9(e),r=Array.isArray(n.changes)?n.changes:[],u=Xm(n.changeCount)||r.length,f=Math.min(u,Xm(n.unverifiedChangeCount)||Xm(n.unconfirmedChangeCount)||r.filter(S=>S.confirmed===!1).length),g=Dr(n.knownGoodAsOf),b=n.checkedThroughPeriodEnd!==!1,x={engine:s,confirmedCount:u-f,unconfirmedCount:f,knownGoodAsOf:g,checkedThroughPeriodEnd:b};if(r.length>0)return{...x,confirmedDates:Jm(r.filter(S=>S.confirmed!==!1).map(S=>Dr(S.date))),unconfirmedDates:Jm(r.filter(S=>S.confirmed===!1).map(S=>Dr(S.date)))};const k=Jm([Dr(n.firstChangeDate),Dr(n.lastChangeDate)]);return u===0?{...x,confirmedDates:[],unconfirmedDates:[]}:f===0?{...x,confirmedDates:k,unconfirmedDates:[]}:x.confirmedCount===0?{...x,confirmedDates:[],unconfirmedDates:k}:{...x,confirmedDates:[],unconfirmedDates:[]}}function b9(e){return e.length===1?e[0]:e.length===2?`${e[0]} and ${e[1]}`:`${e.slice(0,-1).join(", ")}, and ${e[e.length-1]}`}function Zy(e,n){return e.length===0?null:e.length===1&&n<=1?`on ${e[0]}`:`more than once between ${e[0]} and ${e[e.length-1]}`}function v9(e){const n=Zy(e.confirmedDates,e.confirmedCount),s=Zy(e.unconfirmedDates,e.unconfirmedCount),r=`The model behind ${e.engine}`;if(e.confirmedCount>0&&e.unconfirmedCount===0)return n?`${r} was updated ${n}, inside this period.`:`${r} was updated inside this period.`;if(e.confirmedCount===0)return s?`${r} may have been updated ${s}, inside this period, though that is not confirmed.`:`${r} may have been updated inside this period, though that is not confirmed.`;if(n&&s)return`${r} was updated ${n}, inside this period, and may also have been updated ${s}.`;const u=e.unconfirmedCount>1?"more times":"once more";return`${r} was updated inside this period, and may have been updated ${u}, though that is not confirmed.`}function Fy(e){const n=e.filter(r=>!r.checkedThroughPeriodEnd&&r.knownGoodAsOf!==null);return n.length===0?null:`We last checked for model updates on ${n.map(r=>r.knownGoodAsOf).sort()[0]}, and this period runs past that date, so there may be later updates we do not know about.`}function VL(e){const n=Object.entries(e??{}).map(([x,k])=>y9(x,k??{})).sort((x,k)=>x.engine.localeCompare(k.engine));if(n.length===0)return null;const s=n.filter(x=>x.confirmedCount+x.unconfirmedCount>0);if(s.length===0){const x=[...new Set(n.map(D=>D.engine))],k=x.length>1,S=Fy(n),A=[...new Set(n.map(D=>D.knownGoodAsOf).filter(D=>D!==null))].sort(),j=S??(A.length>0?`We last checked for model updates on ${A[0]}.`:null);return{kind:"no-known-change",text:`No model updates are on record for ${b9(x)} in this period.`,detail:`${k?"These engines":"This engine"} can be moved onto a different underlying model without the data ever showing a different model name, so we check each period against a record of known updates. Nothing is listed inside this one.${j?` ${j}`:""}`}}const r=s.reduce((x,k)=>x+k.confirmedCount+k.unconfirmedCount,0),u=s.some(x=>x.confirmedCount>0),f=r===1?"this update":"these updates",g=u?`Some of the movement in these numbers may come from ${f} rather than from a real change in how AI answers about you, so compare periods carefully.`:`If so, some of the movement in these numbers may come from ${f} rather than from a real change in how AI answers about you, so compare periods carefully.`,b=Fy(n);return{kind:"change",text:`${s.map(v9).join(" ")} ${g}${b?` ${b}`:""}`}}const Nc=h({slope:m(),intercept:m(),r2:m(),start:m(),end:m(),n:m(),startIndex:m(),endIndex:m()}),x9=N(["gsc","ga4","gbp"]);h({id:o(),domain:o(),connectionType:x9,propertyId:o().nullable().optional(),sitemapUrl:o().nullable().optional(),scopes:y(o()).default([]),createdAt:o(),updatedAt:o()});const k9=h({date:o(),query:o(),page:o(),country:o().nullable().optional(),device:o().nullable().optional(),clicks:m(),impressions:m(),ctr:m(),position:m()});N(["clicks","impressions","date"]);h({rows:y(k9),totalMatching:m(),truncated:E(),latestAvailableDate:o().nullable()});const w9=h({date:o(),clicks:m(),impressions:m(),ctr:m(),position:m().nullable()}),S9=h({startDate:o().nullable(),endDate:o().nullable(),latestDataDate:o().nullable(),daysSinceLatestData:m().nullable()}),j9=h({clicks:Nc.nullable(),impressions:Nc.nullable(),ctr:Nc.nullable(),position:Nc.nullable()});h({totals:h({clicks:m(),impressions:m(),ctr:m(),position:m().nullable(),positionDays:m(),days:m()}),daily:y(w9),window:S9.optional(),trends:j9.optional()});const A9=h({page:o(),clicks:m(),impressions:m(),ctr:m()});h({rows:y(A9),totals:h({clicks:m(),impressions:m(),ctr:m(),days:m(),coveredFrom:o().nullable(),coveredThrough:o().nullable(),complete:E()}).nullable(),totalsSource:$("property-daily"),rankedFrom:o().nullable(),rankedThrough:o().nullable()});const zp=h({id:o(),url:o(),indexingState:o().nullable().optional(),verdict:o().nullable().optional(),coverageState:o().nullable().optional(),pageFetchState:o().nullable().optional(),robotsTxtState:o().nullable().optional(),crawlTime:o().nullable().optional(),lastCrawlResult:o().nullable().optional(),isMobileFriendly:E().nullable().optional(),richResults:y(o()).default([]),referringUrls:y(o()).default([]),inspectedAt:o()});N(["stable","reindexed","deindexed","still-missing","new"]);const N9=h({url:o(),previousState:o().nullable(),currentState:o().nullable(),transitionDate:o()}),C9=h({reason:o(),count:m(),urls:y(zp).default([])});h({summary:h({total:m(),indexed:m(),notIndexed:m(),deindexed:m(),percentage:m()}),lastInspectedAt:o().nullable(),lastSyncedAt:o().nullable(),indexed:y(zp).default([]),notIndexed:y(zp).default([]),deindexed:y(N9).default([]),reasonGroups:y(C9).default([])});h({url:o(),type:N(["URL_UPDATED","URL_DELETED"]),notifiedAt:o()});const _9=h({url:o(),type:N(["URL_UPDATED","URL_DELETED"]),notifiedAt:o(),status:N(["success","error"]),error:o().optional()});h({summary:h({total:m().int().nonnegative(),succeeded:m().int().nonnegative(),failed:m().int().nonnegative()}),results:y(_9).default([])});h({date:o(),indexed:m(),notIndexed:m(),unknownPages:m().default(0),verifiedByInspection:m().default(0),derivedFromImpressions:m().default(0),reasonBreakdown:Pe(o(),m()).default({})});const z9=h({siteUrl:o(),permissionLevel:o()});h({sites:y(z9).default([])});const E9=h({type:o(),submitted:o(),indexed:o().optional().describe("Deprecated compatibility field.")}),Jx=h({path:o(),parentSitemapUrl:o().optional(),lastSubmitted:o().optional(),isPending:E().optional(),isSitemapsIndex:E().optional(),type:o().optional(),lastDownloaded:o().optional(),warnings:o().optional(),errors:o().optional(),contents:y(E9).optional()});h({sitemaps:y(Jx).default([]),summary:h({total:m().int().nonnegative(),indexes:m().int().nonnegative(),files:m().int().nonnegative()}),preferredSubmissionUrls:y(o()).default([])});h({sitemapUrls:y(o().url().refine(e=>{const n=new URL(e).protocol;return n==="http:"||n==="https:"},{message:"Sitemap URL must use http or https."})).min(1).max(50)});const D9=h({sitemapUrl:o(),status:N(["accepted","error"]),submittedAt:o().optional(),error:o().optional()});h({summary:h({total:m().int().nonnegative(),accepted:m().int().nonnegative(),failed:m().int().nonnegative()}),results:y(D9)});h({sitemaps:y(Jx),primarySitemapUrl:o(),run:h({id:o(),projectId:o(),kind:o(),status:o(),trigger:o(),createdAt:o()}).nullable()});const T9=h({name:o(),accountName:o().nullable(),type:o().nullable(),role:o().nullable()});h({accounts:y(T9),total:m().int().nonnegative()});const R9=h({id:o(),projectId:o(),accountName:o(),locationName:o(),displayName:o(),primaryCategoryDisplayName:o().nullable(),storefrontAddress:o().nullable(),websiteUri:o().nullable(),placeId:o().nullable(),mapsUri:o().nullable(),additionalCategories:y(o()),description:o().nullable(),serviceArea:Pe(o(),pa()).nullable(),regularHours:Pe(o(),pa()).nullable(),primaryPhone:o().nullable(),openStatus:o().nullable(),openingDate:o().nullable(),selected:E(),syncedAt:o().nullable(),createdAt:o(),updatedAt:o()});h({locations:y(R9),totalDiscovered:m().int().nonnegative(),totalSelected:m().int().nonnegative()});h({selectAllNew:E().default(!0),accountName:o().optional(),switchAccount:E().default(!1)});h({selected:E()});h({locationNames:y(o()).optional(),daysOfMetrics:m().int().positive().max(540).optional(),monthsOfKeywords:m().int().positive().max(18).optional()});h({runId:o(),status:o()});const O9=h({locationName:o(),date:o(),metric:o(),value:m().int()});h({metrics:y(O9),total:m().int().nonnegative()});const q9=h({locationName:o(),periodStart:o(),periodEnd:o(),keyword:o(),valueCount:m().int().nullable(),valueThreshold:m().int().nullable()});h({keywords:y(q9),total:m().int().nonnegative(),thresholdedPct:m().int().min(0).max(100)});const B9=h({locationName:o(),placeActionLinkName:o(),placeActionType:o(),uri:o().nullable(),isPreferred:E(),providerType:o().nullable()});h({placeActions:y(B9),total:m().int().nonnegative()});const M9=h({locationName:o(),populatedGroupCount:m().int().nonnegative(),syncedAt:o(),attributes:Pe(o(),pa())});h({lodging:y(M9),total:m().int().nonnegative()});const P9=h({name:o(),valueType:o(),values:y(Ie([E(),o()])),unsetValues:y(o()),uris:y(o())}),I9=h({locationName:o(),attributeCount:m().int().nonnegative(),syncedAt:o(),attributes:y(P9)});h({attributes:y(I9),total:m().int().nonnegative()});const U9=h({locationName:o(),placeId:o(),tier:o(),amenities:y(o()),syncedAt:o(),place:Pe(o(),pa())});h({places:y(U9),total:m().int().nonnegative()});h({scope:h({locationName:o().nullable(),locationCount:m().int().nonnegative()}),performance:h({totals:Pe(o(),m()),recent7d:Pe(o(),m()),prior7d:Pe(o(),m()),deltaPct:Pe(o(),m().nullable())}),freshness:h({dataThroughDate:o().nullable(),latestStoredDate:o().nullable(),pendingDays:m().int().nonnegative()}),timeseries:y(h({date:o(),pending:E(),metrics:Pe(o(),m())})),keywords:h({total:m().int().nonnegative(),thresholdedCount:m().int().nonnegative(),thresholdedPct:m().int().min(0).max(100)}),placeActions:h({total:m().int().nonnegative(),hasReservationCta:E(),hasBookingCta:E(),hasDirectMerchantCta:E()}),lodging:h({lodgingLocationCount:m().int().nonnegative(),populatedLodgingCount:m().int().nonnegative(),emptyLodgingCount:m().int().nonnegative()}),profileCompleteness:h({locationCount:m().int().nonnegative(),withSecondaryCategories:m().int().nonnegative(),secondaryCategoryTotal:m().int().nonnegative(),withDescription:m().int().nonnegative(),withServiceArea:m().int().nonnegative(),withHours:m().int().nonnegative(),withPrimaryPhone:m().int().nonnegative(),permanentlyClosed:m().int().nonnegative(),temporarilyClosed:m().int().nonnegative()})});const L9={BUSINESS_DIRECTION_REQUESTS:"Direction requests",WEBSITE_CLICKS:"Website clicks",CALL_CLICKS:"Call clicks",BUSINESS_BOOKINGS:"Bookings",BUSINESS_CONVERSATIONS:"Conversations",BUSINESS_FOOD_ORDERS:"Food orders",BUSINESS_FOOD_MENU_CLICKS:"Food menu clicks",BUSINESS_IMPRESSIONS_DESKTOP_SEARCH:"Search impressions (desktop)",BUSINESS_IMPRESSIONS_MOBILE_SEARCH:"Search impressions (mobile)",BUSINESS_IMPRESSIONS_DESKTOP_MAPS:"Maps impressions (desktop)",BUSINESS_IMPRESSIONS_MOBILE_MAPS:"Maps impressions (mobile)"};function V9(e){const n=e.replace(/^BUSINESS_/,"").split("_").filter(Boolean).map(r=>r.toLowerCase());if(n.length===0)return e;const s=n.join(" ");return s.charAt(0).toUpperCase()+s.slice(1)}function $L(e){return L9[e]??V9(e)}const $9=["BUSINESS_DIRECTION_REQUESTS","WEBSITE_CLICKS","CALL_CLICKS"],H9=["BUSINESS_IMPRESSIONS_DESKTOP_SEARCH","BUSINESS_IMPRESSIONS_MOBILE_SEARCH","BUSINESS_IMPRESSIONS_DESKTOP_MAPS","BUSINESS_IMPRESSIONS_MOBILE_MAPS"];function HL(e){return $9.includes(e)?"conversion":H9.includes(e)?"reach":"other"}h({id:o(),domain:o(),siteUrl:o().nullable().optional(),createdAt:o(),updatedAt:o()});const Wm=h({id:o(),url:o(),httpCode:m().nullable().optional(),inIndex:E().nullable().optional(),lastCrawledDate:o().nullable().optional(),inIndexDate:o().nullable().optional(),inspectedAt:o(),documentSize:m().nullable().optional(),anchorCount:m().nullable().optional(),discoveryDate:o().nullable().optional()});h({summary:h({total:m(),indexed:m(),notIndexed:m(),unknown:m().optional(),percentage:m()}),lastInspectedAt:o().nullable(),indexed:y(Wm).default([]),notIndexed:y(Wm).default([]),unknown:y(Wm).default([]).optional()});h({query:o(),impressions:m(),clicks:m(),ctr:m(),averagePosition:m()});h({date:o(),indexed:m(),notIndexed:m(),unknown:m()});const G9=h({url:o(),status:N(["success","error"]),submittedAt:o(),error:o().optional()});h({summary:h({total:m().int().nonnegative(),succeeded:m().int().nonnegative(),failed:m().int().nonnegative()}),results:y(G9).default([])});const Wx=h({url:o(),verified:E()});h({sites:y(Wx).default([])});h({connected:E(),domain:o(),siteUrl:o().nullable(),createdAt:o().nullable(),updatedAt:o().nullable()});h({connected:E(),domain:o(),siteUrl:o().nullable(),availableSites:y(Wx).default([])});h({siteUrl:o()});const K9=h({name:o(),alive:E(),lastUsed:o().nullable()});h({connected:E(),endpoint:o(),version:o().optional(),browserVersion:o().optional(),targets:y(K9).default([])});const zo=N(["live","staging"]);h({projectName:o(),url:o(),stagingUrl:o().optional(),username:o(),defaultEnv:zo,createdAt:o(),updatedAt:o()});const Yy=h({url:o(),reachable:E(),pageCount:m().nullable().optional(),version:o().nullable().optional(),error:o().nullable().optional(),plugins:y(o()).optional(),authenticatedUser:h({id:m(),slug:o()}).nullable().optional()});h({connected:E(),projectName:o(),defaultEnv:zo,live:Yy.nullable(),staging:Yy.nullable(),adminUrl:o().nullable().optional()});const Q9=h({id:m(),slug:o(),title:o(),status:o(),modifiedAt:o().nullable().optional(),link:o().nullable().optional()}),e2=h({title:o().nullable(),description:o().nullable(),noindex:E().nullable(),writable:E().default(!1),writeTargets:y(o()).default([])}),Z9=h({type:o(),json:Pe(o(),pa())}),F9=Q9.extend({env:zo,content:o(),seo:e2,schemaBlocks:y(Z9).default([])}),Xy=F9.extend({contentHash:o(),contentSnippet:o()}),t2=h({manualRequired:$(!0),targetUrl:o(),adminUrl:o().nullable().optional(),content:o(),nextSteps:y(o()).default([])}),Y9=h({slug:o(),severity:N(["high","medium","low"]),code:N(["noindex","missing-seo-title","missing-meta-description","missing-schema","thin-content"]),message:o()});h({slug:o(),title:o(),status:o(),wordCount:m(),seo:e2,schemaPresent:E(),issues:y(Y9).default([])});const X9=h({slug:o(),status:N(["applied","skipped","manual"]),error:o().optional(),manualAssist:t2.optional()});h({env:zo,strategy:N(["plugin","manual"]),results:y(X9)});const J9=h({slug:o(),status:N(["deployed","stripped","skipped","failed"]),schemasInjected:y(o()).optional(),manualAssist:t2.optional(),error:o().optional()});h({env:zo,results:y(J9)});const W9=h({slug:o(),title:o(),canonrySchemas:y(o()),thirdPartySchemas:y(o()),hasCanonrySchema:E()});h({env:zo,pages:y(W9)});const eE=h({name:o(),status:N(["completed","skipped","failed"]),summary:o().optional(),error:o().optional()});h({projectName:o(),steps:y(eE)});h({slug:o(),live:Xy,staging:Xy,hasDifferences:E(),differences:h({title:E(),slug:E(),content:E(),seoTitle:E(),seoDescription:E(),noindex:E(),schema:E()})});const tE=h({name:o(),displayName:o().optional(),keyUrl:o().optional(),modelHint:o().optional(),model:o().optional(),defaultModel:o().optional(),configured:E(),quota:d7.optional(),vertexConfigured:E().optional()}),aE=h({name:o(),displayName:o(),mode:N(["api","browser"]),modelConfigurable:E(),defaultModel:o(),knownModels:y(h({id:o(),displayName:o(),tier:N(["flagship","standard","fast","economy"])})).default([]),modelValidationPattern:h({source:o(),flags:o()}),modelValidationHint:o()}),Jy=h({configured:E()});h({providers:y(tE).default([]),providerCatalog:y(aE).default([]),google:Jy,bing:Jy});const Fa=N(["queued","running","completed","partial","failed","cancelled"]),aa=Fa.enum,a2=N(["answer-visibility","site-audit","gsc-sync","inspect-sitemap","ga-sync","bing-inspect","bing-inspect-sitemap","backlink-extract","traffic-sync","aeo-discover-seed","aeo-discover-probe","gbp-sync","ads-sync"]),Oe=a2.enum,S0=N(["manual","scheduled","config-apply","backfill","probe"]),po=S0.enum,qn=N(["cited","not-cited"]),Qc=qn.enum,Zc=N(["visible","not-visible"]);Zc.enum;const Kr=N(["mentioned","not-mentioned"]);Kr.enum;const n2=N(["new","cited","lost","emerging","not-cited"]);n2.enum;const nE=N(["new","mentioned","lost","emerging","not-mentioned"]);nE.enum;const iE=N([po.manual,po.probe]);h({kind:$(Oe["answer-visibility"]).optional(),trigger:iE.optional(),providers:y(mt).optional(),queries:y(o().min(1)).min(1).optional(),measurementScope:tz.optional(),location:o().min(1).optional(),allLocations:E().optional(),noLocation:E().optional()}).refine(e=>+!!e.location+ +!!e.allLocations+ +!!e.noLocation<=1,{message:'Only one of "location", "allLocations", or "noLocation" may be provided'});const sE=h({message:o(),raw:pa().optional()}),oE=h({message:o().optional(),providers:Pe(o(),sE).optional()}),rE=h({id:o(),projectId:o(),kind:a2,status:Fa,trigger:S0.default("manual"),measurementPlanVersionId:o().nullable().optional(),measurementManifest:Pe(o(),pa()).nullable().optional(),measurementScope:az.nullable().optional(),measurementExecutionIdentity:Mx.nullable().optional(),location:o().nullable().optional(),queries:y(o()).nullable().optional(),startedAt:o().nullable().optional(),finishedAt:o().nullable().optional(),error:oE.nullable().optional(),queryBasketRevision:m().int().nullable().optional(),createdAt:o()});function j0(e){if(e.providers){const n=Object.entries(e.providers);if(n.length===1){const[s,r]=n[0];return`${s}: ${r.message}`}if(n.length>1)return n.map(([s,r])=>`${s}: ${r.message}`).join(" • ")}return e.message??"Run failed."}const du=h({uri:o(),title:o()}),lE=h({status:N(["applied","ignored","browser-implicit","unknown"]),resolved:sa.nullable().optional()}),i2=h({id:o(),runId:o(),queryId:o(),query:o().optional(),provider:mt,citationState:qn,answerMentioned:E().optional(),visibilityState:Zc.optional(),mentionState:Kr.optional(),transition:n2.optional(),answerText:o().nullable().optional(),citedDomains:y(o()).default([]),citedUrls:y(o()).nullable().default(null),captureStatus:Ie([ou,de()]).default(null),sourceCount:m().int().nonnegative().nullable().default(null),resolvedCount:m().int().nonnegative().nullable().default(null),captureVersion:m().int().positive().nullable().default(null),retrievalStatus:Ie([b0,de()]).default(null),retrievalContract:Ie([v0,de()]).default(null),competitorOverlap:y(o()).default([]),recommendedCompetitors:y(o()).default([]),matchedTerms:y(o()).default([]),groundingSources:y(du).default([]),searchQueries:y(o()).default([]),model:o().nullable().optional(),servedModel:o().nullable().optional(),location:o().nullable().optional(),requestedContext:sa.nullable().optional(),supportedContext:lE.nullable().optional(),createdAt:o()});h({snapshots:y(i2),total:m().int().nonnegative()});const cE=h({queryId:o().nullable(),query:o().nullable(),run1State:qn.nullable(),run2State:qn.nullable(),run1AnswerMentioned:E().nullable(),run2AnswerMentioned:E().nullable(),run1VisibilityState:Zc.nullable(),run2VisibilityState:Zc.nullable(),run1MentionState:Kr.nullable().optional(),run2MentionState:Kr.nullable().optional(),changed:E(),visibilityChanged:E()});h({run1:o(),run2:o(),diff:y(cE)});const uE=rE.extend({snapshots:y(i2).optional()}),dE=h({totalRuns:m().int().nonnegative(),run:uE.nullable()});h({id:o(),projectId:o().nullable().optional(),actor:o(),action:o(),entityType:o(),entityId:o().nullable().optional(),diff:pa().optional(),userAgent:o().nullable().optional(),actorSession:o().nullable().optional(),createdAt:o()});const mE=N(["yes","no","unknown","not-mentioned"]),Wy=y(o().min(1));h({companyName:o().min(1),domain:o().min(1),queries:Wy.optional(),phrases:Wy.optional(),competitors:y(o().min(1)).optional().default([])}).superRefine((e,n)=>{e.queries!==void 0&&e.phrases!==void 0&&n.addIssue({code:"custom",message:"Use queries; phrases is accepted only as a legacy alias when queries is omitted",path:["phrases"]})});const pE=h({name:o(),count:m().int().nonnegative()}),hE=h({id:o(),name:o(),weight:m(),score:m(),findings:y(h({type:o(),message:o()})).default([]),recommendations:y(o()).default([])}),fE=h({url:o(),finalUrl:o(),auditedAt:o(),overallScore:m(),summary:o(),factors:y(hE).default([])}),gE=h({industry:o(),summary:o(),services:y(o()).default([]),categoryTerms:y(o()).default([])}),yE=h({provider:o(),displayName:o(),model:o().nullable().optional(),mentioned:E(),cited:E(),describedAccurately:mE,accuracyNotes:o().nullable().optional(),incorrectClaims:y(o()).default([]),recommendedCompetitors:y(o()).default([]),citedDomains:y(o()).default([]),groundingSources:y(du).default([]),searchQueries:y(o()).default([]),answerText:o(),error:o().nullable().optional()}),bE=h({query:o(),providerResults:y(yE).default([])}),vE=h({totalQueries:m().int().nonnegative(),totalProviders:m().int().nonnegative(),totalComparisons:m().int().nonnegative(),mentionCount:m().int().nonnegative(),citationCount:m().int().nonnegative(),topCompetitors:y(pE).default([]),visibilityGap:o(),whatThisMeans:y(o()).default([]),recommendedActions:y(o()).default([])});h({companyName:o(),domain:o(),homepageUrl:o(),generatedAt:o(),queries:y(o()).default([]),competitors:y(o()).default([]),profile:gE,audit:fE,queryResults:y(bE).default([]),summary:vE});const s2=Ie([Fa,de()]),A0=N(["pass","partial","fail"]);A0.enum;const o2=N(["up","down","flat"]);o2.enum;const xE=h({id:o(),name:o(),weight:m(),avgScore:m(),status:A0,pagesPassing:m().int().nonnegative(),pagesPartial:m().int().nonnegative(),pagesFailing:m().int().nonnegative()}),kE=h({factorId:o(),factorName:o(),avgScore:m(),affectedPages:m().int().nonnegative(),totalPages:m().int().nonnegative(),affectedPct:m().int().nonnegative(),topRecommendations:y(o()).default([])});h({project:o(),hasData:E(),runId:o().nullable(),runStatus:s2,sitemapUrl:o().nullable(),auditedAt:o().nullable(),aggregateScore:m(),pagesDiscovered:m().int().nonnegative(),pagesAudited:m().int().nonnegative(),pagesSkipped:m().int().nonnegative(),pagesErrored:m().int().nonnegative(),deltaScore:m().nullable(),trend:Ie([o2,de()]),previousScore:m().nullable(),previousAuditedAt:o().nullable(),factors:y(xE).default([]),crossCuttingIssues:y(kE).default([]),prioritizedFixes:y(o()).default([])});const r2=h({id:o(),name:o(),weight:m(),score:m()}),wE=h({url:o(),overallScore:m(),status:N(["success","error"]),error:o().nullable().optional(),factors:y(r2).default([])});h({project:o(),runId:o().nullable(),auditedAt:o().nullable(),total:m().int().nonnegative(),pages:y(wE).default([])});const SE=h({runId:o(),auditedAt:o(),aggregateScore:m(),pagesAudited:m().int().nonnegative()});h({project:o(),points:y(SE).default([])});const jE=N(["disabled","complete","partial","unavailable"]);jE.enum;const AE=h({pagesDiscovered:m().int().nonnegative(),pagesFetched:m().int().nonnegative(),pagesEligible:m().int().nonnegative(),edges:m().int().nonnegative(),findings:m().int().nonnegative()}),NE=Fe("state",[h({state:$("unavailable")}),h({state:$("disabled")}),h({state:$("complete"),checked:m().int().nonnegative(),found:m().int().nonnegative(),unverified:m().int().nonnegative()}),h({state:$("partial"),checked:m().int().nonnegative(),found:m().int().nonnegative(),unverified:m().int().nonnegative()})]);h({project:o(),hasCrawlData:E(),legacyAuditAvailable:E(),runId:o().nullable(),runStatus:s2,requestedRootUrl:o().nullable(),rootUrl:o().nullable(),crawlSchemaVersion:o().nullable().optional(),engineVersion:o().nullable().optional(),normalizationVersion:o().nullable().optional(),indexabilityVersion:o().nullable().optional(),linkScoreVersion:o().nullable().optional(),effectiveOptions:Pe(o(),pa()).default({}),complete:E(),termination:o().nullable(),detailsAvailable:E(),counts:AE,deadLinks:NE});N(["complete","unknown","max-pages","max-edges","max-fetches","max-duration","max-bytes","max-page-bytes","max-depth","max-links-per-page","max-query-variants","max-sitemap-fanout","max-sitemap-urls","root-host-redirect"]);const mu=N(["eligible","hidden","resource","redirect","failed","unchecked"]),GL=mu.enum,KL=mu.options,so={discovered:"discovered",robotsBlocked:"robots-blocked",html:"html",redirect:"redirect",nonHtml:"non-html",fetchError:"fetch-error"},Cc={indexable:"indexable",noindex:"noindex",blocked:"blocked",unknown:"unknown"},CE={robotsDisallow:"robots-disallow",redirectTerminal:"redirect-terminal",metaRobotsNoindex:"meta-robots-noindex",xRobotsNoindex:"x-robots-noindex",canonicalToOther:"canonical-to-other",notHtmlOrUnavailable:"not-html-or-unavailable"};function _E(e){return e.indexabilityReasons?.some(n=>n===CE.canonicalToOther)===!0||e.nodeKey!==void 0&&e.canonicalNodeKey!==null&&e.canonicalNodeKey!==void 0&&e.canonicalNodeKey!==e.nodeKey}function QL(e){switch(e.fetchState){case so.fetchError:return"failed";case so.discovered:return"unchecked";case so.nonHtml:return"resource";case so.redirect:return"redirect";case so.robotsBlocked:return"hidden";case so.html:break;default:return"unchecked"}if(_E(e))return"hidden";switch(e.indexabilityState){case Cc.indexable:return"eligible";case Cc.noindex:case Cc.blocked:return"hidden";case Cc.unknown:default:return"unchecked"}}const ZL=15,zE=N(["navigation","content","unknown"]);zE.enum;const EE=h({navigation:m().int().nonnegative(),content:m().int().nonnegative(),unknown:m().int().nonnegative()}),l2=N(["placement","ubiquity","unmeasured"]);l2.enum;const pu=N(["applied","applied-placement","applied-placement-with-ubiquity","applied-placement-partial","unavailable-too-few-pages","unavailable-legacy-scan"]);pu.enum;function FL(e){switch(e){case"applied":case"applied-placement":case"applied-placement-with-ubiquity":case"applied-placement-partial":return!0;case"unavailable-too-few-pages":case"unavailable-legacy-scan":return!1}}const hu=N(["all","content","template"]);hu.enum;const DE=N(["anchor","redirect","canonical","link"]);DE.enum;const Qr=h({nodeKey:o(),url:o(),finalUrl:o().nullable(),path:o(),parentPath:o(),discoverySource:o(),fetchState:o(),httpStatus:m().int().nullable(),canonicalUrl:o().nullable(),indexabilityState:o(),indexabilityReasons:y(o()).default([]),auditState:o(),auditScore:m().nullable(),inventoryEligible:E(),depth:m().int().nullable(),inboundUniqueEdges:m().int().nonnegative(),outboundUniqueEdges:m().int().nonnegative(),inboundOccurrences:m().int().nonnegative(),outboundOccurrences:m().int().nonnegative(),linkScoreRaw:m().nullable(),linkScoreNormalized:m().nullable(),healthState:mu}),TE=h({type:N(["found","missing","info","timeout","unreachable"]),code:o().min(1),message:o().min(1)}),eb=r2.extend({status:A0,applicable:E().nullable(),findings:y(TE).default([]),recommendations:y(o()).default([])}),tb=h({id:o().min(1),severity:N(["critical","warning"]),detail:o().min(1),recommendation:o().min(1)}),_c=h({project:o(),runId:o(),complete:E(),termination:o().nullable()}),ab=h({nodeKey:o(),url:o(),auditState:o()});Fe("state",[h({state:$("no-crawl"),project:o(),runId:de()}),_c.extend({state:$("details-unavailable")}),_c.extend({state:$("not-found")}),_c.merge(ab).extend({state:$("not-audited"),auditScore:de(),factors:y(eb).length(0).default([]),criticalDefects:y(tb).length(0).default([])}),_c.merge(ab).extend({state:$("ready"),auditScore:m(),evidenceState:N(["complete","scores-only"]),factors:y(eb).default([]),criticalDefects:y(tb).default([])})]);const RE=N(["applied","unavailable-legacy-scan"]);h({project:o(),hasCrawlData:E(),runId:o().nullable(),total:m().int().nonnegative(),nextCursor:o().nullable(),healthStateFilter:Ie([RE,de()]).default(null),pages:y(Qr).default([])});const OE=h({path:o(),url:o().nullable(),hasPage:E(),pageCount:m().int().positive(),inventoryEligibleCount:m().int().nonnegative(),fetchedCount:m().int().nonnegative()});h({project:o(),hasCrawlData:E(),runId:o().nullable(),parentPath:o(),nextCursor:o().nullable(),children:y(OE).default([])});const ls=h({edgeKey:o(),sourceNodeKey:o(),sourceUrl:o(),targetNodeKey:o().nullable(),targetUrl:o(),relation:o(),internal:E(),followable:E(),occurrences:m().int().positive(),followableOccurrences:m().int().nonnegative(),nofollowOccurrences:m().int().nonnegative(),anchors:y(o()).default([]),isTemplate:Ie([E(),de()]),templateRatio:Ie([m(),de()]),templateSource:l2,placementOccurrences:Ie([EE,de()])}),qE=h({nodeKey:o(),url:o(),path:o(),depth:m().int().nonnegative().nullable(),indexabilityState:o(),fetchState:o(),auditState:o(),auditScore:m().nullable(),inventoryEligible:E(),inboundUniqueEdges:m().int().nonnegative(),outboundUniqueEdges:m().int().nonnegative(),linkScoreNormalized:m().nullable(),healthState:mu,x:m(),y:m()}),BE=h({edgeKey:o(),sourceNodeKey:o(),targetNodeKey:o(),followable:E(),occurrences:m().int().positive(),isTemplate:E()}),ME=N(["no-crawl","legacy-snapshot","details-unavailable","layout-failed","empty-crawl"]),PE=Fe("state",[h({state:$("ready"),version:o().min(1),computedAt:o().min(1),templateLinksExcluded:E()}),h({state:$("unavailable"),version:de(),reason:ME})]);h({project:o(),hasCrawlData:E(),runId:o().nullable(),rootNodeKey:o().nullable(),layout:PE,templateDetection:pu,linkKind:hu,totalNodes:m().int().nonnegative(),totalEdges:m().int().nonnegative(),totalTemplateEdges:m().int().nonnegative(),totalContentEdges:m().int().nonnegative(),nodes:y(qE).default([]),edges:y(BE).default([]),omittedNodes:m().int().nonnegative(),omittedEdges:m().int().nonnegative(),sampled:E()});const YL=2e4,XL=5e4,IE=N(["focus","inbound","outbound","both","transitive"]),UE=Qr.extend({distance:m().int().nonnegative(),relationToFocus:IE});h({project:o(),hasCrawlData:E(),runId:o().nullable(),complete:E(),termination:o().nullable(),state:N(["no-crawl","details-unavailable","ready"]),focusNodeKey:o().nullable(),focusUrl:o().nullable(),hops:m().int().min(0).max(3),totalNodes:m().int().nonnegative(),totalEdges:m().int().nonnegative(),nodes:y(UE).default([]),edges:y(ls).default([]),omittedNodes:m().int().nonnegative(),omittedEdges:m().int().nonnegative(),countAccuracy:N(["exact","lower-bound"]),truncated:E()});const nb=h({nodeKey:o(),url:o(),path:o()});h({project:o(),runId:o().nullable(),complete:E(),termination:o().nullable(),state:N(["no-crawl","details-unavailable","found","unreachable","truncated"]),from:nb.nullable(),to:nb.nullable(),maxDepth:m().int().positive(),visitedNodes:m().int().nonnegative(),nodes:y(Qr).default([]),edges:y(ls).default([])});const c2=N(["added","removed","changed"]),LE=h({entity:$("page"),change:c2,key:o(),changedFields:y(o()).default([]),before:Qr.nullable(),after:Qr.nullable()}),VE=h({entity:$("link"),change:c2,key:o(),changedFields:y(o()).default([]),before:ls.nullable(),after:ls.nullable()}),$E=Fe("entity",[LE,VE]),ib=h({added:m().int().nonnegative(),removed:m().int().nonnegative(),changed:m().int().nonnegative()}),HE=h({scope:N(["all","pages","links"]),change:N(["all","added","removed","changed"])});Fe("state",[h({project:o(),state:$("unavailable"),reason:N(["no-crawl","insufficient-history","details-unavailable","partial-not-comparable"]),fromRunId:o().nullable(),toRunId:o().nullable()}),h({project:o(),state:$("incompatible"),reason:$("incompatible-versions"),fromRunId:o(),toRunId:o(),mismatchedVersions:y(o()).min(1)}),h({project:o(),state:$("ready"),fromRunId:o(),toRunId:o(),versions:h({crawlSchema:o(),normalization:o(),indexability:o(),linkScore:o()}),filters:HE,summaryState:N(["exact","omitted-on-continuation"]),summary:h({pages:ib,links:ib}).nullable(),total:m().int().nonnegative().nullable(),nextCursor:o().nullable(),changes:y($E).default([])})]);h({project:o(),hasCrawlData:E(),runId:o().nullable(),total:m().int().nonnegative(),nextCursor:o().nullable(),templateDetection:pu,linkKind:hu,edges:y(ls).default([])});h({project:o(),hasCrawlData:E(),runId:o().nullable(),nodeKey:o().nullable(),url:o().nullable(),templateDetection:pu,linkKind:hu,inbound:y(ls).default([]),outbound:y(ls).default([]),inboundTruncated:E(),outboundTruncated:E()});const sb=h({findingKey:o(),severity:o(),sourceNodeKey:o().nullable(),sourceUrl:o().nullable(),targetNodeKey:o().nullable(),targetUrl:o().nullable(),evidence:Pe(o(),pa()).default({})});Fe("state",[h({project:o(),runId:o().nullable(),state:$("unavailable"),legacyAuditAvailable:E()}),h({project:o(),runId:o(),state:$("disabled"),checkDeadLinks:$(!1)}),h({project:o(),runId:o(),state:$("complete"),checkDeadLinks:$(!0),checked:m().int().nonnegative(),found:m().int().nonnegative(),unverified:m().int().nonnegative(),total:m().int().nonnegative(),nextCursor:o().nullable(),deadLinks:y(sb).default([])}),h({project:o(),runId:o(),state:$("partial"),checkDeadLinks:$(!0),checked:m().int().nonnegative(),found:m().int().nonnegative(),unverified:m().int().nonnegative(),total:m().int().nonnegative(),nextCursor:o().nullable(),deadLinks:y(sb).default([])})]);h({sitemapUrl:o().url().optional(),limit:m().int().positive().max(2e3).optional(),maxPages:m().int().positive().max(5e4).optional(),maxEdges:m().int().positive().max(1e6).optional(),maxDepth:m().int().min(0).max(100).optional(),checkDeadLinks:E().default(!1)});h({runId:o(),status:Fa});const GE=h({runId:o(),status:Fa,createdAt:o(),startedAt:o().nullable(),finishedAt:o().nullable(),hasCrawlData:E()});h({project:o(),scans:y(GE).default([])});const KE=N(["queued","discovering","checking","arranging-map","completed","partial","failed","cancelled"]),QE=h({state:N(["pending","ready","unavailable"]),layoutVersion:o().nullable(),failureCode:o().nullable(),updatedAt:o().nullable()}),ZE=h({id:o(),state:o(),pagesDiscovered:m().int().nonnegative(),pagesFetched:m().int().nonnegative(),pagesEligible:m().int().nonnegative(),pagesErrored:m().int().nonnegative(),edgesDiscovered:m().int().nonnegative(),lastUpdatedAt:o(),startedAt:o().nullable(),finishedAt:o().nullable(),error:o().nullable()});h({project:o(),runId:o(),status:Fa,phase:KE,attempt:ZE.nullable(),layout:QE,error:o().nullable()});const FE=N(["waiting","collecting","terminal"]),YE=h({nodeKey:o(),url:o(),auditScore:m(),checksNeedingAttention:m().int().nonnegative()});h({project:o(),runId:o(),status:Fa,state:FE,attemptId:o().nullable(),pagesAudited:m().int().nonnegative(),updatedAt:o().nullable(),examples:y(YE).max(12).default([])});const N0=N(["answer-visibility","traffic-sync","gbp-sync","data-refresh","backlinks-sync","site-audit","ads-sync","doctor"]);N0.enum;h({id:o(),projectId:o(),kind:N0,cronExpr:o(),preset:o().nullable().optional(),timezone:o().default("UTC"),enabled:E().default(!0),providers:y(mt).default([]),sourceId:o().nullable().optional(),lastRunAt:o().nullable().optional(),nextRunAt:o().nullable().optional(),createdAt:o(),updatedAt:o()});h({kind:N0.optional(),preset:o().optional(),cron:o().optional(),timezone:o().optional().default("UTC"),enabled:E().optional().default(!0),providers:y(mt).optional().default([]),sourceId:o().optional()}).refine(e=>e.preset&&!e.cron||!e.preset&&e.cron,{message:'Exactly one of "preset" or "cron" must be provided'});const C0=N(["competitor","directory","social","forum","news","reference","blog","ecommerce","video","academic","other"]);C0.enum;const _0=N(["cited","aspirational","wasted-surface"]),ob=_0.enum;ob.cited,ob.aspirational;const fu=N(["direct-competitor","ota-aggregator","editorial-media","other","unknown"]),XE=fu.enum;XE["direct-competitor"];const gu=N(["queued","seeding","probing","completed","failed"]);gu.enum;const u2=h({domain:o().min(1),hits:m().int().positive(),competitorType:fu.default("unknown")}),JE=h({id:o(),sessionId:o(),projectId:o(),query:o(),bucket:_0.nullable().default(null),citationState:qn,citedDomains:y(o()).default([]),answerMentioned:E().nullable().default(null),createdAt:o()}),WE=h({id:o(),projectId:o(),status:gu,icpDescription:o().nullable().optional(),seedProvider:o().nullable().optional(),seedCountRaw:m().int().nullable().optional(),seedCount:m().int().nullable().optional(),seedFromAnswerCount:m().int().nullable().optional(),seedFromGroundingCount:m().int().nullable().optional(),seedBrandFilteredCount:m().int().nullable().optional(),buyerDescription:o().nullable().optional(),locations:y(sa).nullable().optional(),seedRawCandidates:y(o()).nullable().optional(),dedupClusterMinSims:y(m()).nullable().optional(),dedupBandPairFraction:m().nullable().optional(),dedupPairsTotal:m().int().nullable().optional(),seedProviders:y(o()).nullable().optional(),seedProviderCounts:Pe(o(),m().int()).nullable().optional(),canonicalCount:m().int().nullable().optional(),dedupThreshold:m().nullable().optional(),probeCount:m().int().nullable().optional(),citedCount:m().int().nullable().default(null),aspirationalCount:m().int().nullable().default(null),wastedCount:m().int().nullable().default(null),competitorMap:y(u2).default([]),warning:o().nullable().optional(),error:o().nullable().optional(),startedAt:o().nullable().optional(),finishedAt:o().nullable().optional(),createdAt:o()});WE.extend({probes:y(JE).default([])});const eD=500,tD=8,aD=["gemini","openai"],nD=N(aD);h({icpDescription:o().min(1).optional(),buyerDescription:o().min(1).optional(),seedProviders:y(nD).min(1).transform(e=>[...new Set(e)].sort()).optional(),dedupThreshold:m().min(0).max(1).optional(),maxProbes:m().int().positive().max(eD).optional(),probeConcurrency:m().int().min(1).max(tD).optional(),locations:y(o().min(1)).optional()});h({buckets:y(_0).min(1).optional(),includeCompetitors:E().optional(),competitorTypes:y(fu).min(1).optional()});h({sessionId:o(),projectId:o(),status:gu,queriesByBucket:h({cited:y(o()),aspirational:y(o()),"wasted-surface":y(o())}),suggestedCompetitors:y(u2)});h({sessionId:o(),projectId:o(),promoted:h({queries:y(o()),competitors:y(o())}),skipped:h({queries:y(o()),competitors:y(o())})});Ie([$("cli"),o().regex(/^discovery:.+$/)]);const iD=h({query:o().min(1),probeHits:m().int().positive()}),sD=h({rawCandidates:m().int().nonnegative(),admitted:m().int().nonnegative(),rejected:h({belowFloor:m().int().nonnegative(),length:m().int().nonnegative(),navigational:m().int().nonnegative(),duplicate:m().int().nonnegative(),offAnchor:m().int().nonnegative(),semanticDuplicate:m().int().nonnegative()})});h({sessionId:o(),projectId:o(),provider:o(),status:gu,minProbeHits:m().int().positive(),anchorApplied:E(),semanticNoveltyApplied:E(),candidates:y(iD),stats:sD});const z0=N(["own","direct-competitor","ota-aggregator","editorial-media","other"]);z0.enum;const d2=N(["7d","30d","90d","all"]),rb=N(["improving","declining","stable"]),oD=N(["mentioned","cited"]);oD.enum;const Ep=h({citationRate:m(),cited:m().int(),total:m().int(),mentionRate:m(),mentionedCount:m().int()}),E0=o().trim().min(1),rD=y(E0).min(1).superRefine((e,n)=>{for(let s=1;s<e.length;s+=1)e[s-1]>=e[s]&&n.addIssue({code:"custom",message:"mixed model IDs must be sorted and unique",path:[s]})}),ko=Fe("status",[h({status:$("known"),model:E0}),h({status:$("unknown")}),h({status:$("mixed"),models:rD,includesUnknown:E()})]),lD=h({observedAt:o(),bucketStartDate:o(),from:ko,to:ko,fromPreWindowAnchor:E().optional(),anchorObservedAt:o().optional()}),m2=h({latestObservation:h({observedAt:o(),state:ko}),events:y(lD),eventTotal:m().int().nonnegative().optional(),anchorUnavailable:E().optional()}),cD=Pe(o(),m2),uD=m2.extend({latestServedModelIds:y(E0).default([])}),dD=Pe(o(),uD),mD=h({observedAt:o(),configured:ko,served:ko}),pD=h({rate:m().nullable(),projectMentionSnapshots:m().int().nonnegative(),competitorMentionSnapshots:m().int().nonnegative()}),hD=h({startDate:o(),endDate:o(),dataStartDate:o(),dataEndDate:o(),sweepCount:m().int().nonnegative(),citationRate:m(),cited:m().int(),total:m().int(),queryCount:m().int(),mentionRate:m(),mentionedCount:m().int(),mentionShare:pD,byProvider:Pe(o(),Ep),modelEvidenceByProvider:Pe(o(),ko).default({}),basketRevision:m().int().nullable().default(null)}),fD=h({revision:m().int(),at:o(),added:y(o()),removed:y(o())}),gD=h({date:o(),delta:m().int(),label:o()}),yD=h({at:o(),identity:Mx});h({window:d2,buckets:y(hD),overall:Ep,byProvider:Pe(o(),Ep),trend:rb,mentionTrend:rb,queryChanges:y(gD),basketChanges:y(fD).default([]),executionIdentityChanges:y(yD).default([]),referenceBasketRevision:m().int().nullable().default(null),modelAttribution:cD.default({}),servedModelAttribution:dD.default({}),modelServiceMismatch:Pe(o(),mD).default({}),modelPointerChanges:Pe(o(),h9).default({})});const lb=h({category:C0,label:o(),count:m().int(),percentage:m(),topDomains:y(h({domain:o(),count:m().int()}))}),bD=h({domain:o(),count:m().int(),percentage:m(),category:C0,label:o(),surfaceClass:z0}),vD=h({surfaceClass:z0,label:o(),count:m().int(),percentage:m(),domainCount:m().int()}),cb=h({totalCitedSlots:m().int(),domainTotal:m().int(),entries:y(bD),truncatedDomainCount:m().int(),truncatedCitedSlots:m().int(),bySurfaceClass:y(vD)});h({overall:y(lb),byQuery:Pe(o(),y(lb)),ranked:cb,byProvider:Pe(o(),cb),runId:o(),window:d2,limit:m().int().nullable()});const D0=h({total:m().int(),checked:m().int(),mentioned:m().int(),cited:m().int(),mentionRate:m().nullable(),citedRate:m().nullable()}),p2=D0.extend({provider:o(),firstObserved:o(),lastObserved:o()}),xD=D0.extend({queryId:o().nullable(),query:o(),firstObserved:o(),lastObserved:o(),providers:y(p2).optional()}),kD=h({since:o().nullable(),until:o().nullable(),lastRuns:m().int().nullable(),runCount:m().int()}),wD=N(["provider"]),Dp=h({domain:o(),mentions:m().int()}),SD=h({percent:m().nullable(),projectMentions:m().int(),competitorMentions:m().int(),snapshotsWithAnswerText:m().int(),perCompetitor:y(Dp)});h({project:o(),groupBy:wD.optional(),window:kD,totals:D0,byProvider:y(p2).optional(),queries:y(xD),shareOfVoice:SD.optional()});const jD=N(["within-noise","moved","insufficient-data","model-discontinuous","model-unknown"]),AD=N(["up","down","flat"]),ub=h({point:m().nullable(),ciLow:m().nullable(),ciHigh:m().nullable(),numerator:m().int(),denominator:m().int()}),ND=N(["mention-share-of-voice","cited-share-of-voice","mention-rate","cited-rate"]),CD=h({key:ND,label:o(),driftRobust:E(),from:ub,to:ub,rateRatio:m().nullable(),direction:Ie([AD,de()]),verdict:jD}),db=h({month:o(),since:o(),until:o(),runCount:m().int(),lowRunCount:E()}),_D=h({queryCount:m().int(),excludedFromOnly:m().int(),excludedToOnly:m().int(),providers:y(o()),excludedProviders:y(o())}),zD=h({provider:o(),fromModels:y(o()),toModels:y(o())}),ED=N(["included","model-discontinuous","model-unknown"]),DD=h({provider:o(),status:ED,fromModels:y(o()),toModels:y(o())}),TD=N(["comparable","model-discontinuous","model-unknown","insufficient-data"]),RD=h({status:TD,comparedProviders:y(o()),providers:y(DD)}),OD=h({provider:o(),from:h({checked:m().int(),mentioned:m().int(),cited:m().int()}),to:h({checked:m().int(),mentioned:m().int(),cited:m().int()})}),qD=h({from:h({count:m().int(),of:m().int()}),to:h({count:m().int(),of:m().int()})});h({project:o(),from:db,to:db,basket:_D,metrics:y(CD),queriesMentioned:qD,byProvider:y(OD),modelChanges:y(zD),continuity:RD,competitors:h({from:y(Dp),to:y(Dp)})});N(["json","csv"]);const BD=h({runId:o(),runKind:$("answer-visibility"),runStatus:Fa,runTrigger:S0,runCreatedAt:o(),runStartedAt:o().nullable(),runFinishedAt:o().nullable(),snapshotId:o(),snapshotCreatedAt:o(),queryId:o().nullable(),query:o().nullable(),provider:o(),model:o().nullable(),location:o().nullable(),citationState:qn,cited:E(),answerMentioned:E().nullable(),mentionState:Ie([Kr,de()]),citedDomains:y(o()),citedUrls:y(o()).nullable(),captureStatus:Ie([ou,de()]),sourceCount:m().int().nonnegative().nullable(),resolvedCount:m().int().nonnegative().nullable(),captureVersion:m().int().positive().nullable(),competitorOverlap:y(o()),recommendedCompetitors:y(o()),answerText:o().nullable(),groundingSources:y(du),searchQueries:y(o())}),MD=h({since:o().nullable(),until:o().nullable(),includeProbes:E()});h({schemaVersion:$("canonry.results-export/v1"),generatedAt:o(),project:h({id:o(),name:o(),displayName:o(),canonicalDomain:o(),country:o(),language:o()}),filters:MD,recordCount:m().int().nonnegative(),records:y(BD)});const yu=N(["organic","paid"]);yu.enum;h({id:o(),projectId:o(),propertyId:o(),clientEmail:o(),connected:E(),createdAt:o(),updatedAt:o()});h({date:o(),landingPage:o(),sessions:m(),organicSessions:m(),users:m()});const T0=N(["session","first_user","manual_utm"]),PD=h({source:o(),medium:o(),trafficClass:yu,sessions:m(),users:m().optional(),sourceDimension:T0}),ID=h({source:o(),medium:o(),trafficClass:yu,sourceDimension:T0,landingPage:o(),sessions:m(),users:m().optional()}),UD=h({source:o(),medium:o(),sessions:m(),users:m(),channelGroup:o()}),Tr=h({sessions:m(),sharePct:m(),sharePctDisplay:o()}),LD=h({organic:Tr,social:Tr,direct:Tr,ai:Tr,other:Tr});h({totalSessions:m(),totalOrganicSessions:m(),totalDirectSessions:m(),totalUsers:m().nullable(),topPages:y(h({landingPage:o(),sessions:m(),organicSessions:m(),directSessions:m(),users:m()})),aiReferrals:y(PD),aiReferralLandingPages:y(ID),aiSessionsDeduped:m(),aiUsersDeduped:m().optional(),paidAiSessionsDeduped:m(),paidAiUsersDeduped:m().optional(),organicAiSessionsDeduped:m(),organicAiUsersDeduped:m().optional(),aiSessionsBySession:m(),aiUsersBySession:m().optional(),paidAiSessionsBySession:m(),paidAiUsersBySession:m().optional(),organicAiSessionsBySession:m(),organicAiUsersBySession:m().optional(),socialReferrals:y(UD),socialSessions:m(),socialUsers:m(),channelBreakdown:LD,organicSharePct:m(),aiSharePct:m(),aiSharePctBySession:m(),paidAiSharePct:m(),paidAiSharePctBySession:m(),organicAiSharePct:m(),organicAiSharePctBySession:m(),directSharePct:m(),socialSharePct:m(),organicSharePctDisplay:o(),aiSharePctDisplay:o(),aiSharePctBySessionDisplay:o(),paidAiSharePctDisplay:o(),paidAiSharePctBySessionDisplay:o(),organicAiSharePctDisplay:o(),organicAiSharePctBySessionDisplay:o(),directSharePctDisplay:o(),socialSharePctDisplay:o(),otherSessions:m(),otherSharePct:m(),otherSharePctDisplay:o(),lastSyncedAt:o().nullable()});h({connected:E(),propertyId:o().nullable(),clientEmail:o().nullable(),authMethod:N(["service-account","oauth"]).nullable(),lastSyncedAt:o().nullable(),createdAt:o().nullable().optional(),updatedAt:o().nullable().optional()});const VD=h({propertyId:o(),displayName:o(),accountName:o()});h({properties:y(VD)});h({synced:E(),rowCount:m().int().nonnegative(),aiReferralCount:m().int().nonnegative(),socialReferralCount:m().int().nonnegative(),days:m().int().nonnegative(),requestedDays:m().int().nonnegative(),clamped:E(),syncedAt:o(),measurement:h({acquisition:h({days:m().int().nonnegative(),status:N(["ready","error"]),rowCount:m().int().nonnegative(),error:o().optional()}),leads:h({days:m().int().nonnegative(),status:N(["ready","error","not-configured"]),rowCount:m().int().nonnegative(),attributionScope:N(["landing-page","channel"]).optional(),error:o().optional()})}),syncedComponents:y(o()).optional()});h({date:o(),source:o(),medium:o(),trafficClass:yu,landingPage:o(),sessions:m(),users:m(),sourceDimension:T0});const $D=h({source:o(),sessions:m(),paidSessions:m(),organicSessions:m()}),HD=h({date:o(),sessions:m(),paidSessions:m(),organicSessions:m(),bySource:y($D)});h({days:y(HD),sources:y(o()),totalSessions:m(),totalPaidSessions:m(),totalOrganicSessions:m()});h({date:o(),source:o(),medium:o(),sessions:m(),users:m(),channelGroup:o()});h({date:o(),sessions:m(),organicSessions:m(),users:m(),usersSource:N(["deduplicated","landing-page-sum"])});h({id:o(),projectId:o(),runId:o().nullable(),overallCitedRate:m(),overallMentionRate:m(),totalPairs:m().int().nonnegative(),citedPairs:m().int().nonnegative(),mentionedPairs:m().int().nonnegative(),providerBreakdown:Pe(o(),h({citedRate:m(),mentionRate:m(),cited:m().int().nonnegative(),mentioned:m().int().nonnegative(),total:m().int().nonnegative()})),createdAt:o(),status:N(["ready","no-data"]),reason:$("no-runs-yet").optional()});const h2=N(["claude","openai","gemini","zai","deepinfra"]),GD=h({id:h2,label:o(),defaultModel:o(),configured:E(),keySource:N(["config","env"]).nullable()});h({providers:y(GD).default([]),defaultProvider:h2.nullable()});const KD=N(["aero","user","compaction"]);KD.enum;const f2=128;h({key:o().min(1).max(f2),value:o().min(1)});h({key:o().min(1).max(f2)});const Eo=N(["commoncrawl","bing-webmaster"]);Eo.enum;const R0=N(["queued","downloading","querying","ready","failed"]);R0.enum;h({id:o(),release:o(),status:R0,phaseDetail:o().nullable().optional(),vertexPath:o().nullable().optional(),edgesPath:o().nullable().optional(),vertexSha256:o().nullable().optional(),edgesSha256:o().nullable().optional(),vertexBytes:m().int().nullable().optional(),edgesBytes:m().int().nullable().optional(),projectsProcessed:m().int().nullable().optional(),domainsDiscovered:m().int().nullable().optional(),downloadStartedAt:o().nullable().optional(),downloadFinishedAt:o().nullable().optional(),queryStartedAt:o().nullable().optional(),queryFinishedAt:o().nullable().optional(),error:o().nullable().optional(),createdAt:o(),updatedAt:o()});const QD=h({linkingDomain:o(),numHosts:m().int(),source:Eo}),ZD=h({projectId:o(),release:o(),targetDomain:o(),totalLinkingDomains:m().int(),totalHosts:m().int(),top10HostsShare:o(),queriedAt:o(),source:Eo,excludedLinkingDomains:m().int().optional(),excludedHosts:m().int().optional()});h({source:Eo,summary:ZD.nullable(),total:m().int(),rows:y(QD)});h({release:o(),totalLinkingDomains:m().int(),totalHosts:m().int(),top10HostsShare:o(),queriedAt:o(),source:Eo});const FD=h({source:Eo,connected:E(),hasData:E(),latestRelease:o().nullable(),totalLinkingDomains:m().int(),lastSyncedAt:o().nullable()});h({projectId:o(),targetDomain:o(),sources:y(FD),anyConnected:E(),anyData:E()});h({duckdbInstalled:E(),duckdbVersion:o().nullable().optional(),duckdbSpec:o(),pluginDir:o()});h({installed:E(),version:o(),path:o(),alreadyPresent:E()});h({release:o(),vertexUrl:o(),edgesUrl:o(),vertexBytes:m().int().nullable(),edgesBytes:m().int().nullable(),lastModified:o().nullable()});h({release:o(),syncStatus:R0.nullable(),bytes:m().int(),lastUsedAt:o().nullable()});const O0=N(["positive","caution","negative","neutral"]),vi=h({label:o(),value:o(),delta:o(),tone:O0,description:o(),tooltip:o().optional(),trend:y(m()),progress:m().optional(),providerCoverage:o().optional()}),YD=vi.extend({breakdown:h({projectMentionSnapshots:m().int().nonnegative(),competitorMentionSnapshots:m().int().nonnegative(),perCompetitor:y(h({domain:o(),mentionSnapshots:m().int().nonnegative(),shareOfCompetitiveTotal:m()})),snapshotsWithAnswerText:m().int().nonnegative(),snapshotsTotal:m().int().nonnegative()})}),ep=h({gained:m().int().nonnegative(),lost:m().int().nonnegative(),tone:O0,hasPreviousRun:E(),gainedQueries:y(o()).optional(),lostQueries:y(o()).optional()}),XD=h({hasPreviousRun:E(),comparable:E(),querySetChanged:E(),previousRunAt:o().nullable(),currentQueryCount:m().int().nonnegative(),previousQueryCount:m().int().nonnegative(),comparableQueryCount:m().int().nonnegative(),addedQueryCount:m().int().nonnegative(),removedQueryCount:m().int().nonnegative(),addedQueries:y(o()),removedQueries:y(o())}),JD=h({id:o(),projectId:o(),runId:o().nullable(),type:N(["regression","gain","opportunity","first-citation","provider-pickup","persistent-gap","competitor-gained","competitor-lost","gbp-lodging-gap","gbp-listing-discrepancy","gbp-cta-gap","gbp-description-missing","gbp-metric-drop","gbp-keyword-drop"]),severity:N(["critical","high","medium","low"]),title:o(),query:o(),provider:o(),recommendation:h({action:o(),target:o().optional(),reason:o()}).optional(),cause:h({cause:o(),competitorDomain:o().optional(),details:o().optional()}).optional(),dismissed:E(),createdAt:o()}),WD=h({id:o(),projectId:o(),runId:o().nullable(),overallCitedRate:m(),overallMentionRate:m(),totalPairs:m().int().nonnegative(),citedPairs:m().int().nonnegative(),mentionedPairs:m().int().nonnegative(),providerBreakdown:Pe(o(),h({citedRate:m(),mentionRate:m(),cited:m().int().nonnegative(),mentioned:m().int().nonnegative(),total:m().int().nonnegative()})),createdAt:o(),status:N(["ready","no-data"]),reason:$("no-runs-yet").optional()});h({project:c_,latestRun:dE,health:WD.nullable(),topInsights:y(JD),queryCounts:h({totalQueries:m().int().nonnegative(),citedQueries:m().int().nonnegative(),notCitedQueries:m().int().nonnegative(),citedRate:m(),mentionedQueries:m().int().nonnegative(),notMentionedQueries:m().int().nonnegative(),mentionRate:m()}),providers:y(h({provider:o(),citedRate:m(),cited:m().int().nonnegative(),total:m().int().nonnegative()})),transitions:h({since:o().nullable(),gained:m().int().nonnegative(),lost:m().int().nonnegative(),emerging:m().int().nonnegative()}),scores:h({mention:vi,visibility:vi,mentionShare:YD,gapQueries:vi,mentionGaps:vi,indexCoverage:vi,competitorPressure:vi,runStatus:vi}),movementSummary:ep,citationMovement:ep,mentionMovement:ep,movementComparison:XD,competitors:y(h({id:o(),domain:o(),citationCount:m().int().nonnegative(),totalQueries:m().int().nonnegative(),pressureLabel:N(["None","Low","Moderate","High"]),citedQueries:y(o())})),providerScores:y(h({provider:o(),model:o().nullable(),score:m(),cited:m().int().nonnegative(),total:m().int().nonnegative(),trend:y(m()).optional()})),attentionItems:y(h({id:o(),tone:O0,title:o(),detail:o(),actionLabel:o(),href:o()})),runHistory:y(h({runId:o(),createdAt:o(),citedCount:m().int().nonnegative(),totalCount:m().int().nonnegative(),citationRate:m(),mentionedCount:m().int().nonnegative(),mentionRate:m(),status:o()})),suggestedQueries:h({rows:y(h({query:o(),impressions:m(),clicks:m(),avgPosition:m(),reason:o()})),totalCandidates:m().int().nonnegative(),skippedAlreadyTracked:m().int().nonnegative()}),dateRangeLabel:o(),contextLabel:o()});N(["snapshot","insight"]);const eT=h({kind:$("snapshot"),id:o(),runId:o(),query:o(),provider:o(),model:o().nullable(),citationState:qn,matchedField:N(["answerText","citedDomains","citedUrls","searchQueries","query"]),snippet:o(),createdAt:o()}),tT=h({kind:$("insight"),id:o(),runId:o().nullable(),type:N(["regression","gain","opportunity","first-citation","provider-pickup","persistent-gap","competitor-gained","competitor-lost","gbp-lodging-gap","gbp-listing-discrepancy","gbp-cta-gap","gbp-description-missing","gbp-metric-drop","gbp-keyword-drop"]),severity:N(["critical","high","medium","low"]),title:o(),query:o(),provider:o(),matchedField:N(["title","query","recommendation","cause"]),snippet:o(),dismissed:E(),createdAt:o()}),aT=Fe("kind",[eT,tT]);h({query:o(),totalHits:m().int().nonnegative(),truncated:E(),hits:y(aT)});const g2=N(["create","expand","refresh","add-schema"]);g2.enum;function JL(e){switch(e){case"create":return"Create";case"expand":return"Expand";case"refresh":return"Refresh";case"add-schema":return"Add schema"}}const y2=N(["gsc","competitor-evidence","both"]);y2.enum;const b2=N(["high","medium","low"]);b2.enum;const nT=N(["blog-post","comparison","listicle","how-to","guide","glossary"]);nT.enum;const v2=N(["proposed","briefed","payload-generated","draft-created","published","validated","dismissed"]);v2.enum;const q0=N(["ownable","ceded"]);q0.enum;const iT=h({url:o(),gscImpressions:m().nonnegative(),gscClicks:m().nonnegative(),gscAvgPosition:m().nonnegative().nullable(),organicSessions:m().nonnegative()}),sT=h({domain:o(),url:o(),title:o(),citationCount:m().int().nonnegative()}),oT=h({demand:m(),competitor:m(),absence:m(),gapSeverity:m()}),rT=h({actionId:o(),state:v2,lastUpdated:o()}),x2=h({targetRef:o(),query:o(),action:g2,ourBestPage:iT.nullable(),winningCompetitor:sT.nullable(),score:m(),scoreBreakdown:oT,drivers:y(o()),demandSource:y2,actionConfidence:b2,existingAction:rT.nullable(),winnabilityClass:q0,winnability:m().min(0).max(1).nullable()});h({targets:y(x2),contextMetrics:h({totalAiReferralSessions:m().int().nonnegative(),latestRunId:o(),runTimestamp:o()})});const lT=h({targetRef:o(),addressedUrl:o().nullable(),note:o().nullable(),dismissedAt:o()});h({dismissals:y(lT)});h({targetRef:o().min(1),addressedUrl:o().url().optional(),note:o().max(500).optional()});h({targetRef:o(),promptVersion:o(),provider:o(),model:o(),responseText:o(),costMillicents:m().int().nonnegative(),generatedAt:o()});h({provider:o().optional(),model:o().optional(),forceRefresh:E().optional()});const cT=h({targetQuery:o().trim().min(1),winnabilityClass:q0,angle:o().trim().min(1),whyWinnable:o().trim().min(1),schemaHookup:o().trim().min(1),controllableSurfaceRationale:o().trim().min(1)});h({targetRef:o(),promptVersion:o(),provider:o(),model:o(),brief:cT,costMillicents:m().int().nonnegative(),generatedAt:o()});const uT=h({domain:o(),competitorType:fu,hits:m().int().nonnegative(),updatedAt:o()});h({classifications:y(uT)});const dT=h({uri:o(),title:o(),domain:o(),isOurDomain:E(),isCompetitor:E(),citationCount:m().int().nonnegative(),providers:y(mt)}),k2=h({query:o(),groundingSources:y(dT)});h({sources:y(k2),latestRunId:o()});const w2=h({query:o(),competitorDomains:y(o()),competitorCount:m().int().nonnegative(),missRate:m().min(0).max(1),lastSeenInRunId:o()});h({gaps:y(w2),latestRunId:o()});const S2=N(["ok","warn","fail","skipped"]);S2.enum;const B0=N(["global","project"]);B0.enum;const j2=N(["auth","config","providers","integrations","database","schedules","agent"]);j2.enum;const mT=h({id:o(),category:j2,scope:B0,title:o(),status:S2,code:o().describe('Stable machine-readable code (e.g. "google.token.refresh-failed"). Use this for filtering and remediation logic.'),summary:o(),remediation:o().nullable().optional().describe('Operator-facing next step. Null when status is "ok" or no specific remediation applies.'),details:Pe(o(),pa()).optional().describe("Structured context — principal email, redirect URI, missing scopes, etc. Stable per check id."),durationMs:m().int().nonnegative().describe("How long the check took to execute.")});h({scope:B0,project:o().nullable().describe('Project name when scope is "project", null otherwise.'),generatedAt:o().describe("ISO-8601 timestamp when this doctor run started."),durationMs:m().int().nonnegative(),summary:h({total:m().int().nonnegative(),ok:m().int().nonnegative(),warn:m().int().nonnegative(),fail:m().int().nonnegative(),skipped:m().int().nonnegative()}),checks:y(mT)});const pT=h({provider:o(),citationState:qn,cited:E(),mentioned:E(),runId:o(),runCreatedAt:o()}),hT=h({queryId:o(),query:o(),providers:y(pT),citedCount:m().int().nonnegative(),mentionedCount:m().int().nonnegative(),totalProviders:m().int().nonnegative()}),fT=h({queryId:o(),query:o(),provider:o(),citingCompetitors:y(o()),runId:o(),runCreatedAt:o()}),gT=h({providersConfigured:m().int().nonnegative(),providersCiting:m().int().nonnegative(),providersMentioning:m().int().nonnegative(),totalQueries:m().int().nonnegative(),queriesCitedAndMentioned:m().int().nonnegative(),queriesCitedOnly:m().int().nonnegative(),queriesMentionedOnly:m().int().nonnegative(),queriesInvisible:m().int().nonnegative(),latestRunId:o().nullable(),latestRunAt:o().nullable()});h({summary:gT,byQuery:y(hT),competitorGaps:y(fT),status:N(["ready","no-data"]),reason:N(["no-runs-yet","no-queries"]).optional()});const WL=[7,14,30,90],eV=30;Ie([$(7),$(14),$(30),$(90)]).describe("Report window in days (7, 14, 30, or 90). Defaults to 30 when omitted.");const yT=N(["prompt","request-param","browser-geo","ignored"]),bT=h({label:o(),city:o(),region:o(),country:o(),otherConfiguredLabels:y(o())}),vT=h({provider:o(),treatment:yT,description:o()}),xT=h({generatedAt:o(),project:h({id:o(),name:o(),displayName:o(),canonicalDomain:o(),country:o(),language:o()}),location:bT.nullable(),providerLocationHandling:y(vT),periodStart:o().nullable(),periodEnd:o().nullable(),periodDays:m().int().positive()}),kT=h({citationRate:m(),citedQueryCount:m(),totalQueryCount:m(),mentionRate:m(),mentionedQueryCount:m(),trend:N(["up","down","flat","unknown"]),queryCount:m(),competitorCount:m(),providerCount:m(),gsc:h({clicks:m(),impressions:m(),ctr:m(),avgPosition:m(),periodStart:o(),periodEnd:o()}).nullable(),ga:h({sessions:m(),users:m(),periodStart:o(),periodEnd:o()}).nullable(),findings:y(h({title:o(),detail:o(),tone:N(["positive","caution","negative","neutral"])}))}),wT=h({citationState:N(["cited","not-cited","pending"]),answerMentioned:E().nullable(),model:o().nullable()}),ST=h({queries:y(o()),providers:y(o()),matrix:y(y(wT.nullable())),providerRates:y(h({provider:o(),citedCount:m(),mentionedCount:m(),totalCount:m(),citationRate:m(),mentionRate:m()}))}),jT=h({domain:o(),citationCount:m(),totalCount:m(),pressureLabel:N(["High","Moderate","Low","None"]),citedQueries:y(o()),sharePct:m(),theirCitedPages:y(h({url:o(),citedFor:y(o())}))}),AT=h({projectCitationCount:m(),competitors:y(jT)}),NT=h({domain:o(),mentionCount:m(),totalCount:m(),pressureLabel:N(["High","Moderate","Low","None"]),mentionedQueries:y(o()),sharePct:m()}),CT=h({projectMentionCount:m(),totalAnswerSnapshots:m(),competitors:y(NT)}),_T=h({category:o(),label:o(),count:m(),sharePct:m()}),zT=h({categories:y(_T),topDomains:y(h({domain:o(),count:m(),isCompetitor:E()}))}),ET=h({query:o(),clicks:m(),impressions:m(),ctr:m(),avgPosition:m(),category:N(["brand","lead-gen","industry","other"])}),DT=h({periodStart:o(),periodEnd:o(),totalClicks:m(),totalImpressions:m(),ctr:m(),avgPosition:m(),topQueries:y(ET),categoryBreakdown:y(h({category:N(["brand","lead-gen","industry","other"]),clicks:m(),impressions:m(),sharePct:m()})),trend:y(h({date:o(),clicks:m(),impressions:m()})),trackedButNoGsc:y(o()),gscButNotTracked:y(o())}),TT=h({totalSessions:m(),totalUsers:m(),totalOrganicSessions:m(),periodStart:o(),periodEnd:o(),topLandingPages:y(h({page:o(),sessions:m(),users:m(),organicSessions:m()})),channelBreakdown:y(h({channel:o(),sessions:m(),sharePct:m()}))}),RT=h({totalSessions:m(),organicSessions:m(),paidSessions:m(),channels:y(h({channelGroup:o(),sessions:m(),sharePct:m()})),topCampaigns:y(h({source:o(),medium:o(),sessions:m()}))}),OT=h({totalSessions:m(),paidSessions:m(),organicSessions:m(),totalUsers:m().optional(),paidUsers:m().optional(),organicUsers:m().optional(),bySource:y(h({source:o(),sessions:m(),users:m().optional(),paidSessions:m(),organicSessions:m(),sharePct:m()})),trend:y(h({date:o(),sessions:m()})),topLandingPages:y(h({page:o(),sessions:m(),users:m().optional()}))}),qT=h({windowStart:o(),windowEnd:o(),hasData:E(),verifiedCrawlerHits:h({current:m(),prior:m(),deltaPct:m().nullable()}),unverifiedCrawlerHits:h({current:m(),prior:m(),deltaPct:m().nullable()}),aiUserFetchHits:h({current:m(),prior:m(),deltaPct:m().nullable()}),referralArrivals:h({current:m(),prior:m(),deltaPct:m().nullable()}),referralArrivalsByClass:h({paid:h({current:m(),prior:m(),deltaPct:m().nullable()}),organic:h({current:m(),prior:m(),deltaPct:m().nullable()}),unclassified:h({current:m(),prior:m(),deltaPct:m().nullable()})}),referralArrivalsClassSummary:o(),byOperator:y(h({operator:o(),verifiedHits:m(),unverifiedHits:m(),userFetchHits:m(),referralArrivals:m(),deltaPct:m().nullable()})),topCrawledPaths:y(h({path:o(),verifiedHits:m(),distinctOperators:m()})),referralProducts:y(h({product:o(),arrivals:m(),distinctLandingPaths:m()})),dailyTrend:y(h({date:o(),verifiedCrawlerHits:m(),userFetchHits:m(),referralArrivals:m()})),topReferralLandingPaths:y(h({path:o(),arrivals:m(),distinctProducts:m()}))}),BT=h({provider:N(["google","bing"]).nullable(),total:m(),indexed:m(),notIndexed:m(),deindexed:m(),unknown:m(),indexedPct:m()}),MT=h({runId:o(),date:o(),citationRate:m(),citedQueryCount:m(),totalQueryCount:m(),mentionRate:m(),mentionedQueryCount:m(),providerRates:y(h({provider:o(),citationRate:m(),mentionRate:m()}))}),Tp=h({id:o(),type:N(["regression","gain","opportunity"]),severity:N(["critical","high","medium","low"]),title:o(),query:o(),provider:o(),recommendation:o().nullable(),createdAt:o(),instanceCount:m()}),PT=h({horizon:N(["immediate","short-term","medium-term"]),title:o(),rationale:o()}),oo=h({current:m(),prior:m(),deltaAbs:m(),deltaPct:m().nullable(),direction:N(["up","down","flat"]),window:m().optional()}),IT=h({provider:o(),current:m(),prior:m(),deltaAbs:m(),direction:N(["up","down","flat"])}),UT=h({enoughHistory:E(),headline:o(),citationRate:oo.nullable(),mentionRate:oo.nullable(),citedQueryCount:oo.nullable(),mentionedQueryCount:oo.nullable(),gscClicksDelta:oo.nullable(),aiReferralsDelta:oo.nullable(),comparisonWindowDays:m().int().positive(),providerMovements:y(IT),wins:y(Tp),regressions:y(Tp)});N(["agency","client"]);const LT=N(["agency","client","both"]),VT=N(["immediate","short-term","medium-term"]),$T=N(["high","medium","low"]);N(["positive","caution","negative","neutral"]);const HT=N(["content","competitors","provider","search-demand","indexing","location","monitoring"]),M0=h({audience:LT,priority:m(),horizon:VT,category:HT,title:o(),action:o(),why:y(o()),evidence:y(o()),successMetric:o(),confidence:$T,targetRef:o().optional()}),GT=h({headline:o(),overview:o(),actionItems:y(M0),confidenceNotes:y(o())}),KT=h({title:o(),detail:o(),severity:N(["positive","caution","negative","neutral"]),evidence:y(o())}),QT=h({priorities:y(M0),diagnostics:y(KT)});function tV(e){return e.horizon==="immediate"?"negative":e.confidence==="high"?"caution":e.confidence==="low"?"neutral":"caution"}function aV(e){switch(e){case"critical":return"Critical";case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}function nV(e){switch(e){case"immediate":return"Immediate";case"short-term":return"Short term";case"medium-term":return"Medium term"}}function iV(e){switch(e){case"content":return"Content";case"competitors":return"Competitors";case"provider":return"Provider";case"search-demand":return"Search demand";case"indexing":return"Indexing";case"location":return"Location";case"monitoring":return"Monitoring"}}function sV(e){switch(e){case"high":return"High";case"medium":return"Medium";case"low":return"Low"}}h({meta:xT,executiveSummary:kT,citationScorecard:ST,competitorLandscape:AT,mentionLandscape:CT,aiSourceOrigin:zT,gsc:DT.nullable(),ga:TT.nullable(),socialReferrals:RT.nullable(),aiReferrals:OT.nullable(),serverActivity:qT.nullable(),indexingHealth:BT.nullable(),citationsTrend:y(MT),whatsChanged:UT,insights:y(Tp),recommendedNextSteps:y(PT),actionPlan:y(M0),clientSummary:GT,agencyDiagnostics:QT,contentOpportunities:y(x2),contentGaps:y(w2),groundingSources:y(k2)});const ZT=Ie([$(60),$(90)]),FT=N(["earliest","middle","prior","latest"]),ro=h({clicks:m().int().nonnegative(),impressions:m().int().nonnegative()}),A2=h({name:FT,startDate:o(),endDate:o()}),YT=A2.extend({totals:ro}),XT=A2.extend({organicSessions:m().int().nonnegative()}),tp=h({startDate:o(),endDate:o(),observedDays:m().int().nonnegative()}),zc=h({verified:m().int().nonnegative(),claimedUnverified:m().int().nonnegative(),unknownAiLike:m().int().nonnegative()}),mb=h({total:m().int().nonnegative(),paid:m().int().nonnegative(),organic:m().int().nonnegative(),unknown:m().int().nonnegative()});h({contractVersion:$("organic-evidence/v1"),periodDays:ZT,asOfDate:o().nullable(),coverage:h({gsc:E(),ga4:E(),server:E(),visibility:E()}),sourceCoverage:h({gsc:tp.nullable(),ga4:tp.nullable(),server:tp.nullable(),visibility:h({completedAt:o(),ageDays:m().nonnegative()}).nullable()}),gsc:h({propertyTotals:ro,namedBrand:ro,namedNonBrand:ro,suppressedOrUnreportedResidual:ro,cohorts:y(YT)}).nullable(),ga4:h({organicSessions:m().int().nonnegative(),cohorts:y(XT)}).nullable(),gaAiReferrals:h({paidSessions:m().int().nonnegative(),organicSessions:m().int().nonnegative()}).nullable(),server:h({crawlerHits:zc,userFetchHits:zc,referralSessions:mb}).nullable(),visibility:h({runId:o(),completedAt:o(),ageDays:m().nonnegative(),answerPairs:m().int().nonnegative(),mentionedPairs:m().int().nonnegative(),citedPairs:m().int().nonnegative()}).nullable(),measurement:w7,pages:y(h({path:o(),gsc:ro,ga4OrganicSessions:m().int().nonnegative(),server:h({crawlerHits:zc,userFetchHits:zc,referralSessions:mb})})),findings:y(h({tone:N(["positive","caution","neutral"]),title:o(),detail:o()})),limitations:y(h({code:o(),detail:o()}))});const JT=N(["claude","codex"]);JT.enum;const WT=N(["claude","codex","all"]);WT.enum;const N2=h({content:m().int().nonnegative(),sitemap:m().int().nonnegative(),robots:m().int().nonnegative(),asset:m().int().nonnegative(),other:m().int().nonnegative()}),eR=N(["content","sitemap","robots","asset","other"]),P0=N(["cloud-run","wordpress","cloudflare","vercel","generic-log"]);P0.enum;const tR=N(["raw-request-events","aggregate-request-metrics","request-url","status-code","user-agent","remote-ip","referer","cursor-pull"]);tR.enum;const aR=N(["raw-request","aggregate-bucket"]),nR=aR.enum,iR=N(["observed","provider-aggregated","inferred"]),sR=iR.enum,oR=h({type:o().nullable(),labels:Pe(o(),o())}),rR=h({sourceType:P0,evidenceKind:$(nR["raw-request"]),confidence:$(sR.observed),eventId:o().min(1),observedAt:o().min(1),method:o().nullable(),requestUrl:o().nullable(),host:o().nullable(),path:o().min(1),queryString:o().nullable(),status:m().int().nullable(),userAgent:o().nullable(),remoteIp:o().nullable(),referer:o().nullable(),latencyMs:m().nullable(),requestSizeBytes:m().int().nullable(),responseSizeBytes:m().int().nullable(),providerResource:oR,providerLabels:Pe(o(),o())});h({events:y(rR),rawEntryCount:m().int().nonnegative(),skippedEntryCount:m().int().nonnegative(),nextPageToken:o().optional(),filter:o()});const C2=N(["connected","paused","error","archived"]),oV=C2.enum,_2=N(["oauth","service-account"]);_2.enum;const lR=N(["verified","claimed_unverified","unknown_ai_like"]),rV=lR.enum,cR=h({id:o().min(1),source:o().min(1),version:o().min(1)}),z2=h({manifestId:o().min(1),manifest:cR.nullable(),hits:m().int().nonnegative()});h({gcpProjectId:o().min(1),serviceName:o().nullable().optional(),location:o().nullable().optional(),authMode:_2});h({baseUrl:o().url(),username:o().min(1)});const I0=N(["production","preview"]);I0.enum;h({projectId:o().min(1),teamId:o().min(1),environment:I0});const E2=h({id:o(),projectId:o(),sourceType:P0,displayName:o(),status:C2,lastSyncedAt:o().nullable(),lastCursor:o().nullable(),lastError:o().nullable(),skippedThroughAt:o().nullable(),queueBacklogCount:m().int().nonnegative().nullable(),queueBacklogObservedAt:o().nullable(),archivedAt:o().nullable(),config:Pe(o(),pa()),createdAt:o(),updatedAt:o()});h({gcpProjectId:o().min(1),serviceName:o().min(1).optional(),location:o().min(1).optional(),displayName:o().min(1).optional(),keyJson:o().optional()});h({baseUrl:o().url(),username:o().min(1),applicationPassword:o().min(1),displayName:o().min(1).optional()});h({projectId:o().min(1),teamId:o().min(1),token:o().min(1),environment:I0.optional(),displayName:o().min(1).optional()});const uR=N(["direct-push","queue-pull"]),Do=uR.enum,U0=o().regex(/^(?=.{1,63}$)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,"Cloudflare Queue name must be 1-63 characters, use only letters, numbers, or dashes, and start and end with a letter or number"),D2=h({schemaVersion:$(1),workerVersion:o().min(1),expectedBotListVersion:o().min(1),zoneId:o().nullable()}),dR=D2.extend({deliveryMode:$(Do["direct-push"]),accountId:o().nullable()}),mR=D2.extend({deliveryMode:$(Do["queue-pull"]),accountId:o().min(1),queueId:o().min(1),queueName:U0,retentionSeconds:m().int().min(60).max(1209600)});function T2(e){if(typeof e!="object"||e===null||Array.isArray(e))return e;const n=e;return"deliveryMode"in n?e:{...n,deliveryMode:"direct-push"}}a0(T2,Fe("deliveryMode",[dR,mR]));const R2=h({displayName:o().min(1).optional(),zoneId:o().min(1).optional()}),pR=R2.extend({deliveryMode:$(Do["direct-push"]),accountId:o().min(1).optional()}),hR=R2.extend({deliveryMode:$(Do["queue-pull"]),accountId:o().min(1),queueId:o().min(1),queueName:U0,retentionSeconds:m().int().min(60).max(1209600),apiToken:o().min(1)});a0(T2,Fe("deliveryMode",[pR,hR]));const O2=h({sourceId:o().min(1),workerScript:o().min(1),wranglerToml:o().min(1),workerVersion:o().min(1),instructions:o().min(1)}),fR=O2.extend({deliveryMode:$(Do["direct-push"]),activationRequired:E().default(!1)}),gR=O2.extend({deliveryMode:$(Do["queue-pull"]),activationRequired:E().default(!1),accountId:o().min(1),queueId:o().min(1),queueName:U0,retentionSeconds:m().int().min(60).max(1209600)});Fe("deliveryMode",[fR,gR]);const yR=h({eventId:o().min(1),observedAt:o().datetime(),method:o().nullable(),host:o().nullable(),path:o().min(1),queryString:o().nullable(),status:m().int().nullable(),userAgent:o().nullable(),remoteIp:o().nullable(),referer:o().nullable(),cf:h({verifiedBot:E().nullable(),botScore:m().int().nullable(),country:o().nullable(),asn:m().int().nullable(),asOrganization:o().nullable()}).nullable()});h({schemaVersion:$(1),workerVersion:o().min(1),events:y(yR).min(1).max(100)});h({acceptedEvents:m().int(),droppedEvents:m().int(),workerVersionAck:o(),crawlerBucketRows:m().int(),aiUserFetchBucketRows:m().int(),aiReferralBucketRows:m().int(),sampleRows:m().int()});h({sourceId:o(),runId:o(),syncedAt:o(),pulledEvents:m().int().nonnegative(),selfTrafficExcluded:m().int().nonnegative(),crawlerHits:m().int().nonnegative(),aiUserFetchHits:m().int().nonnegative(),aiReferralHits:m().int().nonnegative(),unknownHits:m().int().nonnegative(),crawlerBucketRows:m().int().nonnegative(),aiUserFetchBucketRows:m().int().nonnegative(),aiReferralBucketRows:m().int().nonnegative(),sampleRows:m().int().nonnegative(),remainingBacklogCount:m().int().nonnegative().optional(),windowStart:o(),windowEnd:o()});h({days:m().int().positive().optional()});h({advanceToNow:$(!0)});h({sourceId:o(),runId:o(),status:Fa,windowStart:o(),windowEnd:o(),daysRequested:m().int().positive(),daysApplied:m().int().positive()});const bR=h({crawlerHits:m().int().nonnegative(),crawlerContentHits:m().int().nonnegative(),crawlerInfraHits:m().int().nonnegative(),crawlerSegments:N2,aiUserFetchHits:m().int().nonnegative(),aiReferralHits:m().int().nonnegative(),sampleCount:m().int().nonnegative()});h({sources:y(E2)});const vR=E2.extend({totals24h:bR,latestRun:h({runId:o(),status:Fa,startedAt:o().nullable(),finishedAt:o().nullable(),error:o().nullable()}).nullable()});h({sources:y(vR)});const xR=N(["crawler","ai-user-fetch","ai-referral"]),L0=xR.enum,q2=N(["hour","day"]);q2.enum;const kR=h({bucket:o(),crawlerHits:m().int().nonnegative(),aiUserFetchHits:m().int().nonnegative(),aiReferralHits:m().int().nonnegative()}),wR=h({kind:$(L0.crawler),sourceId:o(),tsHour:o(),botId:o(),operator:o(),verificationStatus:o(),verificationManifests:y(z2).optional(),verificationUnattributedHits:m().int().nonnegative().optional(),pathNormalized:o(),pathClass:eR,status:m().int(),hits:m().int().nonnegative()}),SR=h({kind:$(L0["ai-user-fetch"]),sourceId:o(),tsHour:o(),botId:o(),operator:o(),verificationStatus:o(),verificationManifests:y(z2).optional(),verificationUnattributedHits:m().int().nonnegative().optional(),pathNormalized:o(),status:m().int(),hits:m().int().nonnegative()}),jR=h({kind:$(L0["ai-referral"]),sourceId:o(),tsHour:o(),product:o(),operator:o(),sourceDomain:o(),evidenceType:o(),landingPathNormalized:o(),status:m().int(),hits:m().int().nonnegative(),paidHits:m().int().nonnegative(),organicHits:m().int().nonnegative(),unknownHits:m().int().nonnegative()}),AR=Fe("kind",[wR,SR,jR]);h({windowStart:o(),windowEnd:o(),series:h({granularity:q2,points:y(kR)}),totals:h({crawlerHits:m().int().nonnegative(),crawlerContentHits:m().int().nonnegative(),crawlerInfraHits:m().int().nonnegative(),crawlerSegments:N2,aiUserFetchHits:m().int().nonnegative(),aiReferralHits:m().int().nonnegative(),aiReferralPaidHits:m().int().nonnegative(),aiReferralOrganicHits:m().int().nonnegative(),aiReferralUnknownHits:m().int().nonnegative()}),eventRows:h({total:m().int().nonnegative(),returned:m().int().nonnegative(),truncated:E()}),events:y(AR)});const B2=N(["queued","running","completed","partial","failed"]),lV=B2.enum,M2=N(["queued","running","completed","failed"]),cV=M2.enum;h({queries:y(o().trim().min(1).max(4e3)).min(1).max(50),provider:o().trim().min(1).optional(),model:o().trim().min(1).max(200).optional(),location:sa.nullable().optional(),idempotencyKey:o().trim().min(1).max(128).optional()}).superRefine((e,n)=>{e.model&&!e.provider&&n.addIssue({code:ft.custom,path:["provider"],message:"provider is required when model is supplied"})});const P2=h({id:o(),projectId:o(),status:B2,provider:o(),requestedModel:o().nullable(),resolvedModel:o(),location:sa.nullable(),totalQueries:m().int(),completedQueries:m().int(),failedQueries:m().int(),error:o().nullable(),startedAt:o().nullable(),finishedAt:o().nullable(),createdAt:o()}),NR=h({id:o(),position:m().int(),query:o(),status:M2,requestedModel:o().nullable(),resolvedModel:o(),servedModel:o().nullable(),answerText:o().nullable(),groundingSources:y(du),citedDomains:y(o()),searchQueries:y(o()),namedCompetitors:y(o()).default([]),citedCompetitorDomains:y(o()).default([]),answerMentioned:E().nullable(),citationState:qn.nullable(),error:o().nullable(),startedAt:o().nullable(),finishedAt:o().nullable(),createdAt:o()});P2.extend({queries:y(NR)});h({runs:y(P2)});h({apiKey:o().min(1)});h({id:o(),name:o(),status:o(),currencyCode:o().nullable(),timezone:o().nullable(),url:o().nullable(),reviewStatus:o().nullable(),integrityReviewStatus:o().nullable(),integrityDecision:o().nullable()});h({q:o().trim().min(1).max(200),limit:m().int().min(1).max(100).default(20)});const CR=h({id:o(),type:o(),canonicalName:o(),countryCode:o(),name:o(),regionCode:o().nullable()});h({count:m().int().nonnegative(),query:o(),results:y(CR)});const _R=h({id:o(),clientType:o().optional(),name:o().optional(),pixelId:o().optional()});h({pixels:y(_R)});const zR=h({id:o(),name:o().optional()}),ER=h({id:o(),name:o().optional(),eventType:o().optional(),customEventName:o().nullable().optional(),attributionWindowDays:m().int().positive().optional(),adAccountId:o().optional(),sourceIds:y(o()).optional(),sources:y(zR).optional(),archived:E().optional(),version:m().int().nonnegative().optional()});h({eventSettings:y(ER)});h({connected:E(),adAccountId:o().nullable().optional(),displayName:o().nullable().optional(),currencyCode:o().nullable().optional(),timezone:o().nullable().optional(),status:o().nullable().optional(),reviewStatus:o().nullable().optional(),integrityReviewStatus:o().nullable().optional(),integrityDecision:o().nullable().optional(),lastSyncedAt:o().nullable().optional(),conversionTrackingConfigured:E().optional()});h({disconnected:E()});h({runId:o(),status:o()});const DR=h({type:o().nullable().optional(),title:o().nullable().optional(),body:o().nullable().optional(),targetUrl:o().nullable().optional(),fileId:o().nullable().optional()}),al=N(["impressions","clicks"]),TR=al.enum,nl=N(["impression","click"]);nl.enum;const RR=h({id:o(),adGroupId:o(),name:o(),status:o(),reviewStatus:o().nullable().optional(),creative:DR.nullable().optional(),upstreamUpdatedAt:m().int().nullable().optional(),syncedAt:o().optional()}),OR=h({id:o(),campaignId:o(),name:o(),description:o().nullable().optional(),status:o(),billingEventType:Ie([nl,de()]).optional(),maxBidMicros:m().int().nullable().optional(),contextHints:y(o()).default([]),ads:y(RR).default([]),upstreamUpdatedAt:m().int().nullable().optional(),syncedAt:o().optional()}),qR=h({id:o(),name:o(),description:o().nullable().optional(),status:o(),startTime:m().int().nullable().optional(),endTime:m().int().nullable().optional(),biddingType:Ie([al,de()]).optional(),dailySpendLimitMicros:m().int().nullable().optional(),lifetimeSpendLimitMicros:m().int().nullable().optional(),conversionEventSettingIds:y(o()).default([]),locationIds:y(o()).optional(),adGroups:y(OR).default([]),upstreamUpdatedAt:m().int().nullable().optional(),syncedAt:o().optional()});h({campaigns:y(qR)});const I2=N(["campaign","ad_group"]);I2.enum;const BR=h({level:I2,entityId:o(),date:o(),impressions:m().int(),clicks:m().int(),spendMicros:m().int(),conversions:m().int(),ctr:m().nullable(),cpcMicros:m().int().nullable(),inProgress:E()});h({rows:y(BR),currencyCode:o().nullable().optional()});const U2=h({from:o().nullable(),to:o().nullable(),inProgressDate:o().nullable()}),L2=h({impressions:m().int(),clicks:m().int(),spendMicros:m().int(),conversions:m().int(),ctr:m().nullable(),cpcMicros:m().int().nullable()});h({connected:E(),displayName:o().nullable().optional(),currencyCode:o().nullable().optional(),lastSyncedAt:o().nullable().optional(),campaignCount:m().int(),adGroupCount:m().int(),adCount:m().int(),window:U2,totals:L2});const V2=N(["unavailable","partial","complete"]);V2.enum;const $2=N(["no_ads_connection","connection_not_synced","no_ads_sync","entity_rows_missing_sync_run_id","entity_rows_span_multiple_sync_runs","source_sync_missing","source_sync_not_ads_sync","source_sync_not_completed"]);$2.enum;const H2=N(["unavailable","reported"]);H2.enum;const MR={storedSnapshot:"stored_ads_snapshot"},G2=N(["unavailable","partial_snapshot","metrics_unavailable","observed_activity","no_observed_activity"]);G2.enum;const PR=h({id:o(),name:o(),status:o(),reviewStatus:o().nullable()}),IR=h({id:o(),name:o(),status:o(),billingEventType:Ie([nl,de()]),maxBidMicros:m().int().nullable(),contextHints:y(o()),ads:y(PR)}),UR=h({id:o(),name:o(),status:o(),biddingType:Ie([al,de()]),dailySpendLimitMicros:m().int().nullable(),lifetimeSpendLimitMicros:m().int().nullable(),conversionEventSettingIds:y(o()),adGroups:y(IR)});h({snapshot:h({status:V2,issue:Ie([$2,de()]),lastSyncedAt:o().nullable(),campaignCount:m().int().nonnegative(),adGroupCount:m().int().nonnegative(),adCount:m().int().nonnegative(),sourceSync:h({runId:o(),status:Fa}).nullable()}),historicalCampaignRollups:h({status:H2,window:U2,totals:L2.nullable()}),storedConfiguration:h({basis:$(MR.storedSnapshot),connection:h({status:o().nullable(),reviewStatus:o().nullable(),integrityReviewStatus:o().nullable(),integrityDecision:o().nullable(),conversionTrackingConfigured:E()}).nullable(),campaigns:y(UR)}),assessment:h({state:G2})});const In=o().min(8).max(128).regex(/^[\w.:-]+$/,"operationKey may contain letters, numbers, dot, underscore, colon, and hyphen"),yt=o().min(1).max(200),ms=o().min(3).max(1e3).refine(e=>e.trim().length>0),wo=m().int().min(946684800).max(4102444800),So=m().int().positive().max(Number.MAX_SAFE_INTEGER),V0=o().regex(/^[a-f0-9]{64}$/),K2=y(yt).max(100).refine(e=>new Set(e).size===e.length,"conversionEventSettingIds must be unique"),Q2=o().url().refine(e=>new URL(e).protocol==="https:",{message:"URL must use https"}),Z2=N(["image_upload","campaign_create","campaign_update","campaign_pause","campaign_tree_activate","ad_group_create","ad_group_update","ad_group_pause","ad_create","ad_update","ad_pause"]);Z2.enum;const F2=N(["pending","reconciling","succeeded","failed","unknown"]),ho=F2.enum,Y2=N(["known_entity","create_fingerprint","manual_only"]);Y2.enum;const X2=N([ho.pending,ho.unknown,ho.reconciling]);X2.enum;const J2=N(["active","paused","archived"]);J2.enum;const W2=N(["file","campaign","ad_group","ad"]);W2.enum;const ek=N(["campaign","ad_group","ad"]);ek.enum;const $0=h({id:yt,expectedUpdatedAt:m().int().nonnegative()}).strict(),LR=$0,Fc=100,VR=$0.extend({ads:y(LR).min(1).max(Fc-1)}).strict(),$R=$0.extend({adGroups:y(VR).min(1).max(Fc-1)}).strict();function HR(e,n){return e<n?-1:e>n?1:0}function pb(e,n,s){for(let r=1;r<e.length;r+=1)if(HR(e[r-1].id,e[r].id)>=0){s.addIssue({code:"custom",path:n,message:"Activation manifest entities must be uniquely sorted by id"});return}}const tk=h({campaign:$R}).strict().superRefine((e,n)=>{1+e.campaign.adGroups.reduce((u,f)=>u+1+f.ads.length,0)>Fc&&n.addIssue({code:"custom",path:["campaign"],message:`Activation manifests may contain at most ${Fc} entities`}),pb(e.campaign.adGroups,["campaign","adGroups"],n);const r=new Set;for(let u=0;u<e.campaign.adGroups.length;u+=1){const f=e.campaign.adGroups[u];pb(f.ads,["campaign","adGroups",u,"ads"],n);for(let g=0;g<f.ads.length;g+=1){const b=f.ads[g];r.has(b.id)&&n.addIssue({code:"custom",path:["campaign","adGroups",u,"ads",g,"id"],message:"An ad may appear only once in an activation manifest"}),r.add(b.id)}}}),ak=V0,GR=N(["approved","executing","consumed","revoked","expired","unknown"]),On=GR.enum,KR=N(["pending","executing","active","failed","rollback_executing","rolled_back","rollback_failed","unknown"]),Ci=KR.enum,QR=h({name:ms.optional(),description:o().max(4e3).nullable().optional(),status:J2.optional(),startTime:wo.nullable().optional(),endTime:wo.nullable().optional(),lifetimeSpendLimitMicros:So.min(1e6).optional(),locationIds:y(yt).max(100).optional(),biddingType:al.optional(),conversionEventSettingIds:K2.optional(),campaignId:yt.optional(),contextHints:y(o().min(1).max(1e3)).max(100).optional(),maxBidMicros:So.max(1e8).optional(),billingEventType:nl.optional(),adGroupId:yt.optional(),creativeFingerprint:V0.optional()}).strict();h({operationKey:In,imageUrl:Q2});h({operationKey:In,name:ms,description:o().max(4e3).optional(),startTime:wo.optional(),endTime:wo.optional(),lifetimeSpendLimitMicros:So.min(1e6),locationIds:y(yt).min(1).max(100),biddingType:al.optional(),conversionEventSettingIds:K2.optional()}).superRefine((e,n)=>{e.startTime!==void 0&&e.endTime!==void 0&&e.endTime<=e.startTime&&n.addIssue({code:"custom",path:["endTime"],message:"endTime must be after startTime"}),e.biddingType===TR.clicks&&(e.conversionEventSettingIds===void 0||e.conversionEventSettingIds.length===0)&&n.addIssue({code:"custom",path:["conversionEventSettingIds"],message:"conversionEventSettingIds must be non-empty when biddingType is clicks"})});h({operationKey:In,campaignId:yt,name:ms,description:o().max(4e3).optional(),contextHints:y(o().min(1).max(1e3)).min(1).max(100),maxBidMicros:So.max(1e8),billingEventType:nl.optional()});const nk=h({title:o().min(3).max(50),body:o().min(1).max(100),targetUrl:Q2,fileId:yt});h({operationKey:In,adGroupId:yt,name:ms,creative:nk});function H0(e){return Object.keys(e).some(n=>n!=="operationKey"&&n!=="expectedUpdatedAt")}h({operationKey:In,expectedUpdatedAt:m().int().nonnegative(),name:ms.optional(),description:o().max(4e3).nullable().optional(),startTime:wo.nullable().optional(),endTime:wo.nullable().optional(),lifetimeSpendLimitMicros:So.min(1e6).optional(),locationIds:y(yt).min(1).max(100).optional()}).refine(H0,{message:"At least one campaign field must be updated"});h({operationKey:In,expectedUpdatedAt:m().int().nonnegative(),name:ms.optional(),description:o().max(4e3).nullable().optional(),contextHints:y(o().min(1).max(1e3)).min(1).max(100).optional(),maxBidMicros:So.max(1e8).optional()}).refine(H0,{message:"At least one ad group field must be updated"});h({operationKey:In,expectedUpdatedAt:m().int().nonnegative(),name:ms.optional(),creative:nk.optional()}).refine(H0,{message:"At least one ad field must be updated"});h({operationKey:In});const bu=h({id:o(),adAccountId:o().nullable(),operationKey:o(),kind:Z2,state:F2,entityType:Ie([W2,de()]),entityId:o().nullable(),upstreamUpdatedAt:m().int().nullable(),errorCode:o().nullable(),errorMessage:o().nullable(),reconcileStrategy:Ie([Y2,de()]),reconcileParentId:yt.nullable(),reconcileFingerprint:V0.nullable(),reconcileFields:QR.nullable(),reconcileAttempts:m().int().nonnegative(),lastReconciledAt:o().nullable(),createdAt:o(),updatedAt:o()});h({operation:bu,replayed:E()});const dt=rx({offset:!0}),To={id:yt,projectId:yt,adAccountId:yt,manifestHash:ak,manifest:tk,executorApiKeyId:yt,approverApiKeyId:yt,expiresAt:dt,approvedAt:dt,createdAt:dt,updatedAt:dt,revocationRequestedAt:dt.nullable()},ZR=h({...To,state:$(On.approved),operationId:de(),executionStartedAt:de(),consumedAt:de(),revokedAt:de(),expiredAt:de()}).strict(),FR=h({...To,state:$(On.executing),operationId:yt,executionStartedAt:dt,consumedAt:de(),revokedAt:de(),expiredAt:de()}).strict(),YR=h({...To,state:$(On.consumed),operationId:yt,executionStartedAt:dt,consumedAt:dt,revokedAt:de(),expiredAt:de()}).strict(),XR=h({...To,state:$(On.revoked),operationId:de(),executionStartedAt:de(),consumedAt:de(),revokedAt:dt,expiredAt:de()}).strict(),JR=h({...To,state:$(On.expired),operationId:de(),executionStartedAt:de(),consumedAt:de(),revokedAt:de(),expiredAt:dt}).strict(),WR=h({...To,state:$(On.unknown),operationId:yt,executionStartedAt:dt,consumedAt:de(),revokedAt:de(),expiredAt:de()}).strict(),ik=Fe("state",[ZR,FR,YR,XR,JR,WR]).superRefine((e,n)=>{e.executorApiKeyId===e.approverApiKeyId&&n.addIssue({code:"custom",path:["executorApiKeyId"],message:"The activation executor must use a different API key from the approver"}),e.revocationRequestedAt!==null&&e.state!==On.executing&&e.state!==On.unknown&&e.state!==On.consumed&&n.addIssue({code:"custom",path:["revocationRequestedAt"],message:"Only an executing, cancelled, or unresolved activation can carry a cancellation request"})}),_i={id:yt,operationId:yt,ordinal:m().int().nonnegative(),entityType:ek,entityId:yt,expectedUpdatedAt:m().int().nonnegative(),createdAt:dt,updatedAt:dt},il={errorCode:de(),errorMessage:de()},G0={errorCode:o().min(1).max(100),errorMessage:o().min(1).max(500),remediation:o().min(1).max(500)},eO=h({..._i,...il,state:$(Ci.pending),providerUpdatedAt:de(),remediation:de(),startedAt:de(),finishedAt:de()}).strict(),tO=h({..._i,...il,state:$(Ci.executing),providerUpdatedAt:de(),remediation:de(),startedAt:dt,finishedAt:de()}).strict(),aO=h({..._i,...il,state:$(Ci.active),providerUpdatedAt:m().int().nonnegative(),remediation:de(),startedAt:dt,finishedAt:dt}).strict(),nO=h({..._i,...G0,state:$(Ci.failed),providerUpdatedAt:Ie([m().int().nonnegative(),de()]),startedAt:dt,finishedAt:dt}).strict(),iO=h({..._i,...il,state:$(Ci.rollback_executing),providerUpdatedAt:m().int().nonnegative(),remediation:o().min(1).max(500),startedAt:dt,finishedAt:de()}).strict(),sO=h({..._i,...il,state:$(Ci.rolled_back),providerUpdatedAt:m().int().nonnegative(),remediation:o().min(1).max(500),startedAt:dt,finishedAt:dt}).strict(),oO=h({..._i,...G0,state:$(Ci.rollback_failed),providerUpdatedAt:m().int().nonnegative(),startedAt:dt,finishedAt:dt}).strict(),rO=h({..._i,...G0,state:$(Ci.unknown),providerUpdatedAt:Ie([m().int().nonnegative(),de()]),startedAt:dt,finishedAt:dt}).strict(),lO=Fe("state",[eO,tO,aO,nO,iO,sO,oO,rO]),Rp={exact:"exact",refreshSemanticallyUnchanged:"refresh_semantically_unchanged"},cO=N([Rp.exact,Rp.refreshSemanticallyUnchanged]);h({manifest:tk,executorApiKeyId:yt,expiresAt:dt,versionPolicy:cO.default(Rp.exact)}).strict();h({grant:ik}).strict();h({}).strict();h({operationKey:In,grantId:yt,manifestHash:ak}).strict();h({grant:ik,operation:bu,steps:y(lO)}).strict();const uO=[ho.pending,ho.unknown,ho.reconciling];function dO(e){if(e===void 0||e==="")return uO;if(Array.isArray(e)){const n=[];for(const s of e)typeof s=="string"?n.push(...s.split(",")):n.push(s);return n}return typeof e=="string"?e.split(",").filter(Boolean):e}h({state:a0(dO,y(X2).min(1).max(3).refine(e=>new Set(e).size===e.length,"state values must be unique")),limit:hx().int().min(1).max(200).default(100),cursor:o().min(1).max(1e3).optional()});h({operations:y(bu),count:m().int().nonnegative(),nextCursor:o().nullable()});h({}).strict();h({operation:bu,resolved:E()});h({campaignId:o().min(1).max(200).optional(),lookbackDays:hx().int().min(1).max(30).default(7)});const sk=N(["campaign","ad_group","ad"]);sk.enum;const ok=N(["both","live-only","stored-only"]);ok.enum;const mO=$("live-provider-read"),pO=h({date:o().nullable(),startTime:m().nullable(),endTime:m().nullable(),impressions:m().nullable(),clicks:m().nullable(),spend:m().nullable(),conversions:m().nullable(),ctr:m().nullable(),cpc:m().nullable(),cpm:m().nullable()}),hb=h({impressions:m().int(),clicks:m().int(),spendMicros:m().int(),conversions:m().int()}),hO=h({date:o(),live:hb.nullable(),stored:hb.nullable(),drifted:E()}),fO=h({field:o(),live:o().nullable(),stored:o().nullable()}),gO=h({name:o().nullable(),status:o(),reviewStatus:o().nullable(),mode:o().nullable(),updatedAt:m().nullable()}),yO=h({name:o(),status:o(),reviewStatus:o().nullable(),upstreamUpdatedAt:m().nullable(),syncedAt:o()}),bO=h({entityType:sk,id:o(),parentId:o().nullable(),presence:ok,live:gO.nullable(),stored:yO.nullable(),fieldDeltas:y(fO),liveMetrics:y(pO).nullable(),metricDeltas:y(hO).nullable(),drifted:E()}),vO=h({surface:o(),entityId:o().nullable(),upstreamStatus:m().int().nullable()});h({basis:mO,fetchedAt:o(),adAccountId:o(),storedSnapshotSyncedAt:o().nullable(),metricsWindow:h({lookbackDays:m().int().positive()}),bounds:h({maxCampaigns:m().int().positive(),maxAdGroupsPerCampaign:m().int().positive(),maxAdsPerAdGroup:m().int().positive(),maxReaderCalls:m().int().positive(),readerCalls:m().int().nonnegative(),maxPagesPerReaderCall:m().int().positive(),maxUpstreamHttpRequests:m().int().positive(),truncated:E()}),entities:y(bO),drift:h({entitiesCompared:m().int().nonnegative(),driftedEntities:m().int().nonnegative(),statusDrifted:m().int().nonnegative(),metricsDrifted:m().int().nonnegative()}),errors:y(vO)});const rk=N(["admin","viewer"]),xO=/^[a-z\d][\w.-]{0,63}$/i,kO=o().regex(xO,"A name may use letters, digits, dots, dashes and underscores, and must start with a letter or digit."),fb=12,wO=o().min(fb,`A password must be at least ${fb} characters.`),lk=h({id:o(),name:o(),role:rk,createdAt:o(),lastLoginAt:o().nullable()});h({users:y(lk)});h({name:kO,password:wO,role:rk});h({name:o().min(1),password:o().min(1)});h({authRequired:E(),user:lk.pick({name:!0,role:!0}).nullable()});const At=1,ap=N(["system","project","queries","competitors","run"]),np=N(["0","1","2-3","4-5","6-10","11+"]);function sn(e){return!Number.isFinite(e)||e<=0?"0":e<2?"1":e<4?"2-3":e<6?"4-5":e<11?"6-10":"11+"}const gb=N(["api_unavailable","database_unavailable","worker_unavailable","no_provider","no_queries","provider_save_failed","project_create_failed","query_save_failed","run_rejected","run_failed","run_cancelled","unknown"]),Ec=h({eventId:o().uuid(),flowVersion:$(At),onboardingSessionId:o().uuid()});Fe("event",[Ec.extend({event:$("onboarding.started"),step:ap,resumed:E()}).strict(),Ec.extend({event:$("onboarding.step_completed"),step:ap,method:N(["existing","inline","manual","generated","skipped","automatic"]),countBucket:np.optional()}).strict(),Ec.extend({event:$("onboarding.blocked"),step:ap,action:N(["continue","configure_provider","generate_queries","save","launch_run","retry_run"]),reasonCode:gb}).strict(),Ec.extend({event:$("run.requested"),origin:$("dashboard_setup"),result:N(["queued","rejected"]),providerCountBucket:np,queryCountBucket:np,reasonCode:gb.optional()}).strict()]);h({accepted:E()});const SO=4;function jO(e){return e.length<SO}var AO=(e=>(e.Clicks="clicks",e.Impressions="impressions",e.CTR="ctr",e.Position="position",e))(AO||{});const uV={clicks:"Clicks",impressions:"Impressions",ctr:"CTR",position:"Position"},dV={clicks:"Clicks",impressions:"Impr",ctr:"CTR",position:"Pos"},NO=j0;function CO(e){const n=[];if(e.message&&n.push(e.message),e.providers)for(const[s,r]of Object.entries(e.providers)){const u=`[${s}] ${r.message}`;r.raw!==void 0?n.push(`${u}
53
53
 
54
54
  ${JSON.stringify(r.raw,null,2)}`):n.push(u)}return n.length>0?n.join(`
55
55
 
@@ -80,4 +80,4 @@ spec:
80
80
  `);Ei(qe),Jt(!0)}}catch(F){Ln(F instanceof Error?F.message:"Failed to generate queries"),R({flowVersion:At,onboardingSessionId:j,event:"onboarding.blocked",step:"queries",action:"generate_queries",reasonCode:Gb(F,"unknown")},"onboarding.blocked:queries:generate")}finally{rl(!1)}}},Gn=async()=>{if(!Ce)return;const F=Nt;if(F.length!==0){Oi(!0),ul(null);try{await Y5(Ce,F),_u(!0),await r(),R({flowVersion:At,onboardingSessionId:j,event:"onboarding.step_completed",step:"competitors",method:"manual",countBucket:sn(F.length)},"onboarding.step_completed:competitors"),je(4)}catch(qe){ul(qe instanceof Error?qe.message:"Failed to save competitors"),R({flowVersion:At,onboardingSessionId:j,event:"onboarding.blocked",step:"competitors",action:"save",reasonCode:"unknown"},"onboarding.blocked:competitors:save")}finally{Oi(!1)}}},Li=async()=>{const F=xs.trim();if(F){ks(!0),Po(null);try{await t6("gemini",{apiKey:F}),Qt({title:"Gemini configured",detail:"Provider is ready — continuing setup.",tone:"positive",dedupeKey:"setup:gemini:configured",dedupeMode:"drop"}),Bo(""),await r(),Di(b.providerStatuses.find(qe=>qe.name.toLowerCase()==="gemini")?.name??"gemini"),R({flowVersion:At,onboardingSessionId:j,event:"onboarding.step_completed",step:"system",method:"inline"},"onboarding.step_completed:system")}catch(qe){Po(qe instanceof Error?qe.message:"Failed to save Gemini key"),R({flowVersion:At,onboardingSessionId:j,event:"onboarding.blocked",step:"system",action:"configure_provider",reasonCode:"provider_save_failed"},"onboarding.blocked:system:provider_save_failed")}finally{ks(!1)}}},dn=async()=>{if(!Ce||La){vs(La??"Complete setup before launching the first sweep.");const F=$n??(Ce?Na===0?"no_queries":"run_rejected":"unknown");R({flowVersion:At,onboardingSessionId:j,event:"run.requested",origin:"dashboard_setup",result:"rejected",providerCountBucket:sn(fa.length),queryCountBucket:sn(Na),reasonCode:F});return}Vn(!0),vs(null);try{const F=await zu.mutateAsync({projectName:Ce,projectLabel:he||I||Ce,sourceAction:"setup-launch"});Mi(F.id),ln(!0),R({flowVersion:At,onboardingSessionId:j,event:"run.requested",origin:"dashboard_setup",result:"queued",providerCountBucket:sn(fa.length),queryCountBucket:sn(Na)}),await r()}catch(F){vs(F instanceof Error?F.message:"Failed to queue the visibility sweep. Retry when the instance is ready."),R({flowVersion:At,onboardingSessionId:j,event:"run.requested",origin:"dashboard_setup",result:"rejected",providerCountBucket:sn(fa.length),queryCountBucket:sn(Na),reasonCode:Gb(F,"run_rejected")})}finally{Vn(!1)}},ct=()=>je(F=>Math.max(0,F-1)),ws=(F,qe,pn)=>{R({flowVersion:At,onboardingSessionId:j,event:"onboarding.step_completed",step:F,method:"existing",...pn===void 0?{}:{countBucket:sn(pn)}},`onboarding.step_completed:${F}`),je(qe)},dl=()=>{R({flowVersion:At,onboardingSessionId:j,event:"onboarding.step_completed",step:"queries",method:"skipped",countBucket:"0"},"onboarding.step_completed:queries"),je(3)},mn=()=>{R({flowVersion:At,onboardingSessionId:j,event:"onboarding.step_completed",step:"competitors",method:"skipped",countBucket:"0"},"onboarding.step_completed:competitors"),je(4)},Kn=(()=>{switch(Re){case 0:return c.jsxs(Sa,{className:"surface-card step-card",children:[c.jsx("div",{className:"section-head",children:c.jsxs("div",{children:[c.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 1 of 5"}),c.jsx("h2",{children:"System check"})]})}),c.jsx("p",{className:"supporting-copy",children:"Checking that your Canonry instance is configured and reachable."}),c.jsx("div",{className:"compact-stack",children:S.healthChecks.map(F=>c.jsxs("div",{className:"health-check-row",children:[c.jsxs("div",{children:[c.jsx("p",{className:"run-row-title",children:F.label}),c.jsx("p",{className:"supporting-copy",children:F.detail}),F.id==="provider"&&F.state!=="ready"&&c.jsxs("div",{className:"mt-3 rounded-md border border-default bg-bg-elevated/40 p-3 space-y-2",children:[c.jsxs("p",{className:"text-xs text-secondary",children:["Paste a Gemini key to enable visibility checks (free at"," ",c.jsx("a",{href:"https://aistudio.google.com/apikey",target:"_blank",rel:"noreferrer",className:"text-positive-400 hover:text-positive underline underline-offset-2",children:"aistudio.google.com"}),")."]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("input",{type:"password",value:xs,onChange:qe=>Bo(qe.target.value),placeholder:"AI... (paste here)",className:"flex-1 rounded-md border border-base bg-bg px-2.5 py-1.5 text-sm text-heading placeholder:text-faint focus:border-mono-600 focus:outline-none font-mono",disabled:Pi}),c.jsx(xe,{type:"button",size:"sm",disabled:Pi||!xs.trim(),onClick:Ut(Li),children:Pi?"Saving...":"Save"})]}),Mo&&c.jsxs("div",{role:"alert",className:"space-y-1 text-xs text-negative",children:[c.jsx("p",{children:Mo}),c.jsx("p",{children:"Check that the key is complete, then retry Save."})]}),c.jsxs("p",{className:"text-sm text-secondary",children:["Connect more answer engines later in"," ",c.jsx(Je,{to:"/settings",className:"text-link hover:underline",children:"Settings"}),"."]})]})]}),c.jsx(ma,{tone:F.state==="ready"?"positive":"caution",title:F.id==="api"?jo(k.apiStatus):F.id==="worker"?jo(k.workerStatus):F.detail,children:F.state==="ready"?"Ready":"Attention"})]},F.id))}),c.jsxs("div",{className:"setup-nav",children:[S.launchState.blockedReason?c.jsx("p",{role:"status",className:"supporting-copy text-negative",children:S.launchState.blockedReason}):c.jsx("span",{}),c.jsx(xe,{type:"button",disabled:!S.launchState.enabled,title:S.launchState.blockedReason,onClick:()=>{R({flowVersion:At,onboardingSessionId:j,event:"onboarding.step_completed",step:"system",method:"automatic"},"onboarding.step_completed:system"),je(we)},children:"Continue"})]})]});case 1:return c.jsxs(Sa,{className:"surface-card step-card",children:[c.jsxs("div",{className:"section-head",children:[c.jsxs("div",{children:[c.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 2 of 5"}),c.jsx("h2",{children:"Create project"})]}),Ce?c.jsx(ma,{tone:"positive",children:"Created"}):null]}),Ce?c.jsxs("div",{className:"compact-stack",children:[c.jsxs("p",{className:"text-neutral",children:["Project ",c.jsx("span",{className:"text-heading font-medium",children:Ce})," created successfully."]}),c.jsxs("div",{className:"setup-nav",children:[c.jsx(xe,{type:"button",variant:"outline",onClick:ct,children:"Back"}),c.jsx(xe,{type:"button",onClick:()=>ws("project",2),children:"Continue"})]})]}):c.jsxs("div",{className:"compact-stack",children:[c.jsxs("div",{className:"setup-field",children:[c.jsx("label",{className:"setup-label",htmlFor:"project-name",children:"Project name"}),c.jsx("input",{id:"project-name",className:"setup-input",type:"text",placeholder:"my-website",value:I,onChange:F=>ne(F.target.value)}),Yt&&Yt!==I?c.jsxs("p",{className:"supporting-copy",children:["Slug: ",Yt]}):null]}),c.jsxs("div",{className:"setup-field",children:[c.jsx("label",{className:"setup-label",htmlFor:"display-name",children:"Display name (optional)"}),c.jsx("input",{id:"display-name",className:"setup-input",type:"text",placeholder:"My Website",value:he,onChange:F=>Ee(F.target.value)})]}),c.jsxs("div",{className:"setup-field",children:[c.jsx("label",{className:"setup-label",htmlFor:"domain",children:"Canonical domain"}),c.jsx("input",{id:"domain",className:"setup-input",type:"text",placeholder:"example.com",value:le,onChange:F=>et(F.target.value)})]}),c.jsxs("div",{className:"setup-field-row",children:[c.jsxs("div",{className:"setup-field",children:[c.jsx("label",{className:"setup-label",htmlFor:"country",children:"Country"}),c.jsx("input",{id:"country",className:"setup-input",type:"text",placeholder:"US",maxLength:2,value:G,onChange:F=>ce(F.target.value.toUpperCase())})]}),c.jsxs("div",{className:"setup-field",children:[c.jsx("label",{className:"setup-label",htmlFor:"language",children:"Language"}),c.jsx("input",{id:"language",className:"setup-input",type:"text",placeholder:"en",maxLength:5,value:ie,onChange:F=>re(F.target.value.toLowerCase())})]})]}),c.jsxs("label",{className:"flex items-start gap-3 rounded-md border border-default bg-surface p-3 cursor-pointer hover:border-strong",children:[c.jsx("input",{type:"checkbox",className:"mt-0.5 h-4 w-4 rounded border-strong bg-bg",checked:W,onChange:F=>Z(F.target.checked)}),c.jsxs("span",{className:"flex-1",children:[c.jsx("span",{className:"block text-sm text-heading",children:"Auto-extract backlinks"}),c.jsxs("span",{className:"block text-xs text-muted mt-0.5",children:["When a new Common Crawl release syncs, automatically extract backlinks for this project."," ",c.jsx(Je,{to:"/backlinks",className:"text-positive-400 hover:text-positive underline underline-offset-2",children:"Manage backlinks"})]})]})]}),Le?c.jsx("p",{className:"text-negative-400 text-sm",children:Le}):null,c.jsxs("div",{className:"setup-nav",children:[c.jsx(xe,{type:"button",variant:"outline",onClick:ct,children:"Back"}),c.jsx(xe,{type:"button",disabled:!Yt||!le||Lt,onClick:Ut(Ui),children:Lt?"Creating...":"Create project"})]})]})]});case 2:return c.jsxs(Sa,{className:"surface-card step-card",children:[c.jsxs("div",{className:"section-head",children:[c.jsxs("div",{children:[c.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 3 of 5"}),c.jsx("h2",{children:"Add queries"})]}),X.isError?c.jsx(ma,{tone:"negative",children:"Load failed"}):Ro?c.jsxs(ma,{tone:"positive",children:[st.length," saved"]}):c.jsxs(ma,{tone:"neutral",children:[st.length," quer",st.length!==1?"ies":"y"]})]}),c.jsx("p",{className:"supporting-copy",children:"Enter the queries you want to track, one per line. A rough first list is fine: you can edit them, research more, and add to them at any time from the project."}),X.isError?c.jsxs("div",{className:"compact-stack",children:[c.jsx("div",{role:"alert",className:"rounded-md border border-negative bg-negative-soft p-3 text-sm text-negative",children:"Saved queries could not be loaded. Retry before changing the query basket."}),c.jsxs("div",{className:"setup-nav",children:[c.jsx(xe,{type:"button",variant:"outline",onClick:ct,children:"Back"}),c.jsx(xe,{type:"button",onClick:()=>{X.refetch()},children:"Retry loading queries"})]})]}):Ro?c.jsxs("div",{className:"compact-stack",children:[c.jsx("ul",{className:"detail-list",children:st.map(F=>c.jsx("li",{children:F},F))}),c.jsxs("div",{className:"setup-nav",children:[c.jsx(xe,{type:"button",variant:"outline",onClick:ct,children:"Back"}),c.jsx(xe,{type:"button",onClick:()=>ws("queries",3,st.length),children:"Continue"})]})]}):c.jsxs("div",{className:"compact-stack",children:[fa.length>0?c.jsxs("div",{className:"compact-stack",children:[c.jsxs("div",{className:"flex items-center gap-2 text-muted text-xs uppercase tracking-wide",children:[c.jsx("span",{className:"flex-1 border-t border-base"}),"auto-generate",c.jsx("span",{className:"flex-1 border-t border-base"})]}),c.jsxs("div",{className:"flex items-end gap-2",children:[c.jsxs("div",{className:"setup-field flex-1",children:[c.jsx("label",{className:"setup-label",htmlFor:"gen-provider",children:"Provider"}),c.jsx("select",{id:"gen-provider",className:"setup-input",value:rn,onChange:F=>Di(F.target.value),children:fa.map(F=>c.jsxs("option",{value:F.name,children:[F.displayName??F.name,F.model?` (${F.model})`:""]},F.name))})]}),c.jsxs("div",{className:"setup-field",children:[c.jsx("label",{className:"setup-label",htmlFor:"gen-count",children:"Count"}),c.jsx("select",{id:"gen-count",className:"setup-input",value:Ti,onChange:F=>Cu(Number(F.target.value)),children:[3,5,10,15,20].map(F=>c.jsx("option",{value:F,children:F},F))})]}),c.jsx(xe,{type:"button",variant:"outline",disabled:qo||!rn,onClick:Ut(Hn),children:qo?"Analyzing site...":"Generate"})]}),ll?c.jsx("p",{className:"text-negative-400 text-sm",children:ll}):null]}):null,c.jsxs("div",{className:"flex items-center gap-2 text-muted text-xs uppercase tracking-wide",children:[c.jsx("span",{className:"flex-1 border-t border-base"}),"or type manually",c.jsx("span",{className:"flex-1 border-t border-base"})]}),c.jsxs("div",{className:"setup-field",children:[c.jsx("label",{className:"setup-label",htmlFor:"queries",children:"Queries (one per line)"}),c.jsx("textarea",{id:"queries",className:"setup-textarea",rows:6,placeholder:`emergency dentist brooklyn
81
81
  best invisalign downtown brooklyn
82
82
  pediatric dentist brooklyn heights`,value:Un,onChange:F=>Ei(F.target.value)})]}),gs?c.jsx("p",{className:"text-negative-400 text-sm",children:gs}):null,c.jsxs("div",{className:"setup-nav",children:[c.jsx(xe,{type:"button",variant:"outline",onClick:ct,children:"Back"}),c.jsx(xe,{type:"button",variant:"ghost",onClick:dl,children:"Skip for now"}),c.jsx(xe,{type:"button",disabled:st.length===0||bs,onClick:Ut(Io),children:bs?"Saving...":`Save ${st.length} quer${st.length!==1?"ies":"y"}`})]})]})]});case 3:return c.jsxs(Sa,{className:"surface-card step-card",children:[c.jsxs("div",{className:"section-head",children:[c.jsxs("div",{children:[c.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 4 of 5"}),c.jsx("h2",{children:"Add competitors"})]}),Ft?c.jsx(ma,{tone:"positive",children:"Saved"}):null]}),c.jsx("p",{className:"supporting-copy",children:"Domains that compete for the same queries. One per line."}),Ft?c.jsxs("div",{className:"compact-stack",children:[c.jsx("ul",{className:"detail-list",children:Nt.map(F=>c.jsx("li",{children:F},F))}),c.jsxs("div",{className:"setup-nav",children:[c.jsx(xe,{type:"button",variant:"outline",onClick:ct,children:"Back"}),c.jsx(xe,{type:"button",onClick:()=>ws("competitors",4,Nt.length),children:"Continue"})]})]}):c.jsxs("div",{className:"compact-stack",children:[c.jsxs("div",{className:"setup-field",children:[c.jsx("label",{className:"setup-label",htmlFor:"competitors",children:"Competitor domains (one per line)"}),c.jsx("textarea",{id:"competitors",className:"setup-textarea",rows:4,placeholder:`competitor1.com
83
- competitor2.com`,value:Zt,onChange:F=>Xa(F.target.value)})]}),cl?c.jsx("p",{className:"text-negative-400 text-sm",children:cl}):null,c.jsxs("div",{className:"setup-nav",children:[c.jsx(xe,{type:"button",variant:"outline",onClick:ct,children:"Back"}),c.jsxs("div",{className:"flex gap-2",children:[c.jsx(xe,{type:"button",variant:"outline",onClick:mn,children:"Skip"}),c.jsx(xe,{type:"button",disabled:Nt.length===0||Ri,onClick:Ut(Gn),children:Ri?"Saving...":`Save ${Nt.length} competitor${Nt.length!==1?"s":""}`})]})]})]})]});case 4:{const F=Ja.data,qe=F?.status??(Bi===M?.id?M.status:void 0),pn=qe==="completed"||qe==="partial"||qe==="failed"||qe==="cancelled",Qn=F?.snapshots??[],Ss=Qn.filter(Wa=>Wa.citationState==="cited").length,js=Qn.filter(Wa=>Wa.answerMentioned===!0).length,Ca=new Set(Qn.map(Wa=>Wa.query).filter(Wa=>!!Wa)).size,Wt=qe?Kb(qe,Qn.length):!1,Uo=J&&!Ua,Eu=qi??(F?.error?NO(F.error):qe==="cancelled"?"The sweep was cancelled before it produced a baseline.":(qe==="completed"||qe==="partial")&&Qn.length===0?"The sweep finished without producing any snapshots. Confirm the query set and provider configuration, then retry.":M?.statusDetail||"The sweep did not produce a baseline. Review provider configuration, then retry.");let hn=null;return Uo||Wt?hn=c.jsx(ma,{tone:"positive",children:"Complete"}):qi&&!Ua?hn=c.jsx(ma,{tone:"negative",children:"Failed"}):pn?hn=c.jsx(ma,{tone:"negative",children:qe==="cancelled"?"Cancelled":"Failed"}):Ua&&(hn=c.jsx(ma,{tone:"caution",children:"Running"})),c.jsxs(Sa,{className:"surface-card step-card",children:[c.jsxs("div",{className:"section-head",children:[c.jsxs("div",{children:[c.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 5 of 5"}),c.jsx("h2",{children:"Launch first run"})]}),hn]}),Uo?c.jsxs("div",{className:"compact-stack",children:[c.jsxs("p",{className:"text-secondary",children:["Setup is complete. ",c.jsx("span",{className:"text-strong font-medium",children:Ce})," already has a successful answer-visibility baseline."]}),c.jsxs("div",{className:"setup-nav",children:[c.jsx("span",{}),c.jsx(xe,{type:"button",onClick:zt,children:g?"Finish and open project":"Open project dashboard →"})]})]}):Ua?pn?Wt?c.jsxs("div",{className:"compact-stack",children:[c.jsxs("p",{className:"text-neutral",children:["Sweep complete. Your first answer-visibility snapshot for"," ",c.jsx("span",{className:"text-heading font-medium",children:Ce}),":"]}),c.jsxs("div",{className:"grid grid-cols-3 gap-2 mt-1",children:[c.jsxs("div",{className:"rounded-md border border-default bg-surface p-3",children:[c.jsx("p",{className:"text-xs font-medium text-secondary",children:"Mentioned"}),c.jsxs("p",{className:"text-2xl font-bold tabular-nums text-primary mt-1",children:[js,c.jsxs("span",{className:"text-faint text-lg",children:[" / ",Ca]})]}),c.jsx("p",{className:"mt-0.5 text-sm text-secondary",children:"queries naming your brand"})]}),c.jsxs("div",{className:"rounded-md border border-default bg-surface p-3",children:[c.jsx("p",{className:"text-xs font-medium text-secondary",children:"Cited"}),c.jsxs("p",{className:"text-2xl font-bold tabular-nums text-primary mt-1",children:[Ss,c.jsxs("span",{className:"text-faint text-lg",children:[" / ",Ca]})]}),c.jsx("p",{className:"mt-0.5 text-sm text-secondary",children:"queries citing your site"})]}),c.jsxs("div",{className:"rounded-md border border-default bg-surface p-3",children:[c.jsx("p",{className:"text-xs font-medium text-secondary",children:"Results"}),c.jsx("p",{className:"text-2xl font-bold tabular-nums text-primary mt-1",children:Qn.length}),c.jsx("p",{className:"mt-0.5 text-sm text-secondary",children:"completed engine checks"})]})]}),c.jsx("p",{className:"mt-1 text-sm text-secondary",children:g?"Your project is ready. Review the evidence in the project.":"Open the project to review the evidence."}),c.jsxs("div",{className:"setup-nav",children:[c.jsx("span",{}),c.jsx(xe,{type:"button",onClick:zt,children:g?"Finish and open project":"Open project dashboard →"})]})]}):c.jsxs("div",{className:"compact-stack",children:[c.jsxs("div",{role:"alert",className:"rounded-md border border-negative bg-negative-soft p-3 text-sm text-negative",children:[c.jsx("p",{children:Eu}),c.jsx("p",{className:"mt-1 text-xs text-secondary",children:"Fix provider or query configuration if needed, then retry without leaving setup."})]}),c.jsxs("div",{className:"setup-nav",children:[c.jsx(xe,{type:"button",variant:"outline",asChild:!0,children:c.jsx(Je,{to:"/settings",children:"Configure providers"})}),c.jsx(xe,{type:"button",disabled:cn||!!La,onClick:Ut(dn),children:cn?"Retrying...":"Retry visibility sweep"})]})]}):c.jsxs("div",{className:"compact-stack",children:[c.jsx("p",{className:"text-neutral",children:"Sweep running. This usually takes 30 to 60 seconds."}),c.jsx("div",{className:"rounded-md border border-default bg-surface p-3 text-xs text-muted",children:c.jsxs("p",{children:["Status: ",c.jsx("span",{className:"text-neutral",children:qe??"queued"})]})}),Ja.isError&&c.jsxs("div",{role:"alert",className:"rounded-md border border-negative bg-negative-soft p-3 text-sm text-negative",children:[c.jsx("p",{children:Ja.error instanceof Error?Ja.error.message:"Could not refresh the sweep status."}),c.jsx(xe,{type:"button",variant:"outline",size:"sm",className:"mt-2",onClick:()=>{Ja.refetch()},children:"Retry status check"})]}),c.jsxs("div",{className:"setup-nav",children:[c.jsx("span",{}),c.jsx(xe,{type:"button",variant:"outline",onClick:zt,children:g?"Finish and open project":"Watch on project page"})]})]}):c.jsxs("div",{className:"compact-stack",children:[c.jsxs("p",{className:"supporting-copy",children:["Setup is done. You can run a first sweep now to get a baseline for"," ",c.jsx("span",{className:"text-heading font-medium",children:Ce}),", or finish and run it later from the project. A sweep calls the answer engines, so it costs provider usage."]}),(La||qi)&&c.jsxs("div",{role:"alert",className:"rounded-md border border-negative bg-negative-soft p-3 text-sm text-negative",children:[c.jsx("p",{children:qi??La}),c.jsx("p",{className:"mt-1 text-xs text-secondary",children:"Resolve the blocker above, then retry the sweep here."})]}),c.jsxs("div",{className:"setup-nav",children:[c.jsx(xe,{type:"button",variant:"outline",onClick:ct,children:"Back"}),c.jsx(xe,{type:"button",variant:"ghost",onClick:zt,children:"Finish without running"}),c.jsx(xe,{type:"button",disabled:cn||!!La,title:La,onClick:Ut(dn),children:cn?"Launching...":qi?"Retry visibility sweep":"Launch visibility sweep"})]})]})]})}default:return null}})();return c.jsxs("div",{className:"page-container",children:[g?c.jsx(Ao,{current:"visibility"}):null,c.jsxs("div",{className:"page-header",children:[c.jsxs("div",{className:"page-header-left",children:[c.jsx("h1",{ref:u?f:void 0,tabIndex:u?-1:void 0,className:"page-title",children:u?"Set up AI Visibility":"Setup"}),c.jsx("p",{className:"page-subtitle",children:u?"Choose what to track, then run your first visibility sweep.":"Create a project and run its first visibility check."})]}),g?c.jsx("div",{className:"page-header-right",children:c.jsx(xe,{type:"button",variant:"outline",onClick:zt,children:"Skip AI Visibility"})}):null]}),c.jsx(tI,{current:Re,labels:WP}),c.jsx("section",{className:"setup-wizard",children:Kn})]})}const sI=z.lazy(async()=>({default:(await Pn(()=>import("./SiteHealthSection-BYM32RDv.js").then(n=>n.d),__vite__mapDeps([0,1,2,3,4]),import.meta.url)).SiteHealthSection})),oI=1800,rI="https://github.com/Canonry/canonry#or-use-any-shell-capable-coding-agent",lI="Help me set up Canonry for my public site.\n\nUse Canonry's official docs:\n- Agent quickstart: https://github.com/Canonry/canonry#or-use-any-shell-capable-coding-agent\n- CLI reference: https://github.com/Canonry/canonry/blob/main/skills/canonry/references/canonry-cli.md\n- Plugin setup: https://github.com/Canonry/canonry/blob/main/docs/plugins.md\n- MCP setup: https://github.com/Canonry/canonry/blob/main/docs/mcp.md\n\nUse an existing Canonry installation or connected plugin/MCP if one is already available. Do not create a duplicate. The `cnry` and `canonry` commands are interchangeable.\n\n1. Ask for my public domain, country, and language. Do not create or scan anything yet.\n2. Check the local setup with `command -v cnry`, `cnry --version`, `cnry doctor --format json`, and `cnry project list --format json`. If Canonry is missing, propose `npm install -g @canonry/canonry` and wait for approval. If initialization is required, tell me to run `cnry init` in my private terminal and wait. Never ask me to paste passwords, API keys, OAuth credentials, or `cnry init` output.\n3. Show the normalized domain, proposed project name, exact `cnry project create ...` command, and wait for explicit approval before creating it.\n4. Propose a bounded Site Health scan, including `--max-pages` and whether dead-link checking is enabled. Show the exact `cnry technical-aeo run ... --wait --format json` command and wait for separate approval before scanning.\n5. After the crawl, summarize the findings and propose AI Visibility setup. Ask before adding queries, connecting providers, starting any provider-backed or quota-consuming run, editing files, or publishing.";function cI(e,n){return e==="legacy"?"legacy":e==="platform"?"platform":n.state==="success"?n.projectCount===0?"platform":"legacy":n.state==="error"?"retry":"loading"}function uI(e,n){try{const s=new Intl.DisplayNames(["en"],{type:"region"}),r=new Intl.DisplayNames(["en"],{type:"language"}),u=e.length===2?s.of(e.toUpperCase()):void 0,f=n?r.of(n.toLowerCase()):void 0;return`${u??(e||"Country")} · ${f??(n||"Language")}`}catch{return`${e||"Country"} · ${n||"Language"}`}}function dI(e){const n=e.replace(/^\[|\]$/g,"");return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(n)||n.includes(":")}function mI(e){const n=e.trim();if(!n)return null;const s=/^[a-z][a-z\d+.-]*:\/\//i.test(n)?n:`https://${n}`;let r;try{r=new URL(s)}catch{return null}if(r.protocol!=="http:"&&r.protocol!=="https:")return null;const u=r.hostname.toLowerCase().replace(/^www\./,"");if(!u||u==="localhost"||dI(u)||!u.includes("."))return null;const f=u.replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"");return f?{canonicalDomain:u,projectName:f,displayName:u}:null}async function pI(e,n=oI){let s;const r=new Promise(f=>{s=setTimeout(()=>f({state:"timed-out"}),n)}),u=await Promise.race([e.then(f=>({state:"queued",run:f})),r]);return s&&clearTimeout(s),u}function hI(e,n){e.catch(()=>{Qt({title:"Site Health scan did not start",detail:"The project is safe. Choose Run scan in Site Health to retry.",tone:"negative",dedupeKey:`site-health-dispatch:${n}`})})}function Zb(e,n){return e instanceof na&&e.statusCode===409?"A project with this name already exists. Change the project name, or open the existing project.":e instanceof Error&&e.message?e.message:n}function fI(){return c.jsxs("div",{className:"page-container max-w-3xl","aria-busy":"true","aria-live":"polite",children:[c.jsx("div",{className:"page-header",children:c.jsxs("div",{className:"page-header-left",children:[c.jsx("h1",{className:"page-title",children:"Preparing setup"}),c.jsx("p",{className:"page-subtitle",children:"Checking the projects already on this install."})]})}),c.jsxs("div",{className:"flex items-center gap-3 rounded-lg border border-default bg-surface p-4 text-sm text-secondary",role:"status",children:[c.jsx(fo,{className:"size-4 motion-safe:animate-spin","aria-hidden":"true"}),"Loading projects…"]})]})}function gI({onRetry:e}){return c.jsxs("div",{className:"page-container max-w-3xl",children:[c.jsx("div",{className:"page-header",children:c.jsxs("div",{className:"page-header-left",children:[c.jsx("h1",{className:"page-title",children:"Can’t load projects"}),c.jsx("p",{className:"page-subtitle",children:"Canonry could not confirm whether this install already has a project."})]})}),c.jsxs("div",{className:"rounded-lg border border-negative bg-negative-soft p-4",role:"alert",tabIndex:-1,children:[c.jsx("p",{className:"text-sm font-medium text-heading",children:"Setup is paused to protect existing projects."}),c.jsx("p",{className:"mt-1 text-sm text-secondary",children:"Check the connection or sign in again, then retry."}),c.jsx(xe,{type:"button",className:"mt-4",variant:"secondary",onClick:e,children:"Retry project check"})]})]})}function yI({projectName:e,initialRunId:n}){return c.jsx(ih,{title:"Site Health setup",children:c.jsx(bI,{projectName:e,initialRunId:n})})}function bI({projectName:e,initialRunId:n}){const s=cs(),r=Kt({...ps({client:se}),enabled:!!e,retry:!1,refetchOnMount:"always"});if(!e)return c.jsxs("div",{className:"page-container max-w-3xl",children:[c.jsx("div",{className:"page-header",children:c.jsxs("div",{className:"page-header-left",children:[c.jsx("h1",{className:"page-title",children:"Project not found"}),c.jsx("p",{className:"page-subtitle",children:"This setup link does not identify a project."})]})}),c.jsx(xe,{type:"button",variant:"secondary",onClick:()=>{s({to:"/projects"})},children:"View projects"})]});if(r.isPending)return c.jsxs("div",{className:"page-container max-w-3xl","aria-busy":"true","aria-live":"polite",children:[c.jsx(Ao,{current:"site"}),c.jsxs("div",{className:"mt-8 flex items-center gap-3 text-sm text-secondary",role:"status",children:[c.jsx(fo,{className:"size-4 motion-safe:animate-spin","aria-hidden":"true"}),"Loading Site Health setup…"]})]});if(r.isError)return c.jsxs("div",{className:"page-container max-w-3xl",children:[c.jsx("div",{className:"page-header",children:c.jsxs("div",{className:"page-header-left",children:[c.jsx("h1",{className:"page-title",children:"Can’t resume setup"}),c.jsx("p",{className:"page-subtitle",children:"Canonry could not load the project for this Site Health scan."})]})}),c.jsxs("div",{className:"rounded-lg border border-negative bg-negative-soft p-4",role:"alert",children:[c.jsx("p",{className:"text-sm text-secondary",children:"Check the connection or sign in again, then retry."}),c.jsx(xe,{type:"button",className:"mt-4",variant:"secondary",onClick:()=>{r.refetch()},children:"Retry project check"})]})]});const u=r.data.find(x=>x.name===e);if(!u)return c.jsxs("div",{className:"page-container max-w-3xl",children:[c.jsx("div",{className:"page-header",children:c.jsxs("div",{className:"page-header-left",children:[c.jsx("h1",{className:"page-title",children:"Project not found"}),c.jsxs("p",{className:"page-subtitle",children:["Canonry could not find ",e,". It will not open a different project."]})]})}),c.jsx(xe,{type:"button",variant:"secondary",onClick:()=>{s({to:"/projects"})},children:"View projects"})]});const f=()=>{s({to:"/setup",search:{onboarding:"site-health",setupProject:u.name},replace:!0})},g=()=>{s({to:"/setup",search:{experience:"legacy",onboarding:"site-health",setupProject:u.name},replace:!0})},b=()=>{s({to:"/projects/$projectName",params:{projectName:u.name},replace:!0})};return c.jsxs("div",{className:"page-container max-w-7xl py-8 md:py-10",children:[c.jsx("h1",{className:"sr-only",children:"Set up Canonry"}),c.jsx(z.Suspense,{fallback:c.jsxs("div",{className:"space-y-5",children:[c.jsx(Ao,{current:"site"}),c.jsxs("div",{className:"flex min-h-72 items-center justify-center gap-3 text-sm text-secondary",role:"status",children:[c.jsx(fo,{className:"size-4 motion-safe:animate-spin","aria-hidden":"true"}),"Loading Site Health…"]})]}),children:c.jsx(sI,{projectName:u.name,projectId:u.id,initialRunId:n,onReleaseInitialRun:f,showOnboardingActions:!0,onContinueOnboarding:g,onSkipOnboarding:b})})]})}function vI(){const e=Yb({from:"/setup"}),n=e.onboarding==="site-health"&&!e.setupProject,s=e.onboarding==="site-health"&&e.experience!=="legacy",r=z5(),u=e.experience==="legacy"?"legacy":r,[f,g]=z.useState(!1),b=Kt({...ps({client:se}),enabled:u==="auto",retry:!1,refetchOnMount:"always"}),x=u==="auto"&&b.isSuccess&&b.isFetchedAfterMount&&b.data.length===0;z.useEffect(()=>{x&&g(!0)},[x]);const k=u!=="auto"?{state:"idle"}:b.isSuccess&&b.isFetchedAfterMount?{state:"success",projectCount:b.data.length}:b.isError?{state:"error"}:{state:"loading"},S=u==="legacy"?"legacy":f||x?"platform":cI(u,k);return n||s?c.jsx(yI,{projectName:e.setupProject,initialRunId:e.siteHealthRunId}):S==="legacy"?c.jsx(aI,{visibilityProjectName:e.setupProject,siteHealthOnboarding:e.onboarding==="site-health"}):S==="loading"?c.jsx(fI,{}):S==="retry"?c.jsx(gI,{onRetry:()=>{b.refetch()}}):c.jsx(xI,{onActivationStarted:()=>g(!0)})}function xI({onActivationStarted:e}){return c.jsx(ih,{title:"Site Health setup",children:c.jsx(kI,{onActivationStarted:e})})}function kI({onActivationStarted:e}){const n=cs(),s=Mn(),r=GP(),[u,f]=z.useState(""),[g,b]=z.useState(""),[x,k]=z.useState(""),[S,A]=z.useState("US"),[j,D]=z.useState("en"),[R,q]=z.useState(!1),[L,V]=z.useState("idle"),[te,X]=z.useState(null),[ae,oe]=z.useState(null),[fe,M]=z.useState(!1),[J,_e]=z.useState(null),[me,we]=z.useState(!1),Re=z.useRef(null),je=mI(u),Qe=g||je?.projectName||"",ge=x||je?.displayName||"",I=L==="creating"||L==="dispatching",ne=ae??J,he=uI(S,j);z.useEffect(()=>{ne&&Re.current?.focus()},[ne]);const Ee=(re,W)=>n({to:"/setup",search:{...W?{siteHealthRunId:W}:{},onboarding:"site-health",setupProject:re.name},replace:!0}),le=async re=>{V("dispatching"),_e(null);try{const W=r.mutateAsync({projectName:re.name,projectId:re.id,projectLabel:re.displayName||re.name,suppressErrorToast:!0,body:{checkDeadLinks:!0}}),Z=await pI(W);if(Z.state==="queued"){await Ee(re,Z.run.runId);return}hI(W,re.id),await Ee(re)}catch(W){V("recovery"),_e(Zb(W,"The project was created, but the Site Health scan could not be started."))}},et=async re=>{if(re.preventDefault(),!(!je||!R||I)){V("creating"),oe(null),M(!1),_e(null);try{const W=await _v({name:Qe,displayName:ge,canonicalDomain:je.canonicalDomain,country:S,language:j});e(),X(W),await s.invalidateQueries({queryKey:wi({client:se})}),await le(W)}catch(W){V("idle");const Z=W instanceof na&&W.statusCode===409;M(Z),oe(Zb(W,"Could not create the project. Try again.")),Z&&(e(),s.invalidateQueries({queryKey:wi({client:se})}))}}},G=()=>{te&&!I&&le(te)},ce=()=>{I||n({to:"/projects"})},ie=async()=>{try{await navigator.clipboard.writeText(lI),we(!0)}catch{Qt({tone:"negative",title:"Could not copy setup request",detail:"Open the agent quickstart to continue with the CLI instead."})}};return te&&L==="recovery"?c.jsxs("div",{className:"page-container max-w-3xl",children:[c.jsx(Ao,{current:"site"}),c.jsx("div",{className:"page-header mt-8",children:c.jsxs("div",{className:"page-header-left",children:[c.jsx("h1",{className:"page-title",children:"Project created"}),c.jsxs("p",{className:"page-subtitle",children:[te.displayName||te.name," is ready. The Site Health scan needs another try."]})]})}),c.jsxs("div",{ref:Re,className:"rounded-lg border border-negative bg-negative-soft p-4",role:"alert",tabIndex:-1,children:[c.jsx("p",{className:"text-sm font-medium text-heading",children:J}),c.jsx("p",{className:"mt-1 text-sm text-secondary",children:"You can retry the scan or continue setup and retry from Site Health."}),c.jsxs("div",{className:"mt-4 flex flex-wrap gap-3",children:[c.jsx(xe,{type:"button",onClick:G,children:"Retry Site Health scan"}),c.jsx(xe,{type:"button",variant:"secondary",onClick:()=>{Ee(te)},children:"Continue setup"})]})]})]}):c.jsxs("div",{className:"page-container max-w-xl py-8 md:py-12",children:[c.jsx(Ao,{current:"site"}),c.jsxs("header",{className:"mb-8 mt-8",children:[c.jsx("h1",{id:"site-map-setup-title",className:"text-2xl font-semibold tracking-[-0.025em] text-heading",children:"Map your site"}),c.jsx("p",{className:"mt-2 max-w-lg text-sm leading-6 text-secondary",children:"Enter your public website to see its pages, structure, and internal links."})]}),c.jsxs("form",{"aria-labelledby":"site-map-setup-title",className:"space-y-6",onSubmit:Ut(et),noValidate:!0,children:[c.jsxs("div",{className:"grid gap-2",children:[c.jsx("label",{className:"text-sm font-medium text-heading",htmlFor:"launchpad-domain",children:"Website URL"}),c.jsx("input",{id:"launchpad-domain",className:"h-11 w-full rounded-md border border-strong bg-bg-elevated/50 px-3 text-base text-heading outline-none transition placeholder:text-muted focus:border-mono-500 focus:ring-1 focus:ring-mono-500",type:"text",inputMode:"url",autoComplete:"url",autoCapitalize:"none",spellCheck:!1,required:!0,"aria-invalid":!!(u&&!je),"aria-describedby":u&&!je?"launchpad-domain-hint launchpad-domain-error":"launchpad-domain-hint",placeholder:"https://example.com",value:u,onChange:re=>{f(re.target.value),oe(null),M(!1)}}),c.jsxs("p",{id:"launchpad-domain-hint",className:"text-sm text-secondary",children:["Only public pages are scanned."," ",c.jsx(Je,{to:"/setup",search:{experience:"legacy"},className:"font-medium text-link underline-offset-4 hover:underline",children:"Set up without a site scan"})]}),u&&!je?c.jsx("p",{id:"launchpad-domain-error",className:"text-sm text-negative",role:"alert",children:"Enter a public domain, such as example.com."}):null]}),c.jsxs("details",{className:"group border-y border-default",children:[c.jsxs("summary",{className:"flex min-h-11 cursor-pointer list-none items-center justify-between gap-4 py-3 text-sm [&::-webkit-details-marker]:hidden",children:[c.jsx("span",{className:"font-medium text-heading",children:"Advanced settings"}),c.jsxs("span",{className:"flex items-center gap-2 text-secondary",children:[he,c.jsx(Lp,{className:"size-4 transition-transform group-open:rotate-180 motion-reduce:transition-none","aria-hidden":"true"})]})]}),c.jsxs("div",{className:"space-y-5 border-t border-default py-4",children:[je?c.jsxs("div",{children:[c.jsx("p",{className:"mb-3 text-sm font-medium text-heading",children:"Project"}),c.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[c.jsxs("div",{className:"grid gap-2",children:[c.jsx("label",{className:"text-sm text-secondary",htmlFor:"launchpad-project-name",children:"Project name"}),c.jsx("input",{id:"launchpad-project-name",className:"setup-input h-10",type:"text",value:Qe,onChange:re=>b(re.target.value)})]}),c.jsxs("div",{className:"grid gap-2",children:[c.jsx("label",{className:"text-sm text-secondary",htmlFor:"launchpad-display-name",children:"Display name"}),c.jsx("input",{id:"launchpad-display-name",className:"setup-input h-10",type:"text",value:ge,onChange:re=>k(re.target.value)})]})]})]}):null,c.jsxs("div",{children:[c.jsx("p",{className:"mb-3 text-sm font-medium text-heading",children:"Locale"}),c.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[c.jsxs("div",{className:"grid gap-2",children:[c.jsx("label",{className:"text-sm text-secondary",htmlFor:"launchpad-country",children:"Country"}),c.jsx("input",{id:"launchpad-country",className:"setup-input h-10",type:"text",maxLength:2,value:S,onChange:re=>A(re.target.value.toUpperCase())})]}),c.jsxs("div",{className:"grid gap-2",children:[c.jsx("label",{className:"text-sm text-secondary",htmlFor:"launchpad-language",children:"Language"}),c.jsx("input",{id:"launchpad-language",className:"setup-input h-10",type:"text",maxLength:5,value:j,onChange:re=>D(re.target.value.toLowerCase())})]})]})]})]})]}),c.jsxs("label",{className:"flex min-h-11 cursor-pointer items-start gap-3 py-2",children:[c.jsx("input",{className:"mt-0.5 size-4 shrink-0 rounded border-strong bg-bg",type:"checkbox",checked:R,onChange:re=>q(re.target.checked),"aria-label":"Allow Canonry to scan this public site.","aria-describedby":"local-crawl-note"}),c.jsxs("span",{className:"grid gap-0.5",children:[c.jsx("span",{className:"text-sm leading-5 text-heading",children:"Allow Canonry to scan this public site."}),c.jsx("span",{id:"local-crawl-note",className:"text-sm leading-5 text-secondary",children:"The crawl runs on this Canonry instance, follows internal links, and stores its results locally."})]})]}),ne?c.jsxs("div",{ref:Re,className:"rounded-md border border-negative bg-negative-soft p-3",role:"alert",tabIndex:-1,children:[c.jsx("p",{className:"text-sm font-medium text-heading",children:ne}),fe?c.jsx(xe,{type:"button",variant:"secondary",size:"sm",className:"mt-3",onClick:ce,children:"View projects"}):null]}):null,c.jsxs("div",{className:"grid gap-2",children:[c.jsx(xe,{className:"h-11 w-full",type:"submit",disabled:!je||!R||I,children:L==="creating"||L==="dispatching"?c.jsxs(c.Fragment,{children:[c.jsx(fo,{className:"size-4 motion-safe:animate-spin","aria-hidden":"true"})," Mapping site…"]}):"Map site"}),c.jsx(xe,{className:"w-full",type:"button",variant:"ghost",disabled:I,onClick:ce,children:"Cancel"}),L==="dispatching"?c.jsx("span",{className:"text-center text-sm text-secondary",role:"status",children:"Opening Site Health when the scan is ready."}):null]})]}),c.jsxs("section",{className:"mt-8 border-t border-default pt-6","aria-labelledby":"agent-setup-title",children:[c.jsx("p",{id:"agent-setup-title",className:"text-sm font-medium text-heading",children:"Use your agent instead"}),c.jsx("p",{className:"mt-1 text-sm leading-5 text-secondary",children:"Copy a complete CLI setup request into any coding agent."}),c.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-1",children:[c.jsxs(xe,{type:"button",variant:"ghost",size:"sm",className:"-ml-3",onClick:Ut(ie),children:[me?c.jsx(Vp,{className:"size-3.5","aria-hidden":"true"}):c.jsx(ov,{className:"size-3.5","aria-hidden":"true"}),c.jsx("span",{"aria-live":"polite",children:me?"Copied setup request":"Copy setup request"})]}),c.jsx(xe,{asChild:!0,variant:"ghost",size:"sm",children:c.jsxs("a",{href:rI,target:"_blank",rel:"noopener noreferrer",children:["Agent quickstart",c.jsx(DS,{className:"size-3.5","aria-hidden":"true"}),c.jsx("span",{className:"sr-only",children:" (opens in a new tab)"})]})})]})]})]})}function wI(){return c.jsx("div",{className:"page-container",children:c.jsx("section",{className:"page-section",children:c.jsxs(Sa,{className:"surface-card empty-card",children:[c.jsx("h1",{children:"Route not found"}),c.jsx("p",{children:"The current path does not map to a dashboard view."}),c.jsx(xe,{asChild:!0,children:c.jsx(Je,{to:"/",children:"Return to overview"})})]})})})}const Ya=Si(()=>Pn(()=>import("./ProjectPage-CTic0OFR.js"),__vite__mapDeps([5,1,6,0,2,3,4,7,8,9,10,11,12]),import.meta.url),"ProjectPage"),SI=Si(()=>Pn(()=>import("./RunsPage-Bt6T2Kz2.js"),__vite__mapDeps([13,1,6,10,4,2,11,12]),import.meta.url),"RunsPage"),jI=Si(()=>Pn(()=>import("./HistoryPage-9acsanzg.js"),__vite__mapDeps([14,1,8,10,4,2,11,12]),import.meta.url),"HistoryPage"),AI=Si(()=>Pn(()=>import("./SettingsPage-ChyewFuC.js"),__vite__mapDeps([15,1,10,4,2,11,12]),import.meta.url),"SettingsPage"),NI=Si(()=>Pn(()=>import("./BacklinksPage-DPsSKu1M.js"),__vite__mapDeps([16,1,2,10,4,11,12]),import.meta.url),"BacklinksPage"),CI=Si(()=>Pn(()=>import("./TrafficPage-DMpuFJua.js"),__vite__mapDeps([17,1,7,2,10,4,11,12]),import.meta.url),"TrafficPage"),_I=Si(()=>Pn(()=>import("./TrafficSourceDetailPage-D4G26uyv.js"),__vite__mapDeps([18,1,7,3,4,2,10,11,12]),import.meta.url),"TrafficSourceDetailPage"),zI=Si(()=>Pn(()=>import("./MeasurementPropertyPage-gIOHHJ4x.js"),__vite__mapDeps([19,1,3,4,9,2,10,11,12]),import.meta.url),"MeasurementPropertyPage");function EI(){return c.jsx(DP,{children:c.jsx(EP,{})})}const ia=oS()({component:EI,validateSearch:e=>({manageQueries:e.manageQueries===!0||e.manageQueries==="true"?!0:void 0,runId:typeof e.runId=="string"?e.runId:void 0,siteHealthRunId:typeof e.siteHealthRunId=="string"?e.siteHealthRunId:void 0,evidenceId:typeof e.evidenceId=="string"?e.evidenceId:void 0,runStatus:typeof e.runStatus=="string"?e.runStatus:void 0,runKind:typeof e.runKind=="string"?e.runKind:void 0,runProject:typeof e.runProject=="string"?e.runProject:void 0,runWindow:typeof e.runWindow=="string"?e.runWindow:void 0,runQuery:typeof e.runQuery=="string"?e.runQuery:void 0,onboarding:e.onboarding==="site-health"?"site-health":void 0,experience:e.experience==="legacy"?"legacy":void 0,setupProject:typeof e.setupProject=="string"?e.setupProject:void 0,scope:typeof e.scope=="string"?e.scope:void 0,class:typeof e.class=="string"?e.class:void 0})}),DI=kt({getParentRoute:()=>ia,path:"/",component:BP,beforeLoad:async({context:e})=>{let n=e.queryClient.getQueryData(wi({client:se}));if(n===void 0)try{n=await e.queryClient.ensureQueryData(ps({client:se}))}catch{return}if(n.length===0)throw Jb({to:"/setup"})}}),TI=kt({getParentRoute:()=>ia,path:"/projects",component:PP}),RI=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,Aa=kt({getParentRoute:()=>ia,path:"/projects/$projectName",component:()=>c.jsx(cp,{}),beforeLoad:async({context:e,params:n,location:s})=>{const r=n.projectName;if(!RI.test(r))return;let u=e.queryClient.getQueryData(wi({client:se}));if(!u)try{u=await e.queryClient.ensureQueryData(ps({client:se}))}catch{return}const f=u.find(g=>g.id===r);if(f)throw Jb({to:s.pathname.replace(`/projects/${r}`,`/projects/${encodeURIComponent(f.name)}`),replace:!0})}}),OI=kt({getParentRoute:()=>Aa,path:"/",component:()=>c.jsx(Ya,{tab:"overview"})}),qI=kt({getParentRoute:()=>Aa,path:"/portfolio",component:()=>c.jsx(Ya,{tab:"portfolio"})}),BI=kt({getParentRoute:()=>Aa,path:"/search-console",component:()=>c.jsx(Ya,{tab:"search-console"})}),MI=kt({getParentRoute:()=>Aa,path:"/local",component:()=>c.jsx(Ya,{tab:"local"})}),PI=kt({getParentRoute:()=>Aa,path:"/discovery",component:()=>c.jsx(Ya,{tab:"discovery"})}),II=kt({getParentRoute:()=>Aa,path:"/properties/$targetKey",component:()=>c.jsx(zI,{})}),UI=kt({getParentRoute:()=>Aa,path:"/report",component:()=>c.jsx(Ya,{tab:"report"})}),LI=kt({getParentRoute:()=>Aa,path:"/activity",component:()=>c.jsx(Ya,{tab:"activity"})}),VI=kt({getParentRoute:()=>Aa,path:"/backlinks",component:()=>c.jsx(Ya,{tab:"backlinks"})}),$I=kt({getParentRoute:()=>Aa,path:"/technical-aeo",component:()=>c.jsx(Ya,{tab:"technical-aeo"})}),HI=kt({getParentRoute:()=>Aa,path:"/history",component:()=>c.jsx(Ya,{tab:"history"})}),GI=kt({getParentRoute:()=>Aa,path:"/settings",component:()=>c.jsx(Ya,{tab:"settings"})}),KI=kt({getParentRoute:()=>ia,path:"/runs",component:SI}),QI=kt({getParentRoute:()=>ia,path:"/history",component:jI}),ZI=kt({getParentRoute:()=>ia,path:"/settings",component:AI,beforeLoad:({context:e})=>{}}),FI=kt({getParentRoute:()=>ia,path:"/setup",component:vI}),YI=kt({getParentRoute:()=>ia,path:"/backlinks",component:NI}),XI=kt({getParentRoute:()=>ia,path:"/traffic",component:CI}),JI=kt({getParentRoute:()=>ia,path:"/traffic/$projectName/$sourceId",component:_I}),WI=kt({getParentRoute:()=>ia,path:"*",component:wI}),eU=ia.addChildren([DI,TI,Aa.addChildren([OI,qI,BI,MI,PI,II,UI,LI,VI,$I,HI,GI]),KI,QI,ZI,FI,YI,XI,JI,WI]);function tU(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath:"/"}const Fb=tU(),aU=Fb==="/"?"":Fb.replace(/\/$/,"");function nU(e,n){return rS({routeTree:eU,basepath:aU||"/",context:{queryClient:e},...n?.initialEntries})}const iU=6e4;function sU(){const[e,n]=z.useState(Lm()?"ready":"checking"),[s,r]=z.useState(null),[u,f]=z.useState(!1),[g,b]=z.useState(""),[x,k]=z.useState(""),[S,A]=z.useState(""),[j,D]=z.useState(null),[R,q]=z.useState(!1),[L,V]=z.useState(!1),te=z.useRef(null),X=z.useRef(null),ae=z.useRef(null),oe=()=>{const me=s?`${s.name}:${s.role}`:"no-accounts";if(!te.current||ae.current!==me){X.current?.clear();const we=j6();X.current=we,te.current=nU(we),ae.current=me}return{queryClient:X.current,router:te.current}},fe=me=>me.authRequired?(f(!0),r(me.user),n(me.user?"ready":"account-login"),!0):!1;z.useEffect(()=>{if(Lm())return;let me=!1;return Promise.allSettled([Wg(),Jg()]).then(([we,Re])=>{if(me||we.status==="fulfilled"&&fe(we.value))return;if(Re.status==="rejected"){const Qe=Re.reason;D(Qe instanceof Error?Qe.message:"Failed to reach the Canonry API"),n("login");return}const je=Re.value;je.authenticated?n("ready"):n(je.setupRequired?"setup":"login")}),()=>{me=!0}},[]),z.useEffect(()=>{if(e!=="ready"||Lm())return;const me=setInterval(()=>{if(u){Wg().then(we=>{we.authRequired&&!we.user&&(V(!0),r(null),n("account-login"))}).catch(()=>{});return}Jg().then(we=>{we.authenticated||(V(!0),n(we.setupRequired?"setup":"login"))}).catch(()=>{})},iU);return Xg(()=>{V(!0),r(null),n(u?"account-login":"login")}),()=>{clearInterval(me),Xg(null)}},[e,u]);const M=async me=>{if(me.preventDefault(),!x.trim()||x.trim().length<8){D("Password must be at least 8 characters");return}if(x!==S){D("Passwords do not match");return}q(!0),D(null);try{if(!(await J5(x.trim())).authenticated){D("Setup failed");return}k(""),A(""),V(!1),n("ready")}catch(we){D(we instanceof na||we instanceof Error?we.message:"Setup failed")}finally{q(!1)}},J=async me=>{if(me.preventDefault(),!!x.trim()){q(!0),D(null);try{if(!(await W5(x.trim())).authenticated){D("Incorrect password");return}k(""),V(!1),n("ready")}catch(we){D(we instanceof na||we instanceof Error?we.message:"Authentication failed")}finally{q(!1)}}},_e=async me=>{if(me.preventDefault(),!(!g.trim()||!x)){q(!0),D(null);try{const we=await e6(g.trim(),x);if(!we.user){D("Incorrect name or password.");return}k(""),V(!1),r(we.user),n("ready")}catch(we){D(we instanceof na?we.message:"Incorrect name or password.")}finally{q(!1)}}};if(e==="ready"){const{queryClient:me,router:we}=oe();return c.jsx(h6,{account:s,children:c.jsx(lS,{client:me,children:c.jsx(cS,{router:we})})})}return c.jsx("div",{className:"min-h-screen bg-bg px-4 py-8",children:c.jsxs("div",{className:"mx-auto flex min-h-[calc(100vh-4rem)] max-w-md flex-col items-center justify-center gap-5",children:[c.jsxs("div",{"data-testid":"auth-brand",className:"flex items-center gap-2.5",children:[c.jsx("img",{className:"size-7",src:"./favicon.svg",alt:"","aria-hidden":"true"}),c.jsx("span",{className:"text-lg font-semibold tracking-tight text-heading",children:"Canonry"})]}),c.jsx(Sa,{className:"surface-card w-full",children:e==="checking"?c.jsx(uo,{className:"py-8",children:c.jsx("p",{className:"supporting-copy text-center",children:"Connecting to Canonry…"})}):e==="account-login"?c.jsxs(c.Fragment,{children:[c.jsxs(Ur,{children:[c.jsx("p",{className:"eyebrow eyebrow-soft",children:"Dashboard access"}),c.jsx(Lr,{children:"Sign in to Canonry"})]}),c.jsxs(uo,{children:[L?c.jsx("p",{className:"mb-4 rounded-md border border-caution bg-caution-soft px-3 py-2 text-sm text-caution",children:"You were signed out — please sign in again."}):null,c.jsxs("form",{className:"space-y-4",onSubmit:Ut(_e),children:[c.jsxs("label",{className:"block space-y-1.5",htmlFor:"account-name",children:[c.jsx("span",{className:"text-xs font-medium text-secondary",children:"Name"}),c.jsx("input",{autoFocus:!0,id:"account-name",className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"text",autoComplete:"username",value:g,onChange:me=>b(me.target.value)})]}),c.jsxs("label",{className:"block space-y-1.5",htmlFor:"account-password",children:[c.jsx("span",{className:"text-xs font-medium text-secondary",children:"Password"}),c.jsx("input",{id:"account-password",className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",autoComplete:"current-password",value:x,onChange:me=>k(me.target.value)})]}),j?c.jsx("p",{className:"text-sm text-negative-400",children:j}):null,c.jsx(xe,{type:"submit",disabled:R||!g.trim()||!x,children:R?"Signing in…":"Sign in"})]})]})]}):e==="setup"?c.jsxs(c.Fragment,{children:[c.jsxs(Ur,{children:[c.jsx("p",{className:"eyebrow eyebrow-soft",children:"First-time setup"}),c.jsx(Lr,{children:"Create a dashboard password"}),c.jsx(Xc,{children:"Choose a password to protect the Canonry dashboard."})]}),c.jsx(uo,{children:c.jsxs("form",{className:"space-y-4",onSubmit:Ut(M),children:[c.jsxs("label",{className:"block space-y-1.5",children:[c.jsx("span",{className:"text-xs font-medium text-secondary",children:"Password"}),c.jsx("input",{autoFocus:!0,className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",value:x,onChange:me=>k(me.target.value),placeholder:"At least 8 characters"})]}),c.jsxs("label",{className:"block space-y-1.5",children:[c.jsx("span",{className:"text-xs font-medium text-secondary",children:"Confirm password"}),c.jsx("input",{className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",value:S,onChange:me=>A(me.target.value),placeholder:"Re-enter password"})]}),j?c.jsx("p",{className:"text-sm text-negative-400",children:j}):null,c.jsx(xe,{type:"submit",disabled:R||!x.trim()||!S.trim(),children:R?"Setting up…":"Create password & open dashboard"})]})})]}):c.jsxs(c.Fragment,{children:[c.jsxs(Ur,{children:[c.jsx("p",{className:"eyebrow eyebrow-soft",children:"Dashboard access"}),c.jsx(Lr,{children:"Sign in to Canonry"}),c.jsx(Xc,{children:"Enter your dashboard password to continue."})]}),c.jsxs(uo,{children:[L?c.jsx("p",{className:"mb-4 rounded-md border border-caution bg-caution-soft px-3 py-2 text-sm text-caution",children:"Your session expired — please sign in again."}):null,c.jsxs("form",{className:"space-y-4",onSubmit:Ut(J),children:[c.jsxs("label",{className:"block space-y-1.5",children:[c.jsx("span",{className:"text-xs font-medium text-secondary",children:"Password"}),c.jsx("input",{autoFocus:!0,className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",value:x,onChange:me=>k(me.target.value),placeholder:"Dashboard password"})]}),j?c.jsx("p",{className:"text-sm text-negative-400",children:j}):null,c.jsx(xe,{type:"submit",disabled:R||!x.trim(),children:R?"Signing in…":"Open dashboard"})]})]})]})})]})})}const Kk=document.getElementById("root");if(!Kk)throw new Error("Expected #root element for web app bootstrap.");PS.createRoot(Kk).render(c.jsx(z.StrictMode,{children:c.jsx(sU,{})}));export{JV as $,$U as A,xe as B,Qc as C,BV as D,IV as E,PV as F,LL as G,WU as H,Or as I,JU as J,uL as K,Qt as L,VV as M,$V as N,iL as O,oM as P,HV as Q,sL as R,AO as S,ma as T,tL as U,nL as V,UV as W,LV as X,MV as Y,eL as Z,GV as _,R$ as a,xU as a$,ZV as a0,YV as a1,FV as a2,XV as a3,d6 as a4,Z0 as a5,Oe as a6,QV as a7,hk as a8,Bn as a9,lV as aA,cV as aB,g$ as aC,y$ as aD,b$ as aE,oL as aF,wi as aG,rL as aH,K0 as aI,u$ as aJ,YO as aK,OV as aL,ue as aM,TU as aN,DU as aO,EU as aP,zU as aQ,NU as aR,AU as aS,_U as aT,CU as aU,jU as aV,SU as aW,gU as aX,yU as aY,wU as aZ,kU as a_,KV as aa,L$ as ab,$9 as ac,H9 as ad,HL as ae,$L as af,EL as ag,BL as ah,ML as ai,na as aj,PL as ak,OU as al,NO as am,uB as an,Bc as ao,IL as ap,hp as aq,d$ as ar,m7 as as,aL as at,VL as au,MO as av,aq as aw,_V as ax,EV as ay,zV as az,e_ as b,a$ as b$,bU as b0,vU as b1,fU as b2,hU as b3,pU as b4,mU as b5,cj as b6,eV as b7,c$ as b8,WL as b9,Fr as bA,Sv as bB,bV as bC,vV as bD,I$ as bE,HP as bF,DV as bG,qV as bH,xV as bI,wV as bJ,jV as bK,kV as bL,aa as bM,K5 as bN,DO as bO,q$ as bP,BU as bQ,MU as bR,qU as bS,Z5 as bT,PU as bU,BO as bV,VU as bW,WV as bX,t$ as bY,o6 as bZ,fL as b_,bL as ba,U$ as bb,nV as bc,tV as bd,iV as be,sV as bf,JL as bg,aV as bh,LU as bi,UU as bj,IU as bk,vL as bl,GU as bm,gV as bn,yb as bo,fV as bp,KU as bq,QU as br,hV as bs,ZU as bt,FU as bu,XU as bv,YU as bw,sl as bx,ps as by,YM as bz,O$ as c,x$ as c$,n$ as c0,e$ as c1,dV as c2,dL as c3,mL as c4,pL as c5,gL as c6,hL as c7,go as c8,Q0 as c9,mM as cA,Rk as cB,Ok as cC,CL as cD,h$ as cE,rV as cF,L0 as cG,yV as cH,m$ as cI,f$ as cJ,NL as cK,oV as cL,jL as cM,AL as cN,SL as cO,p$ as cP,P_ as cQ,AV as cR,SV as cS,CV as cT,NV as cU,QL as cV,Pn as cW,Pa as cX,KL as cY,v$ as cZ,k$ as c_,B$ as ca,Su as cb,X0 as cc,TV as cd,RV as ce,t6 as cf,I5 as cg,RU as ch,HU as ci,lL as cj,cL as ck,ih as cl,ju as cm,J0 as cn,yL as co,jo as cp,vb as cq,_L as cr,DL as cs,RL as ct,OL as cu,zL as cv,TL as cw,qL as cx,rM as cy,Tk as cz,Sa as d,GP as d0,ZL as d1,E$ as d2,D$ as d3,T$ as d4,w$ as d5,S$ as d6,GL as d7,N$ as d8,z$ as d9,A$ as da,_$ as db,j$ as dc,Ao as dd,FL as de,C$ as df,CE as dg,XL as dh,YL as di,on as e,Ut as f,UL as g,Eb as h,q5 as i,i$ as j,se as k,s$ as l,o$ as m,l$ as n,r$ as o,xL as p,wL as q,kL as r,M$ as s,_O as t,W0 as u,P$ as v,Bp as w,mV as x,uV as y,pV as z};
83
+ competitor2.com`,value:Zt,onChange:F=>Xa(F.target.value)})]}),cl?c.jsx("p",{className:"text-negative-400 text-sm",children:cl}):null,c.jsxs("div",{className:"setup-nav",children:[c.jsx(xe,{type:"button",variant:"outline",onClick:ct,children:"Back"}),c.jsxs("div",{className:"flex gap-2",children:[c.jsx(xe,{type:"button",variant:"outline",onClick:mn,children:"Skip"}),c.jsx(xe,{type:"button",disabled:Nt.length===0||Ri,onClick:Ut(Gn),children:Ri?"Saving...":`Save ${Nt.length} competitor${Nt.length!==1?"s":""}`})]})]})]})]});case 4:{const F=Ja.data,qe=F?.status??(Bi===M?.id?M.status:void 0),pn=qe==="completed"||qe==="partial"||qe==="failed"||qe==="cancelled",Qn=F?.snapshots??[],Ss=Qn.filter(Wa=>Wa.citationState==="cited").length,js=Qn.filter(Wa=>Wa.answerMentioned===!0).length,Ca=new Set(Qn.map(Wa=>Wa.query).filter(Wa=>!!Wa)).size,Wt=qe?Kb(qe,Qn.length):!1,Uo=J&&!Ua,Eu=qi??(F?.error?NO(F.error):qe==="cancelled"?"The sweep was cancelled before it produced a baseline.":(qe==="completed"||qe==="partial")&&Qn.length===0?"The sweep finished without producing any snapshots. Confirm the query set and provider configuration, then retry.":M?.statusDetail||"The sweep did not produce a baseline. Review provider configuration, then retry.");let hn=null;return Uo||Wt?hn=c.jsx(ma,{tone:"positive",children:"Complete"}):qi&&!Ua?hn=c.jsx(ma,{tone:"negative",children:"Failed"}):pn?hn=c.jsx(ma,{tone:"negative",children:qe==="cancelled"?"Cancelled":"Failed"}):Ua&&(hn=c.jsx(ma,{tone:"caution",children:"Running"})),c.jsxs(Sa,{className:"surface-card step-card",children:[c.jsxs("div",{className:"section-head",children:[c.jsxs("div",{children:[c.jsx("p",{className:"eyebrow eyebrow-soft",children:"Step 5 of 5"}),c.jsx("h2",{children:"Launch first run"})]}),hn]}),Uo?c.jsxs("div",{className:"compact-stack",children:[c.jsxs("p",{className:"text-secondary",children:["Setup is complete. ",c.jsx("span",{className:"text-strong font-medium",children:Ce})," already has a successful answer-visibility baseline."]}),c.jsxs("div",{className:"setup-nav",children:[c.jsx("span",{}),c.jsx(xe,{type:"button",onClick:zt,children:g?"Finish and open project":"Open project dashboard →"})]})]}):Ua?pn?Wt?c.jsxs("div",{className:"compact-stack",children:[c.jsxs("p",{className:"text-neutral",children:["Sweep complete. Your first answer-visibility snapshot for"," ",c.jsx("span",{className:"text-heading font-medium",children:Ce}),":"]}),c.jsxs("div",{className:"grid grid-cols-3 gap-2 mt-1",children:[c.jsxs("div",{className:"rounded-md border border-default bg-surface p-3",children:[c.jsx("p",{className:"text-xs font-medium text-secondary",children:"Mentioned"}),c.jsxs("p",{className:"text-2xl font-bold tabular-nums text-primary mt-1",children:[js,c.jsxs("span",{className:"text-faint text-lg",children:[" / ",Ca]})]}),c.jsx("p",{className:"mt-0.5 text-sm text-secondary",children:"queries naming your brand"})]}),c.jsxs("div",{className:"rounded-md border border-default bg-surface p-3",children:[c.jsx("p",{className:"text-xs font-medium text-secondary",children:"Cited"}),c.jsxs("p",{className:"text-2xl font-bold tabular-nums text-primary mt-1",children:[Ss,c.jsxs("span",{className:"text-faint text-lg",children:[" / ",Ca]})]}),c.jsx("p",{className:"mt-0.5 text-sm text-secondary",children:"queries citing your site"})]}),c.jsxs("div",{className:"rounded-md border border-default bg-surface p-3",children:[c.jsx("p",{className:"text-xs font-medium text-secondary",children:"Results"}),c.jsx("p",{className:"text-2xl font-bold tabular-nums text-primary mt-1",children:Qn.length}),c.jsx("p",{className:"mt-0.5 text-sm text-secondary",children:"completed engine checks"})]})]}),c.jsx("p",{className:"mt-1 text-sm text-secondary",children:g?"Your project is ready. Review the evidence in the project.":"Open the project to review the evidence."}),c.jsxs("div",{className:"setup-nav",children:[c.jsx("span",{}),c.jsx(xe,{type:"button",onClick:zt,children:g?"Finish and open project":"Open project dashboard →"})]})]}):c.jsxs("div",{className:"compact-stack",children:[c.jsxs("div",{role:"alert",className:"rounded-md border border-negative bg-negative-soft p-3 text-sm text-negative",children:[c.jsx("p",{children:Eu}),c.jsx("p",{className:"mt-1 text-xs text-secondary",children:"Fix provider or query configuration if needed, then retry without leaving setup."})]}),c.jsxs("div",{className:"setup-nav",children:[c.jsx(xe,{type:"button",variant:"outline",asChild:!0,children:c.jsx(Je,{to:"/settings",children:"Configure providers"})}),c.jsx(xe,{type:"button",disabled:cn||!!La,onClick:Ut(dn),children:cn?"Retrying...":"Retry visibility sweep"})]})]}):c.jsxs("div",{className:"compact-stack",children:[c.jsx("p",{className:"text-neutral",children:"Sweep running. This usually takes 30 to 60 seconds."}),c.jsx("div",{className:"rounded-md border border-default bg-surface p-3 text-xs text-muted",children:c.jsxs("p",{children:["Status: ",c.jsx("span",{className:"text-neutral",children:qe??"queued"})]})}),Ja.isError&&c.jsxs("div",{role:"alert",className:"rounded-md border border-negative bg-negative-soft p-3 text-sm text-negative",children:[c.jsx("p",{children:Ja.error instanceof Error?Ja.error.message:"Could not refresh the sweep status."}),c.jsx(xe,{type:"button",variant:"outline",size:"sm",className:"mt-2",onClick:()=>{Ja.refetch()},children:"Retry status check"})]}),c.jsxs("div",{className:"setup-nav",children:[c.jsx("span",{}),c.jsx(xe,{type:"button",variant:"outline",onClick:zt,children:g?"Finish and open project":"Watch on project page"})]})]}):c.jsxs("div",{className:"compact-stack",children:[c.jsxs("p",{className:"supporting-copy",children:["Setup is done. You can run a first sweep now to get a baseline for"," ",c.jsx("span",{className:"text-heading font-medium",children:Ce}),", or finish and run it later from the project. A sweep calls the answer engines, so it costs provider usage."]}),(La||qi)&&c.jsxs("div",{role:"alert",className:"rounded-md border border-negative bg-negative-soft p-3 text-sm text-negative",children:[c.jsx("p",{children:qi??La}),c.jsx("p",{className:"mt-1 text-xs text-secondary",children:"Resolve the blocker above, then retry the sweep here."})]}),c.jsxs("div",{className:"setup-nav",children:[c.jsx(xe,{type:"button",variant:"outline",onClick:ct,children:"Back"}),c.jsx(xe,{type:"button",variant:"ghost",onClick:zt,children:"Finish without running"}),c.jsx(xe,{type:"button",disabled:cn||!!La,title:La,onClick:Ut(dn),children:cn?"Launching...":qi?"Retry visibility sweep":"Launch visibility sweep"})]})]})]})}default:return null}})();return c.jsxs("div",{className:"page-container",children:[g?c.jsx(Ao,{current:"visibility"}):null,c.jsxs("div",{className:"page-header",children:[c.jsxs("div",{className:"page-header-left",children:[c.jsx("h1",{ref:u?f:void 0,tabIndex:u?-1:void 0,className:"page-title",children:u?"Set up AI Visibility":"Setup"}),c.jsx("p",{className:"page-subtitle",children:u?"Choose what to track, then run your first visibility sweep.":"Create a project and run its first visibility check."})]}),g?c.jsx("div",{className:"page-header-right",children:c.jsx(xe,{type:"button",variant:"outline",onClick:zt,children:"Skip AI Visibility"})}):null]}),c.jsx(tI,{current:Re,labels:WP}),c.jsx("section",{className:"setup-wizard",children:Kn})]})}const sI=z.lazy(async()=>({default:(await Pn(()=>import("./SiteHealthSection-B1bjMCqY.js").then(n=>n.d),__vite__mapDeps([0,1,2,3,4]),import.meta.url)).SiteHealthSection})),oI=1800,rI="https://github.com/Canonry/canonry#or-use-any-shell-capable-coding-agent",lI="Help me set up Canonry for my public site.\n\nUse Canonry's official docs:\n- Agent quickstart: https://github.com/Canonry/canonry#or-use-any-shell-capable-coding-agent\n- CLI reference: https://github.com/Canonry/canonry/blob/main/skills/canonry/references/canonry-cli.md\n- Plugin setup: https://github.com/Canonry/canonry/blob/main/docs/plugins.md\n- MCP setup: https://github.com/Canonry/canonry/blob/main/docs/mcp.md\n\nUse an existing Canonry installation or connected plugin/MCP if one is already available. Do not create a duplicate. The `cnry` and `canonry` commands are interchangeable.\n\n1. Ask for my public domain, country, and language. Do not create or scan anything yet.\n2. Check the local setup with `command -v cnry`, `cnry --version`, `cnry doctor --format json`, and `cnry project list --format json`. If Canonry is missing, propose `npm install -g @canonry/canonry` and wait for approval. If initialization is required, tell me to run `cnry init` in my private terminal and wait. Never ask me to paste passwords, API keys, OAuth credentials, or `cnry init` output.\n3. Show the normalized domain, proposed project name, exact `cnry project create ...` command, and wait for explicit approval before creating it.\n4. Propose a bounded Site Health scan, including `--max-pages` and whether dead-link checking is enabled. Show the exact `cnry technical-aeo run ... --wait --format json` command and wait for separate approval before scanning.\n5. After the crawl, summarize the findings and propose AI Visibility setup. Ask before adding queries, connecting providers, starting any provider-backed or quota-consuming run, editing files, or publishing.";function cI(e,n){return e==="legacy"?"legacy":e==="platform"?"platform":n.state==="success"?n.projectCount===0?"platform":"legacy":n.state==="error"?"retry":"loading"}function uI(e,n){try{const s=new Intl.DisplayNames(["en"],{type:"region"}),r=new Intl.DisplayNames(["en"],{type:"language"}),u=e.length===2?s.of(e.toUpperCase()):void 0,f=n?r.of(n.toLowerCase()):void 0;return`${u??(e||"Country")} · ${f??(n||"Language")}`}catch{return`${e||"Country"} · ${n||"Language"}`}}function dI(e){const n=e.replace(/^\[|\]$/g,"");return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(n)||n.includes(":")}function mI(e){const n=e.trim();if(!n)return null;const s=/^[a-z][a-z\d+.-]*:\/\//i.test(n)?n:`https://${n}`;let r;try{r=new URL(s)}catch{return null}if(r.protocol!=="http:"&&r.protocol!=="https:")return null;const u=r.hostname.toLowerCase().replace(/^www\./,"");if(!u||u==="localhost"||dI(u)||!u.includes("."))return null;const f=u.replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"");return f?{canonicalDomain:u,projectName:f,displayName:u}:null}async function pI(e,n=oI){let s;const r=new Promise(f=>{s=setTimeout(()=>f({state:"timed-out"}),n)}),u=await Promise.race([e.then(f=>({state:"queued",run:f})),r]);return s&&clearTimeout(s),u}function hI(e,n){e.catch(()=>{Qt({title:"Site Health scan did not start",detail:"The project is safe. Choose Run scan in Site Health to retry.",tone:"negative",dedupeKey:`site-health-dispatch:${n}`})})}function Zb(e,n){return e instanceof na&&e.statusCode===409?"A project with this name already exists. Change the project name, or open the existing project.":e instanceof Error&&e.message?e.message:n}function fI(){return c.jsxs("div",{className:"page-container max-w-3xl","aria-busy":"true","aria-live":"polite",children:[c.jsx("div",{className:"page-header",children:c.jsxs("div",{className:"page-header-left",children:[c.jsx("h1",{className:"page-title",children:"Preparing setup"}),c.jsx("p",{className:"page-subtitle",children:"Checking the projects already on this install."})]})}),c.jsxs("div",{className:"flex items-center gap-3 rounded-lg border border-default bg-surface p-4 text-sm text-secondary",role:"status",children:[c.jsx(fo,{className:"size-4 motion-safe:animate-spin","aria-hidden":"true"}),"Loading projects…"]})]})}function gI({onRetry:e}){return c.jsxs("div",{className:"page-container max-w-3xl",children:[c.jsx("div",{className:"page-header",children:c.jsxs("div",{className:"page-header-left",children:[c.jsx("h1",{className:"page-title",children:"Can’t load projects"}),c.jsx("p",{className:"page-subtitle",children:"Canonry could not confirm whether this install already has a project."})]})}),c.jsxs("div",{className:"rounded-lg border border-negative bg-negative-soft p-4",role:"alert",tabIndex:-1,children:[c.jsx("p",{className:"text-sm font-medium text-heading",children:"Setup is paused to protect existing projects."}),c.jsx("p",{className:"mt-1 text-sm text-secondary",children:"Check the connection or sign in again, then retry."}),c.jsx(xe,{type:"button",className:"mt-4",variant:"secondary",onClick:e,children:"Retry project check"})]})]})}function yI({projectName:e,initialRunId:n}){return c.jsx(ih,{title:"Site Health setup",children:c.jsx(bI,{projectName:e,initialRunId:n})})}function bI({projectName:e,initialRunId:n}){const s=cs(),r=Kt({...ps({client:se}),enabled:!!e,retry:!1,refetchOnMount:"always"});if(!e)return c.jsxs("div",{className:"page-container max-w-3xl",children:[c.jsx("div",{className:"page-header",children:c.jsxs("div",{className:"page-header-left",children:[c.jsx("h1",{className:"page-title",children:"Project not found"}),c.jsx("p",{className:"page-subtitle",children:"This setup link does not identify a project."})]})}),c.jsx(xe,{type:"button",variant:"secondary",onClick:()=>{s({to:"/projects"})},children:"View projects"})]});if(r.isPending)return c.jsxs("div",{className:"page-container max-w-3xl","aria-busy":"true","aria-live":"polite",children:[c.jsx(Ao,{current:"site"}),c.jsxs("div",{className:"mt-8 flex items-center gap-3 text-sm text-secondary",role:"status",children:[c.jsx(fo,{className:"size-4 motion-safe:animate-spin","aria-hidden":"true"}),"Loading Site Health setup…"]})]});if(r.isError)return c.jsxs("div",{className:"page-container max-w-3xl",children:[c.jsx("div",{className:"page-header",children:c.jsxs("div",{className:"page-header-left",children:[c.jsx("h1",{className:"page-title",children:"Can’t resume setup"}),c.jsx("p",{className:"page-subtitle",children:"Canonry could not load the project for this Site Health scan."})]})}),c.jsxs("div",{className:"rounded-lg border border-negative bg-negative-soft p-4",role:"alert",children:[c.jsx("p",{className:"text-sm text-secondary",children:"Check the connection or sign in again, then retry."}),c.jsx(xe,{type:"button",className:"mt-4",variant:"secondary",onClick:()=>{r.refetch()},children:"Retry project check"})]})]});const u=r.data.find(x=>x.name===e);if(!u)return c.jsxs("div",{className:"page-container max-w-3xl",children:[c.jsx("div",{className:"page-header",children:c.jsxs("div",{className:"page-header-left",children:[c.jsx("h1",{className:"page-title",children:"Project not found"}),c.jsxs("p",{className:"page-subtitle",children:["Canonry could not find ",e,". It will not open a different project."]})]})}),c.jsx(xe,{type:"button",variant:"secondary",onClick:()=>{s({to:"/projects"})},children:"View projects"})]});const f=()=>{s({to:"/setup",search:{onboarding:"site-health",setupProject:u.name},replace:!0})},g=()=>{s({to:"/setup",search:{experience:"legacy",onboarding:"site-health",setupProject:u.name},replace:!0})},b=()=>{s({to:"/projects/$projectName",params:{projectName:u.name},replace:!0})};return c.jsxs("div",{className:"page-container max-w-7xl py-8 md:py-10",children:[c.jsx("h1",{className:"sr-only",children:"Set up Canonry"}),c.jsx(z.Suspense,{fallback:c.jsxs("div",{className:"space-y-5",children:[c.jsx(Ao,{current:"site"}),c.jsxs("div",{className:"flex min-h-72 items-center justify-center gap-3 text-sm text-secondary",role:"status",children:[c.jsx(fo,{className:"size-4 motion-safe:animate-spin","aria-hidden":"true"}),"Loading Site Health…"]})]}),children:c.jsx(sI,{projectName:u.name,projectId:u.id,initialRunId:n,onReleaseInitialRun:f,showOnboardingActions:!0,onContinueOnboarding:g,onSkipOnboarding:b})})]})}function vI(){const e=Yb({from:"/setup"}),n=e.onboarding==="site-health"&&!e.setupProject,s=e.onboarding==="site-health"&&e.experience!=="legacy",r=z5(),u=e.experience==="legacy"?"legacy":r,[f,g]=z.useState(!1),b=Kt({...ps({client:se}),enabled:u==="auto",retry:!1,refetchOnMount:"always"}),x=u==="auto"&&b.isSuccess&&b.isFetchedAfterMount&&b.data.length===0;z.useEffect(()=>{x&&g(!0)},[x]);const k=u!=="auto"?{state:"idle"}:b.isSuccess&&b.isFetchedAfterMount?{state:"success",projectCount:b.data.length}:b.isError?{state:"error"}:{state:"loading"},S=u==="legacy"?"legacy":f||x?"platform":cI(u,k);return n||s?c.jsx(yI,{projectName:e.setupProject,initialRunId:e.siteHealthRunId}):S==="legacy"?c.jsx(aI,{visibilityProjectName:e.setupProject,siteHealthOnboarding:e.onboarding==="site-health"}):S==="loading"?c.jsx(fI,{}):S==="retry"?c.jsx(gI,{onRetry:()=>{b.refetch()}}):c.jsx(xI,{onActivationStarted:()=>g(!0)})}function xI({onActivationStarted:e}){return c.jsx(ih,{title:"Site Health setup",children:c.jsx(kI,{onActivationStarted:e})})}function kI({onActivationStarted:e}){const n=cs(),s=Mn(),r=GP(),[u,f]=z.useState(""),[g,b]=z.useState(""),[x,k]=z.useState(""),[S,A]=z.useState("US"),[j,D]=z.useState("en"),[R,q]=z.useState(!1),[L,V]=z.useState("idle"),[te,X]=z.useState(null),[ae,oe]=z.useState(null),[fe,M]=z.useState(!1),[J,_e]=z.useState(null),[me,we]=z.useState(!1),Re=z.useRef(null),je=mI(u),Qe=g||je?.projectName||"",ge=x||je?.displayName||"",I=L==="creating"||L==="dispatching",ne=ae??J,he=uI(S,j);z.useEffect(()=>{ne&&Re.current?.focus()},[ne]);const Ee=(re,W)=>n({to:"/setup",search:{...W?{siteHealthRunId:W}:{},onboarding:"site-health",setupProject:re.name},replace:!0}),le=async re=>{V("dispatching"),_e(null);try{const W=r.mutateAsync({projectName:re.name,projectId:re.id,projectLabel:re.displayName||re.name,suppressErrorToast:!0,body:{checkDeadLinks:!0}}),Z=await pI(W);if(Z.state==="queued"){await Ee(re,Z.run.runId);return}hI(W,re.id),await Ee(re)}catch(W){V("recovery"),_e(Zb(W,"The project was created, but the Site Health scan could not be started."))}},et=async re=>{if(re.preventDefault(),!(!je||!R||I)){V("creating"),oe(null),M(!1),_e(null);try{const W=await _v({name:Qe,displayName:ge,canonicalDomain:je.canonicalDomain,country:S,language:j});e(),X(W),await s.invalidateQueries({queryKey:wi({client:se})}),await le(W)}catch(W){V("idle");const Z=W instanceof na&&W.statusCode===409;M(Z),oe(Zb(W,"Could not create the project. Try again.")),Z&&(e(),s.invalidateQueries({queryKey:wi({client:se})}))}}},G=()=>{te&&!I&&le(te)},ce=()=>{I||n({to:"/projects"})},ie=async()=>{try{await navigator.clipboard.writeText(lI),we(!0)}catch{Qt({tone:"negative",title:"Could not copy setup request",detail:"Open the agent quickstart to continue with the CLI instead."})}};return te&&L==="recovery"?c.jsxs("div",{className:"page-container max-w-3xl",children:[c.jsx(Ao,{current:"site"}),c.jsx("div",{className:"page-header mt-8",children:c.jsxs("div",{className:"page-header-left",children:[c.jsx("h1",{className:"page-title",children:"Project created"}),c.jsxs("p",{className:"page-subtitle",children:[te.displayName||te.name," is ready. The Site Health scan needs another try."]})]})}),c.jsxs("div",{ref:Re,className:"rounded-lg border border-negative bg-negative-soft p-4",role:"alert",tabIndex:-1,children:[c.jsx("p",{className:"text-sm font-medium text-heading",children:J}),c.jsx("p",{className:"mt-1 text-sm text-secondary",children:"You can retry the scan or continue setup and retry from Site Health."}),c.jsxs("div",{className:"mt-4 flex flex-wrap gap-3",children:[c.jsx(xe,{type:"button",onClick:G,children:"Retry Site Health scan"}),c.jsx(xe,{type:"button",variant:"secondary",onClick:()=>{Ee(te)},children:"Continue setup"})]})]})]}):c.jsxs("div",{className:"page-container max-w-xl py-8 md:py-12",children:[c.jsx(Ao,{current:"site"}),c.jsxs("header",{className:"mb-8 mt-8",children:[c.jsx("h1",{id:"site-map-setup-title",className:"text-2xl font-semibold tracking-[-0.025em] text-heading",children:"Map your site"}),c.jsx("p",{className:"mt-2 max-w-lg text-sm leading-6 text-secondary",children:"Enter your public website to see its pages, structure, and internal links."})]}),c.jsxs("form",{"aria-labelledby":"site-map-setup-title",className:"space-y-6",onSubmit:Ut(et),noValidate:!0,children:[c.jsxs("div",{className:"grid gap-2",children:[c.jsx("label",{className:"text-sm font-medium text-heading",htmlFor:"launchpad-domain",children:"Website URL"}),c.jsx("input",{id:"launchpad-domain",className:"h-11 w-full rounded-md border border-strong bg-bg-elevated/50 px-3 text-base text-heading outline-none transition placeholder:text-muted focus:border-mono-500 focus:ring-1 focus:ring-mono-500",type:"text",inputMode:"url",autoComplete:"url",autoCapitalize:"none",spellCheck:!1,required:!0,"aria-invalid":!!(u&&!je),"aria-describedby":u&&!je?"launchpad-domain-hint launchpad-domain-error":"launchpad-domain-hint",placeholder:"https://example.com",value:u,onChange:re=>{f(re.target.value),oe(null),M(!1)}}),c.jsxs("p",{id:"launchpad-domain-hint",className:"text-sm text-secondary",children:["Only public pages are scanned."," ",c.jsx(Je,{to:"/setup",search:{experience:"legacy"},className:"font-medium text-link underline-offset-4 hover:underline",children:"Set up without a site scan"})]}),u&&!je?c.jsx("p",{id:"launchpad-domain-error",className:"text-sm text-negative",role:"alert",children:"Enter a public domain, such as example.com."}):null]}),c.jsxs("details",{className:"group border-y border-default",children:[c.jsxs("summary",{className:"flex min-h-11 cursor-pointer list-none items-center justify-between gap-4 py-3 text-sm [&::-webkit-details-marker]:hidden",children:[c.jsx("span",{className:"font-medium text-heading",children:"Advanced settings"}),c.jsxs("span",{className:"flex items-center gap-2 text-secondary",children:[he,c.jsx(Lp,{className:"size-4 transition-transform group-open:rotate-180 motion-reduce:transition-none","aria-hidden":"true"})]})]}),c.jsxs("div",{className:"space-y-5 border-t border-default py-4",children:[je?c.jsxs("div",{children:[c.jsx("p",{className:"mb-3 text-sm font-medium text-heading",children:"Project"}),c.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[c.jsxs("div",{className:"grid gap-2",children:[c.jsx("label",{className:"text-sm text-secondary",htmlFor:"launchpad-project-name",children:"Project name"}),c.jsx("input",{id:"launchpad-project-name",className:"setup-input h-10",type:"text",value:Qe,onChange:re=>b(re.target.value)})]}),c.jsxs("div",{className:"grid gap-2",children:[c.jsx("label",{className:"text-sm text-secondary",htmlFor:"launchpad-display-name",children:"Display name"}),c.jsx("input",{id:"launchpad-display-name",className:"setup-input h-10",type:"text",value:ge,onChange:re=>k(re.target.value)})]})]})]}):null,c.jsxs("div",{children:[c.jsx("p",{className:"mb-3 text-sm font-medium text-heading",children:"Locale"}),c.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[c.jsxs("div",{className:"grid gap-2",children:[c.jsx("label",{className:"text-sm text-secondary",htmlFor:"launchpad-country",children:"Country"}),c.jsx("input",{id:"launchpad-country",className:"setup-input h-10",type:"text",maxLength:2,value:S,onChange:re=>A(re.target.value.toUpperCase())})]}),c.jsxs("div",{className:"grid gap-2",children:[c.jsx("label",{className:"text-sm text-secondary",htmlFor:"launchpad-language",children:"Language"}),c.jsx("input",{id:"launchpad-language",className:"setup-input h-10",type:"text",maxLength:5,value:j,onChange:re=>D(re.target.value.toLowerCase())})]})]})]})]})]}),c.jsxs("label",{className:"flex min-h-11 cursor-pointer items-start gap-3 py-2",children:[c.jsx("input",{className:"mt-0.5 size-4 shrink-0 rounded border-strong bg-bg",type:"checkbox",checked:R,onChange:re=>q(re.target.checked),"aria-label":"Allow Canonry to scan this public site.","aria-describedby":"local-crawl-note"}),c.jsxs("span",{className:"grid gap-0.5",children:[c.jsx("span",{className:"text-sm leading-5 text-heading",children:"Allow Canonry to scan this public site."}),c.jsx("span",{id:"local-crawl-note",className:"text-sm leading-5 text-secondary",children:"The crawl runs on this Canonry instance, follows internal links, and stores its results locally."})]})]}),ne?c.jsxs("div",{ref:Re,className:"rounded-md border border-negative bg-negative-soft p-3",role:"alert",tabIndex:-1,children:[c.jsx("p",{className:"text-sm font-medium text-heading",children:ne}),fe?c.jsx(xe,{type:"button",variant:"secondary",size:"sm",className:"mt-3",onClick:ce,children:"View projects"}):null]}):null,c.jsxs("div",{className:"grid gap-2",children:[c.jsx(xe,{className:"h-11 w-full",type:"submit",disabled:!je||!R||I,children:L==="creating"||L==="dispatching"?c.jsxs(c.Fragment,{children:[c.jsx(fo,{className:"size-4 motion-safe:animate-spin","aria-hidden":"true"})," Mapping site…"]}):"Map site"}),c.jsx(xe,{className:"w-full",type:"button",variant:"ghost",disabled:I,onClick:ce,children:"Cancel"}),L==="dispatching"?c.jsx("span",{className:"text-center text-sm text-secondary",role:"status",children:"Opening Site Health when the scan is ready."}):null]})]}),c.jsxs("section",{className:"mt-8 border-t border-default pt-6","aria-labelledby":"agent-setup-title",children:[c.jsx("p",{id:"agent-setup-title",className:"text-sm font-medium text-heading",children:"Use your agent instead"}),c.jsx("p",{className:"mt-1 text-sm leading-5 text-secondary",children:"Copy a complete CLI setup request into any coding agent."}),c.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-1",children:[c.jsxs(xe,{type:"button",variant:"ghost",size:"sm",className:"-ml-3",onClick:Ut(ie),children:[me?c.jsx(Vp,{className:"size-3.5","aria-hidden":"true"}):c.jsx(ov,{className:"size-3.5","aria-hidden":"true"}),c.jsx("span",{"aria-live":"polite",children:me?"Copied setup request":"Copy setup request"})]}),c.jsx(xe,{asChild:!0,variant:"ghost",size:"sm",children:c.jsxs("a",{href:rI,target:"_blank",rel:"noopener noreferrer",children:["Agent quickstart",c.jsx(DS,{className:"size-3.5","aria-hidden":"true"}),c.jsx("span",{className:"sr-only",children:" (opens in a new tab)"})]})})]})]})]})}function wI(){return c.jsx("div",{className:"page-container",children:c.jsx("section",{className:"page-section",children:c.jsxs(Sa,{className:"surface-card empty-card",children:[c.jsx("h1",{children:"Route not found"}),c.jsx("p",{children:"The current path does not map to a dashboard view."}),c.jsx(xe,{asChild:!0,children:c.jsx(Je,{to:"/",children:"Return to overview"})})]})})})}const Ya=Si(()=>Pn(()=>import("./ProjectPage-CT5ZD7_A.js"),__vite__mapDeps([5,1,6,0,2,3,4,7,8,9,10,11,12]),import.meta.url),"ProjectPage"),SI=Si(()=>Pn(()=>import("./RunsPage-OLbocIOY.js"),__vite__mapDeps([13,1,6,10,4,2,11,12]),import.meta.url),"RunsPage"),jI=Si(()=>Pn(()=>import("./HistoryPage-Bc5Nx6dX.js"),__vite__mapDeps([14,1,8,10,4,2,11,12]),import.meta.url),"HistoryPage"),AI=Si(()=>Pn(()=>import("./SettingsPage-DVdPBrap.js"),__vite__mapDeps([15,1,10,4,2,11,12]),import.meta.url),"SettingsPage"),NI=Si(()=>Pn(()=>import("./BacklinksPage-BHOtOIr5.js"),__vite__mapDeps([16,1,2,10,4,11,12]),import.meta.url),"BacklinksPage"),CI=Si(()=>Pn(()=>import("./TrafficPage-BUWXjHhw.js"),__vite__mapDeps([17,1,7,2,10,4,11,12]),import.meta.url),"TrafficPage"),_I=Si(()=>Pn(()=>import("./TrafficSourceDetailPage-DwoFzTu7.js"),__vite__mapDeps([18,1,7,3,4,2,10,11,12]),import.meta.url),"TrafficSourceDetailPage"),zI=Si(()=>Pn(()=>import("./MeasurementPropertyPage-D4FIFiWv.js"),__vite__mapDeps([19,1,3,4,9,2,10,11,12]),import.meta.url),"MeasurementPropertyPage");function EI(){return c.jsx(DP,{children:c.jsx(EP,{})})}const ia=oS()({component:EI,validateSearch:e=>({manageQueries:e.manageQueries===!0||e.manageQueries==="true"?!0:void 0,runId:typeof e.runId=="string"?e.runId:void 0,siteHealthRunId:typeof e.siteHealthRunId=="string"?e.siteHealthRunId:void 0,evidenceId:typeof e.evidenceId=="string"?e.evidenceId:void 0,runStatus:typeof e.runStatus=="string"?e.runStatus:void 0,runKind:typeof e.runKind=="string"?e.runKind:void 0,runProject:typeof e.runProject=="string"?e.runProject:void 0,runWindow:typeof e.runWindow=="string"?e.runWindow:void 0,runQuery:typeof e.runQuery=="string"?e.runQuery:void 0,onboarding:e.onboarding==="site-health"?"site-health":void 0,experience:e.experience==="legacy"?"legacy":void 0,setupProject:typeof e.setupProject=="string"?e.setupProject:void 0,scope:typeof e.scope=="string"?e.scope:void 0,class:typeof e.class=="string"?e.class:void 0})}),DI=kt({getParentRoute:()=>ia,path:"/",component:BP,beforeLoad:async({context:e})=>{let n=e.queryClient.getQueryData(wi({client:se}));if(n===void 0)try{n=await e.queryClient.ensureQueryData(ps({client:se}))}catch{return}if(n.length===0)throw Jb({to:"/setup"})}}),TI=kt({getParentRoute:()=>ia,path:"/projects",component:PP}),RI=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,Aa=kt({getParentRoute:()=>ia,path:"/projects/$projectName",component:()=>c.jsx(cp,{}),beforeLoad:async({context:e,params:n,location:s})=>{const r=n.projectName;if(!RI.test(r))return;let u=e.queryClient.getQueryData(wi({client:se}));if(!u)try{u=await e.queryClient.ensureQueryData(ps({client:se}))}catch{return}const f=u.find(g=>g.id===r);if(f)throw Jb({to:s.pathname.replace(`/projects/${r}`,`/projects/${encodeURIComponent(f.name)}`),replace:!0})}}),OI=kt({getParentRoute:()=>Aa,path:"/",component:()=>c.jsx(Ya,{tab:"overview"})}),qI=kt({getParentRoute:()=>Aa,path:"/portfolio",component:()=>c.jsx(Ya,{tab:"portfolio"})}),BI=kt({getParentRoute:()=>Aa,path:"/search-console",component:()=>c.jsx(Ya,{tab:"search-console"})}),MI=kt({getParentRoute:()=>Aa,path:"/local",component:()=>c.jsx(Ya,{tab:"local"})}),PI=kt({getParentRoute:()=>Aa,path:"/discovery",component:()=>c.jsx(Ya,{tab:"discovery"})}),II=kt({getParentRoute:()=>Aa,path:"/properties/$targetKey",component:()=>c.jsx(zI,{})}),UI=kt({getParentRoute:()=>Aa,path:"/report",component:()=>c.jsx(Ya,{tab:"report"})}),LI=kt({getParentRoute:()=>Aa,path:"/activity",component:()=>c.jsx(Ya,{tab:"activity"})}),VI=kt({getParentRoute:()=>Aa,path:"/backlinks",component:()=>c.jsx(Ya,{tab:"backlinks"})}),$I=kt({getParentRoute:()=>Aa,path:"/technical-aeo",component:()=>c.jsx(Ya,{tab:"technical-aeo"})}),HI=kt({getParentRoute:()=>Aa,path:"/history",component:()=>c.jsx(Ya,{tab:"history"})}),GI=kt({getParentRoute:()=>Aa,path:"/settings",component:()=>c.jsx(Ya,{tab:"settings"})}),KI=kt({getParentRoute:()=>ia,path:"/runs",component:SI}),QI=kt({getParentRoute:()=>ia,path:"/history",component:jI}),ZI=kt({getParentRoute:()=>ia,path:"/settings",component:AI,beforeLoad:({context:e})=>{}}),FI=kt({getParentRoute:()=>ia,path:"/setup",component:vI}),YI=kt({getParentRoute:()=>ia,path:"/backlinks",component:NI}),XI=kt({getParentRoute:()=>ia,path:"/traffic",component:CI}),JI=kt({getParentRoute:()=>ia,path:"/traffic/$projectName/$sourceId",component:_I}),WI=kt({getParentRoute:()=>ia,path:"*",component:wI}),eU=ia.addChildren([DI,TI,Aa.addChildren([OI,qI,BI,MI,PI,II,UI,LI,VI,$I,HI,GI]),KI,QI,ZI,FI,YI,XI,JI,WI]);function tU(){return typeof window<"u"&&window.__CANONRY_CONFIG__?.basePath?window.__CANONRY_CONFIG__.basePath:"/"}const Fb=tU(),aU=Fb==="/"?"":Fb.replace(/\/$/,"");function nU(e,n){return rS({routeTree:eU,basepath:aU||"/",context:{queryClient:e},...n?.initialEntries})}const iU=6e4;function sU(){const[e,n]=z.useState(Lm()?"ready":"checking"),[s,r]=z.useState(null),[u,f]=z.useState(!1),[g,b]=z.useState(""),[x,k]=z.useState(""),[S,A]=z.useState(""),[j,D]=z.useState(null),[R,q]=z.useState(!1),[L,V]=z.useState(!1),te=z.useRef(null),X=z.useRef(null),ae=z.useRef(null),oe=()=>{const me=s?`${s.name}:${s.role}`:"no-accounts";if(!te.current||ae.current!==me){X.current?.clear();const we=j6();X.current=we,te.current=nU(we),ae.current=me}return{queryClient:X.current,router:te.current}},fe=me=>me.authRequired?(f(!0),r(me.user),n(me.user?"ready":"account-login"),!0):!1;z.useEffect(()=>{if(Lm())return;let me=!1;return Promise.allSettled([Wg(),Jg()]).then(([we,Re])=>{if(me||we.status==="fulfilled"&&fe(we.value))return;if(Re.status==="rejected"){const Qe=Re.reason;D(Qe instanceof Error?Qe.message:"Failed to reach the Canonry API"),n("login");return}const je=Re.value;je.authenticated?n("ready"):n(je.setupRequired?"setup":"login")}),()=>{me=!0}},[]),z.useEffect(()=>{if(e!=="ready"||Lm())return;const me=setInterval(()=>{if(u){Wg().then(we=>{we.authRequired&&!we.user&&(V(!0),r(null),n("account-login"))}).catch(()=>{});return}Jg().then(we=>{we.authenticated||(V(!0),n(we.setupRequired?"setup":"login"))}).catch(()=>{})},iU);return Xg(()=>{V(!0),r(null),n(u?"account-login":"login")}),()=>{clearInterval(me),Xg(null)}},[e,u]);const M=async me=>{if(me.preventDefault(),!x.trim()||x.trim().length<8){D("Password must be at least 8 characters");return}if(x!==S){D("Passwords do not match");return}q(!0),D(null);try{if(!(await J5(x.trim())).authenticated){D("Setup failed");return}k(""),A(""),V(!1),n("ready")}catch(we){D(we instanceof na||we instanceof Error?we.message:"Setup failed")}finally{q(!1)}},J=async me=>{if(me.preventDefault(),!!x.trim()){q(!0),D(null);try{if(!(await W5(x.trim())).authenticated){D("Incorrect password");return}k(""),V(!1),n("ready")}catch(we){D(we instanceof na||we instanceof Error?we.message:"Authentication failed")}finally{q(!1)}}},_e=async me=>{if(me.preventDefault(),!(!g.trim()||!x)){q(!0),D(null);try{const we=await e6(g.trim(),x);if(!we.user){D("Incorrect name or password.");return}k(""),V(!1),r(we.user),n("ready")}catch(we){D(we instanceof na?we.message:"Incorrect name or password.")}finally{q(!1)}}};if(e==="ready"){const{queryClient:me,router:we}=oe();return c.jsx(h6,{account:s,children:c.jsx(lS,{client:me,children:c.jsx(cS,{router:we})})})}return c.jsx("div",{className:"min-h-screen bg-bg px-4 py-8",children:c.jsxs("div",{className:"mx-auto flex min-h-[calc(100vh-4rem)] max-w-md flex-col items-center justify-center gap-5",children:[c.jsxs("div",{"data-testid":"auth-brand",className:"flex items-center gap-2.5",children:[c.jsx("img",{className:"size-7",src:"./favicon.svg",alt:"","aria-hidden":"true"}),c.jsx("span",{className:"text-lg font-semibold tracking-tight text-heading",children:"Canonry"})]}),c.jsx(Sa,{className:"surface-card w-full",children:e==="checking"?c.jsx(uo,{className:"py-8",children:c.jsx("p",{className:"supporting-copy text-center",children:"Connecting to Canonry…"})}):e==="account-login"?c.jsxs(c.Fragment,{children:[c.jsxs(Ur,{children:[c.jsx("p",{className:"eyebrow eyebrow-soft",children:"Dashboard access"}),c.jsx(Lr,{children:"Sign in to Canonry"})]}),c.jsxs(uo,{children:[L?c.jsx("p",{className:"mb-4 rounded-md border border-caution bg-caution-soft px-3 py-2 text-sm text-caution",children:"You were signed out — please sign in again."}):null,c.jsxs("form",{className:"space-y-4",onSubmit:Ut(_e),children:[c.jsxs("label",{className:"block space-y-1.5",htmlFor:"account-name",children:[c.jsx("span",{className:"text-xs font-medium text-secondary",children:"Name"}),c.jsx("input",{autoFocus:!0,id:"account-name",className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"text",autoComplete:"username",value:g,onChange:me=>b(me.target.value)})]}),c.jsxs("label",{className:"block space-y-1.5",htmlFor:"account-password",children:[c.jsx("span",{className:"text-xs font-medium text-secondary",children:"Password"}),c.jsx("input",{id:"account-password",className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",autoComplete:"current-password",value:x,onChange:me=>k(me.target.value)})]}),j?c.jsx("p",{className:"text-sm text-negative-400",children:j}):null,c.jsx(xe,{type:"submit",disabled:R||!g.trim()||!x,children:R?"Signing in…":"Sign in"})]})]})]}):e==="setup"?c.jsxs(c.Fragment,{children:[c.jsxs(Ur,{children:[c.jsx("p",{className:"eyebrow eyebrow-soft",children:"First-time setup"}),c.jsx(Lr,{children:"Create a dashboard password"}),c.jsx(Xc,{children:"Choose a password to protect the Canonry dashboard."})]}),c.jsx(uo,{children:c.jsxs("form",{className:"space-y-4",onSubmit:Ut(M),children:[c.jsxs("label",{className:"block space-y-1.5",children:[c.jsx("span",{className:"text-xs font-medium text-secondary",children:"Password"}),c.jsx("input",{autoFocus:!0,className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",value:x,onChange:me=>k(me.target.value),placeholder:"At least 8 characters"})]}),c.jsxs("label",{className:"block space-y-1.5",children:[c.jsx("span",{className:"text-xs font-medium text-secondary",children:"Confirm password"}),c.jsx("input",{className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",value:S,onChange:me=>A(me.target.value),placeholder:"Re-enter password"})]}),j?c.jsx("p",{className:"text-sm text-negative-400",children:j}):null,c.jsx(xe,{type:"submit",disabled:R||!x.trim()||!S.trim(),children:R?"Setting up…":"Create password & open dashboard"})]})})]}):c.jsxs(c.Fragment,{children:[c.jsxs(Ur,{children:[c.jsx("p",{className:"eyebrow eyebrow-soft",children:"Dashboard access"}),c.jsx(Lr,{children:"Sign in to Canonry"}),c.jsx(Xc,{children:"Enter your dashboard password to continue."})]}),c.jsxs(uo,{children:[L?c.jsx("p",{className:"mb-4 rounded-md border border-caution bg-caution-soft px-3 py-2 text-sm text-caution",children:"Your session expired — please sign in again."}):null,c.jsxs("form",{className:"space-y-4",onSubmit:Ut(J),children:[c.jsxs("label",{className:"block space-y-1.5",children:[c.jsx("span",{className:"text-xs font-medium text-secondary",children:"Password"}),c.jsx("input",{autoFocus:!0,className:"w-full rounded-md border border-base bg-bg px-3 py-2 text-sm text-heading outline-none transition focus:border-mono-600",type:"password",value:x,onChange:me=>k(me.target.value),placeholder:"Dashboard password"})]}),j?c.jsx("p",{className:"text-sm text-negative-400",children:j}):null,c.jsx(xe,{type:"submit",disabled:R||!x.trim(),children:R?"Signing in…":"Open dashboard"})]})]})]})})]})})}const Kk=document.getElementById("root");if(!Kk)throw new Error("Expected #root element for web app bootstrap.");PS.createRoot(Kk).render(c.jsx(z.StrictMode,{children:c.jsx(sU,{})}));export{JV as $,$U as A,xe as B,Qc as C,BV as D,IV as E,PV as F,LL as G,WU as H,Or as I,JU as J,uL as K,Qt as L,VV as M,$V as N,iL as O,oM as P,HV as Q,sL as R,AO as S,ma as T,tL as U,nL as V,UV as W,LV as X,MV as Y,eL as Z,GV as _,R$ as a,xU as a$,ZV as a0,YV as a1,FV as a2,XV as a3,d6 as a4,Z0 as a5,Oe as a6,QV as a7,hk as a8,Bn as a9,lV as aA,cV as aB,g$ as aC,y$ as aD,b$ as aE,oL as aF,wi as aG,rL as aH,K0 as aI,u$ as aJ,YO as aK,OV as aL,ue as aM,TU as aN,DU as aO,EU as aP,zU as aQ,NU as aR,AU as aS,_U as aT,CU as aU,jU as aV,SU as aW,gU as aX,yU as aY,wU as aZ,kU as a_,KV as aa,L$ as ab,$9 as ac,H9 as ad,HL as ae,$L as af,EL as ag,BL as ah,ML as ai,na as aj,PL as ak,OU as al,NO as am,uB as an,Bc as ao,IL as ap,hp as aq,d$ as ar,m7 as as,aL as at,VL as au,MO as av,aq as aw,_V as ax,EV as ay,zV as az,e_ as b,a$ as b$,bU as b0,vU as b1,fU as b2,hU as b3,pU as b4,mU as b5,cj as b6,eV as b7,c$ as b8,WL as b9,Fr as bA,Sv as bB,bV as bC,vV as bD,I$ as bE,HP as bF,DV as bG,qV as bH,xV as bI,wV as bJ,jV as bK,kV as bL,aa as bM,K5 as bN,DO as bO,q$ as bP,BU as bQ,MU as bR,qU as bS,Z5 as bT,PU as bU,BO as bV,VU as bW,WV as bX,t$ as bY,o6 as bZ,fL as b_,bL as ba,U$ as bb,nV as bc,tV as bd,iV as be,sV as bf,JL as bg,aV as bh,LU as bi,UU as bj,IU as bk,vL as bl,GU as bm,gV as bn,yb as bo,fV as bp,KU as bq,QU as br,hV as bs,ZU as bt,FU as bu,XU as bv,YU as bw,sl as bx,ps as by,YM as bz,O$ as c,x$ as c$,n$ as c0,e$ as c1,dV as c2,dL as c3,mL as c4,pL as c5,gL as c6,hL as c7,go as c8,Q0 as c9,mM as cA,Rk as cB,Ok as cC,CL as cD,h$ as cE,rV as cF,L0 as cG,yV as cH,m$ as cI,f$ as cJ,NL as cK,oV as cL,jL as cM,AL as cN,SL as cO,p$ as cP,P_ as cQ,AV as cR,SV as cS,CV as cT,NV as cU,QL as cV,Pn as cW,Pa as cX,KL as cY,v$ as cZ,k$ as c_,B$ as ca,Su as cb,X0 as cc,TV as cd,RV as ce,t6 as cf,I5 as cg,RU as ch,HU as ci,lL as cj,cL as ck,ih as cl,ju as cm,J0 as cn,yL as co,jo as cp,vb as cq,_L as cr,DL as cs,RL as ct,OL as cu,zL as cv,TL as cw,qL as cx,rM as cy,Tk as cz,Sa as d,GP as d0,ZL as d1,E$ as d2,D$ as d3,T$ as d4,w$ as d5,S$ as d6,GL as d7,N$ as d8,z$ as d9,A$ as da,_$ as db,j$ as dc,Ao as dd,FL as de,C$ as df,CE as dg,XL as dh,YL as di,on as e,Ut as f,UL as g,Eb as h,q5 as i,i$ as j,se as k,s$ as l,o$ as m,l$ as n,r$ as o,xL as p,wL as q,kL as r,M$ as s,_O as t,W0 as u,P$ as v,Bp as w,mV as x,uV as y,pV as z};