agentic-mermaid 0.5.4 → 0.5.5

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 (118) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/Instructions_for_agents.md +1 -1
  3. package/README.md +1 -1
  4. package/dist/agent-core.d.ts +7 -7
  5. package/dist/agent-core.js +1 -1
  6. package/dist/agent.d.ts +7 -7
  7. package/dist/agent.js +1 -1
  8. package/dist/agentic-mermaid-mcp.js +1 -1
  9. package/dist/am.js +1 -1
  10. package/dist/browser-lazy/chunks/{agentic-producer-core-ECZ3CMZM.js → agentic-producer-core-CWRJNRIK.js} +1 -1
  11. package/dist/browser-lazy/chunks/{architecture-H5LTMKQW.js → architecture-VU5WEHCH.js} +3 -3
  12. package/dist/browser-lazy/chunks/{block-566X6FNV.js → block-Z2DOU2NP.js} +5 -5
  13. package/dist/browser-lazy/chunks/{builtin-backends-VAFEZXKY.js → builtin-backends-6UTVDXF4.js} +3 -3
  14. package/dist/browser-lazy/chunks/{c4-ZXFDLBFK.js → c4-6FTCDDGS.js} +4 -4
  15. package/dist/browser-lazy/chunks/{chunk-3JTYTXA6.js → chunk-37ORXEBA.js} +4 -4
  16. package/dist/browser-lazy/chunks/{chunk-IUI4DYC3.js → chunk-3VXXFUXR.js} +1 -1
  17. package/dist/browser-lazy/chunks/{chunk-XHU3A432.js → chunk-6RXXXV66.js} +1 -1
  18. package/dist/browser-lazy/chunks/{chunk-NKW2ZNCD.js → chunk-AVGL6Y22.js} +1 -1
  19. package/dist/browser-lazy/chunks/{chunk-7UFOFWBA.js → chunk-BCPZYXNZ.js} +10 -10
  20. package/dist/browser-lazy/chunks/{chunk-PSZEE64O.js → chunk-CURBYGWU.js} +8 -8
  21. package/dist/browser-lazy/chunks/{chunk-TT5GR5EJ.js → chunk-DS3L2TY6.js} +1 -1
  22. package/dist/browser-lazy/chunks/{chunk-LBXXKLIR.js → chunk-EBJK4IHL.js} +3 -3
  23. package/dist/browser-lazy/chunks/{chunk-5LKPDHPC.js → chunk-FCXWXIUB.js} +3 -3
  24. package/dist/browser-lazy/chunks/{chunk-Z7UHFVKN.js → chunk-FNGOGVYM.js} +6 -6
  25. package/dist/browser-lazy/chunks/{chunk-A7V5VDKN.js → chunk-K6V5KN7D.js} +1 -1
  26. package/dist/browser-lazy/chunks/{chunk-64JFHCJC.js → chunk-LRN76QCY.js} +1 -1
  27. package/dist/browser-lazy/chunks/{chunk-7TTFBJYA.js → chunk-NIAOQ3V2.js} +1 -1
  28. package/dist/browser-lazy/chunks/{chunk-37FZNMPR.js → chunk-OF4QKIRV.js} +1 -1
  29. package/dist/browser-lazy/chunks/{chunk-VRZKI33U.js → chunk-OLZVJBI5.js} +1 -1
  30. package/dist/browser-lazy/chunks/{chunk-J57YRC2M.js → chunk-PRBLS664.js} +1 -1
  31. package/dist/browser-lazy/chunks/{chunk-G4JBA7HU.js → chunk-PRXEMB2V.js} +3 -3
  32. package/dist/browser-lazy/chunks/{chunk-YVNJDVQO.js → chunk-Q6FTXOZS.js} +1 -1
  33. package/dist/browser-lazy/chunks/{chunk-4NILRBC7.js → chunk-QRPOIILY.js} +1 -1
  34. package/dist/browser-lazy/chunks/{chunk-OFOS57WQ.js → chunk-TG7JY42H.js} +1 -1
  35. package/dist/browser-lazy/chunks/{chunk-OBI5U5XU.js → chunk-TWYX5NPD.js} +1 -1
  36. package/dist/browser-lazy/chunks/{chunk-62MR3LWJ.js → chunk-TZMTDADJ.js} +1 -1
  37. package/dist/browser-lazy/chunks/{chunk-6GPDLZFQ.js → chunk-UG33LVTQ.js} +1 -1
  38. package/dist/browser-lazy/chunks/{chunk-QVSZOF5M.js → chunk-UJLLOK3R.js} +1 -1
  39. package/dist/browser-lazy/chunks/{chunk-PXTLV57R.js → chunk-UKIYI4IO.js} +1 -1
  40. package/dist/browser-lazy/chunks/{chunk-6UOOATQR.js → chunk-UOXZICCT.js} +1 -1
  41. package/dist/browser-lazy/chunks/{chunk-2JQXRKBC.js → chunk-VRXTQTLX.js} +1 -1
  42. package/dist/browser-lazy/chunks/{chunk-V6I2VGNQ.js → chunk-WSZXZ4HF.js} +5 -5
  43. package/dist/browser-lazy/chunks/{chunk-EIYLJ4FI.js → chunk-XBLK7VXJ.js} +12 -12
  44. package/dist/browser-lazy/chunks/{chunk-O34YYEQV.js → chunk-XJVCY4DA.js} +1 -1
  45. package/dist/browser-lazy/chunks/{class-XIFNVBFE.js → class-B7ED4IO7.js} +8 -8
  46. package/dist/browser-lazy/chunks/{er-VEUYJBGG.js → er-RJO33M6U.js} +5 -5
  47. package/dist/browser-lazy/chunks/{eventmodeling-G7DITZX7.js → eventmodeling-NZJFH7CB.js} +10 -10
  48. package/dist/browser-lazy/chunks/{flowchart-SSFIU4EU.js → flowchart-6WEGVIJH.js} +1 -1
  49. package/dist/browser-lazy/chunks/{gantt-HQNVDX2B.js → gantt-3EBT47PN.js} +5 -5
  50. package/dist/browser-lazy/chunks/{gitgraph-Z5MN6M6L.js → gitgraph-LXYWMWAG.js} +4 -4
  51. package/dist/browser-lazy/chunks/{ishikawa-UEERNFQV.js → ishikawa-TNFYQLXS.js} +2 -2
  52. package/dist/browser-lazy/chunks/{journey-3BEWWGB5.js → journey-ATEGEGT7.js} +7 -7
  53. package/dist/browser-lazy/chunks/{kanban-2WFNCWLB.js → kanban-4SGNSK5P.js} +11 -11
  54. package/dist/browser-lazy/chunks/{mindmap-R2C6SNYR.js → mindmap-5T7X3ENQ.js} +6 -6
  55. package/dist/browser-lazy/chunks/{packet-GMVCI5YZ.js → packet-4SQYN6UC.js} +3 -3
  56. package/dist/browser-lazy/chunks/{pie-WER45DKC.js → pie-HNPY7QHS.js} +7 -7
  57. package/dist/browser-lazy/chunks/{quadrant-NCUPSFKN.js → quadrant-HG5UVCOG.js} +3 -3
  58. package/dist/browser-lazy/chunks/{radar-WLYS4YC5.js → radar-EIHX3Y7A.js} +8 -8
  59. package/dist/browser-lazy/chunks/{render-core-42UVWIPF.js → render-core-37F7UHHU.js} +2 -2
  60. package/dist/browser-lazy/chunks/{requirement-AK3NWMJ6.js → requirement-PDLTNSWC.js} +7 -7
  61. package/dist/browser-lazy/chunks/{sankey-C2DY6WVU.js → sankey-K5QOVS24.js} +6 -6
  62. package/dist/browser-lazy/chunks/{sequence-D4WJB44W.js → sequence-CVTNAN4F.js} +1 -1
  63. package/dist/browser-lazy/chunks/{state-YUQVESE7.js → state-EMHRVZIX.js} +2 -2
  64. package/dist/browser-lazy/chunks/{timeline-BMBJJXWR.js → timeline-GCGZPQWS.js} +4 -4
  65. package/dist/browser-lazy/chunks/{treemap-B66XBZZ6.js → treemap-BXAVM6C5.js} +3 -3
  66. package/dist/browser-lazy/chunks/xychart-DSHCGE3Q.js +16 -0
  67. package/dist/browser-lazy/chunks/{zenuml-62RLYFWP.js → zenuml-QU75FNEC.js} +8 -8
  68. package/dist/browser-lazy/index.js +1 -1
  69. package/dist/browser.global.js +436 -436
  70. package/dist/{chunk-EHJI3QYE.js → chunk-2WNJCUZG.js} +27 -27
  71. package/dist/{chunk-XU5LPD2D.js → chunk-5BYN55G4.js} +1 -1
  72. package/dist/{chunk-KXMANAST.js → chunk-5JQIK3AC.js} +47 -47
  73. package/dist/chunk-BHJZLM35.js +2 -0
  74. package/dist/{chunk-4F2UGYTM.js → chunk-BNS3NO3O.js} +2 -2
  75. package/dist/{chunk-WYIB6BUR.js → chunk-BRFXOVQK.js} +2 -2
  76. package/dist/{chunk-HINRNKPO.js → chunk-CPO4MGL7.js} +2 -2
  77. package/dist/chunk-E4AJQAEN.js +2 -0
  78. package/dist/{chunk-7XYB2LNC.js → chunk-NZQWSAD5.js} +2 -2
  79. package/dist/{chunk-DOFB572I.js → chunk-QULSM7S3.js} +15 -15
  80. package/dist/{chunk-MKE7GNYU.js → chunk-ZKCI4BXW.js} +10 -6
  81. package/dist/{cli-ZYIDBYNS.js → cli-6N2OYXG7.js} +43 -43
  82. package/dist/{index-Bvhprdxz.d.ts → index-BvPnCHcw.d.ts} +14 -4
  83. package/dist/index.d.ts +4 -4
  84. package/dist/index.js +1 -1
  85. package/dist/{mcp-cli-YVDCORWA.js → mcp-cli-O4YD2NQB.js} +2 -2
  86. package/dist/{paint-certification-BoLyr006.d.ts → paint-certification-6UB6BRr6.d.ts} +2 -2
  87. package/dist/server-ZKAXVFA2.js +527 -0
  88. package/dist/{svg-styles-BnCoXyYe.d.ts → svg-styles-CyT8yUfG.d.ts} +1 -1
  89. package/dist/svg-styles.d.ts +1 -1
  90. package/dist/svg-styles.js +1 -1
  91. package/dist/svg.d.ts +4 -4
  92. package/dist/svg.js +1 -1
  93. package/dist/{types-CLVJCaH2.d.ts → types-DMKjdWeL.d.ts} +1 -1
  94. package/dist/zenuml/chunks/{appearance-5RM5MVM2.js → appearance-UJSXEKCJ.js} +1 -1
  95. package/dist/zenuml/chunks/{builtin-backends-UTNWL4N3.js → builtin-backends-2ETI2OTB.js} +3 -3
  96. package/dist/zenuml/chunks/{chunk-3A6S6GNB.js → chunk-AT55WY2L.js} +1 -1
  97. package/dist/zenuml/chunks/{chunk-CNLL4BGF.js → chunk-NGGC5EHN.js} +1 -1
  98. package/dist/zenuml/chunks/{chunk-IARQ24W3.js → chunk-O23VFGJM.js} +2 -2
  99. package/dist/zenuml/chunks/{chunk-ZNZRIISS.js → chunk-S2NMJ7E6.js} +2 -2
  100. package/dist/zenuml/chunks/{chunk-55WS466K.js → chunk-WLQR46A6.js} +9 -9
  101. package/dist/zenuml/chunks/{chunk-6J4BGPB2.js → chunk-Y7DUY2UU.js} +24 -24
  102. package/dist/zenuml/chunks/{render-core-ECIWU5ZS.js → render-core-MBXTLSVO.js} +2 -2
  103. package/dist/zenuml/chunks/{zenuml-N3LZMB2G.js → zenuml-FDVVN4IM.js} +7 -7
  104. package/dist/zenuml.d.ts +2 -2
  105. package/dist/zenuml.js +1 -1
  106. package/docs/api.md +84 -4
  107. package/docs/quality.md +6 -3
  108. package/docs/style-authoring.md +23 -0
  109. package/docs/testing-strategy.md +5 -3
  110. package/package.json +3 -2
  111. package/server.json +2 -2
  112. package/skills/agentic-mermaid-diagram-workflow/references/code-mode.md +10 -1
  113. package/skills/agentic-mermaid-diagram-workflow/references/hosted-mcp.md +5 -1
  114. package/dist/browser-lazy/chunks/xychart-HAVFROGT.js +0 -16
  115. package/dist/chunk-2DNGDTJD.js +0 -2
  116. package/dist/chunk-U4MT3RRE.js +0 -2
  117. package/dist/server-4JGAVXR3.js +0 -524
  118. package/docs/MCP-DIRECTORY-LISTINGS.md +0 -145
@@ -1,3 +1,3 @@
1
- import{a as e,b as t,c as i,d as n,e as r,f as o,g as a,h as l}from"./chunk-ZNZRIISS.js";import{b as s,e as d,f as u}from"./chunk-CNLL4BGF.js";import{g as f}from"./chunk-55WS466K.js";import"./chunk-3A6S6GNB.js";import{$ as c,A as h,B as p,C as y,D as m,E as g,F as x,G as b,H as v,I as k,J as w,K as M,L as O,M as N,N as S,O as $,P as j,Q as F,R as z,S as E,T as P,U as C,V as I,W as W,X as B,Y as L,Z as A,_ as T,b as D,c as R,ca as _,d as G,e as q,ea as U,f as V,ga as K,h as H,ha as J,ia as Z,ja as X,ka as Y,l as Q,ma as ee,n as et,pa as ei,q as en,r as er,ra as eo,sa as ea,ta as el,u as es,v as ed,w as eu,x as ef,y as ec}from"./chunk-6J4BGPB2.js";import{$ as eh,A as ep,C as ey,D as em,G as eg,H as ex,U as eb,V as ev,W as ek,X as ew,Y as eM,ba as eO,ca as eN,d as eS,da as e$,e as ej,ea as eF,f as ez,fa as eE,ga as eP,ha as eC,ia as eI,p as eW,s as eB,u as eL,ua as eA,va as eT,wa as eD,x as eR}from"./chunk-IARQ24W3.js";import"./chunk-GC7IPQ5P.js";function e_(e,t){return e.match(RegExp(`\\b${t}\\s*=\\s*(["'])(.*?)\\1`,"i"))?.[2]}function eG(e,t){return e_(e,"style")?.match(RegExp(`(?:^|;)\\s*${t}\\s*:\\s*([^;]+)`,"i"))?.[1]?.trim()??e_(e,t)}function eq(e,t,i){let n=Number.parseFloat(eG(e,t)??"");return Number.isFinite(n)?n:i}function eU(e,t){let i=eG(e,"font-weight")?.trim().toLowerCase();if(void 0===i)return t;if("normal"===i)return 400;if("bold"===i)return 700;if("bolder"===i)return t<350?400:t<550?700:900;if("lighter"===i)return t<550?100:t<750?400:700;let n=Number.parseFloat(i);return Number.isFinite(n)?n:t}function eV(e){return e.children.filter(e=>"element"===e.kind)}function eK(e,t){var i;let n="b"===t.name||"strong"===t.name,r=e.mono||(i=t.attrs,/\bclass\s*=\s*(["'])[^"']*\bmono\b/i.test(i)||/(?:^|[,\s])monospace(?:[,\s]|$)/i.test(eG(i,"font-family")??""));return{size:eq(t.attrs,"font-size",e.size),weight:n?Math.max(700,eU(t.attrs,e.weight)):eU(t.attrs,e.weight),letterSpacing:eq(t.attrs,"letter-spacing",e.letterSpacing),mono:r,fontFamily:eG(t.attrs,"font-family")??(r&&!e.mono?void 0:e.fontFamily),fontStyle:"i"===t.name||"em"===t.name||"italic"===eG(t.attrs,"font-style")?"italic":"normal"===eG(t.attrs,"font-style")?"normal":e.fontStyle}}function eH(e,t){return RegExp(`\\b${t}\\s*=`,"i").test(e)}function eJ(e){return"tspan"===e.name&&["x","y","dx","dy"].some(t=>eH(e.attrs,t))}var eZ=new WeakMap,eX=0,eY=new WeakMap,eQ=0,e0=new WeakMap,e1=new eB(128,8388608),e2=new eB(128,0x1000000,e=>{e1.delete(e)}),e5=new WeakSet;function e3(e,t){let i=eZ.get(e);return void 0===i&&(i=eX++,eZ.set(e,i)),`${i}:${t}`}function e6(e,t=!1){let i=structuredClone(e),n=new WeakSet,r=(e,i)=>{if(null===e||"object"!=typeof e||null===i||"object"!=typeof i)return i;if(t&&en(e))return e;if(n.has(e))return i;if(n.add(e),er(e,i),e instanceof Map&&i instanceof Map){let t=i.entries();for(let[n,o]of e){let[e,a]=t.next().value,l=r(n,e),s=r(o,a);i.delete(e),i.set(l,s)}}else if(e instanceof Set&&i instanceof Set){let t=i.values();for(let n of e){let e=t.next().value;i.delete(e),i.add(r(n,e))}}else for(let t of Object.keys(e))i[t]=r(e[t],i[t]);return i};return r(e,i)}function e4(e,t,i,n,r){let o={result:i,...n?{projection:n}:{}},a=2*t.length+ew([o,R(i)],0x1000000)+1024;if(a>0x1000000)return void ej("positioned-layout","store-skipped","weight-limit");let l=o;if(r){try{l=e6(o,!0)}catch(e){if(e instanceof Error&&"DataCloneError"===e.name)return void ej("positioned-layout","store-skipped","uncloneable");throw e}G(i,l.result)}r||eY.set(l,{locallyRepeated:!1}),e2.set(e3(e,t),l,a),e5.add(l.result)}function e8(e,t,i){let n=e0.get(t);if(!i)return void e0.delete(t);if(!n||n.request!==e||e2.get(n.key)!==n.snapshot)return;let r=++eQ,o=eY.get(n.snapshot);o.locallyRepeated=o.lastUse===r-1,o.lastUse=r;let a=e1.get(n.key);return a?.owner===n.snapshot?a.drawing:void 0}var e7=new Set(["rectangle","rounded","note","service","diamond","stadium","hexagon","cylinder"]),e9={journey:"x",sequence:"none",xychart:"center",quadrant:"center"};function te(e){return e.role?"box"===e.role:e7.has(e.shape)}function tt(e,t,i,n){return Number.isFinite(e)&&Number.isFinite(t)&&Number.isFinite(i)&&Number.isFinite(n)&&i>=0&&n>=0}function ti(e,t){let i=Math.min(e.x+e.w,t.x+t.w)-Math.max(e.x,t.x),n=Math.min(e.y+e.h,t.y+t.h)-Math.max(e.y,t.y);return i>.5&&n>.5}function tn(e,t,i="both"){let n="center"===i?t.x+t.w/2>=e.x-.5&&t.x+t.w/2<=e.x+e.w+.5:t.x>=e.x-.5&&t.x+t.w<=e.x+e.w+.5,r="x"===i||("center"===i?t.y+t.h/2>=e.y-.5&&t.y+t.h/2<=e.y+e.h+.5:t.y>=e.y-.5&&t.y+t.h<=e.y+e.h+.5);return n&&r}function tr(e,t,i){let n=t,r=new Set;for(;n?.parentId&&!r.has(n.id);){if(r.add(n.id),n.parentId===e.id)return!0;n=i.get(n.parentId)}return!1}var to=new WeakMap,ta=new WeakMap,tl=new WeakSet;function ts(e,i,n){if(D(e,{...i,role:n}),"agentic"!==i.requested||"elk"!==i.selected||tl.has(e))return;tl.add(e);let r={code:"INEFFECTIVE_CONFIG",field:"graphLayout.backend",message:`Agentic graph layout declined this input; using the requested ELK fallback: ${i.reason??"candidate rejected"}`};(t(e).onConfigDiagnostic??(e=>console.warn(e.message)))(r)}var td=new Set(["media","supports","container","layer","document"]),tu=new WeakSet,tf=new WeakMap,tc=new WeakMap;function th(e){return tc.get(e)??tf.get(e)}var tp=new WeakMap,ty=new WeakSet,tm=Object.freeze([1,0,0,1,0,0]);function tg(e){return tp.get(e)}function tx(e){return[e.x0,e.x1,e.y0,e.y1].every(Number.isFinite)&&e.x0<=e.x1&&e.y0<=e.y1}function tb(e){return"none"===e||"transparent"===e||!!e&&eW(e)?.[3]===0}function tv(e){if(void 0===e)return 1;let t=e.trim();if(!/^[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?$/.test(t))return NaN;let i=Number(t);return Number.isFinite(i)?Math.max(0,Math.min(1,i)):NaN}function tk(e,t){return 0===e||0===t?0:e*t}function tw(e,t){return e&&0!==Number(t.opacity??1)&&(!tb(t.fill)||void 0!==t.stroke&&!tb(t.stroke)&&0!==Number.parseFloat(t.strokeWidth??"1"))}function tM(e,t){return e?e.lineBlocks.some(e=>e.runs.some(e=>""!==e.text.trim())):""!==t.trim()}var tO=new WeakSet,tN=Object.freeze([]);function tS(e){return Object.freeze({id:e.id,role:e.role})}function t$(e,t,i=!1){let n=[],r={measured:0,unmeasured:0,nonPainting:0,preparedText:0,fallbackText:0};return{leaf:(e,o,a,l,s,d,u,f=void 0===a)=>{let c=u??e.owner??l.at(-1)??e.identity??{id:e.id,role:e.role},h=i?function(e){switch(e.kind){case"shape":return Object.freeze({kind:e.kind,geometry:e.geometry,paint:e.paint,...e.childPaints?{childPaints:e.childPaints}:{},...e.transform?{transform:e.transform}:{}});case"connector":return Object.freeze({kind:e.kind,lineStyle:e.lineStyle,endpoints:e.endpoints,route:e.route,stroke:e.stroke,markers:e.markers,...e.transform?{transform:e.transform}:{}});case"text":return Object.freeze({kind:e.kind,paint:e.paint});case"document":return Object.freeze({kind:e.kind})}}(e):void 0,p=0===d||("document"===e.kind?"content"!==e.element||void 0!==e.nonPaint||""===S(e).trim():"text"===e.kind?!tw(tM(e.block,e.text),e.paint):"connector"===e.kind?"invisible"===e.lineStyle:"shape"===e.kind&&!e.conditionalPaint&&[e.paint,...e.childPaints??[]].every(e=>void 0!==e.opacity&&0===Number(e.opacity)||tb(e.fill)&&(void 0===e.stroke||tb(e.stroke)))),[y,m,b,v,w,M]=a??es,O=a||e.transform?{kind:"matrix",a:y,b:m,c:b,d:v,e:w,f:M}:void 0,N=a||e.transform?Object.freeze(eu(a??es,ed(e.transform))):tm,$=p?void 0:k(e,O),j=!!$&&tx($),F=Object.freeze({key:o,id:e.id,kind:e.kind,role:e.role,owner:i&&l.includes(c)?c:tS(c),ancestors:l,order:n.length,coverage:p?"non-painting":j?"measured":"unmeasured",...s||"conditional"===e.visibility||!Number.isFinite(d)?{visibility:"conditional"}:{},...d<1?{groupOpacity:d}:{},...j?{bounds:Object.freeze($)}:{},...!p&&!j?{reason:"document"===e.kind?"opaque-visible-content":"missing-paint-geometry"}:{},..."text"===e.kind?{text:Object.freeze({measurement:e.measurement??"unavailable",...t?.(e.text,e.block,!0)})}:{}});h?tc.set(F,h):tf.set(F,e),tp.set(F,N),f&&!e.transform&&ty.add(F),n.push(F),p?r.nonPainting++:j?r.measured++:r.unmeasured++,"text"===e.kind&&!p&&("prepared"===e.measurement?r.preparedText++:r.fallbackText++),"connector"===e.kind&&e.labels.forEach((i,a)=>{if(i.visual?.kind!=="inline")return;let l={...i.paint,...i.halo?{stroke:i.halo.color??"var(--bg)",strokeWidth:String(i.halo.width)}:{}},s=0===d||!tw(tM(i.block,i.text),l),u=s?void 0:g(i),[f,c,p,y,m,b]=N,v=u&&x(u,{kind:"matrix",a:f,b:c,c:p,d:y,e:m,f:b}),k=!!v&&tx(v),w=Object.freeze({key:`${o}.label.${a}`,id:i.id??`${e.id}:label:${a}`,kind:"text",role:"label",owner:F.owner,ancestors:F.ancestors,order:n.length,coverage:s?"non-painting":k?"measured":"unmeasured",...F.visibility?{visibility:F.visibility}:{},...d<1?{groupOpacity:d}:{},...k?{bounds:Object.freeze(v)}:s?{}:{reason:"missing-inline-label-geometry"},text:Object.freeze({measurement:i.block?"prepared":"fallback",...t?.(i.text,i.block)})});h?tc.set(w,h):tf.set(w,e),tp.set(w,N),n.push(w),s?r.nonPainting++:(k?r.measured++:r.unmeasured++,i.block?r.preparedText++:r.fallbackText++)})},finish:()=>Object.freeze({version:1,family:e.family,bounds:Object.freeze({width:e.width,height:e.height}),primitives:Object.freeze(n),coverage:Object.freeze(r)})}}tO.add(tN);var tj=new WeakSet,tF=new WeakMap;function tz(e,t,i=Y()){let n=e.id.startsWith("family:"),r=ee(t,n?"external":"internal",i);if(!n&&!i)return r;let o=[];n&&r.family!==e.id&&o.push({code:"SCENE_DOCUMENT",path:"scene.family",message:`external family "${e.id}" emitted a document owned by "${r.family}"`});let a=new Set(e.semanticRoles),l=new Set(e.semanticChannels),s=new Map(e.scenePrimitiveEvidence.map(e=>[`${e.role}\0${e.primitive}`,e]));if(function e(t,i,n="scene.parts"){t.forEach((t,r)=>{let o=`${n}[${r}]`;i(t,o),"group"===t.kind&&e(t.children.map(e=>e.node),i,`${o}.children`)})}(r.parts,(e,t)=>{if(!a.has(e.role))return void o.push({code:"SCENE_PRIMITIVE_CLAIM",path:`${t}.role`,message:`emitted undeclared role "${e.role}"`});for(let i of Object.keys(e.channels??{}))l.has(i)||o.push({code:"SCENE_CHANNEL_CLAIM",path:`${t}.channels.${i}`,message:`emitted undeclared semantic channel "${i}"`});for(let i of _(e)){let n=s.get(`${e.role}\0${i}`);n&&"applicable"===n.applicability&&"unsupported"!==n.realization||o.push({code:"SCENE_PRIMITIVE_CLAIM",path:t,message:`emitted undeclared ${e.role}/${i} primitive`})}}),o.length>0)throw new J(Object.freeze(o));return r}function tE(e,t,i){let n=1;for(;n<e.length&&(i(),!(t(e[n-1],e[n])>0));n++);if(n>=e.length)return;i(e.length);let r=Math.floor(e.length/2),o=e.slice(0,r),a=e.slice(r);tE(o,t,i),tE(a,t,i);let l=0,s=0;for(let n=0;n<e.length;n++){i();let r=l<o.length&&s===a.length;l<o.length&&s<a.length&&(i(),r=!(t(o[l],a[s])>0)),e[n]=r?o[l++]:a[s++]}}function tP(e,t,i,n){let r=e=>{i?.(e.length+1);let o={x0:1/0,y0:1/0,x1:-1/0,y1:-1/0};for(let i of e){let e=t(i);o.x0=Math.min(o.x0,e.x0),o.y0=Math.min(o.y0,e.y0),o.x1=Math.max(o.x1,e.x1),o.y1=Math.max(o.y1,e.y1)}if(e.length<=8)return{bounds:o,leaves:e};let a=o.x1-o.x0>=o.y1-o.y0?"x0":"y0",l=(e,i)=>t(e)[a]-t(i)[a]||n?.(e,i)||0;i?tE(e,l,i):e.sort(l);let s=Math.floor(e.length/2);return{bounds:o,left:r(e.slice(0,s)),right:r(e.slice(s))}};return e.length?r(e):void 0}var tC=(e,t,i=0)=>e.x0<=t.x0+i&&e.y0<=t.y0+i&&e.x1>=t.x1-i&&e.y1>=t.y1-i,tI=(e,t)=>e.x0<t.x1&&t.x0<e.x1&&e.y0<t.y1&&t.y0<e.y1,tW=e=>({x0:e.x,y0:e.y,x1:e.x+e.w,y1:e.y+e.h}),tB=Symbol("paint query work limit");function tL(e,t,i){var n;let r,o,a,l=(e=1)=>{for(let i=0;i<e;i++)if(!t())throw tB},s=(n=e=>e.bounds,o=Math.ceil(Math.log2(Math.max(2,e.length))),a=e.length>8&&i>o*o,t=>{let i=[],o=e=>(l(),t.x0<e.x1&&t.x1>e.x0&&t.y0<e.y1&&t.y1>e.y0),s=e=>{if(o(e.bounds))if(e.leaves)for(let t of e.leaves)o(n(t))&&i.push(t);else s(e.left),s(e.right)};if(!r){if(!a){for(let t of e)o(n(t))&&i.push(t);return i}r=tP([...e],n,l)}return s(r),i});return e=>{try{let t=s(e);return tE(t,(e,t)=>e.index-t.index,l),t}catch(e){if(e!==tB)throw e;return[]}}}function tA(e,t){let i=tv(t.opacity),n=tv(t.fillOpacity),r=t.fill?eW(t.fill):null;return"line"!==e.kind&&"none"!==t.fill&&"transparent"!==t.fill&&!(i<1||n<1||r&&r[3]<1)}function tT(e,t){return 0!==tv(t.opacity)&&0!==tv(t.strokeOpacity)&&0!==v(t,["polygon","polyline","path","compound"].includes(e.kind))}function tD(e,t,i,n,r=0,o=()=>!0,a,l,s=!1){let d=th(e.primitive);if(d?.kind!=="shape")return!1;let u=ec(tg(e.primitive));if(!u)return!1;let{geometry:f,paint:c,childPaints:h}=d,p=(n??[{x:t.x0,y:t.y0},{x:t.x0,y:t.y1},{x:t.x1,y:t.y0},{x:t.x1,y:t.y1}]).map(e=>ef(e,u)),[y,m,g,x]=u,b=(Math.hypot(y+x,m-g)+Math.hypot(y-x,m+g))/2,k=r*b,w=l?ef(l,u):void 0,M=!1,O,N=[],S=(n,r=e.borderWidth??0,a=c,l=!0,y=e.bounds,m)=>{if(!o())return!1;if(!m&&N.includes(n)||m&&(m.x<y.x0||m.x>y.x1||m.y<y.y0||m.y>y.y1))return!0;let g=m?[ef(m,u)]:p,x=m?0:k,$=m?-1e-8:1e-8*!s,j=m?-1e-8:0;if("compound"===n.kind)return n===f&&n.children.length<=64&&n.children.every((t,i)=>"compound"!==t.kind&&S(t,e.partBorderWidths?.[i]??0,h?.[i]??c,e.partFilled?.[i]??!0,e.partBounds?.[i]??e.bounds,m));if(!l&&(0===tv(a.opacity)||0===tv(a.strokeOpacity)||0===v(a,"line"!==n.kind)))return!0;if("line"===n.kind){if(!m&&O&&w&&["butt","round","square"].includes(a.strokeLinecap??"butt")){if(!o())return!1;let e=n.x2-n.x1,t=n.y2-n.y1,i=w.x===n.x1&&w.y===n.y1?1:w.x===n.x2&&w.y===n.y2?-1:0;if(i&&Number.isFinite(e)&&Number.isFinite(t)&&(0!==e||0!==t)&&p.every(n=>{if(!o())return!1;let r=((n.x-w.x)*e+(n.y-w.y)*t)*i;return Number.isFinite(r)&&r<=0}))return S(n,r,a,l,y,O)}let e=v(a,!1);if(void 0===e)return!1;if(0===e)return!0;let t=e*("non-scaling-stroke"===a.vectorEffect?b:1);return g.every(e=>o()&&e.x+x<=Math.min(n.x1,n.x2)-t+j)||g.every(e=>o()&&e.x-x>=Math.max(n.x1,n.x2)+t-j)||g.every(e=>o()&&e.y+x<=Math.min(n.y1,n.y2)-t+j)||g.every(e=>o()&&e.y-x>=Math.max(n.y1,n.y2)+t-j)}let F=v(a,["polygon","polyline","path"].includes(n.kind));if(void 0===F)return!1;if(m)x=F*("non-scaling-stroke"===a.vectorEffect?b:1);else if(F>0&&0!==tv(a.opacity)&&0!==tv(a.strokeOpacity)&&!(i&&M&&r>0)&&tI(y,t))return!1;let z=!m&&i&&M?Math.max(0,r/2):0;if("rect"===n.kind){let t=Math.min(n.width/2,n.rx??n.ry??0),i=Math.min(n.height/2,n.ry??n.rx??0);if(t>0&&i>0){var E;let l=!d.transform&&(E=e.primitive,ty.has(E))&&u.every((e,t)=>e===[1,0,0,1,0,0][t])&&Number(ev(r))===r&&Number.parseFloat(ek("stroke-width",a.strokeWidth??"1"))===Number.parseFloat(a.strokeWidth??"1"),s=l&&Number(ev(n.x))===n.x&&Number(ev(n.width))===n.width,f=l&&Number(ev(n.y))===n.y&&Number(ev(n.height))===n.height;if(s&&(g.every(e=>o()&&e.x+x<=n.x+z+$)||g.every(e=>o()&&e.x-x>=n.x+n.width-z-$))||f&&(g.every(e=>o()&&e.y+x<=n.y+z+$)||g.every(e=>o()&&e.y-x>=n.y+n.height-z-$)))return!0;let c=n.x+n.width/2,h=n.y+n.height/2,p=n.width/2-t,y=n.height/2-i;for(let e of g){if(!o())break;let n=e.x-c,r=e.y-h,a=(n-Math.max(-p,Math.min(p,n)))/(t*t),l=(r-Math.max(-y,Math.min(y,r)))/(i*i),s=Math.hypot(a,l);if(!s)continue;let d=a/s,u=l/s,f=p*Math.abs(d)+y*Math.abs(u)+Math.hypot(t*d,i*u)-z+x;if(g.every(e=>o()&&(e.x-c)*d+(e.y-h)*u>=f-$))return!0}return!1}}if("ellipse"===n.kind||"circle"===n.kind){let e="circle"===n.kind?n.r:n.rx,t="circle"===n.kind?n.r:n.ry;if(!(e>0&&t>0))return!1;if("circle"===n.kind){let t=Math.max(Math.min(...g.map(e=>e.x)),Math.min(n.cx,Math.max(...g.map(e=>e.x)))),i=Math.max(Math.min(...g.map(e=>e.y)),Math.min(n.cy,Math.max(...g.map(e=>e.y))));if(Math.hypot(t-n.cx,i-n.cy)>=e-z+x-$)return!0}for(let i of g){if(!o())break;let r=(i.x-n.cx)/(e*e),a=(i.y-n.cy)/(t*t),l=Math.hypot(r,a);if(!l)continue;let s=r/l,d=a/l,u=Math.hypot(e*s,t*d)-z+x;if(g.every(e=>o()&&(e.x-n.cx)*s+(e.y-n.cy)*d>=u-$))return!0}return!1}let P="rect"===n.kind?[{x:n.x,y:n.y},{x:n.x+n.width,y:n.y},{x:n.x+n.width,y:n.y+n.height},{x:n.x,y:n.y+n.height}]:"polygon"===n.kind?n.points:void 0;if(!P||P.length<3||P.length>64)return!1;let C=(e,t,i)=>(t.x-e.x)*(i.y-e.y)-(t.y-e.y)*(i.x-e.x),I=Math.sign(P.reduce((e,t,i)=>{let n=P[(i+1)%P.length];return e+t.x*n.y-n.x*t.y},0));return!!I&&!!P.every((e,t)=>P.every(i=>o()&&I*C(e,P[(t+1)%P.length],i)>=-(m||s?0:1e-8)))&&P.some((e,t)=>{let i=P[(t+1)%P.length],n=Math.hypot(i.x-e.x,i.y-e.y);return n>0&&g.every(t=>o()&&I*C(e,i,t)<=(z-x+$)*n)})};if(i&&(O=a?.find(t=>o()&&S(f,e.borderWidth??0,c,!0,e.bounds,t))),(M=void 0!==O)&&w&&"compound"===f.kind&&u.every((e,t)=>e===[1,0,0,1,0,0][t])){let t=f.children[0];if(o()&&t?.kind==="rect"&&!t.rx&&!t.ry&&e.partFilled?.[0]&&0===v(h?.[0]??c,!1)){let i=w.x===t.x?1:2*(w.x===t.x+t.width),n=f.children[i],r=e.partOwnBorderWidths?.[i]??0;i&&n?.kind==="line"&&r>0&&n.x1===n.x2&&n.x1===w.x&&Math.min(n.y1,n.y2)===t.y&&Math.max(n.y1,n.y2)===t.y+t.height&&w.y>t.y&&w.y<t.y+t.height&&p.every(e=>o()&&(1===i?-1:1)*(e.x-n.x1)>=k-r/2)&&(N=[t,n])}}return S(f)}function tR(e,t){let i=e.marker.geometry;if("polygon"!==i.kind&&"polyline"!==i.kind)return;let n=i.points,r="polygon"===i.kind?n.length:n.length-2;for(let e=0;e<r;e++){for(let e=0;e<8;e++)if(!t())return;let r="polygon"===i.kind?e:e+1,o=n[(r+n.length-1)%n.length],a=n[r],l=n[(r+1)%n.length],s=a.x-o.x,d=a.y-o.y,u=l.x-a.x,f=l.y-a.y,c=Math.hypot(s,d),h=Math.hypot(u,f),p=s/c*(u/h)+d/c*(f/h);if(!(c>0)||!(h>0)||!Number.isFinite(p)||p<=-.875+128*Number.EPSILON)return}let o={},a;try{a=function(e,t,i,n,r,o){o?.();let a=e.geometry;if(!a)return[];let l="start"===n&&"auto-start-reverse"===e.orient?-1:1,s=Math.hypot(i.x,i.y);if(!s)return[];let d=l*i.x/s,u=l*i.y/s,f=e.viewBox,c=("userSpaceOnUse"===e.units?1:r)*Math.max(1,e.scale??1)*(f&&e.size?Math.min(e.size.width/f.width,e.size.height/f.height):1);if(!Number.isFinite(c))throw TypeError("Nonfinite Class marker scale");if(c<=0)return[];let h=i=>{o?.();let n=(i.x-(e.ref?.x??0))*c,r=(i.y-(e.ref?.y??0))*c;return{x:t.x+d*n-u*r,y:t.y+u*n+d*r}},p=e.paint??{},y=p.stroke&&"none"!==p.stroke&&"transparent"!==p.stroke?Number.parseFloat(p.strokeWidth??"1")/2:0,m=void 0!==p.fill&&"none"!==p.fill&&"transparent"!==p.fill;if("circle"===a.kind){let e=h({x:a.cx,y:a.cy});return[{kind:"circle",cx:e.x,cy:e.y,r:(a.r+y)*c}]}if("polygon"!==a.kind&&"polyline"!==a.kind)throw TypeError("Unmeasured Class marker geometry");let g=a.points,x=[];if(m&&"polygon"===a.kind){for(let e=0;e<g.length;e++)o?.();x.push([...g])}let b="polygon"===a.kind?g.length:g.length-1,v=(e,t)=>{o?.();let i=Math.hypot(t.x-e.x,t.y-e.y);return{x:(t.x-e.x)/i,y:(t.y-e.y)/i}};if(y>0){for(let e=0;e<b;e++){o?.();let t=g[e],i=g[(e+1)%g.length],n=v(t,i),r={x:-n.y*y,y:n.x*y};x.push([{x:t.x+r.x,y:t.y+r.y},{x:i.x+r.x,y:i.y+r.y},{x:i.x-r.x,y:i.y-r.y},{x:t.x-r.x,y:t.y-r.y}])}for(let e=+("polygon"!==a.kind);e<("polygon"===a.kind?g.length:g.length-1);e++){o?.();let t=g[e],i=g[(e-1+g.length)%g.length],n=g[(e+1)%g.length],r=v(i,t),a=v(t,n),l=r.x*a.y-r.y*a.x;if(!l)continue;let s=l>0?-1:1,d={x:t.x-s*r.y*y,y:t.y+s*r.x*y},u={x:t.x-s*a.y*y,y:t.y+s*a.x*y},f=((u.x-d.x)*a.y-(u.y-d.y)*a.x)/l,c={x:d.x+f*r.x,y:d.y+f*r.y};x.push(Math.hypot(c.x-t.x,c.y-t.y)<=Number(p.strokeMiterlimit??"4")*y?[t,d,c,u]:[t,d,u])}}let k=(e,t,i,n)=>{let r=[];for(let a=0;a<e.length;a++){o?.();let l=e[a],s=e[(a+1)%e.length],d=e=>n?e[t]>=i:e[t]<=i,u=d(l),f=d(s);if(u&&r.push(l),u!==f){let e=(i-l[t])/(s[t]-l[t]);r.push({x:l.x+e*(s.x-l.x),y:l.y+e*(s.y-l.y)})}}return r};return x.flatMap(t=>{if(o?.(),"hidden"===e.overflow&&f)for(let[e,i,n]of[["x",f.x,!0],["x",f.x+f.width,!1],["y",f.y,!0],["y",f.y+f.height,!1]])o?.(),t=k(t,e,i,n);let i=t[0],n=0;if(i)for(let e=0;e<t.length;e++){o?.();let r=t[e],a=t[(e+1)%t.length];n+=(r.x-i.x)*(a.y-i.y)-(r.y-i.y)*(a.x-i.x)}return t.length>=3&&0!==n?[{kind:"polygon",points:t.map(h)}]:[]})}(e.marker,e.anchor,e.tangent,e.position,e.width,()=>{if(!t())throw o})}catch(e){if(e===o)return;throw e}for(let e of a){if(!t()||"polygon"!==e.kind||e.points.length<3)return;let i=0;for(let n=0;n<e.points.length;n++){if(!t())return;let r=e.points[n],o=e.points[(n+1)%e.points.length];if(!Number.isFinite(r.x)||!Number.isFinite(r.y))return;i+=(r.x-e.points[0].x)*(o.y-e.points[0].y)-(r.y-e.points[0].y)*(o.x-e.points[0].x)}if(!Number.isFinite(i)||0===i)return}return a}function t_(e,t,i){if(!i())return"exhausted";let n=e=>e?.fill==="absent"&&"absent"===e.stroke&&(e.fillColor?.[3]===0||e.paintPieceSource?.marker.paint?.fill==="none");if(n(e)||n(t))return"clear";if(!e?.paintPieceSource||!t?.paintPieceSource)return"unknown";let r={},o=()=>{if(!i())throw r;return!0};try{let i=tR(e.paintPieceSource,o);if(i){let e=tR(t.paintPieceSource,o);if(e&&function(e,t,i){for(let n of e)for(let e of t){if(!i()||"polygon"!==n.kind||"polygon"!==e.kind)return!1;let t=!1;for(let r of[n.points,e.points]){for(let o=0;o<r.length;o++){if(!i())return!1;let a=r[o],l=r[(o+1)%r.length],s=a.y-l.y,d=l.x-a.x,u=Math.hypot(s,d);if(!(u>0)||!Number.isFinite(u))continue;let f=s/u,c=d/u,h=n.points[0],p=1/0,y=-1/0,m=1/0,g=-1/0,x=1;for(let e of n.points){if(!i())return!1;let t=(e.x-h.x)*f+(e.y-h.y)*c;p=Math.min(p,t),y=Math.max(y,t),x=Math.max(x,Math.abs(e.x),Math.abs(e.y))}for(let t of e.points){if(!i())return!1;let e=(t.x-h.x)*f+(t.y-h.y)*c;m=Math.min(m,e),g=Math.max(g,e),x=Math.max(x,Math.abs(t.x),Math.abs(t.y))}let b=1e-8+128*Number.EPSILON*x;if(Number.isFinite(p+y+m+g)&&(y+b<m||g+b<p)){t=!0;break}}if(t)break}if(!t)return!1}return!0}(i,e,o))return"clear"}}catch(e){if(e===r)return"exhausted";throw e}return"unknown"}var tG=new Set(["node","service","class-box","entity"]),tq=new Set([...tG,"group","note","actor","junction"]);function tU(e,t,i,n={}){let r,o,a=[],l=!1,s=!1,d=(e,t=!1)=>{a.length<64&&a.push(Object.freeze(e)),t?l=!0:s=!0},u=(e,t,i)=>d({code:"POTENTIAL_OCCLUSION",id:e,by:t,message:i}),f=(e,t,i=!1)=>d({code:"UNMEASURED_PAINT",id:e,message:t},i),c=e=>d({code:"OUTPUT_SCOPE",message:e}),g=tF.get(t);g&&e!==g.header&&(c("Retained emission is paired with a different document header"),e=g.header);let w=0,M=0,O=e.width,N=e.height,S=0;for(let e of t.primitives){if(!g&&tj.has(e)&&c("Native paint occurrences have no bound emission context"),"conditional"===e.visibility){S++;continue}"unmeasured"===e.coverage&&f(e.id,e.reason??"Paint geometry is unavailable"),e.text&&"non-painting"!==e.coverage&&"prepared"!==e.text.measurement&&d({code:"UNPREPARED_TEXT",id:e.id,message:"Text was not retained from layout preparation"});let t=e.bounds;t&&(w=Math.min(w,t.x0),M=Math.min(M,t.y0),O=Math.max(O,t.x1),N=Math.max(N,t.y1))}S&&d({code:"CONDITIONAL_PAINT",message:`${S} primitives depend on unresolved paint or interaction state`}),(!1===n.outputSupported||e.family.startsWith("family:"))&&c("Selected backend, style or external family has no native final-paint proof"),w=Math.min(0,w+1e-6),M=Math.min(0,M+1e-6),O=Math.max(e.width,O-1e-6),N=Math.max(e.height,N-1e-6);let $=w<0||M<0||O>e.width||N>e.height,j={x:Math.floor(w),y:Math.floor(M),width:Math.ceil(O)-Math.floor(w),height:Math.ceil(N)-Math.floor(M)};if($&&e.width>0&&e.height>0){let t=e.width/e.height;j.width/j.height>t?j.height=j.width/t:j.width=j.height*t}let F=Object.freeze($?j:{x:0,y:0,width:e.width,height:e.height}),z={x0:F.x,y0:F.y,x1:F.x+F.width,y1:F.y+F.height};$&&t.primitives.some(e=>{let t=th(e);return t?.kind==="connector"?t.stroke.nonScaling:(t?.kind==="shape"||t?.kind==="text")&&"non-scaling-stroke"===t.paint.vectorEffect})&&c("Viewport expansion changes the user-unit extent of non-scaling strokes; final painted containment is unverified");let E=0,P=(t,i,n)=>{if(E++,!i||!n)return void f(t,"Projected label has no retained occupied or available region");let r=tW(n);0===r.x0&&0===r.y0&&r.x1===e.width&&r.y1===e.height&&(r=z),tC(r,tW(i),.5)||d({code:"LABEL_CONTAINMENT",id:t,message:"Retained text extends beyond its declared available region"},!0)};if(i){for(let e of i.nodes)e.label?.trim()&&"hidden"!==e.labelVisibility&&"semantic"!==e.labelVisibility&&P(String(e.id),e.labelBounds,e.labelContainer);for(let e of i.labels??[])e.text.trim()&&"hidden"!==e.visibility&&"semantic"!==e.visibility&&P(e.id,e.bounds,e.container)}g?.uncertain&&c("Emitted document context or marker resource differs from retained paint evidence");let C=0,I=g?.operations??0,W=g?.exhausted??!1,B=()=>I>=4e5?(W=!0,!1):(I++,!0),L=(r=tP(function(e,t){let i=new Map,n=t=>{if(i.has(t))return i.get(t);let n=eT(t,e.colors),r=!!n&&eW(n)?.[3]===1;return i.set(t,r),r},r=e=>{if("non-scaling-stroke"===e.vectorEffect||!e.stroke||!n(e.stroke)||1!==Number(e.opacity??1)||1!==Number(e.strokeOpacity??1)||e.strokeDasharray)return 0;let t=Number(e.strokeWidth?.replace(/px$/,"")??1);return Number.isFinite(t)&&t>0?t:0},o=new Map,a=(e,t)=>JSON.stringify([e.owner,t,tg(e)]);for(let e of t){let t=th(e);if(t?.kind!=="shape"||"measured"!==e.coverage||"conditional"===e.visibility||void 0!==e.groupOpacity)continue;let i="compound"===t.geometry.kind?t.geometry.children:[t.geometry];for(let n=0;n<i.length;n++){let l=r("compound"===t.geometry.kind?t.childPaints?.[n]??t.paint:t.paint);l>0&&o.set(a(e,i[n]),l)}}let l=[];for(let e of t){let t=th(e);if(!t||"shape"!==t.kind||"conditional"===e.visibility||"measured"!==e.coverage||void 0!==e.groupOpacity)continue;let{geometry:i,paint:s,childPaints:d}=t,u="compound"===i.kind?i.children:void 0,f=u?void 0:i,c=u?.map((e,t)=>d?.[t]??s),p=u?void 0:s,y=u?.map((e,t)=>tA(e,c[t])),m=!u&&tA(f,p),g=u?.map((e,t)=>tT(e,c[t])),b=!u&&tT(f,p);if(!(y?y.some(Boolean):m)&&!(g?g.some(Boolean):b))continue;let w=tg(e),[M,O,N,S,$,j]=w,F={kind:"matrix",a:M,b:O,c:N,d:S,e:$,f:j},z,E=u?[]:void 0;for(let t=0,i=u?.length??1;t<i;t++){if(u&&!(t in u))continue;let i=u?u[t]:f,n=c?c[t]:p;if(!(y?y[t]:m)&&!(g?g[t]:b))continue;let r=k({kind:"shape",id:e.id,role:e.role,geometry:i,paint:n},F)??e.bounds;E&&(E[t]=r),z=h(z,r)}if(!z)continue;let P={primitive:e,bounds:z,borderWidth:o.get(a(e,i)),...u?{partBorderWidths:u.map(t=>o.get(a(e,t))??0),partOwnBorderWidths:c.map(r),partFilled:y,partBounds:E}:{}};if(Math.abs(w[1])>1e-12||Math.abs(w[2])>1e-12){l.push(P);continue}let C=[],I=[];for(let e=0,t=u?.length??1;e<t;e++){if(u&&!(e in u))continue;let t=u?u[e]:f,i=c?c[e]:p;if("rect"===t.kind&&1===w[0]&&1===w[3]&&0===w[1]&&0===w[2]&&"non-scaling-stroke"!==i.vectorEffect&&i.stroke&&n(i.stroke)&&1===tv(i.opacity)&&1===tv(i.strokeOpacity)&&!i.strokeDasharray&&void 0!==v(i,!1)){let e=Number.parseFloat(i.strokeWidth??"1")/2,n=Math.max(0,Math.min(t.width/2,t.rx??t.ry??0)),r=Math.max(0,Math.min(t.height/2,t.ry??t.rx??0));if(e>0)for(let i of[{x0:t.x-e,y0:t.y+r,x1:t.x+e,y1:t.y+t.height-r},{x0:t.x+t.width-e,y0:t.y+r,x1:t.x+t.width+e,y1:t.y+t.height-r},{x0:t.x+n,y0:t.y-e,x1:t.x+t.width-n,y1:t.y+e},{x0:t.x+n,y0:t.y+t.height-e,x1:t.x+t.width-n,y1:t.y+t.height+e}])i.x0<i.x1&&i.y0<i.y1&&I.push(x(i,F))}if(!(y?y[e]:m)||"rect"!==t.kind||1!==tv(i.opacity)||1!==tv(i.fillOpacity)||!i.fill||!n(i.fill))continue;let r=Math.min(t.width/2,t.rx??t.ry??0),o=Math.min(t.height/2,t.ry??t.rx??0),a=ef({x:t.x+r,y:t.y+o},w),l=ef({x:t.x+t.width-r,y:t.y+t.height-o},w);C.push({x0:Math.min(a.x,l.x),y0:Math.min(a.y,l.y),x1:Math.max(a.x,l.x),y1:Math.max(a.y,l.y)})}l.push({...P,interiors:C,strokeInteriors:I})}return l}(e,t.primitives),e=>e.bounds),o=e=>{if(!B())return-1/0;let t=-1/0;if(e.leaves)for(let i of e.leaves){if(!B())break;t=Math.max(t,i.primitive.order)}else t=Math.max(o(e.left),o(e.right));return e.lastOrder=t},r&&o(r),r),A=new Map,T=[],D=[];for(let e of t.primitives){if(!B())break;if("connector"===e.kind&&D.push(e),"text"!==e.kind||"measured"!==e.coverage||"conditional"===e.visibility||(T.push(e),!e.ancestors.length))continue;let t=A.get(e.ancestors);t?(t.bounds=h(t.bounds,e.bounds),t.order=Math.min(t.order,e.order),t.count++):A.set(e.ancestors,{bounds:e.bounds,order:e.order,count:1})}let R,_=e=>{if(!R)for(let e of(R=new Map,t.primitives)){if(W)break;for(let t of[e.owner,...e.ancestors]){if(!B())break;if(!tq.has(t.role))continue;let e=R.get(t.id)??new Set;e.add(t.role),R.set(t.id,e)}}return W||(R.get(e)?.size??0)>1},G=(e,t)=>{let i=!1;for(let[n,r]of[[e.endpoints.from,e.endpoints.start],[e.endpoints.to,e.endpoints.end]])if(n===t.id)if(r?.owner){if(r.owner.id!==n){i=!0;continue}if(r.owner.role===t.role)return"attached"}else{if(!_(n))return"attached";i=!0}return i?"ambiguous":"unrelated"},q=(e,t,i,n,r)=>{if(!(W||r&&(r.remaining--<=0||n.length>16)||!B()||!e||e.lastOrder<=i||!tI(e.bounds,t))){if(!e.leaves){q(e.left,t,i,n,r),q(e.right,t,i,n,r);return}for(let o of e.leaves)if(r&&r.remaining--<=0||!B()||o.primitive.order>i&&tI(o.bounds,t)&&(n.push(o),r&&n.length>16))return}};for(let e of T){let t=A.get(e.ancestors),i;if(t&&t.count>1&&t.count<=8&&null!==t.surfaces){if(!t.surfaces){i=[];let e={remaining:64};q(L,t.bounds,t.order,i,e),t.surfaces=e.remaining>=0&&i.length<=16?i:null}i=t.surfaces??void 0}for(let t of(i||(i=[],q(L,e.bounds,e.order,i)),i)){if(!B())break;if(!(t.primitive.order<=e.order||!tI(t.bounds,e.bounds))){if(++C>1e5){W=!0;break}t.interiors?.some(t=>B()&&tC(t,e.bounds))?d({code:"TEXT_OCCLUDED",id:e.id,by:t.primitive.id,message:`Retained text is fully covered by later opaque artwork owned by ${t.primitive.owner.id}`},!0):u(e.id,t.primitive.id,"Later filled artwork overlaps the occupied text band; its exact ink intersection is unverified")}}}let U=new Map;for(let t of D){if(!B())break;let i=th(t);if(i?.kind!=="connector"||!["edge","relationship"].includes(t.role)||"invisible"===i.lineStyle||"conditional"===t.visibility||"measured"!==t.coverage)continue;let r=Number.parseFloat(String(i.stroke.width)),o=Number(i.stroke.opacity??1);if(0===r||0===o||"none"===i.stroke.color||"transparent"===i.stroke.color)continue;if(!U.has(i.stroke.color)){let t=eT(i.stroke.color,e.colors);U.set(i.stroke.color,t?eW(t)?.[3]:void 0)}let a=U.get(i.stroke.color);if(0===a)continue;let l=!1!==n.outputSupported&&!e.family.startsWith("family:")&&!!i.endpoints?.from&&!!i.endpoints.to&&void 0!==a&&a>0&&r>0&&o>0&&!i.stroke.dash,s=tg(t),[c,h,m,g,k,w]=s,M={kind:"matrix",a:c,b:h,c:m,d:g,e:k,f:w},O=v({stroke:i.stroke.color,strokeWidth:String(i.stroke.width),strokeLinecap:i.stroke.lineCap,strokeLinejoin:i.stroke.lineJoin,strokeMiterlimit:String(i.stroke.miterLimit)},b(i.route));if(void 0===O){f(t.id,"Final connector stroke has no bounded cap/join extent");continue}let N=e=>{if(!B())return!1;let n=i.stroke.nonScaling?p(x(e.bounds,M),O):x(p(e.bounds,O),M),o=e.line?.map(e=>ef(e,s)),a=e=>{if(!(W||!B()||!e||!tI(e.bounds,n))){if(!e.leaves){a(e.left),a(e.right);return}for(let a of e.leaves){if(!B())return;if(++C>1e5){W=!0;return}let e=l&&"note"===a.primitive.role&&!!a.interiors?.length;if(!tG.has(a.primitive.role)&&!e||a.primitive.owner.id===t.owner.id&&a.primitive.owner.role===t.owner.role||!tI(a.bounds,n))continue;let f=G(i,a.primitive.owner);"attached"!==f&&(l&&o&&function(e,t,i,n,r,o,a){if(!a()||!o.every(Number.isFinite)||1!==o[0]||0!==o[1]||0!==o[2]||1!==o[3]||i.nonScaling||!["butt","round","square"].includes(i.lineCap??"butt")||!["miter","round","bevel"].includes(i.lineJoin??"miter")||!Number.isFinite(n)||n<=0||!Number.isFinite(r)||r<n/2)return!1;let[l,s]=e;if(![l.x,l.y,s.x,s.y].every(Number.isFinite)||l.x!==s.x&&l.y!==s.y||l.x===s.x&&l.y===s.y)return!1;let d=n/2,u={x0:Math.min(l.x,s.x)-d,y0:Math.min(l.y,s.y)-d,x1:Math.max(l.x,s.x)+d,y1:Math.max(l.y,s.y)+d};if(!a()||!Object.values(u).every(Number.isFinite)||tI(u,t))return!1;for(let i of e){if(!a())return!1;let e={x0:i.x-r,y0:i.y-r,x1:i.x+r,y1:i.y+r};if(!Object.values(e).every(Number.isFinite)||tI(e,t))return!1}return!0}(o,a.bounds,i.stroke,r,O,s,B)||(l&&"unrelated"===f&&o&&a.interiors?.some(e=>B()&&function(e,t){let[i,n]=e,r=0,o=1;for(let[e,a,l,s]of[[i.x,n.x-i.x,t.x0,t.x1],[i.y,n.y-i.y,t.y0,t.y1]])if(1e-12>Math.abs(a)){if(e<=l+1e-8||e>=s-1e-8)return!1}else{let t=(l-e)/a,i=(s-e)/a;r=Math.max(r,Math.min(t,i)),o=Math.min(o,Math.max(t,i))}return(o-r)*Math.hypot(n.x-i.x,n.y-i.y)>1e-8}(o,e))?d({code:"CONNECTOR_CARD_CROSSING",id:t.id,by:a.primitive.id,message:`Final connector shaft crosses opaque artwork owned by unrelated ${e?"note":"card"} ${a.primitive.owner.id}`},!0):u(t.id,a.primitive.id,e?"Final connector envelope intersects unrelated filled note artwork; actual route/note crossing is unverified":"Final connector envelope intersects unrelated filled card artwork; actual route/card crossing is unverified")))}}};return a(L),!W},S=i.route.geometry;if("path"===S.kind)y(S.d,N,B)||W||f(t.id,"Final connector segments could not be measured from typed path geometry");else{let e="line"===S.kind?[{x:S.x1,y:S.y1},{x:S.x2,y:S.y2}]:S.points;for(let t=1;t<e.length;t++){let i=e[t-1],n=e[t];if(!N({bounds:{x0:Math.min(i.x,n.x),y0:Math.min(i.y,n.y),x1:Math.max(i.x,n.x),y1:Math.max(i.y,n.y)},line:[i,n]}))break}}}let V=new Map,K,H=t=>(K??=eD())(t,e.colors);for(let t of D){let i=th(t);if("connector"!==t.kind||i?.kind!=="connector"||"invisible"===i.lineStyle||"non-painting"===t.coverage)continue;let r=ec(ed(i.transform));if(!r)continue;let[o,a,l,s,d,u]=eu(tg(t),r);for(let r of m(i,{kind:"matrix",a:o,b:a,c:l,d:s,e:d,f:u})){if(!r.bounds){f(t.id,"Endpoint marker has no painted footprint");continue}let o=JSON.stringify([t.owner.id,t.owner.role,r.position,r.resource,r.anchor,r.repaint]),a="number"==typeof i.stroke.width?Number.isFinite(i.stroke.width)&&i.stroke.width>0:/^\s*(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?(?:px)?\s*$/i.test(i.stroke.width)&&Number.parseFloat(i.stroke.width)>0,l="start"===r.position?i.markers.start:"end"===r.position?i.markers.end:1===i.markers.mid.length?i.markers.mid[0]:void 0,s="measured"===t.coverage&&!!ec(tg(t)),d=l?.units==="userSpaceOnUse"||a,u=V.get(o),c=!1!==n.outputSupported&&!e.family.startsWith("family:")&&(["edge","relationship"].includes(t.role)&&!!i.endpoints?.from&&!!i.endpoints.to||u?.semantic===!0),p=tg(t),g="measured"===t.coverage&&"conditional"!==t.visibility&&(t.groupOpacity??1)===1&&0===t.ancestors.length&&!!p&&1===p[0]&&0===p[1]&&0===p[2]&&1===p[3]&&0===p[4]&&0===p[5],x=c&&g&&d?function(e,t,i,n){let{position:r,anchor:o}=i;for(let e=0;e<18;e++)if(!n())return;if(!t||"mid"===r||e.transform||e.route.closed||e.stroke.nonScaling||"visible"===t.overflow||(t.scale??1)!==1||t.paint?.vectorEffect==="non-scaling-stroke"||void 0!==t.orient&&"auto"!==t.orient&&"auto-start-reverse"!==t.orient||!t.size||!t.ref||!(t.size.width>0)||!(t.size.height>0)||!Number.isFinite(t.size.width+t.size.height+t.ref.x+t.ref.y)||t.ref.y<0||t.ref.y>t.size.height||0!==t.ref.x&&t.ref.x!==t.size.width||t.viewBox&&(0!==t.viewBox.x||0!==t.viewBox.y||t.viewBox.width!==t.size.width||t.viewBox.height!==t.size.height))return;let a=e.route.geometry,l,s,d=(e,t)=>{if(!n()||!Number.isFinite(e)||!Number.isFinite(t))return!1;if(l){if(e!==l.x||t!==l.y)return s={x:e,y:t},!1}else l={x:e,y:t};return!0};if("line"===a.kind){if(!d("start"===r?a.x1:a.x2,"start"===r?a.y1:a.y2))return;d("start"===r?a.x2:a.x1,"start"===r?a.y2:a.y1)}else if("polyline"!==a.kind)return;else for(let e=0;e<a.points.length;e++){let t=a.points["start"===r?e:a.points.length-e-1];if(!d(t.x,t.y))break}if(!l||!s||l.x!==o.x||l.y!==o.y||l.x!==s.x&&l.y!==s.y)return;let u=e=>({x:Number(ev(e.x)),y:Number(ev(e.y))}),f=u(l),c=u(s),p=l.y===s.y;if(![f.x,f.y,c.x,c.y].every(Number.isFinite)||p&&(f.x!==l.x||f.y!==c.y||Math.sign(c.x-f.x)!==Math.sign(s.x-l.x))||!p&&(f.y!==l.y||f.x!==c.x||Math.sign(c.y-f.y)!==Math.sign(s.y-l.y)))return;let y=1;if("userSpaceOnUse"!==t.units){let t=String(e.stroke.width);if(!/^\s*(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?(?:px)?\s*$/i.test(t)||!((y=Number.parseFloat("number"==typeof e.stroke.width?ev(e.stroke.width):ek("stroke-width",e.stroke.width)))>0)||!Number.isFinite(y)||y!==Number.parseFloat(t))return}let g="start"===r?f:c,x="start"===r?c:f,b={x:x.x-g.x,y:x.y-g.y},v=m({route:{geometry:{kind:"line",x1:g.x,y1:g.y,x2:x.x,y2:x.y},closed:!1,contours:[{start:g,end:x,closed:!1,startTangent:b,endTangent:b}]},stroke:{width:y},markers:{mid:[],..."start"===r?{start:t}:{end:t}}})[0];if(!n()||!v?.bounds||!i.bounds)return;let k=h(i.bounds,v.bounds),w="end"===r||"auto-start-reverse"===t.orient?-1:1,M=0===t.ref.x?1:-1,O=Math.sign(s.x-l.x)*w*M,N=Math.sign(s.y-l.y)*w*M;if(!n())return;let S={x0:O>0?Math.max(k.x0,v.anchor.x):k.x0,y0:N>0?Math.max(k.y0,v.anchor.y):k.y0,x1:O<0?Math.min(k.x1,v.anchor.x):k.x1,y1:N<0?Math.min(k.y1,v.anchor.y):k.y1};return S.x0<=S.x1&&S.y0<=S.y1?{region:{...v,bounds:k},clipped:S}:void 0}(i,l,r,B):void 0,b=x?.region??r,k=s&&d?function(e,t,i,n){if(!e||!t||e.geometry?.kind!=="polygon"||(e.scale??1)>1||1!==tv(e.paint?.opacity)||1!==tv(e.paint?.fillOpacity)||!e.paint?.fill)return;let r=i(e.paint.fill);if(!r||eW(r)?.[3]!==1)return;let o=e.geometry.points;if(o.length<3||o.length>64||o.length!==t.length)return;let a=Math.sign(o.reduce((e,t,i)=>{let n=o[(i+1)%o.length];return e+t.x*n.y-n.x*t.y},0));if(!a||!o.every((e,t)=>o.every(i=>n()&&a*((o[(t+1)%o.length].x-e.x)*(i.y-e.y)-(o[(t+1)%o.length].y-e.y)*(i.x-e.x))>=0)))return;let l=e=>({x:e.reduce((e,t)=>e+t.x,0)/e.length,y:e.reduce((e,t)=>e+t.y,0)/e.length}),s=l(o),d=l(t),u=e.viewBox??(e.size?{x:0,y:0,width:e.size.width,height:e.size.height}:void 0),f=[];for(let i=-1,r=o.length;i<r;i++){if(!n())continue;let r=i<0?s:{x:(s.x+o[i].x)/2,y:(s.y+o[i].y)/2};("visible"===e.overflow||u&&r.x>u.x&&r.x<u.x+u.width&&r.y>u.y&&r.y<u.y+u.height)&&f.push(i<0?d:{x:(d.x+t[i].x)/2,y:(d.y+t[i].y)/2})}return f}(l,b.hull,H,B):void 0,w=s&&d&&l?.paint?.vectorEffect!=="non-scaling-stroke"&&function(e,t,i,n){if(t?.length)return!0;if(!e?.geometry||1!==tv(e.paint?.opacity))return!1;let r=e.viewBox??(e.size?{x:0,y:0,width:e.size.width,height:e.size.height}:void 0),o=t=>Number.isFinite(t.x)&&Number.isFinite(t.y)&&("visible"===e.overflow||!!r&&t.x>r.x&&t.x<r.x+r.width&&t.y>r.y&&t.y<r.y+r.height),a=e=>{if(!e||!n())return!1;let t=i(e);return!!t&&eW(t)?.[3]===1},l=e.geometry;if(1===tv(e.paint?.fillOpacity)&&a(e.paint?.fill)&&("circle"===l.kind&&l.r>0&&o({x:l.cx,y:l.cy})||"ellipse"===l.kind&&l.rx>0&&l.ry>0&&o({x:l.cx,y:l.cy})||"rect"===l.kind&&l.width>0&&l.height>0&&o({x:l.x+l.width/2,y:l.y+l.height/2})))return!0;if(1!==tv(e.paint?.strokeOpacity)||!a(e.paint?.stroke)||e.paint?.strokeDasharray||!(Number.parseFloat(e.paint?.strokeWidth??"1")>0)||void 0===v(e.paint??{},!0))return!1;let s=(e,t)=>n()&&Math.hypot(t.x-e.x,t.y-e.y)>0&&o({x:(e.x+t.x)/2,y:(e.y+t.y)/2});if("line"===l.kind)return s({x:l.x1,y:l.y1},{x:l.x2,y:l.y2});if("polygon"===l.kind||"polyline"===l.kind)return l.points.length<=64&&l.points.some((e,t)=>t>0&&s(l.points[t-1],e));if("path"===l.kind){let e=!1;return y(l.d,t=>(t.line&&s(t.line[0],t.line[1])&&(e=!0),n()),n)&&e}return!1}(l,k,H,B),M=function(e,t,i){if(!i()||!t)return!0;if(t.geometry?.kind==="line"||t.paint?.fill==="none"||t.paint?.fill==="transparent"||1>tv(t.paint?.opacity))return!1;let n=t.paint?.fill;if(!n||!i())return!0;let r=e(n),o=r?eW(r):null;return!o||1===o[3]}(H,l,B),O=c&&(t.groupOpacity??1)===1&&0===t.ancestors.length&&(!i.stroke.mixBlendMode||"normal"===i.stroke.mixBlendMode)?function(e,t,i){let n=e?.paint;if(!i()||!n||!Number.isFinite(tv(n.opacity))||void 0===v(n,!0)||void 0!==n.strokeDasharray&&"none"!==n.strokeDasharray||void 0!==n.strokeDashoffset||void 0!==n.paintOrder&&"normal"!==n.paintOrder||!n.fill||!n.stroke||!i())return;let r=t(n.fill);if(!r||"none"!==r&&!eW(r)||!i())return;let o=t(n.stroke);if(!(!o||"none"!==o&&!eW(o)))return`${r}\0${o}`}(l,H,B):void 0,N=c&&g?function(e,t,i,n,r,o){let a,l=e=>{for(let t=0;t<e;t++)if(!r())return!1;return!0};if(!l(3)||!i||"mid"===n||i.geometry?.kind!=="polygon"&&i.geometry?.kind!=="polyline"||i.geometry.points.length<3||i.geometry.points.length>64||t.transform||"polyline"===i.geometry.kind&&i.paint?.strokeLinecap!==void 0&&!["butt","round"].includes(i.paint.strokeLinecap)||t.route.closed||t.stroke.nonScaling||t.stroke.mixBlendMode&&"normal"!==t.stroke.mixBlendMode||(i.scale??1)!==1||i.paint?.vectorEffect==="non-scaling-stroke"||i.paint?.strokeLinejoin&&!["miter","round","bevel"].includes(i.paint.strokeLinejoin)||!i.size||!i.ref||!(i.size.width>0)||!(i.size.height>0)||!Number.isFinite(i.size.width+i.size.height+i.ref.x+i.ref.y)||i.viewBox&&(!(i.viewBox.width>0)||!(i.viewBox.height>0)||!Number.isFinite(i.viewBox.x+i.viewBox.y+i.viewBox.width+i.viewBox.height)))return;let s=String(t.stroke.width);if(!/^\s*(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?(?:px)?\s*$/i.test(s))return;let d=Number.parseFloat("number"==typeof t.stroke.width?ev(t.stroke.width):ek("stroke-width",t.stroke.width));if(!(d>0)||!Number.isFinite(d)||!l(12+5*i.geometry.points.length))return;let u=t.route.geometry,f,c,h=(e,t)=>{if(!r())return!1;let i={x:Number(ev(e)),y:Number(ev(t))};if(!Number.isFinite(i.x)||!Number.isFinite(i.y))return!1;if(f){if(i.x!==f.x||i.y!==f.y)return c=i,!1}else f=i;return!0};if("line"===u.kind)h("start"===n?u.x1:u.x2,"start"===n?u.y1:u.y2),h("start"===n?u.x2:u.x1,"start"===n?u.y2:u.y1);else if("polyline"!==u.kind)return;else for(let e=0;e<u.points.length;e++){let t=u.points["start"===n?e:u.points.length-e-1];if(!h(t.x,t.y))break}if(!f||!c||!r()||f.x!==c.x&&f.y!==c.y)return;let p=i.geometry.points,y="polygon"===i.geometry.kind?i:{...i,geometry:{kind:"polygon",points:p}},g="start"===n?{x:c.x-f.x,y:c.y-f.y}:{x:f.x-c.x,y:f.y-c.y},x="start"===n?f:c,b="start"===n?c:f,v={kind:"line",x1:x.x,y1:x.y,x2:b.x,y2:b.y},k=m({route:{...t.route,geometry:v,contours:[{start:x,end:b,closed:!1,startTangent:g,endTangent:g}]},stroke:{...t.stroke,width:d},markers:{mid:[],..."start"===n?{start:y}:{end:y}}})[0],w=k?.hull;if(!w||w.length!==p.length||!l(w.length))return;let M=0;for(let e=0;e<w.length;e++){let t=w[e],i=w[(e+1)%w.length];for(let e of w){if(!r())return;let n=(i.x-t.x)*(e.y-t.y)-(i.y-t.y)*(e.x-t.x);if(!Number.isFinite(n))return;if(n){if(M&&Math.sign(n)!==M)return;M||=Math.sign(n)}}}if(!M)return;let O=y.viewBox??(y.size?{x:0,y:0,...y.size}:void 0),N=e=>"visible"===y.overflow||!!O&&e.x>O.x&&e.x<O.x+O.width&&e.y>O.y&&e.y<O.y+O.height,S=i.paint??{},$=t=>{if(!t||!r())return;let i=o?o(t):eT(t,e.colors);return i?eW(i)??void 0:void 0},j=$(S.fill),F=$(S.stroke),z=tv(S.opacity),E="none"===S.fill||z<1||j&&j[3]<1?"absent":j?.[3]===1&&1===z&&p.every(e=>r()&&N(e))?"opaque":"unknown",P=void 0===S.stroke||"none"===S.stroke||0===z||F?.[3]===0,C=S.strokeWidth??"1",I=/^\s*(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?(?:px)?\s*$/i.test(C)?Number.parseFloat(C):void 0,W=("userSpaceOnUse"===y.units?1:d)*(y.viewBox&&y.size?Math.min(y.size.width/y.viewBox.width,y.size.height/y.viewBox.height):1),B=P?0:void 0!==I&&Number.isFinite(I*W)?I*W/2:void 0,L=P||0===I?"absent":void 0!==I&&I>0&&F?.[3]===1&&1===z&&!S.strokeDasharray?"visible":"unknown",A=[];if(!P&&void 0!==I&&I>0&&F?.[3]===1&&1===z&&!S.strokeDasharray){for(let e=0;e<p.length-("polyline"===i.geometry.kind);e++){let t=p[e],i=p[(e+1)%p.length];if(t.x!==i.x||t.y!==i.y)for(let n=1;n<4;n++){if(!l(3))return;let r=n/4;N({x:t.x*(1-r)+i.x*r,y:t.y*(1-r)+i.y*r})&&A.push({x:w[e].x*(1-r)+w[(e+1)%w.length].x*r,y:w[e].y*(1-r)+w[(e+1)%w.length].y*r})}}let e=+("polygon"!==i.geometry.kind),t=p.length-("polygon"!==i.geometry.kind);for(let i=e;i<t;i++){if(!l(2))return;let e=p[(i+p.length-1)%p.length],t=p[i],n=p[(i+1)%p.length];(e.x!==t.x||e.y!==t.y)&&(t.x!==n.x||t.y!==n.y)&&N(t)&&A.push(w[i])}}let T=!1;if("hidden"===i.overflow){if(!l(5))return;T=i.viewBox?.x===0&&0===i.viewBox.y&&i.viewBox.width===i.size.width&&i.viewBox.height===i.size.height}if(("visible"===i.overflow||T)&&(void 0===i.orient||"auto"===i.orient||"auto-start-reverse"===i.orient)&&"unknown"!==E&&"unknown"!==L&&1===z&&("polygon"===i.geometry.kind||"none"===S.fill||j?.[3]===0)&&!S.strokeDasharray&&(void 0===S.strokeLinecap||"butt"===S.strokeLinecap)&&(void 0===S.strokeLinejoin||"miter"===S.strokeLinejoin)&&(void 0===S.strokeMiterlimit||4===Number(S.strokeMiterlimit))){if(T&&!l(16))return;a={marker:T?{id:i.id,shape:i.shape,geometry:i.geometry,paint:i.paint,units:i.units,size:i.size,ref:i.ref,orient:i.orient,viewBox:i.viewBox,scale:i.scale,overflow:"visible"}:i,anchor:f,tangent:g,position:n,width:d}}return(!a||r())&&l(6)?{repaint:{resource:k.repaint,anchor:f,geometry:i.geometry.kind},hull:w,fill:E,stroke:L,fillColor:j,strokeColor:F,innerStroke:B,strokeWitnesses:A,padding:k.padding,...a?{paintPieceSource:a}:{}}:void 0}(e,i,l,r.position,B,H):void 0;V.set(o,{primitive:t,position:r.position,clipped:x?.clipped,anchor:b.anchor,repaint:b.repaint,bounds:b.bounds,hull:b.hull,padding:b.padding,witnesses:k,actualInk:w,strokeProof:N,paintIdentity:O,semantic:c,mayFill:M})}}let J=(e,t)=>{if("conditional"!==t.primitive.visibility&&!(W||!B()||!e||e.lastOrder<=t.primitive.order||!tI(e.bounds,t.bounds))){if(!e.leaves){J(e.left,t),J(e.right,t);return}for(let i of e.leaves){if(!B())return;if(i.primitive.order<=t.primitive.order||!tI(i.bounds,t.bounds))continue;if(++C>1e5){W=!0;return}if(t.actualInk&&(i.interiors?.some(e=>B()&&tC(e,t.bounds))||i.strokeInteriors?.some(e=>B()&&tC(e,t.bounds)))){d({code:"MARKER_OCCLUDED",id:t.primitive.id,by:i.primitive.id,message:"Endpoint marker is fully covered by later opaque artwork with no owned repaint"},!0);continue}let e=th(t.primitive),n=e?.kind==="connector"&&"attached"===G(e,i.primitive.owner);tD(i,t.bounds,n,t.hull,t.padding,B,t.witnesses,t.anchor)||t.clipped&&tD(i,t.clipped,n,void 0,0,B,t.witnesses,t.anchor,!0)||u(t.primitive.id,i.primitive.id,"Later filled artwork overlaps an endpoint marker; its exact ink intersection is unverified")}}},Z=Array.from(V.values());for(let e=0;e<Z.length;e++)J(L,Z[e]);let X=0,Y=0;for(let e of Z){if(!B())break;!e.semantic||"conditional"===e.primitive.visibility||(X++,e.strokeProof?.fill==="absent"&&"absent"===e.strokeProof.stroke||Y++)}let Q=Y>Math.ceil(Math.log2(t.primitives.length+1))**2,ee=X>Math.ceil(Math.log2(X+1))**2,et=[];if(Q)for(let[e,i]of t.primitives.entries()){if(!B())break;"text"===i.kind&&"measured"===i.coverage&&"conditional"!==i.visibility&&i.bounds&&et.push({primitive:i,bounds:i.bounds,index:e})}let ei=Q?tL(et,B,Y):void 0,en=[];if(ee)for(let[e,t]of Z.entries()){if(!B())break;t.semantic&&"conditional"!==t.primitive.visibility&&en.push({primitive:t.primitive,bounds:t.bounds,target:t,index:e})}let er=ee?tL(en,B,X):void 0;for(let e=0;e<Z.length;e++){let i=Z[e];if(!B())break;if(i.semantic&&"conditional"!==i.primitive.visibility&&(i.strokeProof?.fill!=="absent"||"absent"!==i.strokeProof.stroke))for(let e of ei?ei(i.bounds).map(e=>e.primitive):t.primitives){if(!B())break;if("text"!==e.kind||"measured"!==e.coverage||"conditional"===e.visibility||!e.bounds||!tI(e.bounds,i.bounds))continue;if(++C>1e5){W=!0;break}let t=i.primitive.order>e.order;u(t?e.id:i.primitive.id,t?i.primitive.id:e.id,t?"Later endpoint-marker ink overlaps occupied text; actual text visibility is unverified.":"Later occupied text or its halo overlaps an endpoint marker; actual marker ink visibility is unverified.")}}for(let e=0;e<Z.length;e++){let i=Z[e];if(W)break;if(i.semantic&&"conditional"!==i.primitive.visibility)for(let e of er?er(i.bounds).map(e=>e.target):Z){if(!B())break;let n=i.strokeProof?.repaint,r=e.strokeProof?.repaint,o=void 0!==i.paintIdentity&&i.paintIdentity===e.paintIdentity;if(!e.semantic||"conditional"===e.primitive.visibility||e.primitive.order<=i.primitive.order||o&&(i.anchor.x===e.anchor.x&&i.anchor.y===e.anchor.y&&i.repaint===e.repaint||n&&r&&n.resource===r.resource&&n.geometry===r.geometry&&n.anchor.x===r.anchor.x&&n.anchor.y===r.anchor.y)||!tI(i.bounds,e.bounds))continue;if(++C>1e5){W=!0;break}let a=0,l="unknown";for(;!W;){let n=e.mayFill?function(e,t,i,n=0){if(!i()||!Number.isSafeInteger(n)||n<0)return"unknown";if(t?.fill==="absent"||e?.stroke==="absent"&&"absent"===e.fill)return"clear";if(!e||!t)return"unknown";let r=t.hull;if(void 0!==e.innerStroke){let t=0;for(let n=0;n<e.hull.length;n++){if(!i())return"unknown";let r=e.hull[n],o=e.hull[(n+1)%e.hull.length],a=e.hull[(n+2)%e.hull.length],l=(o.x-r.x)*(a.y-o.y)-(o.y-r.y)*(a.x-o.x);if(l){t=Math.sign(l);break}}if(t)for(let n=0;n<e.hull.length;n++){if(!i())return"unknown";let o=e.hull[n],a=e.hull[(n+1)%e.hull.length],l=a.x-o.x,s=a.y-o.y,d=Math.hypot(l,s);if(!d)continue;let u=!0;for(let n of r){if(!i())return"unknown";let r=t*(l*(n.y-o.y)-s*(n.x-o.x))/d,f=1e-8+64*Number.EPSILON*Math.max(1,Math.abs(n.x),Math.abs(n.y),Math.abs(o.x),Math.abs(o.y),Math.abs(a.x),Math.abs(a.y));if(!Number.isFinite(r)||r>=-e.innerStroke-f){u=!1;break}}if(u)return"clear"}}if(void 0!==e.padding&&Number.isFinite(e.padding))for(let t of[e.hull,r])for(let n=0;n<t.length;n++){if(!i())return"unknown";let o=t[n],a=t[(n+1)%t.length],l=a.y-o.y,s=o.x-a.x,d=Math.hypot(l,s);if(!d)continue;let u=1/0,f=-1/0,c=1/0,h=-1/0;for(let t of e.hull){if(!i())return"unknown";let e=(t.x-o.x)*l+(t.y-o.y)*s;u=Math.min(u,e),f=Math.max(f,e)}for(let e of r){if(!i())return"unknown";let t=(e.x-o.x)*l+(e.y-o.y)*s;c=Math.min(c,t),h=Math.max(h,t)}if(f+e.padding*d<c||h<u-e.padding*d)return"clear"}if(e.paintPieceSource&&t.paintPieceSource){let n=t_(e,t,i);if("clear"===n)return"clear";if("exhausted"===n)return"unknown"}if("visible"!==e.stroke||"opaque"!==t.fill||void 0===t.innerStroke||!e.strokeColor||!t.fillColor)return"unknown";let o=!0;for(let n=0;n<3;n++){if(!i())return"unknown";e.strokeColor[n]!==t.fillColor[n]&&(o=!1)}if(o)return"unknown";for(let o=n;o<e.strokeWitnesses.length&&i();o++){let n=e.strokeWitnesses[o],a=0,l=!0;for(let e=0;e<r.length;e++){if(!i())return"unknown";let o=r[e],s=r[(e+1)%r.length],d=s.x-o.x,u=s.y-o.y,f=Math.hypot(d,u),c=d*(n.y-o.y)-u*(n.x-o.x),h=1e-8+64*Number.EPSILON*Math.max(1,Math.abs(n.x),Math.abs(n.y),Math.abs(o.x),Math.abs(o.y),Math.abs(s.x),Math.abs(s.y));if(!Number.isFinite(c)||!f||Math.abs(c)/f<=t.innerStroke+h||a&&Math.sign(c)!==a){l=!1;break}a||=Math.sign(c)}if(l&&a)return n}return"unknown"}(i.strokeProof,e.strokeProof,B,a):t_(i.strokeProof,e.strokeProof,B);if("exhausted"===n&&(n="unknown"),"string"==typeof n){l=n;break}let r=!1,o=t.primitives;for(let t=0;t<o.length;t++){let i=o[t];if(!B())break;let a=i.bounds;if(i.order<=e.primitive.order||"non-painting"===i.coverage)continue;if(!a){r=!0;break}if(a.x0>n.x||n.x>a.x1||a.y0>n.y||n.y>a.y1)continue;let l=th(i);if(l?.kind==="connector"&&0===Number(l.stroke.opacity)){let e=!1;for(let t=0;t<Z.length;t++){let r=Z[t];if(!B())break;if(!(r.primitive.order!==i.order||r.bounds.x0>n.x||n.x>r.bounds.x1||r.bounds.y0>n.y||n.y>r.bounds.y1)&&!function(e,t,i){if(!e||void 0===e.innerStroke)return!1;let n=e.hull,r=0;for(let e=0;e<n.length;e++){if(!i())return!1;let t=n[e],o=n[(e+1)%n.length],a=n[(e+2)%n.length],l=(o.x-t.x)*(a.y-o.y)-(o.y-t.y)*(a.x-o.x);if(l){r=Math.sign(l);break}}if(!r)return!1;for(let o=0;o<n.length&&i();o++){let i=n[o],a=n[(o+1)%n.length],l=a.x-i.x,s=a.y-i.y,d=Math.hypot(l,s),u=r*(l*(t.y-i.y)-s*(t.x-i.x))/d,f=1e-8+64*Number.EPSILON*Math.max(1,Math.abs(t.x),Math.abs(t.y),Math.abs(i.x),Math.abs(i.y),Math.abs(a.x),Math.abs(a.y));if(Number.isFinite(u)&&u<-e.innerStroke-f)return!0}return!1}(r.strokeProof,n,B)){e=!0;break}}if(!e&&!W)continue}r=!0;break}if(!r&&!W){l="covered";break}let s=i.strokeProof.strokeWitnesses,d=!1;for(;a<s.length&&B();a++)if(s[a]===n){a++,d=!0;break}if(!d)break}"covered"!==l||W?"unknown"===l&&u(i.primitive.id,e.primitive.id,"Distinct endpoint-marker envelopes overlap; actual marker ink separation is unverified."):d({code:"MARKER_OCCLUDED",id:i.primitive.id,by:e.primitive.id,message:"Later opaque endpoint-marker fill covers actual stroke ink of a distinct marker."},!0)}}for(let e of(W&&d({code:"CHECK_BUDGET",message:"Occlusion checking reached its 100000-pair or 400000-operation limit"}),t.primitives))e.bounds&&"conditional"!==e.visibility&&!tC(z,e.bounds,1e-6)&&f(e.id,"Final viewport does not contain retained paint",!0);for(let e of Z)"conditional"===e.primitive.visibility||tC(z,e.bounds,1e-6)||f(e.primitive.id,"Final viewport does not contain serialized marker paint",!0);return Object.freeze({version:1,unit:"px",scope:"native-scene",status:l?"failed":s?"unverified":"passed",viewport:F,attempts:$?2:1,repairs:Object.freeze($?["expand-viewport"]:[]),coverage:Object.freeze({measured:t.coverage.measured,unmeasured:t.coverage.unmeasured,preparedText:t.coverage.preparedText,fallbackText:t.coverage.fallbackText,conditional:S}),checks:Object.freeze({primitives:t.primitives.length,labels:E,occlusionPairs:Math.min(C,1e5),maxOcclusionPairs:1e5,operations:I,maxOperations:4e5,markers:V.size}),issues:Object.freeze(a),limitations:Object.freeze(["Prepared occupied text regions bound native geometry; exact glyph ink depends on the resolved font.","Declared transparency, intentional data-mark overlap and externally modified CSS are outside this proof."])})}var tV=class extends Error{constructor(e){super(`Final paint certification failed: ${e.issues.map(e=>`${e.id??"scene"}: ${e.message}`).join("; ")}`),this.certification=e,this.name="PaintLayoutCertificationError"}certification;code="PAINT_LAYOUT_CERTIFICATION_FAILED"},tK=new WeakMap,tH=new WeakMap;function tJ(e,i){let r=tH.get(i);r||(r=new WeakMap,tH.set(i,r));let o=r.get(e);if(o)return ej("positioned-scene","hit"),Y(e)&&!o.crossChecks&&(tz(t(e).family,o.scene,!0),o.crossChecks=!0),o.scene;ej("positioned-scene","miss");let a=t(e);if(!a.family.lowerScene)throw Error(`Resolved ${e.output} family has no Scene lowering`);let l="png"===e.output&&!1!==e.appearance.colors.embedFontImport?{...e.appearance.colors,embedFontImport:!1}:e.appearance.colors,s=Y(e),d=()=>a.family.lowerScene({positioned:i.positioned,colors:l,resolved:n(e)}),u=eR(a.textMeasurement,()=>tz(a.family,s||a.family.id.startsWith("family:")?d():w(d),s));return r.set(e,{scene:u,crossChecks:s}),u}function tZ(e,i){let r=t(e),o=Y(e)?"scene-assertions":r.family.id.startsWith("family:")?"external-family":r.backend&&!eo(r.backend.backend)?"alternate-backend":("layout"===r.mode?"default"===e.appearance.inferredBackend:"scene"===r.mode&&r.backend?.inputName==="default")?void 0:"unsupported-mode";!o&&"er"===r.family.id&&(to.get(i)?.nodes.length??0)>256&&(o="paint-proof-capacity");let a=o?void 0:d(r.family.lowerScene);if(a||(o??="no-native-producer"),o){ej("native-drawing","bypass",o),ez("native-drawing",o);return}let l=tK.get(i);l||(l=new WeakMap,tK.set(i,l));let s=l.get(e);if(s){if(ej("native-drawing","hit"),s.producer===d(r.family.lowerScene))return s.drawing;ej("native-drawing","bypass","changed-producer"),l.delete(e)}r.backend&&el(r.backend.conformance,r.backend.inputName);let f=e8(e,i,(a=d(r.family.lowerScene))===u(r.family.lowerScene));if(f){ej("native-drawing","hit",void 0,"positioned-owner");let t=a;if(t&&t===d(r.family.lowerScene)&&t===u(r.family.lowerScene))return l.set(e,{drawing:f,producer:t,certification:f.certification}),f;ej("native-drawing","bypass","changed-producer"),e8(e,i,!1),a=d(r.family.lowerScene)}if(ej("native-drawing","miss"),!(a=d(r.family.lowerScene))){ej("native-drawing","bypass","no-native-producer"),ez("native-drawing","no-native-producer");return}let h=a,p="png"===e.output&&!1!==e.appearance.colors.embedFontImport?{...e.appearance.colors,embedFontImport:!1}:e.appearance.colors,y=eR(r.textMeasurement,()=>{let t;return function(e,t,i,n){var r;let o,a,l,s,d,u,f,h,p,y,m,g,x,b,v={family:i,width:t.positioned.width,height:t.positioned.height,colors:t.colors,transparent:t.resolved.renderOptions.transparent??!1},k=(s=0,d=!1,u=!1,f=new Map,h=[],p=(e=1)=>!d&&(!Number.isSafeInteger(e)||e<0||e>4e5-s?(d=!0,!1):(s+=e,!0)),y=Symbol("unsupported-emission"),m=(e,t=0,i=new Set)=>{if(t>64)throw y;if(null==e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e)return e;if("object"!=typeof e||!p()||i.has(e))throw y;if(en(e))return e;let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&null!==n&&n!==Array.prototype)throw y;let r=Object.getOwnPropertyNames(e);if(!p(r.length))throw y;i.add(e);let o=Array.isArray(e)?[]:{},a,l=M(e);for(let n of r){if(!p())throw y;let r=Object.getOwnPropertyDescriptor(e,n);if(r){if("length"===n&&Array.isArray(e)){a=r;continue}if(!("terminalProjection"===n&&l)){if(!("value"in r))throw y;Object.defineProperty(o,n,{value:m(r.value,t+1,i),enumerable:r.enumerable,configurable:!1,writable:!1})}}}if(Array.isArray(e)){if(!a||!("value"in a))throw y;Object.defineProperty(o,"length",{value:a.value,writable:!1})}if(l){if(!p(3)||!O(e,o))throw y;let t=Object.getOwnPropertyDescriptor(o,"terminalProjection");Object.defineProperty(o,"terminalProjection",{...t,configurable:!1})}return er(e,o),i.delete(e),Object.preventExtensions(o)},g=e=>{try{return m(e)}catch{return}},x=(e,t)=>{if(!p())return!1;if("string"==typeof e&&"string"==typeof t)return p(e.length+t.length)&&e===t;if(e===t)return!0;if(!e||!t||"object"!=typeof e||"object"!=typeof t)return!1;let i=0,n=0;if(!p(2))return!1;let r=Object.getOwnPropertyNames(e),o=Object.getOwnPropertyNames(t);if(!p(r.length+o.length))return!1;for(let n of r){if(!p(3))return!1;let r=Object.getOwnPropertyDescriptor(e,n),o=Object.getOwnPropertyDescriptor(t,n);if(r&&(i++,!o||!("value"in r)||!("value"in o)||r.enumerable!==o.enumerable||!x(r.value,o.value)))return!1}for(let e of o){if(!p())return!1;Object.hasOwn(t,e)&&n++}return i===n},b=e=>{if(!p())return;if("string"==typeof e)return 6*e.length+2;if("number"==typeof e)return 32;if(!e||"object"!=typeof e)return 8;let t=64;if(!p())return;let i=Object.getOwnPropertyNames(e);if(p(i.length)){for(let n of i){if(!p(3))return;let i=Object.getOwnPropertyDescriptor(e,n);if(!i||!("value"in i))return;let r=b(i.value);if(void 0===r||!Number.isSafeInteger(t+=n.length+16+r)||t>4e5)return}return t}},{snapshot:g,same:x,retainFragment:()=>p(),parts(e,t){if(!p()||!Array.isArray(e))return u=!0,e;let i=Object.getOwnPropertyDescriptor(e,"length")?.value;if(!Number.isSafeInteger(i)||i<0||i>t)throw RangeError("Native drawing contains too many emitted nodes");if(!p(4*i))return u=!0,e;let n=[];for(let t=0;t<i;t++){let i=Object.getOwnPropertyDescriptor(e,String(t));i&&"value"in i?n.push(i.value):(u=!0,n.push(e[t]))}return Object.freeze(n)},uncertain(){u=!0},header(e,t){if(!p(8*t.length+128))return e;let i=eh(t).find(e=>"svg"===e.name);if(!i)return u=!0,e;let n=ev(e.width),r=ev(e.height),o=e$(i,"viewBox");for(let t of((void 0!==o?o!==`0 0 ${n} ${r}`:e$(i,"width")!==n||e$(i,"height")!==r)&&(u=!0),i.attributes)){if(!p())return e;["xmlns","width","height","viewBox","style","role","class","id"].includes(t.name)||t.name.startsWith("data-")||t.name.startsWith("aria-")||(u=!0)}let a=Object.freeze({...e,width:Number(n),height:Number(r)}),l=e.colors,s=e$(i,"style");if(void 0===s)return a;let d=new Set;for(let e of s.split(";")){if(!p(e.length+4))break;if(!e.trim())continue;let t=e.indexOf(":"),i=e.slice(0,t).trim(),n=e.slice(t+1).trim();if(t<0||d.has(i)){u=!0;continue}if(d.add(i),"background"!==i||"var(--bg)"!==n){if("--font"===i){p("string"==typeof l.font?4*l.font.length:1)&&eI(l.font)===n||(u=!0);continue}["bg","fg","line","accent","muted","surface","border","font"].some(e=>`--${e}`===i)&&l[i.slice(2)]===n||(u=!0)}}return a},group(e,t){let i=t&&z(t);if(p(3)){if(!i||i.open!==e.open||i.opacity!==e.paint?.opacity){u=!0;return}return(i.style||e.paint?.fill!==void 0)&&(u=!0),i.matrix}},observe(e,t){if(!p(2*(1+("connector"===e.kind?e.labels.length:0))))return!1;if("connector"===e.kind){let t=e=>{e&&p(2)&&h.push(e)};for(let i of(t(e.markers.start),e.markers.mid)){if(!p())break;t(i)}t(e.markers.end)}else if("document"===e.kind&&"definitions"===e.element){if(!p(8*t.length))return!1;for(let e of eh(t)){if(!p(e.attributes.length+1))break;if("marker"!==e.name)continue;let i=e$(e,"id"),n=t.indexOf("</marker>",e.end);if(!i||n<0||f.has(i)){u=!0;continue}let r=t.slice(e.start,n+9).replace(/(^|\n)[ \t]+(?=<)/g,"$1");if(!p(2))break;f.set(i,r)}}return!d},leaf(e){let t=g(e);return t?(j(e,t),{node:t,conditional:!1}):{node:e,conditional:!0}},finish(e,t){let i=new Map;for(let e of h){if(!p())break;try{if(!p(2))break;let t=i.get(e.id);if(t&&x(t,e))continue;let n=b(e);if(void 0===n||!p(2*n)){u=!0;break}let r=U(e,{indent:0}).replace(/(^|\n)[ \t]+(?=<)/g,"$1");p(3*r.length)&&f.get(e.id)===r?p(2)&&i.set(e.id,e):u=!0}catch{u=!0}}for(let t of e.primitives)"conditional"!==t.visibility&&tj.add(t);tF.set(e,Object.freeze({operations:s,exhausted:d,uncertain:u,header:t}))}});i.startsWith("family:")&&k.uncertain();let N=k.snapshot(v),S=X(v),F=new WeakSet,D=e=>(k.retainFragment()&&F.add(e),Object.freeze(e)),R=e=>{let t=k.leaf(e),i=S.node(t.node);return D({kind:"leaf",node:t.node,svg:i,conditional:t.conditional,nodeCount:1,depth:0,prepared:"document"===e.kind?!/<\s*text/i.test(i):"text"!==e.kind||"prepared"===e.measurement&&void 0!==e.block})},_={shape:e=>R(E(e)),text:e=>R(C(e)),connector:e=>R(P(e)),documentOpen:(e,t)=>{let n=k.snapshot(e);return n?(N=Object.freeze({family:i,width:n.width,height:n.height,colors:n.colors,transparent:n.transparent}),N=k.header(N,t)):k.uncertain(),R(T(e,t))},documentContent:(e,t)=>R(I(e,t)),documentText:e=>R(W(e)),definitions:(e,t)=>R(B(e,t)),documentClose:()=>R(L()),group(e){let t=Object.getOwnPropertyDescriptor(e,"children");t&&"value"in t||k.uncertain();let{children:i,...n}=e,r=k.parts(i,K.maxNodes),o=[],a=1,l=0,s=1,d=!0,u=[];for(let e of r){let t=Object.getOwnPropertyDescriptor(e,"node"),i=Object.getOwnPropertyDescriptor(e,"indent");t&&"value"in t&&i&&"value"in i||k.uncertain();let n=Object.freeze({node:e.node,indent:e.indent});o.push(n),F.has(n.node)||k.uncertain(),u.push(n.node),a+=n.node.nodeCount,l+=n.node.svg.length,s=Math.max(s,1+n.node.depth),d=d&&n.node.prepared}if(a>K.maxNodes)throw RangeError("Native drawing contains too many emitted nodes");if(l>K.maxSerializationBytesPerNode)throw RangeError("Native group has an oversized SVG serialization");let f=A({...n,children:[]});S.node(f),S.depth(s);let c=k.snapshot(f),h=c?k.group(c,f):void 0,p=c?.identity??{id:f.id,role:f.role};for(let e of u)"leaf"!==e.kind||"shape"!==e.node.kind||e.node.identity||S.enclosure(e.node.id,p);let y=[f.open];for(let e of o)y.push($(e.node.svg,e.indent));y.push(f.close);let m=y.join(f.join);return S.serialization(m),D({kind:"group",svg:m,children:Object.freeze(u),matrix:h,own:p,owner:c?.owner,conditional:!c||"conditional"===f.visibility,opacity:tv(c?.paint?.opacity),nodeCount:a,depth:s,prepared:!/<\s*text/i.test(f.open+f.close)&&d})},pathArtwork:e=>c(_,e)},G=w(()=>e(_,t));for(let e of["parts","family","width","height","colors","transparent"]){let t=Object.getOwnPropertyDescriptor(G,e);t&&"value"in t||k.uncertain()}let q=k.parts(G.parts,K.maxNodes);for(let e of q)F.has(e)||k.uncertain();let V=S.finish();if(!V.valid)throw new J(V.diagnostics);let H=0,Y=-1,Q=!0;for(let e of q)H+=e.nodeCount,Y+=e.svg.length+1,Q=Q&&e.prepared;if(H>K.maxNodes)throw RangeError("Native drawing contains too many emitted nodes");if(Y>K.maxFinalSvgBytes)throw RangeError("Native drawing exceeds the final SVG limit");let ee=ei(G,{seed:0,...n?{style:n}:{}}),et=q.map((e,t)=>0===t&&ee?`${e.svg}
1
+ import{a as e,b as t,c as i,d as n,e as r,f as o,g as a,h as l}from"./chunk-S2NMJ7E6.js";import{b as s,e as d,f as u}from"./chunk-NGGC5EHN.js";import{g as f}from"./chunk-WLQR46A6.js";import"./chunk-AT55WY2L.js";import{$ as c,A as h,B as p,C as y,D as m,E as g,F as x,G as b,H as v,I as k,J as w,K as M,L as O,M as N,N as S,O as $,P as j,Q as F,R as z,S as E,T as P,U as C,V as I,W as W,X as B,Y as L,Z as T,_ as A,b as D,c as R,ca as _,d as G,e as U,ea as q,f as V,ga as H,h as J,ha as K,ia as Y,ja as X,ka as Q,l as Z,ma as ee,n as et,pa as ei,q as en,r as er,ra as eo,sa as ea,ta as el,u as es,v as ed,w as eu,x as ef,y as ec}from"./chunk-Y7DUY2UU.js";import{$ as eh,A as ep,C as ey,D as em,G as eg,H as ex,U as eb,V as ev,W as ek,X as ew,Y as eM,ba as eO,ca as eN,d as eS,da as e$,e as ej,ea as eF,f as ez,fa as eE,ga as eP,ha as eC,ia as eI,p as eW,s as eB,u as eL,ua as eT,va as eA,wa as eD,x as eR}from"./chunk-O23VFGJM.js";import"./chunk-GC7IPQ5P.js";function e_(e,t){return e.match(RegExp(`\\b${t}\\s*=\\s*(["'])(.*?)\\1`,"i"))?.[2]}function eG(e,t){return e_(e,"style")?.match(RegExp(`(?:^|;)\\s*${t}\\s*:\\s*([^;]+)`,"i"))?.[1]?.trim()??e_(e,t)}function eU(e,t,i){let n=Number.parseFloat(eG(e,t)??"");return Number.isFinite(n)?n:i}function eq(e,t){let i=eG(e,"font-weight")?.trim().toLowerCase();if(void 0===i)return t;if("normal"===i)return 400;if("bold"===i)return 700;if("bolder"===i)return t<350?400:t<550?700:900;if("lighter"===i)return t<550?100:t<750?400:700;let n=Number.parseFloat(i);return Number.isFinite(n)?n:t}function eV(e){return e.children.filter(e=>"element"===e.kind)}function eH(e,t){var i;let n="b"===t.name||"strong"===t.name,r=e.mono||(i=t.attrs,/\bclass\s*=\s*(["'])[^"']*\bmono\b/i.test(i)||/(?:^|[,\s])monospace(?:[,\s]|$)/i.test(eG(i,"font-family")??""));return{size:eU(t.attrs,"font-size",e.size),weight:n?Math.max(700,eq(t.attrs,e.weight)):eq(t.attrs,e.weight),letterSpacing:eU(t.attrs,"letter-spacing",e.letterSpacing),mono:r,fontFamily:eG(t.attrs,"font-family")??(r&&!e.mono?void 0:e.fontFamily),fontStyle:"i"===t.name||"em"===t.name||"italic"===eG(t.attrs,"font-style")?"italic":"normal"===eG(t.attrs,"font-style")?"normal":e.fontStyle}}function eJ(e,t){return RegExp(`\\b${t}\\s*=`,"i").test(e)}function eK(e){return"tspan"===e.name&&["x","y","dx","dy"].some(t=>eJ(e.attrs,t))}var eY=new WeakMap,eX=0,eQ=new WeakMap,eZ=0,e0=new WeakMap,e1=new eB(128,8388608),e2=new eB(128,0x1000000,e=>{e1.delete(e)}),e5=new WeakSet;function e3(e,t){let i=eY.get(e);return void 0===i&&(i=eX++,eY.set(e,i)),`${i}:${t}`}function e6(e,t=!1){let i=structuredClone(e),n=new WeakSet,r=(e,i)=>{if(null===e||"object"!=typeof e||null===i||"object"!=typeof i)return i;if(t&&en(e))return e;if(n.has(e))return i;if(n.add(e),er(e,i),e instanceof Map&&i instanceof Map){let t=i.entries();for(let[n,o]of e){let[e,a]=t.next().value,l=r(n,e),s=r(o,a);i.delete(e),i.set(l,s)}}else if(e instanceof Set&&i instanceof Set){let t=i.values();for(let n of e){let e=t.next().value;i.delete(e),i.add(r(n,e))}}else for(let t of Object.keys(e))i[t]=r(e[t],i[t]);return i};return r(e,i)}function e8(e,t,i,n,r){let o={result:i,...n?{projection:n}:{}},a=2*t.length+ew([o,R(i)],0x1000000)+1024;if(a>0x1000000)return void ej("positioned-layout","store-skipped","weight-limit");let l=o;if(r){try{l=e6(o,!0)}catch(e){if(e instanceof Error&&"DataCloneError"===e.name)return void ej("positioned-layout","store-skipped","uncloneable");throw e}G(i,l.result)}r||eQ.set(l,{locallyRepeated:!1}),e2.set(e3(e,t),l,a),e5.add(l.result)}function e4(e,t,i){let n=e0.get(t);if(!i)return void e0.delete(t);if(!n||n.request!==e||e2.get(n.key)!==n.snapshot)return;let r=++eZ,o=eQ.get(n.snapshot);o.locallyRepeated=o.lastUse===r-1,o.lastUse=r;let a=e1.get(n.key);return a?.owner===n.snapshot?a.drawing:void 0}var e7=new Set(["rectangle","rounded","note","service","diamond","stadium","hexagon","cylinder"]),e9={journey:"x",sequence:"none",xychart:"center",quadrant:"center"};function te(e){return e.role?"box"===e.role:e7.has(e.shape)}function tt(e,t,i,n){return Number.isFinite(e)&&Number.isFinite(t)&&Number.isFinite(i)&&Number.isFinite(n)&&i>=0&&n>=0}function ti(e,t){let i=Math.min(e.x+e.w,t.x+t.w)-Math.max(e.x,t.x),n=Math.min(e.y+e.h,t.y+t.h)-Math.max(e.y,t.y);return i>.5&&n>.5}function tn(e,t,i="both"){let n="center"===i?t.x+t.w/2>=e.x-.5&&t.x+t.w/2<=e.x+e.w+.5:t.x>=e.x-.5&&t.x+t.w<=e.x+e.w+.5,r="x"===i||("center"===i?t.y+t.h/2>=e.y-.5&&t.y+t.h/2<=e.y+e.h+.5:t.y>=e.y-.5&&t.y+t.h<=e.y+e.h+.5);return n&&r}function tr(e,t,i){let n=t,r=new Set;for(;n?.parentId&&!r.has(n.id);){if(r.add(n.id),n.parentId===e.id)return!0;n=i.get(n.parentId)}return!1}var to=new WeakMap,ta=new WeakMap,tl=new WeakSet;function ts(e,i,n){if(D(e,{...i,role:n}),"agentic"!==i.requested||"elk"!==i.selected||tl.has(e))return;tl.add(e);let r={code:"INEFFECTIVE_CONFIG",field:"graphLayout.backend",message:`Agentic graph layout declined this input; using the requested ELK fallback: ${i.reason??"candidate rejected"}`};(t(e).onConfigDiagnostic??(e=>console.warn(e.message)))(r)}var td=new Set(["media","supports","container","layer","document"]),tu=new WeakSet,tf=new WeakMap,tc=new WeakMap;function th(e){return tc.get(e)??tf.get(e)}var tp=new WeakMap,ty=new WeakSet,tm=Object.freeze([1,0,0,1,0,0]);function tg(e){return tp.get(e)}function tx(e){return[e.x0,e.x1,e.y0,e.y1].every(Number.isFinite)&&e.x0<=e.x1&&e.y0<=e.y1}function tb(e){return"none"===e||"transparent"===e||!!e&&eW(e)?.[3]===0}function tv(e){if(void 0===e)return 1;let t=e.trim();if(!/^[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?$/.test(t))return NaN;let i=Number(t);return Number.isFinite(i)?Math.max(0,Math.min(1,i)):NaN}function tk(e,t){return 0===e||0===t?0:e*t}function tw(e,t){return e&&0!==Number(t.opacity??1)&&(!tb(t.fill)||void 0!==t.stroke&&!tb(t.stroke)&&0!==Number.parseFloat(t.strokeWidth??"1"))}function tM(e,t){return e?e.lineBlocks.some(e=>e.runs.some(e=>""!==e.text.trim())):""!==t.trim()}var tO=new WeakSet,tN=Object.freeze([]);function tS(e){return Object.freeze({id:e.id,role:e.role})}function t$(e,t,i=!1){let n=[],r={measured:0,unmeasured:0,nonPainting:0,preparedText:0,fallbackText:0};return{leaf:(e,o,a,l,s,d,u,f=void 0===a)=>{let c=u??e.owner??l.at(-1)??e.identity??{id:e.id,role:e.role},h=i?function(e){switch(e.kind){case"shape":return Object.freeze({kind:e.kind,geometry:e.geometry,paint:e.paint,...e.childPaints?{childPaints:e.childPaints}:{},...e.transform?{transform:e.transform}:{}});case"connector":return Object.freeze({kind:e.kind,lineStyle:e.lineStyle,endpoints:e.endpoints,route:e.route,stroke:e.stroke,markers:e.markers,...e.transform?{transform:e.transform}:{}});case"text":return Object.freeze({kind:e.kind,paint:e.paint});case"document":return Object.freeze({kind:e.kind})}}(e):void 0,p=0===d||("document"===e.kind?"content"!==e.element||void 0!==e.nonPaint||""===S(e).trim():"text"===e.kind?!tw(tM(e.block,e.text),e.paint):"connector"===e.kind?"invisible"===e.lineStyle:"shape"===e.kind&&!e.conditionalPaint&&[e.paint,...e.childPaints??[]].every(e=>void 0!==e.opacity&&0===Number(e.opacity)||tb(e.fill)&&(void 0===e.stroke||tb(e.stroke)))),[y,m,b,v,w,M]=a??es,O=a||e.transform?{kind:"matrix",a:y,b:m,c:b,d:v,e:w,f:M}:void 0,N=a||e.transform?Object.freeze(eu(a??es,ed(e.transform))):tm,$=p?void 0:k(e,O),j=!!$&&tx($),F=Object.freeze({key:o,id:e.id,kind:e.kind,role:e.role,owner:i&&l.includes(c)?c:tS(c),ancestors:l,order:n.length,coverage:p?"non-painting":j?"measured":"unmeasured",...s||"conditional"===e.visibility||!Number.isFinite(d)?{visibility:"conditional"}:{},...d<1?{groupOpacity:d}:{},...j?{bounds:Object.freeze($)}:{},...!p&&!j?{reason:"document"===e.kind?"opaque-visible-content":"missing-paint-geometry"}:{},..."text"===e.kind?{text:Object.freeze({measurement:e.measurement??"unavailable",...t?.(e.text,e.block,!0)})}:{}});h?tc.set(F,h):tf.set(F,e),tp.set(F,N),f&&!e.transform&&ty.add(F),n.push(F),p?r.nonPainting++:j?r.measured++:r.unmeasured++,"text"===e.kind&&!p&&("prepared"===e.measurement?r.preparedText++:r.fallbackText++),"connector"===e.kind&&e.labels.forEach((i,a)=>{if(i.visual?.kind!=="inline")return;let l={...i.paint,...i.halo?{stroke:i.halo.color??"var(--bg)",strokeWidth:String(i.halo.width)}:{}},s=0===d||!tw(tM(i.block,i.text),l),u=s?void 0:g(i),[f,c,p,y,m,b]=N,v=u&&x(u,{kind:"matrix",a:f,b:c,c:p,d:y,e:m,f:b}),k=!!v&&tx(v),w=Object.freeze({key:`${o}.label.${a}`,id:i.id??`${e.id}:label:${a}`,kind:"text",role:"label",owner:F.owner,ancestors:F.ancestors,order:n.length,coverage:s?"non-painting":k?"measured":"unmeasured",...F.visibility?{visibility:F.visibility}:{},...d<1?{groupOpacity:d}:{},...k?{bounds:Object.freeze(v)}:s?{}:{reason:"missing-inline-label-geometry"},text:Object.freeze({measurement:i.block?"prepared":"fallback",...t?.(i.text,i.block)})});h?tc.set(w,h):tf.set(w,e),tp.set(w,N),n.push(w),s?r.nonPainting++:(k?r.measured++:r.unmeasured++,i.block?r.preparedText++:r.fallbackText++)})},finish:()=>Object.freeze({version:1,family:e.family,bounds:Object.freeze({width:e.width,height:e.height}),primitives:Object.freeze(n),coverage:Object.freeze(r)})}}tO.add(tN);var tj=new WeakSet,tF=new WeakMap;function tz(e,t,i=Q()){let n=e.id.startsWith("family:"),r=ee(t,n?"external":"internal",i);if(!n&&!i)return r;let o=[];n&&r.family!==e.id&&o.push({code:"SCENE_DOCUMENT",path:"scene.family",message:`external family "${e.id}" emitted a document owned by "${r.family}"`});let a=new Set(e.semanticRoles),l=new Set(e.semanticChannels),s=new Map(e.scenePrimitiveEvidence.map(e=>[`${e.role}\0${e.primitive}`,e]));if(function e(t,i,n="scene.parts"){t.forEach((t,r)=>{let o=`${n}[${r}]`;i(t,o),"group"===t.kind&&e(t.children.map(e=>e.node),i,`${o}.children`)})}(r.parts,(e,t)=>{if(!a.has(e.role))return void o.push({code:"SCENE_PRIMITIVE_CLAIM",path:`${t}.role`,message:`emitted undeclared role "${e.role}"`});for(let i of Object.keys(e.channels??{}))l.has(i)||o.push({code:"SCENE_CHANNEL_CLAIM",path:`${t}.channels.${i}`,message:`emitted undeclared semantic channel "${i}"`});for(let i of _(e)){let n=s.get(`${e.role}\0${i}`);n&&"applicable"===n.applicability&&"unsupported"!==n.realization||o.push({code:"SCENE_PRIMITIVE_CLAIM",path:t,message:`emitted undeclared ${e.role}/${i} primitive`})}}),o.length>0)throw new K(Object.freeze(o));return r}function tE(e,t,i){let n=1;for(;n<e.length&&(i(),!(t(e[n-1],e[n])>0));n++);if(n>=e.length)return;i(e.length);let r=Math.floor(e.length/2),o=e.slice(0,r),a=e.slice(r);tE(o,t,i),tE(a,t,i);let l=0,s=0;for(let n=0;n<e.length;n++){i();let r=l<o.length&&s===a.length;l<o.length&&s<a.length&&(i(),r=!(t(o[l],a[s])>0)),e[n]=r?o[l++]:a[s++]}}function tP(e,t,i,n){let r=e=>{i?.(e.length+1);let o={x0:1/0,y0:1/0,x1:-1/0,y1:-1/0};for(let i of e){let e=t(i);o.x0=Math.min(o.x0,e.x0),o.y0=Math.min(o.y0,e.y0),o.x1=Math.max(o.x1,e.x1),o.y1=Math.max(o.y1,e.y1)}if(e.length<=8)return{bounds:o,leaves:e};let a=o.x1-o.x0>=o.y1-o.y0?"x0":"y0",l=(e,i)=>t(e)[a]-t(i)[a]||n?.(e,i)||0;i?tE(e,l,i):e.sort(l);let s=Math.floor(e.length/2);return{bounds:o,left:r(e.slice(0,s)),right:r(e.slice(s))}};return e.length?r(e):void 0}var tC=(e,t,i=0)=>e.x0<=t.x0+i&&e.y0<=t.y0+i&&e.x1>=t.x1-i&&e.y1>=t.y1-i,tI=(e,t)=>e.x0<t.x1&&t.x0<e.x1&&e.y0<t.y1&&t.y0<e.y1,tW=e=>({x0:e.x,y0:e.y,x1:e.x+e.w,y1:e.y+e.h}),tB=Symbol("paint query work limit");function tL(e,t,i){var n;let r,o,a,l=(e=1)=>{for(let i=0;i<e;i++)if(!t())throw tB},s=(n=e=>e.bounds,o=Math.ceil(Math.log2(Math.max(2,e.length))),a=e.length>8&&i>o*o,t=>{let i=[],o=e=>(l(),t.x0<e.x1&&t.x1>e.x0&&t.y0<e.y1&&t.y1>e.y0),s=e=>{if(o(e.bounds))if(e.leaves)for(let t of e.leaves)o(n(t))&&i.push(t);else s(e.left),s(e.right)};if(!r){if(!a){for(let t of e)o(n(t))&&i.push(t);return i}r=tP([...e],n,l)}return s(r),i});return e=>{try{let t=s(e);return tE(t,(e,t)=>e.index-t.index,l),t}catch(e){if(e!==tB)throw e;return[]}}}function tT(e,t){let i=tv(t.opacity),n=tv(t.fillOpacity),r=t.fill?eW(t.fill):null;return"line"!==e.kind&&"none"!==t.fill&&"transparent"!==t.fill&&!(i<1||n<1||r&&r[3]<1)}function tA(e,t){return 0!==tv(t.opacity)&&0!==tv(t.strokeOpacity)&&0!==v(t,["polygon","polyline","path","compound"].includes(e.kind))}function tD(e,t,i,n,r=0,o=()=>!0,a,l,s=!1){let d=th(e.primitive);if(d?.kind!=="shape")return!1;let u=ec(tg(e.primitive));if(!u)return!1;let{geometry:f,paint:c,childPaints:h}=d,p=(n??[{x:t.x0,y:t.y0},{x:t.x0,y:t.y1},{x:t.x1,y:t.y0},{x:t.x1,y:t.y1}]).map(e=>ef(e,u)),[y,m,g,x]=u,b=(Math.hypot(y+x,m-g)+Math.hypot(y-x,m+g))/2,k=r*b,w=l?ef(l,u):void 0,M=!1,O,N=[],S=(n,r=e.borderWidth??0,a=c,l=!0,y=e.bounds,m)=>{if(!o())return!1;if(!m&&N.includes(n)||m&&(m.x<y.x0||m.x>y.x1||m.y<y.y0||m.y>y.y1))return!0;let g=m?[ef(m,u)]:p,x=m?0:k,$=m?-1e-8:1e-8*!s,j=m?-1e-8:0;if("compound"===n.kind)return n===f&&n.children.length<=64&&n.children.every((t,i)=>"compound"!==t.kind&&S(t,e.partBorderWidths?.[i]??0,h?.[i]??c,e.partFilled?.[i]??!0,e.partBounds?.[i]??e.bounds,m));if(!l&&(0===tv(a.opacity)||0===tv(a.strokeOpacity)||0===v(a,"line"!==n.kind)))return!0;if("line"===n.kind){if(!m&&O&&w&&["butt","round","square"].includes(a.strokeLinecap??"butt")){if(!o())return!1;let e=n.x2-n.x1,t=n.y2-n.y1,i=w.x===n.x1&&w.y===n.y1?1:w.x===n.x2&&w.y===n.y2?-1:0;if(i&&Number.isFinite(e)&&Number.isFinite(t)&&(0!==e||0!==t)&&p.every(n=>{if(!o())return!1;let r=((n.x-w.x)*e+(n.y-w.y)*t)*i;return Number.isFinite(r)&&r<=0}))return S(n,r,a,l,y,O)}let e=v(a,!1);if(void 0===e)return!1;if(0===e)return!0;let t=e*("non-scaling-stroke"===a.vectorEffect?b:1);return g.every(e=>o()&&e.x+x<=Math.min(n.x1,n.x2)-t+j)||g.every(e=>o()&&e.x-x>=Math.max(n.x1,n.x2)+t-j)||g.every(e=>o()&&e.y+x<=Math.min(n.y1,n.y2)-t+j)||g.every(e=>o()&&e.y-x>=Math.max(n.y1,n.y2)+t-j)}let F=v(a,["polygon","polyline","path"].includes(n.kind));if(void 0===F)return!1;if(m)x=F*("non-scaling-stroke"===a.vectorEffect?b:1);else if(F>0&&0!==tv(a.opacity)&&0!==tv(a.strokeOpacity)&&!(i&&M&&r>0)&&tI(y,t))return!1;let z=!m&&i&&M?Math.max(0,r/2):0;if("rect"===n.kind){let t=Math.min(n.width/2,n.rx??n.ry??0),i=Math.min(n.height/2,n.ry??n.rx??0);if(t>0&&i>0){var E;let l=!d.transform&&(E=e.primitive,ty.has(E))&&u.every((e,t)=>e===[1,0,0,1,0,0][t])&&Number(ev(r))===r&&Number.parseFloat(ek("stroke-width",a.strokeWidth??"1"))===Number.parseFloat(a.strokeWidth??"1"),s=l&&Number(ev(n.x))===n.x&&Number(ev(n.width))===n.width,f=l&&Number(ev(n.y))===n.y&&Number(ev(n.height))===n.height;if(s&&(g.every(e=>o()&&e.x+x<=n.x+z+$)||g.every(e=>o()&&e.x-x>=n.x+n.width-z-$))||f&&(g.every(e=>o()&&e.y+x<=n.y+z+$)||g.every(e=>o()&&e.y-x>=n.y+n.height-z-$)))return!0;let c=n.x+n.width/2,h=n.y+n.height/2,p=n.width/2-t,y=n.height/2-i;for(let e of g){if(!o())break;let n=e.x-c,r=e.y-h,a=(n-Math.max(-p,Math.min(p,n)))/(t*t),l=(r-Math.max(-y,Math.min(y,r)))/(i*i),s=Math.hypot(a,l);if(!s)continue;let d=a/s,u=l/s,f=p*Math.abs(d)+y*Math.abs(u)+Math.hypot(t*d,i*u)-z+x;if(g.every(e=>o()&&(e.x-c)*d+(e.y-h)*u>=f-$))return!0}return!1}}if("ellipse"===n.kind||"circle"===n.kind){let e="circle"===n.kind?n.r:n.rx,t="circle"===n.kind?n.r:n.ry;if(!(e>0&&t>0))return!1;if("circle"===n.kind){let t=Math.max(Math.min(...g.map(e=>e.x)),Math.min(n.cx,Math.max(...g.map(e=>e.x)))),i=Math.max(Math.min(...g.map(e=>e.y)),Math.min(n.cy,Math.max(...g.map(e=>e.y))));if(Math.hypot(t-n.cx,i-n.cy)>=e-z+x-$)return!0}for(let i of g){if(!o())break;let r=(i.x-n.cx)/(e*e),a=(i.y-n.cy)/(t*t),l=Math.hypot(r,a);if(!l)continue;let s=r/l,d=a/l,u=Math.hypot(e*s,t*d)-z+x;if(g.every(e=>o()&&(e.x-n.cx)*s+(e.y-n.cy)*d>=u-$))return!0}return!1}let P="rect"===n.kind?[{x:n.x,y:n.y},{x:n.x+n.width,y:n.y},{x:n.x+n.width,y:n.y+n.height},{x:n.x,y:n.y+n.height}]:"polygon"===n.kind?n.points:void 0;if(!P||P.length<3||P.length>64)return!1;let C=(e,t,i)=>(t.x-e.x)*(i.y-e.y)-(t.y-e.y)*(i.x-e.x),I=Math.sign(P.reduce((e,t,i)=>{let n=P[(i+1)%P.length];return e+t.x*n.y-n.x*t.y},0));return!!I&&!!P.every((e,t)=>P.every(i=>o()&&I*C(e,P[(t+1)%P.length],i)>=-(m||s?0:1e-8)))&&P.some((e,t)=>{let i=P[(t+1)%P.length],n=Math.hypot(i.x-e.x,i.y-e.y);return n>0&&g.every(t=>o()&&I*C(e,i,t)<=(z-x+$)*n)})};if(i&&(O=a?.find(t=>o()&&S(f,e.borderWidth??0,c,!0,e.bounds,t))),(M=void 0!==O)&&w&&"compound"===f.kind&&u.every((e,t)=>e===[1,0,0,1,0,0][t])){let t=f.children[0];if(o()&&t?.kind==="rect"&&!t.rx&&!t.ry&&e.partFilled?.[0]&&0===v(h?.[0]??c,!1)){let i=w.x===t.x?1:2*(w.x===t.x+t.width),n=f.children[i],r=e.partOwnBorderWidths?.[i]??0;i&&n?.kind==="line"&&r>0&&n.x1===n.x2&&n.x1===w.x&&Math.min(n.y1,n.y2)===t.y&&Math.max(n.y1,n.y2)===t.y+t.height&&w.y>t.y&&w.y<t.y+t.height&&p.every(e=>o()&&(1===i?-1:1)*(e.x-n.x1)>=k-r/2)&&(N=[t,n])}}return S(f)}function tR(e,t){let i=e.marker.geometry;if("polygon"!==i.kind&&"polyline"!==i.kind)return;let n=i.points,r="polygon"===i.kind?n.length:n.length-2;for(let e=0;e<r;e++){for(let e=0;e<8;e++)if(!t())return;let r="polygon"===i.kind?e:e+1,o=n[(r+n.length-1)%n.length],a=n[r],l=n[(r+1)%n.length],s=a.x-o.x,d=a.y-o.y,u=l.x-a.x,f=l.y-a.y,c=Math.hypot(s,d),h=Math.hypot(u,f),p=s/c*(u/h)+d/c*(f/h);if(!(c>0)||!(h>0)||!Number.isFinite(p)||p<=-.875+128*Number.EPSILON)return}let o={},a;try{a=function(e,t,i,n,r,o){o?.();let a=e.geometry;if(!a)return[];let l="start"===n&&"auto-start-reverse"===e.orient?-1:1,s=Math.hypot(i.x,i.y);if(!s)return[];let d=l*i.x/s,u=l*i.y/s,f=e.viewBox,c=("userSpaceOnUse"===e.units?1:r)*Math.max(1,e.scale??1)*(f&&e.size?Math.min(e.size.width/f.width,e.size.height/f.height):1);if(!Number.isFinite(c))throw TypeError("Nonfinite Class marker scale");if(c<=0)return[];let h=i=>{o?.();let n=(i.x-(e.ref?.x??0))*c,r=(i.y-(e.ref?.y??0))*c;return{x:t.x+d*n-u*r,y:t.y+u*n+d*r}},p=e.paint??{},y=p.stroke&&"none"!==p.stroke&&"transparent"!==p.stroke?Number.parseFloat(p.strokeWidth??"1")/2:0,m=void 0!==p.fill&&"none"!==p.fill&&"transparent"!==p.fill;if("circle"===a.kind){let e=h({x:a.cx,y:a.cy});return[{kind:"circle",cx:e.x,cy:e.y,r:(a.r+y)*c}]}if("polygon"!==a.kind&&"polyline"!==a.kind)throw TypeError("Unmeasured Class marker geometry");let g=a.points,x=[];if(m&&"polygon"===a.kind){for(let e=0;e<g.length;e++)o?.();x.push([...g])}let b="polygon"===a.kind?g.length:g.length-1,v=(e,t)=>{o?.();let i=Math.hypot(t.x-e.x,t.y-e.y);return{x:(t.x-e.x)/i,y:(t.y-e.y)/i}};if(y>0){for(let e=0;e<b;e++){o?.();let t=g[e],i=g[(e+1)%g.length],n=v(t,i),r={x:-n.y*y,y:n.x*y};x.push([{x:t.x+r.x,y:t.y+r.y},{x:i.x+r.x,y:i.y+r.y},{x:i.x-r.x,y:i.y-r.y},{x:t.x-r.x,y:t.y-r.y}])}for(let e=+("polygon"!==a.kind);e<("polygon"===a.kind?g.length:g.length-1);e++){o?.();let t=g[e],i=g[(e-1+g.length)%g.length],n=g[(e+1)%g.length],r=v(i,t),a=v(t,n),l=r.x*a.y-r.y*a.x;if(!l)continue;let s=l>0?-1:1,d={x:t.x-s*r.y*y,y:t.y+s*r.x*y},u={x:t.x-s*a.y*y,y:t.y+s*a.x*y},f=((u.x-d.x)*a.y-(u.y-d.y)*a.x)/l,c={x:d.x+f*r.x,y:d.y+f*r.y};x.push(Math.hypot(c.x-t.x,c.y-t.y)<=Number(p.strokeMiterlimit??"4")*y?[t,d,c,u]:[t,d,u])}}let k=(e,t,i,n)=>{let r=[];for(let a=0;a<e.length;a++){o?.();let l=e[a],s=e[(a+1)%e.length],d=e=>n?e[t]>=i:e[t]<=i,u=d(l),f=d(s);if(u&&r.push(l),u!==f){let e=(i-l[t])/(s[t]-l[t]);r.push({x:l.x+e*(s.x-l.x),y:l.y+e*(s.y-l.y)})}}return r};return x.flatMap(t=>{if(o?.(),"hidden"===e.overflow&&f)for(let[e,i,n]of[["x",f.x,!0],["x",f.x+f.width,!1],["y",f.y,!0],["y",f.y+f.height,!1]])o?.(),t=k(t,e,i,n);let i=t[0],n=0;if(i)for(let e=0;e<t.length;e++){o?.();let r=t[e],a=t[(e+1)%t.length];n+=(r.x-i.x)*(a.y-i.y)-(r.y-i.y)*(a.x-i.x)}return t.length>=3&&0!==n?[{kind:"polygon",points:t.map(h)}]:[]})}(e.marker,e.anchor,e.tangent,e.position,e.width,()=>{if(!t())throw o})}catch(e){if(e===o)return;throw e}for(let e of a){if(!t()||"polygon"!==e.kind||e.points.length<3)return;let i=0;for(let n=0;n<e.points.length;n++){if(!t())return;let r=e.points[n],o=e.points[(n+1)%e.points.length];if(!Number.isFinite(r.x)||!Number.isFinite(r.y))return;i+=(r.x-e.points[0].x)*(o.y-e.points[0].y)-(r.y-e.points[0].y)*(o.x-e.points[0].x)}if(!Number.isFinite(i)||0===i)return}return a}function t_(e,t,i){if(!i())return"exhausted";let n=e=>e?.fill==="absent"&&"absent"===e.stroke&&(e.fillColor?.[3]===0||e.paintPieceSource?.marker.paint?.fill==="none");if(n(e)||n(t))return"clear";if(!e?.paintPieceSource||!t?.paintPieceSource)return"unknown";let r={},o=()=>{if(!i())throw r;return!0};try{let i=tR(e.paintPieceSource,o);if(i){let e=tR(t.paintPieceSource,o);if(e&&function(e,t,i){for(let n of e)for(let e of t){if(!i()||"polygon"!==n.kind||"polygon"!==e.kind)return!1;let t=!1;for(let r of[n.points,e.points]){for(let o=0;o<r.length;o++){if(!i())return!1;let a=r[o],l=r[(o+1)%r.length],s=a.y-l.y,d=l.x-a.x,u=Math.hypot(s,d);if(!(u>0)||!Number.isFinite(u))continue;let f=s/u,c=d/u,h=n.points[0],p=1/0,y=-1/0,m=1/0,g=-1/0,x=1;for(let e of n.points){if(!i())return!1;let t=(e.x-h.x)*f+(e.y-h.y)*c;p=Math.min(p,t),y=Math.max(y,t),x=Math.max(x,Math.abs(e.x),Math.abs(e.y))}for(let t of e.points){if(!i())return!1;let e=(t.x-h.x)*f+(t.y-h.y)*c;m=Math.min(m,e),g=Math.max(g,e),x=Math.max(x,Math.abs(t.x),Math.abs(t.y))}let b=1e-8+128*Number.EPSILON*x;if(Number.isFinite(p+y+m+g)&&(y+b<m||g+b<p)){t=!0;break}}if(t)break}if(!t)return!1}return!0}(i,e,o))return"clear"}}catch(e){if(e===r)return"exhausted";throw e}return"unknown"}var tG=new Set(["node","service","class-box","entity"]),tU=new Set([...tG,"group","note","actor","junction"]);function tq(e,t,i,n={}){let r,o,a=[],l=!1,s=!1,d=(e,t=!1)=>{a.length<64&&a.push(Object.freeze(e)),t?l=!0:s=!0},u=(e,t,i)=>d({code:"POTENTIAL_OCCLUSION",id:e,by:t,message:i}),f=(e,t,i=!1)=>d({code:"UNMEASURED_PAINT",id:e,message:t},i),c=e=>d({code:"OUTPUT_SCOPE",message:e}),g=tF.get(t);g&&e!==g.header&&(c("Retained emission is paired with a different document header"),e=g.header);let w=0,M=0,O=e.width,N=e.height,S=0;for(let e of t.primitives){if(!g&&tj.has(e)&&c("Native paint occurrences have no bound emission context"),"conditional"===e.visibility){S++;continue}"unmeasured"===e.coverage&&f(e.id,e.reason??"Paint geometry is unavailable"),e.text&&"non-painting"!==e.coverage&&"prepared"!==e.text.measurement&&d({code:"UNPREPARED_TEXT",id:e.id,message:"Text was not retained from layout preparation"});let t=e.bounds;t&&(w=Math.min(w,t.x0),M=Math.min(M,t.y0),O=Math.max(O,t.x1),N=Math.max(N,t.y1))}S&&d({code:"CONDITIONAL_PAINT",message:`${S} primitives depend on unresolved paint or interaction state`}),(!1===n.outputSupported||e.family.startsWith("family:"))&&c("Selected backend, style or external family has no native final-paint proof"),w=Math.min(0,w+1e-6),M=Math.min(0,M+1e-6),O=Math.max(e.width,O-1e-6),N=Math.max(e.height,N-1e-6);let $=w<0||M<0||O>e.width||N>e.height,j={x:Math.floor(w),y:Math.floor(M),width:Math.ceil(O)-Math.floor(w),height:Math.ceil(N)-Math.floor(M)};if($&&e.width>0&&e.height>0){let t=e.width/e.height;j.width/j.height>t?j.height=j.width/t:j.width=j.height*t}let F=Object.freeze($?j:{x:0,y:0,width:e.width,height:e.height}),z={x0:F.x,y0:F.y,x1:F.x+F.width,y1:F.y+F.height};$&&t.primitives.some(e=>{let t=th(e);return t?.kind==="connector"?t.stroke.nonScaling:(t?.kind==="shape"||t?.kind==="text")&&"non-scaling-stroke"===t.paint.vectorEffect})&&c("Viewport expansion changes the user-unit extent of non-scaling strokes; final painted containment is unverified");let E=0,P=(t,i,n)=>{if(E++,!i||!n)return void f(t,"Projected label has no retained occupied or available region");let r=tW(n);0===r.x0&&0===r.y0&&r.x1===e.width&&r.y1===e.height&&(r=z),tC(r,tW(i),.5)||d({code:"LABEL_CONTAINMENT",id:t,message:"Retained text extends beyond its declared available region"},!0)};if(i){for(let e of i.nodes)e.label?.trim()&&"hidden"!==e.labelVisibility&&"semantic"!==e.labelVisibility&&P(String(e.id),e.labelBounds,e.labelContainer);for(let e of i.labels??[])e.text.trim()&&"hidden"!==e.visibility&&"semantic"!==e.visibility&&P(e.id,e.bounds,e.container)}g?.uncertain&&c("Emitted document context or marker resource differs from retained paint evidence");let C=0,I=g?.operations??0,W=g?.exhausted??!1,B=()=>I>=4e5?(W=!0,!1):(I++,!0),L=(r=tP(function(e,t){let i=new Map,n=t=>{if(i.has(t))return i.get(t);let n=eA(t,e.colors),r=!!n&&eW(n)?.[3]===1;return i.set(t,r),r},r=e=>{if("non-scaling-stroke"===e.vectorEffect||!e.stroke||!n(e.stroke)||1!==Number(e.opacity??1)||1!==Number(e.strokeOpacity??1)||e.strokeDasharray)return 0;let t=Number(e.strokeWidth?.replace(/px$/,"")??1);return Number.isFinite(t)&&t>0?t:0},o=new Map,a=(e,t)=>JSON.stringify([e.owner,t,tg(e)]);for(let e of t){let t=th(e);if(t?.kind!=="shape"||"measured"!==e.coverage||"conditional"===e.visibility||void 0!==e.groupOpacity)continue;let i="compound"===t.geometry.kind?t.geometry.children:[t.geometry];for(let n=0;n<i.length;n++){let l=r("compound"===t.geometry.kind?t.childPaints?.[n]??t.paint:t.paint);l>0&&o.set(a(e,i[n]),l)}}let l=[];for(let e of t){let t=th(e);if(!t||"shape"!==t.kind||"conditional"===e.visibility||"measured"!==e.coverage||void 0!==e.groupOpacity)continue;let{geometry:i,paint:s,childPaints:d}=t,u="compound"===i.kind?i.children:void 0,f=u?void 0:i,c=u?.map((e,t)=>d?.[t]??s),p=u?void 0:s,y=u?.map((e,t)=>tT(e,c[t])),m=!u&&tT(f,p),g=u?.map((e,t)=>tA(e,c[t])),b=!u&&tA(f,p);if(!(y?y.some(Boolean):m)&&!(g?g.some(Boolean):b))continue;let w=tg(e),[M,O,N,S,$,j]=w,F={kind:"matrix",a:M,b:O,c:N,d:S,e:$,f:j},z,E=u?[]:void 0;for(let t=0,i=u?.length??1;t<i;t++){if(u&&!(t in u))continue;let i=u?u[t]:f,n=c?c[t]:p;if(!(y?y[t]:m)&&!(g?g[t]:b))continue;let r=k({kind:"shape",id:e.id,role:e.role,geometry:i,paint:n},F)??e.bounds;E&&(E[t]=r),z=h(z,r)}if(!z)continue;let P={primitive:e,bounds:z,borderWidth:o.get(a(e,i)),...u?{partBorderWidths:u.map(t=>o.get(a(e,t))??0),partOwnBorderWidths:c.map(r),partFilled:y,partBounds:E}:{}};if(Math.abs(w[1])>1e-12||Math.abs(w[2])>1e-12){l.push(P);continue}let C=[],I=[];for(let e=0,t=u?.length??1;e<t;e++){if(u&&!(e in u))continue;let t=u?u[e]:f,i=c?c[e]:p;if("rect"===t.kind&&1===w[0]&&1===w[3]&&0===w[1]&&0===w[2]&&"non-scaling-stroke"!==i.vectorEffect&&i.stroke&&n(i.stroke)&&1===tv(i.opacity)&&1===tv(i.strokeOpacity)&&!i.strokeDasharray&&void 0!==v(i,!1)){let e=Number.parseFloat(i.strokeWidth??"1")/2,n=Math.max(0,Math.min(t.width/2,t.rx??t.ry??0)),r=Math.max(0,Math.min(t.height/2,t.ry??t.rx??0));if(e>0)for(let i of[{x0:t.x-e,y0:t.y+r,x1:t.x+e,y1:t.y+t.height-r},{x0:t.x+t.width-e,y0:t.y+r,x1:t.x+t.width+e,y1:t.y+t.height-r},{x0:t.x+n,y0:t.y-e,x1:t.x+t.width-n,y1:t.y+e},{x0:t.x+n,y0:t.y+t.height-e,x1:t.x+t.width-n,y1:t.y+t.height+e}])i.x0<i.x1&&i.y0<i.y1&&I.push(x(i,F))}if(!(y?y[e]:m)||"rect"!==t.kind||1!==tv(i.opacity)||1!==tv(i.fillOpacity)||!i.fill||!n(i.fill))continue;let r=Math.min(t.width/2,t.rx??t.ry??0),o=Math.min(t.height/2,t.ry??t.rx??0),a=ef({x:t.x+r,y:t.y+o},w),l=ef({x:t.x+t.width-r,y:t.y+t.height-o},w);C.push({x0:Math.min(a.x,l.x),y0:Math.min(a.y,l.y),x1:Math.max(a.x,l.x),y1:Math.max(a.y,l.y)})}l.push({...P,interiors:C,strokeInteriors:I})}return l}(e,t.primitives),e=>e.bounds),o=e=>{if(!B())return-1/0;let t=-1/0;if(e.leaves)for(let i of e.leaves){if(!B())break;t=Math.max(t,i.primitive.order)}else t=Math.max(o(e.left),o(e.right));return e.lastOrder=t},r&&o(r),r),T=new Map,A=[],D=[];for(let e of t.primitives){if(!B())break;if("connector"===e.kind&&D.push(e),"text"!==e.kind||"measured"!==e.coverage||"conditional"===e.visibility||(A.push(e),!e.ancestors.length))continue;let t=T.get(e.ancestors);t?(t.bounds=h(t.bounds,e.bounds),t.order=Math.min(t.order,e.order),t.count++):T.set(e.ancestors,{bounds:e.bounds,order:e.order,count:1})}let R,_=e=>{if(!R)for(let e of(R=new Map,t.primitives)){if(W)break;for(let t of[e.owner,...e.ancestors]){if(!B())break;if(!tU.has(t.role))continue;let e=R.get(t.id)??new Set;e.add(t.role),R.set(t.id,e)}}return W||(R.get(e)?.size??0)>1},G=(e,t)=>{let i=!1;for(let[n,r]of[[e.endpoints.from,e.endpoints.start],[e.endpoints.to,e.endpoints.end]])if(n===t.id)if(r?.owner){if(r.owner.id!==n){i=!0;continue}if(r.owner.role===t.role)return"attached"}else{if(!_(n))return"attached";i=!0}return i?"ambiguous":"unrelated"},U=(e,t,i,n,r)=>{if(!(W||r&&(r.remaining--<=0||n.length>16)||!B()||!e||e.lastOrder<=i||!tI(e.bounds,t))){if(!e.leaves){U(e.left,t,i,n,r),U(e.right,t,i,n,r);return}for(let o of e.leaves)if(r&&r.remaining--<=0||!B()||o.primitive.order>i&&tI(o.bounds,t)&&(n.push(o),r&&n.length>16))return}};for(let e of A){let t=T.get(e.ancestors),i;if(t&&t.count>1&&t.count<=8&&null!==t.surfaces){if(!t.surfaces){i=[];let e={remaining:64};U(L,t.bounds,t.order,i,e),t.surfaces=e.remaining>=0&&i.length<=16?i:null}i=t.surfaces??void 0}for(let t of(i||(i=[],U(L,e.bounds,e.order,i)),i)){if(!B())break;if(!(t.primitive.order<=e.order||!tI(t.bounds,e.bounds))){if(++C>1e5){W=!0;break}t.interiors?.some(t=>B()&&tC(t,e.bounds))?d({code:"TEXT_OCCLUDED",id:e.id,by:t.primitive.id,message:`Retained text is fully covered by later opaque artwork owned by ${t.primitive.owner.id}`},!0):u(e.id,t.primitive.id,"Later filled artwork overlaps the occupied text band; its exact ink intersection is unverified")}}}let q=new Map;for(let t of D){if(!B())break;let i=th(t);if(i?.kind!=="connector"||!["edge","relationship"].includes(t.role)||"invisible"===i.lineStyle||"conditional"===t.visibility||"measured"!==t.coverage)continue;let r=Number.parseFloat(String(i.stroke.width)),o=Number(i.stroke.opacity??1);if(0===r||0===o||"none"===i.stroke.color||"transparent"===i.stroke.color)continue;if(!q.has(i.stroke.color)){let t=eA(i.stroke.color,e.colors);q.set(i.stroke.color,t?eW(t)?.[3]:void 0)}let a=q.get(i.stroke.color);if(0===a)continue;let l=!1!==n.outputSupported&&!e.family.startsWith("family:")&&!!i.endpoints?.from&&!!i.endpoints.to&&void 0!==a&&a>0&&r>0&&o>0&&!i.stroke.dash,s=tg(t),[c,h,m,g,k,w]=s,M={kind:"matrix",a:c,b:h,c:m,d:g,e:k,f:w},O=v({stroke:i.stroke.color,strokeWidth:String(i.stroke.width),strokeLinecap:i.stroke.lineCap,strokeLinejoin:i.stroke.lineJoin,strokeMiterlimit:String(i.stroke.miterLimit)},b(i.route));if(void 0===O){f(t.id,"Final connector stroke has no bounded cap/join extent");continue}let N=e=>{if(!B())return!1;let n=i.stroke.nonScaling?p(x(e.bounds,M),O):x(p(e.bounds,O),M),o=e.line?.map(e=>ef(e,s)),a=e=>{if(!(W||!B()||!e||!tI(e.bounds,n))){if(!e.leaves){a(e.left),a(e.right);return}for(let a of e.leaves){if(!B())return;if(++C>1e5){W=!0;return}let e=l&&"note"===a.primitive.role&&!!a.interiors?.length;if(!tG.has(a.primitive.role)&&!e||a.primitive.owner.id===t.owner.id&&a.primitive.owner.role===t.owner.role||!tI(a.bounds,n))continue;let f=G(i,a.primitive.owner);"attached"!==f&&(l&&o&&function(e,t,i,n,r,o,a){if(!a()||!o.every(Number.isFinite)||1!==o[0]||0!==o[1]||0!==o[2]||1!==o[3]||i.nonScaling||!["butt","round","square"].includes(i.lineCap??"butt")||!["miter","round","bevel"].includes(i.lineJoin??"miter")||!Number.isFinite(n)||n<=0||!Number.isFinite(r)||r<n/2)return!1;let[l,s]=e;if(![l.x,l.y,s.x,s.y].every(Number.isFinite)||l.x!==s.x&&l.y!==s.y||l.x===s.x&&l.y===s.y)return!1;let d=n/2,u={x0:Math.min(l.x,s.x)-d,y0:Math.min(l.y,s.y)-d,x1:Math.max(l.x,s.x)+d,y1:Math.max(l.y,s.y)+d};if(!a()||!Object.values(u).every(Number.isFinite)||tI(u,t))return!1;for(let i of e){if(!a())return!1;let e={x0:i.x-r,y0:i.y-r,x1:i.x+r,y1:i.y+r};if(!Object.values(e).every(Number.isFinite)||tI(e,t))return!1}return!0}(o,a.bounds,i.stroke,r,O,s,B)||(l&&"unrelated"===f&&o&&a.interiors?.some(e=>B()&&function(e,t){let[i,n]=e,r=0,o=1;for(let[e,a,l,s]of[[i.x,n.x-i.x,t.x0,t.x1],[i.y,n.y-i.y,t.y0,t.y1]])if(1e-12>Math.abs(a)){if(e<=l+1e-8||e>=s-1e-8)return!1}else{let t=(l-e)/a,i=(s-e)/a;r=Math.max(r,Math.min(t,i)),o=Math.min(o,Math.max(t,i))}return(o-r)*Math.hypot(n.x-i.x,n.y-i.y)>1e-8}(o,e))?d({code:"CONNECTOR_CARD_CROSSING",id:t.id,by:a.primitive.id,message:`Final connector shaft crosses opaque artwork owned by unrelated ${e?"note":"card"} ${a.primitive.owner.id}`},!0):u(t.id,a.primitive.id,e?"Final connector envelope intersects unrelated filled note artwork; actual route/note crossing is unverified":"Final connector envelope intersects unrelated filled card artwork; actual route/card crossing is unverified")))}}};return a(L),!W},S=i.route.geometry;if("path"===S.kind)y(S.d,N,B)||W||f(t.id,"Final connector segments could not be measured from typed path geometry");else{let e="line"===S.kind?[{x:S.x1,y:S.y1},{x:S.x2,y:S.y2}]:S.points;for(let t=1;t<e.length;t++){let i=e[t-1],n=e[t];if(!N({bounds:{x0:Math.min(i.x,n.x),y0:Math.min(i.y,n.y),x1:Math.max(i.x,n.x),y1:Math.max(i.y,n.y)},line:[i,n]}))break}}}let V=new Map,H,J=t=>(H??=eD())(t,e.colors);for(let t of D){let i=th(t);if("connector"!==t.kind||i?.kind!=="connector"||"invisible"===i.lineStyle||"non-painting"===t.coverage)continue;let r=ec(ed(i.transform));if(!r)continue;let[o,a,l,s,d,u]=eu(tg(t),r);for(let r of m(i,{kind:"matrix",a:o,b:a,c:l,d:s,e:d,f:u})){if(!r.bounds){f(t.id,"Endpoint marker has no painted footprint");continue}let o=JSON.stringify([t.owner.id,t.owner.role,r.position,r.resource,r.anchor,r.repaint]),a="number"==typeof i.stroke.width?Number.isFinite(i.stroke.width)&&i.stroke.width>0:/^\s*(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?(?:px)?\s*$/i.test(i.stroke.width)&&Number.parseFloat(i.stroke.width)>0,l="start"===r.position?i.markers.start:"end"===r.position?i.markers.end:1===i.markers.mid.length?i.markers.mid[0]:void 0,s="measured"===t.coverage&&!!ec(tg(t)),d=l?.units==="userSpaceOnUse"||a,u=V.get(o),c=!1!==n.outputSupported&&!e.family.startsWith("family:")&&(["edge","relationship"].includes(t.role)&&!!i.endpoints?.from&&!!i.endpoints.to||u?.semantic===!0),p=tg(t),g="measured"===t.coverage&&"conditional"!==t.visibility&&(t.groupOpacity??1)===1&&0===t.ancestors.length&&!!p&&1===p[0]&&0===p[1]&&0===p[2]&&1===p[3]&&0===p[4]&&0===p[5],x=c&&g&&d?function(e,t,i,n){let{position:r,anchor:o}=i;for(let e=0;e<18;e++)if(!n())return;if(!t||"mid"===r||e.transform||e.route.closed||e.stroke.nonScaling||"visible"===t.overflow||(t.scale??1)!==1||t.paint?.vectorEffect==="non-scaling-stroke"||void 0!==t.orient&&"auto"!==t.orient&&"auto-start-reverse"!==t.orient||!t.size||!t.ref||!(t.size.width>0)||!(t.size.height>0)||!Number.isFinite(t.size.width+t.size.height+t.ref.x+t.ref.y)||t.ref.y<0||t.ref.y>t.size.height||0!==t.ref.x&&t.ref.x!==t.size.width||t.viewBox&&(0!==t.viewBox.x||0!==t.viewBox.y||t.viewBox.width!==t.size.width||t.viewBox.height!==t.size.height))return;let a=e.route.geometry,l,s,d=(e,t)=>{if(!n()||!Number.isFinite(e)||!Number.isFinite(t))return!1;if(l){if(e!==l.x||t!==l.y)return s={x:e,y:t},!1}else l={x:e,y:t};return!0};if("line"===a.kind){if(!d("start"===r?a.x1:a.x2,"start"===r?a.y1:a.y2))return;d("start"===r?a.x2:a.x1,"start"===r?a.y2:a.y1)}else if("polyline"!==a.kind)return;else for(let e=0;e<a.points.length;e++){let t=a.points["start"===r?e:a.points.length-e-1];if(!d(t.x,t.y))break}if(!l||!s||l.x!==o.x||l.y!==o.y||l.x!==s.x&&l.y!==s.y)return;let u=e=>({x:Number(ev(e.x)),y:Number(ev(e.y))}),f=u(l),c=u(s),p=l.y===s.y;if(![f.x,f.y,c.x,c.y].every(Number.isFinite)||p&&(f.x!==l.x||f.y!==c.y||Math.sign(c.x-f.x)!==Math.sign(s.x-l.x))||!p&&(f.y!==l.y||f.x!==c.x||Math.sign(c.y-f.y)!==Math.sign(s.y-l.y)))return;let y=1;if("userSpaceOnUse"!==t.units){let t=String(e.stroke.width);if(!/^\s*(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?(?:px)?\s*$/i.test(t)||!((y=Number.parseFloat("number"==typeof e.stroke.width?ev(e.stroke.width):ek("stroke-width",e.stroke.width)))>0)||!Number.isFinite(y)||y!==Number.parseFloat(t))return}let g="start"===r?f:c,x="start"===r?c:f,b={x:x.x-g.x,y:x.y-g.y},v=m({route:{geometry:{kind:"line",x1:g.x,y1:g.y,x2:x.x,y2:x.y},closed:!1,contours:[{start:g,end:x,closed:!1,startTangent:b,endTangent:b}]},stroke:{width:y},markers:{mid:[],..."start"===r?{start:t}:{end:t}}})[0];if(!n()||!v?.bounds||!i.bounds)return;let k=h(i.bounds,v.bounds),w="end"===r||"auto-start-reverse"===t.orient?-1:1,M=0===t.ref.x?1:-1,O=Math.sign(s.x-l.x)*w*M,N=Math.sign(s.y-l.y)*w*M;if(!n())return;let S={x0:O>0?Math.max(k.x0,v.anchor.x):k.x0,y0:N>0?Math.max(k.y0,v.anchor.y):k.y0,x1:O<0?Math.min(k.x1,v.anchor.x):k.x1,y1:N<0?Math.min(k.y1,v.anchor.y):k.y1};return S.x0<=S.x1&&S.y0<=S.y1?{region:{...v,bounds:k},clipped:S}:void 0}(i,l,r,B):void 0,b=x?.region??r,k=s&&d?function(e,t,i,n){if(!e||!t||e.geometry?.kind!=="polygon"||(e.scale??1)>1||1!==tv(e.paint?.opacity)||1!==tv(e.paint?.fillOpacity)||!e.paint?.fill)return;let r=i(e.paint.fill);if(!r||eW(r)?.[3]!==1)return;let o=e.geometry.points;if(o.length<3||o.length>64||o.length!==t.length)return;let a=Math.sign(o.reduce((e,t,i)=>{let n=o[(i+1)%o.length];return e+t.x*n.y-n.x*t.y},0));if(!a||!o.every((e,t)=>o.every(i=>n()&&a*((o[(t+1)%o.length].x-e.x)*(i.y-e.y)-(o[(t+1)%o.length].y-e.y)*(i.x-e.x))>=0)))return;let l=e=>({x:e.reduce((e,t)=>e+t.x,0)/e.length,y:e.reduce((e,t)=>e+t.y,0)/e.length}),s=l(o),d=l(t),u=e.viewBox??(e.size?{x:0,y:0,width:e.size.width,height:e.size.height}:void 0),f=[];for(let i=-1,r=o.length;i<r;i++){if(!n())continue;let r=i<0?s:{x:(s.x+o[i].x)/2,y:(s.y+o[i].y)/2};("visible"===e.overflow||u&&r.x>u.x&&r.x<u.x+u.width&&r.y>u.y&&r.y<u.y+u.height)&&f.push(i<0?d:{x:(d.x+t[i].x)/2,y:(d.y+t[i].y)/2})}return f}(l,b.hull,J,B):void 0,w=s&&d&&l?.paint?.vectorEffect!=="non-scaling-stroke"&&function(e,t,i,n){if(t?.length)return!0;if(!e?.geometry||1!==tv(e.paint?.opacity))return!1;let r=e.viewBox??(e.size?{x:0,y:0,width:e.size.width,height:e.size.height}:void 0),o=t=>Number.isFinite(t.x)&&Number.isFinite(t.y)&&("visible"===e.overflow||!!r&&t.x>r.x&&t.x<r.x+r.width&&t.y>r.y&&t.y<r.y+r.height),a=e=>{if(!e||!n())return!1;let t=i(e);return!!t&&eW(t)?.[3]===1},l=e.geometry;if(1===tv(e.paint?.fillOpacity)&&a(e.paint?.fill)&&("circle"===l.kind&&l.r>0&&o({x:l.cx,y:l.cy})||"ellipse"===l.kind&&l.rx>0&&l.ry>0&&o({x:l.cx,y:l.cy})||"rect"===l.kind&&l.width>0&&l.height>0&&o({x:l.x+l.width/2,y:l.y+l.height/2})))return!0;if(1!==tv(e.paint?.strokeOpacity)||!a(e.paint?.stroke)||e.paint?.strokeDasharray||!(Number.parseFloat(e.paint?.strokeWidth??"1")>0)||void 0===v(e.paint??{},!0))return!1;let s=(e,t)=>n()&&Math.hypot(t.x-e.x,t.y-e.y)>0&&o({x:(e.x+t.x)/2,y:(e.y+t.y)/2});if("line"===l.kind)return s({x:l.x1,y:l.y1},{x:l.x2,y:l.y2});if("polygon"===l.kind||"polyline"===l.kind)return l.points.length<=64&&l.points.some((e,t)=>t>0&&s(l.points[t-1],e));if("path"===l.kind){let e=!1;return y(l.d,t=>(t.line&&s(t.line[0],t.line[1])&&(e=!0),n()),n)&&e}return!1}(l,k,J,B),M=function(e,t,i){if(!i()||!t)return!0;if(t.geometry?.kind==="line"||t.paint?.fill==="none"||t.paint?.fill==="transparent"||1>tv(t.paint?.opacity))return!1;let n=t.paint?.fill;if(!n||!i())return!0;let r=e(n),o=r?eW(r):null;return!o||1===o[3]}(J,l,B),O=c&&(t.groupOpacity??1)===1&&0===t.ancestors.length&&(!i.stroke.mixBlendMode||"normal"===i.stroke.mixBlendMode)?function(e,t,i){let n=e?.paint;if(!i()||!n||!Number.isFinite(tv(n.opacity))||void 0===v(n,!0)||void 0!==n.strokeDasharray&&"none"!==n.strokeDasharray||void 0!==n.strokeDashoffset||void 0!==n.paintOrder&&"normal"!==n.paintOrder||!n.fill||!n.stroke||!i())return;let r=t(n.fill);if(!r||"none"!==r&&!eW(r)||!i())return;let o=t(n.stroke);if(!(!o||"none"!==o&&!eW(o)))return`${r}\0${o}`}(l,J,B):void 0,N=c&&g?function(e,t,i,n,r,o){let a,l=e=>{for(let t=0;t<e;t++)if(!r())return!1;return!0};if(!l(3)||!i||"mid"===n||i.geometry?.kind!=="polygon"&&i.geometry?.kind!=="polyline"||i.geometry.points.length<3||i.geometry.points.length>64||t.transform||"polyline"===i.geometry.kind&&i.paint?.strokeLinecap!==void 0&&!["butt","round"].includes(i.paint.strokeLinecap)||t.route.closed||t.stroke.nonScaling||t.stroke.mixBlendMode&&"normal"!==t.stroke.mixBlendMode||(i.scale??1)!==1||i.paint?.vectorEffect==="non-scaling-stroke"||i.paint?.strokeLinejoin&&!["miter","round","bevel"].includes(i.paint.strokeLinejoin)||!i.size||!i.ref||!(i.size.width>0)||!(i.size.height>0)||!Number.isFinite(i.size.width+i.size.height+i.ref.x+i.ref.y)||i.viewBox&&(!(i.viewBox.width>0)||!(i.viewBox.height>0)||!Number.isFinite(i.viewBox.x+i.viewBox.y+i.viewBox.width+i.viewBox.height)))return;let s=String(t.stroke.width);if(!/^\s*(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?(?:px)?\s*$/i.test(s))return;let d=Number.parseFloat("number"==typeof t.stroke.width?ev(t.stroke.width):ek("stroke-width",t.stroke.width));if(!(d>0)||!Number.isFinite(d)||!l(12+5*i.geometry.points.length))return;let u=t.route.geometry,f,c,h=(e,t)=>{if(!r())return!1;let i={x:Number(ev(e)),y:Number(ev(t))};if(!Number.isFinite(i.x)||!Number.isFinite(i.y))return!1;if(f){if(i.x!==f.x||i.y!==f.y)return c=i,!1}else f=i;return!0};if("line"===u.kind)h("start"===n?u.x1:u.x2,"start"===n?u.y1:u.y2),h("start"===n?u.x2:u.x1,"start"===n?u.y2:u.y1);else if("polyline"!==u.kind)return;else for(let e=0;e<u.points.length;e++){let t=u.points["start"===n?e:u.points.length-e-1];if(!h(t.x,t.y))break}if(!f||!c||!r()||f.x!==c.x&&f.y!==c.y)return;let p=i.geometry.points,y="polygon"===i.geometry.kind?i:{...i,geometry:{kind:"polygon",points:p}},g="start"===n?{x:c.x-f.x,y:c.y-f.y}:{x:f.x-c.x,y:f.y-c.y},x="start"===n?f:c,b="start"===n?c:f,v={kind:"line",x1:x.x,y1:x.y,x2:b.x,y2:b.y},k=m({route:{...t.route,geometry:v,contours:[{start:x,end:b,closed:!1,startTangent:g,endTangent:g}]},stroke:{...t.stroke,width:d},markers:{mid:[],..."start"===n?{start:y}:{end:y}}})[0],w=k?.hull;if(!w||w.length!==p.length||!l(w.length))return;let M=0;for(let e=0;e<w.length;e++){let t=w[e],i=w[(e+1)%w.length];for(let e of w){if(!r())return;let n=(i.x-t.x)*(e.y-t.y)-(i.y-t.y)*(e.x-t.x);if(!Number.isFinite(n))return;if(n){if(M&&Math.sign(n)!==M)return;M||=Math.sign(n)}}}if(!M)return;let O=y.viewBox??(y.size?{x:0,y:0,...y.size}:void 0),N=e=>"visible"===y.overflow||!!O&&e.x>O.x&&e.x<O.x+O.width&&e.y>O.y&&e.y<O.y+O.height,S=i.paint??{},$=t=>{if(!t||!r())return;let i=o?o(t):eA(t,e.colors);return i?eW(i)??void 0:void 0},j=$(S.fill),F=$(S.stroke),z=tv(S.opacity),E="none"===S.fill||z<1||j&&j[3]<1?"absent":j?.[3]===1&&1===z&&p.every(e=>r()&&N(e))?"opaque":"unknown",P=void 0===S.stroke||"none"===S.stroke||0===z||F?.[3]===0,C=S.strokeWidth??"1",I=/^\s*(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?(?:px)?\s*$/i.test(C)?Number.parseFloat(C):void 0,W=("userSpaceOnUse"===y.units?1:d)*(y.viewBox&&y.size?Math.min(y.size.width/y.viewBox.width,y.size.height/y.viewBox.height):1),B=P?0:void 0!==I&&Number.isFinite(I*W)?I*W/2:void 0,L=P||0===I?"absent":void 0!==I&&I>0&&F?.[3]===1&&1===z&&!S.strokeDasharray?"visible":"unknown",T=[];if(!P&&void 0!==I&&I>0&&F?.[3]===1&&1===z&&!S.strokeDasharray){for(let e=0;e<p.length-("polyline"===i.geometry.kind);e++){let t=p[e],i=p[(e+1)%p.length];if(t.x!==i.x||t.y!==i.y)for(let n=1;n<4;n++){if(!l(3))return;let r=n/4;N({x:t.x*(1-r)+i.x*r,y:t.y*(1-r)+i.y*r})&&T.push({x:w[e].x*(1-r)+w[(e+1)%w.length].x*r,y:w[e].y*(1-r)+w[(e+1)%w.length].y*r})}}let e=+("polygon"!==i.geometry.kind),t=p.length-("polygon"!==i.geometry.kind);for(let i=e;i<t;i++){if(!l(2))return;let e=p[(i+p.length-1)%p.length],t=p[i],n=p[(i+1)%p.length];(e.x!==t.x||e.y!==t.y)&&(t.x!==n.x||t.y!==n.y)&&N(t)&&T.push(w[i])}}let A=!1;if("hidden"===i.overflow){if(!l(5))return;A=i.viewBox?.x===0&&0===i.viewBox.y&&i.viewBox.width===i.size.width&&i.viewBox.height===i.size.height}if(("visible"===i.overflow||A)&&(void 0===i.orient||"auto"===i.orient||"auto-start-reverse"===i.orient)&&"unknown"!==E&&"unknown"!==L&&1===z&&("polygon"===i.geometry.kind||"none"===S.fill||j?.[3]===0)&&!S.strokeDasharray&&(void 0===S.strokeLinecap||"butt"===S.strokeLinecap)&&(void 0===S.strokeLinejoin||"miter"===S.strokeLinejoin)&&(void 0===S.strokeMiterlimit||4===Number(S.strokeMiterlimit))){if(A&&!l(16))return;a={marker:A?{id:i.id,shape:i.shape,geometry:i.geometry,paint:i.paint,units:i.units,size:i.size,ref:i.ref,orient:i.orient,viewBox:i.viewBox,scale:i.scale,overflow:"visible"}:i,anchor:f,tangent:g,position:n,width:d}}return(!a||r())&&l(6)?{repaint:{resource:k.repaint,anchor:f,geometry:i.geometry.kind},hull:w,fill:E,stroke:L,fillColor:j,strokeColor:F,innerStroke:B,strokeWitnesses:T,padding:k.padding,...a?{paintPieceSource:a}:{}}:void 0}(e,i,l,r.position,B,J):void 0;V.set(o,{primitive:t,position:r.position,clipped:x?.clipped,anchor:b.anchor,repaint:b.repaint,bounds:b.bounds,hull:b.hull,padding:b.padding,witnesses:k,actualInk:w,strokeProof:N,paintIdentity:O,semantic:c,mayFill:M})}}let K=(e,t)=>{if("conditional"!==t.primitive.visibility&&!(W||!B()||!e||e.lastOrder<=t.primitive.order||!tI(e.bounds,t.bounds))){if(!e.leaves){K(e.left,t),K(e.right,t);return}for(let i of e.leaves){if(!B())return;if(i.primitive.order<=t.primitive.order||!tI(i.bounds,t.bounds))continue;if(++C>1e5){W=!0;return}if(t.actualInk&&(i.interiors?.some(e=>B()&&tC(e,t.bounds))||i.strokeInteriors?.some(e=>B()&&tC(e,t.bounds)))){d({code:"MARKER_OCCLUDED",id:t.primitive.id,by:i.primitive.id,message:"Endpoint marker is fully covered by later opaque artwork with no owned repaint"},!0);continue}let e=th(t.primitive),n=e?.kind==="connector"&&"attached"===G(e,i.primitive.owner);tD(i,t.bounds,n,t.hull,t.padding,B,t.witnesses,t.anchor)||t.clipped&&tD(i,t.clipped,n,void 0,0,B,t.witnesses,t.anchor,!0)||u(t.primitive.id,i.primitive.id,"Later filled artwork overlaps an endpoint marker; its exact ink intersection is unverified")}}},Y=Array.from(V.values());for(let e=0;e<Y.length;e++)K(L,Y[e]);let X=0,Q=0;for(let e of Y){if(!B())break;!e.semantic||"conditional"===e.primitive.visibility||(X++,e.strokeProof?.fill==="absent"&&"absent"===e.strokeProof.stroke||Q++)}let Z=Q>Math.ceil(Math.log2(t.primitives.length+1))**2,ee=X>Math.ceil(Math.log2(X+1))**2,et=[];if(Z)for(let[e,i]of t.primitives.entries()){if(!B())break;"text"===i.kind&&"measured"===i.coverage&&"conditional"!==i.visibility&&i.bounds&&et.push({primitive:i,bounds:i.bounds,index:e})}let ei=Z?tL(et,B,Q):void 0,en=[];if(ee)for(let[e,t]of Y.entries()){if(!B())break;t.semantic&&"conditional"!==t.primitive.visibility&&en.push({primitive:t.primitive,bounds:t.bounds,target:t,index:e})}let er=ee?tL(en,B,X):void 0;for(let e=0;e<Y.length;e++){let i=Y[e];if(!B())break;if(i.semantic&&"conditional"!==i.primitive.visibility&&(i.strokeProof?.fill!=="absent"||"absent"!==i.strokeProof.stroke))for(let e of ei?ei(i.bounds).map(e=>e.primitive):t.primitives){if(!B())break;if("text"!==e.kind||"measured"!==e.coverage||"conditional"===e.visibility||!e.bounds||!tI(e.bounds,i.bounds))continue;if(++C>1e5){W=!0;break}let t=i.primitive.order>e.order;u(t?e.id:i.primitive.id,t?i.primitive.id:e.id,t?"Later endpoint-marker ink overlaps occupied text; actual text visibility is unverified.":"Later occupied text or its halo overlaps an endpoint marker; actual marker ink visibility is unverified.")}}for(let e=0;e<Y.length;e++){let i=Y[e];if(W)break;if(i.semantic&&"conditional"!==i.primitive.visibility)for(let e of er?er(i.bounds).map(e=>e.target):Y){if(!B())break;let n=i.strokeProof?.repaint,r=e.strokeProof?.repaint,o=void 0!==i.paintIdentity&&i.paintIdentity===e.paintIdentity;if(!e.semantic||"conditional"===e.primitive.visibility||e.primitive.order<=i.primitive.order||o&&(i.anchor.x===e.anchor.x&&i.anchor.y===e.anchor.y&&i.repaint===e.repaint||n&&r&&n.resource===r.resource&&n.geometry===r.geometry&&n.anchor.x===r.anchor.x&&n.anchor.y===r.anchor.y)||!tI(i.bounds,e.bounds))continue;if(++C>1e5){W=!0;break}let a=0,l="unknown";for(;!W;){let n=e.mayFill?function(e,t,i,n=0){if(!i()||!Number.isSafeInteger(n)||n<0)return"unknown";if(t?.fill==="absent"||e?.stroke==="absent"&&"absent"===e.fill)return"clear";if(!e||!t)return"unknown";let r=t.hull;if(void 0!==e.innerStroke){let t=0;for(let n=0;n<e.hull.length;n++){if(!i())return"unknown";let r=e.hull[n],o=e.hull[(n+1)%e.hull.length],a=e.hull[(n+2)%e.hull.length],l=(o.x-r.x)*(a.y-o.y)-(o.y-r.y)*(a.x-o.x);if(l){t=Math.sign(l);break}}if(t)for(let n=0;n<e.hull.length;n++){if(!i())return"unknown";let o=e.hull[n],a=e.hull[(n+1)%e.hull.length],l=a.x-o.x,s=a.y-o.y,d=Math.hypot(l,s);if(!d)continue;let u=!0;for(let n of r){if(!i())return"unknown";let r=t*(l*(n.y-o.y)-s*(n.x-o.x))/d,f=1e-8+64*Number.EPSILON*Math.max(1,Math.abs(n.x),Math.abs(n.y),Math.abs(o.x),Math.abs(o.y),Math.abs(a.x),Math.abs(a.y));if(!Number.isFinite(r)||r>=-e.innerStroke-f){u=!1;break}}if(u)return"clear"}}if(void 0!==e.padding&&Number.isFinite(e.padding))for(let t of[e.hull,r])for(let n=0;n<t.length;n++){if(!i())return"unknown";let o=t[n],a=t[(n+1)%t.length],l=a.y-o.y,s=o.x-a.x,d=Math.hypot(l,s);if(!d)continue;let u=1/0,f=-1/0,c=1/0,h=-1/0;for(let t of e.hull){if(!i())return"unknown";let e=(t.x-o.x)*l+(t.y-o.y)*s;u=Math.min(u,e),f=Math.max(f,e)}for(let e of r){if(!i())return"unknown";let t=(e.x-o.x)*l+(e.y-o.y)*s;c=Math.min(c,t),h=Math.max(h,t)}if(f+e.padding*d<c||h<u-e.padding*d)return"clear"}if(e.paintPieceSource&&t.paintPieceSource){let n=t_(e,t,i);if("clear"===n)return"clear";if("exhausted"===n)return"unknown"}if("visible"!==e.stroke||"opaque"!==t.fill||void 0===t.innerStroke||!e.strokeColor||!t.fillColor)return"unknown";let o=!0;for(let n=0;n<3;n++){if(!i())return"unknown";e.strokeColor[n]!==t.fillColor[n]&&(o=!1)}if(o)return"unknown";for(let o=n;o<e.strokeWitnesses.length&&i();o++){let n=e.strokeWitnesses[o],a=0,l=!0;for(let e=0;e<r.length;e++){if(!i())return"unknown";let o=r[e],s=r[(e+1)%r.length],d=s.x-o.x,u=s.y-o.y,f=Math.hypot(d,u),c=d*(n.y-o.y)-u*(n.x-o.x),h=1e-8+64*Number.EPSILON*Math.max(1,Math.abs(n.x),Math.abs(n.y),Math.abs(o.x),Math.abs(o.y),Math.abs(s.x),Math.abs(s.y));if(!Number.isFinite(c)||!f||Math.abs(c)/f<=t.innerStroke+h||a&&Math.sign(c)!==a){l=!1;break}a||=Math.sign(c)}if(l&&a)return n}return"unknown"}(i.strokeProof,e.strokeProof,B,a):t_(i.strokeProof,e.strokeProof,B);if("exhausted"===n&&(n="unknown"),"string"==typeof n){l=n;break}let r=!1,o=t.primitives;for(let t=0;t<o.length;t++){let i=o[t];if(!B())break;let a=i.bounds;if(i.order<=e.primitive.order||"non-painting"===i.coverage)continue;if(!a){r=!0;break}if(a.x0>n.x||n.x>a.x1||a.y0>n.y||n.y>a.y1)continue;let l=th(i);if(l?.kind==="connector"&&0===Number(l.stroke.opacity)){let e=!1;for(let t=0;t<Y.length;t++){let r=Y[t];if(!B())break;if(!(r.primitive.order!==i.order||r.bounds.x0>n.x||n.x>r.bounds.x1||r.bounds.y0>n.y||n.y>r.bounds.y1)&&!function(e,t,i){if(!e||void 0===e.innerStroke)return!1;let n=e.hull,r=0;for(let e=0;e<n.length;e++){if(!i())return!1;let t=n[e],o=n[(e+1)%n.length],a=n[(e+2)%n.length],l=(o.x-t.x)*(a.y-o.y)-(o.y-t.y)*(a.x-o.x);if(l){r=Math.sign(l);break}}if(!r)return!1;for(let o=0;o<n.length&&i();o++){let i=n[o],a=n[(o+1)%n.length],l=a.x-i.x,s=a.y-i.y,d=Math.hypot(l,s),u=r*(l*(t.y-i.y)-s*(t.x-i.x))/d,f=1e-8+64*Number.EPSILON*Math.max(1,Math.abs(t.x),Math.abs(t.y),Math.abs(i.x),Math.abs(i.y),Math.abs(a.x),Math.abs(a.y));if(Number.isFinite(u)&&u<-e.innerStroke-f)return!0}return!1}(r.strokeProof,n,B)){e=!0;break}}if(!e&&!W)continue}r=!0;break}if(!r&&!W){l="covered";break}let s=i.strokeProof.strokeWitnesses,d=!1;for(;a<s.length&&B();a++)if(s[a]===n){a++,d=!0;break}if(!d)break}"covered"!==l||W?"unknown"===l&&u(i.primitive.id,e.primitive.id,"Distinct endpoint-marker envelopes overlap; actual marker ink separation is unverified."):d({code:"MARKER_OCCLUDED",id:i.primitive.id,by:e.primitive.id,message:"Later opaque endpoint-marker fill covers actual stroke ink of a distinct marker."},!0)}}for(let e of(W&&d({code:"CHECK_BUDGET",message:"Occlusion checking reached its 100000-pair or 400000-operation limit"}),t.primitives))e.bounds&&"conditional"!==e.visibility&&!tC(z,e.bounds,1e-6)&&f(e.id,"Final viewport does not contain retained paint",!0);for(let e of Y)"conditional"===e.primitive.visibility||tC(z,e.bounds,1e-6)||f(e.primitive.id,"Final viewport does not contain serialized marker paint",!0);return Object.freeze({version:1,unit:"px",scope:"native-scene",status:l?"failed":s?"unverified":"passed",viewport:F,attempts:$?2:1,repairs:Object.freeze($?["expand-viewport"]:[]),coverage:Object.freeze({measured:t.coverage.measured,unmeasured:t.coverage.unmeasured,preparedText:t.coverage.preparedText,fallbackText:t.coverage.fallbackText,conditional:S}),checks:Object.freeze({primitives:t.primitives.length,labels:E,occlusionPairs:Math.min(C,1e5),maxOcclusionPairs:1e5,operations:I,maxOperations:4e5,markers:V.size}),issues:Object.freeze(a),limitations:Object.freeze(["Prepared occupied text regions bound native geometry; exact glyph ink depends on the resolved font.","Declared transparency, intentional data-mark overlap and externally modified CSS are outside this proof."])})}var tV=class extends Error{constructor(e){super(`Final paint certification failed: ${e.issues.map(e=>`${e.id??"scene"}: ${e.message}`).join("; ")}`),this.certification=e,this.name="PaintLayoutCertificationError"}certification;code="PAINT_LAYOUT_CERTIFICATION_FAILED"},tH=new WeakMap,tJ=new WeakMap;function tK(e,i){let r=tJ.get(i);r||(r=new WeakMap,tJ.set(i,r));let o=r.get(e);if(o)return ej("positioned-scene","hit"),Q(e)&&!o.crossChecks&&(tz(t(e).family,o.scene,!0),o.crossChecks=!0),o.scene;ej("positioned-scene","miss");let a=t(e);if(!a.family.lowerScene)throw Error(`Resolved ${e.output} family has no Scene lowering`);let l="png"===e.output&&!1!==e.appearance.colors.embedFontImport?{...e.appearance.colors,embedFontImport:!1}:e.appearance.colors,s=Q(e),d=()=>a.family.lowerScene({positioned:i.positioned,colors:l,resolved:n(e)}),u=eR(a.textMeasurement,()=>tz(a.family,s||a.family.id.startsWith("family:")?d():w(d),s));return r.set(e,{scene:u,crossChecks:s}),u}function tY(e,i){let r=t(e),o=Q(e)?"scene-assertions":r.family.id.startsWith("family:")?"external-family":r.backend&&!eo(r.backend.backend)?"alternate-backend":("layout"===r.mode?"default"===e.appearance.inferredBackend:"scene"===r.mode&&r.backend?.inputName==="default")?void 0:"unsupported-mode";!o&&"er"===r.family.id&&(to.get(i)?.nodes.length??0)>256&&(o="paint-proof-capacity");let a=o?void 0:d(r.family.lowerScene);if(a||(o??="no-native-producer"),o){ej("native-drawing","bypass",o),ez("native-drawing",o);return}let l=tH.get(i);l||(l=new WeakMap,tH.set(i,l));let s=l.get(e);if(s){if(ej("native-drawing","hit"),s.producer===d(r.family.lowerScene))return s.drawing;ej("native-drawing","bypass","changed-producer"),l.delete(e)}r.backend&&el(r.backend.conformance,r.backend.inputName);let f=e4(e,i,(a=d(r.family.lowerScene))===u(r.family.lowerScene));if(f){ej("native-drawing","hit",void 0,"positioned-owner");let t=a;if(t&&t===d(r.family.lowerScene)&&t===u(r.family.lowerScene))return l.set(e,{drawing:f,producer:t,certification:f.certification}),f;ej("native-drawing","bypass","changed-producer"),e4(e,i,!1),a=d(r.family.lowerScene)}if(ej("native-drawing","miss"),!(a=d(r.family.lowerScene))){ej("native-drawing","bypass","no-native-producer"),ez("native-drawing","no-native-producer");return}let h=a,p="png"===e.output&&!1!==e.appearance.colors.embedFontImport?{...e.appearance.colors,embedFontImport:!1}:e.appearance.colors,y=eR(r.textMeasurement,()=>{let t;return function(e,t,i,n){var r;let o,a,l,s,d,u,f,h,p,y,m,g,x,b,v={family:i,width:t.positioned.width,height:t.positioned.height,colors:t.colors,transparent:t.resolved.renderOptions.transparent??!1},k=(s=0,d=!1,u=!1,f=new Map,h=[],p=(e=1)=>!d&&(!Number.isSafeInteger(e)||e<0||e>4e5-s?(d=!0,!1):(s+=e,!0)),y=Symbol("unsupported-emission"),m=(e,t=0,i=new Set)=>{if(t>64)throw y;if(null==e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e)return e;if("object"!=typeof e||!p()||i.has(e))throw y;if(en(e))return e;let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&null!==n&&n!==Array.prototype)throw y;let r=Object.getOwnPropertyNames(e);if(!p(r.length))throw y;i.add(e);let o=Array.isArray(e)?[]:{},a,l=M(e);for(let n of r){if(!p())throw y;let r=Object.getOwnPropertyDescriptor(e,n);if(r){if("length"===n&&Array.isArray(e)){a=r;continue}if(!("terminalProjection"===n&&l)){if(!("value"in r))throw y;Object.defineProperty(o,n,{value:m(r.value,t+1,i),enumerable:r.enumerable,configurable:!1,writable:!1})}}}if(Array.isArray(e)){if(!a||!("value"in a))throw y;Object.defineProperty(o,"length",{value:a.value,writable:!1})}if(l){if(!p(3)||!O(e,o))throw y;let t=Object.getOwnPropertyDescriptor(o,"terminalProjection");Object.defineProperty(o,"terminalProjection",{...t,configurable:!1})}return er(e,o),i.delete(e),Object.preventExtensions(o)},g=e=>{try{return m(e)}catch{return}},x=(e,t)=>{if(!p())return!1;if("string"==typeof e&&"string"==typeof t)return p(e.length+t.length)&&e===t;if(e===t)return!0;if(!e||!t||"object"!=typeof e||"object"!=typeof t)return!1;let i=0,n=0;if(!p(2))return!1;let r=Object.getOwnPropertyNames(e),o=Object.getOwnPropertyNames(t);if(!p(r.length+o.length))return!1;for(let n of r){if(!p(3))return!1;let r=Object.getOwnPropertyDescriptor(e,n),o=Object.getOwnPropertyDescriptor(t,n);if(r&&(i++,!o||!("value"in r)||!("value"in o)||r.enumerable!==o.enumerable||!x(r.value,o.value)))return!1}for(let e of o){if(!p())return!1;Object.hasOwn(t,e)&&n++}return i===n},b=e=>{if(!p())return;if("string"==typeof e)return 6*e.length+2;if("number"==typeof e)return 32;if(!e||"object"!=typeof e)return 8;let t=64;if(!p())return;let i=Object.getOwnPropertyNames(e);if(p(i.length)){for(let n of i){if(!p(3))return;let i=Object.getOwnPropertyDescriptor(e,n);if(!i||!("value"in i))return;let r=b(i.value);if(void 0===r||!Number.isSafeInteger(t+=n.length+16+r)||t>4e5)return}return t}},{snapshot:g,same:x,retainFragment:()=>p(),parts(e,t){if(!p()||!Array.isArray(e))return u=!0,e;let i=Object.getOwnPropertyDescriptor(e,"length")?.value;if(!Number.isSafeInteger(i)||i<0||i>t)throw RangeError("Native drawing contains too many emitted nodes");if(!p(4*i))return u=!0,e;let n=[];for(let t=0;t<i;t++){let i=Object.getOwnPropertyDescriptor(e,String(t));i&&"value"in i?n.push(i.value):(u=!0,n.push(e[t]))}return Object.freeze(n)},uncertain(){u=!0},header(e,t){if(!p(8*t.length+128))return e;let i=eh(t).find(e=>"svg"===e.name);if(!i)return u=!0,e;let n=ev(e.width),r=ev(e.height),o=e$(i,"viewBox");for(let t of((void 0!==o?o!==`0 0 ${n} ${r}`:e$(i,"width")!==n||e$(i,"height")!==r)&&(u=!0),i.attributes)){if(!p())return e;["xmlns","width","height","viewBox","style","role","class","id"].includes(t.name)||t.name.startsWith("data-")||t.name.startsWith("aria-")||(u=!0)}let a=Object.freeze({...e,width:Number(n),height:Number(r)}),l=e.colors,s=e$(i,"style");if(void 0===s)return a;let d=new Set;for(let e of s.split(";")){if(!p(e.length+4))break;if(!e.trim())continue;let t=e.indexOf(":"),i=e.slice(0,t).trim(),n=e.slice(t+1).trim();if(t<0||d.has(i)){u=!0;continue}if(d.add(i),"background"!==i||"var(--bg)"!==n){if("--font"===i){p("string"==typeof l.font?4*l.font.length:1)&&eI(l.font)===n||(u=!0);continue}["bg","fg","line","accent","muted","surface","border","font"].some(e=>`--${e}`===i)&&l[i.slice(2)]===n||(u=!0)}}return a},group(e,t){let i=t&&z(t);if(p(3)){if(!i||i.open!==e.open||i.opacity!==e.paint?.opacity){u=!0;return}return(i.style||e.paint?.fill!==void 0)&&(u=!0),i.matrix}},observe(e,t){if(!p(2*(1+("connector"===e.kind?e.labels.length:0))))return!1;if("connector"===e.kind){let t=e=>{e&&p(2)&&h.push(e)};for(let i of(t(e.markers.start),e.markers.mid)){if(!p())break;t(i)}t(e.markers.end)}else if("document"===e.kind&&"definitions"===e.element){if(!p(8*t.length))return!1;for(let e of eh(t)){if(!p(e.attributes.length+1))break;if("marker"!==e.name)continue;let i=e$(e,"id"),n=t.indexOf("</marker>",e.end);if(!i||n<0||f.has(i)){u=!0;continue}let r=t.slice(e.start,n+9).replace(/(^|\n)[ \t]+(?=<)/g,"$1");if(!p(2))break;f.set(i,r)}}return!d},leaf(e){let t=g(e);return t?(j(e,t),{node:t,conditional:!1}):{node:e,conditional:!0}},finish(e,t){let i=new Map;for(let e of h){if(!p())break;try{if(!p(2))break;let t=i.get(e.id);if(t&&x(t,e))continue;let n=b(e);if(void 0===n||!p(2*n)){u=!0;break}let r=q(e,{indent:0}).replace(/(^|\n)[ \t]+(?=<)/g,"$1");p(3*r.length)&&f.get(e.id)===r?p(2)&&i.set(e.id,e):u=!0}catch{u=!0}}for(let t of e.primitives)"conditional"!==t.visibility&&tj.add(t);tF.set(e,Object.freeze({operations:s,exhausted:d,uncertain:u,header:t}))}});i.startsWith("family:")&&k.uncertain();let N=k.snapshot(v),S=X(v),F=new WeakSet,D=e=>(k.retainFragment()&&F.add(e),Object.freeze(e)),R=e=>{let t=k.leaf(e),i=S.node(t.node);return D({kind:"leaf",node:t.node,svg:i,conditional:t.conditional,nodeCount:1,depth:0,prepared:"document"===e.kind?!/<\s*text/i.test(i):"text"!==e.kind||"prepared"===e.measurement&&void 0!==e.block})},_={shape:e=>R(E(e)),text:e=>R(C(e)),connector:e=>R(P(e)),documentOpen:(e,t)=>{let n=k.snapshot(e);return n?(N=Object.freeze({family:i,width:n.width,height:n.height,colors:n.colors,transparent:n.transparent}),N=k.header(N,t)):k.uncertain(),R(A(e,t))},documentContent:(e,t)=>R(I(e,t)),documentText:e=>R(W(e)),definitions:(e,t)=>R(B(e,t)),documentClose:()=>R(L()),group(e){let t=Object.getOwnPropertyDescriptor(e,"children");t&&"value"in t||k.uncertain();let{children:i,...n}=e,r=k.parts(i,H.maxNodes),o=[],a=1,l=0,s=1,d=!0,u=[];for(let e of r){let t=Object.getOwnPropertyDescriptor(e,"node"),i=Object.getOwnPropertyDescriptor(e,"indent");t&&"value"in t&&i&&"value"in i||k.uncertain();let n=Object.freeze({node:e.node,indent:e.indent});o.push(n),F.has(n.node)||k.uncertain(),u.push(n.node),a+=n.node.nodeCount,l+=n.node.svg.length,s=Math.max(s,1+n.node.depth),d=d&&n.node.prepared}if(a>H.maxNodes)throw RangeError("Native drawing contains too many emitted nodes");if(l>H.maxSerializationBytesPerNode)throw RangeError("Native group has an oversized SVG serialization");let f=T({...n,children:[]});S.node(f),S.depth(s);let c=k.snapshot(f),h=c?k.group(c,f):void 0,p=c?.identity??{id:f.id,role:f.role};for(let e of u)"leaf"!==e.kind||"shape"!==e.node.kind||e.node.identity||S.enclosure(e.node.id,p);let y=[f.open];for(let e of o)y.push($(e.node.svg,e.indent));y.push(f.close);let m=y.join(f.join);return S.serialization(m),D({kind:"group",svg:m,children:Object.freeze(u),matrix:h,own:p,owner:c?.owner,conditional:!c||"conditional"===f.visibility,opacity:tv(c?.paint?.opacity),nodeCount:a,depth:s,prepared:!/<\s*text/i.test(f.open+f.close)&&d})},pathArtwork:e=>c(_,e)},G=w(()=>e(_,t));for(let e of["parts","family","width","height","colors","transparent"]){let t=Object.getOwnPropertyDescriptor(G,e);t&&"value"in t||k.uncertain()}let U=k.parts(G.parts,H.maxNodes);for(let e of U)F.has(e)||k.uncertain();let V=S.finish();if(!V.valid)throw new K(V.diagnostics);let J=0,Q=-1,Z=!0;for(let e of U)J+=e.nodeCount,Q+=e.svg.length+1,Z=Z&&e.prepared;if(J>H.maxNodes)throw RangeError("Native drawing contains too many emitted nodes");if(Q>H.maxFinalSvgBytes)throw RangeError("Native drawing exceeds the final SVG limit");let ee=ei(G,{seed:0,...n?{style:n}:{}}),et=U.map((e,t)=>0===t&&ee?`${e.svg}
2
2
  ${ee}`:e.svg).join(`
3
- `);Z(et,"native drawing output");let eo=N??Object.freeze({...v,colors:Object.freeze({bg:"none",fg:"none"})}),ea=k.snapshot({family:G.family,width:G.width,height:G.height,colors:G.colors,transparent:G.transparent}),el=Object.freeze({...eo,family:ea?.family??i});ea&&k.same({...ea,width:Number(ev(ea.width)),height:Number(ev(ea.height))},el)||k.uncertain();let ed=(r=k.observe,a={leaf(e,t,i,n=tN,r=!1,a=1,l){if(!tO.has(n))throw TypeError("Native paint ancestors must be owned snapshots");o.leaf(e,t,i,n,r,a,l)},finish:(o=t$(el,void 0,!0)).finish},l=[],function e(t,i,n){for(let o=0;o<t.length;o++){let s=t[o],d=`${i}.${o}`;if("group"===s.kind){l.push(s);let t,i=1,r;for(let e=l.length-1;e>=0;e--){let n=l[e];(void 0!==n.matrix||void 0!==t)&&(t=eu(n.matrix??es,t??es)),i=tk(n.opacity,i),n.conditional&&(r=!0)}let o=function(e,t){let i=tS(t),n=Object.freeze([...void 0===e?tN:tO.has(e)?e:Array.from(e,tS),i]);return tO.add(n),n}(n?.ancestors,s.own),a=s.owner?.id===s.own.id&&s.owner.role===s.own.role?o.at(-1):s.owner;e(s.children,d,{parentMatrix:t,ancestors:o,owner:a,conditional:r,groupOpacity:i}),l.pop()}else if(n){let e=!s.conditional&&r(s.node,s.svg);a.leaf(s.node,d,n.parentMatrix,n.ancestors,n.conditional||!e,n.groupOpacity,s.node.owner??n.owner)}else{let e=!s.conditional&&r(s.node,s.svg);a.leaf(s.node,d,void 0,void 0,!e)}}}(q,"scene"),a.finish());return k.finish(ed,el),Object.freeze({svg:et,header:el,preparedText:Q,paint:ed})}(h,{positioned:(t=ta.get(i))&&t!==h?e6(i.positioned,!0):i.positioned,colors:p,resolved:n(e)},r.family.id,e.appearance.styled?e.appearance.style:void 0)});return l.set(e,{drawing:y,producer:h,evidence:y}),y}function tX(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}async function tY(e,t,i){return(await tQ(e,t,i)).svg}async function tQ(c,h,p){"default"!==a(h=o(h))&&await import("./builtin-backends-UTNWL4N3.js"),f(p);let y,m=new Map;for(;;)try{return y??=q("request",()=>l(c,h,"svg",void 0,{expectedFamilyId:p.id,familyDescriptor:p})),function(o){return eM(()=>(function(o){var a;!function(e){if(tu.has(e))return;tu.add(e);let i=t(e),n=i.configDiagnostics??[];if(0===n.length)return;let r=i.onConfigDiagnostic??(e=>console.warn(e.message));for(let e of n)r(e)}(o);let l=[],f=(a=q("layout",()=>{let e,i,r,a;return i=d((e=t(o)).family.lowerScene),r="scene"===e.mode&&ea(e.backend?.backend)&&s(e.family)&&!e.textMeasurement&&!!i&&i===u(e.family.lowerScene)&&!Y(o),a=function(e,i,r,o,a,l=!1){let s=t(i),d=s.family;if(d.id!==e)throw Error(`Resolved request planned family ${d.id}, not ${e}`);if(!d.layout)throw Error(`No layout registered for Mermaid family ${e}`);let u=!e.startsWith("family:"),f=`${e}:final`;if(u&&!d.projectPositioned)throw new V([{strategy:f,violations:["missing final geometry projection"]}]);let c=n(i),h=globalThis.process?.env,p=ex("position-cache")&&u&&"gantt"!==e&&!s.textMeasurement&&(h?.AGENTIC_MERMAID_ELK_CACHE??globalThis.AGENTIC_MERMAID_ELK_CACHE)!=="0",y=p&&r===i.source?{...r,cleanup:void 0}:r,m=p?JSON.stringify([y,i.renderOptions,i.appearance,i.familyConfig,o,"class"===e?c.paintBackendId??"backend:default":void 0,Object.entries(h??{}).filter(([e])=>e.startsWith("APL_")).sort(),eg.map(ex)]):void 0,g=void 0!==m&&m.length<=65536?m:void 0;return void 0===g&&ej("positioned-layout","bypass",ex("position-cache")?u?"gantt"===e?"time-dependent-family":s.textMeasurement?"custom-text-measurement":void 0===m?"elk-cache-disabled":"key-limit":"external-family":"disabled"),eR(s.textMeasurement,()=>{var t,n;let s="ascii"===i.output||"unicode"===i.output||"html"===i.output?"companion":"primary";if(a&&void 0!==g){let e=function(e,t,i){let n=e3(e,t),r=e2.get(n);if(ej("positioned-layout",r?"hit":"miss"),i&&r&&eY.has(r)){let e=Object.freeze({...r.result});return G(r.result,e),e0.set(e,{key:n,snapshot:r,request:i}),e5.add(e),{...r,result:e}}return r}(d,g,"svg"===i.output?i:void 0);if(e?.projection){for(let t of R(e.result))ts(i,t,s);return to.set(e.result,e.projection),e.result}}let h=void 0===g?void 0:function(e,t,i=!1,n=!1){let r=e2.get(e3(e,t));if(i||ej("positioned-layout",r?"hit":"miss"),!r)return;let o=e6(r.result,n);return G(r.result,o),o}(d,g,a,l),p=[],y=h??("positioned"in(t=Q(e=>{p.push(e),ts(i,e,s)},()=>d.layout({source:r,renderOptions:c.renderOptions,...c.styleFace?{styleFace:c.styleFace}:{},...c.paintBackendId?{paintBackendId:c.paintBackendId}:{},...c.familyConfig?{familyConfig:c.familyConfig}:{},...c.familyAppearance?{familyAppearance:c.familyAppearance}:{}})))?t:{positioned:t});if(h)for(let e of R(h))ts(i,e,s);else for(let e of p)D(y,e);if(u)try{let t=d.projectPositioned({positioned:y.positioned,options:o}),i=(n={...t,kind:e},function(e){let t=[];tt(0,0,e.bounds.w,e.bounds.h)||t.push({metric:"nonFiniteGeometry",detail:`bounds ${e.bounds.w}\xd7${e.bounds.h}`});let i=(i,n,r)=>{r&&(tt(r.x,r.y,r.w,r.h)?(r.x<-.5||r.y<-.5||r.x+r.w>e.bounds.w+.5||r.y+r.h>e.bounds.h+.5)&&t.push({metric:"offCanvas",detail:"node"===i?`node ${n} at (${r.x},${r.y}) ${r.w}\xd7${r.h}`:`${i} ${n}`}):t.push({metric:"nonFiniteGeometry",detail:`${i} ${n}`}))};for(let t of e.nodes)i("node",t.id,t);for(let t of e.nodes)"hidden"!==t.labelVisibility&&"semantic"!==t.labelVisibility&&i("label",t.id,t.labelBounds);for(let t of e.edges)i("label",t.id,t.label?.bounds);for(let t of e.labels??[])"hidden"!==t.visibility&&"semantic"!==t.visibility&&i("label",t.id,t.bounds);for(let i of e.edges){let n=!1;for(let[r,o]of i.path){if(!Number.isFinite(r)||!Number.isFinite(o)){t.push({metric:"nonFiniteGeometry",detail:`edge ${i.id} path`}),n=!0;break}!n&&(r<-.5||o<-.5||r>e.bounds.w+.5||o>e.bounds.h+.5)&&(t.push({metric:"offCanvas",detail:`edge ${i.id} point (${r},${o})`}),n=!0)}}for(let t of e.groups)i("group",t.id,t);let n=e.nodes.filter(te);for(let e=0;e<n.length;e++)for(let i=e+1;i<n.length;i++){let r=n[e],o=n[i];tt(r.x,r.y,r.w,r.h)&&tt(o.x,o.y,o.w,o.h)&&ti(r,o)&&t.push({metric:"nodeOverlaps",detail:`${r.id} overlaps ${o.id}`})}let r=e9[e.kind]??"both",o=new Map(e.groups.map(e=>[e.id,e]));if("none"!==r){let i=new Map(e.nodes.map(e=>[e.id,e]));for(let n of e.groups){let e=n.parentId?o.get(n.parentId):void 0;for(let o of(e&&tt(n.x,n.y,n.w,n.h)&&tt(e.x,e.y,e.w,e.h)&&(tn(e,n,r)||t.push({metric:"groupBreaches",detail:`${n.id} outside parent ${e.id}`})),n.members)){let e=i.get(o);!e||!tt(e.x,e.y,e.w,e.h)||tn(n,e,r)||t.push({metric:"groupBreaches",detail:`${o} outside ${n.id}`})}}}for(let i=0;i<e.groups.length;i++)for(let n=i+1;n<e.groups.length;n++){let r=e.groups[i],a=e.groups[n];!tt(r.x,r.y,r.w,r.h)||!tt(a.x,a.y,a.w,a.h)||ti(r,a)&&(tn(r,a)||tn(a,r)||tr(r,a,o)||tr(a,r,o)||t.push({metric:"groupOverlaps",detail:`${r.id} partially overlaps ${a.id}`}))}return{violations:t,groupById:o}}(n).violations);if(i.length)throw new V([{strategy:f,violations:i.map(e=>`${e.metric}: ${e.detail}`)}]);to.set(y,t)}catch(e){throw e instanceof V?e:new V([{strategy:f,violations:[e instanceof Error?e.message:String(e)]}])}return h||void 0===g||(a&&"svg"===i.output&&("sequence"===e||"flowchart"===e||"state"===e)?function(e,t,i,n){e4(e,t,i,n,!1)}:function(e,t,i,n){e4(e,t,i,n,!0)})(d,g,y,to.get(y)),y})}(e.family.id,o,o.source,{},r,!0),r&&e5.has(a)&&ta.set(a,i),a}),eR(t(o).textMeasurement,()=>(function(i,r,o,a){var l;let s,f,c=t(i);if("scene"!==c.mode&&"family-svg"!==c.mode||!c.executionDecision)throw Error(`Resolved ${i.output} request has no graphical execution plan`);let h=i.renderOptions,p=c.family,y=(s=i.appearance.colors,f="png"===i.output&&!1!==s.embedFontImport?{...s,embedFontImport:!1}:s,{positioned:r.positioned,colors:f,resolved:n(i)}),m,g=!1,x;if("scene"===c.mode){let e=a?void 0:q("drawing",()=>tZ(i,r)),n=e?void 0:q("scene",()=>(function(e,i){if("scene"!==t(e).mode)throw Error(`Resolved ${e.output} request has no Scene execution plan`);return tJ(e,i)})(i,r));if(x=q("paint-certification",()=>(function(e,i){let n=tK.get(i)?.get(e)?.drawing??tZ(e,i);if(n){let r=tK.get(i).get(e);if(ej("paint-certification",r.certification?"hit":"miss",void 0,"native"),r.certification)return r.certification;let o=r.evidence,a=tU(o.header,o.paint,to.get(i),{outputSupported:!e.appearance.colors.shadow});r.certification=a;let l=Object.freeze({svg:n.svg,preparedText:n.preparedText,certification:a}),s=t(e).family.lowerScene;return r.producer===d(s)&&r.producer===u(s)?function(e,t,i){let n=e0.get(t);if(!n||n.request!==e||e2.get(n.key)!==n.snapshot)return;let r=eY.get(n.snapshot);if(r.oversized)return ej("native-drawing","store-skipped","weight-limit");let o=r.drawingWeight??2*n.key.length+4*i.svg.length+1024,a=e1.leastRecentlyUsed(),l=a&&eY.get(a.owner)?.lastUse,s=void 0!==l&&eQ-l>=128;if(!r.locallyRepeated&&!s&&!e1.canFit(n.key,o))return ej("native-drawing","store-skipped","drawing-budget");let d={owner:n.snapshot,drawing:i},u=2*n.key.length+ew(i,8388608)+1024;if(r.drawingWeight=u,u>8388608){r.oversized=!0,ej("native-drawing","store-skipped","weight-limit");return}r.locallyRepeated||s||e1.canFit(n.key,u)?e1.set(n.key,d,u):ej("native-drawing","store-skipped","drawing-budget")}(e,i,l):(ej("native-drawing","store-skipped","changed-producer"),e8(e,i,!1)),a}let r=tJ(e,i),o=tH.get(i).get(e);if(ej("paint-certification",o.certification?"hit":"miss",void 0,"scene"),o.certification)return o.certification;let a=t(e),l=!e.appearance.colors.shadow&&("layout"===a.mode?"default"===e.appearance.inferredBackend:"scene"===a.mode&&a.backend?.inputName==="default");return o.certification=function(e,t,i={}){return tU(e,function(e,t){let i=t$(e,void 0),n=(e,t,r,o,a=!1,l=1,s=!0)=>{e.forEach((e,d)=>{let u=`${t}.${d}`;if("group"===e.kind){let t=N(e),i=e.identity??{id:e.id,role:e.role};n(e.children.map(e=>e.node),u,eu(r,ed(e.transform)),Object.freeze([...o,tS(i)]),a||"conditional"===e.visibility||t.style||e.paint?.fill!==void 0,tk(l,tv(e.paint?.opacity)),s&&!e.transform)}else i.leaf(e,u,r,o,a,l,void 0,s)})};return n(e.parts,"scene",es,Object.freeze([])),i.finish()}(e),t,i)}(r,to.get(i),{outputSupported:l})})(i,r)),"strict"===h.layoutSafety&&"passed"!==x.status||"failed"===x.status&&c.backend?.inputName==="default")throw new tV(x);m=e?.svg??q("backend",()=>{let e={seed:h.seed??0,...i.appearance.styled?{style:i.appearance.style}:{}};return a?.begin(e,n),c.backend.backend.render(n,e)}),g=c.backend?.inputName==="default"&&!p.id.startsWith("family:")&&(e?.preparedText??F(n))}else{if("strict"===h.layoutSafety)throw new e("Strict layout safety requires native Scene evidence");m=q("backend",()=>p.renderSvg(y))}Z(m,"backend/family SVG output");let b=eA(m,y.colors);x?.repairs.length&&c.backend?.inputName==="default"&&(b=function(e,t){let i=eO(e);if(!i)throw Error("Cannot certify a graphical output with no SVG root");let n=e.slice(i.start,i.end).replace(/\sviewBox="[^"]*"/g,""),r=` viewBox="${t.x} ${t.y} ${t.width} ${t.height}"`;return eC(e,i,n.slice(0,-1)+r+">")}(b,x.viewport)),Z(b,"color-resolved SVG output"),g||(b=function(e,t){let i=function(e){let t=[],i=[],n=0;for(;n<e.length;){let r=e.indexOf("<",n);if(r<0){i.length>0&&n<e.length&&i[i.length-1].children.push({kind:"text-node",raw:e.slice(n)}),n=e.length;break}if(i.length>0&&r>n&&i[i.length-1].children.push({kind:"text-node",raw:e.slice(n,r)}),e.startsWith("\x3c!--",r)){let t=e.indexOf("--\x3e",r+4);if(t<0)return null;n=t+3;continue}let o=function(e,t){let i="";for(let n=t+1;n<e.length;n++){let t=e[n];if(i){t===i&&(i="");continue}if('"'===t||"'"===t){i=t;continue}if(">"===t)return n}return -1}(e,r);if(o<0)return null;let a=e.slice(r,o+1);if(/^<\?/.test(a)||/^<!/.test(a)){n=o+1;continue}let l=a.match(/^<\/\s*([\w:-]+)\s*>$/);if(l){let e=i.pop();if(!e||e.name!==l[1].toLowerCase())return null;e.closeStart=r,n=o+1;continue}let s=a.match(/^<\s*([\w:-]+)([\s\S]*?)(\/?)>$/);if(!s)return null;let d={kind:"element",name:s[1].toLowerCase(),attrs:s[2],openEnd:o+1,closeStart:o+1,children:[]};i.length>0?i[i.length-1].children.push(d):t.push(d),"/"!==s[3]&&i.push(d),n=o+1}return 0===i.length?t:null}(e);if(!i)return e;let n=[],r={size:0,weight:400,letterSpacing:0,mono:!1,fontStyle:"normal",fontFamily:t},o=(e,t,i,r=!1)=>{if(eH(e.attrs,"data-prepared-text"))return;let a=eK(t,e),l=r||eH(e.attrs,"data-literal-text"),s="text"===e.name&&!i,d=s||i&&eJ(e);if(d&&eH(e.attrs,"textLength"))return;if(d&&!(s&&function e(t){return eV(t).some(t=>eJ(t)||e(t))}(e))){let i,r,o,a=(i=[],r=!1,(o=(e,t,n)=>{let a=eK(t,e);if(!(!n&&eJ(e))){if(!n&&eH(e.attrs,"textLength")){r=!0;return}for(let t of e.children)if("text-node"===t.kind){let e=eS(t.raw);e.length>0&&i.push({text:e,metrics:a})}else o(t,a,!1)}})(e,t,!0),{runs:i,blocked:r}),s=a.blocked?null:function(e,t=!1){let i=e.filter(e=>e.text.length>0);if(0===i.length||i.every(e=>0===e.text.trim().length))return null;let n=0,r=0,o=0;for(let e of i){if(!(e.metrics.size>0))return null;let i=eL(e.text).length;r>0&&i>0&&(n+=o),n+=e.metrics.mono?ey(e.text,e.metrics.size,e.metrics.letterSpacing,e.metrics.weight,e.metrics.fontStyle,e.metrics.fontFamily):t?ep(e.text,e.metrics.size,e.metrics.weight,e.metrics.fontStyle,e.metrics.fontFamily)+Math.max(0,i-1)*e.metrics.letterSpacing:em(e.text,e.metrics.size,e.metrics.weight,e.metrics.letterSpacing,e.metrics.fontStyle,e.metrics.fontFamily),r=i,o=e.metrics.letterSpacing}return Math.round(1e3*n)/1e3}(a.runs,l);null!==s&&n.push({offset:e.openEnd-1,text:` textLength="${s}" lengthAdjust="spacingAndGlyphs" data-font-metrics="deterministic-fit"`})}let u=i||s;for(let t of eV(e))o(t,a,u,l)};for(let e of i)o(e,r,!1);let a=e;for(let e of n.sort((e,t)=>t.offset-e.offset))a=a.slice(0,e.offset)+e.text+a.slice(e.offset);return a}(b,i.appearance.font)),Z(b,"font-geometry-fitted SVG output");let v=h.idPrefix??"";v&&Z(b=function(e,t){if(!/^[A-Za-z0-9_.:-]+$/.test(t))throw Error("idPrefix must be non-empty and contain only ASCII letters, digits, underscore, hyphen, dot, and colon");let i=new Set;for(let t of eh(e))for(let e of t.attributes)"id"===e.name&&i.add(e.value);let n=e=>e.startsWith(t)?e:`${t}${e}`;return eP(eF(e,e=>{if("id"===e.name)return n(e.value);if("aria-labelledby"===e.name||"aria-describedby"===e.name)return e.value.split(/\s+/).map(e=>i.has(e)?n(e):e).join(" ");if(("href"===e.name||"xlink:href"===e.name)&&e.value.startsWith("#")){let t=e.value.slice(1);return i.has(t)?`#${n(t)}`:e.value}}),e=>e.replace(/url\(#([^)]+)\)/g,(e,t)=>i.has(t)?`url(#${n(t)})`:e))}(b,v),"namespaced SVG output");let k=i.source.accessibility,w="c4"===p.id?"C4 architecture diagram":void 0;(r.injectAccessibility??!0)&&(k.title||k.descr||w)&&Z(b=function(e,t,i,n){let r=`${i}svg-title`,o=`${i}svg-desc`,a=[],l=[];if(t.title&&(a.push(`aria-labelledby="${r}"`),l.push(`<title id="${r}">${tX(t.title)}</title>`)),t.descr&&(a.push(`aria-describedby="${o}"`),l.push(`<desc id="${o}">${tX(t.descr)}</desc>`)),0===l.length&&!n)return e;let s=eO(e);if(!s||eN(s,"aria-labelledby")||eN(s,"aria-describedby"))return e;!n||t.title||eN(s,"aria-label")||a.push(`aria-label="${tX(n).replace(/"/g,"&quot;")}"`);let d=`${eN(s,"role")?"":' role="img"'} ${a.join(" ")}`,u=e.slice(s.start,s.end);return eC(e,s,`${u.slice(0,-1)}${d}>${l.join("")}`)}(b,k,v,w),"accessibility-projected SVG output"),a&&(b=a.finish(b)),Z(b=function(e){let t=eO(e);if(!t)return e;let i=eE(e);if(0===i.length)return e;let n=`am-${function(e){let t=0xdeadbeef,i=0x41c6ce57;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=Math.imul(t^r,0x9e3779b1),i=Math.imul(i^r,0x5f356495)}return t=Math.imul(t^t>>>16,0x85ebca6b)^Math.imul(i^i>>>13,0xc2b2ae35),i=Math.imul(i^i>>>16,0x85ebca6b)^Math.imul(t^t>>>13,0xc2b2ae35),`${(i>>>0).toString(36).padStart(7,"0")}${(t>>>0).toString(36).padStart(7,"0")}`}(e)}`,r=e;for(let e=i.length-1;e>=0;e--){let t=i[e];r=`${r.slice(0,t.start)}${function e(t,i){let n="",r=0,o=0,a,l=0;for(;r<t.length;){let s=t[r];if(a){"\\"===s?r++:s===a&&(a=void 0),r++;continue}if("/"===s&&"*"===t[r+1]){let e=t.indexOf("*/",r+2);r=e<0?t.length:e+2;continue}if('"'===s||"'"===s)a=s;else if("("===s)l++;else if(")"===s)l=Math.max(0,l-1);else if(";"===s&&0===l)n+=t.slice(o,r+1),o=r+1;else if("{"===s&&0===l){let a=function(e,t){let i=0,n;for(let r=t;r<e.length;r++){let t=e[r];if(n)"\\"===t?r++:t===n&&(n=void 0);else if("/"===t&&"*"===e[r+1]){let t=e.indexOf("*/",r+2);if(t<0)return e.length;r=t+1}else if('"'===t||"'"===t)n=t;else if("{"===t)i++;else if("}"===t&&0==--i)return r}return e.length}(t,r);n+=function(t,i,n){let r=t.match(/^(?:\s*\/\*[\s\S]*?\*\/)*/)[0],o=t.slice(r.length),a=/^\s*@([\w-]+)/.exec(o);if(a){let r=a[1].toLowerCase(),o=td.has(r)?e(i,n):i;return`${t}{${o}}`}let l=(function(e){let t=[],i=0,n,r=0;for(let o=0;o<e.length;o++){let a=e[o];n?"\\"===a?o++:a===n&&(n=void 0):'"'===a||"'"===a?n=a:"("===a||"["===a?i++:")"===a||"]"===a?i--:","===a&&0===i&&(t.push(e.slice(r,o)),r=o+1)}return t.push(e.slice(r)),t})(o).map(e=>{let t,i;return t=e.match(/^\s*/)[0],0===(i=e.slice(t.length)).length?e:/^svg(?![\w-])/.exec(i)?`${t}svg.${n}${i.slice(3)}`:`${t}.${n} ${i}`}).join(",");return`${r}${l}{${i}}`}(t.slice(o,r),t.slice(r+1,a),i),o=r=a+1;continue}r++}return n+t.slice(o)}(r.slice(t.start,t.end),n)}${r.slice(t.end)}`}let o=r.slice(t.start,t.end),a=eN(t,"class"),l=a?`${o.slice(0,a.valueEnd-t.start)}${a.value?" ":""}${n}${o.slice(a.valueEnd-t.start)}`:`${o.slice(0,-1)} class="${n}">`;return eC(r,t,l)}((l=b,eb.test(l)?eF(l,({name:e,value:t})=>ek(e,t)):l)),"style-scoped SVG output"),h.compact&&Z(b=function(e){let t=/<((?:[A-Za-z_][\w.-]*:)?(?:style|text|title|desc|metadata))\b[\s\S]*?<\/\1>/gi,i=[],n=e=>e.replace(/>\s*\r?\n\s*</g,"><"),r=0,o;for(;null!==(o=t.exec(e));)o.index>r&&i.push(n(e.slice(r,o.index))),i.push(o[0]),r=o.index+o[0].length;return r<e.length&&i.push(n(e.slice(r))),i.join("")}(b),"compacted SVG output");let M="png"===i.output?"strict":h.security,O=q("svg-security",()=>et(b,M));return o.push(...O.diagnostics),Z(b=O.svg,"final SVG output"),Object.freeze({svg:b,executionDecision:c.executionDecision,...x?{layoutCertification:x}:{}})})(o,a,l,void 0)));return function(e,t,n){let o=Object.hasOwn(t,"layoutCertification")?t.layoutCertification:void 0;return function(e,t){let i=t,n;return Object.freeze({svg:e,get receipt(){return void 0===n&&(n=i(),i=void 0),n}})}(t.svg,()=>{var a;let l=(Z(a=t.svg,"graphical projection digest input"),r(JSON.stringify(a)));return Object.freeze({...i(e,n),graphicalProjectionDigest:l,executionDecision:t.executionDecision,...o?{layoutCertification:Object.freeze({...o,outputDigest:l})}:{}})})}(o,f,l)})(o))}(y)}catch(n){let e=H(n),t=e?e.load:n?.loadHtmlEntityTable,i=e?"ELK"===e.dependency||"YAML"===e.dependency||"Agentic layout"===e.dependency||"Forest layout"===e.dependency?e.dependency:void 0:"function"==typeof t?"HTML entities":void 0;if(!i||"function"!=typeof t||m.has(i)||[...m.values()].includes(t))throw n;m.set(i,t),await t()}}export{tY as renderLoadedFamilySvg,tQ as renderLoadedFamilySvgWithReceipt};
3
+ `);Y(et,"native drawing output");let eo=N??Object.freeze({...v,colors:Object.freeze({bg:"none",fg:"none"})}),ea=k.snapshot({family:G.family,width:G.width,height:G.height,colors:G.colors,transparent:G.transparent}),el=Object.freeze({...eo,family:ea?.family??i});ea&&k.same({...ea,width:Number(ev(ea.width)),height:Number(ev(ea.height))},el)||k.uncertain();let ed=(r=k.observe,a={leaf(e,t,i,n=tN,r=!1,a=1,l){if(!tO.has(n))throw TypeError("Native paint ancestors must be owned snapshots");o.leaf(e,t,i,n,r,a,l)},finish:(o=t$(el,void 0,!0)).finish},l=[],function e(t,i,n){for(let o=0;o<t.length;o++){let s=t[o],d=`${i}.${o}`;if("group"===s.kind){l.push(s);let t,i=1,r;for(let e=l.length-1;e>=0;e--){let n=l[e];(void 0!==n.matrix||void 0!==t)&&(t=eu(n.matrix??es,t??es)),i=tk(n.opacity,i),n.conditional&&(r=!0)}let o=function(e,t){let i=tS(t),n=Object.freeze([...void 0===e?tN:tO.has(e)?e:Array.from(e,tS),i]);return tO.add(n),n}(n?.ancestors,s.own),a=s.owner?.id===s.own.id&&s.owner.role===s.own.role?o.at(-1):s.owner;e(s.children,d,{parentMatrix:t,ancestors:o,owner:a,conditional:r,groupOpacity:i}),l.pop()}else if(n){let e=!s.conditional&&r(s.node,s.svg);a.leaf(s.node,d,n.parentMatrix,n.ancestors,n.conditional||!e,n.groupOpacity,s.node.owner??n.owner)}else{let e=!s.conditional&&r(s.node,s.svg);a.leaf(s.node,d,void 0,void 0,!e)}}}(U,"scene"),a.finish());return k.finish(ed,el),Object.freeze({svg:et,header:el,preparedText:Z,paint:ed})}(h,{positioned:(t=ta.get(i))&&t!==h?e6(i.positioned,!0):i.positioned,colors:p,resolved:n(e)},r.family.id,e.appearance.styled?e.appearance.style:void 0)});return l.set(e,{drawing:y,producer:h,evidence:y}),y}function tX(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}async function tQ(e,t,i){return(await tZ(e,t,i)).svg}async function tZ(c,h,p){"default"!==a(h=o(h))&&await import("./builtin-backends-2ETI2OTB.js"),f(p);let y,m=new Map;for(;;)try{return y??=U("request",()=>l(c,h,"svg",void 0,{expectedFamilyId:p.id,familyDescriptor:p})),function(o){return eM(()=>(function(o){var a;!function(e){if(tu.has(e))return;tu.add(e);let i=t(e),n=i.configDiagnostics??[];if(0===n.length)return;let r=i.onConfigDiagnostic??(e=>console.warn(e.message));for(let e of n)r(e)}(o);let l=[],f=(a=U("layout",()=>{let e,i,r,a;return i=d((e=t(o)).family.lowerScene),r="scene"===e.mode&&ea(e.backend?.backend)&&s(e.family)&&!e.textMeasurement&&!!i&&i===u(e.family.lowerScene)&&!Q(o),a=function(e,i,r,o,a,l=!1){let s=t(i),d=s.family;if(d.id!==e)throw Error(`Resolved request planned family ${d.id}, not ${e}`);if(!d.layout)throw Error(`No layout registered for Mermaid family ${e}`);let u=!e.startsWith("family:"),f=`${e}:final`;if(u&&!d.projectPositioned)throw new V([{strategy:f,violations:["missing final geometry projection"]}]);let c=n(i),h=globalThis.process?.env,p=ex("position-cache")&&u&&"gantt"!==e&&!s.textMeasurement&&(h?.AGENTIC_MERMAID_ELK_CACHE??globalThis.AGENTIC_MERMAID_ELK_CACHE)!=="0",y=p&&r===i.source?{...r,cleanup:void 0}:r,m=p?JSON.stringify([y,i.renderOptions,i.appearance,i.familyConfig,o,"class"===e?c.paintBackendId??"backend:default":void 0,Object.entries(h??{}).filter(([e])=>e.startsWith("APL_")).sort(),eg.map(ex)]):void 0,g=void 0!==m&&m.length<=65536?m:void 0;return void 0===g&&ej("positioned-layout","bypass",ex("position-cache")?u?"gantt"===e?"time-dependent-family":s.textMeasurement?"custom-text-measurement":void 0===m?"elk-cache-disabled":"key-limit":"external-family":"disabled"),eR(s.textMeasurement,()=>{var t,n;let s="ascii"===i.output||"unicode"===i.output||"html"===i.output?"companion":"primary";if(a&&void 0!==g){let e=function(e,t,i){let n=e3(e,t),r=e2.get(n);if(ej("positioned-layout",r?"hit":"miss"),i&&r&&eQ.has(r)){let e=Object.freeze({...r.result});return G(r.result,e),e0.set(e,{key:n,snapshot:r,request:i}),e5.add(e),{...r,result:e}}return r}(d,g,"svg"===i.output?i:void 0);if(e?.projection){for(let t of R(e.result))ts(i,t,s);return to.set(e.result,e.projection),e.result}}let h=void 0===g?void 0:function(e,t,i=!1,n=!1){let r=e2.get(e3(e,t));if(i||ej("positioned-layout",r?"hit":"miss"),!r)return;let o=e6(r.result,n);return G(r.result,o),o}(d,g,a,l),p=[],y=h??("positioned"in(t=Z(e=>{p.push(e),ts(i,e,s)},()=>d.layout({source:r,renderOptions:c.renderOptions,...c.styleFace?{styleFace:c.styleFace}:{},...c.paintBackendId?{paintBackendId:c.paintBackendId}:{},...c.familyConfig?{familyConfig:c.familyConfig}:{},...c.familyAppearance?{familyAppearance:c.familyAppearance}:{}})))?t:{positioned:t});if(h)for(let e of R(h))ts(i,e,s);else for(let e of p)D(y,e);if(u)try{let t=d.projectPositioned({positioned:y.positioned,options:o}),i=(n={...t,kind:e},function(e){let t=[];tt(0,0,e.bounds.w,e.bounds.h)||t.push({metric:"nonFiniteGeometry",detail:`bounds ${e.bounds.w}\xd7${e.bounds.h}`});let i=(i,n,r)=>{r&&(tt(r.x,r.y,r.w,r.h)?(r.x<-.5||r.y<-.5||r.x+r.w>e.bounds.w+.5||r.y+r.h>e.bounds.h+.5)&&t.push({metric:"offCanvas",detail:"node"===i?`node ${n} at (${r.x},${r.y}) ${r.w}\xd7${r.h}`:`${i} ${n}`}):t.push({metric:"nonFiniteGeometry",detail:`${i} ${n}`}))};for(let t of e.nodes)i("node",t.id,t);for(let t of e.nodes)"hidden"!==t.labelVisibility&&"semantic"!==t.labelVisibility&&i("label",t.id,t.labelBounds);for(let t of e.edges)i("label",t.id,t.label?.bounds);for(let t of e.labels??[])"hidden"!==t.visibility&&"semantic"!==t.visibility&&i("label",t.id,t.bounds);for(let i of e.edges){let n=!1;for(let[r,o]of i.path){if(!Number.isFinite(r)||!Number.isFinite(o)){t.push({metric:"nonFiniteGeometry",detail:`edge ${i.id} path`}),n=!0;break}!n&&(r<-.5||o<-.5||r>e.bounds.w+.5||o>e.bounds.h+.5)&&(t.push({metric:"offCanvas",detail:`edge ${i.id} point (${r},${o})`}),n=!0)}}for(let t of e.groups)i("group",t.id,t);let n=e.nodes.filter(te);for(let e=0;e<n.length;e++)for(let i=e+1;i<n.length;i++){let r=n[e],o=n[i];tt(r.x,r.y,r.w,r.h)&&tt(o.x,o.y,o.w,o.h)&&ti(r,o)&&t.push({metric:"nodeOverlaps",detail:`${r.id} overlaps ${o.id}`})}let r=e9[e.kind]??"both",o=new Map(e.groups.map(e=>[e.id,e]));if("none"!==r){let i=new Map(e.nodes.map(e=>[e.id,e]));for(let n of e.groups){let e=n.parentId?o.get(n.parentId):void 0;for(let o of(e&&tt(n.x,n.y,n.w,n.h)&&tt(e.x,e.y,e.w,e.h)&&(tn(e,n,r)||t.push({metric:"groupBreaches",detail:`${n.id} outside parent ${e.id}`})),n.members)){let e=i.get(o);!e||!tt(e.x,e.y,e.w,e.h)||tn(n,e,r)||t.push({metric:"groupBreaches",detail:`${o} outside ${n.id}`})}}}for(let i=0;i<e.groups.length;i++)for(let n=i+1;n<e.groups.length;n++){let r=e.groups[i],a=e.groups[n];!tt(r.x,r.y,r.w,r.h)||!tt(a.x,a.y,a.w,a.h)||ti(r,a)&&(tn(r,a)||tn(a,r)||tr(r,a,o)||tr(a,r,o)||t.push({metric:"groupOverlaps",detail:`${r.id} partially overlaps ${a.id}`}))}return{violations:t,groupById:o}}(n).violations);if(i.length)throw new V([{strategy:f,violations:i.map(e=>`${e.metric}: ${e.detail}`)}]);to.set(y,t)}catch(e){throw e instanceof V?e:new V([{strategy:f,violations:[e instanceof Error?e.message:String(e)]}])}return h||void 0===g||(a&&"svg"===i.output&&("sequence"===e||"flowchart"===e||"state"===e)?function(e,t,i,n){e8(e,t,i,n,!1)}:function(e,t,i,n){e8(e,t,i,n,!0)})(d,g,y,to.get(y)),y})}(e.family.id,o,o.source,{},r,!0),r&&e5.has(a)&&ta.set(a,i),a}),eR(t(o).textMeasurement,()=>(function(i,r,o,a){var l;let s,f,c=t(i);if("scene"!==c.mode&&"family-svg"!==c.mode||!c.executionDecision)throw Error(`Resolved ${i.output} request has no graphical execution plan`);let h=i.renderOptions,p=c.family,y=(s=i.appearance.colors,f="png"===i.output&&!1!==s.embedFontImport?{...s,embedFontImport:!1}:s,{positioned:r.positioned,colors:f,resolved:n(i)}),m,g=!1,x;if("scene"===c.mode){let e=a?void 0:U("drawing",()=>tY(i,r)),n=e?void 0:U("scene",()=>(function(e,i){if("scene"!==t(e).mode)throw Error(`Resolved ${e.output} request has no Scene execution plan`);return tK(e,i)})(i,r));if(x=U("paint-certification",()=>(function(e,i){let n=tH.get(i)?.get(e)?.drawing??tY(e,i);if(n){let r=tH.get(i).get(e);if(ej("paint-certification",r.certification?"hit":"miss",void 0,"native"),r.certification)return r.certification;let o=r.evidence,a=tq(o.header,o.paint,to.get(i),{outputSupported:!e.appearance.colors.shadow});r.certification=a;let l=Object.freeze({svg:n.svg,preparedText:n.preparedText,certification:a}),s=t(e).family.lowerScene;return r.producer===d(s)&&r.producer===u(s)?function(e,t,i){let n=e0.get(t);if(!n||n.request!==e||e2.get(n.key)!==n.snapshot)return;let r=eQ.get(n.snapshot);if(r.oversized)return ej("native-drawing","store-skipped","weight-limit");let o=r.drawingWeight??2*n.key.length+4*i.svg.length+1024,a=e1.leastRecentlyUsed(),l=a&&eQ.get(a.owner)?.lastUse,s=void 0!==l&&eZ-l>=128;if(!r.locallyRepeated&&!s&&!e1.canFit(n.key,o))return ej("native-drawing","store-skipped","drawing-budget");let d={owner:n.snapshot,drawing:i},u=2*n.key.length+ew(i,8388608)+1024;if(r.drawingWeight=u,u>8388608){r.oversized=!0,ej("native-drawing","store-skipped","weight-limit");return}r.locallyRepeated||s||e1.canFit(n.key,u)?e1.set(n.key,d,u):ej("native-drawing","store-skipped","drawing-budget")}(e,i,l):(ej("native-drawing","store-skipped","changed-producer"),e4(e,i,!1)),a}let r=tK(e,i),o=tJ.get(i).get(e);if(ej("paint-certification",o.certification?"hit":"miss",void 0,"scene"),o.certification)return o.certification;let a=t(e),l=!e.appearance.colors.shadow&&("layout"===a.mode?"default"===e.appearance.inferredBackend:"scene"===a.mode&&a.backend?.inputName==="default");return o.certification=function(e,t,i={}){return tq(e,function(e,t){let i=t$(e,void 0),n=(e,t,r,o,a=!1,l=1,s=!0)=>{e.forEach((e,d)=>{let u=`${t}.${d}`;if("group"===e.kind){let t=N(e),i=e.identity??{id:e.id,role:e.role};n(e.children.map(e=>e.node),u,eu(r,ed(e.transform)),Object.freeze([...o,tS(i)]),a||"conditional"===e.visibility||t.style||e.paint?.fill!==void 0,tk(l,tv(e.paint?.opacity)),s&&!e.transform)}else i.leaf(e,u,r,o,a,l,void 0,s)})};return n(e.parts,"scene",es,Object.freeze([])),i.finish()}(e),t,i)}(r,to.get(i),{outputSupported:l})})(i,r)),"strict"===h.layoutSafety&&"passed"!==x.status||"failed"===x.status&&c.backend?.inputName==="default")throw new tV(x);m=e?.svg??U("backend",()=>{let e={seed:h.seed??0,...i.appearance.styled?{style:i.appearance.style}:{}};return a?.begin(e,n),c.backend.backend.render(n,e)}),g=c.backend?.inputName==="default"&&!p.id.startsWith("family:")&&(e?.preparedText??F(n))}else{if("strict"===h.layoutSafety)throw new e("Strict layout safety requires native Scene evidence");m=U("backend",()=>p.renderSvg(y))}Y(m,"backend/family SVG output");let b=eT(m,y.colors);x?.repairs.length&&c.backend?.inputName==="default"&&(b=function(e,t){let i=eO(e);if(!i)throw Error("Cannot certify a graphical output with no SVG root");let n=e.slice(i.start,i.end).replace(/\sviewBox="[^"]*"/g,""),r=` viewBox="${t.x} ${t.y} ${t.width} ${t.height}"`;return eC(e,i,n.slice(0,-1)+r+">")}(b,x.viewport)),Y(b,"color-resolved SVG output"),g||(b=function(e,t){let i=function(e){let t=[],i=[],n=0;for(;n<e.length;){let r=e.indexOf("<",n);if(r<0){i.length>0&&n<e.length&&i[i.length-1].children.push({kind:"text-node",raw:e.slice(n)}),n=e.length;break}if(i.length>0&&r>n&&i[i.length-1].children.push({kind:"text-node",raw:e.slice(n,r)}),e.startsWith("\x3c!--",r)){let t=e.indexOf("--\x3e",r+4);if(t<0)return null;n=t+3;continue}let o=function(e,t){let i="";for(let n=t+1;n<e.length;n++){let t=e[n];if(i){t===i&&(i="");continue}if('"'===t||"'"===t){i=t;continue}if(">"===t)return n}return -1}(e,r);if(o<0)return null;let a=e.slice(r,o+1);if(/^<\?/.test(a)||/^<!/.test(a)){n=o+1;continue}let l=a.match(/^<\/\s*([\w:-]+)\s*>$/);if(l){let e=i.pop();if(!e||e.name!==l[1].toLowerCase())return null;e.closeStart=r,n=o+1;continue}let s=a.match(/^<\s*([\w:-]+)([\s\S]*?)(\/?)>$/);if(!s)return null;let d={kind:"element",name:s[1].toLowerCase(),attrs:s[2],openEnd:o+1,closeStart:o+1,children:[]};i.length>0?i[i.length-1].children.push(d):t.push(d),"/"!==s[3]&&i.push(d),n=o+1}return 0===i.length?t:null}(e);if(!i)return e;let n=[],r={size:0,weight:400,letterSpacing:0,mono:!1,fontStyle:"normal",fontFamily:t},o=(e,t,i,r=!1)=>{if(eJ(e.attrs,"data-prepared-text"))return;let a=eH(t,e),l=r||eJ(e.attrs,"data-literal-text"),s="text"===e.name&&!i,d=s||i&&eK(e);if(d&&eJ(e.attrs,"textLength"))return;if(d&&!(s&&function e(t){return eV(t).some(t=>eK(t)||e(t))}(e))){let i,r,o,a=(i=[],r=!1,(o=(e,t,n)=>{let a=eH(t,e);if(!(!n&&eK(e))){if(!n&&eJ(e.attrs,"textLength")){r=!0;return}for(let t of e.children)if("text-node"===t.kind){let e=eS(t.raw);e.length>0&&i.push({text:e,metrics:a})}else o(t,a,!1)}})(e,t,!0),{runs:i,blocked:r}),s=a.blocked?null:function(e,t=!1){let i=e.filter(e=>e.text.length>0);if(0===i.length||i.every(e=>0===e.text.trim().length))return null;let n=0,r=0,o=0;for(let e of i){if(!(e.metrics.size>0))return null;let i=eL(e.text).length;r>0&&i>0&&(n+=o),n+=e.metrics.mono?ey(e.text,e.metrics.size,e.metrics.letterSpacing,e.metrics.weight,e.metrics.fontStyle,e.metrics.fontFamily):t?ep(e.text,e.metrics.size,e.metrics.weight,e.metrics.fontStyle,e.metrics.fontFamily)+Math.max(0,i-1)*e.metrics.letterSpacing:em(e.text,e.metrics.size,e.metrics.weight,e.metrics.letterSpacing,e.metrics.fontStyle,e.metrics.fontFamily),r=i,o=e.metrics.letterSpacing}return Math.round(1e3*n)/1e3}(a.runs,l);null!==s&&n.push({offset:e.openEnd-1,text:` textLength="${s}" lengthAdjust="spacingAndGlyphs" data-font-metrics="deterministic-fit"`})}let u=i||s;for(let t of eV(e))o(t,a,u,l)};for(let e of i)o(e,r,!1);let a=e;for(let e of n.sort((e,t)=>t.offset-e.offset))a=a.slice(0,e.offset)+e.text+a.slice(e.offset);return a}(b,i.appearance.font)),Y(b,"font-geometry-fitted SVG output");let v=h.idPrefix??"";v&&Y(b=function(e,t){if(!/^[A-Za-z0-9_.:-]+$/.test(t))throw Error("idPrefix must be non-empty and contain only ASCII letters, digits, underscore, hyphen, dot, and colon");let i=new Set;for(let t of eh(e))for(let e of t.attributes)"id"===e.name&&i.add(e.value);let n=e=>e.startsWith(t)?e:`${t}${e}`;return eP(eF(e,e=>{if("id"===e.name)return n(e.value);if("aria-labelledby"===e.name||"aria-describedby"===e.name)return e.value.split(/\s+/).map(e=>i.has(e)?n(e):e).join(" ");if(("href"===e.name||"xlink:href"===e.name)&&e.value.startsWith("#")){let t=e.value.slice(1);return i.has(t)?`#${n(t)}`:e.value}}),e=>e.replace(/url\(#([^)]+)\)/g,(e,t)=>i.has(t)?`url(#${n(t)})`:e))}(b,v),"namespaced SVG output");let k=i.source.accessibility,w="c4"===p.id?"C4 architecture diagram":void 0;(r.injectAccessibility??!0)&&(k.title||k.descr||w)&&Y(b=function(e,t,i,n){let r=`${i}svg-title`,o=`${i}svg-desc`,a=[],l=[];if(t.title&&(a.push(`aria-labelledby="${r}"`),l.push(`<title id="${r}">${tX(t.title)}</title>`)),t.descr&&(a.push(`aria-describedby="${o}"`),l.push(`<desc id="${o}">${tX(t.descr)}</desc>`)),0===l.length&&!n)return e;let s=eO(e);if(!s||eN(s,"aria-labelledby")||eN(s,"aria-describedby"))return e;!n||t.title||eN(s,"aria-label")||a.push(`aria-label="${tX(n).replace(/"/g,"&quot;")}"`);let d=`${eN(s,"role")?"":' role="img"'} ${a.join(" ")}`,u=e.slice(s.start,s.end);return eC(e,s,`${u.slice(0,-1)}${d}>${l.join("")}`)}(b,k,v,w),"accessibility-projected SVG output"),a&&(b=a.finish(b)),Y(b=function(e){let t=eO(e);if(!t)return e;let i=eE(e);if(0===i.length)return e;let n=`am-${function(e){let t=0xdeadbeef,i=0x41c6ce57;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=Math.imul(t^r,0x9e3779b1),i=Math.imul(i^r,0x5f356495)}return t=Math.imul(t^t>>>16,0x85ebca6b)^Math.imul(i^i>>>13,0xc2b2ae35),i=Math.imul(i^i>>>16,0x85ebca6b)^Math.imul(t^t>>>13,0xc2b2ae35),`${(i>>>0).toString(36).padStart(7,"0")}${(t>>>0).toString(36).padStart(7,"0")}`}(e)}`,r=e;for(let e=i.length-1;e>=0;e--){let t=i[e];r=`${r.slice(0,t.start)}${function e(t,i){let n="",r=0,o=0,a,l=0;for(;r<t.length;){let s=t[r];if(a){"\\"===s?r++:s===a&&(a=void 0),r++;continue}if("/"===s&&"*"===t[r+1]){let e=t.indexOf("*/",r+2);r=e<0?t.length:e+2;continue}if('"'===s||"'"===s)a=s;else if("("===s)l++;else if(")"===s)l=Math.max(0,l-1);else if(";"===s&&0===l)n+=t.slice(o,r+1),o=r+1;else if("{"===s&&0===l){let a=function(e,t){let i=0,n;for(let r=t;r<e.length;r++){let t=e[r];if(n)"\\"===t?r++:t===n&&(n=void 0);else if("/"===t&&"*"===e[r+1]){let t=e.indexOf("*/",r+2);if(t<0)return e.length;r=t+1}else if('"'===t||"'"===t)n=t;else if("{"===t)i++;else if("}"===t&&0==--i)return r}return e.length}(t,r);n+=function(t,i,n){let r=t.match(/^(?:\s*\/\*[\s\S]*?\*\/)*/)[0],o=t.slice(r.length),a=/^\s*@([\w-]+)/.exec(o);if(a){let r=a[1].toLowerCase(),o=td.has(r)?e(i,n):i;return`${t}{${o}}`}let l=(function(e){let t=[],i=0,n,r=0;for(let o=0;o<e.length;o++){let a=e[o];n?"\\"===a?o++:a===n&&(n=void 0):'"'===a||"'"===a?n=a:"("===a||"["===a?i++:")"===a||"]"===a?i--:","===a&&0===i&&(t.push(e.slice(r,o)),r=o+1)}return t.push(e.slice(r)),t})(o).map(e=>{let t,i;return t=e.match(/^\s*/)[0],0===(i=e.slice(t.length)).length?e:/^svg(?![\w-])/.exec(i)?`${t}svg.${n}${i.slice(3)}`:`${t}.${n} ${i}`}).join(",");return`${r}${l}{${i}}`}(t.slice(o,r),t.slice(r+1,a),i),o=r=a+1;continue}r++}return n+t.slice(o)}(r.slice(t.start,t.end),n)}${r.slice(t.end)}`}let o=r.slice(t.start,t.end),a=eN(t,"class"),l=a?`${o.slice(0,a.valueEnd-t.start)}${a.value?" ":""}${n}${o.slice(a.valueEnd-t.start)}`:`${o.slice(0,-1)} class="${n}">`;return eC(r,t,l)}((l=b,eb.test(l)?eF(l,({name:e,value:t})=>ek(e,t)):l)),"style-scoped SVG output"),h.compact&&Y(b=function(e){let t=/<((?:[A-Za-z_][\w.-]*:)?(?:style|text|title|desc|metadata))\b[\s\S]*?<\/\1>/gi,i=[],n=e=>e.replace(/>\s*\r?\n\s*</g,"><"),r=0,o;for(;null!==(o=t.exec(e));)o.index>r&&i.push(n(e.slice(r,o.index))),i.push(o[0]),r=o.index+o[0].length;return r<e.length&&i.push(n(e.slice(r))),i.join("")}(b),"compacted SVG output");let M="png"===i.output?"strict":h.security,O=U("svg-security",()=>et(b,M));return o.push(...O.diagnostics),Y(b=O.svg,"final SVG output"),Object.freeze({svg:b,executionDecision:c.executionDecision,...x?{layoutCertification:x}:{}})})(o,a,l,void 0)));return function(e,t,n){let o=Object.hasOwn(t,"layoutCertification")?t.layoutCertification:void 0;return function(e,t){let i=t,n;return Object.freeze({svg:e,get receipt(){return void 0===n&&(n=i(),i=void 0),n}})}(t.svg,()=>{var a;let l=(Y(a=t.svg,"graphical projection digest input"),r(JSON.stringify(a)));return Object.freeze({...i(e,n),graphicalProjectionDigest:l,executionDecision:t.executionDecision,...o?{layoutCertification:Object.freeze({...o,outputDigest:l})}:{}})})}(o,f,l)})(o))}(y)}catch(n){let e=J(n),t=e?e.load:n?.loadHtmlEntityTable,i=e?"ELK"===e.dependency||"YAML"===e.dependency||"Agentic layout"===e.dependency||"Forest layout"===e.dependency?e.dependency:void 0:"function"==typeof t?"HTML entities":void 0;if(!i||"function"!=typeof t||m.has(i)||[...m.values()].includes(t))throw n;m.set(i,t),await t()}}export{tQ as renderLoadedFamilySvg,tZ as renderLoadedFamilySvgWithReceipt};