hyperframes 0.7.26 → 0.7.28
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.
- package/dist/cli.js +611 -246
- package/dist/hyperframe-runtime.js +19 -19
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +19 -19
- package/dist/hyperframes-slideshow.global.js +20 -20
- package/dist/studio/assets/{index-D3eh3pRK.js → index-BGUJ2C2G.js} +1 -1
- package/dist/studio/assets/{index-BPya4QRs.js → index-Bz6Eqd_G.js} +1 -1
- package/dist/studio/assets/{index-BZqvc9Ns.js → index-CLlPjdPl.js} +3 -3
- package/dist/studio/index.html +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -50,7 +50,7 @@ var VERSION;
|
|
|
50
50
|
var init_version = __esm({
|
|
51
51
|
"src/version.ts"() {
|
|
52
52
|
"use strict";
|
|
53
|
-
VERSION = true ? "0.7.
|
|
53
|
+
VERSION = true ? "0.7.28" : "0.0.0-dev";
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
56
|
|
|
@@ -55967,7 +55967,7 @@ var RUNTIME_IIFE;
|
|
|
55967
55967
|
var init_runtime_inline = __esm({
|
|
55968
55968
|
"../core/dist/generated/runtime-inline.js"() {
|
|
55969
55969
|
"use strict";
|
|
55970
|
-
RUNTIME_IIFE = '"use strict";(()=>{var Na=Object.create;var zn=Object.defineProperty;var _a=Object.getOwnPropertyDescriptor;var Ta=Object.getOwnPropertyNames;var La=Object.getPrototypeOf,va=Object.prototype.hasOwnProperty;var ka=(t,e,n)=>e in t?zn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var te=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Ra=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Ta(e))!va.call(t,r)&&r!==n&&zn(t,r,{get:()=>e[r],enumerable:!(i=_a(e,r))||i.enumerable});return t};var Da=(t,e,n)=>(n=t!=null?Na(La(t)):{},Ra(e||!t||!t.__esModule?zn(n,"default",{value:t,enumerable:!0}):n,t));var ge=(t,e,n)=>ka(t,typeof e!="symbol"?e+"":e,n);var Gr=te((Am,ii)=>{var Y=String,Wr=function(){return{isColorSupported:!1,reset:Y,bold:Y,dim:Y,italic:Y,underline:Y,inverse:Y,hidden:Y,strikethrough:Y,black:Y,red:Y,green:Y,yellow:Y,blue:Y,magenta:Y,cyan:Y,white:Y,gray:Y,bgBlack:Y,bgRed:Y,bgGreen:Y,bgYellow:Y,bgBlue:Y,bgMagenta:Y,bgCyan:Y,bgWhite:Y,blackBright:Y,redBright:Y,greenBright:Y,yellowBright:Y,blueBright:Y,magentaBright:Y,cyanBright:Y,whiteBright:Y,bgBlackBright:Y,bgRedBright:Y,bgGreenBright:Y,bgYellowBright:Y,bgBlueBright:Y,bgMagentaBright:Y,bgCyanBright:Y,bgWhiteBright:Y}};ii.exports=Wr();ii.exports.createColors=Wr});var ri=te(()=>{});var cn=te((Cm,zr)=>{"use strict";var Ur=Gr(),Vr=ri(),kt=class t extends Error{constructor(e,n,i,r,o,s){super(e),this.name="CssSyntaxError",this.reason=e,o&&(this.file=o),r&&(this.source=r),s&&(this.plugin=s),typeof n<"u"&&typeof i<"u"&&(typeof n=="number"?(this.line=n,this.column=i):(this.line=n.line,this.column=n.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,t)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let n=this.source;e==null&&(e=Ur.isColorSupported);let i=u=>u,r=u=>u,o=u=>u;if(e){let{bold:u,gray:m,red:f}=Ur.createColors(!0);r=g=>u(f(g)),i=g=>m(g),Vr&&(o=g=>Vr(g))}let s=n.split(/\\r?\\n/),c=Math.max(this.line-3,0),a=Math.min(this.line+2,s.length),l=String(a).length;return s.slice(c,a).map((u,m)=>{let f=c+1+m,g=" "+(" "+f).slice(-l)+" | ";if(f===this.line){if(u.length>160){let y=20,x=Math.max(0,this.column-y),w=Math.max(this.column+y,this.endColumn+y),N=u.slice(x,w),L=i(g.replace(/\\d/g," "))+u.slice(0,Math.min(this.column-1,y-1)).replace(/[^\\t]/g," ");return r(">")+i(g)+o(N)+`\n `+L+r("^")}let A=i(g.replace(/\\d/g," "))+u.slice(0,this.column-1).replace(/[^\\t]/g," ");return r(">")+i(g)+o(u)+`\n `+A+r("^")}return" "+i(g)+o(u)}).join(`\n`)}toString(){let e=this.showSourceCode();return e&&(e=`\n\n`+e+`\n`),this.name+": "+this.message+e}};zr.exports=kt;kt.default=kt});var oi=te((Fm,qr)=>{"use strict";var pl=/(<)(\\/?style\\b)/gi,hl=/(<)(!--)/g;function je(t){return typeof t!="string"||!t.includes("<")?t:t.replace(pl,"\\\\3c $2").replace(hl,"\\\\3c $2")}var jr={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function xl(t){return t[0].toUpperCase()+t.slice(1)}var Rt=class{constructor(e){this.builder=e}atrule(e,n){let i=e.raws,r="@"+e.name,o=e.params?this.rawValue(e,"params"):"";if(typeof i.afterName<"u"?r+=i.afterName:o&&(r+=" "),e.nodes)this.block(e,r+o);else{let s=(i.between||"")+(n?";":"");this.builder(je(r+o+s),e)}}beforeAfter(e,n){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):n==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let r=e.parent,o=0;for(;r&&r.type!=="root";)o+=1,r=r.parent;if(i.includes(`\n`)){let s=this.raw(e,null,"indent");if(s.length)for(let c=0;c<o;c++)i+=s}return i}block(e,n){let i=this.raw(e,"between","beforeOpen");this.builder(je(n+i)+"{",e,"start");let r;e.nodes&&e.nodes.length?(this.body(e),r=this.raw(e,"after")):r=this.raw(e,"after","emptyBody"),r&&this.builder(je(r)),this.builder("}",e,"end")}body(e){let n=e.nodes,i=n.length-1;for(;i>0&&n[i].type==="comment";)i-=1;let r=this.raw(e,"semicolon"),o=e.type==="document";for(let s=0;s<n.length;s++){let c=n[s],a=this.raw(c,"before");a&&this.builder(o?a:je(a)),this.stringify(c,i!==s||r)}}comment(e){let n=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder(je("/*"+n+e.text+i+"*/"),e)}decl(e,n){let i=e.raws,r=this.raw(e,"between","colon"),o=e.prop+r+this.rawValue(e,"value");e.important&&(o+=i.important||" !important"),n&&(o+=";"),this.builder(je(o),e)}document(e){this.body(e)}raw(e,n,i){let r;if(i||(i=n),n&&(r=e.raws[n],typeof r<"u"))return r;let o=e.parent;if(i==="before"&&(!o||o.type==="root"&&o.first===e||o&&o.type==="document"))return"";if(!o)return jr[i];let s=e.root(),c=s.rawCache||(s.rawCache={});if(typeof c[i]<"u")return c[i];if(i==="before"||i==="after")return this.beforeAfter(e,i);{let a="raw"+xl(i);this[a]?r=this[a](s,e):s.walk(l=>{if(r=l.raws[n],typeof r<"u")return!1})}return typeof r>"u"&&(r=jr[i]),c[i]=r,r}rawBeforeClose(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after<"u")return n=i.raws.after,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawBeforeComment(e,n){let i;return e.walkComments(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeDecl"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeDecl(e,n){let i;return e.walkDecls(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeRule"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeOpen(e){let n;return e.walk(i=>{if(i.type!=="decl"&&(n=i.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(e){let n;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before<"u")return n=i.raws.before,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawColon(e){let n;return e.walkDecls(i=>{if(typeof i.raws.between<"u")return n=i.raws.between.replace(/[^\\s:]/g,""),!1}),n}rawEmptyBody(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(n=i.raws.after,typeof n<"u"))return!1}),n}rawIndent(e){if(e.raws.indent)return e.raws.indent;let n;return e.walk(i=>{let r=i.parent;if(r&&r!==e&&r.parent&&r.parent===e&&typeof i.raws.before<"u"){let o=i.raws.before.split(`\n`);return n=o[o.length-1],n=n.replace(/\\S/g,""),!1}}),n}rawSemicolon(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(n=i.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(e,n){let i=e[n],r=e.raws[n];return r&&r.value===i?r.raw:i}root(e){if(this.body(e),e.raws.after){let n=e.raws.after,i=e.parent&&e.parent.type==="document";this.builder(i?n:je(n))}}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(je(e.raws.ownSemicolon),e,"end")}stringify(e,n){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,n)}};qr.exports=Rt;Rt.default=Rt});var Dt=te((Mm,$r)=>{"use strict";var gl=oi();function si(t,e){new gl(e).stringify(t)}$r.exports=si;si.default=si});var dn=te((Nm,ai)=>{"use strict";ai.exports.isClean=Symbol("isClean");ai.exports.my=Symbol("my")});var Ot=te((_m,Kr)=>{"use strict";var yl=cn(),bl=oi(),Sl=Dt(),{isClean:It,my:Al}=dn();function li(t,e){let n=new t.constructor;for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i)||i==="proxyCache")continue;let r=t[i],o=typeof r;i==="parent"&&o==="object"?e&&(n[i]=e):i==="source"?n[i]=r:Array.isArray(r)?n[i]=r.map(s=>li(s,n)):(o==="object"&&r!==null&&(r=li(r)),n[i]=r)}return n}function Ge(t,e){if(e&&typeof e.offset<"u")return e.offset;let n=1,i=1,r=0;for(let o=0;o<t.length;o++){if(i===e.line&&n===e.column){r=o;break}t[o]===`\n`?(n=1,i+=1):n+=1}return r}var Pt=class{get proxyOf(){return this}constructor(e={}){this.raws={},this[It]=!1,this[Al]=!0;for(let n in e)if(n==="nodes"){this.nodes=[];for(let i of e[n])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[n]=e[n]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\\n\\s{4}at /.test(e.stack)){let n=this.source;e.stack=e.stack.replace(/\\n\\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let n in e)this[n]=e[n];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let n=li(this);for(let i in e)n[i]=e[i];return n}cloneAfter(e={}){let n=this.clone(e);return this.parent.insertAfter(this,n),n}cloneBefore(e={}){let n=this.clone(e);return this.parent.insertBefore(this,n),n}error(e,n={}){if(this.source){let{end:i,start:r}=this.rangeBy(n);return this.source.input.error(e,{column:r.column,line:r.line},{column:i.column,line:i.line},n)}return new yl(e)}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:n==="root"?()=>e.root().toProxy():e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&e.markDirty()),!0}}}markClean(){this[It]=!0}markDirty(){if(this[It]){this[It]=!1;let e=this;for(;e=e.parent;)e[It]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e={}){let n=this.source.start;if(e.index)n=this.positionInside(e.index);else if(e.word){let i="document"in this.source.input?this.source.input.document:this.source.input.css,o=i.slice(Ge(i,this.source.start),Ge(i,this.source.end)).indexOf(e.word);o!==-1&&(n=this.positionInside(o))}return n}positionInside(e){let n=this.source.start.column,i=this.source.start.line,r="document"in this.source.input?this.source.input.document:this.source.input.css,o=Ge(r,this.source.start),s=o+e;for(let c=o;c<s;c++)r[c]===`\n`?(n=1,i+=1):n+=1;return{column:n,line:i,offset:s}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e={}){let n="document"in this.source.input?this.source.input.document:this.source.input.css,i={column:this.source.start.column,line:this.source.start.line,offset:Ge(n,this.source.start)},r=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:Ge(n,this.source.end)+1}:{column:i.column+1,line:i.line,offset:i.offset+1};if(e.word){let s=n.slice(Ge(n,this.source.start),Ge(n,this.source.end)).indexOf(e.word);s!==-1&&(i=this.positionInside(s),r=this.positionInside(s+e.word.length))}else e.start?i={column:e.start.column,line:e.start.line,offset:Ge(n,e.start)}:e.index&&(i=this.positionInside(e.index)),e.end?r={column:e.end.column,line:e.end.line,offset:Ge(n,e.end)}:typeof e.endIndex=="number"?r=this.positionInside(e.endIndex):e.index&&(r=this.positionInside(e.index+1));return(r.line<i.line||r.line===i.line&&r.column<=i.column)&&(r={column:i.column+1,line:i.line,offset:i.offset+1}),{end:r,start:i}}raw(e,n){return new bl().raw(this,e,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let n=this,i=!1;for(let r of e)r===this?i=!0:i?(this.parent.insertAfter(n,r),n=r):this.parent.insertBefore(n,r);i||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,n){let i={},r=n==null;n=n||new Map;let o=0;for(let s in this){if(!Object.prototype.hasOwnProperty.call(this,s)||s==="parent"||s==="proxyCache")continue;let c=this[s];if(Array.isArray(c))i[s]=c.map(a=>typeof a=="object"&&a.toJSON?a.toJSON(null,n):a);else if(typeof c=="object"&&c.toJSON)i[s]=c.toJSON(null,n);else if(s==="source"){if(c==null)continue;let a=n.get(c.input);a==null&&(a=o,n.set(c.input,o),o++),i[s]={end:c.end,inputId:a,start:c.start}}else i[s]=c}return r&&(i.inputs=[...n.keys()].map(s=>s.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=Sl){e.stringify&&(e=e.stringify);let n="";return e(this,i=>{n+=i}),n}warn(e,n,i={}){let r={node:this};for(let o in i)r[o]=i[o];return e.warn(n,r)}};Kr.exports=Pt;Pt.default=Pt});var Ht=te((Tm,Jr)=>{"use strict";var El=Ot(),Bt=class extends El{constructor(e){super(e),this.type="comment"}};Jr.exports=Bt;Bt.default=Bt});var Gt=te((Lm,Yr)=>{"use strict";var wl=Ot(),Wt=class extends wl{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}};Yr.exports=Wt;Wt.default=Wt});var qe=te((vm,oo)=>{"use strict";var Xr=Ht(),Qr=Gt(),Cl=Ot(),{isClean:Zr,my:eo}=dn(),ui,to,no,ci;function io(t){return t.map(e=>(e.nodes&&(e.nodes=io(e.nodes)),delete e.source,e))}function ro(t){if(t[Zr]=!1,t.proxyOf.nodes)for(let e of t.proxyOf.nodes)ro(e)}var Re=class t extends Cl{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...e){for(let n of e){let i=this.normalize(n,this.last);for(let r of i)this.proxyOf.nodes.push(r)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let n of this.nodes)n.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let n=this.getIterator(),i,r;for(;this.indexes[n]<this.proxyOf.nodes.length&&(i=this.indexes[n],r=e(this.proxyOf.nodes[i],i),r!==!1);)this.indexes[n]+=1;return delete this.indexes[n],r}every(e){return this.nodes.every(e)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:e[n]?n==="each"||typeof n=="string"&&n.startsWith("walk")?(...i)=>e[n](...i.map(r=>typeof r=="function"?(o,s)=>r(o.toProxy(),s):r)):n==="every"||n==="some"?i=>e[n]((r,...o)=>i(r.toProxy(),...o)):n==="root"?()=>e.root().toProxy():n==="nodes"?e.nodes.map(i=>i.toProxy()):n==="first"||n==="last"?e[n].toProxy():e[n]:e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="name"||n==="params"||n==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,n){let i=this.index(e),r=this.normalize(n,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let s of r)this.proxyOf.nodes.splice(i+1,0,s);let o;for(let s in this.indexes)o=this.indexes[s],i<o&&(this.indexes[s]=o+r.length);return this.markDirty(),this}insertBefore(e,n){let i=this.index(e),r=i===0?"prepend":!1,o=this.normalize(n,this.proxyOf.nodes[i],r).reverse();i=this.index(e);for(let c of o)this.proxyOf.nodes.splice(i,0,c);let s;for(let c in this.indexes)s=this.indexes[c],i<=s&&(this.indexes[c]=s+o.length);return this.markDirty(),this}normalize(e,n){if(typeof e=="string")e=io(to(e).nodes);else if(typeof e>"u")e=[];else if(Array.isArray(e)){e=e.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>"u")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new Qr(e)]}else if(e.selector||e.selectors)e=[new ci(e)];else if(e.name)e=[new ui(e)];else if(e.text)e=[new Xr(e)];else throw new Error("Unknown node type in node creation");return e.map(r=>(r[eo]||t.rebuild(r),r=r.proxyOf,r.parent&&r.parent.removeChild(r),r[Zr]&&ro(r),r.raws||(r.raws={}),typeof r.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(r.raws.before=n.raws.before.replace(/\\S/g,"")),r.parent=this.proxyOf,r))}prepend(...e){e=e.reverse();for(let n of e){let i=this.normalize(n,this.first,"prepend").reverse();for(let r of i)this.proxyOf.nodes.unshift(r);for(let r in this.indexes)this.indexes[r]=this.indexes[r]+i.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let n;for(let i in this.indexes)n=this.indexes[i],n>=e&&(this.indexes[i]=n-1);return this.markDirty(),this}replaceValues(e,n,i){return i||(i=n,n={}),this.walkDecls(r=>{n.props&&!n.props.includes(r.prop)||n.fast&&!r.value.includes(n.fast)||(r.value=r.value.replace(e,i))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((n,i)=>{let r;try{r=e(n,i)}catch(o){throw n.addToError(o)}return r!==!1&&n.walk&&(r=n.walk(e)),r})}walkAtRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="atrule"&&e.test(i.name))return n(i,r)}):this.walk((i,r)=>{if(i.type==="atrule"&&i.name===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="atrule")return n(i,r)}))}walkComments(e){return this.walk((n,i)=>{if(n.type==="comment")return e(n,i)})}walkDecls(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="decl"&&e.test(i.prop))return n(i,r)}):this.walk((i,r)=>{if(i.type==="decl"&&i.prop===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="decl")return n(i,r)}))}walkRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="rule"&&e.test(i.selector))return n(i,r)}):this.walk((i,r)=>{if(i.type==="rule"&&i.selector===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="rule")return n(i,r)}))}};Re.registerParse=t=>{to=t};Re.registerRule=t=>{ci=t};Re.registerAtRule=t=>{ui=t};Re.registerRoot=t=>{no=t};oo.exports=Re;Re.default=Re;Re.rebuild=t=>{t.type==="atrule"?Object.setPrototypeOf(t,ui.prototype):t.type==="rule"?Object.setPrototypeOf(t,ci.prototype):t.type==="decl"?Object.setPrototypeOf(t,Qr.prototype):t.type==="comment"?Object.setPrototypeOf(t,Xr.prototype):t.type==="root"&&Object.setPrototypeOf(t,no.prototype),t[eo]=!0,t.nodes&&t.nodes.forEach(e=>{Re.rebuild(e)})}});var fn=te((km,ao)=>{"use strict";var so=qe(),ct=class extends so{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};ao.exports=ct;ct.default=ct;so.registerAtRule(ct)});var mn=te((Rm,co)=>{"use strict";var Fl=qe(),lo,uo,rt=class extends Fl{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new lo(new uo,this,e).stringify()}};rt.registerLazyResult=t=>{lo=t};rt.registerProcessor=t=>{uo=t};co.exports=rt;rt.default=rt});var mo=te((Dm,fo)=>{var Ml="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",Nl=(t,e=21)=>(n=e)=>{let i="",r=n|0;for(;r--;)i+=t[Math.random()*t.length|0];return i},_l=(t=21)=>{let e="",n=t|0;for(;n--;)e+=Ml[Math.random()*64|0];return e};fo.exports={nanoid:_l,customAlphabet:Nl}});var pn=te(()=>{});var hn=te(()=>{});var di=te(()=>{});var po=te(()=>{});var mi=te((Vm,go)=>{"use strict";var{existsSync:Tl,readFileSync:Ll}=po(),{dirname:fi,join:vl}=pn(),{SourceMapConsumer:ho,SourceMapGenerator:xo}=hn();function kl(t){return Buffer?Buffer.from(t,"base64").toString():window.atob(t)}var Ut=class{constructor(e,n){if(n.map===!1)return;n.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let i=n.map?n.map.prev:void 0,r=this.loadMap(n.from,i);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=fi(this.mapFile)),r&&(this.text=r)}consumer(){return this.consumerCache||(this.consumerCache=new ho(this.json||this.text)),this.consumerCache}decodeInline(e){let n=/^data:application\\/json;charset=utf-?8;base64,/,i=/^data:application\\/json;base64,/,r=/^data:application\\/json;charset=utf-?8,/,o=/^data:application\\/json,/,s=e.match(r)||e.match(o);if(s)return decodeURIComponent(e.substr(s[0].length));let c=e.match(n)||e.match(i);if(c)return kl(e.substr(c[0].length));let a=e.slice(22);throw a=a.slice(0,a.indexOf(",")),new Error("Unsupported source map encoding "+a)}getAnnotationURL(e){return e.replace(/^\\/\\*\\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let n=e.match(/\\/\\*\\s*# sourceMappingURL=/g);if(!n)return;let i=e.lastIndexOf(n.pop()),r=e.indexOf("*/",i);i>-1&&r>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,r)))}loadFile(e,n,i){if(!(!i&&!this.unsafeMap&&!/\\.map$/i.test(e))&&(this.root=fi(e),Tl(e)))return this.mapFile=e,Ll(e,"utf-8").toString().trim()}loadMap(e,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let i=n(e);if(i){let r=this.loadFile(i,e,!0);if(!r)throw new Error("Unable to load previous source map: "+i.toString());return r}}else{if(n instanceof ho)return xo.fromSourceMap(n).toString();if(n instanceof xo)return n.toString();if(this.isMap(n))return JSON.stringify(n);throw new Error("Unsupported previous source map format: "+n.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let i=this.annotation;e&&(i=vl(fi(e),i));let r=this.loadFile(i,e,!1);if(r)try{this.json=JSON.parse(r.replace(/^\\)]}\'[^\\n]*\\n/,""))}catch{return}return r}}}startWith(e,n){return e?e.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};go.exports=Ut;Ut.default=Ut});var Vt=te((zm,Eo)=>{"use strict";var{nanoid:Rl}=mo(),{isAbsolute:xi,resolve:gi}=pn(),{SourceMapConsumer:Dl,SourceMapGenerator:Il}=hn(),{fileURLToPath:yo,pathToFileURL:xn}=di(),bo=cn(),Pl=mi(),pi=ri(),hi=Symbol("lineToIndexCache"),Ol=!!(Dl&&Il),So=!!(gi&&xi);function Ao(t){if(t[hi])return t[hi];let e=t.css.split(`\n`),n=new Array(e.length),i=0;for(let r=0,o=e.length;r<o;r++)n[r]=i,i+=e[r].length+1;return t[hi]=n,n}var dt=class{get from(){return this.file||this.id}constructor(e,n={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\\uFEFF"||this.css[0]==="\\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,n.document&&(this.document=n.document.toString()),n.from&&(!So||/^\\w+:\\/\\//.test(n.from)||xi(n.from)?this.file=n.from:this.file=gi(n.from)),So&&Ol){let i=new Pl(this.css,n);if(i.text){this.map=i;let r=i.consumer().file;!this.file&&r&&(this.file=this.mapResolve(r))}}this.file||(this.id="<input css "+Rl(6)+">"),this.map&&(this.map.file=this.from)}error(e,n,i,r={}){let o,s,c,a,l;if(n&&typeof n=="object"){let m=n,f=i;if(typeof m.offset=="number"){a=m.offset;let g=this.fromOffset(a);n=g.line,i=g.col}else n=m.line,i=m.column,a=this.fromLineAndColumn(n,i);if(typeof f.offset=="number"){c=f.offset;let g=this.fromOffset(c);s=g.line,o=g.col}else s=f.line,o=f.column,c=this.fromLineAndColumn(f.line,f.column)}else if(i)a=this.fromLineAndColumn(n,i);else{a=n;let m=this.fromOffset(a);n=m.line,i=m.col}let u=this.origin(n,i,s,o);return u?l=new bo(e,u.endLine===void 0?u.line:{column:u.column,line:u.line},u.endLine===void 0?u.column:{column:u.endColumn,line:u.endLine},u.source,u.file,r.plugin):l=new bo(e,s===void 0?n:{column:i,line:n},s===void 0?i:{column:o,line:s},this.css,this.file,r.plugin),l.input={column:i,endColumn:o,endLine:s,endOffset:c,line:n,offset:a,source:this.css},this.file&&(xn&&(l.input.url=xn(this.file).toString()),l.input.file=this.file),l}fromLineAndColumn(e,n){return Ao(this)[e-1]+n-1}fromOffset(e){let n=Ao(this),i=n[n.length-1],r=0;if(e>=i)r=n.length-1;else{let o=n.length-2,s;for(;r<o;)if(s=r+(o-r>>1),e<n[s])o=s-1;else if(e>=n[s+1])r=s+1;else{r=s;break}}return{col:e-n[r]+1,line:r+1}}mapResolve(e){return/^\\w+:\\/\\//.test(e)?e:gi(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,n,i,r){if(!this.map)return!1;let o=this.map.consumer(),s=o.originalPositionFor({column:n,line:e});if(!s.source)return!1;let c;typeof i=="number"&&(c=o.originalPositionFor({column:r,line:i}));let a;xi(s.source)?a=xn(s.source):a=new URL(s.source,this.map.consumer().sourceRoot||xn(this.map.mapFile));let l={column:s.column,endColumn:c&&c.column,endLine:c&&c.line,line:s.line,url:a.toString()};if(a.protocol==="file:")if(yo)l.file=yo(a);else throw new Error("file: protocol is not available in this PostCSS build");let u=o.sourceContentFor(s.source);return u&&(l.source=u),l}toJSON(){let e={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(e[n]=this[n]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};Eo.exports=dt;dt.default=dt;pi&&pi.registerInput&&pi.registerInput(dt)});var ft=te((jm,Mo)=>{"use strict";var wo=qe(),Co,Fo,$e=class extends wo{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,n,i){let r=super.normalize(e);if(n){if(i==="prepend")this.nodes.length>1?n.raws.before=this.nodes[1].raws.before:delete n.raws.before;else if(this.first!==n)for(let o of r)o.raws.before=n.raws.before}return r}removeChild(e,n){let i=this.index(e);return!n&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new Co(new Fo,this,e).stringify()}};$e.registerLazyResult=t=>{Co=t};$e.registerProcessor=t=>{Fo=t};Mo.exports=$e;$e.default=$e;wo.registerRoot($e)});var yi=te((qm,No)=>{"use strict";var zt={comma(t){return zt.split(t,[","],!0)},space(t){let e=[" ",`\n`," "];return zt.split(t,e)},split(t,e,n){let i=[],r="",o=!1,s=0,c=!1,a="",l=!1;for(let u of t)l?l=!1:u==="\\\\"?l=!0:c?u===a&&(c=!1):u===\'"\'||u==="\'"?(c=!0,a=u):u==="("?s+=1:u===")"?s>0&&(s-=1):s===0&&e.includes(u)&&(o=!0),o?(r!==""&&i.push(r.trim()),r="",o=!1):r+=u;return(n||r!=="")&&i.push(r.trim()),i}};No.exports=zt;zt.default=zt});var gn=te(($m,To)=>{"use strict";var _o=qe(),Bl=yi(),mt=class extends _o{get selectors(){return Bl.comma(this.selector)}set selectors(e){let n=this.selector?this.selector.match(/,\\s*/):null,i=n?n[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}};To.exports=mt;mt.default=mt;_o.registerRule(mt)});var vo=te((Km,Lo)=>{"use strict";var Hl=fn(),Wl=Ht(),Gl=Gt(),Ul=Vt(),Vl=mi(),zl=ft(),jl=gn();function jt(t,e){if(Array.isArray(t))return t.map(r=>jt(r));let{inputs:n,...i}=t;if(n){e=[];for(let r of n){let o={...r,__proto__:Ul.prototype};o.map&&(o.map={...o.map,__proto__:Vl.prototype}),e.push(o)}}if(i.nodes&&(i.nodes=t.nodes.map(r=>jt(r,e))),i.source){let{inputId:r,...o}=i.source;i.source=o,r!=null&&(i.source.input=e[r])}if(i.type==="root")return new zl(i);if(i.type==="decl")return new Gl(i);if(i.type==="rule")return new jl(i);if(i.type==="comment")return new Wl(i);if(i.type==="atrule")return new Hl(i);throw new Error("Unknown node type: "+t.type)}Lo.exports=jt;jt.default=jt});var Si=te((Jm,Oo)=>{"use strict";var{dirname:yn,relative:Ro,resolve:Do,sep:Io}=pn(),{SourceMapConsumer:Po,SourceMapGenerator:bn}=hn(),{pathToFileURL:ko}=di(),ql=Vt(),$l=!!(Po&&bn),Kl=!!(yn&&Do&&Ro&&Io),bi=class{constructor(e,n,i,r){this.stringify=e,this.mapOpts=i.map||{},this.root=n,this.opts=i,this.css=r,this.originalCSS=r,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;this.isInline()?e="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?e=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?e=this.mapOpts.annotation(this.opts.to,this.root):e=this.outputFile()+".map";let n=`\n`;this.css.includes(`\\r\n`)&&(n=`\\r\n`),this.css+=n+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let n=this.toUrl(this.path(e.file)),i=e.root||yn(e.file),r;this.mapOpts.sourcesContent===!1?(r=new Po(e.text),r.sourcesContent&&(r.sourcesContent=null)):r=e.consumer(),this.map.applySourceMap(r,n,this.toUrl(this.path(i)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let e;for(let n=this.root.nodes.length-1;n>=0;n--)e=this.root.nodes[n],e.type==="comment"&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(n)}else if(this.css){let e;for(;(e=this.css.lastIndexOf("/*#"))!==-1;){let n=this.css.indexOf("*/",e+3);if(n===-1)break;for(;e>0&&this.css[e-1]===`\n`;)e--;this.css=this.css.slice(0,e)+this.css.slice(n+2)}}}}generate(){if(this.clearAnnotation(),Kl&&$l&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,n=>{e+=n}),[e]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=bn.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new bn({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new bn({file:this.outputFile(),ignoreInvalidMapping:!0});let e=1,n=1,i="<no source>",r={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,s;this.stringify(this.root,(c,a,l)=>{if(this.css+=c,a&&l!=="end"&&(r.generated.line=e,r.generated.column=n-1,a.source&&a.source.start?(r.source=this.sourcePath(a),r.original.line=a.source.start.line,r.original.column=a.source.start.column-1,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,this.map.addMapping(r))),s=c.match(/\\n/g),s?(e+=s.length,o=c.lastIndexOf(`\n`),n=c.length-o):n+=c.length,a&&l!=="start"){let u=a.parent||{raws:{}};(!(a.type==="decl"||a.type==="atrule"&&!a.nodes)||a!==u.last||u.raws.semicolon)&&(a.source&&a.source.end?(r.source=this.sourcePath(a),r.original.line=a.source.end.line,r.original.column=a.source.end.column-1,r.generated.line=e,r.generated.column=n-2,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,r.generated.line=e,r.generated.column=n-1,this.map.addMapping(r)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!0?!1:this.previous().length?this.previous().some(n=>n.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\\w+:\\/\\//.test(e))return e;let n=this.memoizedPaths.get(e);if(n)return n;let i=this.opts.to?yn(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=yn(Do(i,this.mapOpts.annotation)));let r=Ro(i,e);return this.memoizedPaths.set(e,r),r}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let n=e.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let e=new ql(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(n=>{if(n.source){let i=n.source.input.from;if(i&&!e[i]){e[i]=!0;let r=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(r,n.source.input.css)}}});else if(this.css){let n=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(n,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let n=this.memoizedFileURLs.get(e);if(n)return n;if(ko){let i=ko(e).toString();return this.memoizedFileURLs.set(e,i),i}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let n=this.memoizedURLs.get(e);if(n)return n;Io==="\\\\"&&(e=e.replace(/\\\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};Oo.exports=bi});var Wo=te((Ym,Ho)=>{"use strict";var Sn=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,An=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,Jl=/.[\\r\\n"\'(/\\\\]/,Bo=/[\\da-f]/i;Ho.exports=function(e,n={}){let i=e.css.valueOf(),r=n.ignoreErrors,o,s,c,a,l,u,m,f,g,A,y=i.length,x=0,w=[],N=[],L=-1;function $(){return x}function B(F){throw e.error("Unclosed "+F,x)}function _(){return N.length===0&&x>=y}function S(F){if(N.length)return N.pop();if(x>=y)return;let T=F?F.ignoreUnclosed:!1;switch(o=i.charCodeAt(x),o){case 10:case 32:case 9:case 13:case 12:{a=x;do a+=1,o=i.charCodeAt(a);while(o===32||o===10||o===9||o===13||o===12);u=["space",i.slice(x,a)],x=a-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let k=String.fromCharCode(o);u=[k,k,x];break}case 40:{if(A=w.length?w.pop()[1]:"",g=i.charCodeAt(x+1),A==="url"&&g!==39&&g!==34&&g!==32&&g!==10&&g!==9&&g!==12&&g!==13){a=x;do{if(m=!1,a=i.indexOf(")",a+1),a===-1)if(r||T){a=x;break}else B("bracket");for(f=a;i.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);u=["brackets",i.slice(x,a+1),x,a],x=a}else x<=L?u=["(","(",x]:(a=i.indexOf(")",x+1),s=i.slice(x,a+1),a===-1||Jl.test(s)?(L=a===-1?y:a,u=["(","(",x]):(u=["brackets",s,x,a],x=a));break}case 39:case 34:{l=o===39?"\'":\'"\',a=x;do{if(m=!1,a=i.indexOf(l,a+1),a===-1)if(r||T){a=x+1;break}else B("string");for(f=a;i.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);u=["string",i.slice(x,a+1),x,a],x=a;break}case 64:{Sn.lastIndex=x+1,Sn.test(i),Sn.lastIndex===0?a=i.length-1:a=Sn.lastIndex-2,u=["at-word",i.slice(x,a+1),x,a],x=a;break}case 92:{for(a=x,c=!0;i.charCodeAt(a+1)===92;)a+=1,c=!c;if(o=i.charCodeAt(a+1),c&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(a+=1,Bo.test(i.charAt(a)))){for(;Bo.test(i.charAt(a+1));)a+=1;i.charCodeAt(a+1)===32&&(a+=1)}u=["word",i.slice(x,a+1),x,a],x=a;break}default:{o===47&&i.charCodeAt(x+1)===42?(a=i.indexOf("*/",x+2)+1,a===0&&(r||T?a=i.length:B("comment")),u=["comment",i.slice(x,a+1),x,a],x=a):(An.lastIndex=x+1,An.test(i),An.lastIndex===0?a=i.length-1:a=An.lastIndex-2,u=["word",i.slice(x,a+1),x,a],w.push(u),x=a);break}}return x++,u}function C(F){N.push(F)}return{back:C,endOfFile:_,nextToken:S,position:$}}});var zo=te((Xm,Vo)=>{"use strict";var Yl=fn(),Xl=Ht(),Ql=Gt(),Zl=ft(),Go=gn(),eu=Wo(),Uo={empty:!0,space:!0};function tu(t){for(let e=t.length-1;e>=0;e--){let n=t[e],i=n[3]||n[2];if(i)return i}}var Ai=class{constructor(e){this.input=e,this.root=new Zl,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let n=new Yl;n.name=e[1].slice(1),n.name===""&&this.unnamedAtrule(n,e),this.init(n,e[2]);let i,r,o,s=!1,c=!1,a=[],l=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?l.push(i==="("?")":"]"):i==="{"&&l.length>0?l.push("}"):i===l[l.length-1]&&l.pop(),l.length===0)if(i===";"){n.source.end=this.getPosition(e[2]),n.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){c=!0;break}else if(i==="}"){if(a.length>0){for(o=a.length-1,r=a[o];r&&r[0]==="space";)r=a[--o];r&&(n.source.end=this.getPosition(r[3]||r[2]),n.source.end.offset++)}this.end(e);break}else a.push(e);else a.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(n.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(n,"params",a),s&&(e=a[a.length-1],n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++,this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),c&&(n.nodes=[],this.current=n)}checkMissedSemicolon(e){let n=this.colon(e);if(n===!1)return;let i=0,r;for(let o=n-1;o>=0&&(r=e[o],!(r[0]!=="space"&&(i+=1,i===2)));o--);throw this.input.error("Missed semicolon",r[0]==="word"?r[3]+1:r[2])}colon(e){let n=0,i,r,o;for(let[s,c]of e.entries()){if(r=c,o=r[0],o==="("&&(n+=1),o===")"&&(n-=1),n===0&&o===":")if(!i)this.doubleColon(r);else{if(i[0]==="word"&&i[1]==="progid")continue;return s}i=r}return!1}comment(e){let n=new Xl;this.init(n,e[2]),n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++;let i=e[1].slice(2,-2);if(!i.trim())n.text="",n.raws.left=i,n.raws.right="";else{let r=i.match(/^(\\s*)([^]*\\S)(\\s*)$/);n.text=r[2],n.raws.left=r[1],n.raws.right=r[3]}}createTokenizer(){this.tokenizer=eu(this.input)}decl(e,n){let i=new Ql;this.init(i,e[0][2]);let r=e[e.length-1];for(r[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(r[3]||r[2]||tu(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let l=e[0][0];if(l===":"||l==="space"||l==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let o;for(;e.length;)if(o=e.shift(),o[0]===":"){i.raws.between+=o[1];break}else o[0]==="word"&&/\\w/.test(o[1])&&this.unknownWord([o]),i.raws.between+=o[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let s=[],c;for(;e.length&&(c=e[0][0],!(c!=="space"&&c!=="comment"));)s.push(e.shift());this.precheckMissedSemicolon(e);for(let l=e.length-1;l>=0;l--){if(o=e[l],o[1].toLowerCase()==="!important"){i.important=!0;let u=this.stringFrom(e,l);u=this.spacesFromEnd(e)+u,u!==" !important"&&(i.raws.important=u);break}else if(o[1].toLowerCase()==="important"){let u=e.slice(0),m="";for(let f=l;f>0;f--){let g=u[f][0];if(m.trim().startsWith("!")&&g!=="space")break;m=u.pop()[1]+m}m.trim().startsWith("!")&&(i.important=!0,i.raws.important=m,e=u)}if(o[0]!=="space"&&o[0]!=="comment")break}e.some(l=>l[0]!=="space"&&l[0]!=="comment")&&(i.raws.between+=s.map(l=>l[1]).join(""),s=[]),this.raw(i,"value",s.concat(e),n),i.value.includes(":")&&!n&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let n=new Go;this.init(n,e[2]),n.selector="",n.raws.between="",this.current=n}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let n=this.current.nodes[this.current.nodes.length-1];n&&n.type==="rule"&&!n.raws.ownSemicolon&&(n.raws.ownSemicolon=this.spaces,this.spaces="",n.source.end=this.getPosition(e[2]),n.source.end.offset+=n.raws.ownSemicolon.length)}}getPosition(e){let n=this.input.fromOffset(e);return{column:n.col,line:n.line,offset:e}}init(e,n){this.current.push(e),e.source={input:this.input,start:this.getPosition(n)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let n=!1,i=null,r=!1,o=null,s=[],c=e[1].startsWith("--"),a=[],l=e;for(;l;){if(i=l[0],a.push(l),i==="("||i==="[")o||(o=l),s.push(i==="("?")":"]");else if(c&&r&&i==="{")o||(o=l),s.push("}");else if(s.length===0)if(i===";")if(r){this.decl(a,c);return}else break;else if(i==="{"){this.rule(a);return}else if(i==="}"){this.tokenizer.back(a.pop()),n=!0;break}else i===":"&&(r=!0);else i===s[s.length-1]&&(s.pop(),s.length===0&&(o=null));l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),s.length>0&&this.unclosedBracket(o),n&&r){if(!c)for(;a.length&&(l=a[a.length-1][0],!(l!=="space"&&l!=="comment"));)this.tokenizer.back(a.pop());this.decl(a,c)}else this.unknownWord(a)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,n,i,r){let o,s,c=i.length,a="",l=!0,u,m;for(let f=0;f<c;f+=1)o=i[f],s=o[0],s==="space"&&f===c-1&&!r?l=!1:s==="comment"?(m=i[f-1]?i[f-1][0]:"empty",u=i[f+1]?i[f+1][0]:"empty",!Uo[m]&&!Uo[u]?a.slice(-1)===","?l=!1:a+=o[1]:l=!1):a+=o[1];if(!l){let f=i.reduce((g,A)=>g+A[1],"");e.raws[n]={raw:f,value:a}}e[n]=a}rule(e){e.pop();let n=new Go;this.init(n,e[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(n,"selector",e),this.current=n}spacesAndCommentsFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],!(n!=="space"&&n!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let n,i="";for(;e.length&&(n=e[0][0],!(n!=="space"&&n!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],n==="space");)i=e.pop()[1]+i;return i}stringFrom(e,n){let i="";for(let r=n;r<e.length;r++)i+=e[r][1];return e.splice(n,e.length-n),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word "+e[0][1],{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,n){throw this.input.error("At-rule without name",{offset:n[2]},{offset:n[2]+n[1].length})}};Vo.exports=Ai});var wn=te((Qm,jo)=>{"use strict";var nu=qe(),iu=Vt(),ru=zo();function En(t,e){let n=new iu(t,e),i=new ru(n);try{i.parse()}catch(r){throw r}return i.root}jo.exports=En;En.default=En;nu.registerParse(En)});var Ei=te((Zm,qo)=>{"use strict";var qt=class{constructor(e,n={}){if(this.type="warning",this.text=e,n.node&&n.node.source){let i=n.node.rangeBy(n);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in n)this[i]=n[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};qo.exports=qt;qt.default=qt});var Cn=te((ep,$o)=>{"use strict";var ou=Ei(),$t=class{get content(){return this.css}constructor(e,n,i){this.processor=e,this.messages=[],this.root=n,this.opts=i,this.css="",this.map=void 0}toString(){return this.css}warn(e,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let i=new ou(e,n);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}};$o.exports=$t;$t.default=$t});var wi=te((tp,Jo)=>{"use strict";var Ko={};Jo.exports=function(e){Ko[e]||(Ko[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))}});var Mi=te((ip,Zo)=>{"use strict";var su=qe(),au=mn(),lu=Si(),uu=wn(),Yo=Cn(),cu=ft(),du=Dt(),{isClean:Be,my:fu}=dn(),np=wi(),mu={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},pu={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},hu={Once:!0,postcssPlugin:!0,prepare:!0},pt=0;function Kt(t){return typeof t=="object"&&typeof t.then=="function"}function Qo(t){let e=!1,n=mu[t.type];return t.type==="decl"?e=t.prop.toLowerCase():t.type==="atrule"&&(e=t.name.toLowerCase()),e&&t.append?[n,n+"-"+e,pt,n+"Exit",n+"Exit-"+e]:e?[n,n+"-"+e,n+"Exit",n+"Exit-"+e]:t.append?[n,pt,n+"Exit"]:[n,n+"Exit"]}function Xo(t){let e;return t.type==="document"?e=["Document",pt,"DocumentExit"]:t.type==="root"?e=["Root",pt,"RootExit"]:e=Qo(t),{eventIndex:0,events:e,iterator:0,node:t,visitorIndex:0,visitors:[]}}function Ci(t){return t[Be]=!1,t.nodes&&t.nodes.forEach(e=>Ci(e)),t}var Fi={},Ke=class t{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(e,n,i){this.stringified=!1,this.processed=!1;let r;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))r=Ci(n);else if(n instanceof t||n instanceof Yo)r=Ci(n.root),n.map&&(typeof i.map>"u"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=n.map);else{let o=uu;i.syntax&&(o=i.syntax.parse),i.parser&&(o=i.parser),o.parse&&(o=o.parse);try{r=o(n,i)}catch(s){this.processed=!0,this.error=s}r&&!r[fu]&&su.rebuild(r)}this.result=new Yo(e,r,i),this.helpers={...Fi,postcss:Fi,result:this.result},this.plugins=this.processor.plugins.map(o=>typeof o=="object"&&o.prepare?{...o,...o.prepare(this.result)}:o)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,n){let i=this.result.lastPlugin;try{n&&n.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=i.postcssPlugin,e.setMessage()):i.postcssVersion}catch(r){console&&console.error&&console.error(r)}return e}prepareVisitors(){this.listeners={};let e=(n,i,r)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([n,r])};for(let n of this.plugins)if(typeof n=="object")for(let i in n){if(!pu[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!hu[i])if(typeof n[i]=="object")for(let r in n[i])r==="*"?e(n,i,n[i][r]):e(n,i+"-"+r.toLowerCase(),n[i][r]);else typeof n[i]=="function"&&e(n,i,n[i])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let n=this.plugins[e],i=this.runOnRoot(n);if(Kt(i))try{await i}catch(r){throw this.handleError(r)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Be];){e[Be]=!0;let n=[Xo(e)];for(;n.length>0;){let i=this.visitTick(n);if(Kt(i))try{await i}catch(r){let o=n[n.length-1].node;throw this.handleError(r,o)}}}if(this.listeners.OnceExit)for(let[n,i]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(e.type==="document"){let r=e.nodes.map(o=>i(o,this.helpers));await Promise.all(r)}else await i(e,this.helpers)}catch(r){throw this.handleError(r)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return Kt(n[0])?Promise.all(n):n}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(n){throw this.handleError(n)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,n=du;e.syntax&&(n=e.syntax.stringify),e.stringifier&&(n=e.stringifier),n.stringify&&(n=n.stringify);let i=this.result.root.source;if(e.map===void 0&&!(i&&i.input&&i.input.map)){let s="";return n(this.result.root,c=>{s+=c}),this.result.css=s,this.result}let o=new lu(n,this.result.root,this.result.opts).generate();return this.result.css=o[0],this.result.map=o[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let n=this.runOnRoot(e);if(Kt(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Be];)e[Be]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let n of e.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,n){return this.async().then(e,n)}toString(){return this.css}visitSync(e,n){for(let[i,r]of e){this.result.lastPlugin=i;let o;try{o=r(n,this.helpers)}catch(s){throw this.handleError(s,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(Kt(o))throw this.getAsyncError()}}visitTick(e){let n=e[e.length-1],{node:i,visitors:r}=n;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(r.length>0&&n.visitorIndex<r.length){let[s,c]=r[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===r.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=s;try{return c(i.toProxy(),this.helpers)}catch(a){throw this.handleError(a,i)}}if(n.iterator!==0){let s=n.iterator,c;for(;c=i.nodes[i.indexes[s]];)if(i.indexes[s]+=1,!c[Be]){c[Be]=!0,e.push(Xo(c));return}n.iterator=0,delete i.indexes[s]}let o=n.events;for(;n.eventIndex<o.length;){let s=o[n.eventIndex];if(n.eventIndex+=1,s===pt){i.nodes&&i.nodes.length&&(i[Be]=!0,n.iterator=i.getIterator());return}else if(this.listeners[s]){n.visitors=this.listeners[s];return}}e.pop()}walkSync(e){e[Be]=!0;let n=Qo(e);for(let i of n)if(i===pt)e.nodes&&e.each(r=>{r[Be]||this.walkSync(r)});else{let r=this.listeners[i];if(r&&this.visitSync(r,e.toProxy()))return}}warnings(){return this.sync().warnings()}};Ke.registerPostcss=t=>{Fi=t};Zo.exports=Ke;Ke.default=Ke;cu.registerLazyResult(Ke);au.registerLazyResult(Ke)});var ts=te((op,es)=>{"use strict";var xu=Si(),gu=wn(),yu=Cn(),bu=Dt(),rp=wi(),Jt=class{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,n=gu;try{e=n(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,n,i){n=n.toString(),this.stringified=!1,this._processor=e,this._css=n,this._opts=i,this._map=void 0;let r=bu;this.result=new yu(this._processor,void 0,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let s=new xu(r,void 0,this._opts,n);if(s.isMap()){let[c,a]=s.generate();c&&(this.result.css=c),a&&(this.result.map=a)}else s.clearAnnotation(),this.result.css=s.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,n){return this.async().then(e,n)}toString(){return this._css}warnings(){return[]}};es.exports=Jt;Jt.default=Jt});var is=te((sp,ns)=>{"use strict";var Su=mn(),Au=Mi(),Eu=ts(),wu=ft(),ot=class{constructor(e=[]){this.version="8.5.14",this.plugins=this.normalize(e)}normalize(e){let n=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))n=n.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)n.push(i);else if(typeof i=="function")n.push(i);else if(!(typeof i=="object"&&(i.parse||i.stringify)))throw new Error(i+" is not a PostCSS plugin");return n}process(e,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new Eu(this,e,n):new Au(this,e,n)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};ns.exports=ot;ot.default=ot;wu.registerProcessor(ot);Su.registerProcessor(ot)});var ds=te((ap,cs)=>{"use strict";var rs=fn(),os=Ht(),Cu=qe(),Fu=cn(),ss=Gt(),as=mn(),Mu=vo(),Nu=Vt(),_u=Mi(),Tu=yi(),Lu=Ot(),vu=wn(),Ni=is(),ku=Cn(),ls=ft(),us=gn(),Ru=Dt(),Du=Ei();function le(...t){return t.length===1&&Array.isArray(t[0])&&(t=t[0]),new Ni(t)}le.plugin=function(e,n){let i=!1;function r(...s){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(e+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let c=n(...s);return c.postcssPlugin=e,c.postcssVersion=new Ni().version,c}let o;return Object.defineProperty(r,"postcss",{get(){return o||(o=r()),o}}),r.process=function(s,c,a){return le([r(a)]).process(s,c)},r};le.stringify=Ru;le.parse=vu;le.fromJSON=Mu;le.list=Tu;le.comment=t=>new os(t);le.atRule=t=>new rs(t);le.decl=t=>new ss(t);le.rule=t=>new us(t);le.root=t=>new ls(t);le.document=t=>new as(t);le.CssSyntaxError=Fu;le.Declaration=ss;le.Container=Cu;le.Processor=Ni;le.Document=as;le.Comment=os;le.Warning=Du;le.AtRule=rs;le.Result=ku;le.Input=Nu;le.Rule=us;le.Root=ls;le.Node=Lu;_u.registerPostcss(le);cs.exports=le;le.default=le});function ln(){return globalThis}function v(t,e){if(typeof window>"u")return;let n=ln(),i=n.__hf?.onSwallowed;if(i)try{i({label:t,error:e})}catch(r){}(n.__hfDebug||n.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${t} swallowed:`,e)}function Ee(t){try{window.parent.postMessage(t,"*")}catch(e){v("bridge.postMessage",e)}}var Ia={play:(t,e)=>e.onPlay(),pause:(t,e)=>e.onPause(),"stop-media":(t,e)=>e.onStopMedia(),seek:(t,e)=>e.onSeek(Number(t.frame??0),t.seekMode??"commit"),tick:(t,e)=>e.onTick(),"set-muted":(t,e)=>e.onSetMuted(!!t.muted),"set-volume":(t,e)=>e.onSetVolume(Math.max(0,Math.min(1,Number(t.volume??1)))),"set-media-output-muted":(t,e)=>e.onSetMediaOutputMuted(!!t.muted),"set-native-media-sync-disabled":(t,e)=>e.onSetNativeMediaSyncDisabled(!!t.disabled),"set-web-audio-media-disabled":(t,e)=>e.onSetWebAudioMediaDisabled(!!t.disabled),"set-playback-rate":(t,e)=>e.onSetPlaybackRate(Number(t.playbackRate??1)),"set-color-grading":(t,e)=>e.onSetColorGrading(t.target??null,t.grading??null),"set-color-grading-compare":(t,e)=>e.onSetColorGradingCompare(t.target??null,t.compare??null),"enable-pick-mode":(t,e)=>e.onEnablePickMode(),"disable-pick-mode":(t,e)=>e.onDisablePickMode(),"flash-elements":t=>Pa(t)};function Pa(t){let e=t.selectors,n=t.duration||800;e&&Oa(e,n)}function ar(t){let e=n=>{let i=n.data;if(!i||i.source!=="hf-parent"||i.type!=="control")return;let r=i.action;if(typeof r!="string")return;let o=Ia[r];o&&o(i,t)};return window.addEventListener("message",e),Ee({source:"hf-preview",type:"ready"}),e}function Oa(t,e){if(!document.getElementById("__hf-flash-styles")){let n=document.createElement("style");n.id="__hf-flash-styles",n.textContent=`\n .__hf-flash {\n outline: 2px solid rgba(59, 130, 246, 0.6) !important;\n outline-offset: 2px !important;\n animation: __hf-flash-pulse ${e}ms ease-out forwards !important;\n }\n @keyframes __hf-flash-pulse {\n 0% { outline-color: rgba(59, 130, 246, 0.8); }\n 100% { outline-color: transparent; }\n }\n `,document.head.appendChild(n)}for(let n of t)try{document.querySelectorAll(n).forEach(r=>{r.classList.add("__hf-flash"),setTimeout(()=>r.classList.remove("__hf-flash"),e)})}catch(i){v("bridge.flashElements.querySelector",i)}}var jn=null;function lr(t){jn=t}function Ct(t,e){if(jn)try{jn({source:"hf-preview",type:"analytics",event:t,properties:e??{}})}catch(n){v("runtime.analytics.site1",n)}}function ur(t){let e=[],n=l=>{if(typeof l.getAnimations!="function")return[];try{return l.getAnimations()}catch{return[]}},i=l=>t?.resolveStartSeconds?t.resolveStartSeconds(l):Number.parseFloat(l.getAttribute("data-start")??"0")||0,r=(l,u)=>{let m=null;try{m=l.effect?.getComputedTiming?.()??null}catch(g){v("runtime.adapters.css.site5",g)}if(!m)return{};let f=Number(m.endTime);return Number.isFinite(f)?{endSeconds:u+f/1e3}:{unbounded:!0}},o=(l,u)=>{for(let m of l){try{m.currentTime=u}catch(f){v("runtime.adapters.css.site1",f)}try{m.pause()}catch(f){v("runtime.adapters.css.site2",f)}}},s=l=>{for(let u of l)try{u.play()}catch(m){v("runtime.adapters.css.site3",m)}},c=l=>{for(let u of l)try{u.pause()}catch(m){v("runtime.adapters.css.site4",m)}},a=l=>{l.baseDelay?l.el.style.animationDelay=l.baseDelay:l.el.style.removeProperty("animation-delay"),l.basePlayState?l.el.style.animationPlayState=l.basePlayState:l.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{e=[];let l=document.querySelectorAll("*");for(let u of l){if(!(u instanceof HTMLElement))continue;let m=window.getComputedStyle(u);!m.animationName||m.animationName==="none"||e.push({el:u,baseDelay:u.style.animationDelay||"",basePlayState:u.style.animationPlayState||"",animations:n(u)})}},getInferredDurationSeconds:()=>{let l=0;for(let u of e){if(!u.el.isConnected)continue;let m=i(u.el);for(let f of n(u.el)){let g=r(f,m);g.endSeconds!=null&&(l=Math.max(l,g.endSeconds))}}return l>0?l:null},seek:l=>{let u=Number(l.time)||0;for(let m of e){if(!m.el.isConnected)continue;let f=i(m.el),g=Math.max(0,u-f)*1e3,A=m.animations;if(A.length>0){o(A,g);continue}m.el.style.animationPlayState="paused",m.el.style.animationDelay=`-${(g/1e3).toFixed(3)}s`}},pause:()=>{for(let l of e){if(!l.el.isConnected)continue;let u=l.animations;u.length>0&&c(u),a(l)}},play:()=>{for(let l of e)l.el.isConnected&&(a(l),s(l.animations))},revert:()=>{e=[]}}}function cr(t){return{name:"gsap",discover:()=>{},seek:e=>{let n=t.getTimeline();if(!n)return;n.pause();let i=Math.max(0,Number(e.time)||0);typeof n.totalTime=="function"?(n.totalTime(i+.001,!0),n.totalTime(i,!1)):n.seek(i,!1)},pause:()=>{let e=t.getTimeline();e&&e.pause()}}}function dr(){return{name:"animejs",discover:()=>{try{let t=window.anime;if(!t||typeof t.running>"u")return;let e=t.running;if(!Array.isArray(e)||e.length===0)return;let n=window.__hfAnime??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfAnime=n}catch(t){v("runtime.adapters.animejs.site1",t)}},seek:t=>{let e=Math.max(0,(Number(t.time)||0)*1e3),n=window.__hfAnime;if(!(!n||n.length===0))for(let i of n)try{typeof i.seek=="function"&&i.seek(e)}catch(r){v("runtime.adapters.animejs.site2",r)}},pause:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.pause=="function"&&e.pause()}catch(n){v("runtime.adapters.animejs.site3",n)}},play:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.play=="function"&&e.play()}catch(n){v("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function mr(){return{name:"lottie",discover:()=>{try{let t=window.lottie;if(t&&typeof t.getRegisteredAnimations=="function"){let e=t.getRegisteredAnimations();if(Array.isArray(e)&&e.length>0){let n=window.__hfLottie??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfLottie=n}}}catch(t){v("runtime.adapters.lottie.site1",t)}},seek:t=>{let e=Math.max(0,Number(t.time)||0),n=window.__hfLottie;if(!(!n||n.length===0))for(let i of n)try{if(qn(i))i.goToAndStop(e*1e3,!1);else if($n(i)){if(typeof i.setCurrentRawFrameValue=="function"){let r=i.totalFrames??0,o=i.frameRate??30,s=e*o;r>0&&i.setCurrentRawFrameValue(Math.min(s,r-1))}else if(typeof i.seek=="function"){let r=i.duration??1,o=Math.min(100,e/r*100);i.seek(o)}}}catch(r){v("runtime.adapters.lottie.site2",r)}},pause:()=>{let t=window.__hfLottie;if(!(!t||t.length===0))for(let e of t)try{(qn(e)||$n(e))&&e.pause()}catch(n){v("runtime.adapters.lottie.site3",n)}},revert:()=>{},getInferredDurationSeconds:()=>{let t=window.__hfLottie;if(!t||t.length===0)return null;let e=0,n=!1;for(let i of t){let r=null;try{r=Ba(i)}catch(o){v("runtime.adapters.lottie.site4",o)}r!=null&&(n=!0,e=Math.max(e,r))}return n?e:null}}}function fr(t,e){return!Number.isFinite(t)||!t||t<=0||!Number.isFinite(e)||!e||e<=0?null:t/e}function Ba(t){return qn(t)?fr(t.totalFrames,t.frameRate):$n(t)?Number.isFinite(t.duration)&&(t.duration??0)>0?t.duration??null:fr(t.totalFrames,t.frameRate):null}function qn(t){return typeof t=="object"&&t!==null&&typeof t.goToAndStop=="function"}function $n(t){return typeof t=="object"&&t!==null&&typeof t.pause=="function"&&("totalFrames"in t||"duration"in t)}var Kn=-1;function un(t){if(t!==Kn){Kn=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(e){v("runtime.adapters.seek-dispatch.site1",e)}}}function pr(t){Kn=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(e){v("runtime.adapters.seek-dispatch.force",e)}}function hr(){let t=null,e=0,n=null,i=null,r=null,o=null,s=()=>{if(typeof window>"u")return null;let u=window.THREE?.DefaultLoadingManager;return!u||typeof u!="object"||typeof u.itemsLoaded!="number"||typeof u.itemsTotal!="number"?null:u},c=l=>{o||l.itemsTotal<=l.itemsLoaded||(o=new Promise(u=>{l.onLoad=function(){try{r?.call(this)}finally{o=null,l.onLoad=r??null,u()}}}))},a=l=>{n!==l&&(n=l,i=l.onStart??null,r=l.onLoad??null,l.onStart=function(u,m,f){try{i?.call(this,u,m,f)}finally{c(l)}})};return{name:"three",discover:()=>{let l=s();l&&(a(l),c(l))},seek:l=>{t=Math.max(0,Number(l.time)||0),e=t,window.__hfThreeTime=t,un(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0},getReadyPromise:()=>{let l=s();return!l||l.itemsTotal<=l.itemsLoaded?null:(o||c(l),o)}}}function Oe(t){let e=null,n=new WeakSet;return{name:t.name,discover:()=>{},seek:()=>{},pause:()=>{},play:()=>{},revert:()=>{},getReadyPromise:()=>{let i=t.getInstances();if(i.length===0)return null;let r=i.filter(o=>!n.has(o));return r.length===0?null:e||(e=Promise.allSettled(r.map(o=>t.waitFor(o).then(()=>{n.add(o)}))).then(()=>{e=null}),e)}}}function xr(){return Oe({name:"mapbox",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfMapbox;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>{if(t.loaded()){e();return}t.on("load",e)})})}function gr(){return Oe({name:"leaflet",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfLeaflet;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>t.whenReady(e))})}function yr(){return Oe({name:"google-maps",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfGoogleMaps;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>{let n=t.addListener("tilesloaded",()=>{n.remove(),e()})})})}function br(){return Oe({name:"maplibre",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfMaplibre;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>{if(t.loaded()){e();return}t.on("load",e)})})}function Sr(){return Oe({name:"d3",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfD3;return Array.isArray(t)?t:[]},waitFor:t=>t.end()})}function Ar(){let t=null,e=0;return{name:"typegpu",discover:()=>{},seek:n=>{t=Math.max(0,Number(n.time)||0),e=t,window.__hfTypegpuTime=t,un(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0}}}function Er(t){let e=t.nextElementSibling;if(e instanceof HTMLImageElement&&e.classList.contains("__render_frame__")&&e.complete&&e.naturalWidth>0)return e;if(t.id){let n=document.getElementById(`__render_frame_${t.id}__`);if(n instanceof HTMLImageElement&&n.complete&&n.naturalWidth>0)return n}return null}function wr(){let t=globalThis.GPUQueue;if(!t?.prototype?.copyExternalImageToTexture)return;let e=t.prototype.copyExternalImageToTexture;t.prototype.copyExternalImageToTexture=function(n,i,r){if(n?.source instanceof HTMLVideoElement){let o=Er(n.source);if(o)return e.call(this,{...n,source:o},i,r)}return e.call(this,n,i,r)}}function Cr(){let t=[globalThis.WebGL2RenderingContext,globalThis.WebGLRenderingContext],e=["texImage2D","texSubImage2D"];for(let n of t){let i=n?.prototype;if(i)for(let r of e){let o=i[r];if(typeof o!="function"||o.__hfVideoPatched)continue;let s=function(...c){let a=c.length-1,l=c[a];if(l instanceof HTMLVideoElement){let u=Er(l);u&&(c[a]=u)}return o.apply(this,c)};s.__hfVideoPatched=!0,i[r]=s}}}function Fr(){let t=!1,e=0,n=!1,i,r,o,s=new Set,c=new WeakMap,a=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},l=x=>{let w=Number(x.currentTime);return Number.isFinite(w)&&w>0?w:0},u=(x,w)=>w<=0?x:x>=w?Math.max(0,x-w):x,m=(x,w)=>{let N=c.get(x);if(N)return N;let L={compositionTimeMs:w,animationTimeMs:t?u(l(x),w):l(x)};return c.set(x,L),L},f=(x,w)=>{if(!s.has(x)){s.add(x);let N=()=>{s.delete(x)};try{x.addEventListener("finish",N,{once:!0}),x.addEventListener("cancel",N,{once:!0})}catch(L){v("runtime.adapters.waapi.site4",L)}}m(x,w)},g=(x,w)=>{for(let N of x)f(N,w)},A=()=>{if(n||typeof Element>"u")return;let x=Element.prototype;if(typeof x.animate!="function"||x.__hfOriginalAnimate)return;let w=x.animate;try{Object.defineProperty(x,"__hfOriginalAnimate",{value:w,configurable:!0});let N=function(...L){let $=w.apply(this,L);return f($,e),$};x.animate=N,i=x,r=w,o=N,n=!0}catch{}},y=x=>{let w=null;try{w=x.effect?.getComputedTiming?.()??null}catch($){v("runtime.adapters.waapi.site4",$)}if(!w)return{};let N=Number(w.endTime);return Number.isFinite(N)?{endSeconds:(c.get(x)?.compositionTimeMs??0)/1e3+N/1e3}:{unbounded:!0}};return{name:"waapi",discover:()=>{t=!0,A(),g(a(),e)},seek:x=>{let w=Math.max(0,(Number(x.time)||0)*1e3);e=w,(!t||s.size>0)&&g(a(),t?w:0);for(let N of s){let L=t?m(N,w):m(N,0),$=L.animationTimeMs+Math.max(0,w-L.compositionTimeMs);try{N.currentTime=$}catch(B){v("runtime.adapters.waapi.site1",B)}try{N.pause()}catch(B){v("runtime.adapters.waapi.site2",B)}}},pause:()=>{t||g(a(),e);for(let x of s)try{x.pause()}catch(w){v("runtime.adapters.waapi.site3",w)}},revert:()=>{if(s.clear(),c=new WeakMap,t=!1,e=0,i&&r&&o&&i.animate===o)try{i.animate=r,i.__hfOriginalAnimate===r&&delete i.__hfOriginalAnimate}catch(x){v("runtime.adapters.waapi.site5",x)}i=void 0,r=void 0,o=void 0,n=!1},getInferredDurationSeconds:()=>{let x=0;for(let w of a()){let N=y(w);N.endSeconds!=null&&(x=Math.max(x,N.endSeconds))}return x>0?x:null}}}function Mr(t,e){if(t.length===0)return 1;let n=0;for(;n<t.length-2&&e>=t[n+1].time;)n+=1;let i=t[n],r=t[n+1]??i,o=r.time-i.time,s=o<=0?0:Math.min(1,Math.max(0,(e-i.time)/o));return i.volume+(r.volume-i.volume)*s}function Ha(t,e,n,i){let r=Number.parseFloat(t.dataset.start??"0")||0,o=Number.parseFloat(t.dataset.end??""),s=Number.parseFloat(t.dataset.duration??""),c=Number.isFinite(o)&&o>r?o:Number.isFinite(s)&&s>0?r+s:n,a=Number.parseFloat(t.dataset.volume??""),l=Number.isFinite(a)?Math.max(0,Math.min(1,a)):1;t.volume=l;let u=1/Math.min(60,Math.max(1,i)),m=Math.max(0,r),f=Math.min(n,c),g=[];for(let y=m;y<=f+1e-6;y+=u){let x=Math.min(f,y);e(x);let w=Number(t.volume);if(!Number.isFinite(w))continue;let N=Math.max(0,Math.min(1,w)),L=g.at(-1);if((!L||Math.abs(L.volume-N)>1e-4||x===f)&&g.push({time:Number(x.toFixed(6)),volume:Number(N.toFixed(6))}),x===f)break}return g.some(y=>Math.abs(y.volume-l)>1e-4)?g:null}function Nr(t,e,n,i){if(!e||!(t instanceof HTMLAudioElement)&&!(t instanceof HTMLVideoElement)||n<=0)return;let o=Ha(t,s=>{try{typeof e.totalTime=="function"?e.totalTime(s,!0):typeof e.seek=="function"&&e.seek(s,!0)}catch{}},n,60);o&&i.set(t,o)}function Nt(t){let e=t.defaultPlaybackRate;return Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1}function _r(t){let e=Array.from(document.querySelectorAll("video, audio")),n=t?.shouldIncludeElement?e.filter(s=>t.shouldIncludeElement?.(s)):e.filter(s=>s.hasAttribute("data-start")),i=[],r=[],o=0;for(let s of n){let c=t?.resolveStartSeconds?t.resolveStartSeconds(s):Number.parseFloat(s.dataset.start??"0");if(!Number.isFinite(c))continue;let a=Number.parseFloat(s.dataset.playbackStart??s.dataset.mediaStart??"0")||0,l=Nt(s),u=s.loop,m=Number.isFinite(s.duration)&&s.duration>0?s.duration:null,f=t?.resolveDurationSeconds?.(s)??Number.parseFloat(s.dataset.duration??"");(!Number.isFinite(f)||f<=0)&&m!=null&&(f=Math.max(0,(m-a)/l));let g=Number.isFinite(f)&&f>0?c+f:Number.POSITIVE_INFINITY,A=Number.parseFloat(s.dataset.volume??""),y={el:s,start:c,mediaStart:a,duration:Number.isFinite(f)&&f>0?f:Number.POSITIVE_INFINITY,end:g,volume:Number.isFinite(A)?A:null,playbackRate:l,loop:u,sourceDuration:m};i.push(y),s.tagName==="VIDEO"&&r.push(y),Number.isFinite(g)&&(o=Math.max(o,g))}return{timedMediaEls:n,mediaClips:i,videoClips:r,maxMediaEnd:o}}var Jn=new WeakMap,Ft=new WeakMap,Yn=new WeakSet,lt=new WeakSet;function Wa(t){if(lt.has(t))return;lt.add(t);let e=()=>lt.delete(t);t.addEventListener("playing",e,{once:!0}),t.addEventListener("pause",e,{once:!0}),t.addEventListener("error",e,{once:!0})}var Ga=3;function Ua(t){return t.error!=null||t.networkState===Ga}var Xn=new WeakMap;function Mt(t){return Number.isFinite(t)?Math.max(0,Math.min(1,t)):1}function Tr(t){let e=!!(t.outputMuted||t.userMuted);for(let n of t.clips){let{el:i}=n;if(!i.isConnected)continue;let r=(t.timeSeconds-n.start)*n.playbackRate+n.mediaStart;if(t.timeSeconds>=n.start&&t.timeSeconds<=n.end&&r>=0&&(!i.ended||n.loop)){if(n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let T=n.sourceDuration-n.mediaStart;T>0&&r>=n.sourceDuration&&(r=n.mediaStart+(r-n.mediaStart)%T)}let s=Mt(t.userVolume??1),c=Mt(n.volume??1),a=Xn.get(i),l=Mt(i.volume),u;n.volumeKeyframes&&n.volumeKeyframes.length>0?u=Mt(Mr(n.volumeKeyframes,r)):a===void 0||Math.abs(l-a)>1e-4?u=l:u=c;let m=Mt(u*s);i.volume=m,Xn.set(i,m),t.onElementVolume?.(i,m),(e||t.isWebAudioOwned?.(i))&&(i.muted=!0),i.preload!=="auto"&&(i.preload="auto");try{i.playbackRate=n.playbackRate*t.playbackRate}catch(T){v("runtime.media.site1",T)}let f=.04,g=2,A=i.currentTime||0,y=Math.abs(A-r),x=r-A,w=Jn.get(i);Jn.set(i,x);let N=w===void 0,L=!N&&Math.abs(x-w)>.5,$=y>3,B=y>.5&&(N||L||$),_=i.tagName==="VIDEO"&&!i.paused,S=w!==void 0&&Math.abs(x-w)<.004,C=!1;if(!_&&!B&&!N&&S&&y>f){let T=(Ft.get(i)??0)+1;Ft.set(i,T),T>=g&&(C=!0,Ft.set(i,0))}else y<=f&&Ft.set(i,0);let F=!_&&t.forceSync&&y>.02;if(B||C||F){if(!(i.tagName==="VIDEO"&&i.id&&!!document.getElementById(`__render_frame_${i.id}__`))){try{i.currentTime=r}catch(k){v("runtime.media.site2",k)}if(Math.abs(i.currentTime-r)>.5&&!Yn.has(i)){Yn.add(i),i.load();try{i.currentTime=r}catch(k){v("runtime.media.site3",k)}}}lt.delete(i)}t.playing&&i.paused&&!lt.has(i)&&!Ua(i)?(Wa(i),i.play().catch(T=>{lt.delete(i),(T&&typeof T=="object"&&"name"in T?String(T.name??""):"")==="NotAllowedError"&&t.onAutoplayBlocked?.()})):!t.playing&&!i.paused&&i.pause();continue}Jn.delete(i),Ft.delete(i),Yn.delete(i),Xn.delete(i),i.paused||i.pause()}}var Va=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),za=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(","),ja="data-hf-color-grading-source-hidden";function Lr(t){let e=!1,n=null,i=null,r=null,o=null;function s(S,C){try{window.dispatchEvent(new CustomEvent(S,{detail:C}))}catch(F){v("runtime.picker.site1",F)}}function c(S){r=S,s("hyperframe:picker:hovered",{elementInfo:r,isPickMode:e,timestamp:Date.now()})}function a(S){o=S,s("hyperframe:picker:selected",{elementInfo:o,isPickMode:e,timestamp:Date.now()})}function l(S){let C=S.ownerDocument.defaultView;if(!C)return!1;let F=S;for(;F&&F!==document.body&&F!==document.documentElement;){let T=C.getComputedStyle(F);if(T.display==="none"||T.visibility==="hidden"||T.pointerEvents==="none")return!0;let k=Number.parseFloat(T.opacity);if(Number.isFinite(k)&&k<=.01&&!F.hasAttribute(ja))return!0;F=F.parentElement}return!1}function u(S){if(!S||S===document.body||S===document.documentElement)return!1;let C=S.tagName.toLowerCase();return!(C==="script"||C==="style"||C==="link"||C==="meta"||S.classList.contains("__hf-pick-highlight")||S.closest(Va)||l(S))}function m(S){return!!S?.closest(za)}function f(S){let C=S;if(C.id)return`#${C.id}`;let F=S.getAttribute("data-composition-id");if(F)return`[data-composition-id="${CSS.escape(F)}"]`;let T=S.getAttribute("data-composition-src");if(T)return`[data-composition-src="${CSS.escape(T)}"]`;let k=S.getAttribute("data-track-index");if(k)return`[data-track-index="${CSS.escape(k)}"]`;let G=S.tagName.toLowerCase(),j=S.parentElement;if(!j)return G;let ie=j.querySelectorAll(`:scope > ${G}`);if(ie.length===1)return G;for(let P=0;P<ie.length;P+=1)if(ie[P]===S)return`${G}:nth-of-type(${P+1})`;return G}function g(S){let C=S.tagName.toLowerCase(),F=(S.textContent??"").trim().replace(/\\s+/g," "),T=(k,G)=>k.length>G?`${k.slice(0,G-1)}\\u2026`:k;return C==="h1"||C==="h2"||C==="h3"?"Heading":C==="p"||C==="span"||C==="div"?F.length>0?T(F,56):"Text":C==="img"?"Image":C==="video"?"Video":C==="audio"?"Audio":C==="svg"?"Shape":S.getAttribute("data-composition-src")?"Composition":C==="section"?"Section":`${C.charAt(0).toUpperCase()}${C.slice(1)}`}function A(S,C,F){let T=typeof F=="number"&&F>0?F:8,k=[];if(document.elementsFromPoint)k=document.elementsFromPoint(S,C);else if(document.elementFromPoint){let ie=document.elementFromPoint(S,C);k=ie?[ie]:[]}if(m(k[0]??null))return[];let G={},j=[];for(let ie=0;ie<k.length;ie+=1){let P=k[ie];if(!u(P))continue;let se=`${P.tagName}::${P.id||""}::${ie}`;if(!G[se]&&(G[se]=!0,j.push(P),j.length>=T))break}return j}function y(S){let C=S.getBoundingClientRect(),F={};for(let k=0;k<S.attributes.length;k+=1){let G=S.attributes[k];G.name.startsWith("data-")&&(F[G.name]=G.value)}return{id:S.id||null,tagName:S.tagName.toLowerCase(),selector:f(S),label:g(S),boundingBox:{x:C.left,y:C.top,width:C.width,height:C.height},textContent:S.textContent?S.textContent.trim().slice(0,200):null,src:S.getAttribute("src")||S.getAttribute("data-composition-src")||null,dataAttributes:F}}function x(S,C,F){return A(S,C,F).map(y)}function w(S){if(!e)return;let F=A(S.clientX,S.clientY,1)[0]??(S.target instanceof Element?S.target:null);if(!u(F)||n===F)return;n&&n.classList.remove("__hf-pick-highlight"),n=F,F.classList.add("__hf-pick-highlight");let T=y(F);c(T),t.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:T})}function N(S){if(!e)return;S.preventDefault(),S.stopPropagation(),S.stopImmediatePropagation();let C=x(S.clientX,S.clientY,8);C.length!==0&&(c(C[0]??null),t.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:C,selectedIndex:0,point:{x:S.clientX,y:S.clientY}}))}function L(S){S.key==="Escape"&&(B(),t.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function $(){e||(e=!0,i=document.createElement("style"),i.textContent=[".__hf-pick-highlight { outline: 2px solid #4f8cf7 !important; outline-offset: 2px; cursor: crosshair !important; }",".__hf-pick-active * { cursor: crosshair !important; }"].join(`\n`),document.head.appendChild(i),document.body.classList.add("__hf-pick-active"),document.addEventListener("mousemove",w,!0),document.addEventListener("click",N,!0),document.addEventListener("keydown",L,!0),s("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function B(){e&&(e=!1,n&&(n.classList.remove("__hf-pick-highlight"),n=null),i&&(i.remove(),i=null),document.body.classList.remove("__hf-pick-active"),document.removeEventListener("mousemove",w,!0),document.removeEventListener("click",N,!0),document.removeEventListener("keydown",L,!0),s("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function _(){window.__HF_PICKER_API={enable:$,disable:B,isActive:()=>e,getHovered:()=>r,getSelected:()=>o,getCandidatesAtPoint:(S,C,F)=>Number.isFinite(S)&&Number.isFinite(C)?x(S,C,F):[],pickAtPoint:(S,C,F)=>{if(!Number.isFinite(S)||!Number.isFinite(C))return null;let T=x(S,C,8);if(!T.length)return null;let k=Math.max(0,Math.min(T.length-1,Number(F??0))),G=T[k]??null;return G?(a(G),t.postMessage({source:"hf-preview",type:"element-picked",elementInfo:G}),B(),G):null},pickManyAtPoint:(S,C,F)=>{if(!Number.isFinite(S)||!Number.isFinite(C))return[];let T=x(S,C,8);if(!T.length)return[];let k=[],G=Array.isArray(F)?F:[0];for(let j of G){let ie=Math.max(0,Math.min(T.length-1,Math.floor(Number(j)))),P=T[ie];if(!P)continue;k.some(Se=>Se.selector===P.selector&&Se.tagName===P.tagName)||k.push(P)}return k.length?(a(k[0]??null),t.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:k}),B(),k):[]}},s("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:$,disablePickMode:B,installPickerApi:_}}var qa=["width","height","top","left","right","bottom","inset","object-fit","object-position","z-index","opacity","visibility","filter","mix-blend-mode","backdrop-filter","border-radius","overflow","clip-path","mask","mask-image","mask-size","mask-position","mask-repeat","transform","transform-origin","translate","rotate","scale","box-sizing"];function ut(t,e){let n=Number.isFinite(e)&&e>0?e:30,i=Number.isFinite(t)&&t>0?t:0;return Math.floor(i*n+1e-9)/n}function vr(t,e,n=qa){for(let i of n){let r=e.getPropertyValue(i);r&&t.setProperty(i,r)}}function _t(t,e,n){let i=t?.[e];return typeof i=="function"?Number(i.call(t))||n:typeof i=="number"&&Number.isFinite(i)?i:(i!=null&&v("runtime.player.nonConformantNum",{prop:e,actual:typeof i}),n)}function ke(t,e){let n=t?.[e];if(typeof n=="function"){n.call(t);return}n!==void 0&&v("runtime.player.nonConformantVoid",{method:e,actual:typeof n})}function Tt(t,e,n){if(t){for(let i of Object.values(t))if(!(!i||i===e))try{n(i)}catch(r){v("runtime.player.site1",r)}}}function kr(t,e,n){let i=ut(e,n);return ke(t,"pause"),typeof t.totalTime=="function"?t.totalTime(i,!1):typeof t.seek=="function"&&t.seek(i,!1),i}function $a(t,e,n,i){let r=[];Tt(t,e,o=>{ke(o,"play"),r.push(o)});try{return kr(e,n,i)}finally{for(let o of r)try{ke(o,"pause")}catch(s){v("runtime.player.site2",s)}}}function Ka(t,e){Tt(t,e,n=>{ke(n,"play")})}function Rr(t){return{_timeline:null,play:()=>{let e=t.getTimeline();if(!e||t.getIsPlaying())return;let n=Math.max(0,Number(t.getSafeDuration?.()??_t(e,"duration",0))||0);n>0&&Math.max(0,_t(e,"time",0))>=n&&(ke(e,"pause"),typeof e.seek=="function"&&e.seek(0,!1),t.onDeterministicSeek(0),t.setIsPlaying(!1),t.onSyncMedia(0,!1),t.onRenderFrameSeek(0)),typeof e.timeScale=="function"&&e.timeScale(t.getPlaybackRate()),ke(e,"play"),Tt(t.getTimelineRegistry?.(),e,i=>{typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),ke(i,"play")}),t.onDeterministicPlay(),t.setIsPlaying(!0),t.onShowNativeVideos(),t.onStatePost(!0)},pause:()=>{let e=t.getTimeline();if(!e)return;ke(e,"pause"),Tt(t.getTimelineRegistry?.(),e,i=>{ke(i,"pause")});let n=Math.max(0,_t(e,"time",0));t.onDeterministicSeek(n),t.onDeterministicPause(),t.setIsPlaying(!1),t.onSyncMedia(n,!1),t.onRenderFrameSeek(n),t.onStatePost(!0)},seek:(e,n)=>{let i=t.getTimeline();if(!i)return;let r=Math.max(0,Number(e)||0),o=t.getIsPlaying(),s=$a(t.getTimelineRegistry?.(),i,r,t.getCanonicalFps());t.onDeterministicSeek(s),n?.keepPlaying&&o?(typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),ke(i,"play"),Tt(t.getTimelineRegistry?.(),i,c=>{typeof c.timeScale=="function"&&c.timeScale(t.getPlaybackRate()),ke(c,"play")}),t.onDeterministicPlay(),t.onShowNativeVideos(),t.onSyncMedia(s,!0)):(t.setIsPlaying(!1),t.onSyncMedia(s,!1)),t.onRenderFrameSeek(s),t.onStatePost(!0)},renderSeek:e=>{let n=t.getTimeline(),i=t.getCanonicalFps(),r=n?(Ka(t.getTimelineRegistry?.(),n),kr(n,e,i)):ut(Math.max(0,Number(e)||0),i);t.onDeterministicSeek(r),t.setIsPlaying(!1),t.onSyncMedia(r,!1),t.onRenderFrameSeek(r),t.onStatePost(!0)},getTime:()=>_t(t.getTimeline(),"time",0),getDuration:()=>_t(t.getTimeline(),"duration",0),isPlaying:()=>t.getIsPlaying(),setPlaybackRate:e=>t.setPlaybackRate(e),getPlaybackRate:()=>t.getPlaybackRate()}}function Dr(){return{capturedTimeline:null,isPlaying:!1,currentTime:0,deterministicAdapters:[],canonicalFps:30,bridgeMuted:!1,bridgeVolume:1,mediaOutputMuted:!1,nativeMediaSyncDisabled:!1,webAudioMediaDisabled:!1,mediaAutoplayBlockedPosted:!1,mediaForceSyncNextTick:!1,playbackRate:1,bridgeLastPostedFrame:-1,bridgeLastPostedAt:0,bridgeLastPostedPlaying:!1,bridgeLastPostedMuted:!1,bridgeMaxPostIntervalMs:80,controlBridgeHandler:null,beforeUnloadHandler:null,injectedCompStyles:[],injectedCompScripts:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,transportClock:null,transportRafId:null}}var Ja=new Set(["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"]);function Zn(t){return t.id||t.getAttribute("data-hf-id")||null}function Qn(t){if(t==null)return null;let e=Number(t);return Number.isFinite(e)?e:null}function Ya(t,e){let n=t.getAttribute("data-composition-id");if(!n)return null;let i=Number(e[n]?.duration?.());return Number.isFinite(i)&&i>0?i:null}function Xa(t){if(!(t instanceof HTMLMediaElement)||!Number.isFinite(t.duration))return null;let e=Qn(t.getAttribute("data-playback-start"))??Qn(t.getAttribute("data-media-start"))??0;return t.duration>e?t.duration-e:null}function Qa(t,e,n,i){let r=Qn(t.getAttribute("data-duration"));return r!=null&&r>0?r:Ya(t,e)??Xa(t)??Math.max(0,n-i)}function Za(t){for(let[e,n]of t){let i=e.parentElement;for(;i;){let r=t.get(i);if(r){n.parentId=r.id,r.children.push(n);break}i=i.parentElement}}}function Ir(t){let{startResolver:e,timelineRegistry:n,rootDuration:i}=t,r=new Map,o=document.querySelector("[data-composition-id]"),s=0;for(let c of document.querySelectorAll("[data-start]")){if(c===o||Ja.has(c.tagName))continue;let a=e.resolveStartForElement(c,0);if(Qa(c,n,i,a)<=0)continue;let l={id:Zn(c)??`__clip-${s++}`,element:c,parentId:null,children:[]};r.set(c,l)}return Za(r),{roots:Array.from(r.values()).filter(c=>c.parentId===null)}}var el="data-hf-authored-duration",tl="data-hf-authored-end";function it(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function nl(t){return it(t.getAttribute("data-duration"))}function il(t){return it(t.getAttribute("data-end"))}function rl(t){return it(t.getAttribute(el))}function ol(t){return it(t.getAttribute(tl))}function sl(t){let e=(t??"").trim();if(!e)return null;let n=it(e);if(n!=null)return{kind:"absolute",value:n};let i=e.match(/^([A-Za-z0-9_.:-]+)(?:\\s*([+-])\\s*([0-9]*\\.?[0-9]+))?$/);if(!i)return null;let r=(i[1]??"").trim();if(!r)return null;let o=i[2]??"+",s=i[3]??"0",c=Number.parseFloat(s),a=Number.isFinite(c)?Math.max(0,c):0,l=o==="-"?-a:a;return{kind:"reference",refId:r,offset:l}}function ze(t){let e=t.timelineRegistry??{},n=t.includeAuthoredTimingAttrs??!1,i=new WeakMap,r=new WeakMap,o=new Set,s=u=>{let m=document.getElementById(u);return m||(document.querySelector(`[data-composition-id="${CSS.escape(u)}"]`)??null)},c=u=>{let m=r.get(u);if(m!==void 0)return m;let f=null,g=nl(u)??(n?rl(u):null);if(g!=null&&g>0&&(f=g),f==null||f<=0){let A=il(u)??(n?ol(u):null);if(A!=null){let y=l(u,0),x=A-y;Number.isFinite(x)&&x>0&&(f=x)}}if((f==null||f<=0)&&u instanceof HTMLMediaElement){let A=it(u.getAttribute("data-playback-start"))??it(u.getAttribute("data-media-start"))??0;Number.isFinite(u.duration)&&u.duration>A&&(f=(u.duration-A)/Nt(u))}if(f==null||f<=0){let A=u.getAttribute("data-composition-id");if(A){let y=e[A]??null;if(y&&typeof y.duration=="function")try{let x=Number(y.duration());Number.isFinite(x)&&x>0&&(f=x)}catch(x){v("runtime.startResolver.site1",x)}}}return f!=null&&Number.isFinite(f)&&f>0?(r.set(u,f),f):(r.set(u,null),null)},a=(u,m)=>{if(u.hasAttribute("data-composition-id")){let g=u.parentElement?.closest("[data-composition-id]");return g?l(g,m):0}let f=u.closest("[data-composition-id]");return f?l(f,m):0},l=(u,m)=>{let f=i.get(u);if(f!==void 0)return f??m;if(o.has(u))return m;o.add(u);try{let g=sl(u.getAttribute("data-start"));if(!g){if(u.hasAttribute("data-composition-id")){let N=u.parentElement;if(N&&(N.hasAttribute("data-composition-src")||N.hasAttribute("data-composition-id"))){let L=l(N,m);return i.set(u,L),L}}return i.set(u,m),m}if(g.kind==="absolute"){let N=Math.max(0,g.value),L=Math.max(0,a(u,m)+N);return i.set(u,L),L}let A=s(g.refId);if(!A)return i.set(u,m),m;let y=l(A,0),x=c(A);if(x==null||x<=0){let N=Math.max(0,y+g.offset);return i.set(u,N),N}let w=Math.max(0,y+x+g.offset);return i.set(u,w),w}finally{o.delete(u)}};return{resolveStartForElement:(u,m=0)=>l(u,Math.max(0,m)),resolveDurationForElement:u=>c(u)}}function ei(t){let e=t.trim().toLowerCase();return!(!e||e==="main"||e.includes("caption")||e.includes("ambient"))}var al="data-hf-authored-duration",ll="data-hf-authored-end";function Ce(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function ti(t){return Ce(t.getAttribute("data-duration"))??Ce(t.getAttribute(al))}function Pr(t){return Ce(t.getAttribute("data-end"))??Ce(t.getAttribute(ll))}function ni(...t){let e=t.filter(n=>Number.isFinite(n??null));return e.length===0?null:Math.max(...e)}var Or={composition:0,video:1,image:2,element:3,audio:4};function ul(t){if(t.length===0)return;let e=new Map;for(let s of t){let c=e.get(s.track)??new Set;c.add(s.kind),e.set(s.track,c)}if(!Array.from(e.values()).some(s=>s.size>1))return;let i=0,r=new Map,o=[...e.keys()].sort((s,c)=>s-c);for(let s of o){let c=e.get(s);if(c.size===1)r.set(`${s}:${[...c][0]}`,i++);else{let a=[...c].sort((l,u)=>(Or[l]??99)-(Or[u]??99));for(let l of a)r.set(`${s}:${l}`,i++)}}for(let s of t){let c=`${s.track}:${s.kind}`,a=r.get(c);a!=null&&(s.track=a)}}function vt(t){let e=String(t??"").trim();if(!e)return null;let n=e.toLowerCase();if(n.startsWith("data:")||n.startsWith("javascript:"))return null;try{return new URL(e,document.baseURI).toString()}catch{return e}}function Br(t){let e=t.getAttribute("src")??t.getAttribute("data-src");if(e)return vt(e);let n=t.getAttribute("data-composition-src");if(n)return vt(n);let i=t.querySelector("img[src], video[src], audio[src], source[src]");return i?vt(i.getAttribute("src")):null}function cl(t){let e=t.className;return typeof e!="string"?null:e.split(/\\s+/).map(n=>n.trim()).find(n=>n&&n!=="clip"&&!n.startsWith("__hf-"))??null}function dl(t){if(!t)return null;try{return new URL(t,document.baseURI).pathname.split("/").filter(Boolean).at(-1)??null}catch{return t.split(/[\\\\/]/).filter(Boolean).at(-1)??null}}function fl(t){let e=t.textContent?.replace(/\\s+/g," ").trim();return e?e.length>32?`${e.slice(0,31)}...`:e:null}function Lt(t){let e=t.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return e?e.replace(/\\b\\w/g,n=>n.toUpperCase()):t}function ml(t,e,n){let i=t.getAttribute("data-timeline-label")??t.getAttribute("data-label")??t.getAttribute("aria-label")??null;if(i?.trim())return i.trim();let r=t.getAttribute("data-composition-id");if(r)return Lt(r);let o=t.id;if(o)return Lt(o);let s=cl(t);if(s)return Lt(s);let c=dl(Br(t));if(c)return Lt(c);let a=fl(t);return a||`${Lt(e)} ${n+1}`}function Hr(t){let n=window.__timelines??{},i=ze({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),r=O=>{if(!O)return null;let D=n[O]??null;if(!D||typeof D.duration!="function")return null;try{let W=Number(D.duration());return Number.isFinite(W)&&W>0?W:null}catch{return null}},o=O=>{let D=Ce(O.getAttribute("data-duration"));if(D!=null&&D>0)return D;let W=Ce(O.getAttribute("data-playback-start"))??Ce(O.getAttribute("data-media-start"))??0;return Number.isFinite(O.duration)&&O.duration>W?Math.max(0,(O.duration-W)/Nt(O)):null},s=()=>{let O=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(O.length===0)return null;let D=0;for(let W of O){let Q=W.hasAttribute("data-hf-auto-start")?i.resolveStartForElement(W,0):Math.max(0,Number(W.getAttribute("data-start")??0)||0);if(!Number.isFinite(Q))continue;let ae=o(W);ae==null||ae<=0||(D=Math.max(D,Math.max(0,Q)+ae))}return D>0?D:null},c=(O,D)=>{let W=[],Q=null,ae=null,q=null,z=O.parentElement;for(;z;){let X=z.getAttribute("data-composition-id");X&&(W.push(X),!q&&z!==D&&(q=X),Q==null&&(Q=i.resolveStartForElement(z,0)),ae==null&&(ae=Ce(z.getAttribute("data-duration"))??r(X)??null)),z=z.parentElement}return{parentCompositionId:q,compositionAncestors:W.reverse(),inheritedStart:Q,inheritedDuration:ae}},a=document.querySelector("[data-composition-id]"),l=Array.from(document.querySelectorAll("[data-composition-id]")),u=a?.getAttribute("data-composition-id")??null,m=a?i.resolveStartForElement(a,0):0,f=s(),g=f!=null?Math.max(0,f-Math.max(0,m)):null,A=r(u),y=ti(a??document.body),x=ni(...l.filter(O=>O!==a).map(O=>{let D=i.resolveStartForElement(O,0),W=i.resolveDurationForElement(O)??r(O.getAttribute("data-composition-id"))??null;return!Number.isFinite(D)||W==null||W<=0?null:Math.max(0,D)+W})),w=x!=null?Math.max(0,x-Math.max(0,m)):null,N=typeof A=="number"&&Number.isFinite(A)&&A>0?A:null,L=typeof y=="number"&&Number.isFinite(y)&&y>0?y:null,$=typeof g=="number"&&Number.isFinite(g)&&g>0?g:null,B=typeof w=="number"&&Number.isFinite(w)&&w>0?w:null,_=ni($,B),S=N!=null&&_!=null&&N>_+1,F=L??(S?_:ni(N,$,B))??null,k=(F!=null?m+F:null)??(typeof f=="number"&&Number.isFinite(f)&&f>0?f:null),G=(O,D)=>!Number.isFinite(D)||D<=0?0:k==null||!Number.isFinite(k)?D:!Number.isFinite(O)||O>=k?0:Math.max(0,Math.min(D,k-O)),j=[],ie=[],P=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),se=0;for(let O=0;O<P.length;O+=1){let D=P[O];if(D===a||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(D.tagName))continue;let W=c(D,a),Q=i.resolveStartForElement(D,W.inheritedStart??0),ae=D.getAttribute("data-composition-id"),q=ti(D);if((q==null||q<=0)&&ae&&ae!==u&&(q=r(ae)),(q==null||q<=0)&&D instanceof HTMLMediaElement){let Me=Ce(D.getAttribute("data-playback-start"))??Ce(D.getAttribute("data-media-start"))??0;Number.isFinite(D.duration)&&D.duration>0&&(q=Math.max(0,D.duration-Me))}if(q==null||q<=0){let Me=W.inheritedDuration;if(Me!=null&&Me>0){let He=(W.inheritedStart??0)+Me;q=Math.max(0,He-Q)}}if(q==null||q<=0||(q=G(Q,q),q<=0))continue;let z=Q+q;se=Math.max(se,z);let X=D.tagName.toLowerCase(),Ie=ae&&ae!==u?"composition":X==="video"?"video":X==="audio"?"audio":X==="img"?"image":"element";j.push({id:Zn(D)??ae??null,label:ml(D,Ie,j.length),start:Q,duration:q,track:Number.parseInt(D.getAttribute("data-track-index")??D.getAttribute("data-track")??String(O),10)||0,kind:Ie,tagName:X,compositionId:D.getAttribute("data-composition-id"),compositionAncestors:W.compositionAncestors,parentCompositionId:W.parentCompositionId,nodePath:null,compositionSrc:vt(D.getAttribute("data-composition-src")),assetUrl:Br(D),timelineRole:D.getAttribute("data-timeline-role"),timelineLabel:D.getAttribute("data-timeline-label"),timelineGroup:D.getAttribute("data-timeline-group"),timelinePriority:Ce(D.getAttribute("data-timeline-priority"))})}let Se=new Set(j.map(O=>O.id)),H=a?.getAttribute("data-composition-id")??null,U=H?n[H]??null:null;if(U&&a){let O=U;if(typeof O.getChildren=="function")try{let D=O.getChildren(!0,!0,!1)??[],W=new Map;for(let q of a.children){let z=q;if(!z.id)continue;let X=z.tagName.toLowerCase();X==="script"||X==="style"||X==="link"||W.set(z,{id:z.id,start:1/0,end:-1/0})}let Q=q=>{let z=q;for(;z;){if(W.has(z))return z;if(z===a)return null;z=z.parentElement}return null};for(let q of D){if(typeof q.targets!="function"||typeof q.startTime!="function"||typeof q.duration!="function")continue;let z=q.startTime(),X=q.parent;for(;X&&X!==U&&typeof X.startTime=="function";)z+=X.startTime(),X=X.parent;let Ie=z+q.duration();if(!(!Number.isFinite(z)||!Number.isFinite(Ie)))for(let Me of q.targets()){if(!(Me instanceof Element))continue;let bt=Q(Me);if(!bt)continue;let He=W.get(bt);He&&(He.start=Math.min(He.start,z),He.end=Math.max(He.end,Ie))}}let ae=j.length>0?Math.max(...j.map(q=>q.track))+1:0;for(let[q,z]of W){if(z.start===1/0||z.end===-1/0)continue;let X=q;if(Se.has(X.id))continue;let Ie=Math.max(0,z.end-z.start);if(Ie<=0)continue;let Me=G(z.start,Ie);Me<=0||(se=Math.max(se,z.start+Me),j.push({id:X.id,label:X.getAttribute("data-timeline-label")??X.getAttribute("data-label")??X.getAttribute("aria-label")??X.id,start:z.start,duration:Me,track:Number.parseInt(X.getAttribute("data-track-index")??X.getAttribute("data-track")??"",10)||ae,kind:"element",tagName:X.tagName.toLowerCase(),compositionId:X.getAttribute("data-composition-id"),compositionAncestors:H?[H]:[],parentCompositionId:H,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:X.getAttribute("data-timeline-role"),timelineLabel:X.getAttribute("data-timeline-label"),timelineGroup:X.getAttribute("data-timeline-group"),timelinePriority:Ce(X.getAttribute("data-timeline-priority"))}),Se.add(X.id))}}catch(D){v("runtime.timeline.site1",D)}}if(a&&F!=null&&F>0){let O=j.length>0?Math.max(...j.map(D=>D.track))+1:0;for(let D of a.children){let W=D;if(!W.id||Se.has(W.id))continue;let Q=W.getAttribute("data-timeline-role");if(Q!=="overlay"&&Q!=="persistent-overlay")continue;let ae=W.tagName.toLowerCase();if(ae==="script"||ae==="style"||ae==="link"||ae==="meta"||window.getComputedStyle(W).display==="none")continue;let z=G(0,F);z<=0||(se=Math.max(se,z),j.push({id:W.id,label:W.getAttribute("data-timeline-label")??W.getAttribute("data-label")??W.getAttribute("aria-label")??W.id,start:0,duration:z,track:Number.parseInt(W.getAttribute("data-track-index")??W.getAttribute("data-track")??"",10)||O,kind:"element",tagName:ae,compositionId:W.getAttribute("data-composition-id"),compositionAncestors:H?[H]:[],parentCompositionId:H,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:Q,timelineLabel:W.getAttribute("data-timeline-label"),timelineGroup:W.getAttribute("data-timeline-group"),timelinePriority:Ce(W.getAttribute("data-timeline-priority"))}),Se.add(W.id))}}ul(j);for(let O of l){if(O===a)continue;let D=O.getAttribute("data-composition-id");if(!D||!ei(D))continue;let W=i.resolveStartForElement(O,0),Q=ti(O);if((Q==null||Q<=0)&&Pr(O)!=null){let X=Pr(O);Q=Math.max(0,X-W)}let ae=r(D),q=Q&&Q>0?Q:ae;if(q==null||q<=0)continue;let z=G(W,q);z<=0||ie.push({id:D,label:O.getAttribute("data-label")??D,start:W,duration:z,thumbnailUrl:vt(O.getAttribute("data-thumbnail-url")),avatarName:null})}let V=Math.max(1,se||1,F??0);return{source:"hf-preview",type:"timeline",durationInFrames:S&&L==null?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(V*Math.max(1,t.canonicalFps))),clips:j,scenes:ie,compositionWidth:Ce(a?.getAttribute("data-width"))??1920,compositionHeight:Ce(a?.getAttribute("data-height"))??1080}}var ce=Da(ds(),1),fs=ce.default,lp=ce.default.stringify,up=ce.default.fromJSON,cp=ce.default.plugin,dp=ce.default.parse,fp=ce.default.list,mp=ce.default.document,pp=ce.default.comment,hp=ce.default.atRule,xp=ce.default.rule,gp=ce.default.decl,yp=ce.default.root,bp=ce.default.CssSyntaxError,Sp=ce.default.Declaration,Ap=ce.default.Container,Ep=ce.default.Processor,wp=ce.default.Document,Cp=ce.default.Comment,Fp=ce.default.Warning,Mp=ce.default.AtRule,Np=ce.default.Result,_p=ce.default.Input,Tp=ce.default.Rule,Lp=ce.default.Root,vp=ce.default.Node;var _i="data-hf-authored-id";function Ti(t){return t.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function Li(t){return t.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function Iu(t){return t&&t.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function ms(t){let e=t.trim();return e?Array.from(new Set([e,Iu(e)])).filter(Boolean):[]}function Pu(t){return!!t&&/[\\w-]/.test(t)}function Ou(t,e,n){let i=ms(e).sort((c,a)=>a.length-c.length);if(i.length===0)return t;let r="",o=0,s=null;for(let c=0;c<t.length;c+=1){let a=t[c],l=c>0?t[c-1]:"";if(s){r+=a,a===s&&l!=="\\\\"&&(s=null);continue}if(a===\'"\'||a==="\'"){s=a,r+=a;continue}if(a==="["){o+=1,r+=a;continue}if(a==="]"){o=Math.max(0,o-1),r+=a;continue}if(a==="#"&&o===0){let u=i.find(m=>t.startsWith(m,c+1));if(u){let m=t[c+1+u.length];if(!Pu(m)){r+=n,c+=u.length;continue}}}r+=a}return r}function Bu(t,e){let n=e?.trim();return n?Ou(t,n,`[${_i}="${Li(n)}"]`):t}function Hu(t,e,n,i,r){let o=Bu(t,i),s=Wu(o,e,n),c=s.trim();if(!c||/^(html|body|:root|\\*)$/i.test(c))return t;let a=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*=\\\\s*(["\'])${Ti(n)}\\\\1\\\\s*\\\\]`,"g");if(a.test(c))return s.replace(a,e);let l=s.match(/^\\s*/)?.[0]??"",u=s.match(/\\s*$/)?.[0]??"";if(r){let m=i?`[${_i}="${Li(i)}"]`:null;if(m&&c.startsWith(m)){let f=c.slice(m.length);return`${l}${e}${m}${f}${u}`}}return`${l}${e} ${c}${u}`}function Wu(t,e,n){let i=Ti(n),r=String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${i}"|\'${i}\')\\s*\\]`,o=String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`;return t.replace(new RegExp(`${r}(?:${o})+`,"g"),e).replace(new RegExp(`(?:${o})+${r}`,"g"),e)}var Gu=new Set(["keyframes","-webkit-keyframes","font-face"]);function Uu(t){return t?.type==="atrule"}function Vu(t){let e=t.parent;for(;e;){if(Uu(e)&&Gu.has(e.name.toLowerCase()))return!0;e=e.parent}return!1}function vi(t,e,n,i,r){let o=e.trim();if(!t||!o)return t;let s=n||`[data-composition-id="${Li(o)}"]`,c=fs.parse(t);return c.walkRules(a=>{Vu(a)||(a.selectors=a.selectors.map(l=>Hu(l,s,o,i,r?.compoundAuthoredRoot)))}),c.toResult({map:!1}).css}function ps(t,e,n="[HyperFrames] composition script error:",i,r=e,o){let s=JSON.stringify(e),c=JSON.stringify(r),a=JSON.stringify(n),l=Ti(e),u=JSON.stringify(o?.trim()||null),m=JSON.stringify(i??null),f=JSON.stringify(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${l}"|\'${l}\')\\s*\\]`),g=JSON.stringify(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),A=JSON.stringify(ms(o?.trim()||""));return`(function(){\n var __hfCompId = ${s};\n var __hfTimelineCompId = ${c};\n var __hfErrorLabel = ${a};\n var __hfAuthoredRootId = ${u};\n var __hfAuthoredRootAttr = ${JSON.stringify(_i)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${m} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${f};\n var __hfTimingSelectorPattern = ${g};\n var __hfAuthoredRootIdForms = ${A};\n var __hfAuthoredRootSelector = __hfAuthoredRootId\n ? "[" + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(__hfAuthoredRootId) + \'"]\'\n : "";\n var __hfIsSelectorNameChar = function(char) {\n return !!char && /[\\\\w-]/.test(char);\n };\n var __hfReplaceAuthoredRootIdSelectors = function(selector) {\n if (!__hfAuthoredRootSelector || !__hfAuthoredRootIdForms.length || typeof selector !== "string") {\n return selector;\n }\n var result = "";\n var bracketDepth = 0;\n var quote = null;\n for (var index = 0; index < selector.length; index += 1) {\n var char = selector[index];\n var previousChar = index > 0 ? selector[index - 1] : "";\n if (quote) {\n result += char;\n if (char === quote && previousChar !== "\\\\\\\\") {\n quote = null;\n }\n continue;\n }\n if (char === \'"\' || char === "\'") {\n quote = char;\n result += char;\n continue;\n }\n if (char === "[") {\n bracketDepth += 1;\n result += char;\n continue;\n }\n if (char === "]") {\n bracketDepth = Math.max(0, bracketDepth - 1);\n result += char;\n continue;\n }\n if (char === "#" && bracketDepth === 0) {\n var matchedForm = null;\n for (var formIndex = 0; formIndex < __hfAuthoredRootIdForms.length; formIndex += 1) {\n var form = __hfAuthoredRootIdForms[formIndex];\n if (selector.slice(index + 1, index + 1 + form.length) === form) {\n matchedForm = form;\n break;\n }\n }\n if (matchedForm) {\n var nextChar = selector[index + 1 + matchedForm.length];\n if (!__hfIsSelectorNameChar(nextChar)) {\n result += __hfAuthoredRootSelector;\n index += matchedForm.length;\n continue;\n }\n }\n }\n result += char;\n }\n return result;\n };\n var __hfNormalizeSelector = function(selector) {\n if (!__hfCompId || typeof selector !== "string") return selector;\n var normalized = selector\n .replace(new RegExp(__hfRootSelectorPattern + \'(?:\' + __hfTimingSelectorPattern + \')+\', \'g\'), __hfRootSelector)\n .replace(new RegExp(\'(?:\' + __hfTimingSelectorPattern + \')+\' + __hfRootSelectorPattern, \'g\'), __hfRootSelector);\n if (__hfAuthoredRootSelector) {\n normalized = __hfReplaceAuthoredRootIdSelectors(normalized);\n }\n return normalized;\n };\n var __hfFindRoot = function() {\n if (!__hfRoot && __hfRootSelector) {\n __hfRoot = window.document.querySelector(__hfRootSelector);\n }\n return __hfRoot;\n };\n var __hfContains = function(node) {\n var root = __hfFindRoot();\n return !root || node === root || root.contains(node);\n };\n var __hfQueryAll = function(selector) {\n var root = __hfFindRoot();\n if (!root || typeof selector !== "string") {\n return window.document.querySelectorAll(selector);\n }\n return Array.prototype.filter.call(window.document.querySelectorAll(__hfNormalizeSelector(selector)), function(node) {\n return __hfContains(node);\n });\n };\n var __hfQueryOne = function(selector) {\n var matches = __hfQueryAll(selector);\n return matches[0] || null;\n };\n var __hfGetElementById = function(id) {\n var found = window.document.getElementById(id);\n if (found && __hfContains(found)) return found;\n var root = __hfFindRoot();\n if (!root) return found || null;\n var idValue = id + "";\n if (__hfAuthoredRootId && __hfAuthoredRootId === idValue && root.getAttribute && root.getAttribute(__hfAuthoredRootAttr) === idValue) {\n return root;\n }\n if (root.id === idValue) return root;\n if (typeof root.querySelector !== "function") return null;\n try {\n var authoredRootMatch = root.querySelector(\'[\' + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(idValue) + \'"]\');\n if (authoredRootMatch) return authoredRootMatch;\n } catch {}\n if (typeof CSS !== "undefined" && CSS && typeof CSS.escape === "function") {\n try {\n return root.querySelector("#" + CSS.escape(idValue)) || null;\n } catch {}\n }\n try {\n return root.querySelector(\'[id="\' + __hfEscapeAttr(idValue) + \'"]\') || null;\n } catch {}\n return null;\n };\n var __hfScopedDocument = typeof Proxy === "function"\n ? new Proxy(window.document, {\n get: function(target, prop, receiver) {\n if (prop === "querySelector") return __hfQueryOne;\n if (prop === "querySelectorAll") return __hfQueryAll;\n if (prop === "getElementById") return __hfGetElementById;\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n })\n : window.document;\n var __hfTimelineRegistryProxy = null;\n var __hfGetTimelineRegistry = function() {\n window.__timelines = window.__timelines || {};\n if (!__hfCompId || __hfCompId === __hfTimelineCompId || typeof Proxy !== "function") {\n return window.__timelines;\n }\n if (!__hfTimelineRegistryProxy) {\n __hfTimelineRegistryProxy = new Proxy(window.__timelines, {\n get: function(target, prop, receiver) {\n return Reflect.get(target, prop === __hfCompId ? __hfTimelineCompId : prop, target);\n },\n set: function(target, prop, value, receiver) {\n return Reflect.set(target, prop === __hfCompId ? __hfTimelineCompId : prop, value, target);\n },\n });\n }\n return __hfTimelineRegistryProxy;\n };\n var __hfScopedWindow = typeof Proxy === "function"\n ? new Proxy(window, {\n get: function(target, prop, receiver) {\n if (prop === "__timelines") return __hfGetTimelineRegistry();\n return Reflect.get(target, prop, target);\n },\n set: function(target, prop, value, receiver) {\n if (prop === "__timelines") {\n target.__timelines = value || {};\n __hfTimelineRegistryProxy = null;\n return true;\n }\n return Reflect.set(target, prop, value, target);\n },\n })\n : window;\n var __hfResolveGsapTarget = function(target) {\n if (typeof target !== "string") return target;\n return __hfQueryAll(target);\n };\n var __hfScopeTimeline = function(timeline) {\n if (!timeline || timeline.__hfScopedCompositionRoot === __hfFindRoot()) return timeline;\n ["to", "from", "fromTo", "set"].forEach(function(method) {\n var original = timeline[method];\n if (typeof original !== "function") return;\n timeline[method] = function(target) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(target);\n return original.apply(timeline, args);\n };\n });\n try {\n Object.defineProperty(timeline, "__hfScopedCompositionRoot", {\n value: __hfFindRoot(),\n configurable: true,\n });\n } catch {\n // Best-effort: timelines coming from user code may have a frozen target\n // or a non-extensible defineProperty path. Swallow \\u2014 the scoped root\n // is an enrichment, not a correctness invariant for playback.\n }\n return timeline;\n };\n var __hfBaseGsap = typeof gsap === "undefined" ? window.gsap : gsap;\n var __hfScopedGsap = !__hfBaseGsap || typeof Proxy !== "function"\n ? __hfBaseGsap\n : new Proxy(__hfBaseGsap, {\n get: function(target, prop, receiver) {\n if (prop === "timeline") {\n return function() {\n return __hfScopeTimeline(target.timeline.apply(target, arguments));\n };\n }\n if (prop === "to" || prop === "from" || prop === "fromTo" || prop === "set") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return target[prop].apply(target, args);\n };\n }\n if (prop === "utils" && target.utils && typeof Proxy === "function") {\n return new Proxy(target.utils, {\n get: function(utilsTarget, utilsProp, utilsReceiver) {\n if (utilsProp === "toArray") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return utilsTarget.toArray.apply(utilsTarget, args);\n };\n }\n if (utilsProp === "selector") {\n return function(base) {\n var baseEl = typeof base === "string" ? __hfQueryOne(base) : base;\n var root = baseEl || __hfFindRoot();\n return function(selector) {\n if (!root || typeof selector !== "string") return [];\n return Array.prototype.filter.call(\n window.document.querySelectorAll(__hfNormalizeSelector(selector)),\n function(node) {\n return node === root || (typeof root.contains === "function" && root.contains(node));\n },\n );\n };\n };\n }\n var value = Reflect.get(utilsTarget, utilsProp, utilsTarget);\n return typeof value === "function" ? value.bind(utilsTarget) : value;\n },\n });\n }\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n });\n var __hfBaseHyperframes = window.__hyperframes;\n var __hfScopedHyperframes = !__hfBaseHyperframes\n ? __hfBaseHyperframes\n : Object.assign({}, __hfBaseHyperframes, {\n getVariables: function() {\n var byComp = window.__hfVariablesByComp;\n var scoped = byComp && __hfTimelineCompId ? byComp[__hfTimelineCompId] : null;\n return scoped ? Object.assign({}, scoped) : {};\n },\n });\n var __hfRun = function() {\n try {\n (function(document, gsap, window, __hyperframes) {\n${t.replace(/<\\/(script)/gi,"<\\\\/$1")}\n }).call(window, __hfScopedDocument, __hfScopedGsap, __hfScopedWindow, __hfScopedHyperframes);\n } catch (_err) {\n console.error(__hfErrorLabel, __hfCompId, _err);\n }\n };\n __hfFindRoot();\n __hfRun();\n})();`}function hs(){if(typeof document>"u")return{};let t=ki(document.documentElement),e=zu();return{...t,...e}}function ki(t){if(!t)return{};let e=t.getAttribute("data-composition-variables");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}if(!Array.isArray(n))return{};let i={};for(let r of n){if(!r||typeof r!="object")continue;let o=r;typeof o.id!="string"||!("default"in o)||(i[o.id]=o.default)}return i}function zu(){if(typeof window>"u")return{};let t=window.__hfVariables;return!t||typeof t!="object"||Array.isArray(t)?{}:t}var ju=8e3,qu=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/,$u=/\\burl\\(\\s*(["\']?)([^)"\']+)\\1\\s*\\)/g,Ku=["src","href"];function Ju(t){return!t||t.startsWith("http://")||t.startsWith("https://")||t.startsWith("//")||t.startsWith("data:")||t.startsWith("#")||t.startsWith("/")}function gs(t,e){if(!e)return t;let n=t.trim();if(Ju(n)||!n.startsWith("../")&&n!=="..")return t;try{return new URL(n,e).href}catch{return t}}function ys(t,e){return!e||!t?t:t.replace($u,(n,i,r)=>{let o=gs(r||"",e);return o===r?n:`url(${i||""}${o}${i||""})`})}function Yu(t,e){for(let n of Array.from(t.querySelectorAll("[src], [href]")))for(let i of Ku){let r=n.getAttribute(i);if(r==null)continue;let o=gs(r,e);o!==r&&n.setAttribute(i,o)}}function Xu(t,e){for(let n of Array.from(t.querySelectorAll("[style]"))){let i=n.getAttribute("style");if(i==null)continue;let r=ys(i,e);r!==i&&n.setAttribute("style",r)}}function Qu(t,e){for(let n of Array.from(t.querySelectorAll("style"))){let i=n.textContent||"",r=ys(i,e);r!==i&&(n.textContent=r)}}function bs(t,e){if(e){Yu(t,e),Xu(t,e),Qu(t,e);for(let n of Array.from(t.querySelectorAll("template")))bs(n.content,e)}}function Zu(t,e){return`${t}__hf${e}`}var ec=t=>new Promise(e=>{let n=!1,i=Date.now(),r=null,o=s=>{n||(n=!0,r!=null&&window.clearTimeout(r),e({status:s,elapsedMs:Math.max(0,Date.now()-i)}))};t.addEventListener("load",()=>o("load"),{once:!0}),t.addEventListener("error",()=>o("error"),{once:!0}),r=window.setTimeout(()=>o("timeout"),ju)});function Ri(t){for(;t.firstChild;)t.removeChild(t.firstChild);t.textContent=""}var tc=["data-composition-id","data-composition-file","data-start","data-duration","data-end","data-track-index","data-track","data-composition-src","data-hf-authored-duration","data-hf-authored-end"];function nc(t){let e=document.importNode(t,!0),n=e.getAttribute("id")?.trim();for(let o of tc)e.removeAttribute(o);n&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",n)),e.setAttribute("data-hf-inner-root","true");let i=e.getAttribute("data-width"),r=e.getAttribute("data-height");return e.style.width=i?`${i}px`:"100%",e.style.height=r?`${r}px`:"100%",e}function xs(t,e){let n=t.trim();if(!n)return t;try{return qu.test(n)?new URL(n,document.baseURI).toString():e?new URL(n,e).toString():new URL(n,document.baseURI).toString()}catch{return t}}function ic(t){let e=t.getAttribute("data-variable-values");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}return!n||typeof n!="object"||Array.isArray(n)?{}:n}function Fn(t){let e=(t.getAttribute("data-composition-id")||"").trim()||null;return{authoredCompositionId:(t.getAttribute("data-hf-original-composition-id")||e||"").trim()||null,runtimeCompositionId:e}}function rc(t){let e=new Map;for(let n of t){let i=Fn(n).authoredCompositionId||"";i&&e.set(i,(e.get(i)||0)+1)}return e}function Ss(t){let e=Fn(t).authoredCompositionId;return e?!!document.querySelector(`template#${CSS.escape(e)}-template`):!1}function oc(t){return!!t.querySelector(\'[data-hf-inner-root="true"]\')}function sc(t){return t.hasAttribute("data-composition-src")?!0:Ss(t)?t.children.length===0||t.hasAttribute("data-hf-original-composition-id")?!0:oc(t):!1}function Ii(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(e=>e.hasAttribute("data-composition-src")?!0:Ss(e))}function As(){let t=window.__hfVariablesByComp;if(!t)return;let e=new Set(Ii().map(n=>Fn(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(t))e.has(n)||delete t[n]}function Es(t,e=rc(t)){let n=new Map,i=new Map;for(let r of t){let{authoredCompositionId:o,runtimeCompositionId:s}=Fn(r),c=sc(r);if(!o){i.set(r,{authoredCompositionId:null,runtimeCompositionId:s});continue}let a=(e.get(o)||0)>1,l=s||o;if(c){let u=a?(n.get(o)||0)+1:0;a&&n.set(o,u),l=a?Zu(o,u):o,a?r.setAttribute("data-hf-original-composition-id",o):r.removeAttribute("data-hf-original-composition-id"),r.setAttribute("data-composition-id",l),s&&s!==l&&window.__hfVariablesByComp&&delete window.__hfVariablesByComp[s]}i.set(r,{authoredCompositionId:o,runtimeCompositionId:l})}return i}async function Di(t){let e=null;t.authoredCompositionId&&(e=Array.from(t.sourceNode.querySelectorAll("[data-composition-id]")).find(g=>g.getAttribute("data-composition-id")===t.authoredCompositionId)??null);let n=e??t.sourceNode,i=e?.getAttribute("data-composition-id")?.trim()||t.authoredCompositionId||null,r=t.runtimeCompositionId||i||null,o=e?.getAttribute("id")?.trim()||null,s=r?`[data-composition-id="${CSS.escape(r)}"]`:void 0;if(t.headLinks)for(let f of t.headLinks){let g=f.getAttribute("href")||"";g&&(document.head.querySelector(`link[href="${CSS.escape(g)}"]`)||document.head.appendChild(f.cloneNode(!0)))}if(t.headStyles)for(let f of t.headStyles){let g=f.cloneNode(!0);g instanceof HTMLStyleElement&&(i&&(g.textContent=vi(g.textContent||"",i,s,o)),document.head.appendChild(g),t.injectedStyles.push(g))}let c=Array.from(n.querySelectorAll("style"));for(let f of c){let g=f.cloneNode(!0);g instanceof HTMLStyleElement&&(i&&(g.textContent=vi(g.textContent||"",i,s,o)),document.head.appendChild(g),t.injectedStyles.push(g))}let a=[];if(t.headScripts)for(let f of t.headScripts){let g=f.getAttribute("type")?.trim()??"",A=f.getAttribute("src")?.trim()??"";if(A){let y=xs(A,t.compositionUrl);a.push({kind:"external",src:y,type:g})}else{let y=f.textContent?.trim()??"";y&&a.push({kind:"inline",content:y,type:g,scopeCompositionId:i})}}let l=Array.from(n.querySelectorAll("script")),u=[...a];for(let f of l){let g=f.getAttribute("type")?.trim()??"",A=f.getAttribute("src")?.trim()??"";if(A){let y=xs(A,t.compositionUrl);u.push({kind:"external",src:y,type:g})}else{let y=f.textContent?.trim()??"";y&&u.push({kind:"inline",content:y,type:g,scopeCompositionId:i})}f.parentNode?.removeChild(f)}let m=Array.from(n.querySelectorAll("style"));for(let f of m)f.parentNode?.removeChild(f);if(e){let f=e.getAttribute("data-width"),g=e.getAttribute("data-height"),A=t.parseDimensionPx(f),y=t.parseDimensionPx(g);f&&t.host.setAttribute("data-width",f),g&&t.host.setAttribute("data-height",g),A&&t.host instanceof HTMLElement&&(t.host.style.width=A),y&&t.host instanceof HTMLElement&&(t.host.style.height=y),e.hasAttribute("data-timeline-locked")&&t.host.setAttribute("data-timeline-locked",""),t.host.appendChild(nc(e))}else t.hasTemplate?t.host.appendChild(document.importNode(n,!0)):t.host.innerHTML=t.fallbackBodyInnerHtml;if(r){let f={...t.declaredVariableDefaults??{},...ic(t.host)};Object.keys(f).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[r]=f):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[r]}for(let f of u){let g=document.createElement("script");if(f.type&&(g.type=f.type),g.async=!1,f.kind==="external"?g.src=f.src:f.type.toLowerCase()==="module"?g.textContent=f.content:f.scopeCompositionId?g.textContent=ps(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,r||f.scopeCompositionId,o):g.textContent=`(function(){${f.content}})();`,document.body.appendChild(g),t.injectedScripts.push(g),f.kind==="external"){let A=await ec(g);A.status!=="load"&&t.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:t.authoredCompositionId,runtimeCompositionId:t.runtimeCompositionId,hostCompositionSrc:t.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:A.status,elapsedMs:A.elapsedMs}})}}}async function ws(t){let e=Ii();if(As(),e.length===0)return;let n=Es(e),i=e.filter(r=>{if(r.hasAttribute("data-composition-src")||r.children.length>0)return!1;let o=n.get(r)?.authoredCompositionId;return o?!!document.querySelector(`template#${CSS.escape(o)}-template`):!1});if(i.length!==0)for(let r of i){let o=n.get(r),s=o?.authoredCompositionId;if(!s)continue;let c=document.querySelector(`template#${CSS.escape(s)}-template`);Ri(r),await Di({host:r,authoredCompositionId:s,runtimeCompositionId:o?.runtimeCompositionId||s,hostCompositionSrc:`template#${s}-template`,sourceNode:c.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic})}}async function Cs(t){let e=Ii();if(As(),e.length===0)return;let n=Es(e),i=e.filter(r=>r.hasAttribute("data-composition-src"));i.length!==0&&await Promise.all(i.map(async r=>{let o=r.getAttribute("data-composition-src");if(!o)return;let s=n.get(r),c=s?.authoredCompositionId||null,a=s?.runtimeCompositionId||c||null,l=null;try{l=new URL(o,document.baseURI)}catch{l=null}Ri(r);try{let u=c!=null?document.querySelector(`template#${CSS.escape(c)}-template`):null;if(u){await Di({host:r,authoredCompositionId:c,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:u.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:l,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic});return}let m=await fetch(o);if(!m.ok)throw new Error(`HTTP ${m.status}`);let f=await m.text(),A=new DOMParser().parseFromString(f,"text/html");bs(A,l);let y=(c?A.querySelector(`template#${CSS.escape(c)}-template`):null)??A.querySelector("template"),x=y?y.content:A.body,w=y?void 0:Array.from(A.head.querySelectorAll("style")),N=y?void 0:Array.from(A.head.querySelectorAll("script")),L=y?void 0:Array.from(A.head.querySelectorAll(\'link[rel="stylesheet"], link[rel="preconnect"]\'));await Di({host:r,authoredCompositionId:c,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:x,hasTemplate:!!y,fallbackBodyInnerHtml:A.body.innerHTML,compositionUrl:l,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,headStyles:w,headScripts:N,headLinks:L,declaredVariableDefaults:ki(A.documentElement),onDiagnostic:t.onDiagnostic})}catch(u){t.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:c,runtimeCompositionId:a,hostCompositionSrc:o,errorMessage:u instanceof Error?u.message:"unknown_error"}}),Ri(r)}}))}function ac(t){return t instanceof HTMLElement?t.dataset.captionWrapper!=="true"?t:t.querySelector(":scope > span")??null:null}function lc(){let t=[],e=document.querySelectorAll(".caption-group");for(let n of e)for(let i of n.children){if(!(i instanceof HTMLElement))continue;let r=i.dataset.captionWrapper==="true"?i.querySelector(":scope > span"):i.tagName==="SPAN"?i:null;r&&t.push(r)}return t}function uc(t){let e=t.parentElement;if(e?.dataset.captionWrapper==="true")return e;let n=document.createElement("span");return n.style.display="inline-block",n.dataset.captionWrapper="true",t.parentNode?.insertBefore(n,t),n.appendChild(t),n}function Pi(){let t=window.gsap;t&&document.querySelectorAll(".caption-group").length!==0&&fetch("caption-overrides.json").then(e=>e.ok?e.json():null).then(e=>{if(!e||!Array.isArray(e)||e.length===0)return;let n=lc();for(let i of e){let r=null;if(i.wordId&&(r=ac(document.getElementById(i.wordId))),!r&&i.wordIndex!==void 0&&(r=n[i.wordIndex]??null),!r)continue;let o={},s={};if(i.x!==void 0&&(o.x=i.x),i.y!==void 0&&(o.y=i.y),i.scale!==void 0&&(o.scale=i.scale),i.rotation!==void 0&&(o.rotation=i.rotation),i.opacity!==void 0&&(s.opacity=i.opacity),i.fontSize!==void 0&&(s.fontSize=`${i.fontSize}px`),i.fontWeight!==void 0&&(s.fontWeight=i.fontWeight),i.fontFamily!==void 0&&(s.fontFamily=i.fontFamily),i.activeColor||i.dimColor){let a=t.getTweensOf(r).filter(u=>u.vars.color!==void 0).sort((u,m)=>u.startTime()-m.startTime()),l=a.length>0?String(a[0].vars.color):"";for(let u of a)String(u.vars.color)===l?i.dimColor&&(u.vars.color=i.dimColor):i.activeColor&&(u.vars.color=i.activeColor);i.dimColor&&t.set(r,{color:i.dimColor})}if(Object.keys(s).length>0&&t.set(r,s),Object.keys(o).length>0){let c=uc(r);t.set(c,o)}}}).catch(()=>{})}var Xt="data-color-grading",cc="rec709",Je={exposure:0,contrast:0,highlights:0,shadows:0,whites:0,blacks:0,temperature:0,tint:0,saturation:0},Fs=["exposure","contrast","highlights","shadows","whites","blacks","temperature","tint","saturation"],dc=[{id:"neutral",label:"Neutral",adjust:{...Je}},{id:"warm-clean",label:"Warm Clean",adjust:{...Je,exposure:.05,contrast:.08,highlights:-.08,shadows:.08,temperature:.16,saturation:.06}},{id:"cool-clean",label:"Cool Clean",adjust:{...Je,contrast:.06,highlights:-.06,shadows:.06,temperature:-.12,tint:.04,saturation:.04}},{id:"soft-boost",label:"Soft Boost",adjust:{...Je,exposure:.06,contrast:-.04,highlights:-.14,shadows:.16,saturation:.1}},{id:"bright-pop",label:"Bright Pop",adjust:{...Je,exposure:.12,contrast:.12,whites:.08,blacks:-.04,saturation:.14}},{id:"deep-contrast",label:"Deep Contrast",adjust:{...Je,exposure:-.03,contrast:.2,highlights:-.08,shadows:-.08,blacks:-.12,saturation:.06}}],fc=new Map(dc.map(t=>[t.id,t])),mc=/^\\$(?:\\{([A-Za-z0-9_.:-]+)\\}|([A-Za-z0-9_.:-]+))$/,pc={exposure:{min:-2,max:2},contrast:{min:-1,max:1},highlights:{min:-1,max:1},shadows:{min:-1,max:1},whites:{min:-1,max:1},blacks:{min:-1,max:1},temperature:{min:-1,max:1},tint:{min:-1,max:1},saturation:{min:-1,max:1}};function Yt(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function hc(t,e,n){return Number.isFinite(t)?Math.min(n,Math.max(e,t)):0}function Ms(t,e){let n=typeof t=="number"?t:Number(t);return Number.isFinite(n)?Math.min(1,Math.max(0,n)):e}function xc(t,e){let n=typeof t=="number"?t:Number(t);if(!Number.isFinite(n))return 0;let i=pc[e];return hc(n,i.min,i.max)}function gc(t){if(t==null)return null;let e=String(t).trim();return e||null}function yc(t){if(t==null)return null;if(typeof t=="string"){let n=t.trim();return n?{src:n,intensity:1}:null}if(!Yt(t))return null;let e=t.src;return typeof e!="string"||e.trim()===""?null:{src:e.trim(),intensity:Ms(t.intensity,1)}}function bc(t){if(typeof t=="string"){let e=t.trim();if(!e)return null;if(e.startsWith("{"))try{let n=JSON.parse(e);return Yt(n)?n:null}catch{return null}return{preset:e,intensity:1}}return Yt(t)?t:null}function Sc(t,e){let n=t.trim().match(mc);if(!n)return t;let i=n[1]??n[2]??"";return i&&Object.hasOwn(e,i)?e[i]:t}function Oi(t,e){if(typeof t=="string"){let i=Sc(t,e);if(i!==t)return i;let r=t.trim();if(!r.startsWith("{"))return t;try{return Oi(JSON.parse(r),e)}catch{return t}}if(!Yt(t))return t;let n={};for(let[i,r]of Object.entries(t))n[i]=Oi(r,e);return n}function Ac(t){return t?fc.get(t)??null:null}function Bi(t){let e=bc(t);if(!e||e.enabled===!1)return null;let n=gc(e.preset),r=Ac(n)?.adjust??Je,o=Yt(e.adjust)?e.adjust:{},s=Fs.reduce((c,a)=>(c[a]=xc(o[a]??r[a],a),c),{...Je});return{enabled:!0,preset:n,intensity:Ms(e.intensity,1),adjust:s,lut:yc(e.lut),colorSpace:typeof e.colorSpace=="string"&&e.colorSpace.trim()?e.colorSpace.trim():cc}}function Ns(t,e){return Bi(Oi(t,e))}function Qt(t){return!t?.enabled||t.intensity===0?!1:t.lut&&t.lut.intensity!==0?!0:Fs.some(e=>Math.abs(t.adjust[e])>1e-4)}var we=class extends Error{constructor(n,i=null){super(i==null?n:`${n} at line ${i}`);ge(this,"lineNumber");this.name="CubeLutParseError",this.lineNumber=i}},Ec=[0,0,0],wc=[1,1,1],Cc=64;function Fc(t){let e=!1;for(let n=0;n<t.length;n++){let i=t[n];if(i===\'"\'&&(e=!e),i==="#"&&!e)return t.slice(0,n)}return t}function ht(t,e){let n=Number(t);if(!Number.isFinite(n))throw new we(`Invalid number "${t}"`,e);return n}function _s(t,e,n){if(t.length!==3)throw new we(`${e} expects three numbers`,n);return[ht(t[0],n),ht(t[1],n),ht(t[2],n)]}function Ts(t,e,n){if(!t)throw new we(`${e} expects a size`,n);let i=Number(t);if(!Number.isInteger(i)||i<2)throw new we(`${e} must be an integer greater than 1`,n);return i}function Mc(t,e){if(e[0]<=t[0]||e[1]<=t[1]||e[2]<=t[2])throw new we("DOMAIN_MAX values must be greater than DOMAIN_MIN values")}function Nc(t){let e=/^TITLE\\s+"([^"]*)"\\s*$/i.exec(t);if(e)return e[1]??null;let n=/^TITLE\\s+(.+)\\s*$/i.exec(t);return n&&(n[1]??"").trim()||null}function _c(t){return/^[+-]?(?:\\d|\\.\\d)/.test(t)}function Ls(t,e={}){let n=e.maxSize??Cc,i=null,r=Ec,o=wc,s=null,c=null,a=[],l=t.replace(/^\\uFEFF/,"").split(/\\r?\\n/);for(let m=0;m<l.length;m++){let f=m+1,g=Fc(l[m]??"").trim();if(!g)continue;let A=g.split(/\\s+/),y=(A[0]??"").toUpperCase(),x=A.slice(1);if(y==="TITLE"){i=Nc(g);continue}if(y==="DOMAIN_MIN"){r=_s(x,y,f);continue}if(y==="DOMAIN_MAX"){o=_s(x,y,f);continue}if(y==="LUT_1D_SIZE"){s=Ts(x[0],y,f);continue}if(y==="LUT_3D_SIZE"){if(c=Ts(x[0],y,f),c>n)throw new we(`LUT_3D_SIZE ${c} exceeds max ${n}`,f);continue}if(!_c(y)){if(y.startsWith("LUT_"))throw new we(`Unsupported cube keyword ${y}`,f);continue}if(!c)throw s?new we("1D cube LUTs are not supported yet",f):new we("LUT data appears before LUT_3D_SIZE",f);if(A.length!==3)throw new we("LUT data rows must contain three numbers",f);a.push(ht(A[0],f),ht(A[1],f),ht(A[2],f))}if(s&&c)throw new we("Mixed 1D and 3D cube LUTs are not supported yet");if(!c)throw s?new we("1D cube LUTs are not supported yet"):new we("Missing LUT_3D_SIZE");Mc(r,o);let u=c*c*c;if(a.length!==u*3)throw new we(`Expected ${u} LUT rows for size ${c}, found ${a.length/3}`);return{title:i,size:c,domainMin:r,domainMax:o,data:new Float32Array(a)}}function Tc(t){return Number.isFinite(t)?Math.min(1,Math.max(0,t)):0}function Hi(t){return Math.round(Tc(t)*255)}function vs(t){let e=t.size,n=e*e,i=e,r=new Uint8Array(n*i*4);for(let o=0;o<e;o++)for(let s=0;s<e;s++)for(let c=0;c<e;c++){let a=((o*e+s)*e+c)*3,l=(s*n+o*e+c)*4;r[l]=Hi(t.data[a]??0),r[l+1]=Hi(t.data[a+1]??0),r[l+2]=Hi(t.data[a+2]??0),r[l+3]=255}return{width:n,height:i,data:r}}var Mn=new Map,Lc="data-hf-color-grading-canvas",Ps="data-hf-color-grading-source-hidden",vc="__hf_color_grading_canvas__",kc=64,Zt={enabled:!1,position:.5,softness:0,lineWidth:2};function Rc(t){let e=window,i=t.closest("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()??"",r=i?e.__hfVariablesByComp?.[i]:void 0;if(r)return r;let o=e.__hyperframes?.getVariables?.();return o&&typeof o=="object"?o:e.__hfVariables??{}}function Wi(t){let e=t.getAttribute(Xt);return e==null?null:Ns(e,Rc(t))}var Dc=["attribute vec2 a_pos;","varying vec2 v_uv;","void main(){"," v_uv = a_pos * 0.5 + 0.5;"," gl_Position = vec4(a_pos, 0.0, 1.0);","}"].join(`\n`),Ic=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_source;","uniform sampler2D u_lut;","uniform vec2 u_resolution;","uniform vec2 u_uvScale;","uniform vec2 u_uvOffset;","uniform float u_lutEnabled;","uniform float u_lutSize;","uniform vec2 u_lutTextureSize;","uniform vec3 u_lutDomainMin;","uniform vec3 u_lutDomainMax;","uniform float u_lutIntensity;","uniform float u_exposure;","uniform float u_contrast;","uniform float u_highlights;","uniform float u_shadows;","uniform float u_whites;","uniform float u_blacks;","uniform float u_temperature;","uniform float u_tint;","uniform float u_saturation;","uniform float u_intensity;","uniform float u_compareEnabled;","uniform float u_comparePosition;","uniform float u_compareSoftness;","uniform float u_compareLineWidth;","float lumaOf(vec3 c){ return dot(c, vec3(0.2126, 0.7152, 0.0722)); }","vec3 sampleLut(float r, float g, float b){"," float size = max(u_lutSize, 2.0);"," float x = (r + b * size + 0.5) / max(u_lutTextureSize.x, 1.0);"," float y = (g + 0.5) / max(u_lutTextureSize.y, 1.0);"," return texture2D(u_lut, vec2(x, y)).rgb;","}","vec3 applyLut(vec3 color){"," if (u_lutEnabled < 0.5) return color;"," float size = max(u_lutSize, 2.0);"," vec3 span = max(u_lutDomainMax - u_lutDomainMin, vec3(0.00001));"," vec3 scaled = clamp((color - u_lutDomainMin) / span, 0.0, 1.0) * (size - 1.0);"," vec3 lo = floor(scaled);"," vec3 hi = min(lo + 1.0, vec3(size - 1.0));"," vec3 f = scaled - lo;"," vec3 c000 = sampleLut(lo.r, lo.g, lo.b);"," vec3 c100 = sampleLut(hi.r, lo.g, lo.b);"," vec3 c010 = sampleLut(lo.r, hi.g, lo.b);"," vec3 c110 = sampleLut(hi.r, hi.g, lo.b);"," vec3 c001 = sampleLut(lo.r, lo.g, hi.b);"," vec3 c101 = sampleLut(hi.r, lo.g, hi.b);"," vec3 c011 = sampleLut(lo.r, hi.g, hi.b);"," vec3 c111 = sampleLut(hi.r, hi.g, hi.b);"," vec3 c00 = mix(c000, c100, f.r);"," vec3 c10 = mix(c010, c110, f.r);"," vec3 c01 = mix(c001, c101, f.r);"," vec3 c11 = mix(c011, c111, f.r);"," vec3 c0 = mix(c00, c10, f.g);"," vec3 c1 = mix(c01, c11, f.g);"," vec3 lutColor = mix(c0, c1, f.b);"," return mix(color, lutColor, clamp(u_lutIntensity, 0.0, 1.0));","}","void main(){"," vec2 uv = (v_uv - u_uvOffset) / u_uvScale;"," if (uv.x < 0.0 || uv.y < 0.0 || uv.x > 1.0 || uv.y > 1.0) {"," gl_FragColor = vec4(0.0);"," return;"," }"," vec4 sampleColor = texture2D(u_source, uv);"," vec3 original = sampleColor.rgb;"," vec3 color = original * pow(2.0, u_exposure);"," float y = lumaOf(color);"," float shadowMask = 1.0 - smoothstep(0.0, 0.65, y);"," float highlightMask = smoothstep(0.35, 1.0, y);"," color += u_shadows * 0.35 * shadowMask;"," color += u_highlights * 0.35 * highlightMask;"," color += u_blacks * 0.25 * (1.0 - smoothstep(0.0, 0.35, y));"," color += u_whites * 0.25 * smoothstep(0.65, 1.0, y);"," color.r += u_temperature * 0.08 + u_tint * 0.04;"," color.b -= u_temperature * 0.08 - u_tint * 0.04;"," color.g -= u_tint * 0.08;"," color = (color - 0.5) * max(0.0, 1.0 + u_contrast) + 0.5;"," float satLuma = lumaOf(color);"," color = mix(vec3(satLuma), color, max(0.0, 1.0 + u_saturation));"," color = clamp(color, 0.0, 1.0);"," color = clamp(applyLut(color), 0.0, 1.0);"," vec3 graded = mix(original, color, u_intensity);"," if (u_compareEnabled > 0.5) {"," float pos = clamp(u_comparePosition, 0.0, 1.0);"," float softness = max(u_compareSoftness, 0.00001);"," float afterMask = smoothstep(pos - softness, pos + softness, v_uv.x);"," vec3 splitColor = mix(original, graded, afterMask);"," float lineMask = 0.0;"," if (u_compareLineWidth > 0.0) {"," float lineWidth = max(u_compareLineWidth / max(u_resolution.x, 1.0), 0.00001);"," lineMask = 1.0 - smoothstep(lineWidth, lineWidth * 1.8, abs(v_uv.x - pos));"," }"," gl_FragColor = vec4(mix(splitColor, vec3(1.0), lineMask * 0.82), sampleColor.a);"," return;"," }"," gl_FragColor = vec4(graded, sampleColor.a);","}"].join(`\n`);function st(t){return t instanceof HTMLVideoElement||t instanceof HTMLImageElement}function ks(t,e,n){let i=t.createShader(n);return i?(t.shaderSource(i,e),t.compileShader(i),t.getShaderParameter(i,t.COMPILE_STATUS)?i:(v("runtime.colorGrading.compileShader",t.getShaderInfoLog(i)),t.deleteShader(i),null)):null}function Pc(t){let e=ks(t,Dc,t.VERTEX_SHADER),n=ks(t,Ic,t.FRAGMENT_SHADER);if(!e||!n)return e&&t.deleteShader(e),n&&t.deleteShader(n),null;let i=t.createProgram();return i?(t.attachShader(i,e),t.attachShader(i,n),t.linkProgram(i),t.deleteShader(e),t.deleteShader(n),t.getProgramParameter(i,t.LINK_STATUS)?i:(v("runtime.colorGrading.linkProgram",t.getProgramInfoLog(i)),t.deleteProgram(i),null)):null}function Rs(t,e=t.LINEAR){let n=t.createTexture();return n?(t.bindTexture(t.TEXTURE_2D,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,e),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,null),n):null}function Oc(t){let e=t.getContext("webgl",{alpha:!0,premultipliedAlpha:!1,preserveDrawingBuffer:!0});if(!e)return null;let n=Pc(e),i=Rs(e),r=Rs(e,e.NEAREST);if(!n||!i||!r)return n&&e.deleteProgram(n),i&&e.deleteTexture(i),r&&e.deleteTexture(r),null;let o=e.createBuffer();return o?(e.bindBuffer(e.ARRAY_BUFFER,o),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),e.STATIC_DRAW),{gl:e,program:{program:n,texture:i,lutTexture:r,position:e.getAttribLocation(n,"a_pos"),source:e.getUniformLocation(n,"u_source"),lut:e.getUniformLocation(n,"u_lut"),resolution:e.getUniformLocation(n,"u_resolution"),uvScale:e.getUniformLocation(n,"u_uvScale"),uvOffset:e.getUniformLocation(n,"u_uvOffset"),lutEnabled:e.getUniformLocation(n,"u_lutEnabled"),lutSize:e.getUniformLocation(n,"u_lutSize"),lutTextureSize:e.getUniformLocation(n,"u_lutTextureSize"),lutDomainMin:e.getUniformLocation(n,"u_lutDomainMin"),lutDomainMax:e.getUniformLocation(n,"u_lutDomainMax"),lutIntensity:e.getUniformLocation(n,"u_lutIntensity"),exposure:e.getUniformLocation(n,"u_exposure"),contrast:e.getUniformLocation(n,"u_contrast"),highlights:e.getUniformLocation(n,"u_highlights"),shadows:e.getUniformLocation(n,"u_shadows"),whites:e.getUniformLocation(n,"u_whites"),blacks:e.getUniformLocation(n,"u_blacks"),temperature:e.getUniformLocation(n,"u_temperature"),tint:e.getUniformLocation(n,"u_tint"),saturation:e.getUniformLocation(n,"u_saturation"),intensity:e.getUniformLocation(n,"u_intensity"),compareEnabled:e.getUniformLocation(n,"u_compareEnabled"),comparePosition:e.getUniformLocation(n,"u_comparePosition"),compareSoftness:e.getUniformLocation(n,"u_compareSoftness"),compareLineWidth:e.getUniformLocation(n,"u_compareLineWidth")}}):(e.deleteProgram(n),e.deleteTexture(i),e.deleteTexture(r),null)}function Bc(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Hc(t){if(!Bc(t))return{...Zt};let e=(n,i,r,o)=>{let s=typeof n=="number"?n:Number(n);return Math.min(o,Math.max(r,Number.isFinite(s)?s:i))};return{enabled:t.enabled===!0,position:e(t.position,Zt.position,0,1),softness:e(t.softness,Zt.softness,0,.25),lineWidth:e(t.lineWidth,Zt.lineWidth,0,12)}}function Os(t){try{let e=new URL(t,document.baseURI);return e.protocol==="data:"?{href:e.href}:e.protocol!=="http:"&&e.protocol!=="https:"?{error:"LUT must be project-local or a data URL"}:e.origin!==window.location.origin?{error:"Remote LUT URLs are not supported"}:{href:e.href}}catch{return{error:"Invalid LUT URL"}}}function Ui(t){return t instanceof Error?t.message:"LUT failed to load"}function Wc(t){let e=Os(t);if("error"in e)return{state:"error",message:e.error};let n=Mn.get(e.href);if(n)return n;let i=fetch(e.href,{credentials:"same-origin"}).then(o=>{if(!o.ok)throw new Error(`Failed to load LUT (${o.status})`);return o.text()}).then(o=>Ls(o,{maxSize:kc})),r={state:"pending",promise:i};return Mn.set(e.href,r),i.then(o=>Mn.set(e.href,{state:"ready",lut:o}),o=>Mn.set(e.href,{state:"error",message:Ui(o)})),r}function Ds(t,e,n){if(t.lut?.src===e)return t.lut;let i=vs(n),{gl:r,program:o}=t;try{return r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,o.lutTexture),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,i.width,i.height,0,r.RGBA,r.UNSIGNED_BYTE,i.data),t.lut={src:e,title:n.title,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:i.width,textureHeight:i.height},t.lutError=null,t.lutLoadingSrc=null,t.lut}catch(s){return t.lut=null,t.lutError=Ui(s),t.lutLoadingSrc=null,v("runtime.colorGrading.uploadLut",s),null}}function Gc(t){let e=t.grading.lut?.src.trim()??"",n=t.grading.lut?.intensity??1;if(!e||n<=0)return t.lut=null,t.lutLoadingSrc=null,t.lutError=null,null;let i=Os(e);if("error"in i)return t.lut=null,t.lutLoadingSrc=null,t.lutError=i.error,null;if(t.lut?.src===i.href)return t.lut;t.lut=null;let r=Wc(e);return r.state==="ready"?Ds(t,i.href,r.lut):r.state==="error"?(t.lutError=r.message,t.lutLoadingSrc=null,null):(t.lutLoadingSrc!==i.href&&(t.lutLoadingSrc=i.href,t.lutError=null,r.promise.then(o=>{t.destroyed||t.grading.lut?.src.trim()!==e||(Ds(t,i.href,o),Ue(t))},o=>{t.destroyed||t.grading.lut?.src.trim()!==e||(t.lut=null,t.lutError=Ui(o),t.lutLoadingSrc=null,Ue(t))})),null)}function Gi(t){if(!t)return null;if(typeof t=="string"){let e=t.trim();if(!e)return null;let n=document.getElementById(e.replace(/^#/,""));if(n&&st(n))return n;try{let i=document.querySelector(e);return i&&st(i)?i:null}catch{return null}}if(t.hfId){let e=document.querySelector(`[data-hf-id="${CSS.escape(t.hfId)}"]`);if(e&&st(e))return e}if(t.id){let e=document.getElementById(t.id);if(e&&st(e))return e}if(!t.selector)return null;try{let e=Array.from(document.querySelectorAll(t.selector)),n=Math.max(0,Math.floor(Number(t.selectorIndex??0)||0)),i=e[n]??null;return i&&st(i)?i:null}catch{return null}}function Uc(t){return t instanceof HTMLVideoElement?t.videoWidth>0&&t.videoHeight>0?{width:t.videoWidth,height:t.videoHeight}:null:t instanceof HTMLImageElement&&t.naturalWidth>0&&t.naturalHeight>0?{width:t.naturalWidth,height:t.naturalHeight}:null}function Bs(t){return t instanceof HTMLVideoElement?t.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&t.videoWidth>0&&t.videoHeight>0:t instanceof HTMLImageElement?t.complete&&t.naturalWidth>0&&t.naturalHeight>0:!1}function Vc(t){if(!t.id)return null;let e=document.getElementById(`__render_frame_${t.id}__`);return e instanceof HTMLImageElement&&Bs(e)?e:null}function zc(t){if(t instanceof HTMLVideoElement){let e=Vc(t);if(e)return e}return Bs(t)?t:null}function Is(t,e){let n=t.toLowerCase();if(n==="center")return .5;if(e==="x"){if(n==="left")return 0;if(n==="right")return 1}else{if(n==="top")return 0;if(n==="bottom")return 1}if(n.endsWith("%")){let i=Number.parseFloat(n);return Number.isFinite(i)?i/100:null}return null}function jc(t){let e=t.trim().split(/\\s+/).filter(Boolean),n=.5,i=.5;for(let r=0;r<e.length;r++){let o=e[r]??"",s=Is(o,"x"),c=Is(o,"y");if(s!==null&&(o==="left"||o==="right"||o.endsWith("%")&&r===0)){n=s;continue}if(c!==null&&(o==="top"||o==="bottom"||o.endsWith("%")&&r>0)){i=c;continue}}return{x:n,y:i}}function qc(t,e,n,i,r,o){if(t<=0||e<=0||n<=0||i<=0)return{scaleX:1,scaleY:1,offsetX:0,offsetY:0};let s=r||"fill",c=t,a=e;if(s==="contain"||s==="cover"||s==="scale-down"){let f=s==="cover"?Math.max(t/n,e/i):Math.min(t/n,e/i);c=n*f,a=i*f,s==="scale-down"&&c>n&&a>i&&(c=n,a=i)}else s==="none"&&(c=n,a=i);let l=jc(o||"center"),u=(t-c)*l.x/t,m=(e-a)*l.y/e;return{scaleX:c/t,scaleY:a/e,offsetX:u,offsetY:m}}function $c(t,e){window.getComputedStyle(e).position==="static"&&(t.touchedParent||(t.touchedParent=e,t.parentInlinePosition=e.style.position||null),e.style.position="relative")}function Kc(t,e){let{element:n,canvas:i}=t,r=n.parentElement;r&&$c(t,r);let o=window.getComputedStyle(e);vr(i.style,o),i.style.pointerEvents="none",i.style.position="absolute",i.style.inset="auto",i.style.left=`${n.offsetLeft}px`,i.style.top=`${n.offsetTop}px`,i.style.right="auto",i.style.bottom="auto",i.style.width=`${n.offsetWidth}px`,i.style.height=`${n.offsetHeight}px`,i.style.display="block",i.style.opacity=t.sourceOpacityForCanvas,i.style.visibility=t.sourceVisibleForCanvas?"visible":"hidden";let s=n.getBoundingClientRect(),c=Math.max(0,Math.round(n.offsetWidth||s.width)),a=Math.max(0,Math.round(n.offsetHeight||s.height));return c<=0||a<=0?(i.style.display="none",null):(i.width!==c&&(i.width=c),i.height!==a&&(i.height=a),{width:c,height:a})}function Jc(t,e,n,i,r,o,s){t.uniform1i(e.source,0),t.uniform1i(e.lut,1),t.uniform2f(e.resolution,o.width,o.height),t.uniform2f(e.uvScale,s.scaleX,s.scaleY),t.uniform2f(e.uvOffset,s.offsetX,s.offsetY),t.uniform1f(e.lutEnabled,i?1:0),t.uniform1f(e.lutSize,i?.size??2),t.uniform2f(e.lutTextureSize,i?.textureWidth??1,i?.textureHeight??1),t.uniform3f(e.lutDomainMin,i?.domainMin[0]??0,i?.domainMin[1]??0,i?.domainMin[2]??0),t.uniform3f(e.lutDomainMax,i?.domainMax[0]??1,i?.domainMax[1]??1,i?.domainMax[2]??1),t.uniform1f(e.lutIntensity,n.lut?.intensity??0),t.uniform1f(e.exposure,n.adjust.exposure),t.uniform1f(e.contrast,n.adjust.contrast),t.uniform1f(e.highlights,n.adjust.highlights),t.uniform1f(e.shadows,n.adjust.shadows),t.uniform1f(e.whites,n.adjust.whites),t.uniform1f(e.blacks,n.adjust.blacks),t.uniform1f(e.temperature,n.adjust.temperature),t.uniform1f(e.tint,n.adjust.tint),t.uniform1f(e.saturation,n.adjust.saturation),t.uniform1f(e.intensity,n.intensity),t.uniform1f(e.compareEnabled,r.enabled?1:0),t.uniform1f(e.comparePosition,r.position),t.uniform1f(e.compareSoftness,r.softness),t.uniform1f(e.compareLineWidth,r.lineWidth)}function Yc(t){t.sourceHidden||(t.sourceInlineOpacity=t.element.style.getPropertyValue("opacity")||null,t.sourceInlineOpacityPriority=t.element.style.getPropertyPriority("opacity")),t.element.setAttribute(Ps,"true"),t.element.style.setProperty("opacity","0","important"),t.sourceHidden=!0}function Ue(t){if(t.destroyed)return!1;let e=zc(t.element);if(!e)return t.hasDrawn||(t.canvas.style.display="none"),!1;let n=Uc(e);if(!n)return!1;let i=e instanceof HTMLElement?e:t.element,r=t.element.style.getPropertyValue("opacity"),o=t.element.style.getPropertyPriority("opacity"),s=t.sourceHidden&&r==="0"&&o==="important",c=t.element.style.getPropertyValue("visibility");if(!s){let g=window.getComputedStyle(t.element);t.sourceOpacityForCanvas=g.opacity||"1",t.sourceVisibleForCanvas=c!=="hidden"&&g.visibility!=="hidden"}let a=Kc(t,i);if(!a)return!1;let l=window.getComputedStyle(i),u=qc(a.width,a.height,n.width,n.height,l.objectFit,l.objectPosition),{gl:m,program:f}=t;try{let g=Gc(t);return m.viewport(0,0,a.width,a.height),m.useProgram(f.program),m.activeTexture(m.TEXTURE0),m.bindTexture(m.TEXTURE_2D,f.texture),m.pixelStorei(m.UNPACK_FLIP_Y_WEBGL,!0),m.texImage2D(m.TEXTURE_2D,0,m.RGBA,m.RGBA,m.UNSIGNED_BYTE,e),m.activeTexture(m.TEXTURE1),m.bindTexture(m.TEXTURE_2D,f.lutTexture),Jc(m,f,t.grading,g,t.compare,a,u),m.enableVertexAttribArray(f.position),m.vertexAttribPointer(f.position,2,m.FLOAT,!1,0,0),m.drawArrays(m.TRIANGLE_STRIP,0,4),Yc(t),t.hasDrawn=!0,!0}catch(g){return v("runtime.colorGrading.drawEntry",g),!1}}function Ye(t,e,n,i){e.addEventListener(n,i),t.cleanup.push(()=>e.removeEventListener(n,i))}function Xc(t){t.animationFrame!==null&&(window.cancelAnimationFrame(t.animationFrame),t.animationFrame=null),t.videoFrameHandle!==null&&t.element instanceof HTMLVideoElement&&(t.element.cancelVideoFrameCallback?.(t.videoFrameHandle),t.videoFrameHandle=null)}function en(t){if(t.destroyed||!(t.element instanceof HTMLVideoElement)||t.videoFrameHandle!==null||t.animationFrame!==null)return;let e=t.element,n=e;if(typeof n.requestVideoFrameCallback=="function"){t.videoFrameHandle=n.requestVideoFrameCallback(()=>{t.videoFrameHandle=null,Ue(t),!t.destroyed&&!e.paused&&!e.ended&&en(t)});return}t.animationFrame=window.requestAnimationFrame(()=>{t.animationFrame=null,Ue(t),!t.destroyed&&!e.paused&&!e.ended&&en(t)})}function Qc(t){let e=()=>{Ue(t)};Ye(t,t.element,"load",e),Ye(t,t.element,"loadedmetadata",e),Ye(t,t.element,"loadeddata",e),Ye(t,t.element,"seeked",e),Ye(t,t.element,"timeupdate",e),Ye(t,window,"resize",e),t.element instanceof HTMLVideoElement&&(Ye(t,t.element,"play",()=>en(t)),Ye(t,t.element,"pause",e)),typeof ResizeObserver<"u"&&(t.resizeObserver=new ResizeObserver(e),t.resizeObserver.observe(t.element))}function Zc(t){if(!t.destroyed){t.destroyed=!0,Xc(t),t.resizeObserver?.disconnect();for(let e of t.cleanup)e();if(t.cleanup.length=0,t.canvas.remove(),t.gl.deleteTexture(t.program.texture),t.gl.deleteTexture(t.program.lutTexture),t.gl.deleteProgram(t.program.program),t.sourceHidden){t.element.removeAttribute(Ps);let e=t.element.style.getPropertyValue("opacity"),n=t.element.style.getPropertyPriority("opacity");e==="0"&&n==="important"&&(t.sourceInlineOpacity===null?t.element.style.removeProperty("opacity"):t.element.style.setProperty("opacity",t.sourceInlineOpacity,t.sourceInlineOpacityPriority))}t.touchedParent&&(t.parentInlinePosition===null?t.touchedParent.style.removeProperty("position"):t.touchedParent.style.position=t.parentInlinePosition)}}function ed(t){let e=document.createElement("canvas");return e.className=vc,e.setAttribute(Lc,"true"),e.setAttribute("data-hyperframes-ignore",""),e.setAttribute("data-hyperframes-picker-ignore",""),e.setAttribute("data-hf-ignore",""),e.setAttribute("aria-hidden","true"),e.style.pointerEvents="none",e.style.display="none",t.parentNode?.insertBefore(e,t.nextSibling),e}function Hs(){let t=new WeakMap,e=new Set,n=null,i=!1,r=(y,x,w)=>{let N=t.get(y);if(N)return N.grading=x,N.source=w,Ue(N),y instanceof HTMLVideoElement&&!y.paused&&en(N),!0;let L=ed(y),$=Oc(L);if(!$)return L.remove(),!1;let B={element:y,canvas:L,gl:$.gl,program:$.program,grading:x,compare:{...Zt},lut:null,lutLoadingSrc:null,lutError:null,source:w,animationFrame:null,videoFrameHandle:null,resizeObserver:null,cleanup:[],touchedParent:null,parentInlinePosition:null,sourceHidden:!1,sourceInlineOpacity:null,sourceInlineOpacityPriority:"",sourceOpacityForCanvas:window.getComputedStyle(y).opacity||"1",sourceVisibleForCanvas:window.getComputedStyle(y).visibility!=="hidden",hasDrawn:!1,destroyed:!1};return t.set(y,B),e.add(y),Qc(B),Ue(B),y instanceof HTMLVideoElement&&!y.paused&&en(B),!0},o=(y,x)=>{if(i)return!1;let w=Gi(y);if(!w)return!1;let N=t.get(w);if(!N){let L=Wi(w);if(!Qt(L)||!r(w,L,"attribute"))return!1;N=t.get(w)}return N?(N.compare=Hc(x),Ue(N),!0):!1},s=y=>{let x=t.get(y);x&&(Zc(x),t.delete(y),e.delete(y))},c=()=>{if(i)return 0;let y=new Set;document.querySelectorAll(`video[${Xt}], img[${Xt}]`).forEach(w=>{if(!st(w))return;y.add(w);let N=Wi(w);Qt(N)?r(w,N,"attribute"):s(w)});for(let w of Array.from(e)){let N=t.get(w);N&&(!w.isConnected||N.source==="attribute"&&!y.has(w))&&s(w)}return e.size},a=()=>{if(i)return 0;let y=0;for(let x of Array.from(e,w=>t.get(w)))x&&Ue(x)&&(y+=1);return y},l=(y,x)=>{if(i)return!1;let w=Gi(y);if(!w)return!1;let N=Bi(x);return Qt(N)?r(w,N,"live"):(s(w),!0)},u=(y,x)=>{if(!st(y))return!1;let w=t.get(y);return w?(w.sourceVisibleForCanvas=x,!0):!1},m=y=>{let x=Gi(y);if(!x)return{state:"missing",message:"Media not found"};let w=t.get(x);if(w)return w.lutError?{state:"unavailable",message:w.lutError}:w.grading.lut&&w.lutLoadingSrc?{state:"pending",message:"Loading LUT"}:w.canvas.style.display==="none"?{state:"pending",message:"Waiting for media frame"}:{state:"active",message:w.lut?"Shader + LUT active":"Shader active"};let N=Wi(x);return Qt(N)?{state:"unavailable",message:"WebGL unavailable"}:{state:"inactive",message:"No grading applied"}},f=()=>{if(!i){i=!0,n?.disconnect(),n=null;for(let y of Array.from(e))s(y)}};document.body&&(n=new MutationObserver(()=>c()),n.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[Xt]}));let g={refresh:c,redraw:a,setGrading:l,setCompare:o,setSourceVisibility:u,getStatus:m,destroy:f},A=window;return A.__hf=A.__hf||{},A.__hf.colorGrading=g,c(),g}var Nn=class{constructor(e){ge(this,"_baseTime",0);ge(this,"_playStartMs",null);ge(this,"_rate",1);ge(this,"_duration",1/0);ge(this,"_nowMs");ge(this,"_audioSource",null);this._baseTime=e?.initialTime??0,this._rate=e?.rate??1,this._duration=e?.duration??1/0,this._nowMs=e?.nowMs??(()=>performance.now())}now(){if(this._playStartMs===null)return this._baseTime;if(this._audioSource){let i=null;if("currentTimeSeconds"in this._audioSource)i=this._audioSource.currentTimeSeconds;else{let{el:r,compositionStart:o,mediaStart:s}=this._audioSource;!r.paused&&Number.isFinite(r.currentTime)&&(i=(r.currentTime-s)/(r.playbackRate>0?r.playbackRate:1)*this._rate+o)}if(i!==null)return Number.isFinite(this._duration)&&i>=this._duration?this._duration:Math.max(0,i)}let e=(this._nowMs()-this._playStartMs)/1e3,n=this._baseTime+e*this._rate;return Number.isFinite(this._duration)&&n>=this._duration?this._duration:Math.max(0,n)}play(){return this._playStartMs!==null||Number.isFinite(this._duration)&&this._baseTime>=this._duration?!1:(this._playStartMs=this._nowMs(),!0)}pause(){return this._playStartMs===null?!1:(this._baseTime=this.now(),this._playStartMs=null,!0)}seek(e){let n=Number.isFinite(this._duration)?Math.max(0,Math.min(e,this._duration)):Math.max(0,e);this._baseTime=n,this._playStartMs!==null&&(this._playStartMs=this._nowMs())}isPlaying(){return this._playStartMs!==null}setRate(e){let n=Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1;this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._rate=n}getRate(){return this._rate}setDuration(e){this._duration=Number.isFinite(e)&&e>0?e:1/0,this._baseTime>this._duration&&(this._baseTime=this._duration)}getDuration(){return this._duration}attachAudioSource(e){this._audioSource=e}detachAudioSource(){this._audioSource&&this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._audioSource=null}hasAudioSource(){return this._audioSource!==null}getSource(){if(this._audioSource&&this._playStartMs!==null){if("currentTimeSeconds"in this._audioSource)return"audio";let{el:e}=this._audioSource;if(!e.paused&&Number.isFinite(e.currentTime))return"audio"}return"monotonic"}snapshot(){return{time:this.now(),playing:this.isPlaying(),rate:this._rate,duration:this._duration,source:this.getSource()}}reachedEnd(){return Number.isFinite(this._duration)&&this.now()>=this._duration}};function Ws(t){return!Number.isFinite(t)||t<=0?1:t}function td(t,e){e||t.paused||!ln().__hfDebug||console.debug("[hyperframes] webAudioTransport claimed fallback-playing element:",t.currentSrc||t.getAttribute("src")||"")}function nd(t,e){let{elapsed:n,mediaStart:i,scheduledAt:r,safeRate:o,clipDuration:s}=e,c=Number.isFinite(s)&&s>0,a=s*o;if(n>=0){let u=a-n;return c&&u<=0?!1:(c?t.start(0,n+i,u):t.start(0,n+i),!0)}let l=-n/o;return c?t.start(r+l,i,a):t.start(r+l,i),!0}var _n=class{constructor(){ge(this,"_ctx",null);ge(this,"_bufferCache",new Map);ge(this,"_failedSrcs",new Set);ge(this,"_activeSources",[]);ge(this,"_masterGain",null);ge(this,"_rateAnchorCtx",0);ge(this,"_rateAnchorComp",0);ge(this,"_rate",1);ge(this,"_paused",!0);ge(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._masterGain.connect(this._ctx.destination),!0}catch{return!1}}get context(){return this._ctx}getTime(){return!this._ctx||this._paused?-1:this._rateAnchorComp+(this._ctx.currentTime-this._rateAnchorCtx)*this._rate}async decodeAudioElement(e){let n=e.currentSrc||e.getAttribute("src");if(!n)return null;if(this._bufferCache.has(n))return this._bufferCache.get(n);if(this._failedSrcs.has(n)||!this._ctx)return null;let i;try{let r=await fetch(n,{cache:"no-store"});if(!r.ok)return v("webAudioTransport.fetch",new Error(`${r.status} ${n}`)),null;i=await r.arrayBuffer()}catch(r){return v("webAudioTransport.fetch",r),null}try{let r=await this._ctx.decodeAudioData(i);return this._bufferCache.set(n,r),r}catch(r){return this._failedSrcs.add(n),v("webAudioTransport.decode",r),null}}startGeneration(){return this._playGeneration+=1,this._playGeneration}currentGeneration(){return this._playGeneration}async schedulePlayback(e,n,i,r,o,s,c,a=1,l=Number.POSITIVE_INFINITY){if(!this._ctx||!this._masterGain||c!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),c!==this._playGeneration)return null;let u=Ws(a),m=this._ctx.createBufferSource();m.buffer=n,m.playbackRate.value=u;let f=this._ctx.createGain();f.gain.value=s,m.connect(f),f.connect(this._masterGain);let g=o-i,A=this._ctx.currentTime;if(this._rate=u,this._rateAnchorCtx=A,this._rateAnchorComp=o,!nd(m,{elapsed:g,mediaStart:r,scheduledAt:A,safeRate:u,clipDuration:l}))return m.disconnect(),f.disconnect(),null;let y=e.muted;e.muted=!0,td(e,y);let x={el:e,sourceNode:m,gainNode:f,compositionStart:i,mediaStart:r,scheduledAt:A,priorMuted:y,bounded:Number.isFinite(l)&&l>0};return this._activeSources.push(x),this._paused=!1,m.addEventListener("ended",()=>{let w=this._activeSources.indexOf(x);w!==-1&&(this._activeSources.splice(w,1),e.muted=y,this._activeSources.length===0&&(this._paused=!0))}),x}catch(u){return v("webAudioTransport.schedule",u),null}}setRate(e){let n=Ws(e);if(n===this._rate)return!1;this._ctx&&!this._paused&&(this._rateAnchorComp=this.getTime(),this._rateAnchorCtx=this._ctx.currentTime),this._rate=n;for(let i of this._activeSources)try{i.sourceNode.playbackRate.value=n}catch(r){v("webAudioTransport.setRate",r)}return!0}hasBoundedActiveSources(){return this._activeSources.some(e=>e.bounded)}stopAll(){for(let e of this._activeSources){try{e.sourceNode.stop(),e.sourceNode.disconnect(),e.gainNode.disconnect()}catch{}e.el.muted=e.priorMuted}this._activeSources=[],this._paused=!0}setVolume(e){this._masterGain&&(this._masterGain.gain.value=Math.max(0,Math.min(1,e)))}setElementVolume(e,n){let i=Math.max(0,Math.min(1,n));for(let r of this._activeSources)if(r.el===e)try{r.gainNode.gain.value=i}catch(o){v("webAudioTransport.setElementVolume",o)}}setMuted(e){this._masterGain&&(this._masterGain.gain.value=e?0:1)}isActive(){return this._activeSources.length>0&&!this._paused}ownsElement(e){return!this._paused&&this._activeSources.some(n=>n.el===e)}destroy(){if(this.stopAll(),this._bufferCache.clear(),this._failedSrcs.clear(),this._ctx)try{this._ctx.close()}catch{}this._ctx=null,this._masterGain=null}};var Gs="data-hf-studio-manual-edit-gesture";var Vi="data-hf-authored-duration",zi="data-hf-authored-end";function id(){let t=window.__HF_EXPORT_RENDER_SEEK_CONFIG,e=t?.fps,n=t?.fpsSource,i=Number(e);return!t||e==null?{fps:null,source:"default",rawFpsSource:n,rawFps:e,fallbackReason:"missing"}:!Number.isFinite(i)||i<=0?{fps:null,source:"default",rawFpsSource:n,rawFps:e,fallbackReason:"invalid"}:{fps:i,source:n==="render-options"||n==="default"?n:"unknown",rawFpsSource:n,rawFps:e,fallbackReason:t.fpsFallbackReason}}function Us(){let t=Dr(),e=id();t.canonicalFps=e.fps??t.canonicalFps,window.__HF_EXPORT_RENDER_SEEK_CONFIG&&console.info("[hyperframes] render runtime fps",{canonicalFps:t.canonicalFps,source:e.source,rawFpsSource:e.rawFpsSource,rawFps:e.rawFps,fallbackReason:e.fallbackReason});let n=null,i=null,r=null,o=[],s=new Set,c=null;if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(d){v("runtime.init.site1",d)}(()=>{let d=window.gsap,p=window;if(!(!d?.registerPlugin||p.__hfAutoNoopRegistered))try{d.registerPlugin({name:"_auto",init:()=>!1}),p.__hfAutoNoopRegistered=!0}catch{}})(),document.documentElement&&(document.documentElement.style.margin="0",document.documentElement.style.padding="0",document.documentElement.style.overflow="hidden"),document.body&&(document.body.style.margin="0",document.body.style.padding="0",document.body.style.overflow="hidden"),window.__timelines=window.__timelines||{};let l=()=>{let d=document.querySelector(\'[data-composition-id][data-root="true"]\');if(d instanceof HTMLElement)return d;let p=Array.from(document.querySelectorAll("[data-composition-id]"));return p.find(h=>!h.parentElement?.closest("[data-composition-id]"))??p[0]??null};if(Array.isArray(window.__timelines)){let d=window.__timelines,p=l()?.getAttribute("data-composition-id")??"root",h={};if(d.length===1)h[p]=d[0];else for(let b=0;b<d.length;b++)h[`tl-${b}`]=d[b];window.__timelines=h}let u=l();u&&!u.hasAttribute("data-start")&&u.setAttribute("data-start","0");let m=d=>{o.push(d)},f=(d,p,h)=>{let b=h??`${d}:${JSON.stringify(p)}`;s.has(b)||(s.add(b),Ee({source:"hf-preview",type:"diagnostic",code:d,details:p}))},g=d=>{let p={scale:1,focusX:960,focusY:540},h=[],b=[],E={time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying(),renderMode:!1,timelineDirty:!1};return{play:d.play,pause:d.pause,seek:d.seek,getTime:d.getTime,getDuration:d.getDuration,isPlaying:d.isPlaying,getMainTimeline:()=>null,getElementBounds:()=>{},getElementsAtPoint:()=>{},setElementPosition:()=>{},previewElementPosition:()=>{},setElementKeyframes:()=>{},setElementScale:()=>{},setElementFontSize:()=>{},setElementTextContent:()=>{},setElementTextColor:()=>{},setElementTextShadow:()=>{},setElementTextFontWeight:()=>{},setElementTextFontFamily:()=>{},setElementTextOutline:()=>{},setElementTextHighlight:()=>{},setElementVolume:()=>{},setStageZoom:()=>{},getStageZoom:()=>p,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>h,addElement:()=>!1,removeElement:()=>!1,updateElementTiming:()=>!1,setElementTiming:()=>{},updateElementSrc:()=>!1,updateElementLayer:()=>!1,updateElementBasePosition:()=>!1,markTimelineDirty:()=>{},isTimelineDirty:()=>!1,rebuildTimeline:()=>{},ensureTimeline:()=>{},enableRenderMode:()=>{},disableRenderMode:()=>{},renderSeek:d.renderSeek,getElementVisibility:()=>({visible:!1}),getVisibleElements:()=>b,getRenderState:()=>({...E,time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying()})}},A=1/60,y=.75,x=2,w=.05,N=100,L=240,$=d=>{if(d instanceof Error)return d.message||String(d);if(typeof d=="string")return d;try{return JSON.stringify(d)}catch{return String(d??"")}},B=d=>{let p=d.toLowerCase();return p.includes("cannot read properties of null")||p.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:p.includes("failed to execute \'queryselector\'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:p.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},_=d=>{if(d==null||d.trim()==="")return null;let p=Number.parseFloat(d);return!Number.isFinite(p)||p<=0?null:`${p}px`},S=()=>l(),C=()=>{let d=S();if(!d)return;let p=_(d.getAttribute("data-width")),h=_(d.getAttribute("data-height"));p&&(d.style.width=p),h&&(d.style.height=h),p&&d.style.setProperty("--comp-width",p),h&&d.style.setProperty("--comp-height",h)},F=()=>{let d=S(),p=Array.from(document.querySelectorAll("[data-composition-id]")).filter(h=>h.hasAttribute("data-duration")||h.hasAttribute("data-end"));for(let h of p){if(d&&h===d)continue;let b=h.getAttribute("data-duration"),E=h.getAttribute("data-end");b!=null&&!h.hasAttribute(Vi)&&h.setAttribute(Vi,b),E!=null&&!h.hasAttribute(zi)&&h.setAttribute(zi,E),h.removeAttribute("data-duration"),h.removeAttribute("data-end")}},T=()=>{let d=S();if(!d)return;d.style.position||(d.style.position="relative"),d.style.overflow="hidden";let p=_(d.getAttribute("data-width")),h=_(d.getAttribute("data-height"));p&&(d.style.width=p),h&&(d.style.height=h);let b=Array.from(d.children);for(let E of b){let M=E.tagName.toLowerCase();if(M==="script"||M==="style"||M==="link"||M==="meta"||!E.hasAttribute("data-start")||E.hasAttribute("data-hf-autostamped"))continue;let R=(E.style.top==="0px"||E.style.top==="0")&&(E.style.left==="0px"||E.style.left==="0")&&E.style.width==="100%"&&E.style.height==="100%",J=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(E.style.transform);if(R&&J&&!E.hasAttribute("data-width")&&!E.hasAttribute("data-height")){let ye=E.style.top,nt=E.style.left,Ae=E.style.width,wt=E.style.height;E.style.top="",E.style.left="",E.style.width="",E.style.height="";let ne=window.getComputedStyle(E);ne.top!=="auto"||ne.bottom!=="auto"||ne.left!=="auto"||ne.right!=="auto"||ne.width!=="0px"||ne.height!=="0px"||(E.style.top=ye,E.style.left=nt,E.style.width=Ae,E.style.height=wt)}let K=window.getComputedStyle(E),me=K.position;if(me!=="absolute"&&me!=="fixed"&&(E.style.position="absolute"),!!E.style.top||!!E.style.bottom||K.top!=="auto"||K.bottom!=="auto"||(E.style.top="0"),!!E.style.left||!!E.style.right||K.left!=="auto"||K.right!=="auto"||(E.style.left="0"),M!=="audio"){let ye=_(E.getAttribute("data-width")),nt=_(E.getAttribute("data-height")),Ae=K.width!=="0px"&&K.width!=="auto",wt=K.height!=="0px"&&K.height!=="auto";ye?!E.style.width&&!Ae&&(E.style.width=ye):!E.style.width&&K.width==="0px"&&(E.style.width="100%"),nt?!E.style.height&&!wt&&(E.style.height=nt):!E.style.height&&K.height==="0px"&&(E.style.height="100%")}}},k=(d,p=0,h)=>ze({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:h?.includeAuthoredTimingAttrs??!0}).resolveStartForElement(d,p),G=(d,p)=>ze({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:p?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(d),j=(d,p=0)=>!d.hasAttribute("data-hf-auto-start")&&d.hasAttribute("data-start")?Math.max(0,Number(d.getAttribute("data-start")??0)||0)+p:k(d,p),ie=(d,p)=>{let h=d.tagName.toLowerCase();if(h==="script"||h==="style"||h==="link"||h==="meta")return!1;let b=h==="video"||h==="audio"?j(d,0):k(d,0),E=G(d),M=d.getAttribute("data-composition-id");if(M){let J=(window.__timelines??{})[M],K=null;if(J&&typeof J.duration=="function"){let be=Number(J.duration());Number.isFinite(be)&&be>0&&(K=be)}!(d.hasAttribute("data-duration")||d.hasAttribute("data-end")||d.hasAttribute(Vi)||d.hasAttribute(zi))&&(E==null||E<=0)&&K!=null&&(E=K)}let R=E!=null&&E>0?b+E:Number.POSITIVE_INFINITY;return p>=b&&(Number.isFinite(R)?p<=R:!0)},P=!!document.querySelector("[data-composition-src]"),se=!1;{let d=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let p of d){let h=p.getAttribute("data-composition-id");if(h&&p.children.length===0&&document.querySelector(`template#${CSS.escape(h)}-template`)){se=!0;break}}}let Se=!P&&!se,H=d=>{if(!d||typeof d.duration!="function")return null;try{let p=Number(d.duration());return Number.isFinite(p)?Math.max(0,p):null}catch{return null}},U=d=>typeof d=="number"&&Number.isFinite(d)&&d>A,V=d=>{let p=Number(d.getAttribute("data-duration"));if(Number.isFinite(p)&&p>0)return p;let h=Number(d.getAttribute("data-playback-start")??d.getAttribute("data-media-start")??"0"),b=Number.isFinite(h)?Math.max(0,h):0;return Number.isFinite(d.duration)&&d.duration>b?Math.max(0,d.duration-b):null},re=()=>{let d=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(d.length===0)return null;let p=0;for(let h of d){let b=j(h,0);if(!Number.isFinite(b))continue;let E=V(h);E==null||E<=A||(p=Math.max(p,Math.max(0,b)+E))}return p>A?p:null},Fe=()=>{let d=S();if(!d)return null;let p=window.__timelines??{},h=ze({timelineRegistry:p,includeAuthoredTimingAttrs:!0}),b=0,E=Number.parseFloat(d.getAttribute("data-duration")??"");Number.isFinite(E)&&E>0&&(b=E);let M=Array.from(d.querySelectorAll("[data-composition-id][data-start]"));for(let R of M){if(!(R instanceof Element)||R.parentElement?.closest("[data-composition-id]")!==d)continue;let K=h.resolveStartForElement(R,0),me=h.resolveDurationForElement(R);!Number.isFinite(K)||me==null||me<=0||(b=Math.max(b,Math.max(0,K)+me))}return b>A?b:null},O=()=>{let d=re();return typeof d!="number"||!Number.isFinite(d)||d<=A?null:d},D=d=>U(d)?Math.max(A,d*y):A,W=()=>{let d=0;for(let p of t.deterministicAdapters){let h=p.getInferredDurationSeconds;if(typeof h!="function")continue;let b=null;try{b=h()}catch(E){v("runtime.init.adapterDuration",E)}typeof b=="number"&&Number.isFinite(b)&&b>0&&(d=Math.max(d,b))}return d>A?d:null},Q=(d,p=0)=>{let h=H(d),b=O(),E=Fe(),M=W(),R=Math.max(b??0,E??0,M??0),J=Number.isFinite(p)&&p>A?p:0,K=0;return U(h)?K=Math.max(h,R,J):U(R)?K=Math.max(R,J):K=J,K>0?Math.max(0,K):0},ae=()=>{let d=window.__timelines??{},p=ne=>{let ee=Object.entries(d).filter(xe=>!!xe[1]&&typeof xe[1].play=="function"&&typeof xe[1].pause=="function");if(ee.length!==1)return{timeline:null};let[fe,pe]=ee[0];return{timeline:pe,selectedTimelineIds:[fe],selectedDurationSeconds:H(pe),diagnostics:{code:"root_timeline_sole_registered_fallback",details:{reason:ne,soleTimelineId:fe}}}},h=ze({timelineRegistry:d,includeAuthoredTimingAttrs:!0}),b=O(),E=Fe(),M=Math.max(b??0,E??0)||null,R=D(M),J=ne=>{let ee=document.querySelector(`[data-composition-id="${CSS.escape(ne)}"]`);return ee?h.resolveStartForElement(ee,0):0},K=ne=>{let ee=window.gsap;if(!ee||typeof ee.timeline!="function")return null;let fe=ee.timeline({paused:!0});for(let pe of ne)fe.add(pe.timeline,J(pe.compositionId));return fe},me=(ne,ee)=>{if(!U(ne))return null;let fe=window.gsap;if(!fe||typeof fe.timeline!="function")return null;let pe=fe.timeline({paused:!0});if(ee)try{pe.add(ee,0)}catch(ue){v("runtime.init.site2",ue)}let xe=pe;if(typeof xe.to=="function")try{xe.to({},{duration:ne})}catch(ue){v("runtime.init.site3",ue)}return pe},be=(ne,ee)=>{let fe=ne;if(typeof fe.getChildren!="function")return[];try{let pe=fe.getChildren(!0,!0,!0)??[];if(!Array.isArray(pe))return[];let xe=[];for(let ue of ee)if(!pe.some(ve=>ve===ue.timeline))try{let ve=J(ue.compositionId);ne.add(ue.timeline,ve),xe.push(ue.compositionId)}catch(ve){v("runtime.init.site4",ve)}return xe}catch{return[]}},oe=S(),Z=oe?.getAttribute("data-composition-id")??null;if(!Z)return p("root_missing_composition_id");let ye=d[Z]??null,Ae=(()=>{if(!oe)return[];let ne=new Set,ee=Array.from(oe.querySelectorAll("[data-composition-id]")),fe=[];for(let pe of ee){let xe=pe.getAttribute("data-composition-id");if(!xe||xe===Z||ne.has(xe))continue;ne.add(xe);let ue=d[xe]??null;if(!ue||typeof ue.play!="function"||typeof ue.pause!="function")continue;let Ne=H(ue);fe.push({compositionId:xe,timeline:ue,durationSeconds:Ne??0})}return fe})(),wt=ne=>{for(let ee of ne){let fe=ee.timeline;if(typeof fe.paused=="function")try{fe.paused(!1)}catch(pe){v("runtime.init.site5",pe)}}};if(Ae.length>0&&wt(Ae),ye){let ne=Ae.length>0?be(ye,Ae):[];if((Ae.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+Z+"\'])"))&&(q=!0),ne.length>0)try{let ue=ye.time();ye.seek(ue,!1)}catch{}let ee=H(ye);if(!U(ee)&&Ae.length>0){let ue=Ae.map(Ma=>Ma.compositionId),Ne=K(Ae),ve=H(Ne);if(Ne&&U(ve))return{timeline:Ne,selectedTimelineIds:ue,selectedDurationSeconds:ve,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:R,selectedDurationSeconds:ve,mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:E,selectedTimelineIds:ue,autoNestedChildren:ne}}};let Un=me(M??0,ye),Vn=H(Un);if(Un&&U(Vn))return{timeline:Un,selectedTimelineIds:[Z],selectedDurationSeconds:Vn,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:E,selectedDurationSeconds:Vn,selectedTimelineIds:[Z],autoNestedChildren:ne}}}}if(!U(ee)&&Ae.length===0){let ue=me(M??0,ye),Ne=H(ue);if(ue&&U(Ne))return{timeline:ue,selectedTimelineIds:[Z],selectedDurationSeconds:Ne,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:E,selectedDurationSeconds:Ne,selectedTimelineIds:[Z]}}}}let fe=oe?.getAttribute("data-duration"),pe=fe?parseFloat(fe):null,xe=Math.max(U(pe)?pe:0,E??0);if(xe>0&&U(xe)&&U(ee)&&xe>=ee+.5){let ue=ye;if(typeof ue.to=="function")try{ue.to({},{duration:0},xe)}catch(ve){v("runtime.init.site6",ve)}let Ne=H(ye);if(U(Ne))return{timeline:ye,selectedTimelineIds:[Z],selectedDurationSeconds:Ne,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:Z,rootDurationSeconds:ee,rootDeclaredDur:pe,authoredCompositionDurationFloorSeconds:E,newDur:Ne}}}}return{timeline:ye,selectedTimelineIds:[Z],selectedDurationSeconds:ee,mediaDurationFloorSeconds:b,diagnostics:ne.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:Z,selectedDurationSeconds:ee,autoNestedChildren:ne}}:void 0}}if(Ae.length>0){let ne=Ae.map(pe=>pe.compositionId),ee=K(Ae),fe=H(ee);if(ee)return{timeline:ee,selectedTimelineIds:ne,selectedDurationSeconds:fe,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:Z,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:R,selectedDurationSeconds:fe,mediaDurationFloorSeconds:b,selectedTimelineIds:ne}}}}return p("root_composition_id_unmatched_in_registry")},q=!1,z=()=>{if(!Se)return!1;let d=t.capturedTimeline,p=H(d),h=U(p);if(d&&h&&q)return!1;let b=ae();if(!b.timeline)return!1;if(d&&d===b.timeline)return typeof d.timeScale=="function"&&d.timeScale(t.playbackRate),!1;t.capturedTimeline=b.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let E=Q(t.capturedTimeline,0);if(E<=0&&typeof t.capturedTimeline.progress=="function"&&(t.capturedTimeline.progress(1,!0),t.capturedTimeline.progress(0,!1),t.capturedTimeline.pause()),E>0){try{I.setDuration(E)}catch{}if(typeof t.capturedTimeline.totalTime=="function"){typeof t.capturedTimeline.progress=="function"&&t.capturedTimeline.progress(1e-4,!0);let R=Math.max(0,t.currentTime||0);t.capturedTimeline.totalTime(R,!1),t.capturedTimeline.pause()}let M=window.__hfStudioManualEditsApply;typeof M=="function"&&M()}if(b.diagnostics&&Ee({source:"hf-preview",type:"diagnostic",code:b.diagnostics.code,details:b.diagnostics.details}),Ee({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:b.selectedTimelineIds??[],selectedDurationSeconds:b.selectedDurationSeconds??null,mediaDurationFloorSeconds:b.mediaDurationFloorSeconds??null}}),window.parent!==window){let M=S(),R=E>0?E:0,J=String(R>0?R:1),K=new Set,me=new Set(document.querySelectorAll("[data-start]")),be=oe=>{let Z=oe.parentElement;for(;Z&&Z!==M;){if(me.has(Z))return!0;Z=Z.parentElement}return!1};if(t.capturedTimeline.getChildren)try{for(let oe of t.capturedTimeline.getChildren(!0))if(typeof oe.targets=="function")for(let Z of oe.targets())Z instanceof HTMLElement&&Z!==M&&(Z.hasAttribute("data-start")||be(Z)||K.has(Z)||(K.add(Z),Z.setAttribute("data-start","0"),Z.setAttribute("data-duration",J),Z.setAttribute("data-hf-autostamped","1")))}catch{}if(M instanceof HTMLElement)for(let oe of M.querySelectorAll("[id]"))oe instanceof HTMLElement&&oe!==M&&(oe.hasAttribute("data-start")||be(oe)||K.has(oe)||oe.tagName==="SCRIPT"||oe.tagName==="STYLE"||oe.tagName==="LINK"||(K.add(oe),oe.setAttribute("data-start","0"),oe.setAttribute("data-duration",J),oe.setAttribute("data-hf-autostamped","1")))}for(let M of St)rn.delete(M),er(M);return!0};window.__hfForceTimelineRebind=()=>{q=!1,z()};let X=()=>{let d=S();if(!(d instanceof HTMLElement))return;let p=d.getBoundingClientRect(),h=Number(d.getAttribute("data-width")),b=Number(d.getAttribute("data-height")),E=window.getComputedStyle(d),M=Number.isFinite(h)&&h>0&&Number.isFinite(b)&&b>0,R=p.width<=0||p.height<=0||d.clientWidth<=0||d.clientHeight<=0;!M||!R||f("root_stage_layout_zero",{compositionId:d.getAttribute("data-composition-id")??null,declaredWidth:h,declaredHeight:b,rectWidth:Math.round(p.width),rectHeight:Math.round(p.height),clientWidth:d.clientWidth,clientHeight:d.clientHeight,display:E.display,visibility:E.visibility,overflow:E.overflow},`root-stage-layout-zero:${d.getAttribute("data-composition-id")??"unknown"}`)},Ie=()=>{t.tornDown||(c!=null&&window.cancelAnimationFrame(c),c=window.requestAnimationFrame(()=>{c=null,X()}))},Me=()=>{i=d=>{let p=$(d.error??d.message).slice(0,L);if(!p)return;let h=B(p);Ee({source:"hf-preview",type:"diagnostic",code:h.code,details:{category:h.category,message:p,filename:d.filename||null,line:Number.isFinite(d.lineno)?d.lineno:null,column:Number.isFinite(d.colno)?d.colno:null}})},r=d=>{let p=$(d.reason).slice(0,L);if(!p)return;let h=B(p);Ee({source:"hf-preview",type:"diagnostic",code:`${h.code}_unhandled_rejection`,details:{category:`${h.category}-unhandled-rejection`,message:p}})},window.addEventListener("error",i),window.addEventListener("unhandledrejection",r)},bt=()=>{let d=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let h of d){let b=()=>{if(!(h instanceof Element))return;let E=h.tagName.toLowerCase(),M=h.getAttribute("src")??h.getAttribute("href")??h.getAttribute("poster")??null,R=E==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";f(R,{tagName:E,assetUrl:M,currentSrc:(h instanceof HTMLImageElement||h instanceof HTMLMediaElement)&&h.currentSrc||null,readyState:h instanceof HTMLMediaElement?h.readyState:null,networkState:h instanceof HTMLMediaElement?h.networkState:null},`${R}:${E}:${M??"unknown"}`)};h.addEventListener("error",b),m(()=>{h.removeEventListener("error",b)})}let p=document.fonts;p&&p.ready.then(()=>{if(t.tornDown)return;let h=Array.from(p).filter(b=>b.status==="error").map(b=>b.family).filter(b=>!!b).slice(0,10);h.length!==0&&f("runtime_font_load_issue",{failedFamilies:h,totalFaces:Array.from(p).length},`runtime-font-load-issue:${h.join("|")}`)}).catch(()=>{})},He=(d,p)=>{if(!d.timeline)return!1;let h=t.capturedTimeline;if(h&&h===d.timeline)return!1;let b=Math.max(0,t.currentTime||0),E=t.isPlaying;t.capturedTimeline=d.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);try{t.capturedTimeline.pause(),t.capturedTimeline.seek(b,!1),E&&t.capturedTimeline.play()}catch(M){v("runtime.init.site7",M)}return Ee({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:p,previousTime:b,selectedTimelineIds:d.selectedTimelineIds??[],selectedDurationSeconds:d.selectedDurationSeconds??null,mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),!0},Ze=null,Zi=!1,St=new Set,rn=new WeakMap,on=()=>{t.tornDown||(Ze!=null&&window.clearTimeout(Ze),Ze=window.setTimeout(()=>{if(t.tornDown)return;Ze=null;let d=ae();if(!d.timeline||!U(d.mediaDurationFloorSeconds??null))return;if(!t.capturedTimeline){z()&&(at(),_e(!0));return}if(Zi)return;let h=H(t.capturedTimeline),b=d.selectedDurationSeconds??H(d.timeline);U(b)&&(!U(h)||b>=h+w)&&He(d,"manual")&&(Zi=!0,Ee({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:h??null,selectedDurationSeconds:b??null,selectedTimelineIds:d.selectedTimelineIds??[],mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),at(),_e(!0))},N))},ha=()=>{for(let d of St)d.removeEventListener("loadedmetadata",on),d.removeEventListener("durationchange",on);St.clear()},Dn=()=>{if(t.tornDown)return;let d=Array.from(document.querySelectorAll("video, audio"));for(let p of d){if(St.has(p))continue;St.add(p);let h=Number.parseFloat(p.dataset.volume??"");Number.isFinite(h)&&(p.volume=Math.max(0,Math.min(1,h))),p.addEventListener("loadedmetadata",on),p.addEventListener("durationchange",on),p.preload!=="auto"&&(p.preload="auto"),p.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&p.load(),er(p)}},er=d=>{rn.has(d)||Nr(d,t.capturedTimeline,Q(t.capturedTimeline,0),rn)},In=new WeakMap,tr=d=>{let p=In.get(d);if(p!==void 0)return p;let h=window.getComputedStyle(d).position,b=h==="static"||h==="relative"||h==="sticky";return In.set(d,b),b},Pn=new WeakMap,xa=d=>{let p=Pn.get(d);if(p!==void 0)return p;let h=d.querySelector("[data-start]")===null;return Pn.set(d,h),h},ga=()=>{In=new WeakMap,Pn=new WeakMap},Le=()=>{let d=M=>{let R=M.closest("[data-composition-id]"),J=R?k(R,0):null,K=R?G(R,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:R,inheritedStart:J,inheritedDuration:K}},p=_r({shouldIncludeElement:M=>M.hasAttribute("data-start")||!!d(M).compositionRoot,resolveStartSeconds:M=>{let R=d(M);return j(M,R.inheritedStart??0)},resolveDurationSeconds:M=>{let R=d(M),J=j(M,R.inheritedStart??0),K=Number.parseFloat(M.dataset.playbackStart??M.dataset.mediaStart??"0")||0,me=R.inheritedStart!=null&&R.inheritedDuration!=null&&R.inheritedDuration>0?Math.max(0,R.inheritedStart+R.inheritedDuration-J):null,be=Number.isFinite(M.duration)&&M.duration>K?Math.max(0,M.duration-K):null,oe=Number.parseFloat(M.dataset.duration??""),Z=Number.isFinite(oe)&&oe>0?oe:null,ye=[be,me,Z].filter(nt=>nt!=null);return ye.length>0?Math.min(...ye):null}});for(let M of p.mediaClips){let R=rn.get(M.el);R&&(M.volumeKeyframes=R)}let h=t.mediaForceSyncNextTick;h&&(t.mediaForceSyncNextTick=!1),t.nativeMediaSyncDisabled||Tr({clips:p.mediaClips,timeSeconds:t.currentTime,playing:t.isPlaying,playbackRate:t.playbackRate,outputMuted:t.mediaOutputMuted||!t.webAudioMediaDisabled&&!t.nativeMediaSyncDisabled&&de.isActive(),userMuted:t.bridgeMuted,userVolume:t.bridgeVolume,forceSync:h,onElementVolume:(M,R)=>de.setElementVolume(M,R),isWebAudioOwned:M=>de.ownsElement(M),onAutoplayBlocked:()=>{t.mediaAutoplayBlockedPosted||(t.mediaAutoplayBlockedPosted=!0,Ee({source:"hf-preview",type:"media-autoplay-blocked"}))}});let b=Array.from(document.querySelectorAll("[data-start]")),E=S();for(let M of b){if(!(M instanceof HTMLElement))continue;let R=ie(M,t.currentTime);if(R){let J=M.parentElement;for(;J&&J!==E;){if(J instanceof HTMLElement&&J.hasAttribute("data-start")&&!ie(J,t.currentTime)){R=!1;break}J=J.parentElement}}M.style.visibility=R?"visible":"hidden",(M instanceof HTMLVideoElement||M instanceof HTMLImageElement)&&n?.setSourceVisibility(M,R),R?tr(M)&&M.style.removeProperty("display"):tr(M)&&xa(M)&&(M.style.display="none")}},_e=d=>{let p=Math.max(0,Math.round((t.currentTime||0)*t.canonicalFps)),h=Date.now();(d||p!==t.bridgeLastPostedFrame||t.isPlaying!==t.bridgeLastPostedPlaying||t.bridgeMuted!==t.bridgeLastPostedMuted||h-t.bridgeLastPostedAt>=t.bridgeMaxPostIntervalMs)&&(t.bridgeLastPostedFrame=p,t.bridgeLastPostedPlaying=t.isPlaying,t.bridgeLastPostedMuted=t.bridgeMuted,t.bridgeLastPostedAt=h,Ee({source:"hf-preview",type:"state",frame:p,isPlaying:t.isPlaying,muted:t.bridgeMuted,playbackRate:t.playbackRate}))},On="",ya=()=>{let d="";for(let p of document.querySelectorAll("[data-start]"))d+=`${p.id}:${p.tagName}|`;return d},at=()=>{F(),C(),T();let d=S();if(d){let b=_(d.getAttribute("data-width")),E=_(d.getAttribute("data-height")),M=b?parseInt(b,10):0,R=E?parseInt(E,10):0;M>0&&R>0&&Ee({source:"hf-preview",type:"stage-size",width:M,height:R})}z();let p=Hr({canonicalFps:t.canonicalFps});window.__clipManifest=p;let h=ya();if(On!==h&&ga(),!window.__clipTree||On!==h){let b=window;window.__clipTree=Ir({startResolver:ze({timelineRegistry:b.__timelines??{},includeAuthoredTimingAttrs:!0}),timelineRegistry:b.__timelines??{},rootDuration:p.durationInFrames/t.canonicalFps}),On=h}Ee(p),Ie()},Pe=(d,p=0)=>{for(let h of t.deterministicAdapters){try{d==="discover"&&h.discover(),d==="pause"&&h.pause(),d==="play"&&h.play&&h.play()}catch(b){v("runtime.init.site8",b)}if(d==="discover")try{h.seek({time:p})}catch(b){v("runtime.init.site9",b)}}},et=()=>{window.__renderReady=!1},At=null,Et=!0,ba=()=>{let d=[];for(let p of t.deterministicAdapters){let h=p.getReadyPromise;if(typeof h=="function")try{let b=h();b&&d.push(b)}catch(b){v("runtime.init.adapterReady",b)}}return d},Sa=()=>{let d=ba();if(d.length===0)return At=null,Et=!0,!0;let p=d.length===1?d[0]:Promise.all(d);return p!==At&&(At=p,Et=!1,Promise.resolve(p).then(()=>{At===p&&(Et=!0,et())},h=>{At===p&&(Et=!0,v("runtime.init.adapterReady",h),et())})),Et};if(Se)Pi();else{let d={injectedStyles:t.injectedCompStyles,injectedScripts:t.injectedCompScripts,parseDimensionPx:_,onDiagnostic:({code:p,details:h})=>{Ee({source:"hf-preview",type:"diagnostic",code:p,details:h})}};Cs(d).then(()=>ws(d)).finally(()=>{Se=!0,Dn(),bt(),Pi(),et()})}let sn=Lr({postMessage:d=>Ee(d)});sn.installPickerApi();let We=Hs();n=We,m(()=>{We.destroy(),n=null});let Bn=d=>{let p=Number(d);!Number.isFinite(p)||p<=0?t.playbackRate=1:t.playbackRate=Math.max(.1,Math.min(5,p)),t.mediaForceSyncNextTick=!0,t.capturedTimeline&&typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let h=document.querySelectorAll("video, audio");for(let b of h)if(b instanceof HTMLMediaElement)try{b.playbackRate=t.playbackRate}catch(E){v("runtime.init.site10",E)}},he=Rr({getTimeline:()=>t.capturedTimeline,setTimeline:d=>{t.capturedTimeline=d},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>t.isPlaying,setIsPlaying:d=>{t.isPlaying!==d&&(t.mediaForceSyncNextTick=!0),t.isPlaying=d},getPlaybackRate:()=>t.playbackRate,setPlaybackRate:Bn,getCanonicalFps:()=>t.canonicalFps,onSyncMedia:(d,p)=>{t.currentTime=Math.max(0,Number(d)||0),t.isPlaying!==p&&(t.mediaForceSyncNextTick=!0),t.isPlaying=p,Le()},onStatePost:_e,onDeterministicSeek:d=>{for(let p of t.deterministicAdapters)try{p.seek({time:Number(d)||0})}catch(h){v("runtime.init.site11",h)}},onDeterministicPause:()=>Pe("pause"),onDeterministicPlay:()=>Pe("play"),onRenderFrameSeek:()=>{We.redraw()},onShowNativeVideos:()=>{},getSafeDuration:()=>Q(t.capturedTimeline,0)});window.__player=g(he),window.__playerReady=!0,lr(Ee),Ct("composition_loaded",{duration:he.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),t.controlBridgeHandler=ar({onPlay:()=>{he.play(),Ct("composition_played",{time:he.getTime()})},onPause:()=>{he.pause(),Ct("composition_paused",{time:he.getTime()})},onStopMedia:()=>{de.stopAll();let d=document.querySelectorAll("video, audio");for(let p of d)p instanceof HTMLMediaElement&&!p.paused&&p.pause()},onSeek:(d,p)=>{let h=Math.max(0,d)/t.canonicalFps;he.seek(h),Ct("composition_seeked",{time:h})},onSetMuted:d=>{t.bridgeMuted=d;let p=d||t.mediaOutputMuted;de.setMuted(p);let h=document.querySelectorAll("video, audio");for(let b of h)b instanceof HTMLMediaElement&&(b.muted=p||b.defaultMuted)},onSetVolume:d=>{t.bridgeVolume=d,de.setVolume(d);let p=document.querySelectorAll("video, audio");for(let h of p){if(!(h instanceof HTMLMediaElement))continue;let b=parseFloat(h.dataset.volume??""),E=Number.isFinite(b)?b:1;h.volume=E*d}},onSetMediaOutputMuted:d=>{t.mediaOutputMuted=d;let p=d||t.bridgeMuted;de.setMuted(p);let h=document.querySelectorAll("video, audio");for(let b of h)b instanceof HTMLMediaElement&&(b.muted=p||b.defaultMuted)},onSetNativeMediaSyncDisabled:d=>{t.nativeMediaSyncDisabled!==d&&(t.nativeMediaSyncDisabled=d,t.mediaForceSyncNextTick=!0,d?(de.stopAll(),I.detachAudioSource()):Le())},onSetWebAudioMediaDisabled:d=>{t.webAudioMediaDisabled!==d&&(t.webAudioMediaDisabled=d,t.mediaForceSyncNextTick=!0,d&&(de.stopAll(),I.detachAudioSource()),Le())},onSetPlaybackRate:d=>{Bn(d),t.transportClock&&t.transportClock.setRate(t.playbackRate),or()},onSetColorGrading:(d,p)=>{We.setGrading(d,p)},onSetColorGradingCompare:(d,p)=>{We.setCompare(d,p)},onTick:()=>{if(t.tornDown||!I.isPlaying())return;let d=I.now();if(t.currentTime=d,tt(d),I.reachedEnd()){de.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,tt(p)),Pe("pause"),Le(),_e(!0)}},onEnablePickMode:()=>sn.enablePickMode(),onDisablePickMode:()=>sn.disablePickMode()}),t.deterministicAdapters=[Fr(),ur({resolveStartSeconds:d=>k(d,0)}),dr(),mr(),hr(),xr(),gr(),yr(),br(),Sr(),Ar(),cr({getTimeline:()=>t.capturedTimeline})],wr(),Cr(),window.__hfReseekGpu=d=>{let p=Math.max(0,Number(d)||0);window.__hfThreeTime=p,window.__hfTypegpuTime=p,pr(p)},Me(),Dn(),Pe("discover");let I=new Nn;t.transportClock=I;let de=new _n,Hn=!1;de.init().then(d=>{Hn=d});let Aa=()=>{let d=t.capturedTimeline,p=z();t.capturedTimeline&&(p||t.capturedTimeline!==d||!he._timeline)&&(he._timeline=t.capturedTimeline);let h=Q(t.capturedTimeline,0);if(h>0&&I.setDuration(h),Pe("discover",t.currentTime),!t.capturedTimeline){let b=window.__timelines??{},E=Object.keys(b).filter(M=>b[M]);if(E.length>0){let R=S()?.getAttribute("data-composition-id")??null;f("root_timeline_unbound_registry_present",{reason:R?"root data-composition-id has no matching key in window.__timelines":"root composition element has no data-composition-id attribute",rootCompositionId:R,registeredTimelineKeys:E},"root_timeline_unbound_registry_present"),console.warn("[hyperframes] Root timeline not bound \\u2014 render will freeze at t=0. "+(R?`Root data-composition-id is "${R}" but window.__timelines has no such key. `:"Root composition element has no data-composition-id. ")+`Registered timeline keys: [${E.join(", ")}]. Register the root timeline under its data-composition-id (window.__timelines["${R??"<root-id>"}"] = tl).`)}}window.__renderReady=!0,at(),_e(!0)};if(et=()=>{if(!Se||window.__hfTimelinesBuilding){window.__renderReady=!1;return}if(Pe("discover",t.currentTime),!Sa()){window.__renderReady=!1;return}Aa()},window.__hfTimelinesBuilding){window.__renderReady=!1;let d=()=>{window.removeEventListener("hf-timelines-built",d),et()};window.addEventListener("hf-timelines-built",d)}et(),Se&&setTimeout(()=>{et()},0);let an=0,Wn=!1,Ea=(d,p,h)=>{try{d.pause(),typeof d.totalTime=="function"?d.totalTime(p,!1):d.seek(p,!1)}catch(b){v(h,b)}},wa=d=>{let p=window.__timelines??{},h=S()?.getAttribute("data-composition-id")??null;for(let[b,E]of Object.entries(p)){if(!E||b===h)continue;let M=document.querySelector(`[data-composition-id="${CSS.escape(b)}"]`);if(!M)continue;let R=k(M,0);if(!Number.isFinite(R))continue;let J=G(M,{includeAuthoredTimingAttrs:!0}),K=H(E),me=J!=null&&J>0?J:K,be=Math.max(0,me!=null&&me>0?Math.min(me,d-R):d-R);Ea(E,be,"runtime.init.transport.childTimeline")}},Ca=d=>{let p=window.__timelines??{};for(let h of Object.values(p))if(!(!h||h===d))try{h.play()}catch(b){v("runtime.init.activateSiblings",b)}},tt=(d,p)=>{let h=t.capturedTimeline;if(h){p?.activateChildren&&Ca(h);let b=h,E=d;if(typeof b.totalDuration=="function")try{let M=Number(b.totalDuration());Number.isFinite(M)&&M>0&&d>M&&(E=M)}catch(M){v("runtime.init.transport.clampDuration",M)}try{typeof h.totalTime=="function"?h.totalTime(E,!1):h.seek(E,!1)}catch(M){v("runtime.init.transport.seek",M)}}else wa(d);for(let b of t.deterministicAdapters)try{b.seek({time:d})}catch(E){v("runtime.init.transport.adapter",E)}},Fa=()=>{try{return document.querySelector(`[${Gs}]`)!=null}catch{return!1}},nr=()=>{if(!(t.tornDown||Wn)){Wn=!0;try{if(t.transportRafId=window.requestAnimationFrame(nr),an+=1,an%60===0&&!(I.isPlaying()&&t.capturedTimeline!=null&&I.now()<x)){let h=t.capturedTimeline;if(z()){t.capturedTimeline&&!he._timeline&&(he._timeline=t.capturedTimeline),t.capturedTimeline&&t.capturedTimeline!==h&&t.capturedTimeline.pause();let b=Q(t.capturedTimeline,0);b>0&&I.setDuration(b),at()}}if(an%20===0&&at(),an%30===0&&Dn(),t.capturedTimeline){let p=Q(t.capturedTimeline,0);p>0&&(!I.isPlaying()||p>=I.getDuration())&&I.setDuration(p)}if(I.isPlaying()&&!t.mediaOutputMuted)if(!t.nativeMediaSyncDisabled&&!t.webAudioMediaDisabled&&de.isActive()&&de.context){let p=de.getTime();p>=0&&I.attachAudioSource({currentTimeSeconds:p})}else{let p=document.querySelectorAll("audio[data-start]"),h=!1;for(let b of p){if(!(b instanceof HTMLMediaElement)||!b.isConnected)continue;let E=Number.parseFloat(b.dataset.start??""),M=Number.parseFloat(b.dataset.duration??""),R=Number.isFinite(M)&&M>0?E+M:1/0,J=Number.parseFloat(b.dataset.playbackStart??b.dataset.mediaStart??"0")||0;if(Number.isFinite(E)&&t.currentTime>=E&&t.currentTime<=R){b.paused?!b.error&&b.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(I.attachAudioSource({currentTimeSeconds:t.currentTime}),h=!0):(I.attachAudioSource({el:b,compositionStart:E,mediaStart:J}),h=!0);break}}!h&&I.hasAudioSource()&&I.detachAudioSource()}else I.hasAudioSource()&&I.detachAudioSource();let d=I.now();if(t.currentTime=d,(I.isPlaying()||!Fa())&&tt(d),I.isPlaying()&&I.reachedEnd()){de.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,tt(p)),Pe("pause"),Le(),_e(!0);return}I.isPlaying()&&Le(),_e(!1)}finally{Wn=!1}}},ir=d=>{let p=document.querySelectorAll("video, audio");for(let h of p){if(!(h instanceof HTMLMediaElement)||!h.isConnected)continue;let b=Number.parseFloat(h.dataset.start??"");if(!Number.isFinite(b))continue;let E=Number.parseFloat(h.dataset.duration??""),M=Number.isFinite(E)&&E>0?b+E:1/0;if(d<b||d>=M)continue;let R=Number.parseFloat(h.dataset.playbackStart??h.dataset.mediaStart??"0")||0,J=d-b+R;if(J>=0)try{h.currentTime=J}catch{}}},rr=()=>{if(t.nativeMediaSyncDisabled||t.webAudioMediaDisabled)return;let d=de.startGeneration(),p=document.querySelectorAll("audio[data-start]");for(let h of p){if(!(h instanceof HTMLMediaElement)||!h.isConnected)continue;let b=Number.parseFloat(h.dataset.start??"");if(!Number.isFinite(b))continue;let E=Number.parseFloat(h.dataset.playbackStart??h.dataset.mediaStart??"0")||0,M=Number.parseFloat(h.dataset.volume??""),R=Number.isFinite(M)?M:1,J=Number.parseFloat(h.dataset.duration??""),K=Number.isFinite(J)&&J>0?J:Number.POSITIVE_INFINITY,me=h.closest("[data-composition-id]");if(me){let be=k(me,0),oe=G(me,{includeAuthoredTimingAttrs:!0});oe!=null&&oe>0&&(K=Math.min(K,Math.max(0,be+oe-b)))}de.decodeAudioElement(h).then(be=>{!be||!I.isPlaying()||de.schedulePlayback(h,be,b,E,I.now(),R*t.bridgeVolume,d,t.playbackRate,K)})}},or=()=>{de.setRate(t.playbackRate)&&!t.nativeMediaSyncDisabled&&!t.webAudioMediaDisabled&&Hn&&I.isPlaying()&&de.hasBoundedActiveSources()&&(de.stopAll(),rr())};if(he.play=()=>{let d=t.capturedTimeline;if(I.isPlaying())return;let p=Q(d,0);if(p>0)I.setDuration(p),I.reachedEnd()&&(I.seek(0),t.currentTime=0,tt(0));else{let h=S(),b=Number(h?.getAttribute("data-duration")??0);b>0&&I.setDuration(b)}d&&d.pause(),I.play()&&(t.isPlaying=!0,t.mediaForceSyncNextTick=!0,ir(I.now()),Hn&&!t.nativeMediaSyncDisabled&&!t.webAudioMediaDisabled&&rr(),Pe("play"),Le(),We.redraw(),_e(!0))},he.pause=()=>{if(!I.isPlaying())return;de.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1,t.currentTime=I.now(),t.mediaForceSyncNextTick=!0,ir(t.currentTime);let d=t.capturedTimeline;d&&d.pause(),Pe("pause"),Le(),We.redraw(),_e(!0)},he.seek=d=>{let p=ut(Math.max(0,Number(d)||0),t.canonicalFps);de.stopAll(),I.detachAudioSource(),I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0;let b=t.capturedTimeline;b&&b.pause(),tt(t.currentTime),Pe("pause"),Le(),We.redraw(),_e(!0)},he.renderSeek=d=>{let p=ut(Math.max(0,Number(d)||0),t.canonicalFps);I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0,tt(t.currentTime,{activateChildren:!0}),Le(),We.redraw(),_e(!0)},he.getTime=()=>I.now(),he.getDuration=()=>{let d=I.getDuration();return Number.isFinite(d)?d:0},he.isPlaying=()=>I.isPlaying(),he.setPlaybackRate=d=>{Bn(d),I.setRate(t.playbackRate),or()},t.capturedTimeline){let d=Q(t.capturedTimeline,0);d>0&&I.setDuration(d),t.capturedTimeline.pause()}let sr=window.__player;if(sr){let d=["play","pause","seek","renderSeek","getTime","getDuration","isPlaying"];for(let p of d)Object.defineProperty(sr,p,{get:()=>he[p],set:h=>{he[p]=h},configurable:!0})}t.transportRafId=window.requestAnimationFrame(nr),at(),_e(!0);let Gn=()=>{if(!t.tornDown){t.tornDown=!0,t.transportRafId!=null&&(window.cancelAnimationFrame(t.transportRafId),t.transportRafId=null),t.transportClock=null,de.destroy(),Ze!=null&&(window.clearTimeout(Ze),Ze=null),c!=null&&(window.cancelAnimationFrame(c),c=null),ha(),t.controlBridgeHandler&&(window.removeEventListener("message",t.controlBridgeHandler),t.controlBridgeHandler=null),i&&(window.removeEventListener("error",i),i=null),r&&(window.removeEventListener("unhandledrejection",r),r=null),t.beforeUnloadHandler&&(window.removeEventListener("beforeunload",t.beforeUnloadHandler),t.beforeUnloadHandler=null),sn.disablePickMode();for(let d of t.deterministicAdapters)if(!(!d||typeof d.revert!="function"))try{d.revert()}catch(p){v("runtime.init.site12",p)}t.deterministicAdapters=[];for(let d of o.splice(0))try{d()}catch(p){v("runtime.init.site13",p)}for(let d of t.injectedCompStyles)try{d.remove()}catch(p){v("runtime.init.site14",p)}t.injectedCompStyles=[];for(let d of t.injectedCompScripts)try{d.remove()}catch(p){v("runtime.init.site15",p)}t.injectedCompScripts=[],t.capturedTimeline=null,window.__hfRuntimeTeardown===Gn&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=Gn,t.beforeUnloadHandler=Gn,window.addEventListener("beforeunload",t.beforeUnloadHandler)}var Vs=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],ji=[[697,698,"ON"],[706,719,"ON"],[722,735,"ON"],[741,749,"ON"],[751,767,"ON"],[768,879,"NSM"],[884,885,"ON"],[894,894,"ON"],[900,901,"ON"],[903,903,"ON"],[1014,1014,"ON"],[1155,1161,"NSM"],[1418,1418,"ON"],[1421,1422,"ON"],[1423,1423,"ET"],[1424,1424,"R"],[1425,1469,"NSM"],[1470,1470,"R"],[1471,1471,"NSM"],[1472,1472,"R"],[1473,1474,"NSM"],[1475,1475,"R"],[1476,1477,"NSM"],[1478,1478,"R"],[1479,1479,"NSM"],[1480,1535,"R"],[1536,1541,"AN"],[1542,1543,"ON"],[1544,1544,"AL"],[1545,1546,"ET"],[1547,1547,"AL"],[1548,1548,"CS"],[1549,1549,"AL"],[1550,1551,"ON"],[1552,1562,"NSM"],[1563,1610,"AL"],[1611,1631,"NSM"],[1632,1641,"AN"],[1642,1642,"ET"],[1643,1644,"AN"],[1645,1647,"AL"],[1648,1648,"NSM"],[1649,1749,"AL"],[1750,1756,"NSM"],[1757,1757,"AN"],[1758,1758,"ON"],[1759,1764,"NSM"],[1765,1766,"AL"],[1767,1768,"NSM"],[1769,1769,"ON"],[1770,1773,"NSM"],[1774,1775,"AL"],[1776,1785,"EN"],[1786,1808,"AL"],[1809,1809,"NSM"],[1810,1839,"AL"],[1840,1866,"NSM"],[1867,1957,"AL"],[1958,1968,"NSM"],[1969,1983,"AL"],[1984,2026,"R"],[2027,2035,"NSM"],[2036,2037,"R"],[2038,2041,"ON"],[2042,2044,"R"],[2045,2045,"NSM"],[2046,2069,"R"],[2070,2073,"NSM"],[2074,2074,"R"],[2075,2083,"NSM"],[2084,2084,"R"],[2085,2087,"NSM"],[2088,2088,"R"],[2089,2093,"NSM"],[2094,2136,"R"],[2137,2139,"NSM"],[2140,2143,"R"],[2144,2191,"AL"],[2192,2193,"AN"],[2194,2198,"AL"],[2199,2207,"NSM"],[2208,2249,"AL"],[2250,2273,"NSM"],[2274,2274,"AN"],[2275,2306,"NSM"],[2362,2362,"NSM"],[2364,2364,"NSM"],[2369,2376,"NSM"],[2381,2381,"NSM"],[2385,2391,"NSM"],[2402,2403,"NSM"],[2433,2433,"NSM"],[2492,2492,"NSM"],[2497,2500,"NSM"],[2509,2509,"NSM"],[2530,2531,"NSM"],[2546,2547,"ET"],[2555,2555,"ET"],[2558,2558,"NSM"],[2561,2562,"NSM"],[2620,2620,"NSM"],[2625,2626,"NSM"],[2631,2632,"NSM"],[2635,2637,"NSM"],[2641,2641,"NSM"],[2672,2673,"NSM"],[2677,2677,"NSM"],[2689,2690,"NSM"],[2748,2748,"NSM"],[2753,2757,"NSM"],[2759,2760,"NSM"],[2765,2765,"NSM"],[2786,2787,"NSM"],[2801,2801,"ET"],[2810,2815,"NSM"],[2817,2817,"NSM"],[2876,2876,"NSM"],[2879,2879,"NSM"],[2881,2884,"NSM"],[2893,2893,"NSM"],[2901,2902,"NSM"],[2914,2915,"NSM"],[2946,2946,"NSM"],[3008,3008,"NSM"],[3021,3021,"NSM"],[3059,3064,"ON"],[3065,3065,"ET"],[3066,3066,"ON"],[3072,3072,"NSM"],[3076,3076,"NSM"],[3132,3132,"NSM"],[3134,3136,"NSM"],[3142,3144,"NSM"],[3146,3149,"NSM"],[3157,3158,"NSM"],[3170,3171,"NSM"],[3192,3198,"ON"],[3201,3201,"NSM"],[3260,3260,"NSM"],[3276,3277,"NSM"],[3298,3299,"NSM"],[3328,3329,"NSM"],[3387,3388,"NSM"],[3393,3396,"NSM"],[3405,3405,"NSM"],[3426,3427,"NSM"],[3457,3457,"NSM"],[3530,3530,"NSM"],[3538,3540,"NSM"],[3542,3542,"NSM"],[3633,3633,"NSM"],[3636,3642,"NSM"],[3647,3647,"ET"],[3655,3662,"NSM"],[3761,3761,"NSM"],[3764,3772,"NSM"],[3784,3790,"NSM"],[3864,3865,"NSM"],[3893,3893,"NSM"],[3895,3895,"NSM"],[3897,3897,"NSM"],[3898,3901,"ON"],[3953,3966,"NSM"],[3968,3972,"NSM"],[3974,3975,"NSM"],[3981,3991,"NSM"],[3993,4028,"NSM"],[4038,4038,"NSM"],[4141,4144,"NSM"],[4146,4151,"NSM"],[4153,4154,"NSM"],[4157,4158,"NSM"],[4184,4185,"NSM"],[4190,4192,"NSM"],[4209,4212,"NSM"],[4226,4226,"NSM"],[4229,4230,"NSM"],[4237,4237,"NSM"],[4253,4253,"NSM"],[4957,4959,"NSM"],[5008,5017,"ON"],[5120,5120,"ON"],[5760,5760,"WS"],[5787,5788,"ON"],[5906,5908,"NSM"],[5938,5939,"NSM"],[5970,5971,"NSM"],[6002,6003,"NSM"],[6068,6069,"NSM"],[6071,6077,"NSM"],[6086,6086,"NSM"],[6089,6099,"NSM"],[6107,6107,"ET"],[6109,6109,"NSM"],[6128,6137,"ON"],[6144,6154,"ON"],[6155,6157,"NSM"],[6158,6158,"BN"],[6159,6159,"NSM"],[6277,6278,"NSM"],[6313,6313,"NSM"],[6432,6434,"NSM"],[6439,6440,"NSM"],[6450,6450,"NSM"],[6457,6459,"NSM"],[6464,6464,"ON"],[6468,6469,"ON"],[6622,6655,"ON"],[6679,6680,"NSM"],[6683,6683,"NSM"],[6742,6742,"NSM"],[6744,6750,"NSM"],[6752,6752,"NSM"],[6754,6754,"NSM"],[6757,6764,"NSM"],[6771,6780,"NSM"],[6783,6783,"NSM"],[6832,6877,"NSM"],[6880,6891,"NSM"],[6912,6915,"NSM"],[6964,6964,"NSM"],[6966,6970,"NSM"],[6972,6972,"NSM"],[6978,6978,"NSM"],[7019,7027,"NSM"],[7040,7041,"NSM"],[7074,7077,"NSM"],[7080,7081,"NSM"],[7083,7085,"NSM"],[7142,7142,"NSM"],[7144,7145,"NSM"],[7149,7149,"NSM"],[7151,7153,"NSM"],[7212,7219,"NSM"],[7222,7223,"NSM"],[7376,7378,"NSM"],[7380,7392,"NSM"],[7394,7400,"NSM"],[7405,7405,"NSM"],[7412,7412,"NSM"],[7416,7417,"NSM"],[7616,7679,"NSM"],[8125,8125,"ON"],[8127,8129,"ON"],[8141,8143,"ON"],[8157,8159,"ON"],[8173,8175,"ON"],[8189,8190,"ON"],[8192,8202,"WS"],[8203,8205,"BN"],[8207,8207,"R"],[8208,8231,"ON"],[8232,8232,"WS"],[8233,8233,"B"],[8234,8238,"BN"],[8239,8239,"CS"],[8240,8244,"ET"],[8245,8259,"ON"],[8260,8260,"CS"],[8261,8286,"ON"],[8287,8287,"WS"],[8288,8303,"BN"],[8304,8304,"EN"],[8308,8313,"EN"],[8314,8315,"ES"],[8316,8318,"ON"],[8320,8329,"EN"],[8330,8331,"ES"],[8332,8334,"ON"],[8352,8399,"ET"],[8400,8432,"NSM"],[8448,8449,"ON"],[8451,8454,"ON"],[8456,8457,"ON"],[8468,8468,"ON"],[8470,8472,"ON"],[8478,8483,"ON"],[8485,8485,"ON"],[8487,8487,"ON"],[8489,8489,"ON"],[8494,8494,"ET"],[8506,8507,"ON"],[8512,8516,"ON"],[8522,8525,"ON"],[8528,8543,"ON"],[8585,8587,"ON"],[8592,8721,"ON"],[8722,8722,"ES"],[8723,8723,"ET"],[8724,9013,"ON"],[9083,9108,"ON"],[9110,9257,"ON"],[9280,9290,"ON"],[9312,9351,"ON"],[9352,9371,"EN"],[9450,9899,"ON"],[9901,10239,"ON"],[10496,11123,"ON"],[11126,11263,"ON"],[11493,11498,"ON"],[11503,11505,"NSM"],[11513,11519,"ON"],[11647,11647,"NSM"],[11744,11775,"NSM"],[11776,11869,"ON"],[11904,11929,"ON"],[11931,12019,"ON"],[12032,12245,"ON"],[12272,12287,"ON"],[12288,12288,"WS"],[12289,12292,"ON"],[12296,12320,"ON"],[12330,12333,"NSM"],[12336,12336,"ON"],[12342,12343,"ON"],[12349,12351,"ON"],[12441,12442,"NSM"],[12443,12444,"ON"],[12448,12448,"ON"],[12539,12539,"ON"],[12736,12773,"ON"],[12783,12783,"ON"],[12829,12830,"ON"],[12880,12895,"ON"],[12924,12926,"ON"],[12977,12991,"ON"],[13004,13007,"ON"],[13175,13178,"ON"],[13278,13279,"ON"],[13311,13311,"ON"],[19904,19967,"ON"],[42128,42182,"ON"],[42509,42511,"ON"],[42607,42610,"NSM"],[42611,42611,"ON"],[42612,42621,"NSM"],[42622,42623,"ON"],[42654,42655,"NSM"],[42736,42737,"NSM"],[42752,42785,"ON"],[42888,42888,"ON"],[43010,43010,"NSM"],[43014,43014,"NSM"],[43019,43019,"NSM"],[43045,43046,"NSM"],[43048,43051,"ON"],[43052,43052,"NSM"],[43064,43065,"ET"],[43124,43127,"ON"],[43204,43205,"NSM"],[43232,43249,"NSM"],[43263,43263,"NSM"],[43302,43309,"NSM"],[43335,43345,"NSM"],[43392,43394,"NSM"],[43443,43443,"NSM"],[43446,43449,"NSM"],[43452,43453,"NSM"],[43493,43493,"NSM"],[43561,43566,"NSM"],[43569,43570,"NSM"],[43573,43574,"NSM"],[43587,43587,"NSM"],[43596,43596,"NSM"],[43644,43644,"NSM"],[43696,43696,"NSM"],[43698,43700,"NSM"],[43703,43704,"NSM"],[43710,43711,"NSM"],[43713,43713,"NSM"],[43756,43757,"NSM"],[43766,43766,"NSM"],[43882,43883,"ON"],[44005,44005,"NSM"],[44008,44008,"NSM"],[44013,44013,"NSM"],[64285,64285,"R"],[64286,64286,"NSM"],[64287,64296,"R"],[64297,64297,"ES"],[64298,64335,"R"],[64336,64450,"AL"],[64451,64466,"ON"],[64467,64829,"AL"],[64830,64847,"ON"],[64848,64911,"AL"],[64912,64913,"ON"],[64914,64967,"AL"],[64968,64975,"ON"],[64976,65007,"BN"],[65008,65020,"AL"],[65021,65023,"ON"],[65024,65039,"NSM"],[65040,65049,"ON"],[65056,65071,"NSM"],[65072,65103,"ON"],[65104,65104,"CS"],[65105,65105,"ON"],[65106,65106,"CS"],[65108,65108,"ON"],[65109,65109,"CS"],[65110,65118,"ON"],[65119,65119,"ET"],[65120,65121,"ON"],[65122,65123,"ES"],[65124,65126,"ON"],[65128,65128,"ON"],[65129,65130,"ET"],[65131,65131,"ON"],[65136,65278,"AL"],[65279,65279,"BN"],[65281,65282,"ON"],[65283,65285,"ET"],[65286,65290,"ON"],[65291,65291,"ES"],[65292,65292,"CS"],[65293,65293,"ES"],[65294,65295,"CS"],[65296,65305,"EN"],[65306,65306,"CS"],[65307,65312,"ON"],[65339,65344,"ON"],[65371,65381,"ON"],[65504,65505,"ET"],[65506,65508,"ON"],[65509,65510,"ET"],[65512,65518,"ON"],[65520,65528,"BN"],[65529,65533,"ON"],[65534,65535,"BN"],[65793,65793,"ON"],[65856,65932,"ON"],[65936,65948,"ON"],[65952,65952,"ON"],[66045,66045,"NSM"],[66272,66272,"NSM"],[66273,66299,"EN"],[66422,66426,"NSM"],[67584,67870,"R"],[67871,67871,"ON"],[67872,68096,"R"],[68097,68099,"NSM"],[68100,68100,"R"],[68101,68102,"NSM"],[68103,68107,"R"],[68108,68111,"NSM"],[68112,68151,"R"],[68152,68154,"NSM"],[68155,68158,"R"],[68159,68159,"NSM"],[68160,68324,"R"],[68325,68326,"NSM"],[68327,68408,"R"],[68409,68415,"ON"],[68416,68863,"R"],[68864,68899,"AL"],[68900,68903,"NSM"],[68904,68911,"AL"],[68912,68921,"AN"],[68922,68927,"AL"],[68928,68937,"AN"],[68938,68968,"R"],[68969,68973,"NSM"],[68974,68974,"ON"],[68975,69215,"R"],[69216,69246,"AN"],[69247,69290,"R"],[69291,69292,"NSM"],[69293,69311,"R"],[69312,69327,"AL"],[69328,69336,"ON"],[69337,69369,"AL"],[69370,69375,"NSM"],[69376,69423,"R"],[69424,69445,"AL"],[69446,69456,"NSM"],[69457,69487,"AL"],[69488,69505,"R"],[69506,69509,"NSM"],[69510,69631,"R"],[69633,69633,"NSM"],[69688,69702,"NSM"],[69714,69733,"ON"],[69744,69744,"NSM"],[69747,69748,"NSM"],[69759,69761,"NSM"],[69811,69814,"NSM"],[69817,69818,"NSM"],[69826,69826,"NSM"],[69888,69890,"NSM"],[69927,69931,"NSM"],[69933,69940,"NSM"],[70003,70003,"NSM"],[70016,70017,"NSM"],[70070,70078,"NSM"],[70089,70092,"NSM"],[70095,70095,"NSM"],[70191,70193,"NSM"],[70196,70196,"NSM"],[70198,70199,"NSM"],[70206,70206,"NSM"],[70209,70209,"NSM"],[70367,70367,"NSM"],[70371,70378,"NSM"],[70400,70401,"NSM"],[70459,70460,"NSM"],[70464,70464,"NSM"],[70502,70508,"NSM"],[70512,70516,"NSM"],[70587,70592,"NSM"],[70606,70606,"NSM"],[70608,70608,"NSM"],[70610,70610,"NSM"],[70625,70626,"NSM"],[70712,70719,"NSM"],[70722,70724,"NSM"],[70726,70726,"NSM"],[70750,70750,"NSM"],[70835,70840,"NSM"],[70842,70842,"NSM"],[70847,70848,"NSM"],[70850,70851,"NSM"],[71090,71093,"NSM"],[71100,71101,"NSM"],[71103,71104,"NSM"],[71132,71133,"NSM"],[71219,71226,"NSM"],[71229,71229,"NSM"],[71231,71232,"NSM"],[71264,71276,"ON"],[71339,71339,"NSM"],[71341,71341,"NSM"],[71344,71349,"NSM"],[71351,71351,"NSM"],[71453,71453,"NSM"],[71455,71455,"NSM"],[71458,71461,"NSM"],[71463,71467,"NSM"],[71727,71735,"NSM"],[71737,71738,"NSM"],[71995,71996,"NSM"],[71998,71998,"NSM"],[72003,72003,"NSM"],[72148,72151,"NSM"],[72154,72155,"NSM"],[72160,72160,"NSM"],[72193,72198,"NSM"],[72201,72202,"NSM"],[72243,72248,"NSM"],[72251,72254,"NSM"],[72263,72263,"NSM"],[72273,72278,"NSM"],[72281,72283,"NSM"],[72330,72342,"NSM"],[72344,72345,"NSM"],[72544,72544,"NSM"],[72546,72548,"NSM"],[72550,72550,"NSM"],[72752,72758,"NSM"],[72760,72765,"NSM"],[72850,72871,"NSM"],[72874,72880,"NSM"],[72882,72883,"NSM"],[72885,72886,"NSM"],[73009,73014,"NSM"],[73018,73018,"NSM"],[73020,73021,"NSM"],[73023,73029,"NSM"],[73031,73031,"NSM"],[73104,73105,"NSM"],[73109,73109,"NSM"],[73111,73111,"NSM"],[73459,73460,"NSM"],[73472,73473,"NSM"],[73526,73530,"NSM"],[73536,73536,"NSM"],[73538,73538,"NSM"],[73562,73562,"NSM"],[73685,73692,"ON"],[73693,73696,"ET"],[73697,73713,"ON"],[78912,78912,"NSM"],[78919,78933,"NSM"],[90398,90409,"NSM"],[90413,90415,"NSM"],[92912,92916,"NSM"],[92976,92982,"NSM"],[94031,94031,"NSM"],[94095,94098,"NSM"],[94178,94178,"ON"],[94180,94180,"NSM"],[113821,113822,"NSM"],[113824,113827,"BN"],[117760,117973,"ON"],[118e3,118009,"EN"],[118010,118012,"ON"],[118016,118451,"ON"],[118458,118480,"ON"],[118496,118512,"ON"],[118528,118573,"NSM"],[118576,118598,"NSM"],[119143,119145,"NSM"],[119155,119162,"BN"],[119163,119170,"NSM"],[119173,119179,"NSM"],[119210,119213,"NSM"],[119273,119274,"ON"],[119296,119361,"ON"],[119362,119364,"NSM"],[119365,119365,"ON"],[119552,119638,"ON"],[120513,120513,"ON"],[120539,120539,"ON"],[120571,120571,"ON"],[120597,120597,"ON"],[120629,120629,"ON"],[120655,120655,"ON"],[120687,120687,"ON"],[120713,120713,"ON"],[120745,120745,"ON"],[120771,120771,"ON"],[120782,120831,"EN"],[121344,121398,"NSM"],[121403,121452,"NSM"],[121461,121461,"NSM"],[121476,121476,"NSM"],[121499,121503,"NSM"],[121505,121519,"NSM"],[122880,122886,"NSM"],[122888,122904,"NSM"],[122907,122913,"NSM"],[122915,122916,"NSM"],[122918,122922,"NSM"],[123023,123023,"NSM"],[123184,123190,"NSM"],[123566,123566,"NSM"],[123628,123631,"NSM"],[123647,123647,"ET"],[124140,124143,"NSM"],[124398,124399,"NSM"],[124643,124643,"NSM"],[124646,124646,"NSM"],[124654,124655,"NSM"],[124661,124661,"NSM"],[124928,125135,"R"],[125136,125142,"NSM"],[125143,125251,"R"],[125252,125258,"NSM"],[125259,126063,"R"],[126064,126143,"AL"],[126144,126207,"R"],[126208,126287,"AL"],[126288,126463,"R"],[126464,126703,"AL"],[126704,126705,"ON"],[126706,126719,"AL"],[126720,126975,"R"],[126976,127019,"ON"],[127024,127123,"ON"],[127136,127150,"ON"],[127153,127167,"ON"],[127169,127183,"ON"],[127185,127221,"ON"],[127232,127242,"EN"],[127243,127247,"ON"],[127279,127279,"ON"],[127338,127343,"ON"],[127405,127405,"ON"],[127584,127589,"ON"],[127744,128728,"ON"],[128732,128748,"ON"],[128752,128764,"ON"],[128768,128985,"ON"],[128992,129003,"ON"],[129008,129008,"ON"],[129024,129035,"ON"],[129040,129095,"ON"],[129104,129113,"ON"],[129120,129159,"ON"],[129168,129197,"ON"],[129200,129211,"ON"],[129216,129217,"ON"],[129232,129240,"ON"],[129280,129623,"ON"],[129632,129645,"ON"],[129648,129660,"ON"],[129664,129674,"ON"],[129678,129734,"ON"],[129736,129736,"ON"],[129741,129756,"ON"],[129759,129770,"ON"],[129775,129784,"ON"],[129792,129938,"ON"],[129940,130031,"ON"],[130032,130041,"EN"],[130042,130042,"ON"],[131070,131071,"BN"],[196606,196607,"BN"],[262142,262143,"BN"],[327678,327679,"BN"],[393214,393215,"BN"],[458750,458751,"BN"],[524286,524287,"BN"],[589822,589823,"BN"],[655358,655359,"BN"],[720894,720895,"BN"],[786430,786431,"BN"],[851966,851967,"BN"],[917502,917759,"BN"],[917760,917999,"NSM"],[918e3,921599,"BN"],[983038,983039,"BN"],[1048574,1048575,"BN"],[1114110,1114111,"BN"]];function rd(t){if(t<=255)return Vs[t];let e=0,n=ji.length-1;for(;e<=n;){let i=e+n>>1,r=ji[i];if(t<r[0]){n=i-1;continue}if(t>r[1]){e=i+1;continue}return r[2]}return"L"}function od(t){let e=t.length;if(e===0)return null;let n=new Array(e),i=!1;for(let l=0;l<e;){let u=t.charCodeAt(l),m=u,f=1;if(u>=55296&&u<=56319&&l+1<e){let A=t.charCodeAt(l+1);A>=56320&&A<=57343&&(m=(u-55296<<10)+(A-56320)+65536,f=2)}let g=rd(m);(g==="R"||g==="AL"||g==="AN")&&(i=!0);for(let A=0;A<f;A++)n[l+A]=g;l+=f}if(!i)return null;let r=0;for(let l=0;l<e;l++){let u=n[l];if(u==="L"){r=0;break}if(u==="R"||u==="AL"){r=1;break}}let o=new Int8Array(e);for(let l=0;l<e;l++)o[l]=r;let s=r&1?"R":"L",c=s,a=c;for(let l=0;l<e;l++)n[l]==="NSM"?n[l]=a:a=n[l];a=c;for(let l=0;l<e;l++){let u=n[l];u==="EN"?n[l]=a==="AL"?"AN":"EN":(u==="R"||u==="L"||u==="AL")&&(a=u)}for(let l=0;l<e;l++)n[l]==="AL"&&(n[l]="R");for(let l=1;l<e-1;l++)n[l]==="ES"&&n[l-1]==="EN"&&n[l+1]==="EN"&&(n[l]="EN"),n[l]==="CS"&&(n[l-1]==="EN"||n[l-1]==="AN")&&n[l+1]===n[l-1]&&(n[l]=n[l-1]);for(let l=0;l<e;l++){if(n[l]!=="EN")continue;let u;for(u=l-1;u>=0&&n[u]==="ET";u--)n[u]="EN";for(u=l+1;u<e&&n[u]==="ET";u++)n[u]="EN"}for(let l=0;l<e;l++){let u=n[l];(u==="WS"||u==="ES"||u==="ET"||u==="CS")&&(n[l]="ON")}a=c;for(let l=0;l<e;l++){let u=n[l];u==="EN"?n[l]=a==="L"?"L":"EN":(u==="R"||u==="L")&&(a=u)}for(let l=0;l<e;l++){if(n[l]!=="ON")continue;let u=l+1;for(;u<e&&n[u]==="ON";)u++;let m=l>0?n[l-1]:c,f=u<e?n[u]:c,g=m!=="L"?"R":"L";if(g===(f!=="L"?"R":"L"))for(let y=l;y<u;y++)n[y]=g;l=u-1}for(let l=0;l<e;l++)n[l]==="ON"&&(n[l]=s);for(let l=0;l<e;l++){let u=n[l];(o[l]&1)===0?u==="R"?o[l]++:(u==="AN"||u==="EN")&&(o[l]+=2):(u==="L"||u==="AN"||u==="EN")&&o[l]++}return o}function zs(t,e){let n=od(t);if(n===null)return null;let i=new Int8Array(e.length);for(let r=0;r<e.length;r++)i[r]=n[e[r]];return i}var sd=/[ \\t\\n\\r\\f]+/g,ad=/[\\t\\n\\r\\f]| {2,}|^ | $/;function ld(t){let e=t??"normal";return e==="pre-wrap"?{mode:e,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:e,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function ud(t){if(!ad.test(t))return t;let e=t.replace(sd," ");return e.charCodeAt(0)===32&&(e=e.slice(1)),e.length>0&&e.charCodeAt(e.length-1)===32&&(e=e.slice(0,-1)),e}function cd(t){return/[\\r\\f]/.test(t)?t.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):t.replace(/\\r\\n/g,`\n`)}var qi=null,dd;function fd(){return qi===null&&(qi=new Intl.Segmenter(dd,{granularity:"word"})),qi}var md=/\\p{Script=Arabic}/u,Tn=/\\p{M}/u,Qs=/\\p{Nd}/u;function js(t){return md.test(t)}function qs(t){return t>=19968&&t<=40959||t>=13312&&t<=19903||t>=131072&&t<=173791||t>=173824&&t<=177983||t>=177984&&t<=178207||t>=178208&&t<=183983||t>=183984&&t<=191471||t>=191472&&t<=192093||t>=194560&&t<=195103||t>=196608&&t<=201551||t>=201552&&t<=205743||t>=205744&&t<=210041||t>=63744&&t<=64255||t>=12288&&t<=12351||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=65280&&t<=65519}function De(t){for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);if(!(n<12288)){if(n>=55296&&n<=56319&&e+1<t.length){let i=t.charCodeAt(e+1);if(i>=56320&&i<=57343){let r=(n-55296<<10)+(i-56320)+65536;if(qs(r))return!0;e++;continue}}if(qs(n))return!0}}return!1}function pd(t){let e=kn(t);return e!==null&&(vn.has(e)||Xe.has(e))}var hd=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function xd(t){return De(t)}function gd(t){let e=kn(t);return e!==null&&hd.has(e)}function Ln(t){return!pd(t)&&!gd(t)}var vn=new Set(["\\uFF0C","\\uFF0E","\\uFF01","\\uFF1A","\\uFF1B","\\uFF1F","\\u3001","\\u3002","\\u30FB","\\uFF09","\\u3015","\\u3009","\\u300B","\\u300D","\\u300F","\\u3011","\\u3017","\\u3019","\\u301B","\\u30FC","\\u3005","\\u303B","\\u309D","\\u309E","\\u30FD","\\u30FE"]),nn=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),Ki=new Set(["\'","\\u2019"]),Xe=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),yd=new Set([":",".","\\u060C","\\u061B"]),bd=new Set(["\\u104F"]),Sd=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function Ad(t){if(Ji(t))return!0;let e=!1;for(let n of t){if(Xe.has(n)){e=!0;continue}if(!(e&&Tn.test(n)))return!1}return e}function Ed(t){for(let e of t)if(!vn.has(e)&&!Xe.has(e))return!1;return t.length>0}function wd(t){if(Ji(t))return!0;for(let e of t)if(!nn.has(e)&&!Ki.has(e)&&!Tn.test(e))return!1;return t.length>0}function Ji(t){let e=!1;for(let n of t)if(!(n==="\\\\"||Tn.test(n))){if(nn.has(n)||Xe.has(n)||Ki.has(n)){e=!0;continue}return!1}return e}function Zs(t,e){let n=e-1;if(n<=0)return Math.max(n,0);let i=t.charCodeAt(n);if(i<56320||i>57343)return n;let r=n-1;if(r<0)return n;let o=t.charCodeAt(r);return o>=55296&&o<=56319?r:n}function kn(t){if(t.length===0)return null;let e=Zs(t,t.length);return t.slice(e)}function Cd(t){let e=Array.from(t),n=e.length;for(;n>0;){let i=e[n-1];if(Tn.test(i)){n--;continue}if(nn.has(i)||Ki.has(i)){n--;continue}break}return n<=0||n===e.length?null:{head:e.slice(0,n).join(""),tail:e.slice(n).join("")}}function Fd(t,e,n){return n==="text"&&!e&&t.length===1&&t!=="-"&&t!=="\\u2014"?t:null}function $s(t,e,n,i){let r=e[i],o=t[i];if(r==null)return o;let s=n[i];if(o.length===s)return o;let c=r.repeat(s);return t[i]=c,c}function Ks(t,e){return t&&e!==null&&yd.has(e)}function Md(t){let e=kn(t);return e!==null&&bd.has(e)}function Nd(t){if(t.length<2||t[0]!==" ")return null;let e=t.slice(1);return/^\\p{M}+$/u.test(e)?{space:" ",marks:e}:null}function Rn(t){let e=t.length;for(;e>0;){let n=Zs(t,e),i=t.slice(n,e);if(Sd.has(i))return!0;if(!Xe.has(i))return!1;e=n}return!1}function _d(t,e){if(e.preserveOrdinarySpaces||e.preserveHardBreaks){if(t===" ")return"preserved-space";if(t===" ")return"tab";if(e.preserveHardBreaks&&t===`\n`)return"hard-break"}return t===" "?"space":t==="\\xA0"||t==="\\u202F"||t==="\\u2060"||t==="\\uFEFF"?"glue":t==="\\u200B"?"zero-width-break":t==="\\xAD"?"soft-hyphen":"text"}var Td=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function Te(t){return t.length===1?t[0]:t.join("")}function Ld(t,e){let n=[];for(let i=t.length-1;i>=0;i--)n.push(t[i]);return n.push(e),Te(n)}function vd(t,e,n,i){if(!Td.test(t))return[{text:t,isWordLike:e,kind:"text",start:n}];let r=[],o=null,s=[],c=n,a=!1,l=0;for(let u of t){let m=_d(u,i),f=m==="text"&&e;if(o!==null&&m===o&&f===a){s.push(u),l+=u.length;continue}o!==null&&r.push({text:Te(s),isWordLike:a,kind:o,start:c}),o=m,s=[u],c=n+l,a=f,l+=u.length}return o!==null&&r.push({text:Te(s),isWordLike:a,kind:o,start:c}),r}function $i(t){return t==="space"||t==="preserved-space"||t==="zero-width-break"||t==="hard-break"}var kd=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function Rd(t,e){let n=t.texts[e];return n.startsWith("www.")?!0:kd.test(n)&&e+1<t.len&&t.kinds[e+1]==="text"&&t.texts[e+1]==="//"}function Dd(t){return t.includes("?")&&(t.includes("://")||t.startsWith("www."))}function Id(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let s=0;s<t.len;s++){if(i[s]!=="text"||!Rd(t,s))continue;let c=[e[s]],a=s+1;for(;a<t.len&&!$i(i[a]);){c.push(e[a]),n[s]=!0;let l=e[a].includes("?");if(i[a]="text",e[a]="",a++,l)break}e[s]=Te(c)}let o=0;for(let s=0;s<e.length;s++){let c=e[s];c.length!==0&&(o!==s&&(e[o]=c,n[o]=n[s],i[o]=i[s],r[o]=r[s]),o++)}return e.length=o,n.length=o,i.length=o,r.length=o,{len:o,texts:e,isWordLike:n,kinds:i,starts:r}}function Pd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o]),!Dd(s))continue;let c=o+1;if(c>=t.len||$i(t.kinds[c]))continue;let a=[],l=t.starts[c],u=c;for(;u<t.len&&!$i(t.kinds[u]);)a.push(t.texts[u]),u++;a.length>0&&(e.push(Te(a)),n.push(!0),i.push("text"),r.push(l),o=u-1)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}var Od=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Js=/^[A-Za-z0-9_]+[,:;]*$/,Ys=/[,:;]+$/;function ea(t){for(let e of t)if(Qs.test(e))return!0;return!1}function tn(t){if(t.length===0)return!1;for(let e of t)if(!(Qs.test(e)||Od.has(e)))return!1;return!0}function Bd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],c=t.kinds[o];if(c==="text"&&tn(s)&&ea(s)){let a=[s],l=o+1;for(;l<t.len&&t.kinds[l]==="text"&&tn(t.texts[l]);)a.push(t.texts[l]),l++;e.push(Te(a)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=l-1;continue}e.push(s),n.push(t.isWordLike[o]),i.push(c),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Hd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],c=t.kinds[o],a=t.isWordLike[o];if(c==="text"&&a&&Js.test(s)){let l=[s],u=Ys.test(s),m=o+1;for(;u&&m<t.len&&t.kinds[m]==="text"&&t.isWordLike[m]&&Js.test(t.texts[m]);){let f=t.texts[m];l.push(f),u=Ys.test(f),m++}e.push(Te(l)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=m-1;continue}e.push(s),n.push(a),i.push(c),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Wd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(t.kinds[o]==="text"&&s.includes("-")){let c=s.split("-"),a=c.length>1;for(let l=0;l<c.length;l++){let u=c[l];if(!a)break;(u.length===0||!ea(u)||!tn(u))&&(a=!1)}if(a){let l=0;for(let u=0;u<c.length;u++){let m=c[u],f=u<c.length-1?`${m}-`:m;e.push(f),n.push(!0),i.push("text"),r.push(t.starts[o]+l),l+=f.length}continue}}e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Gd(t){let e=[],n=[],i=[],r=[],o=0;for(;o<t.len;){let s=[t.texts[o]],c=t.isWordLike[o],a=t.kinds[o],l=t.starts[o];if(a==="glue"){let u=[s[0]],m=l;for(o++;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let f=Te(u);if(o<t.len&&t.kinds[o]==="text")s[0]=f,s.push(t.texts[o]),c=t.isWordLike[o],a="text",l=m,o++;else{e.push(f),n.push(!1),i.push("glue"),r.push(m);continue}}else o++;if(a==="text")for(;o<t.len&&t.kinds[o]==="glue";){let u=[];for(;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let m=Te(u);if(o<t.len&&t.kinds[o]==="text"){s.push(m,t.texts[o]),c=c||t.isWordLike[o],o++;continue}s.push(m)}e.push(Te(s)),n.push(c),i.push(a),r.push(l)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Ud(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let o=0;o<e.length-1;o++){if(i[o]!=="text"||i[o+1]!=="text"||!De(e[o])||!De(e[o+1]))continue;let s=Cd(e[o]);s!==null&&(e[o]=s.head,e[o+1]=s.tail+e[o+1],r[o+1]=r[o]+s.head.length)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Xs(t,e,n){let i=fd(),r=0,o=[],s=[],c=[],a=[],l=[],u=[],m=[],f=[],g=[],A=[],y=[],x=[];for(let _ of i.segment(t))for(let S of vd(_.segment,_.isWordLike??!1,_.index,n)){let se=function(){u[P]!==null&&(s[P]=[$s(o,u,m,P)],u[P]=null),s[P].push(S.text),c[P]=c[P]||S.isWordLike,f[P]=f[P]||T,g[P]=g[P]||k,A[P]=j,y[P]=ie,x[P]=Ks(g[P],G)},C=S.kind==="text",F=Fd(S.text,S.isWordLike,S.kind),T=De(S.text),k=js(S.text),G=kn(S.text),j=Rn(S.text),ie=Md(S.text),P=r-1;e.carryCJKAfterClosingQuote&&C&&r>0&&a[P]==="text"&&T&&f[P]&&A[P]||C&&r>0&&a[P]==="text"&&Ed(S.text)&&f[P]||C&&r>0&&a[P]==="text"&&y[P]?se():C&&r>0&&a[P]==="text"&&S.isWordLike&&k&&x[P]?(se(),c[P]=!0):F!==null&&r>0&&a[P]==="text"&&u[P]===F?m[P]=(m[P]??1)+1:C&&!S.isWordLike&&r>0&&a[P]==="text"&&(Ad(S.text)||S.text==="-"&&c[P])?se():(o[r]=S.text,s[r]=[S.text],c[r]=S.isWordLike,a[r]=S.kind,l[r]=S.start,u[r]=F,m[r]=F===null?0:1,f[r]=T,g[r]=k,A[r]=j,y[r]=ie,x[r]=Ks(k,G),r++)}for(let _=0;_<r;_++){if(u[_]!==null){o[_]=$s(o,u,m,_);continue}o[_]=Te(s[_])}for(let _=1;_<r;_++)a[_]==="text"&&!c[_]&&Ji(o[_])&&a[_-1]==="text"&&(o[_-1]+=o[_],c[_-1]=c[_-1]||c[_],o[_]="");let w=Array.from({length:r},()=>null),N=-1;for(let _=r-1;_>=0;_--){let S=o[_];if(S.length!==0){if(a[_]==="text"&&!c[_]&&wd(S)&&N>=0&&a[N]==="text"){let C=w[N]??[];C.push(S),w[N]=C,l[N]=l[_],o[_]="";continue}N=_}}for(let _=0;_<r;_++){let S=w[_];S!=null&&(o[_]=Ld(S,o[_]))}let L=0;for(let _=0;_<r;_++){let S=o[_];S.length!==0&&(L!==_&&(o[L]=S,c[L]=c[_],a[L]=a[_],l[L]=l[_]),L++)}o.length=L,c.length=L,a.length=L,l.length=L;let $=Gd({len:L,texts:o,isWordLike:c,kinds:a,starts:l}),B=Ud(Hd(Wd(Bd(Pd(Id($))))));for(let _=0;_<B.len-1;_++){let S=Nd(B.texts[_]);S!==null&&(B.kinds[_]!=="space"&&B.kinds[_]!=="preserved-space"||B.kinds[_+1]!=="text"||!js(B.texts[_+1])||(B.texts[_]=S.space,B.isWordLike[_]=!1,B.kinds[_]=B.kinds[_]==="preserved-space"?"preserved-space":"space",B.texts[_+1]=S.marks+B.texts[_+1],B.starts[_+1]=B.starts[_]+S.space.length))}return B}function Vd(t,e){if(t.len===0)return[];if(!e.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}];let n=[],i=0;for(let r=0;r<t.len;r++)t.kinds[r]==="hard-break"&&(n.push({startSegmentIndex:i,endSegmentIndex:r,consumedEndSegmentIndex:r+1}),i=r+1);return i<t.len&&n.push({startSegmentIndex:i,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}),n}function zd(t){if(t.len<=1)return t;let e=[],n=[],i=[],r=[],o=null,s=!1,c=0,a=!1,l=!1;function u(){o!==null&&(e.push(Te(o)),n.push(s),i.push("text"),r.push(c),o=null)}for(let m=0;m<t.len;m++){let f=t.texts[m],g=t.kinds[m],A=t.isWordLike[m],y=t.starts[m];if(g==="text"){let x=xd(f),w=Ln(f);if(o!==null&&a&&l){o.push(f),s=s||A,a=a||x,l=w;continue}u(),o=[f],s=A,c=y,a=x,l=w;continue}u(),e.push(f),n.push(A),i.push(g),r.push(y)}return u(),{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function ta(t,e,n="normal",i="normal"){let r=ld(n),o=r.mode==="pre-wrap"?cd(t):ud(t);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let s=i==="keep-all"?zd(Xs(o,e,r)):Xs(o,e,r);return{normalized:o,chunks:Vd(s,r),...s}}var xt=null,na=new Map,gt=null,jd=96,qd=/\\p{Emoji_Presentation}/u,$d=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,Yi=null,ia=new Map;function Xi(){if(xt!==null)return xt;if(typeof OffscreenCanvas<"u")return xt=new OffscreenCanvas(1,1).getContext("2d"),xt;if(typeof document<"u")return xt=document.createElement("canvas").getContext("2d"),xt;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function Kd(t){let e=na.get(t);return e||(e=new Map,na.set(t,e)),e}function Ve(t,e){let n=e.get(t);return n===void 0&&(n={width:Xi().measureText(t).width,containsCJK:De(t)},e.set(t,n)),n}function yt(){if(gt!==null)return gt;if(typeof navigator>"u")return gt={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},gt;let t=navigator.userAgent,n=navigator.vendor==="Apple Computer, Inc."&&t.includes("Safari/")&&!t.includes("Chrome/")&&!t.includes("Chromium/")&&!t.includes("CriOS/")&&!t.includes("FxiOS/")&&!t.includes("EdgiOS/"),i=t.includes("Chrome/")||t.includes("Chromium/")||t.includes("CriOS/")||t.includes("Edg/");return gt={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:i,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},gt}function Jd(t){let e=t.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return e?parseFloat(e[1]):16}function ra(){return Yi===null&&(Yi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Yi}function Yd(t){return qd.test(t)||t.includes("\\uFE0F")}function oa(t){return $d.test(t)}function Xd(t,e){let n=ia.get(t);if(n!==void 0)return n;let i=Xi();i.font=t;let r=i.measureText("\\u{1F600}").width;if(n=0,r>e+.5&&typeof document<"u"&&document.body!==null){let o=document.createElement("span");o.style.font=t,o.style.display="inline-block",o.style.visibility="hidden",o.style.position="absolute",o.textContent="\\u{1F600}",document.body.appendChild(o);let s=o.getBoundingClientRect().width;document.body.removeChild(o),r-s>.5&&(n=r-s)}return ia.set(t,n),n}function Qd(t){let e=0,n=ra();for(let i of n.segment(t))Yd(i.segment)&&e++;return e}function Zd(t,e){return e.emojiCount===void 0&&(e.emojiCount=Qd(t)),e.emojiCount}function Qe(t,e,n){return n===0?e.width:e.width-Zd(t,e)*n}function sa(t,e,n,i,r){if(e.breakableFitAdvances!==void 0)return e.breakableFitAdvances;let o=ra(),s=[];for(let u of o.segment(t))s.push(u.segment);if(s.length<=1)return e.breakableFitAdvances=null,e.breakableFitAdvances;if(r==="sum-graphemes"){let u=[];for(let m of s){let f=Ve(m,n);u.push(Qe(m,f,i))}return e.breakableFitAdvances=u,e.breakableFitAdvances}if(r==="pair-context"||s.length>jd){let u=[],m=null,f=0;for(let g of s){let A=Ve(g,n),y=Qe(g,A,i);if(m===null)u.push(y);else{let x=m+g,w=Ve(x,n);u.push(Qe(x,w,i)-f)}m=g,f=y}return e.breakableFitAdvances=u,e.breakableFitAdvances}let c=[],a="",l=0;for(let u of s){a+=u;let m=Ve(a,n),f=Qe(a,m,i);c.push(f-l),l=f}return e.breakableFitAdvances=c,e.breakableFitAdvances}function aa(t,e){let n=Xi();n.font=t;let i=Kd(t),r=Jd(t),o=e?Xd(t,r):0;return{cache:i,fontSize:r,emojiCorrection:o}}function ef(t,e){for(;e<t.widths.length;){let n=t.kinds[e];if(n!=="space"&&n!=="zero-width-break"&&n!=="soft-hyphen")break;e++}return e}function tf(t,e){if(e<=0)return 0;let n=t%e;return Math.abs(n)<=1e-6?e:e-n}function nf(t,e,n,i,r){let o=0,s=e;for(;o<t.length;){let c=s+t[o];if((o+1<t.length?c+r:c)>n+i)break;s=c,o++}return{fitCount:o,fittedWidth:s}}function la(t,e){return t.simpleLineWalkFastPath?ua(t,e):ca(t,e)}function ua(t,e,n){let{widths:i,kinds:r,breakableFitAdvances:o}=t;if(i.length===0)return 0;let c=yt().lineFitEpsilon,a=e+c,l=0,u=0,m=!1,f=0,g=0,A=0,y=0,x=-1,w=0;function N(){x=-1,w=0}function L(F=A,T=y,k=u){l++,n?.({startSegmentIndex:f,startGraphemeIndex:g,endSegmentIndex:F,endGraphemeIndex:T,width:k}),u=0,m=!1,N()}function $(F,T){m=!0,f=F,g=0,A=F+1,y=0,u=T}function B(F,T,k){m=!0,f=F,g=T,A=F,y=T+1,u=k}function _(F,T){if(!m){$(F,T);return}u+=T,A=F+1,y=0}function S(F,T){let k=o[F];for(let G=T;G<k.length;G++){let j=k[G];m?u+j>a?(L(),B(F,G,j)):(u+=j,A=F,y=G+1):B(F,G,j)}m&&A===F&&y===k.length&&(A=F+1,y=0)}let C=0;for(;C<i.length&&!(!m&&(C=ef(t,C),C>=i.length));){let F=i[C],T=r[C],k=T==="space"||T==="preserved-space"||T==="tab"||T==="zero-width-break"||T==="soft-hyphen";if(!m){F>e&&o[C]!==null?S(C,0):$(C,F),k&&(x=C+1,w=u-F),C++;continue}if(u+F>a){if(k){_(C,F),L(C+1,0,u-F),C++;continue}if(x>=0){if(A>x||A===x&&y>0){L();continue}L(x,0,w);continue}if(F>e&&o[C]!==null){L(),S(C,0),C++;continue}L();continue}_(C,F),k&&(x=C+1,w=u-F),C++}return m&&L(),l}function ca(t,e,n){if(t.simpleLineWalkFastPath)return ua(t,e,n);let{widths:i,lineEndFitAdvances:r,lineEndPaintAdvances:o,kinds:s,breakableFitAdvances:c,discretionaryHyphenWidth:a,tabStopAdvance:l,chunks:u}=t;if(i.length===0||u.length===0)return 0;let m=yt(),f=m.lineFitEpsilon,g=e+f,A=0,y=0,x=!1,w=0,N=0,L=0,$=0,B=-1,_=0,S=0,C=null;function F(){B=-1,_=0,S=0,C=null}function T(H=L,U=$,V=y){A++,n?.({startSegmentIndex:w,startGraphemeIndex:N,endSegmentIndex:H,endGraphemeIndex:U,width:V}),y=0,x=!1,F()}function k(H,U){x=!0,w=H,N=0,L=H+1,$=0,y=U}function G(H,U,V){x=!0,w=H,N=U,L=H,$=U+1,y=V}function j(H,U){if(!x){k(H,U);return}y+=U,L=H+1,$=0}function ie(H,U,V,re){if(!U)return;let Fe=H==="tab"?0:r[V],O=H==="tab"?re:o[V];B=V+1,_=y-re+Fe,S=y-re+O,C=H}function P(H,U){let V=c[H];for(let re=U;re<V.length;re++){let Fe=V[re];x?y+Fe>g?(T(),G(H,re,Fe)):(y+=Fe,L=H,$=re+1):G(H,re,Fe)}x&&L===H&&$===V.length&&(L=H+1,$=0)}function se(H){if(C!=="soft-hyphen")return!1;let U=c[H];if(U==null)return!1;let{fitCount:V,fittedWidth:re}=nf(U,y,e,f,a);return V===0?!1:(y=re,L=H,$=V,F(),V===U.length?(L=H+1,$=0,!0):(T(H,V,re+a),P(H,V),!0))}function Se(H){A++,n?.({startSegmentIndex:H.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:H.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),F()}for(let H=0;H<u.length;H++){let U=u[H];if(U.startSegmentIndex===U.endSegmentIndex){Se(U);continue}x=!1,y=0,w=U.startSegmentIndex,N=0,L=U.startSegmentIndex,$=0,F();let V=U.startSegmentIndex;for(;V<U.endSegmentIndex;){let re=s[V],Fe=re==="space"||re==="preserved-space"||re==="tab"||re==="zero-width-break"||re==="soft-hyphen",O=re==="tab"?tf(y,l):i[V];if(re==="soft-hyphen"){x&&(L=V+1,$=0,B=V+1,_=y+a,S=y+a,C=re),V++;continue}if(!x){O>e&&c[V]!==null?P(V,0):k(V,O),ie(re,Fe,V,O),V++;continue}if(y+O>g){let W=y+(re==="tab"?0:r[V]),Q=y+(re==="tab"?O:o[V]);if(C==="soft-hyphen"&&m.preferEarlySoftHyphenBreak&&_<=g){T(B,0,S);continue}if(C==="soft-hyphen"&&se(V)){V++;continue}if(Fe&&W<=g){j(V,O),T(V+1,0,Q),V++;continue}if(B>=0&&_<=g){if(L>B||L===B&&$>0){T();continue}let ae=B;T(ae,0,S),V=ae;continue}if(O>e&&c[V]!==null){T(),P(V,0),V++;continue}T();continue}j(V,O),ie(re,Fe,V,O),V++}if(x){let re=B===U.consumedEndSegmentIndex?S:y;T(U.consumedEndSegmentIndex,0,re)}}return A}var Qi=null;function rf(){return Qi===null&&(Qi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Qi}function of(t){return t?{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[],segments:[]}:{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[]}}function sf(t,e){let n=[],i=[],r=0,o=!1,s=!1,c=!1;function a(){i.length!==0&&(n.push({text:i.length===1?i[0]:i.join(""),start:r}),i=[],o=!1,s=!1,c=!1)}function l(m,f,g){i=[m],r=f,o=g,s=Rn(m),c=nn.has(m)}function u(m,f){i.push(m),o=o||f;let g=Rn(m);m.length===1&&Xe.has(m)?s=s||g:s=g,c=!1}for(let m of rf().segment(t)){let f=m.segment,g=De(f);if(i.length===0){l(f,m.index,g);continue}if(c||vn.has(f)||Xe.has(f)||e.carryCJKAfterClosingQuote&&g&&s){u(f,g);continue}if(!o&&!g){u(f,g);continue}a(),l(f,m.index,g)}return a(),n}function af(t){if(t.length<=1)return t;let e=[],n=[t[0].text],i=t[0].start,r=De(t[0].text),o=Ln(t[0].text);function s(){e.push({text:n.length===1?n[0]:n.join(""),start:i})}for(let c=1;c<t.length;c++){let a=t[c],l=De(a.text),u=Ln(a.text);if(r&&o){n.push(a.text),r=r||l,o=u;continue}s(),n=[a.text],i=a.start,r=l,o=u}return s(),e}function lf(t,e,n,i){let r=yt(),{cache:o,emojiCorrection:s}=aa(e,oa(t.normalized)),c=Qe("-",Ve("-",o),s),l=Qe(" ",Ve(" ",o),s)*8;if(t.len===0)return of(n);let u=[],m=[],f=[],g=[],A=t.chunks.length<=1,y=n?[]:null,x=[],w=n?[]:null,N=Array.from({length:t.len});function L(S,C,F,T,k,G,j){k!=="text"&&k!=="space"&&k!=="zero-width-break"&&(A=!1),u.push(C),m.push(F),f.push(T),g.push(k),y?.push(G),x.push(j),w!==null&&w.push(S)}function $(S,C,F,T,k){let G=Ve(S,o),j=Qe(S,G,s),ie=C==="space"||C==="preserved-space"||C==="zero-width-break"?0:j,P=C==="space"||C==="zero-width-break"?0:j;if(k&&T&&S.length>1){let se="sum-graphemes";tn(S)?se="pair-context":r.preferPrefixWidthsForBreakableRuns&&(se="segment-prefixes");let Se=sa(S,G,o,s,se);L(S,j,ie,P,C,F,Se);return}L(S,j,ie,P,C,F,null)}for(let S=0;S<t.len;S++){N[S]=u.length;let C=t.texts[S],F=t.isWordLike[S],T=t.kinds[S],k=t.starts[S];if(T==="soft-hyphen"){L(C,0,c,c,T,k,null);continue}if(T==="hard-break"){L(C,0,0,0,T,k,null);continue}if(T==="tab"){L(C,0,0,0,T,k,null);continue}let G=Ve(C,o);if(T==="text"&&G.containsCJK){let j=sf(C,r),ie=i==="keep-all"?af(j):j;for(let P=0;P<ie.length;P++){let se=ie[P];$(se.text,"text",k+se.start,F,i==="keep-all"||!De(se.text))}continue}$(C,T,k,F,!0)}let B=uf(t.chunks,N,u.length),_=y===null?null:zs(t.normalized,y);return w!==null?{widths:u,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:g,simpleLineWalkFastPath:A,segLevels:_,breakableFitAdvances:x,discretionaryHyphenWidth:c,tabStopAdvance:l,chunks:B,segments:w}:{widths:u,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:g,simpleLineWalkFastPath:A,segLevels:_,breakableFitAdvances:x,discretionaryHyphenWidth:c,tabStopAdvance:l,chunks:B}}function uf(t,e,n){let i=[];for(let r=0;r<t.length;r++){let o=t[r],s=o.startSegmentIndex<e.length?e[o.startSegmentIndex]:n,c=o.endSegmentIndex<e.length?e[o.endSegmentIndex]:n,a=o.consumedEndSegmentIndex<e.length?e[o.consumedEndSegmentIndex]:n;i.push({startSegmentIndex:s,endSegmentIndex:c,consumedEndSegmentIndex:a})}return i}function cf(t,e,n,i){let r=i?.wordBreak??"normal",o=ta(t,yt(),i?.whiteSpace,r);return lf(o,e,n,r)}function da(t,e,n){return cf(t,e,!1,n)}function fa(t,e,n){let i=la(t,e);return{lineCount:i,height:i*n}}var df={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function ma(t,e){let n={...df,...e},i=1.2;for(let r=n.baseFontSize;r>=n.minFontSize;r-=n.step){let o=`${n.fontWeight} ${r}px ${n.fontFamily}`,s=da(t,o),{lineCount:c}=fa(s,n.maxWidth,r*i);if(c<=1)return{fontSize:r,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}window.__timelines=window.__timelines||{};window.__hyperframes={fitTextFontSize:ma,getVariables:hs};function pa(){let t=window;t.__hyperframeRuntimeBootstrapped||(t.__hyperframeRuntimeBootstrapped=!0,Us())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",pa,{once:!0}):pa();})();\n';
|
|
55970
|
+
RUNTIME_IIFE = '"use strict";(()=>{var _a=Object.create;var zn=Object.defineProperty;var Ta=Object.getOwnPropertyDescriptor;var La=Object.getOwnPropertyNames;var va=Object.getPrototypeOf,Ra=Object.prototype.hasOwnProperty;var ka=(t,e,n)=>e in t?zn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var te=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Da=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of La(e))!Ra.call(t,r)&&r!==n&&zn(t,r,{get:()=>e[r],enumerable:!(i=Ta(e,r))||i.enumerable});return t};var Ia=(t,e,n)=>(n=t!=null?_a(va(t)):{},Da(e||!t||!t.__esModule?zn(n,"default",{value:t,enumerable:!0}):n,t));var ge=(t,e,n)=>ka(t,typeof e!="symbol"?e+"":e,n);var Gr=te((Em,ii)=>{var Y=String,Wr=function(){return{isColorSupported:!1,reset:Y,bold:Y,dim:Y,italic:Y,underline:Y,inverse:Y,hidden:Y,strikethrough:Y,black:Y,red:Y,green:Y,yellow:Y,blue:Y,magenta:Y,cyan:Y,white:Y,gray:Y,bgBlack:Y,bgRed:Y,bgGreen:Y,bgYellow:Y,bgBlue:Y,bgMagenta:Y,bgCyan:Y,bgWhite:Y,blackBright:Y,redBright:Y,greenBright:Y,yellowBright:Y,blueBright:Y,magentaBright:Y,cyanBright:Y,whiteBright:Y,bgBlackBright:Y,bgRedBright:Y,bgGreenBright:Y,bgYellowBright:Y,bgBlueBright:Y,bgMagentaBright:Y,bgCyanBright:Y,bgWhiteBright:Y}};ii.exports=Wr();ii.exports.createColors=Wr});var ri=te(()=>{});var cn=te((Fm,zr)=>{"use strict";var Ur=Gr(),Vr=ri(),Rt=class t extends Error{constructor(e,n,i,r,o,s){super(e),this.name="CssSyntaxError",this.reason=e,o&&(this.file=o),r&&(this.source=r),s&&(this.plugin=s),typeof n<"u"&&typeof i<"u"&&(typeof n=="number"?(this.line=n,this.column=i):(this.line=n.line,this.column=n.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,t)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let n=this.source;e==null&&(e=Ur.isColorSupported);let i=u=>u,r=u=>u,o=u=>u;if(e){let{bold:u,gray:m,red:f}=Ur.createColors(!0);r=g=>u(f(g)),i=g=>m(g),Vr&&(o=g=>Vr(g))}let s=n.split(/\\r?\\n/),c=Math.max(this.line-3,0),a=Math.min(this.line+2,s.length),l=String(a).length;return s.slice(c,a).map((u,m)=>{let f=c+1+m,g=" "+(" "+f).slice(-l)+" | ";if(f===this.line){if(u.length>160){let y=20,x=Math.max(0,this.column-y),w=Math.max(this.column+y,this.endColumn+y),N=u.slice(x,w),L=i(g.replace(/\\d/g," "))+u.slice(0,Math.min(this.column-1,y-1)).replace(/[^\\t]/g," ");return r(">")+i(g)+o(N)+`\n `+L+r("^")}let A=i(g.replace(/\\d/g," "))+u.slice(0,this.column-1).replace(/[^\\t]/g," ");return r(">")+i(g)+o(u)+`\n `+A+r("^")}return" "+i(g)+o(u)}).join(`\n`)}toString(){let e=this.showSourceCode();return e&&(e=`\n\n`+e+`\n`),this.name+": "+this.message+e}};zr.exports=Rt;Rt.default=Rt});var oi=te((Mm,qr)=>{"use strict";var hl=/(<)(\\/?style\\b)/gi,xl=/(<)(!--)/g;function je(t){return typeof t!="string"||!t.includes("<")?t:t.replace(hl,"\\\\3c $2").replace(xl,"\\\\3c $2")}var jr={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function gl(t){return t[0].toUpperCase()+t.slice(1)}var kt=class{constructor(e){this.builder=e}atrule(e,n){let i=e.raws,r="@"+e.name,o=e.params?this.rawValue(e,"params"):"";if(typeof i.afterName<"u"?r+=i.afterName:o&&(r+=" "),e.nodes)this.block(e,r+o);else{let s=(i.between||"")+(n?";":"");this.builder(je(r+o+s),e)}}beforeAfter(e,n){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):n==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let r=e.parent,o=0;for(;r&&r.type!=="root";)o+=1,r=r.parent;if(i.includes(`\n`)){let s=this.raw(e,null,"indent");if(s.length)for(let c=0;c<o;c++)i+=s}return i}block(e,n){let i=this.raw(e,"between","beforeOpen");this.builder(je(n+i)+"{",e,"start");let r;e.nodes&&e.nodes.length?(this.body(e),r=this.raw(e,"after")):r=this.raw(e,"after","emptyBody"),r&&this.builder(je(r)),this.builder("}",e,"end")}body(e){let n=e.nodes,i=n.length-1;for(;i>0&&n[i].type==="comment";)i-=1;let r=this.raw(e,"semicolon"),o=e.type==="document";for(let s=0;s<n.length;s++){let c=n[s],a=this.raw(c,"before");a&&this.builder(o?a:je(a)),this.stringify(c,i!==s||r)}}comment(e){let n=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder(je("/*"+n+e.text+i+"*/"),e)}decl(e,n){let i=e.raws,r=this.raw(e,"between","colon"),o=e.prop+r+this.rawValue(e,"value");e.important&&(o+=i.important||" !important"),n&&(o+=";"),this.builder(je(o),e)}document(e){this.body(e)}raw(e,n,i){let r;if(i||(i=n),n&&(r=e.raws[n],typeof r<"u"))return r;let o=e.parent;if(i==="before"&&(!o||o.type==="root"&&o.first===e||o&&o.type==="document"))return"";if(!o)return jr[i];let s=e.root(),c=s.rawCache||(s.rawCache={});if(typeof c[i]<"u")return c[i];if(i==="before"||i==="after")return this.beforeAfter(e,i);{let a="raw"+gl(i);this[a]?r=this[a](s,e):s.walk(l=>{if(r=l.raws[n],typeof r<"u")return!1})}return typeof r>"u"&&(r=jr[i]),c[i]=r,r}rawBeforeClose(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after<"u")return n=i.raws.after,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawBeforeComment(e,n){let i;return e.walkComments(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeDecl"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeDecl(e,n){let i;return e.walkDecls(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeRule"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeOpen(e){let n;return e.walk(i=>{if(i.type!=="decl"&&(n=i.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(e){let n;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before<"u")return n=i.raws.before,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawColon(e){let n;return e.walkDecls(i=>{if(typeof i.raws.between<"u")return n=i.raws.between.replace(/[^\\s:]/g,""),!1}),n}rawEmptyBody(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(n=i.raws.after,typeof n<"u"))return!1}),n}rawIndent(e){if(e.raws.indent)return e.raws.indent;let n;return e.walk(i=>{let r=i.parent;if(r&&r!==e&&r.parent&&r.parent===e&&typeof i.raws.before<"u"){let o=i.raws.before.split(`\n`);return n=o[o.length-1],n=n.replace(/\\S/g,""),!1}}),n}rawSemicolon(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(n=i.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(e,n){let i=e[n],r=e.raws[n];return r&&r.value===i?r.raw:i}root(e){if(this.body(e),e.raws.after){let n=e.raws.after,i=e.parent&&e.parent.type==="document";this.builder(i?n:je(n))}}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(je(e.raws.ownSemicolon),e,"end")}stringify(e,n){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,n)}};qr.exports=kt;kt.default=kt});var Dt=te((Nm,$r)=>{"use strict";var yl=oi();function si(t,e){new yl(e).stringify(t)}$r.exports=si;si.default=si});var dn=te((_m,ai)=>{"use strict";ai.exports.isClean=Symbol("isClean");ai.exports.my=Symbol("my")});var Ot=te((Tm,Kr)=>{"use strict";var bl=cn(),Sl=oi(),Al=Dt(),{isClean:It,my:El}=dn();function li(t,e){let n=new t.constructor;for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i)||i==="proxyCache")continue;let r=t[i],o=typeof r;i==="parent"&&o==="object"?e&&(n[i]=e):i==="source"?n[i]=r:Array.isArray(r)?n[i]=r.map(s=>li(s,n)):(o==="object"&&r!==null&&(r=li(r)),n[i]=r)}return n}function Ge(t,e){if(e&&typeof e.offset<"u")return e.offset;let n=1,i=1,r=0;for(let o=0;o<t.length;o++){if(i===e.line&&n===e.column){r=o;break}t[o]===`\n`?(n=1,i+=1):n+=1}return r}var Pt=class{get proxyOf(){return this}constructor(e={}){this.raws={},this[It]=!1,this[El]=!0;for(let n in e)if(n==="nodes"){this.nodes=[];for(let i of e[n])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[n]=e[n]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\\n\\s{4}at /.test(e.stack)){let n=this.source;e.stack=e.stack.replace(/\\n\\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let n in e)this[n]=e[n];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let n=li(this);for(let i in e)n[i]=e[i];return n}cloneAfter(e={}){let n=this.clone(e);return this.parent.insertAfter(this,n),n}cloneBefore(e={}){let n=this.clone(e);return this.parent.insertBefore(this,n),n}error(e,n={}){if(this.source){let{end:i,start:r}=this.rangeBy(n);return this.source.input.error(e,{column:r.column,line:r.line},{column:i.column,line:i.line},n)}return new bl(e)}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:n==="root"?()=>e.root().toProxy():e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&e.markDirty()),!0}}}markClean(){this[It]=!0}markDirty(){if(this[It]){this[It]=!1;let e=this;for(;e=e.parent;)e[It]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e={}){let n=this.source.start;if(e.index)n=this.positionInside(e.index);else if(e.word){let i="document"in this.source.input?this.source.input.document:this.source.input.css,o=i.slice(Ge(i,this.source.start),Ge(i,this.source.end)).indexOf(e.word);o!==-1&&(n=this.positionInside(o))}return n}positionInside(e){let n=this.source.start.column,i=this.source.start.line,r="document"in this.source.input?this.source.input.document:this.source.input.css,o=Ge(r,this.source.start),s=o+e;for(let c=o;c<s;c++)r[c]===`\n`?(n=1,i+=1):n+=1;return{column:n,line:i,offset:s}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e={}){let n="document"in this.source.input?this.source.input.document:this.source.input.css,i={column:this.source.start.column,line:this.source.start.line,offset:Ge(n,this.source.start)},r=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:Ge(n,this.source.end)+1}:{column:i.column+1,line:i.line,offset:i.offset+1};if(e.word){let s=n.slice(Ge(n,this.source.start),Ge(n,this.source.end)).indexOf(e.word);s!==-1&&(i=this.positionInside(s),r=this.positionInside(s+e.word.length))}else e.start?i={column:e.start.column,line:e.start.line,offset:Ge(n,e.start)}:e.index&&(i=this.positionInside(e.index)),e.end?r={column:e.end.column,line:e.end.line,offset:Ge(n,e.end)}:typeof e.endIndex=="number"?r=this.positionInside(e.endIndex):e.index&&(r=this.positionInside(e.index+1));return(r.line<i.line||r.line===i.line&&r.column<=i.column)&&(r={column:i.column+1,line:i.line,offset:i.offset+1}),{end:r,start:i}}raw(e,n){return new Sl().raw(this,e,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let n=this,i=!1;for(let r of e)r===this?i=!0:i?(this.parent.insertAfter(n,r),n=r):this.parent.insertBefore(n,r);i||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,n){let i={},r=n==null;n=n||new Map;let o=0;for(let s in this){if(!Object.prototype.hasOwnProperty.call(this,s)||s==="parent"||s==="proxyCache")continue;let c=this[s];if(Array.isArray(c))i[s]=c.map(a=>typeof a=="object"&&a.toJSON?a.toJSON(null,n):a);else if(typeof c=="object"&&c.toJSON)i[s]=c.toJSON(null,n);else if(s==="source"){if(c==null)continue;let a=n.get(c.input);a==null&&(a=o,n.set(c.input,o),o++),i[s]={end:c.end,inputId:a,start:c.start}}else i[s]=c}return r&&(i.inputs=[...n.keys()].map(s=>s.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=Al){e.stringify&&(e=e.stringify);let n="";return e(this,i=>{n+=i}),n}warn(e,n,i={}){let r={node:this};for(let o in i)r[o]=i[o];return e.warn(n,r)}};Kr.exports=Pt;Pt.default=Pt});var Ht=te((Lm,Jr)=>{"use strict";var wl=Ot(),Bt=class extends wl{constructor(e){super(e),this.type="comment"}};Jr.exports=Bt;Bt.default=Bt});var Gt=te((vm,Yr)=>{"use strict";var Cl=Ot(),Wt=class extends Cl{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}};Yr.exports=Wt;Wt.default=Wt});var qe=te((Rm,oo)=>{"use strict";var Xr=Ht(),Qr=Gt(),Fl=Ot(),{isClean:Zr,my:eo}=dn(),ui,to,no,ci;function io(t){return t.map(e=>(e.nodes&&(e.nodes=io(e.nodes)),delete e.source,e))}function ro(t){if(t[Zr]=!1,t.proxyOf.nodes)for(let e of t.proxyOf.nodes)ro(e)}var ke=class t extends Fl{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...e){for(let n of e){let i=this.normalize(n,this.last);for(let r of i)this.proxyOf.nodes.push(r)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let n of this.nodes)n.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let n=this.getIterator(),i,r;for(;this.indexes[n]<this.proxyOf.nodes.length&&(i=this.indexes[n],r=e(this.proxyOf.nodes[i],i),r!==!1);)this.indexes[n]+=1;return delete this.indexes[n],r}every(e){return this.nodes.every(e)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:e[n]?n==="each"||typeof n=="string"&&n.startsWith("walk")?(...i)=>e[n](...i.map(r=>typeof r=="function"?(o,s)=>r(o.toProxy(),s):r)):n==="every"||n==="some"?i=>e[n]((r,...o)=>i(r.toProxy(),...o)):n==="root"?()=>e.root().toProxy():n==="nodes"?e.nodes.map(i=>i.toProxy()):n==="first"||n==="last"?e[n].toProxy():e[n]:e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="name"||n==="params"||n==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,n){let i=this.index(e),r=this.normalize(n,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let s of r)this.proxyOf.nodes.splice(i+1,0,s);let o;for(let s in this.indexes)o=this.indexes[s],i<o&&(this.indexes[s]=o+r.length);return this.markDirty(),this}insertBefore(e,n){let i=this.index(e),r=i===0?"prepend":!1,o=this.normalize(n,this.proxyOf.nodes[i],r).reverse();i=this.index(e);for(let c of o)this.proxyOf.nodes.splice(i,0,c);let s;for(let c in this.indexes)s=this.indexes[c],i<=s&&(this.indexes[c]=s+o.length);return this.markDirty(),this}normalize(e,n){if(typeof e=="string")e=io(to(e).nodes);else if(typeof e>"u")e=[];else if(Array.isArray(e)){e=e.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>"u")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new Qr(e)]}else if(e.selector||e.selectors)e=[new ci(e)];else if(e.name)e=[new ui(e)];else if(e.text)e=[new Xr(e)];else throw new Error("Unknown node type in node creation");return e.map(r=>(r[eo]||t.rebuild(r),r=r.proxyOf,r.parent&&r.parent.removeChild(r),r[Zr]&&ro(r),r.raws||(r.raws={}),typeof r.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(r.raws.before=n.raws.before.replace(/\\S/g,"")),r.parent=this.proxyOf,r))}prepend(...e){e=e.reverse();for(let n of e){let i=this.normalize(n,this.first,"prepend").reverse();for(let r of i)this.proxyOf.nodes.unshift(r);for(let r in this.indexes)this.indexes[r]=this.indexes[r]+i.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let n;for(let i in this.indexes)n=this.indexes[i],n>=e&&(this.indexes[i]=n-1);return this.markDirty(),this}replaceValues(e,n,i){return i||(i=n,n={}),this.walkDecls(r=>{n.props&&!n.props.includes(r.prop)||n.fast&&!r.value.includes(n.fast)||(r.value=r.value.replace(e,i))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((n,i)=>{let r;try{r=e(n,i)}catch(o){throw n.addToError(o)}return r!==!1&&n.walk&&(r=n.walk(e)),r})}walkAtRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="atrule"&&e.test(i.name))return n(i,r)}):this.walk((i,r)=>{if(i.type==="atrule"&&i.name===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="atrule")return n(i,r)}))}walkComments(e){return this.walk((n,i)=>{if(n.type==="comment")return e(n,i)})}walkDecls(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="decl"&&e.test(i.prop))return n(i,r)}):this.walk((i,r)=>{if(i.type==="decl"&&i.prop===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="decl")return n(i,r)}))}walkRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="rule"&&e.test(i.selector))return n(i,r)}):this.walk((i,r)=>{if(i.type==="rule"&&i.selector===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="rule")return n(i,r)}))}};ke.registerParse=t=>{to=t};ke.registerRule=t=>{ci=t};ke.registerAtRule=t=>{ui=t};ke.registerRoot=t=>{no=t};oo.exports=ke;ke.default=ke;ke.rebuild=t=>{t.type==="atrule"?Object.setPrototypeOf(t,ui.prototype):t.type==="rule"?Object.setPrototypeOf(t,ci.prototype):t.type==="decl"?Object.setPrototypeOf(t,Qr.prototype):t.type==="comment"?Object.setPrototypeOf(t,Xr.prototype):t.type==="root"&&Object.setPrototypeOf(t,no.prototype),t[eo]=!0,t.nodes&&t.nodes.forEach(e=>{ke.rebuild(e)})}});var fn=te((km,ao)=>{"use strict";var so=qe(),ct=class extends so{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};ao.exports=ct;ct.default=ct;so.registerAtRule(ct)});var mn=te((Dm,co)=>{"use strict";var Ml=qe(),lo,uo,rt=class extends Ml{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new lo(new uo,this,e).stringify()}};rt.registerLazyResult=t=>{lo=t};rt.registerProcessor=t=>{uo=t};co.exports=rt;rt.default=rt});var mo=te((Im,fo)=>{var Nl="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",_l=(t,e=21)=>(n=e)=>{let i="",r=n|0;for(;r--;)i+=t[Math.random()*t.length|0];return i},Tl=(t=21)=>{let e="",n=t|0;for(;n--;)e+=Nl[Math.random()*64|0];return e};fo.exports={nanoid:Tl,customAlphabet:_l}});var pn=te(()=>{});var hn=te(()=>{});var di=te(()=>{});var po=te(()=>{});var mi=te((zm,go)=>{"use strict";var{existsSync:Ll,readFileSync:vl}=po(),{dirname:fi,join:Rl}=pn(),{SourceMapConsumer:ho,SourceMapGenerator:xo}=hn();function kl(t){return Buffer?Buffer.from(t,"base64").toString():window.atob(t)}var Ut=class{constructor(e,n){if(n.map===!1)return;n.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let i=n.map?n.map.prev:void 0,r=this.loadMap(n.from,i);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=fi(this.mapFile)),r&&(this.text=r)}consumer(){return this.consumerCache||(this.consumerCache=new ho(this.json||this.text)),this.consumerCache}decodeInline(e){let n=/^data:application\\/json;charset=utf-?8;base64,/,i=/^data:application\\/json;base64,/,r=/^data:application\\/json;charset=utf-?8,/,o=/^data:application\\/json,/,s=e.match(r)||e.match(o);if(s)return decodeURIComponent(e.substr(s[0].length));let c=e.match(n)||e.match(i);if(c)return kl(e.substr(c[0].length));let a=e.slice(22);throw a=a.slice(0,a.indexOf(",")),new Error("Unsupported source map encoding "+a)}getAnnotationURL(e){return e.replace(/^\\/\\*\\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let n=e.match(/\\/\\*\\s*# sourceMappingURL=/g);if(!n)return;let i=e.lastIndexOf(n.pop()),r=e.indexOf("*/",i);i>-1&&r>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,r)))}loadFile(e,n,i){if(!(!i&&!this.unsafeMap&&!/\\.map$/i.test(e))&&(this.root=fi(e),Ll(e)))return this.mapFile=e,vl(e,"utf-8").toString().trim()}loadMap(e,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let i=n(e);if(i){let r=this.loadFile(i,e,!0);if(!r)throw new Error("Unable to load previous source map: "+i.toString());return r}}else{if(n instanceof ho)return xo.fromSourceMap(n).toString();if(n instanceof xo)return n.toString();if(this.isMap(n))return JSON.stringify(n);throw new Error("Unsupported previous source map format: "+n.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let i=this.annotation;e&&(i=Rl(fi(e),i));let r=this.loadFile(i,e,!1);if(r)try{this.json=JSON.parse(r.replace(/^\\)]}\'[^\\n]*\\n/,""))}catch{return}return r}}}startWith(e,n){return e?e.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};go.exports=Ut;Ut.default=Ut});var Vt=te((jm,Eo)=>{"use strict";var{nanoid:Dl}=mo(),{isAbsolute:xi,resolve:gi}=pn(),{SourceMapConsumer:Il,SourceMapGenerator:Pl}=hn(),{fileURLToPath:yo,pathToFileURL:xn}=di(),bo=cn(),Ol=mi(),pi=ri(),hi=Symbol("lineToIndexCache"),Bl=!!(Il&&Pl),So=!!(gi&&xi);function Ao(t){if(t[hi])return t[hi];let e=t.css.split(`\n`),n=new Array(e.length),i=0;for(let r=0,o=e.length;r<o;r++)n[r]=i,i+=e[r].length+1;return t[hi]=n,n}var dt=class{get from(){return this.file||this.id}constructor(e,n={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\\uFEFF"||this.css[0]==="\\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,n.document&&(this.document=n.document.toString()),n.from&&(!So||/^\\w+:\\/\\//.test(n.from)||xi(n.from)?this.file=n.from:this.file=gi(n.from)),So&&Bl){let i=new Ol(this.css,n);if(i.text){this.map=i;let r=i.consumer().file;!this.file&&r&&(this.file=this.mapResolve(r))}}this.file||(this.id="<input css "+Dl(6)+">"),this.map&&(this.map.file=this.from)}error(e,n,i,r={}){let o,s,c,a,l;if(n&&typeof n=="object"){let m=n,f=i;if(typeof m.offset=="number"){a=m.offset;let g=this.fromOffset(a);n=g.line,i=g.col}else n=m.line,i=m.column,a=this.fromLineAndColumn(n,i);if(typeof f.offset=="number"){c=f.offset;let g=this.fromOffset(c);s=g.line,o=g.col}else s=f.line,o=f.column,c=this.fromLineAndColumn(f.line,f.column)}else if(i)a=this.fromLineAndColumn(n,i);else{a=n;let m=this.fromOffset(a);n=m.line,i=m.col}let u=this.origin(n,i,s,o);return u?l=new bo(e,u.endLine===void 0?u.line:{column:u.column,line:u.line},u.endLine===void 0?u.column:{column:u.endColumn,line:u.endLine},u.source,u.file,r.plugin):l=new bo(e,s===void 0?n:{column:i,line:n},s===void 0?i:{column:o,line:s},this.css,this.file,r.plugin),l.input={column:i,endColumn:o,endLine:s,endOffset:c,line:n,offset:a,source:this.css},this.file&&(xn&&(l.input.url=xn(this.file).toString()),l.input.file=this.file),l}fromLineAndColumn(e,n){return Ao(this)[e-1]+n-1}fromOffset(e){let n=Ao(this),i=n[n.length-1],r=0;if(e>=i)r=n.length-1;else{let o=n.length-2,s;for(;r<o;)if(s=r+(o-r>>1),e<n[s])o=s-1;else if(e>=n[s+1])r=s+1;else{r=s;break}}return{col:e-n[r]+1,line:r+1}}mapResolve(e){return/^\\w+:\\/\\//.test(e)?e:gi(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,n,i,r){if(!this.map)return!1;let o=this.map.consumer(),s=o.originalPositionFor({column:n,line:e});if(!s.source)return!1;let c;typeof i=="number"&&(c=o.originalPositionFor({column:r,line:i}));let a;xi(s.source)?a=xn(s.source):a=new URL(s.source,this.map.consumer().sourceRoot||xn(this.map.mapFile));let l={column:s.column,endColumn:c&&c.column,endLine:c&&c.line,line:s.line,url:a.toString()};if(a.protocol==="file:")if(yo)l.file=yo(a);else throw new Error("file: protocol is not available in this PostCSS build");let u=o.sourceContentFor(s.source);return u&&(l.source=u),l}toJSON(){let e={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(e[n]=this[n]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};Eo.exports=dt;dt.default=dt;pi&&pi.registerInput&&pi.registerInput(dt)});var ft=te((qm,Mo)=>{"use strict";var wo=qe(),Co,Fo,$e=class extends wo{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,n,i){let r=super.normalize(e);if(n){if(i==="prepend")this.nodes.length>1?n.raws.before=this.nodes[1].raws.before:delete n.raws.before;else if(this.first!==n)for(let o of r)o.raws.before=n.raws.before}return r}removeChild(e,n){let i=this.index(e);return!n&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new Co(new Fo,this,e).stringify()}};$e.registerLazyResult=t=>{Co=t};$e.registerProcessor=t=>{Fo=t};Mo.exports=$e;$e.default=$e;wo.registerRoot($e)});var yi=te(($m,No)=>{"use strict";var zt={comma(t){return zt.split(t,[","],!0)},space(t){let e=[" ",`\n`," "];return zt.split(t,e)},split(t,e,n){let i=[],r="",o=!1,s=0,c=!1,a="",l=!1;for(let u of t)l?l=!1:u==="\\\\"?l=!0:c?u===a&&(c=!1):u===\'"\'||u==="\'"?(c=!0,a=u):u==="("?s+=1:u===")"?s>0&&(s-=1):s===0&&e.includes(u)&&(o=!0),o?(r!==""&&i.push(r.trim()),r="",o=!1):r+=u;return(n||r!=="")&&i.push(r.trim()),i}};No.exports=zt;zt.default=zt});var gn=te((Km,To)=>{"use strict";var _o=qe(),Hl=yi(),mt=class extends _o{get selectors(){return Hl.comma(this.selector)}set selectors(e){let n=this.selector?this.selector.match(/,\\s*/):null,i=n?n[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}};To.exports=mt;mt.default=mt;_o.registerRule(mt)});var vo=te((Jm,Lo)=>{"use strict";var Wl=fn(),Gl=Ht(),Ul=Gt(),Vl=Vt(),zl=mi(),jl=ft(),ql=gn();function jt(t,e){if(Array.isArray(t))return t.map(r=>jt(r));let{inputs:n,...i}=t;if(n){e=[];for(let r of n){let o={...r,__proto__:Vl.prototype};o.map&&(o.map={...o.map,__proto__:zl.prototype}),e.push(o)}}if(i.nodes&&(i.nodes=t.nodes.map(r=>jt(r,e))),i.source){let{inputId:r,...o}=i.source;i.source=o,r!=null&&(i.source.input=e[r])}if(i.type==="root")return new jl(i);if(i.type==="decl")return new Ul(i);if(i.type==="rule")return new ql(i);if(i.type==="comment")return new Gl(i);if(i.type==="atrule")return new Wl(i);throw new Error("Unknown node type: "+t.type)}Lo.exports=jt;jt.default=jt});var Si=te((Ym,Oo)=>{"use strict";var{dirname:yn,relative:ko,resolve:Do,sep:Io}=pn(),{SourceMapConsumer:Po,SourceMapGenerator:bn}=hn(),{pathToFileURL:Ro}=di(),$l=Vt(),Kl=!!(Po&&bn),Jl=!!(yn&&Do&&ko&&Io),bi=class{constructor(e,n,i,r){this.stringify=e,this.mapOpts=i.map||{},this.root=n,this.opts=i,this.css=r,this.originalCSS=r,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;this.isInline()?e="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?e=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?e=this.mapOpts.annotation(this.opts.to,this.root):e=this.outputFile()+".map";let n=`\n`;this.css.includes(`\\r\n`)&&(n=`\\r\n`),this.css+=n+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let n=this.toUrl(this.path(e.file)),i=e.root||yn(e.file),r;this.mapOpts.sourcesContent===!1?(r=new Po(e.text),r.sourcesContent&&(r.sourcesContent=null)):r=e.consumer(),this.map.applySourceMap(r,n,this.toUrl(this.path(i)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let e;for(let n=this.root.nodes.length-1;n>=0;n--)e=this.root.nodes[n],e.type==="comment"&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(n)}else if(this.css){let e;for(;(e=this.css.lastIndexOf("/*#"))!==-1;){let n=this.css.indexOf("*/",e+3);if(n===-1)break;for(;e>0&&this.css[e-1]===`\n`;)e--;this.css=this.css.slice(0,e)+this.css.slice(n+2)}}}}generate(){if(this.clearAnnotation(),Jl&&Kl&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,n=>{e+=n}),[e]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=bn.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new bn({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new bn({file:this.outputFile(),ignoreInvalidMapping:!0});let e=1,n=1,i="<no source>",r={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,s;this.stringify(this.root,(c,a,l)=>{if(this.css+=c,a&&l!=="end"&&(r.generated.line=e,r.generated.column=n-1,a.source&&a.source.start?(r.source=this.sourcePath(a),r.original.line=a.source.start.line,r.original.column=a.source.start.column-1,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,this.map.addMapping(r))),s=c.match(/\\n/g),s?(e+=s.length,o=c.lastIndexOf(`\n`),n=c.length-o):n+=c.length,a&&l!=="start"){let u=a.parent||{raws:{}};(!(a.type==="decl"||a.type==="atrule"&&!a.nodes)||a!==u.last||u.raws.semicolon)&&(a.source&&a.source.end?(r.source=this.sourcePath(a),r.original.line=a.source.end.line,r.original.column=a.source.end.column-1,r.generated.line=e,r.generated.column=n-2,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,r.generated.line=e,r.generated.column=n-1,this.map.addMapping(r)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!0?!1:this.previous().length?this.previous().some(n=>n.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\\w+:\\/\\//.test(e))return e;let n=this.memoizedPaths.get(e);if(n)return n;let i=this.opts.to?yn(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=yn(Do(i,this.mapOpts.annotation)));let r=ko(i,e);return this.memoizedPaths.set(e,r),r}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let n=e.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let e=new $l(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(n=>{if(n.source){let i=n.source.input.from;if(i&&!e[i]){e[i]=!0;let r=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(r,n.source.input.css)}}});else if(this.css){let n=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(n,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let n=this.memoizedFileURLs.get(e);if(n)return n;if(Ro){let i=Ro(e).toString();return this.memoizedFileURLs.set(e,i),i}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let n=this.memoizedURLs.get(e);if(n)return n;Io==="\\\\"&&(e=e.replace(/\\\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};Oo.exports=bi});var Wo=te((Xm,Ho)=>{"use strict";var Sn=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,An=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,Yl=/.[\\r\\n"\'(/\\\\]/,Bo=/[\\da-f]/i;Ho.exports=function(e,n={}){let i=e.css.valueOf(),r=n.ignoreErrors,o,s,c,a,l,u,m,f,g,A,y=i.length,x=0,w=[],N=[],L=-1;function $(){return x}function B(F){throw e.error("Unclosed "+F,x)}function _(){return N.length===0&&x>=y}function S(F){if(N.length)return N.pop();if(x>=y)return;let T=F?F.ignoreUnclosed:!1;switch(o=i.charCodeAt(x),o){case 10:case 32:case 9:case 13:case 12:{a=x;do a+=1,o=i.charCodeAt(a);while(o===32||o===10||o===9||o===13||o===12);u=["space",i.slice(x,a)],x=a-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let R=String.fromCharCode(o);u=[R,R,x];break}case 40:{if(A=w.length?w.pop()[1]:"",g=i.charCodeAt(x+1),A==="url"&&g!==39&&g!==34&&g!==32&&g!==10&&g!==9&&g!==12&&g!==13){a=x;do{if(m=!1,a=i.indexOf(")",a+1),a===-1)if(r||T){a=x;break}else B("bracket");for(f=a;i.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);u=["brackets",i.slice(x,a+1),x,a],x=a}else x<=L?u=["(","(",x]:(a=i.indexOf(")",x+1),s=i.slice(x,a+1),a===-1||Yl.test(s)?(L=a===-1?y:a,u=["(","(",x]):(u=["brackets",s,x,a],x=a));break}case 39:case 34:{l=o===39?"\'":\'"\',a=x;do{if(m=!1,a=i.indexOf(l,a+1),a===-1)if(r||T){a=x+1;break}else B("string");for(f=a;i.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);u=["string",i.slice(x,a+1),x,a],x=a;break}case 64:{Sn.lastIndex=x+1,Sn.test(i),Sn.lastIndex===0?a=i.length-1:a=Sn.lastIndex-2,u=["at-word",i.slice(x,a+1),x,a],x=a;break}case 92:{for(a=x,c=!0;i.charCodeAt(a+1)===92;)a+=1,c=!c;if(o=i.charCodeAt(a+1),c&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(a+=1,Bo.test(i.charAt(a)))){for(;Bo.test(i.charAt(a+1));)a+=1;i.charCodeAt(a+1)===32&&(a+=1)}u=["word",i.slice(x,a+1),x,a],x=a;break}default:{o===47&&i.charCodeAt(x+1)===42?(a=i.indexOf("*/",x+2)+1,a===0&&(r||T?a=i.length:B("comment")),u=["comment",i.slice(x,a+1),x,a],x=a):(An.lastIndex=x+1,An.test(i),An.lastIndex===0?a=i.length-1:a=An.lastIndex-2,u=["word",i.slice(x,a+1),x,a],w.push(u),x=a);break}}return x++,u}function C(F){N.push(F)}return{back:C,endOfFile:_,nextToken:S,position:$}}});var zo=te((Qm,Vo)=>{"use strict";var Xl=fn(),Ql=Ht(),Zl=Gt(),eu=ft(),Go=gn(),tu=Wo(),Uo={empty:!0,space:!0};function nu(t){for(let e=t.length-1;e>=0;e--){let n=t[e],i=n[3]||n[2];if(i)return i}}var Ai=class{constructor(e){this.input=e,this.root=new eu,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let n=new Xl;n.name=e[1].slice(1),n.name===""&&this.unnamedAtrule(n,e),this.init(n,e[2]);let i,r,o,s=!1,c=!1,a=[],l=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?l.push(i==="("?")":"]"):i==="{"&&l.length>0?l.push("}"):i===l[l.length-1]&&l.pop(),l.length===0)if(i===";"){n.source.end=this.getPosition(e[2]),n.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){c=!0;break}else if(i==="}"){if(a.length>0){for(o=a.length-1,r=a[o];r&&r[0]==="space";)r=a[--o];r&&(n.source.end=this.getPosition(r[3]||r[2]),n.source.end.offset++)}this.end(e);break}else a.push(e);else a.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(n.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(n,"params",a),s&&(e=a[a.length-1],n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++,this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),c&&(n.nodes=[],this.current=n)}checkMissedSemicolon(e){let n=this.colon(e);if(n===!1)return;let i=0,r;for(let o=n-1;o>=0&&(r=e[o],!(r[0]!=="space"&&(i+=1,i===2)));o--);throw this.input.error("Missed semicolon",r[0]==="word"?r[3]+1:r[2])}colon(e){let n=0,i,r,o;for(let[s,c]of e.entries()){if(r=c,o=r[0],o==="("&&(n+=1),o===")"&&(n-=1),n===0&&o===":")if(!i)this.doubleColon(r);else{if(i[0]==="word"&&i[1]==="progid")continue;return s}i=r}return!1}comment(e){let n=new Ql;this.init(n,e[2]),n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++;let i=e[1].slice(2,-2);if(!i.trim())n.text="",n.raws.left=i,n.raws.right="";else{let r=i.match(/^(\\s*)([^]*\\S)(\\s*)$/);n.text=r[2],n.raws.left=r[1],n.raws.right=r[3]}}createTokenizer(){this.tokenizer=tu(this.input)}decl(e,n){let i=new Zl;this.init(i,e[0][2]);let r=e[e.length-1];for(r[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(r[3]||r[2]||nu(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let l=e[0][0];if(l===":"||l==="space"||l==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let o;for(;e.length;)if(o=e.shift(),o[0]===":"){i.raws.between+=o[1];break}else o[0]==="word"&&/\\w/.test(o[1])&&this.unknownWord([o]),i.raws.between+=o[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let s=[],c;for(;e.length&&(c=e[0][0],!(c!=="space"&&c!=="comment"));)s.push(e.shift());this.precheckMissedSemicolon(e);for(let l=e.length-1;l>=0;l--){if(o=e[l],o[1].toLowerCase()==="!important"){i.important=!0;let u=this.stringFrom(e,l);u=this.spacesFromEnd(e)+u,u!==" !important"&&(i.raws.important=u);break}else if(o[1].toLowerCase()==="important"){let u=e.slice(0),m="";for(let f=l;f>0;f--){let g=u[f][0];if(m.trim().startsWith("!")&&g!=="space")break;m=u.pop()[1]+m}m.trim().startsWith("!")&&(i.important=!0,i.raws.important=m,e=u)}if(o[0]!=="space"&&o[0]!=="comment")break}e.some(l=>l[0]!=="space"&&l[0]!=="comment")&&(i.raws.between+=s.map(l=>l[1]).join(""),s=[]),this.raw(i,"value",s.concat(e),n),i.value.includes(":")&&!n&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let n=new Go;this.init(n,e[2]),n.selector="",n.raws.between="",this.current=n}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let n=this.current.nodes[this.current.nodes.length-1];n&&n.type==="rule"&&!n.raws.ownSemicolon&&(n.raws.ownSemicolon=this.spaces,this.spaces="",n.source.end=this.getPosition(e[2]),n.source.end.offset+=n.raws.ownSemicolon.length)}}getPosition(e){let n=this.input.fromOffset(e);return{column:n.col,line:n.line,offset:e}}init(e,n){this.current.push(e),e.source={input:this.input,start:this.getPosition(n)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let n=!1,i=null,r=!1,o=null,s=[],c=e[1].startsWith("--"),a=[],l=e;for(;l;){if(i=l[0],a.push(l),i==="("||i==="[")o||(o=l),s.push(i==="("?")":"]");else if(c&&r&&i==="{")o||(o=l),s.push("}");else if(s.length===0)if(i===";")if(r){this.decl(a,c);return}else break;else if(i==="{"){this.rule(a);return}else if(i==="}"){this.tokenizer.back(a.pop()),n=!0;break}else i===":"&&(r=!0);else i===s[s.length-1]&&(s.pop(),s.length===0&&(o=null));l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),s.length>0&&this.unclosedBracket(o),n&&r){if(!c)for(;a.length&&(l=a[a.length-1][0],!(l!=="space"&&l!=="comment"));)this.tokenizer.back(a.pop());this.decl(a,c)}else this.unknownWord(a)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,n,i,r){let o,s,c=i.length,a="",l=!0,u,m;for(let f=0;f<c;f+=1)o=i[f],s=o[0],s==="space"&&f===c-1&&!r?l=!1:s==="comment"?(m=i[f-1]?i[f-1][0]:"empty",u=i[f+1]?i[f+1][0]:"empty",!Uo[m]&&!Uo[u]?a.slice(-1)===","?l=!1:a+=o[1]:l=!1):a+=o[1];if(!l){let f=i.reduce((g,A)=>g+A[1],"");e.raws[n]={raw:f,value:a}}e[n]=a}rule(e){e.pop();let n=new Go;this.init(n,e[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(n,"selector",e),this.current=n}spacesAndCommentsFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],!(n!=="space"&&n!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let n,i="";for(;e.length&&(n=e[0][0],!(n!=="space"&&n!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],n==="space");)i=e.pop()[1]+i;return i}stringFrom(e,n){let i="";for(let r=n;r<e.length;r++)i+=e[r][1];return e.splice(n,e.length-n),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word "+e[0][1],{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,n){throw this.input.error("At-rule without name",{offset:n[2]},{offset:n[2]+n[1].length})}};Vo.exports=Ai});var wn=te((Zm,jo)=>{"use strict";var iu=qe(),ru=Vt(),ou=zo();function En(t,e){let n=new ru(t,e),i=new ou(n);try{i.parse()}catch(r){throw r}return i.root}jo.exports=En;En.default=En;iu.registerParse(En)});var Ei=te((ep,qo)=>{"use strict";var qt=class{constructor(e,n={}){if(this.type="warning",this.text=e,n.node&&n.node.source){let i=n.node.rangeBy(n);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in n)this[i]=n[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};qo.exports=qt;qt.default=qt});var Cn=te((tp,$o)=>{"use strict";var su=Ei(),$t=class{get content(){return this.css}constructor(e,n,i){this.processor=e,this.messages=[],this.root=n,this.opts=i,this.css="",this.map=void 0}toString(){return this.css}warn(e,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let i=new su(e,n);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}};$o.exports=$t;$t.default=$t});var wi=te((np,Jo)=>{"use strict";var Ko={};Jo.exports=function(e){Ko[e]||(Ko[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))}});var Mi=te((rp,Zo)=>{"use strict";var au=qe(),lu=mn(),uu=Si(),cu=wn(),Yo=Cn(),du=ft(),fu=Dt(),{isClean:Be,my:mu}=dn(),ip=wi(),pu={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},hu={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},xu={Once:!0,postcssPlugin:!0,prepare:!0},pt=0;function Kt(t){return typeof t=="object"&&typeof t.then=="function"}function Qo(t){let e=!1,n=pu[t.type];return t.type==="decl"?e=t.prop.toLowerCase():t.type==="atrule"&&(e=t.name.toLowerCase()),e&&t.append?[n,n+"-"+e,pt,n+"Exit",n+"Exit-"+e]:e?[n,n+"-"+e,n+"Exit",n+"Exit-"+e]:t.append?[n,pt,n+"Exit"]:[n,n+"Exit"]}function Xo(t){let e;return t.type==="document"?e=["Document",pt,"DocumentExit"]:t.type==="root"?e=["Root",pt,"RootExit"]:e=Qo(t),{eventIndex:0,events:e,iterator:0,node:t,visitorIndex:0,visitors:[]}}function Ci(t){return t[Be]=!1,t.nodes&&t.nodes.forEach(e=>Ci(e)),t}var Fi={},Ke=class t{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(e,n,i){this.stringified=!1,this.processed=!1;let r;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))r=Ci(n);else if(n instanceof t||n instanceof Yo)r=Ci(n.root),n.map&&(typeof i.map>"u"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=n.map);else{let o=cu;i.syntax&&(o=i.syntax.parse),i.parser&&(o=i.parser),o.parse&&(o=o.parse);try{r=o(n,i)}catch(s){this.processed=!0,this.error=s}r&&!r[mu]&&au.rebuild(r)}this.result=new Yo(e,r,i),this.helpers={...Fi,postcss:Fi,result:this.result},this.plugins=this.processor.plugins.map(o=>typeof o=="object"&&o.prepare?{...o,...o.prepare(this.result)}:o)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,n){let i=this.result.lastPlugin;try{n&&n.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=i.postcssPlugin,e.setMessage()):i.postcssVersion}catch(r){console&&console.error&&console.error(r)}return e}prepareVisitors(){this.listeners={};let e=(n,i,r)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([n,r])};for(let n of this.plugins)if(typeof n=="object")for(let i in n){if(!hu[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!xu[i])if(typeof n[i]=="object")for(let r in n[i])r==="*"?e(n,i,n[i][r]):e(n,i+"-"+r.toLowerCase(),n[i][r]);else typeof n[i]=="function"&&e(n,i,n[i])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let n=this.plugins[e],i=this.runOnRoot(n);if(Kt(i))try{await i}catch(r){throw this.handleError(r)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Be];){e[Be]=!0;let n=[Xo(e)];for(;n.length>0;){let i=this.visitTick(n);if(Kt(i))try{await i}catch(r){let o=n[n.length-1].node;throw this.handleError(r,o)}}}if(this.listeners.OnceExit)for(let[n,i]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(e.type==="document"){let r=e.nodes.map(o=>i(o,this.helpers));await Promise.all(r)}else await i(e,this.helpers)}catch(r){throw this.handleError(r)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return Kt(n[0])?Promise.all(n):n}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(n){throw this.handleError(n)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,n=fu;e.syntax&&(n=e.syntax.stringify),e.stringifier&&(n=e.stringifier),n.stringify&&(n=n.stringify);let i=this.result.root.source;if(e.map===void 0&&!(i&&i.input&&i.input.map)){let s="";return n(this.result.root,c=>{s+=c}),this.result.css=s,this.result}let o=new uu(n,this.result.root,this.result.opts).generate();return this.result.css=o[0],this.result.map=o[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let n=this.runOnRoot(e);if(Kt(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Be];)e[Be]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let n of e.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,n){return this.async().then(e,n)}toString(){return this.css}visitSync(e,n){for(let[i,r]of e){this.result.lastPlugin=i;let o;try{o=r(n,this.helpers)}catch(s){throw this.handleError(s,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(Kt(o))throw this.getAsyncError()}}visitTick(e){let n=e[e.length-1],{node:i,visitors:r}=n;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(r.length>0&&n.visitorIndex<r.length){let[s,c]=r[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===r.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=s;try{return c(i.toProxy(),this.helpers)}catch(a){throw this.handleError(a,i)}}if(n.iterator!==0){let s=n.iterator,c;for(;c=i.nodes[i.indexes[s]];)if(i.indexes[s]+=1,!c[Be]){c[Be]=!0,e.push(Xo(c));return}n.iterator=0,delete i.indexes[s]}let o=n.events;for(;n.eventIndex<o.length;){let s=o[n.eventIndex];if(n.eventIndex+=1,s===pt){i.nodes&&i.nodes.length&&(i[Be]=!0,n.iterator=i.getIterator());return}else if(this.listeners[s]){n.visitors=this.listeners[s];return}}e.pop()}walkSync(e){e[Be]=!0;let n=Qo(e);for(let i of n)if(i===pt)e.nodes&&e.each(r=>{r[Be]||this.walkSync(r)});else{let r=this.listeners[i];if(r&&this.visitSync(r,e.toProxy()))return}}warnings(){return this.sync().warnings()}};Ke.registerPostcss=t=>{Fi=t};Zo.exports=Ke;Ke.default=Ke;du.registerLazyResult(Ke);lu.registerLazyResult(Ke)});var ts=te((sp,es)=>{"use strict";var gu=Si(),yu=wn(),bu=Cn(),Su=Dt(),op=wi(),Jt=class{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,n=yu;try{e=n(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,n,i){n=n.toString(),this.stringified=!1,this._processor=e,this._css=n,this._opts=i,this._map=void 0;let r=Su;this.result=new bu(this._processor,void 0,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let s=new gu(r,void 0,this._opts,n);if(s.isMap()){let[c,a]=s.generate();c&&(this.result.css=c),a&&(this.result.map=a)}else s.clearAnnotation(),this.result.css=s.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,n){return this.async().then(e,n)}toString(){return this._css}warnings(){return[]}};es.exports=Jt;Jt.default=Jt});var is=te((ap,ns)=>{"use strict";var Au=mn(),Eu=Mi(),wu=ts(),Cu=ft(),ot=class{constructor(e=[]){this.version="8.5.14",this.plugins=this.normalize(e)}normalize(e){let n=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))n=n.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)n.push(i);else if(typeof i=="function")n.push(i);else if(!(typeof i=="object"&&(i.parse||i.stringify)))throw new Error(i+" is not a PostCSS plugin");return n}process(e,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new wu(this,e,n):new Eu(this,e,n)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};ns.exports=ot;ot.default=ot;Cu.registerProcessor(ot);Au.registerProcessor(ot)});var ds=te((lp,cs)=>{"use strict";var rs=fn(),os=Ht(),Fu=qe(),Mu=cn(),ss=Gt(),as=mn(),Nu=vo(),_u=Vt(),Tu=Mi(),Lu=yi(),vu=Ot(),Ru=wn(),Ni=is(),ku=Cn(),ls=ft(),us=gn(),Du=Dt(),Iu=Ei();function le(...t){return t.length===1&&Array.isArray(t[0])&&(t=t[0]),new Ni(t)}le.plugin=function(e,n){let i=!1;function r(...s){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(e+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let c=n(...s);return c.postcssPlugin=e,c.postcssVersion=new Ni().version,c}let o;return Object.defineProperty(r,"postcss",{get(){return o||(o=r()),o}}),r.process=function(s,c,a){return le([r(a)]).process(s,c)},r};le.stringify=Du;le.parse=Ru;le.fromJSON=Nu;le.list=Lu;le.comment=t=>new os(t);le.atRule=t=>new rs(t);le.decl=t=>new ss(t);le.rule=t=>new us(t);le.root=t=>new ls(t);le.document=t=>new as(t);le.CssSyntaxError=Mu;le.Declaration=ss;le.Container=Fu;le.Processor=Ni;le.Document=as;le.Comment=os;le.Warning=Iu;le.AtRule=rs;le.Result=ku;le.Input=_u;le.Rule=us;le.Root=ls;le.Node=vu;Tu.registerPostcss(le);cs.exports=le;le.default=le});function ln(){return globalThis}function v(t,e){if(typeof window>"u")return;let n=ln(),i=n.__hf?.onSwallowed;if(i)try{i({label:t,error:e})}catch(r){}(n.__hfDebug||n.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${t} swallowed:`,e)}function Ee(t){try{window.parent.postMessage(t,"*")}catch(e){v("bridge.postMessage",e)}}var Pa={play:(t,e)=>e.onPlay(),pause:(t,e)=>e.onPause(),"stop-media":(t,e)=>e.onStopMedia(),seek:(t,e)=>e.onSeek(Number(t.frame??0),t.seekMode??"commit"),tick:(t,e)=>e.onTick(),"set-muted":(t,e)=>e.onSetMuted(!!t.muted),"set-volume":(t,e)=>e.onSetVolume(Math.max(0,Math.min(1,Number(t.volume??1)))),"set-media-output-muted":(t,e)=>e.onSetMediaOutputMuted(!!t.muted),"set-native-media-sync-disabled":(t,e)=>e.onSetNativeMediaSyncDisabled(!!t.disabled),"set-web-audio-media-disabled":(t,e)=>e.onSetWebAudioMediaDisabled(!!t.disabled),"set-playback-rate":(t,e)=>e.onSetPlaybackRate(Number(t.playbackRate??1)),"set-color-grading":(t,e)=>e.onSetColorGrading(t.target??null,t.grading??null),"set-color-grading-compare":(t,e)=>e.onSetColorGradingCompare(t.target??null,t.compare??null),"enable-pick-mode":(t,e)=>e.onEnablePickMode(),"disable-pick-mode":(t,e)=>e.onDisablePickMode(),"flash-elements":t=>Oa(t)};function Oa(t){let e=t.selectors,n=t.duration||800;e&&Ba(e,n)}function ar(t){let e=n=>{let i=n.data;if(!i||i.source!=="hf-parent"||i.type!=="control")return;let r=i.action;if(typeof r!="string")return;let o=Pa[r];o&&o(i,t)};return window.addEventListener("message",e),Ee({source:"hf-preview",type:"ready"}),e}function Ba(t,e){if(!document.getElementById("__hf-flash-styles")){let n=document.createElement("style");n.id="__hf-flash-styles",n.textContent=`\n .__hf-flash {\n outline: 2px solid rgba(59, 130, 246, 0.6) !important;\n outline-offset: 2px !important;\n animation: __hf-flash-pulse ${e}ms ease-out forwards !important;\n }\n @keyframes __hf-flash-pulse {\n 0% { outline-color: rgba(59, 130, 246, 0.8); }\n 100% { outline-color: transparent; }\n }\n `,document.head.appendChild(n)}for(let n of t)try{document.querySelectorAll(n).forEach(r=>{r.classList.add("__hf-flash"),setTimeout(()=>r.classList.remove("__hf-flash"),e)})}catch(i){v("bridge.flashElements.querySelector",i)}}var jn=null;function lr(t){jn=t}function Ct(t,e){if(jn)try{jn({source:"hf-preview",type:"analytics",event:t,properties:e??{}})}catch(n){v("runtime.analytics.site1",n)}}function ur(t){let e=[],n=l=>{if(typeof l.getAnimations!="function")return[];try{return l.getAnimations()}catch{return[]}},i=l=>t?.resolveStartSeconds?t.resolveStartSeconds(l):Number.parseFloat(l.getAttribute("data-start")??"0")||0,r=(l,u)=>{let m=null;try{m=l.effect?.getComputedTiming?.()??null}catch(g){v("runtime.adapters.css.site5",g)}if(!m)return{};let f=Number(m.endTime);return Number.isFinite(f)?{endSeconds:u+f/1e3}:{unbounded:!0}},o=(l,u)=>{for(let m of l){try{m.currentTime=u}catch(f){v("runtime.adapters.css.site1",f)}try{m.pause()}catch(f){v("runtime.adapters.css.site2",f)}}},s=l=>{for(let u of l)try{u.play()}catch(m){v("runtime.adapters.css.site3",m)}},c=l=>{for(let u of l)try{u.pause()}catch(m){v("runtime.adapters.css.site4",m)}},a=l=>{l.baseDelay?l.el.style.animationDelay=l.baseDelay:l.el.style.removeProperty("animation-delay"),l.basePlayState?l.el.style.animationPlayState=l.basePlayState:l.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{e=[];let l=document.querySelectorAll("*");for(let u of l){if(!(u instanceof HTMLElement))continue;let m=window.getComputedStyle(u);!m.animationName||m.animationName==="none"||e.push({el:u,baseDelay:u.style.animationDelay||"",basePlayState:u.style.animationPlayState||"",animations:n(u)})}},getInferredDurationSeconds:()=>{let l=0;for(let u of e){if(!u.el.isConnected)continue;let m=i(u.el);for(let f of n(u.el)){let g=r(f,m);g.endSeconds!=null&&(l=Math.max(l,g.endSeconds))}}return l>0?l:null},seek:l=>{let u=Number(l.time)||0;for(let m of e){if(!m.el.isConnected)continue;let f=i(m.el),g=Math.max(0,u-f)*1e3,A=m.animations;if(A.length>0){o(A,g);continue}m.el.style.animationPlayState="paused",m.el.style.animationDelay=`-${(g/1e3).toFixed(3)}s`}},pause:()=>{for(let l of e){if(!l.el.isConnected)continue;let u=l.animations;u.length>0&&c(u),a(l)}},play:()=>{for(let l of e)l.el.isConnected&&(a(l),s(l.animations))},revert:()=>{e=[]}}}function cr(t){return{name:"gsap",discover:()=>{},seek:e=>{let n=t.getTimeline();if(!n)return;n.pause();let i=Math.max(0,Number(e.time)||0);typeof n.totalTime=="function"?(n.totalTime(i+.001,!0),n.totalTime(i,!1)):n.seek(i,!1)},pause:()=>{let e=t.getTimeline();e&&e.pause()}}}function dr(){return{name:"animejs",discover:()=>{try{let t=window.anime;if(!t||typeof t.running>"u")return;let e=t.running;if(!Array.isArray(e)||e.length===0)return;let n=window.__hfAnime??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfAnime=n}catch(t){v("runtime.adapters.animejs.site1",t)}},seek:t=>{let e=Math.max(0,(Number(t.time)||0)*1e3),n=window.__hfAnime;if(!(!n||n.length===0))for(let i of n)try{typeof i.seek=="function"&&i.seek(e)}catch(r){v("runtime.adapters.animejs.site2",r)}},pause:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.pause=="function"&&e.pause()}catch(n){v("runtime.adapters.animejs.site3",n)}},play:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.play=="function"&&e.play()}catch(n){v("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function mr(){return{name:"lottie",discover:()=>{try{let t=window.lottie;if(t&&typeof t.getRegisteredAnimations=="function"){let e=t.getRegisteredAnimations();if(Array.isArray(e)&&e.length>0){let n=window.__hfLottie??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfLottie=n}}}catch(t){v("runtime.adapters.lottie.site1",t)}},seek:t=>{let e=Math.max(0,Number(t.time)||0),n=window.__hfLottie;if(!(!n||n.length===0))for(let i of n)try{if(qn(i))i.goToAndStop(e*1e3,!1);else if($n(i)){if(typeof i.setCurrentRawFrameValue=="function"){let r=i.totalFrames??0,o=i.frameRate??30,s=e*o;r>0&&i.setCurrentRawFrameValue(Math.min(s,r-1))}else if(typeof i.seek=="function"){let r=i.duration??1,o=Math.min(100,e/r*100);i.seek(o)}}}catch(r){v("runtime.adapters.lottie.site2",r)}},pause:()=>{let t=window.__hfLottie;if(!(!t||t.length===0))for(let e of t)try{(qn(e)||$n(e))&&e.pause()}catch(n){v("runtime.adapters.lottie.site3",n)}},revert:()=>{},getInferredDurationSeconds:()=>{let t=window.__hfLottie;if(!t||t.length===0)return null;let e=0,n=!1;for(let i of t){let r=null;try{r=Ha(i)}catch(o){v("runtime.adapters.lottie.site4",o)}r!=null&&(n=!0,e=Math.max(e,r))}return n?e:null}}}function fr(t,e){return!Number.isFinite(t)||!t||t<=0||!Number.isFinite(e)||!e||e<=0?null:t/e}function Ha(t){return qn(t)?fr(t.totalFrames,t.frameRate):$n(t)?Number.isFinite(t.duration)&&(t.duration??0)>0?t.duration??null:fr(t.totalFrames,t.frameRate):null}function qn(t){return typeof t=="object"&&t!==null&&typeof t.goToAndStop=="function"}function $n(t){return typeof t=="object"&&t!==null&&typeof t.pause=="function"&&("totalFrames"in t||"duration"in t)}var Kn=-1;function un(t){if(t!==Kn){Kn=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(e){v("runtime.adapters.seek-dispatch.site1",e)}}}function pr(t){Kn=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(e){v("runtime.adapters.seek-dispatch.force",e)}}function hr(){let t=null,e=0,n=null,i=null,r=null,o=null,s=()=>{if(typeof window>"u")return null;let u=window.THREE?.DefaultLoadingManager;return!u||typeof u!="object"||typeof u.itemsLoaded!="number"||typeof u.itemsTotal!="number"?null:u},c=l=>{o||l.itemsTotal<=l.itemsLoaded||(o=new Promise(u=>{l.onLoad=function(){try{r?.call(this)}finally{o=null,l.onLoad=r??null,u()}}}))},a=l=>{n!==l&&(n=l,i=l.onStart??null,r=l.onLoad??null,l.onStart=function(u,m,f){try{i?.call(this,u,m,f)}finally{c(l)}})};return{name:"three",discover:()=>{let l=s();l&&(a(l),c(l))},seek:l=>{t=Math.max(0,Number(l.time)||0),e=t,window.__hfThreeTime=t,un(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0},getReadyPromise:()=>{let l=s();return!l||l.itemsTotal<=l.itemsLoaded?null:(o||c(l),o)}}}function Oe(t){let e=null,n=new WeakSet;return{name:t.name,discover:()=>{},seek:()=>{},pause:()=>{},play:()=>{},revert:()=>{},getReadyPromise:()=>{let i=t.getInstances();if(i.length===0)return null;let r=i.filter(o=>!n.has(o));return r.length===0?null:e||(e=Promise.allSettled(r.map(o=>t.waitFor(o).then(()=>{n.add(o)}))).then(()=>{e=null}),e)}}}function xr(){return Oe({name:"mapbox",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfMapbox;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>{if(t.loaded()){e();return}t.on("load",e)})})}function gr(){return Oe({name:"leaflet",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfLeaflet;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>t.whenReady(e))})}function yr(){return Oe({name:"google-maps",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfGoogleMaps;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>{let n=t.addListener("tilesloaded",()=>{n.remove(),e()})})})}function br(){return Oe({name:"maplibre",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfMaplibre;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>{if(t.loaded()){e();return}t.on("load",e)})})}function Sr(){return Oe({name:"d3",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfD3;return Array.isArray(t)?t:[]},waitFor:t=>t.end()})}function Ar(){let t=null,e=0;return{name:"typegpu",discover:()=>{},seek:n=>{t=Math.max(0,Number(n.time)||0),e=t,window.__hfTypegpuTime=t,un(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0}}}function Er(t){let e=t.nextElementSibling;if(e instanceof HTMLImageElement&&e.classList.contains("__render_frame__")&&e.complete&&e.naturalWidth>0)return e;if(t.id){let n=document.getElementById(`__render_frame_${t.id}__`);if(n instanceof HTMLImageElement&&n.complete&&n.naturalWidth>0)return n}return null}function wr(){let t=globalThis.GPUQueue;if(!t?.prototype?.copyExternalImageToTexture)return;let e=t.prototype.copyExternalImageToTexture;t.prototype.copyExternalImageToTexture=function(n,i,r){if(n?.source instanceof HTMLVideoElement){let o=Er(n.source);if(o)return e.call(this,{...n,source:o},i,r)}return e.call(this,n,i,r)}}function Cr(){let t=[globalThis.WebGL2RenderingContext,globalThis.WebGLRenderingContext],e=["texImage2D","texSubImage2D"];for(let n of t){let i=n?.prototype;if(i)for(let r of e){let o=i[r];if(typeof o!="function"||o.__hfVideoPatched)continue;let s=function(...c){let a=c.length-1,l=c[a];if(l instanceof HTMLVideoElement){let u=Er(l);u&&(c[a]=u)}return o.apply(this,c)};s.__hfVideoPatched=!0,i[r]=s}}}function Fr(){let t=!1,e=0,n=!1,i,r,o,s=new Set,c=new WeakMap,a=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},l=x=>{let w=Number(x.currentTime);return Number.isFinite(w)&&w>0?w:0},u=(x,w)=>w<=0?x:x>=w?Math.max(0,x-w):x,m=(x,w)=>{let N=c.get(x);if(N)return N;let L={compositionTimeMs:w,animationTimeMs:t?u(l(x),w):l(x)};return c.set(x,L),L},f=(x,w)=>{if(!s.has(x)){s.add(x);let N=()=>{s.delete(x)};try{x.addEventListener("finish",N,{once:!0}),x.addEventListener("cancel",N,{once:!0})}catch(L){v("runtime.adapters.waapi.site4",L)}}m(x,w)},g=(x,w)=>{for(let N of x)f(N,w)},A=()=>{if(n||typeof Element>"u")return;let x=Element.prototype;if(typeof x.animate!="function"||x.__hfOriginalAnimate)return;let w=x.animate;try{Object.defineProperty(x,"__hfOriginalAnimate",{value:w,configurable:!0});let N=function(...L){let $=w.apply(this,L);return f($,e),$};x.animate=N,i=x,r=w,o=N,n=!0}catch{}},y=x=>{let w=null;try{w=x.effect?.getComputedTiming?.()??null}catch($){v("runtime.adapters.waapi.site4",$)}if(!w)return{};let N=Number(w.endTime);return Number.isFinite(N)?{endSeconds:(c.get(x)?.compositionTimeMs??0)/1e3+N/1e3}:{unbounded:!0}};return{name:"waapi",discover:()=>{t=!0,A(),g(a(),e)},seek:x=>{let w=Math.max(0,(Number(x.time)||0)*1e3);e=w,(!t||s.size>0)&&g(a(),t?w:0);for(let N of s){let L=t?m(N,w):m(N,0),$=L.animationTimeMs+Math.max(0,w-L.compositionTimeMs);try{N.currentTime=$}catch(B){v("runtime.adapters.waapi.site1",B)}try{N.pause()}catch(B){v("runtime.adapters.waapi.site2",B)}}},pause:()=>{t||g(a(),e);for(let x of s)try{x.pause()}catch(w){v("runtime.adapters.waapi.site3",w)}},revert:()=>{if(s.clear(),c=new WeakMap,t=!1,e=0,i&&r&&o&&i.animate===o)try{i.animate=r,i.__hfOriginalAnimate===r&&delete i.__hfOriginalAnimate}catch(x){v("runtime.adapters.waapi.site5",x)}i=void 0,r=void 0,o=void 0,n=!1},getInferredDurationSeconds:()=>{let x=0;for(let w of a()){let N=y(w);N.endSeconds!=null&&(x=Math.max(x,N.endSeconds))}return x>0?x:null}}}function Mr(t,e){if(t.length===0)return 1;let n=0;for(;n<t.length-2&&e>=t[n+1].time;)n+=1;let i=t[n],r=t[n+1]??i,o=r.time-i.time,s=o<=0?0:Math.min(1,Math.max(0,(e-i.time)/o));return i.volume+(r.volume-i.volume)*s}function Wa(t,e,n,i){let r=Number.parseFloat(t.dataset.start??"0")||0,o=Number.parseFloat(t.dataset.end??""),s=Number.parseFloat(t.dataset.duration??""),c=Number.isFinite(o)&&o>r?o:Number.isFinite(s)&&s>0?r+s:n,a=Number.parseFloat(t.dataset.volume??""),l=Number.isFinite(a)?Math.max(0,Math.min(1,a)):1;t.volume=l;let u=1/Math.min(60,Math.max(1,i)),m=Math.max(0,r),f=Math.min(n,c),g=[];for(let y=m;y<=f+1e-6;y+=u){let x=Math.min(f,y);e(x);let w=Number(t.volume);if(!Number.isFinite(w))continue;let N=Math.max(0,Math.min(1,w)),L=g.at(-1);if((!L||Math.abs(L.volume-N)>1e-4||x===f)&&g.push({time:Number(x.toFixed(6)),volume:Number(N.toFixed(6))}),x===f)break}return g.some(y=>Math.abs(y.volume-l)>1e-4)?g:null}function Nr(t,e,n,i){if(!e||!(t instanceof HTMLAudioElement)&&!(t instanceof HTMLVideoElement)||n<=0)return;let o=Wa(t,s=>{try{typeof e.totalTime=="function"?e.totalTime(s,!0):typeof e.seek=="function"&&e.seek(s,!0)}catch{}},n,60);o&&i.set(t,o)}function Nt(t){let e=t.defaultPlaybackRate;return Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1}function _r(t){let e=Array.from(document.querySelectorAll("video, audio")),n=t?.shouldIncludeElement?e.filter(s=>t.shouldIncludeElement?.(s)):e.filter(s=>s.hasAttribute("data-start")),i=[],r=[],o=0;for(let s of n){let c=t?.resolveStartSeconds?t.resolveStartSeconds(s):Number.parseFloat(s.dataset.start??"0");if(!Number.isFinite(c))continue;let a=Number.parseFloat(s.dataset.playbackStart??s.dataset.mediaStart??"0")||0,l=Nt(s),u=s.loop,m=Number.isFinite(s.duration)&&s.duration>0?s.duration:null,f=t?.resolveDurationSeconds?.(s)??Number.parseFloat(s.dataset.duration??"");(!Number.isFinite(f)||f<=0)&&m!=null&&(f=Math.max(0,(m-a)/l));let g=Number.isFinite(f)&&f>0?c+f:Number.POSITIVE_INFINITY,A=Number.parseFloat(s.dataset.volume??""),y={el:s,start:c,mediaStart:a,duration:Number.isFinite(f)&&f>0?f:Number.POSITIVE_INFINITY,end:g,volume:Number.isFinite(A)?A:null,playbackRate:l,loop:u,sourceDuration:m};i.push(y),s.tagName==="VIDEO"&&r.push(y),Number.isFinite(g)&&(o=Math.max(o,g))}return{timedMediaEls:n,mediaClips:i,videoClips:r,maxMediaEnd:o}}var Jn=new WeakMap,Ft=new WeakMap,Yn=new WeakSet,lt=new WeakSet;function Ga(t){if(lt.has(t))return;lt.add(t);let e=()=>lt.delete(t);t.addEventListener("playing",e,{once:!0}),t.addEventListener("pause",e,{once:!0}),t.addEventListener("error",e,{once:!0})}var Ua=3;function Va(t){return t.error!=null||t.networkState===Ua}var Xn=new WeakMap;function Mt(t){return Number.isFinite(t)?Math.max(0,Math.min(1,t)):1}function Tr(t){let e=!!(t.outputMuted||t.userMuted);for(let n of t.clips){let{el:i}=n;if(!i.isConnected)continue;let r=(t.timeSeconds-n.start)*n.playbackRate+n.mediaStart;if(t.timeSeconds>=n.start&&t.timeSeconds<=n.end&&r>=0&&(!i.ended||n.loop)){if(n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let T=n.sourceDuration-n.mediaStart;T>0&&r>=n.sourceDuration&&(r=n.mediaStart+(r-n.mediaStart)%T)}let s=Mt(t.userVolume??1),c=Mt(n.volume??1),a=Xn.get(i),l=Mt(i.volume),u;n.volumeKeyframes&&n.volumeKeyframes.length>0?u=Mt(Mr(n.volumeKeyframes,r)):a===void 0||Math.abs(l-a)>1e-4?u=l:u=c;let m=Mt(u*s);i.volume=m,Xn.set(i,m),t.onElementVolume?.(i,m),(e||t.isWebAudioOwned?.(i))&&(i.muted=!0),i.preload!=="auto"&&(i.preload="auto");try{i.playbackRate=n.playbackRate*t.playbackRate}catch(T){v("runtime.media.site1",T)}let f=.04,g=2,A=i.currentTime||0,y=Math.abs(A-r),x=r-A,w=Jn.get(i);Jn.set(i,x);let N=w===void 0,L=!N&&Math.abs(x-w)>.5,$=y>3,B=y>.5&&(N||L||$),_=i.tagName==="VIDEO"&&!i.paused,S=w!==void 0&&Math.abs(x-w)<.004,C=!1;if(!_&&!B&&!N&&S&&y>f){let T=(Ft.get(i)??0)+1;Ft.set(i,T),T>=g&&(C=!0,Ft.set(i,0))}else y<=f&&Ft.set(i,0);let F=!_&&t.forceSync&&y>.02;if(B||C||F){if(!(i.tagName==="VIDEO"&&i.id&&!!document.getElementById(`__render_frame_${i.id}__`))){try{i.currentTime=r}catch(R){v("runtime.media.site2",R)}if(Math.abs(i.currentTime-r)>.5&&!Yn.has(i)){Yn.add(i),i.load();try{i.currentTime=r}catch(R){v("runtime.media.site3",R)}}}lt.delete(i)}t.playing&&i.paused&&!lt.has(i)&&!Va(i)?(Ga(i),i.play().catch(T=>{lt.delete(i),(T&&typeof T=="object"&&"name"in T?String(T.name??""):"")==="NotAllowedError"&&t.onAutoplayBlocked?.()})):!t.playing&&!i.paused&&i.pause();continue}Jn.delete(i),Ft.delete(i),Yn.delete(i),Xn.delete(i),i.paused||i.pause()}}var za=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),ja=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(","),qa="data-hf-color-grading-source-hidden";function Lr(t){let e=!1,n=null,i=null,r=null,o=null;function s(S,C){try{window.dispatchEvent(new CustomEvent(S,{detail:C}))}catch(F){v("runtime.picker.site1",F)}}function c(S){r=S,s("hyperframe:picker:hovered",{elementInfo:r,isPickMode:e,timestamp:Date.now()})}function a(S){o=S,s("hyperframe:picker:selected",{elementInfo:o,isPickMode:e,timestamp:Date.now()})}function l(S){let C=S.ownerDocument.defaultView;if(!C)return!1;let F=S;for(;F&&F!==document.body&&F!==document.documentElement;){let T=C.getComputedStyle(F);if(T.display==="none"||T.visibility==="hidden"||T.pointerEvents==="none")return!0;let R=Number.parseFloat(T.opacity);if(Number.isFinite(R)&&R<=.01&&!F.hasAttribute(qa))return!0;F=F.parentElement}return!1}function u(S){if(!S||S===document.body||S===document.documentElement)return!1;let C=S.tagName.toLowerCase();return!(C==="script"||C==="style"||C==="link"||C==="meta"||S.classList.contains("__hf-pick-highlight")||S.closest(za)||l(S))}function m(S){return!!S?.closest(ja)}function f(S){let C=S;if(C.id)return`#${C.id}`;let F=S.getAttribute("data-composition-id");if(F)return`[data-composition-id="${CSS.escape(F)}"]`;let T=S.getAttribute("data-composition-src");if(T)return`[data-composition-src="${CSS.escape(T)}"]`;let R=S.getAttribute("data-track-index");if(R)return`[data-track-index="${CSS.escape(R)}"]`;let G=S.tagName.toLowerCase(),j=S.parentElement;if(!j)return G;let ie=j.querySelectorAll(`:scope > ${G}`);if(ie.length===1)return G;for(let P=0;P<ie.length;P+=1)if(ie[P]===S)return`${G}:nth-of-type(${P+1})`;return G}function g(S){let C=S.tagName.toLowerCase(),F=(S.textContent??"").trim().replace(/\\s+/g," "),T=(R,G)=>R.length>G?`${R.slice(0,G-1)}\\u2026`:R;return C==="h1"||C==="h2"||C==="h3"?"Heading":C==="p"||C==="span"||C==="div"?F.length>0?T(F,56):"Text":C==="img"?"Image":C==="video"?"Video":C==="audio"?"Audio":C==="svg"?"Shape":S.getAttribute("data-composition-src")?"Composition":C==="section"?"Section":`${C.charAt(0).toUpperCase()}${C.slice(1)}`}function A(S,C,F){let T=typeof F=="number"&&F>0?F:8,R=[];if(document.elementsFromPoint)R=document.elementsFromPoint(S,C);else if(document.elementFromPoint){let ie=document.elementFromPoint(S,C);R=ie?[ie]:[]}if(m(R[0]??null))return[];let G={},j=[];for(let ie=0;ie<R.length;ie+=1){let P=R[ie];if(!u(P))continue;let se=`${P.tagName}::${P.id||""}::${ie}`;if(!G[se]&&(G[se]=!0,j.push(P),j.length>=T))break}return j}function y(S){let C=S.getBoundingClientRect(),F={};for(let R=0;R<S.attributes.length;R+=1){let G=S.attributes[R];G.name.startsWith("data-")&&(F[G.name]=G.value)}return{id:S.id||null,tagName:S.tagName.toLowerCase(),selector:f(S),label:g(S),boundingBox:{x:C.left,y:C.top,width:C.width,height:C.height},textContent:S.textContent?S.textContent.trim().slice(0,200):null,src:S.getAttribute("src")||S.getAttribute("data-composition-src")||null,dataAttributes:F}}function x(S,C,F){return A(S,C,F).map(y)}function w(S){if(!e)return;let F=A(S.clientX,S.clientY,1)[0]??(S.target instanceof Element?S.target:null);if(!u(F)||n===F)return;n&&n.classList.remove("__hf-pick-highlight"),n=F,F.classList.add("__hf-pick-highlight");let T=y(F);c(T),t.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:T})}function N(S){if(!e)return;S.preventDefault(),S.stopPropagation(),S.stopImmediatePropagation();let C=x(S.clientX,S.clientY,8);C.length!==0&&(c(C[0]??null),t.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:C,selectedIndex:0,point:{x:S.clientX,y:S.clientY}}))}function L(S){S.key==="Escape"&&(B(),t.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function $(){e||(e=!0,i=document.createElement("style"),i.textContent=[".__hf-pick-highlight { outline: 2px solid #4f8cf7 !important; outline-offset: 2px; cursor: crosshair !important; }",".__hf-pick-active * { cursor: crosshair !important; }"].join(`\n`),document.head.appendChild(i),document.body.classList.add("__hf-pick-active"),document.addEventListener("mousemove",w,!0),document.addEventListener("click",N,!0),document.addEventListener("keydown",L,!0),s("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function B(){e&&(e=!1,n&&(n.classList.remove("__hf-pick-highlight"),n=null),i&&(i.remove(),i=null),document.body.classList.remove("__hf-pick-active"),document.removeEventListener("mousemove",w,!0),document.removeEventListener("click",N,!0),document.removeEventListener("keydown",L,!0),s("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function _(){window.__HF_PICKER_API={enable:$,disable:B,isActive:()=>e,getHovered:()=>r,getSelected:()=>o,getCandidatesAtPoint:(S,C,F)=>Number.isFinite(S)&&Number.isFinite(C)?x(S,C,F):[],pickAtPoint:(S,C,F)=>{if(!Number.isFinite(S)||!Number.isFinite(C))return null;let T=x(S,C,8);if(!T.length)return null;let R=Math.max(0,Math.min(T.length-1,Number(F??0))),G=T[R]??null;return G?(a(G),t.postMessage({source:"hf-preview",type:"element-picked",elementInfo:G}),B(),G):null},pickManyAtPoint:(S,C,F)=>{if(!Number.isFinite(S)||!Number.isFinite(C))return[];let T=x(S,C,8);if(!T.length)return[];let R=[],G=Array.isArray(F)?F:[0];for(let j of G){let ie=Math.max(0,Math.min(T.length-1,Math.floor(Number(j)))),P=T[ie];if(!P)continue;R.some(Se=>Se.selector===P.selector&&Se.tagName===P.tagName)||R.push(P)}return R.length?(a(R[0]??null),t.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:R}),B(),R):[]}},s("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:$,disablePickMode:B,installPickerApi:_}}var $a=["width","height","top","left","right","bottom","inset","object-fit","object-position","z-index","opacity","visibility","filter","mix-blend-mode","backdrop-filter","border-radius","overflow","clip-path","mask","mask-image","mask-size","mask-position","mask-repeat","transform","transform-origin","translate","rotate","scale","box-sizing"];function ut(t,e){let n=Number.isFinite(e)&&e>0?e:30,i=Number.isFinite(t)&&t>0?t:0;return Math.floor(i*n+1e-9)/n}function vr(t,e,n=$a){for(let i of n){let r=e.getPropertyValue(i);r&&t.setProperty(i,r)}}function _t(t,e,n){let i=t?.[e];return typeof i=="function"?Number(i.call(t))||n:typeof i=="number"&&Number.isFinite(i)?i:(i!=null&&v("runtime.player.nonConformantNum",{prop:e,actual:typeof i}),n)}function Re(t,e){let n=t?.[e];if(typeof n=="function"){n.call(t);return}n!==void 0&&v("runtime.player.nonConformantVoid",{method:e,actual:typeof n})}function Tt(t,e,n){if(t){for(let i of Object.values(t))if(!(!i||i===e))try{n(i)}catch(r){v("runtime.player.site1",r)}}}function Rr(t,e,n){let i=ut(e,n);return Re(t,"pause"),typeof t.totalTime=="function"?t.totalTime(i,!1):typeof t.seek=="function"&&t.seek(i,!1),i}function Ka(t,e,n,i){let r=[];Tt(t,e,o=>{Re(o,"play"),r.push(o)});try{return Rr(e,n,i)}finally{for(let o of r)try{Re(o,"pause")}catch(s){v("runtime.player.site2",s)}}}function Ja(t,e){Tt(t,e,n=>{Re(n,"play")})}function kr(t){return{_timeline:null,play:()=>{let e=t.getTimeline();if(!e||t.getIsPlaying())return;let n=Math.max(0,Number(t.getSafeDuration?.()??_t(e,"duration",0))||0);n>0&&Math.max(0,_t(e,"time",0))>=n&&(Re(e,"pause"),typeof e.seek=="function"&&e.seek(0,!1),t.onDeterministicSeek(0),t.setIsPlaying(!1),t.onSyncMedia(0,!1),t.onRenderFrameSeek(0)),typeof e.timeScale=="function"&&e.timeScale(t.getPlaybackRate()),Re(e,"play"),Tt(t.getTimelineRegistry?.(),e,i=>{typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),Re(i,"play")}),t.onDeterministicPlay(),t.setIsPlaying(!0),t.onShowNativeVideos(),t.onStatePost(!0)},pause:()=>{let e=t.getTimeline();if(!e)return;Re(e,"pause"),Tt(t.getTimelineRegistry?.(),e,i=>{Re(i,"pause")});let n=Math.max(0,_t(e,"time",0));t.onDeterministicSeek(n),t.onDeterministicPause(),t.setIsPlaying(!1),t.onSyncMedia(n,!1),t.onRenderFrameSeek(n),t.onStatePost(!0)},seek:(e,n)=>{let i=t.getTimeline();if(!i)return;let r=Math.max(0,Number(e)||0),o=t.getIsPlaying(),s=Ka(t.getTimelineRegistry?.(),i,r,t.getCanonicalFps());t.onDeterministicSeek(s),n?.keepPlaying&&o?(typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),Re(i,"play"),Tt(t.getTimelineRegistry?.(),i,c=>{typeof c.timeScale=="function"&&c.timeScale(t.getPlaybackRate()),Re(c,"play")}),t.onDeterministicPlay(),t.onShowNativeVideos(),t.onSyncMedia(s,!0)):(t.setIsPlaying(!1),t.onSyncMedia(s,!1)),t.onRenderFrameSeek(s),t.onStatePost(!0)},renderSeek:e=>{let n=t.getTimeline(),i=t.getCanonicalFps(),r=n?(Ja(t.getTimelineRegistry?.(),n),Rr(n,e,i)):ut(Math.max(0,Number(e)||0),i);t.onDeterministicSeek(r),t.setIsPlaying(!1),t.onSyncMedia(r,!1),t.onRenderFrameSeek(r),t.onStatePost(!0)},getTime:()=>_t(t.getTimeline(),"time",0),getDuration:()=>_t(t.getTimeline(),"duration",0),isPlaying:()=>t.getIsPlaying(),setPlaybackRate:e=>t.setPlaybackRate(e),getPlaybackRate:()=>t.getPlaybackRate()}}function Dr(){return{capturedTimeline:null,isPlaying:!1,currentTime:0,deterministicAdapters:[],canonicalFps:30,bridgeMuted:!1,bridgeVolume:1,mediaOutputMuted:!1,nativeMediaSyncDisabled:!1,webAudioMediaDisabled:!1,mediaAutoplayBlockedPosted:!1,mediaForceSyncNextTick:!1,playbackRate:1,bridgeLastPostedFrame:-1,bridgeLastPostedAt:0,bridgeLastPostedPlaying:!1,bridgeLastPostedMuted:!1,bridgeMaxPostIntervalMs:80,controlBridgeHandler:null,beforeUnloadHandler:null,injectedCompStyles:[],injectedCompScripts:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,transportClock:null,transportRafId:null}}var Ya=new Set(["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"]);function Zn(t){return t.id||t.getAttribute("data-hf-id")||null}function Qn(t){if(t==null)return null;let e=Number(t);return Number.isFinite(e)?e:null}function Xa(t,e){let n=t.getAttribute("data-composition-id");if(!n)return null;let i=Number(e[n]?.duration?.());return Number.isFinite(i)&&i>0?i:null}function Qa(t){if(!(t instanceof HTMLMediaElement)||!Number.isFinite(t.duration))return null;let e=Qn(t.getAttribute("data-playback-start"))??Qn(t.getAttribute("data-media-start"))??0;return t.duration>e?t.duration-e:null}function Za(t,e,n,i){let r=Qn(t.getAttribute("data-duration"));return r!=null&&r>0?r:Xa(t,e)??Qa(t)??Math.max(0,n-i)}function el(t){for(let[e,n]of t){let i=e.parentElement;for(;i;){let r=t.get(i);if(r){n.parentId=r.id,r.children.push(n);break}i=i.parentElement}}}function Ir(t){let{startResolver:e,timelineRegistry:n,rootDuration:i}=t,r=new Map,o=document.querySelector("[data-composition-id]"),s=0;for(let c of document.querySelectorAll("[data-start]")){if(c===o||Ya.has(c.tagName))continue;let a=e.resolveStartForElement(c,0);if(Za(c,n,i,a)<=0)continue;let l={id:Zn(c)??`__clip-${s++}`,element:c,parentId:null,children:[]};r.set(c,l)}return el(r),{roots:Array.from(r.values()).filter(c=>c.parentId===null)}}var tl="data-hf-authored-duration",nl="data-hf-authored-end";function it(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function il(t){return it(t.getAttribute("data-duration"))}function rl(t){return it(t.getAttribute("data-end"))}function ol(t){return it(t.getAttribute(tl))}function sl(t){return it(t.getAttribute(nl))}function al(t){let e=(t??"").trim();if(!e)return null;let n=it(e);if(n!=null)return{kind:"absolute",value:n};let i=e.match(/^([A-Za-z0-9_.:-]+)(?:\\s*([+-])\\s*([0-9]*\\.?[0-9]+))?$/);if(!i)return null;let r=(i[1]??"").trim();if(!r)return null;let o=i[2]??"+",s=i[3]??"0",c=Number.parseFloat(s),a=Number.isFinite(c)?Math.max(0,c):0,l=o==="-"?-a:a;return{kind:"reference",refId:r,offset:l}}function ze(t){let e=t.timelineRegistry??{},n=t.includeAuthoredTimingAttrs??!1,i=new WeakMap,r=new WeakMap,o=new Set,s=u=>{let m=document.getElementById(u);return m||(document.querySelector(`[data-composition-id="${CSS.escape(u)}"]`)??null)},c=u=>{let m=r.get(u);if(m!==void 0)return m;let f=null,g=il(u)??(n?ol(u):null);if(g!=null&&g>0&&(f=g),f==null||f<=0){let A=rl(u)??(n?sl(u):null);if(A!=null){let y=l(u,0),x=A-y;Number.isFinite(x)&&x>0&&(f=x)}}if((f==null||f<=0)&&u instanceof HTMLMediaElement){let A=it(u.getAttribute("data-playback-start"))??it(u.getAttribute("data-media-start"))??0;Number.isFinite(u.duration)&&u.duration>A&&(f=(u.duration-A)/Nt(u))}if(f==null||f<=0){let A=u.getAttribute("data-composition-id");if(A){let y=e[A]??null;if(y&&typeof y.duration=="function")try{let x=Number(y.duration());Number.isFinite(x)&&x>0&&(f=x)}catch(x){v("runtime.startResolver.site1",x)}}}return f!=null&&Number.isFinite(f)&&f>0?(r.set(u,f),f):(r.set(u,null),null)},a=(u,m)=>{if(u.hasAttribute("data-composition-id")){let g=u.parentElement?.closest("[data-composition-id]");return g?l(g,m):0}let f=u.closest("[data-composition-id]");return f?l(f,m):0},l=(u,m)=>{let f=i.get(u);if(f!==void 0)return f??m;if(o.has(u))return m;o.add(u);try{let g=al(u.getAttribute("data-start"));if(!g){if(u.hasAttribute("data-composition-id")){let N=u.parentElement;if(N&&(N.hasAttribute("data-composition-src")||N.hasAttribute("data-composition-id")||N.hasAttribute("data-composition-file"))){let L=l(N,m);return i.set(u,L),L}}return i.set(u,m),m}if(g.kind==="absolute"){let N=Math.max(0,g.value),L=Math.max(0,a(u,m)+N);return i.set(u,L),L}let A=s(g.refId);if(!A)return i.set(u,m),m;let y=l(A,0),x=c(A);if(x==null||x<=0){let N=Math.max(0,y+g.offset);return i.set(u,N),N}let w=Math.max(0,y+x+g.offset);return i.set(u,w),w}finally{o.delete(u)}};return{resolveStartForElement:(u,m=0)=>l(u,Math.max(0,m)),resolveDurationForElement:u=>c(u)}}function ei(t){let e=t.trim().toLowerCase();return!(!e||e==="main"||e.includes("caption")||e.includes("ambient"))}var ll="data-hf-authored-duration",ul="data-hf-authored-end";function Ce(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function ti(t){return Ce(t.getAttribute("data-duration"))??Ce(t.getAttribute(ll))}function Pr(t){return Ce(t.getAttribute("data-end"))??Ce(t.getAttribute(ul))}function ni(...t){let e=t.filter(n=>Number.isFinite(n??null));return e.length===0?null:Math.max(...e)}var Or={composition:0,video:1,image:2,element:3,audio:4};function cl(t){if(t.length===0)return;let e=new Map;for(let s of t){let c=e.get(s.track)??new Set;c.add(s.kind),e.set(s.track,c)}if(!Array.from(e.values()).some(s=>s.size>1))return;let i=0,r=new Map,o=[...e.keys()].sort((s,c)=>s-c);for(let s of o){let c=e.get(s);if(c.size===1)r.set(`${s}:${[...c][0]}`,i++);else{let a=[...c].sort((l,u)=>(Or[l]??99)-(Or[u]??99));for(let l of a)r.set(`${s}:${l}`,i++)}}for(let s of t){let c=`${s.track}:${s.kind}`,a=r.get(c);a!=null&&(s.track=a)}}function vt(t){let e=String(t??"").trim();if(!e)return null;let n=e.toLowerCase();if(n.startsWith("data:")||n.startsWith("javascript:"))return null;try{return new URL(e,document.baseURI).toString()}catch{return e}}function Br(t){let e=t.getAttribute("src")??t.getAttribute("data-src");if(e)return vt(e);let n=t.getAttribute("data-composition-src");if(n)return vt(n);let i=t.querySelector("img[src], video[src], audio[src], source[src]");return i?vt(i.getAttribute("src")):null}function dl(t){let e=t.className;return typeof e!="string"?null:e.split(/\\s+/).map(n=>n.trim()).find(n=>n&&n!=="clip"&&!n.startsWith("__hf-"))??null}function fl(t){if(!t)return null;try{return new URL(t,document.baseURI).pathname.split("/").filter(Boolean).at(-1)??null}catch{return t.split(/[\\\\/]/).filter(Boolean).at(-1)??null}}function ml(t){let e=t.textContent?.replace(/\\s+/g," ").trim();return e?e.length>32?`${e.slice(0,31)}...`:e:null}function Lt(t){let e=t.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return e?e.replace(/\\b\\w/g,n=>n.toUpperCase()):t}function pl(t,e,n){let i=t.getAttribute("data-timeline-label")??t.getAttribute("data-label")??t.getAttribute("aria-label")??null;if(i?.trim())return i.trim();let r=t.getAttribute("data-composition-id");if(r)return Lt(r);let o=t.id;if(o)return Lt(o);let s=dl(t);if(s)return Lt(s);let c=fl(Br(t));if(c)return Lt(c);let a=ml(t);return a||`${Lt(e)} ${n+1}`}function Hr(t){let n=window.__timelines??{},i=ze({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),r=O=>{if(!O)return null;let D=n[O]??null;if(!D||typeof D.duration!="function")return null;try{let W=Number(D.duration());return Number.isFinite(W)&&W>0?W:null}catch{return null}},o=O=>{let D=Ce(O.getAttribute("data-duration"));if(D!=null&&D>0)return D;let W=Ce(O.getAttribute("data-playback-start"))??Ce(O.getAttribute("data-media-start"))??0;return Number.isFinite(O.duration)&&O.duration>W?Math.max(0,(O.duration-W)/Nt(O)):null},s=()=>{let O=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(O.length===0)return null;let D=0;for(let W of O){let Q=W.hasAttribute("data-hf-auto-start")?i.resolveStartForElement(W,0):Math.max(0,Number(W.getAttribute("data-start")??0)||0);if(!Number.isFinite(Q))continue;let ae=o(W);ae==null||ae<=0||(D=Math.max(D,Math.max(0,Q)+ae))}return D>0?D:null},c=(O,D)=>{let W=[],Q=null,ae=null,q=null,z=O.parentElement;for(;z;){let X=z.getAttribute("data-composition-id");X&&(W.push(X),!q&&z!==D&&(q=X),Q==null&&(Q=i.resolveStartForElement(z,0)),ae==null&&(ae=Ce(z.getAttribute("data-duration"))??r(X)??null)),z=z.parentElement}return{parentCompositionId:q,compositionAncestors:W.reverse(),inheritedStart:Q,inheritedDuration:ae}},a=document.querySelector("[data-composition-id]"),l=Array.from(document.querySelectorAll("[data-composition-id]")),u=a?.getAttribute("data-composition-id")??null,m=a?i.resolveStartForElement(a,0):0,f=s(),g=f!=null?Math.max(0,f-Math.max(0,m)):null,A=r(u),y=ti(a??document.body),x=ni(...l.filter(O=>O!==a).map(O=>{let D=i.resolveStartForElement(O,0),W=i.resolveDurationForElement(O)??r(O.getAttribute("data-composition-id"))??null;return!Number.isFinite(D)||W==null||W<=0?null:Math.max(0,D)+W})),w=x!=null?Math.max(0,x-Math.max(0,m)):null,N=typeof A=="number"&&Number.isFinite(A)&&A>0?A:null,L=typeof y=="number"&&Number.isFinite(y)&&y>0?y:null,$=typeof g=="number"&&Number.isFinite(g)&&g>0?g:null,B=typeof w=="number"&&Number.isFinite(w)&&w>0?w:null,_=ni($,B),S=N!=null&&_!=null&&N>_+1,F=L??(S?_:ni(N,$,B))??null,R=(F!=null?m+F:null)??(typeof f=="number"&&Number.isFinite(f)&&f>0?f:null),G=(O,D)=>!Number.isFinite(D)||D<=0?0:R==null||!Number.isFinite(R)?D:!Number.isFinite(O)||O>=R?0:Math.max(0,Math.min(D,R-O)),j=[],ie=[],P=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),se=0;for(let O=0;O<P.length;O+=1){let D=P[O];if(D===a||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(D.tagName))continue;let W=c(D,a),Q=i.resolveStartForElement(D,W.inheritedStart??0),ae=D.getAttribute("data-composition-id"),q=ti(D);if((q==null||q<=0)&&ae&&ae!==u&&(q=r(ae)),(q==null||q<=0)&&D instanceof HTMLMediaElement){let Me=Ce(D.getAttribute("data-playback-start"))??Ce(D.getAttribute("data-media-start"))??0;Number.isFinite(D.duration)&&D.duration>0&&(q=Math.max(0,D.duration-Me))}if(q==null||q<=0){let Me=W.inheritedDuration;if(Me!=null&&Me>0){let He=(W.inheritedStart??0)+Me;q=Math.max(0,He-Q)}}if(q==null||q<=0||(q=G(Q,q),q<=0))continue;let z=Q+q;se=Math.max(se,z);let X=D.tagName.toLowerCase(),Ie=ae&&ae!==u?"composition":X==="video"?"video":X==="audio"?"audio":X==="img"?"image":"element";j.push({id:Zn(D)??ae??null,label:pl(D,Ie,j.length),start:Q,duration:q,track:Number.parseInt(D.getAttribute("data-track-index")??D.getAttribute("data-track")??String(O),10)||0,kind:Ie,tagName:X,compositionId:D.getAttribute("data-composition-id"),compositionAncestors:W.compositionAncestors,parentCompositionId:W.parentCompositionId,nodePath:null,compositionSrc:vt(D.getAttribute("data-composition-src")),assetUrl:Br(D),timelineRole:D.getAttribute("data-timeline-role"),timelineLabel:D.getAttribute("data-timeline-label"),timelineGroup:D.getAttribute("data-timeline-group"),timelinePriority:Ce(D.getAttribute("data-timeline-priority"))})}let Se=new Set(j.map(O=>O.id)),H=a?.getAttribute("data-composition-id")??null,U=H?n[H]??null:null;if(U&&a){let O=U;if(typeof O.getChildren=="function")try{let D=O.getChildren(!0,!0,!1)??[],W=new Map;for(let q of a.children){let z=q;if(!z.id)continue;let X=z.tagName.toLowerCase();X==="script"||X==="style"||X==="link"||W.set(z,{id:z.id,start:1/0,end:-1/0})}let Q=q=>{let z=q;for(;z;){if(W.has(z))return z;if(z===a)return null;z=z.parentElement}return null};for(let q of D){if(typeof q.targets!="function"||typeof q.startTime!="function"||typeof q.duration!="function")continue;let z=q.startTime(),X=q.parent;for(;X&&X!==U&&typeof X.startTime=="function";)z+=X.startTime(),X=X.parent;let Ie=z+q.duration();if(!(!Number.isFinite(z)||!Number.isFinite(Ie)))for(let Me of q.targets()){if(!(Me instanceof Element))continue;let bt=Q(Me);if(!bt)continue;let He=W.get(bt);He&&(He.start=Math.min(He.start,z),He.end=Math.max(He.end,Ie))}}let ae=j.length>0?Math.max(...j.map(q=>q.track))+1:0;for(let[q,z]of W){if(z.start===1/0||z.end===-1/0)continue;let X=q;if(Se.has(X.id))continue;let Ie=Math.max(0,z.end-z.start);if(Ie<=0)continue;let Me=G(z.start,Ie);Me<=0||(se=Math.max(se,z.start+Me),j.push({id:X.id,label:X.getAttribute("data-timeline-label")??X.getAttribute("data-label")??X.getAttribute("aria-label")??X.id,start:z.start,duration:Me,track:Number.parseInt(X.getAttribute("data-track-index")??X.getAttribute("data-track")??"",10)||ae,kind:"element",tagName:X.tagName.toLowerCase(),compositionId:X.getAttribute("data-composition-id"),compositionAncestors:H?[H]:[],parentCompositionId:H,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:X.getAttribute("data-timeline-role"),timelineLabel:X.getAttribute("data-timeline-label"),timelineGroup:X.getAttribute("data-timeline-group"),timelinePriority:Ce(X.getAttribute("data-timeline-priority"))}),Se.add(X.id))}}catch(D){v("runtime.timeline.site1",D)}}if(a&&F!=null&&F>0){let O=j.length>0?Math.max(...j.map(D=>D.track))+1:0;for(let D of a.children){let W=D;if(!W.id||Se.has(W.id))continue;let Q=W.getAttribute("data-timeline-role");if(Q!=="overlay"&&Q!=="persistent-overlay")continue;let ae=W.tagName.toLowerCase();if(ae==="script"||ae==="style"||ae==="link"||ae==="meta"||window.getComputedStyle(W).display==="none")continue;let z=G(0,F);z<=0||(se=Math.max(se,z),j.push({id:W.id,label:W.getAttribute("data-timeline-label")??W.getAttribute("data-label")??W.getAttribute("aria-label")??W.id,start:0,duration:z,track:Number.parseInt(W.getAttribute("data-track-index")??W.getAttribute("data-track")??"",10)||O,kind:"element",tagName:ae,compositionId:W.getAttribute("data-composition-id"),compositionAncestors:H?[H]:[],parentCompositionId:H,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:Q,timelineLabel:W.getAttribute("data-timeline-label"),timelineGroup:W.getAttribute("data-timeline-group"),timelinePriority:Ce(W.getAttribute("data-timeline-priority"))}),Se.add(W.id))}}cl(j);for(let O of l){if(O===a)continue;let D=O.getAttribute("data-composition-id");if(!D||!ei(D))continue;let W=i.resolveStartForElement(O,0),Q=ti(O);if((Q==null||Q<=0)&&Pr(O)!=null){let X=Pr(O);Q=Math.max(0,X-W)}let ae=r(D),q=Q&&Q>0?Q:ae;if(q==null||q<=0)continue;let z=G(W,q);z<=0||ie.push({id:D,label:O.getAttribute("data-label")??D,start:W,duration:z,thumbnailUrl:vt(O.getAttribute("data-thumbnail-url")),avatarName:null})}let V=Math.max(1,se||1,F??0);return{source:"hf-preview",type:"timeline",durationInFrames:S&&L==null?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(V*Math.max(1,t.canonicalFps))),clips:j,scenes:ie,compositionWidth:Ce(a?.getAttribute("data-width"))??1920,compositionHeight:Ce(a?.getAttribute("data-height"))??1080}}var ce=Ia(ds(),1),fs=ce.default,up=ce.default.stringify,cp=ce.default.fromJSON,dp=ce.default.plugin,fp=ce.default.parse,mp=ce.default.list,pp=ce.default.document,hp=ce.default.comment,xp=ce.default.atRule,gp=ce.default.rule,yp=ce.default.decl,bp=ce.default.root,Sp=ce.default.CssSyntaxError,Ap=ce.default.Declaration,Ep=ce.default.Container,wp=ce.default.Processor,Cp=ce.default.Document,Fp=ce.default.Comment,Mp=ce.default.Warning,Np=ce.default.AtRule,_p=ce.default.Result,Tp=ce.default.Input,Lp=ce.default.Rule,vp=ce.default.Root,Rp=ce.default.Node;var _i="data-hf-authored-id",ms="data-hf-inner-root";function Ti(t){return t.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function Li(t){return t.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function Pu(t){return t&&t.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function ps(t){let e=t.trim();return e?Array.from(new Set([e,Pu(e)])).filter(Boolean):[]}function Ou(t){return!!t&&/[\\w-]/.test(t)}function Bu(t,e,n){let i=ps(e).sort((c,a)=>a.length-c.length);if(i.length===0)return t;let r="",o=0,s=null;for(let c=0;c<t.length;c+=1){let a=t[c],l=c>0?t[c-1]:"";if(s){r+=a,a===s&&l!=="\\\\"&&(s=null);continue}if(a===\'"\'||a==="\'"){s=a,r+=a;continue}if(a==="["){o+=1,r+=a;continue}if(a==="]"){o=Math.max(0,o-1),r+=a;continue}if(a==="#"&&o===0){let u=i.find(m=>t.startsWith(m,c+1));if(u){let m=t[c+1+u.length];if(!Ou(m)){r+=n,c+=u.length;continue}}}r+=a}return r}function Hu(t,e){let n=e?.trim();return n?Bu(t,n,`[${_i}="${Li(n)}"]`):t}function Wu(t,e,n,i,r){let o=Hu(t,i),s=Gu(o,e,n),c=s.trim();if(!c||/^(html|body|:root|\\*)$/i.test(c))return t;let a=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*=\\\\s*(["\'])${Ti(n)}\\\\1\\\\s*\\\\]`,"g");if(a.test(c))return c.replace(a,"").trim()===""?`${e}:not(:has([${ms}])), ${e} > [${ms}]`:s.replace(a,e);let l=s.match(/^\\s*/)?.[0]??"",u=s.match(/\\s*$/)?.[0]??"";if(r){let m=i?`[${_i}="${Li(i)}"]`:null;if(m&&c.startsWith(m)){let f=c.slice(m.length);return`${l}${e}${m}${f}${u}`}}return`${l}${e} ${c}${u}`}function Gu(t,e,n){let i=Ti(n),r=String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${i}"|\'${i}\')\\s*\\]`,o=String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`;return t.replace(new RegExp(`${r}(?:${o})+`,"g"),e).replace(new RegExp(`(?:${o})+${r}`,"g"),e)}var Uu=new Set(["keyframes","-webkit-keyframes","font-face"]);function Vu(t){return t?.type==="atrule"}function zu(t){let e=t.parent;for(;e;){if(Vu(e)&&Uu.has(e.name.toLowerCase()))return!0;e=e.parent}return!1}function vi(t,e,n,i,r){let o=e.trim();if(!t||!o)return t;let s=n||`[data-composition-id="${Li(o)}"]`,c=fs.parse(t);return c.walkRules(a=>{zu(a)||(a.selectors=a.selectors.map(l=>Wu(l,s,o,i,r?.compoundAuthoredRoot)))}),c.toResult({map:!1}).css}function hs(t,e,n="[HyperFrames] composition script error:",i,r=e,o){let s=JSON.stringify(e),c=JSON.stringify(r),a=JSON.stringify(n),l=Ti(e),u=JSON.stringify(o?.trim()||null),m=JSON.stringify(i??null),f=JSON.stringify(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${l}"|\'${l}\')\\s*\\]`),g=JSON.stringify(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),A=JSON.stringify(ps(o?.trim()||""));return`(function(){\n var __hfCompId = ${s};\n var __hfTimelineCompId = ${c};\n var __hfErrorLabel = ${a};\n var __hfAuthoredRootId = ${u};\n var __hfAuthoredRootAttr = ${JSON.stringify(_i)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${m} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${f};\n var __hfTimingSelectorPattern = ${g};\n var __hfAuthoredRootIdForms = ${A};\n var __hfAuthoredRootSelector = __hfAuthoredRootId\n ? "[" + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(__hfAuthoredRootId) + \'"]\'\n : "";\n var __hfIsSelectorNameChar = function(char) {\n return !!char && /[\\\\w-]/.test(char);\n };\n var __hfReplaceAuthoredRootIdSelectors = function(selector) {\n if (!__hfAuthoredRootSelector || !__hfAuthoredRootIdForms.length || typeof selector !== "string") {\n return selector;\n }\n var result = "";\n var bracketDepth = 0;\n var quote = null;\n for (var index = 0; index < selector.length; index += 1) {\n var char = selector[index];\n var previousChar = index > 0 ? selector[index - 1] : "";\n if (quote) {\n result += char;\n if (char === quote && previousChar !== "\\\\\\\\") {\n quote = null;\n }\n continue;\n }\n if (char === \'"\' || char === "\'") {\n quote = char;\n result += char;\n continue;\n }\n if (char === "[") {\n bracketDepth += 1;\n result += char;\n continue;\n }\n if (char === "]") {\n bracketDepth = Math.max(0, bracketDepth - 1);\n result += char;\n continue;\n }\n if (char === "#" && bracketDepth === 0) {\n var matchedForm = null;\n for (var formIndex = 0; formIndex < __hfAuthoredRootIdForms.length; formIndex += 1) {\n var form = __hfAuthoredRootIdForms[formIndex];\n if (selector.slice(index + 1, index + 1 + form.length) === form) {\n matchedForm = form;\n break;\n }\n }\n if (matchedForm) {\n var nextChar = selector[index + 1 + matchedForm.length];\n if (!__hfIsSelectorNameChar(nextChar)) {\n result += __hfAuthoredRootSelector;\n index += matchedForm.length;\n continue;\n }\n }\n }\n result += char;\n }\n return result;\n };\n var __hfNormalizeSelector = function(selector) {\n if (!__hfCompId || typeof selector !== "string") return selector;\n var normalized = selector\n .replace(new RegExp(__hfRootSelectorPattern + \'(?:\' + __hfTimingSelectorPattern + \')+\', \'g\'), __hfRootSelector)\n .replace(new RegExp(\'(?:\' + __hfTimingSelectorPattern + \')+\' + __hfRootSelectorPattern, \'g\'), __hfRootSelector);\n if (__hfAuthoredRootSelector) {\n normalized = __hfReplaceAuthoredRootIdSelectors(normalized);\n }\n return normalized;\n };\n var __hfFindRoot = function() {\n if (!__hfRoot && __hfRootSelector) {\n __hfRoot = window.document.querySelector(__hfRootSelector);\n }\n return __hfRoot;\n };\n var __hfContains = function(node) {\n var root = __hfFindRoot();\n return !root || node === root || root.contains(node);\n };\n var __hfQueryAll = function(selector) {\n var root = __hfFindRoot();\n if (!root || typeof selector !== "string") {\n return window.document.querySelectorAll(selector);\n }\n return Array.prototype.filter.call(window.document.querySelectorAll(__hfNormalizeSelector(selector)), function(node) {\n return __hfContains(node);\n });\n };\n var __hfQueryOne = function(selector) {\n var matches = __hfQueryAll(selector);\n return matches[0] || null;\n };\n var __hfGetElementById = function(id) {\n var found = window.document.getElementById(id);\n if (found && __hfContains(found)) return found;\n var root = __hfFindRoot();\n if (!root) return found || null;\n var idValue = id + "";\n if (__hfAuthoredRootId && __hfAuthoredRootId === idValue && root.getAttribute && root.getAttribute(__hfAuthoredRootAttr) === idValue) {\n return root;\n }\n if (root.id === idValue) return root;\n if (typeof root.querySelector !== "function") return null;\n try {\n var authoredRootMatch = root.querySelector(\'[\' + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(idValue) + \'"]\');\n if (authoredRootMatch) return authoredRootMatch;\n } catch {}\n if (typeof CSS !== "undefined" && CSS && typeof CSS.escape === "function") {\n try {\n return root.querySelector("#" + CSS.escape(idValue)) || null;\n } catch {}\n }\n try {\n return root.querySelector(\'[id="\' + __hfEscapeAttr(idValue) + \'"]\') || null;\n } catch {}\n return null;\n };\n var __hfScopedDocument = typeof Proxy === "function"\n ? new Proxy(window.document, {\n get: function(target, prop, receiver) {\n if (prop === "querySelector") return __hfQueryOne;\n if (prop === "querySelectorAll") return __hfQueryAll;\n if (prop === "getElementById") return __hfGetElementById;\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n })\n : window.document;\n var __hfTimelineRegistryProxy = null;\n var __hfGetTimelineRegistry = function() {\n window.__timelines = window.__timelines || {};\n if (!__hfCompId || __hfCompId === __hfTimelineCompId || typeof Proxy !== "function") {\n return window.__timelines;\n }\n if (!__hfTimelineRegistryProxy) {\n __hfTimelineRegistryProxy = new Proxy(window.__timelines, {\n get: function(target, prop, receiver) {\n return Reflect.get(target, prop === __hfCompId ? __hfTimelineCompId : prop, target);\n },\n set: function(target, prop, value, receiver) {\n return Reflect.set(target, prop === __hfCompId ? __hfTimelineCompId : prop, value, target);\n },\n });\n }\n return __hfTimelineRegistryProxy;\n };\n var __hfScopedWindow = typeof Proxy === "function"\n ? new Proxy(window, {\n get: function(target, prop, receiver) {\n if (prop === "__timelines") return __hfGetTimelineRegistry();\n return Reflect.get(target, prop, target);\n },\n set: function(target, prop, value, receiver) {\n if (prop === "__timelines") {\n target.__timelines = value || {};\n __hfTimelineRegistryProxy = null;\n return true;\n }\n return Reflect.set(target, prop, value, target);\n },\n })\n : window;\n var __hfResolveGsapTarget = function(target) {\n if (typeof target !== "string") return target;\n return __hfQueryAll(target);\n };\n var __hfScopeTimeline = function(timeline) {\n if (!timeline || timeline.__hfScopedCompositionRoot === __hfFindRoot()) return timeline;\n ["to", "from", "fromTo", "set"].forEach(function(method) {\n var original = timeline[method];\n if (typeof original !== "function") return;\n timeline[method] = function(target) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(target);\n return original.apply(timeline, args);\n };\n });\n try {\n Object.defineProperty(timeline, "__hfScopedCompositionRoot", {\n value: __hfFindRoot(),\n configurable: true,\n });\n } catch {\n // Best-effort: timelines coming from user code may have a frozen target\n // or a non-extensible defineProperty path. Swallow \\u2014 the scoped root\n // is an enrichment, not a correctness invariant for playback.\n }\n return timeline;\n };\n var __hfBaseGsap = typeof gsap === "undefined" ? window.gsap : gsap;\n var __hfScopedGsap = !__hfBaseGsap || typeof Proxy !== "function"\n ? __hfBaseGsap\n : new Proxy(__hfBaseGsap, {\n get: function(target, prop, receiver) {\n if (prop === "timeline") {\n return function() {\n return __hfScopeTimeline(target.timeline.apply(target, arguments));\n };\n }\n if (prop === "to" || prop === "from" || prop === "fromTo" || prop === "set") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return target[prop].apply(target, args);\n };\n }\n if (prop === "utils" && target.utils && typeof Proxy === "function") {\n return new Proxy(target.utils, {\n get: function(utilsTarget, utilsProp, utilsReceiver) {\n if (utilsProp === "toArray") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return utilsTarget.toArray.apply(utilsTarget, args);\n };\n }\n if (utilsProp === "selector") {\n return function(base) {\n var baseEl = typeof base === "string" ? __hfQueryOne(base) : base;\n var root = baseEl || __hfFindRoot();\n return function(selector) {\n if (!root || typeof selector !== "string") return [];\n return Array.prototype.filter.call(\n window.document.querySelectorAll(__hfNormalizeSelector(selector)),\n function(node) {\n return node === root || (typeof root.contains === "function" && root.contains(node));\n },\n );\n };\n };\n }\n var value = Reflect.get(utilsTarget, utilsProp, utilsTarget);\n return typeof value === "function" ? value.bind(utilsTarget) : value;\n },\n });\n }\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n });\n var __hfBaseHyperframes = window.__hyperframes;\n var __hfScopedHyperframes = !__hfBaseHyperframes\n ? __hfBaseHyperframes\n : Object.assign({}, __hfBaseHyperframes, {\n getVariables: function() {\n var byComp = window.__hfVariablesByComp;\n var scoped = byComp && __hfTimelineCompId ? byComp[__hfTimelineCompId] : null;\n return scoped ? Object.assign({}, scoped) : {};\n },\n });\n var __hfRun = function() {\n try {\n (function(document, gsap, window, __hyperframes) {\n${t.replace(/<\\/(script)/gi,"<\\\\/$1")}\n }).call(window, __hfScopedDocument, __hfScopedGsap, __hfScopedWindow, __hfScopedHyperframes);\n } catch (_err) {\n console.error(__hfErrorLabel, __hfCompId, _err);\n }\n };\n __hfFindRoot();\n __hfRun();\n})();`}function xs(){if(typeof document>"u")return{};let t=Ri(document.documentElement),e=ju();return{...t,...e}}function Ri(t){if(!t)return{};let e=t.getAttribute("data-composition-variables");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}if(!Array.isArray(n))return{};let i={};for(let r of n){if(!r||typeof r!="object")continue;let o=r;typeof o.id!="string"||!("default"in o)||(i[o.id]=o.default)}return i}function ju(){if(typeof window>"u")return{};let t=window.__hfVariables;return!t||typeof t!="object"||Array.isArray(t)?{}:t}var qu=8e3,$u=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/,Ku=/\\burl\\(\\s*(["\']?)([^)"\']+)\\1\\s*\\)/g,Ju=["src","href"];function Yu(t){return!t||t.startsWith("http://")||t.startsWith("https://")||t.startsWith("//")||t.startsWith("data:")||t.startsWith("#")||t.startsWith("/")}function ys(t,e){if(!e)return t;let n=t.trim();if(Yu(n)||!n.startsWith("../")&&n!=="..")return t;try{return new URL(n,e).href}catch{return t}}function bs(t,e){return!e||!t?t:t.replace(Ku,(n,i,r)=>{let o=ys(r||"",e);return o===r?n:`url(${i||""}${o}${i||""})`})}function Xu(t,e){for(let n of Array.from(t.querySelectorAll("[src], [href]")))for(let i of Ju){let r=n.getAttribute(i);if(r==null)continue;let o=ys(r,e);o!==r&&n.setAttribute(i,o)}}function Qu(t,e){for(let n of Array.from(t.querySelectorAll("[style]"))){let i=n.getAttribute("style");if(i==null)continue;let r=bs(i,e);r!==i&&n.setAttribute("style",r)}}function Zu(t,e){for(let n of Array.from(t.querySelectorAll("style"))){let i=n.textContent||"",r=bs(i,e);r!==i&&(n.textContent=r)}}function Ss(t,e){if(e){Xu(t,e),Qu(t,e),Zu(t,e);for(let n of Array.from(t.querySelectorAll("template")))Ss(n.content,e)}}function ec(t,e){return`${t}__hf${e}`}var tc=t=>new Promise(e=>{let n=!1,i=Date.now(),r=null,o=s=>{n||(n=!0,r!=null&&window.clearTimeout(r),e({status:s,elapsedMs:Math.max(0,Date.now()-i)}))};t.addEventListener("load",()=>o("load"),{once:!0}),t.addEventListener("error",()=>o("error"),{once:!0}),r=window.setTimeout(()=>o("timeout"),qu)});function ki(t){for(;t.firstChild;)t.removeChild(t.firstChild);t.textContent=""}var nc=["data-composition-id","data-composition-file","data-start","data-duration","data-end","data-track-index","data-track","data-composition-src","data-hf-authored-duration","data-hf-authored-end"];function ic(t){let e=document.importNode(t,!0),n=e.getAttribute("id")?.trim();for(let o of nc)e.removeAttribute(o);n&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",n)),e.setAttribute("data-hf-inner-root","true");let i=e.getAttribute("data-width"),r=e.getAttribute("data-height");return e.style.width=i?`${i}px`:"100%",e.style.height=r?`${r}px`:"100%",e}function gs(t,e){let n=t.trim();if(!n)return t;try{return $u.test(n)?new URL(n,document.baseURI).toString():e?new URL(n,e).toString():new URL(n,document.baseURI).toString()}catch{return t}}function rc(t){let e=t.getAttribute("data-variable-values");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}return!n||typeof n!="object"||Array.isArray(n)?{}:n}function Fn(t){let e=(t.getAttribute("data-composition-id")||"").trim()||null;return{authoredCompositionId:(t.getAttribute("data-hf-original-composition-id")||e||"").trim()||null,runtimeCompositionId:e}}function oc(t){let e=new Map;for(let n of t){let i=Fn(n).authoredCompositionId||"";i&&e.set(i,(e.get(i)||0)+1)}return e}function As(t){let e=Fn(t).authoredCompositionId;return e?!!document.querySelector(`template#${CSS.escape(e)}-template`):!1}function sc(t){return!!t.querySelector(\'[data-hf-inner-root="true"]\')}function ac(t){return t.hasAttribute("data-composition-src")?!0:As(t)?t.children.length===0||t.hasAttribute("data-hf-original-composition-id")?!0:sc(t):!1}function Ii(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(e=>e.hasAttribute("data-composition-src")?!0:As(e))}function Es(){let t=window.__hfVariablesByComp;if(!t)return;let e=new Set(Ii().map(n=>Fn(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(t))e.has(n)||delete t[n]}function ws(t,e=oc(t)){let n=new Map,i=new Map;for(let r of t){let{authoredCompositionId:o,runtimeCompositionId:s}=Fn(r),c=ac(r);if(!o){i.set(r,{authoredCompositionId:null,runtimeCompositionId:s});continue}let a=(e.get(o)||0)>1,l=s||o;if(c){let u=a?(n.get(o)||0)+1:0;a&&n.set(o,u),l=a?ec(o,u):o,a?r.setAttribute("data-hf-original-composition-id",o):r.removeAttribute("data-hf-original-composition-id"),r.setAttribute("data-composition-id",l),s&&s!==l&&window.__hfVariablesByComp&&delete window.__hfVariablesByComp[s]}i.set(r,{authoredCompositionId:o,runtimeCompositionId:l})}return i}async function Di(t){let e=null;t.authoredCompositionId&&(e=Array.from(t.sourceNode.querySelectorAll("[data-composition-id]")).find(g=>g.getAttribute("data-composition-id")===t.authoredCompositionId)??null);let n=e??t.sourceNode,i=e?.getAttribute("data-composition-id")?.trim()||t.authoredCompositionId||null,r=t.runtimeCompositionId||i||null,o=e?.getAttribute("id")?.trim()||null,s=r?`[data-composition-id="${CSS.escape(r)}"]`:void 0;if(t.headLinks)for(let f of t.headLinks){let g=f.getAttribute("href")||"";g&&(document.head.querySelector(`link[href="${CSS.escape(g)}"]`)||document.head.appendChild(f.cloneNode(!0)))}if(t.headStyles)for(let f of t.headStyles){let g=f.cloneNode(!0);g instanceof HTMLStyleElement&&(i&&(g.textContent=vi(g.textContent||"",i,s,o)),document.head.appendChild(g),t.injectedStyles.push(g))}let c=Array.from(n.querySelectorAll("style"));for(let f of c){let g=f.cloneNode(!0);g instanceof HTMLStyleElement&&(i&&(g.textContent=vi(g.textContent||"",i,s,o)),document.head.appendChild(g),t.injectedStyles.push(g))}let a=[];if(t.headScripts)for(let f of t.headScripts){let g=f.getAttribute("type")?.trim()??"",A=f.getAttribute("src")?.trim()??"";if(A){let y=gs(A,t.compositionUrl);a.push({kind:"external",src:y,type:g})}else{let y=f.textContent?.trim()??"";y&&a.push({kind:"inline",content:y,type:g,scopeCompositionId:i})}}let l=Array.from(n.querySelectorAll("script")),u=[...a];for(let f of l){let g=f.getAttribute("type")?.trim()??"",A=f.getAttribute("src")?.trim()??"";if(A){let y=gs(A,t.compositionUrl);u.push({kind:"external",src:y,type:g})}else{let y=f.textContent?.trim()??"";y&&u.push({kind:"inline",content:y,type:g,scopeCompositionId:i})}f.parentNode?.removeChild(f)}let m=Array.from(n.querySelectorAll("style"));for(let f of m)f.parentNode?.removeChild(f);if(e){let f=e.getAttribute("data-width"),g=e.getAttribute("data-height"),A=t.parseDimensionPx(f),y=t.parseDimensionPx(g);f&&t.host.setAttribute("data-width",f),g&&t.host.setAttribute("data-height",g),A&&t.host instanceof HTMLElement&&(t.host.style.width=A),y&&t.host instanceof HTMLElement&&(t.host.style.height=y),e.hasAttribute("data-timeline-locked")&&t.host.setAttribute("data-timeline-locked",""),t.host.appendChild(ic(e))}else t.hasTemplate?t.host.appendChild(document.importNode(n,!0)):t.host.innerHTML=t.fallbackBodyInnerHtml;if(r){let f={...t.declaredVariableDefaults??{},...rc(t.host)};Object.keys(f).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[r]=f):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[r]}for(let f of u){let g=document.createElement("script");if(f.type&&(g.type=f.type),g.async=!1,f.kind==="external"?g.src=f.src:f.type.toLowerCase()==="module"?g.textContent=f.content:f.scopeCompositionId?g.textContent=hs(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,r||f.scopeCompositionId,o):g.textContent=`(function(){${f.content}})();`,document.body.appendChild(g),t.injectedScripts.push(g),f.kind==="external"){let A=await tc(g);A.status!=="load"&&t.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:t.authoredCompositionId,runtimeCompositionId:t.runtimeCompositionId,hostCompositionSrc:t.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:A.status,elapsedMs:A.elapsedMs}})}}}async function Cs(t){let e=Ii();if(Es(),e.length===0)return;let n=ws(e),i=e.filter(r=>{if(r.hasAttribute("data-composition-src")||r.children.length>0)return!1;let o=n.get(r)?.authoredCompositionId;return o?!!document.querySelector(`template#${CSS.escape(o)}-template`):!1});if(i.length!==0)for(let r of i){let o=n.get(r),s=o?.authoredCompositionId;if(!s)continue;let c=document.querySelector(`template#${CSS.escape(s)}-template`);ki(r),await Di({host:r,authoredCompositionId:s,runtimeCompositionId:o?.runtimeCompositionId||s,hostCompositionSrc:`template#${s}-template`,sourceNode:c.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic})}}async function Fs(t){let e=Ii();if(Es(),e.length===0)return;let n=ws(e),i=e.filter(r=>r.hasAttribute("data-composition-src"));i.length!==0&&await Promise.all(i.map(async r=>{let o=r.getAttribute("data-composition-src");if(!o)return;let s=n.get(r),c=s?.authoredCompositionId||null,a=s?.runtimeCompositionId||c||null,l=null;try{l=new URL(o,document.baseURI)}catch{l=null}ki(r);try{let u=c!=null?document.querySelector(`template#${CSS.escape(c)}-template`):null;if(u){await Di({host:r,authoredCompositionId:c,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:u.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:l,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic});return}let m=await fetch(o);if(!m.ok)throw new Error(`HTTP ${m.status}`);let f=await m.text(),A=new DOMParser().parseFromString(f,"text/html");Ss(A,l);let y=(c?A.querySelector(`template#${CSS.escape(c)}-template`):null)??A.querySelector("template"),x=y?y.content:A.body,w=y?void 0:Array.from(A.head.querySelectorAll("style")),N=y?void 0:Array.from(A.head.querySelectorAll("script")),L=y?void 0:Array.from(A.head.querySelectorAll(\'link[rel="stylesheet"], link[rel="preconnect"]\'));await Di({host:r,authoredCompositionId:c,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:x,hasTemplate:!!y,fallbackBodyInnerHtml:A.body.innerHTML,compositionUrl:l,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,headStyles:w,headScripts:N,headLinks:L,declaredVariableDefaults:Ri(A.documentElement),onDiagnostic:t.onDiagnostic})}catch(u){t.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:c,runtimeCompositionId:a,hostCompositionSrc:o,errorMessage:u instanceof Error?u.message:"unknown_error"}}),ki(r)}}))}function lc(t){return t instanceof HTMLElement?t.dataset.captionWrapper!=="true"?t:t.querySelector(":scope > span")??null:null}function uc(){let t=[],e=document.querySelectorAll(".caption-group");for(let n of e)for(let i of n.children){if(!(i instanceof HTMLElement))continue;let r=i.dataset.captionWrapper==="true"?i.querySelector(":scope > span"):i.tagName==="SPAN"?i:null;r&&t.push(r)}return t}function cc(t){let e=t.parentElement;if(e?.dataset.captionWrapper==="true")return e;let n=document.createElement("span");return n.style.display="inline-block",n.dataset.captionWrapper="true",t.parentNode?.insertBefore(n,t),n.appendChild(t),n}function Pi(){let t=window.gsap;t&&document.querySelectorAll(".caption-group").length!==0&&fetch("caption-overrides.json").then(e=>e.ok?e.json():null).then(e=>{if(!e||!Array.isArray(e)||e.length===0)return;let n=uc();for(let i of e){let r=null;if(i.wordId&&(r=lc(document.getElementById(i.wordId))),!r&&i.wordIndex!==void 0&&(r=n[i.wordIndex]??null),!r)continue;let o={},s={};if(i.x!==void 0&&(o.x=i.x),i.y!==void 0&&(o.y=i.y),i.scale!==void 0&&(o.scale=i.scale),i.rotation!==void 0&&(o.rotation=i.rotation),i.opacity!==void 0&&(s.opacity=i.opacity),i.fontSize!==void 0&&(s.fontSize=`${i.fontSize}px`),i.fontWeight!==void 0&&(s.fontWeight=i.fontWeight),i.fontFamily!==void 0&&(s.fontFamily=i.fontFamily),i.activeColor||i.dimColor){let a=t.getTweensOf(r).filter(u=>u.vars.color!==void 0).sort((u,m)=>u.startTime()-m.startTime()),l=a.length>0?String(a[0].vars.color):"";for(let u of a)String(u.vars.color)===l?i.dimColor&&(u.vars.color=i.dimColor):i.activeColor&&(u.vars.color=i.activeColor);i.dimColor&&t.set(r,{color:i.dimColor})}if(Object.keys(s).length>0&&t.set(r,s),Object.keys(o).length>0){let c=cc(r);t.set(c,o)}}}).catch(()=>{})}var Xt="data-color-grading",dc="rec709",Je={exposure:0,contrast:0,highlights:0,shadows:0,whites:0,blacks:0,temperature:0,tint:0,saturation:0},Ms=["exposure","contrast","highlights","shadows","whites","blacks","temperature","tint","saturation"],fc=[{id:"neutral",label:"Neutral",adjust:{...Je}},{id:"warm-clean",label:"Warm Clean",adjust:{...Je,exposure:.05,contrast:.08,highlights:-.08,shadows:.08,temperature:.16,saturation:.06}},{id:"cool-clean",label:"Cool Clean",adjust:{...Je,contrast:.06,highlights:-.06,shadows:.06,temperature:-.12,tint:.04,saturation:.04}},{id:"soft-boost",label:"Soft Boost",adjust:{...Je,exposure:.06,contrast:-.04,highlights:-.14,shadows:.16,saturation:.1}},{id:"bright-pop",label:"Bright Pop",adjust:{...Je,exposure:.12,contrast:.12,whites:.08,blacks:-.04,saturation:.14}},{id:"deep-contrast",label:"Deep Contrast",adjust:{...Je,exposure:-.03,contrast:.2,highlights:-.08,shadows:-.08,blacks:-.12,saturation:.06}}],mc=new Map(fc.map(t=>[t.id,t])),pc=/^\\$(?:\\{([A-Za-z0-9_.:-]+)\\}|([A-Za-z0-9_.:-]+))$/,hc={exposure:{min:-2,max:2},contrast:{min:-1,max:1},highlights:{min:-1,max:1},shadows:{min:-1,max:1},whites:{min:-1,max:1},blacks:{min:-1,max:1},temperature:{min:-1,max:1},tint:{min:-1,max:1},saturation:{min:-1,max:1}};function Yt(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function xc(t,e,n){return Number.isFinite(t)?Math.min(n,Math.max(e,t)):0}function Ns(t,e){let n=typeof t=="number"?t:Number(t);return Number.isFinite(n)?Math.min(1,Math.max(0,n)):e}function gc(t,e){let n=typeof t=="number"?t:Number(t);if(!Number.isFinite(n))return 0;let i=hc[e];return xc(n,i.min,i.max)}function yc(t){if(t==null)return null;let e=String(t).trim();return e||null}function bc(t){if(t==null)return null;if(typeof t=="string"){let n=t.trim();return n?{src:n,intensity:1}:null}if(!Yt(t))return null;let e=t.src;return typeof e!="string"||e.trim()===""?null:{src:e.trim(),intensity:Ns(t.intensity,1)}}function Sc(t){if(typeof t=="string"){let e=t.trim();if(!e)return null;if(e.startsWith("{"))try{let n=JSON.parse(e);return Yt(n)?n:null}catch{return null}return{preset:e,intensity:1}}return Yt(t)?t:null}function Ac(t,e){let n=t.trim().match(pc);if(!n)return t;let i=n[1]??n[2]??"";return i&&Object.hasOwn(e,i)?e[i]:t}function Oi(t,e){if(typeof t=="string"){let i=Ac(t,e);if(i!==t)return i;let r=t.trim();if(!r.startsWith("{"))return t;try{return Oi(JSON.parse(r),e)}catch{return t}}if(!Yt(t))return t;let n={};for(let[i,r]of Object.entries(t))n[i]=Oi(r,e);return n}function Ec(t){return t?mc.get(t)??null:null}function Bi(t){let e=Sc(t);if(!e||e.enabled===!1)return null;let n=yc(e.preset),r=Ec(n)?.adjust??Je,o=Yt(e.adjust)?e.adjust:{},s=Ms.reduce((c,a)=>(c[a]=gc(o[a]??r[a],a),c),{...Je});return{enabled:!0,preset:n,intensity:Ns(e.intensity,1),adjust:s,lut:bc(e.lut),colorSpace:typeof e.colorSpace=="string"&&e.colorSpace.trim()?e.colorSpace.trim():dc}}function _s(t,e){return Bi(Oi(t,e))}function Qt(t){return!t?.enabled||t.intensity===0?!1:t.lut&&t.lut.intensity!==0?!0:Ms.some(e=>Math.abs(t.adjust[e])>1e-4)}var we=class extends Error{constructor(n,i=null){super(i==null?n:`${n} at line ${i}`);ge(this,"lineNumber");this.name="CubeLutParseError",this.lineNumber=i}},wc=[0,0,0],Cc=[1,1,1],Fc=64;function Mc(t){let e=!1;for(let n=0;n<t.length;n++){let i=t[n];if(i===\'"\'&&(e=!e),i==="#"&&!e)return t.slice(0,n)}return t}function ht(t,e){let n=Number(t);if(!Number.isFinite(n))throw new we(`Invalid number "${t}"`,e);return n}function Ts(t,e,n){if(t.length!==3)throw new we(`${e} expects three numbers`,n);return[ht(t[0],n),ht(t[1],n),ht(t[2],n)]}function Ls(t,e,n){if(!t)throw new we(`${e} expects a size`,n);let i=Number(t);if(!Number.isInteger(i)||i<2)throw new we(`${e} must be an integer greater than 1`,n);return i}function Nc(t,e){if(e[0]<=t[0]||e[1]<=t[1]||e[2]<=t[2])throw new we("DOMAIN_MAX values must be greater than DOMAIN_MIN values")}function _c(t){let e=/^TITLE\\s+"([^"]*)"\\s*$/i.exec(t);if(e)return e[1]??null;let n=/^TITLE\\s+(.+)\\s*$/i.exec(t);return n&&(n[1]??"").trim()||null}function Tc(t){return/^[+-]?(?:\\d|\\.\\d)/.test(t)}function vs(t,e={}){let n=e.maxSize??Fc,i=null,r=wc,o=Cc,s=null,c=null,a=[],l=t.replace(/^\\uFEFF/,"").split(/\\r?\\n/);for(let m=0;m<l.length;m++){let f=m+1,g=Mc(l[m]??"").trim();if(!g)continue;let A=g.split(/\\s+/),y=(A[0]??"").toUpperCase(),x=A.slice(1);if(y==="TITLE"){i=_c(g);continue}if(y==="DOMAIN_MIN"){r=Ts(x,y,f);continue}if(y==="DOMAIN_MAX"){o=Ts(x,y,f);continue}if(y==="LUT_1D_SIZE"){s=Ls(x[0],y,f);continue}if(y==="LUT_3D_SIZE"){if(c=Ls(x[0],y,f),c>n)throw new we(`LUT_3D_SIZE ${c} exceeds max ${n}`,f);continue}if(!Tc(y)){if(y.startsWith("LUT_"))throw new we(`Unsupported cube keyword ${y}`,f);continue}if(!c)throw s?new we("1D cube LUTs are not supported yet",f):new we("LUT data appears before LUT_3D_SIZE",f);if(A.length!==3)throw new we("LUT data rows must contain three numbers",f);a.push(ht(A[0],f),ht(A[1],f),ht(A[2],f))}if(s&&c)throw new we("Mixed 1D and 3D cube LUTs are not supported yet");if(!c)throw s?new we("1D cube LUTs are not supported yet"):new we("Missing LUT_3D_SIZE");Nc(r,o);let u=c*c*c;if(a.length!==u*3)throw new we(`Expected ${u} LUT rows for size ${c}, found ${a.length/3}`);return{title:i,size:c,domainMin:r,domainMax:o,data:new Float32Array(a)}}function Lc(t){return Number.isFinite(t)?Math.min(1,Math.max(0,t)):0}function Hi(t){return Math.round(Lc(t)*255)}function Rs(t){let e=t.size,n=e*e,i=e,r=new Uint8Array(n*i*4);for(let o=0;o<e;o++)for(let s=0;s<e;s++)for(let c=0;c<e;c++){let a=((o*e+s)*e+c)*3,l=(s*n+o*e+c)*4;r[l]=Hi(t.data[a]??0),r[l+1]=Hi(t.data[a+1]??0),r[l+2]=Hi(t.data[a+2]??0),r[l+3]=255}return{width:n,height:i,data:r}}var Mn=new Map,vc="data-hf-color-grading-canvas",Os="data-hf-color-grading-source-hidden",Rc="__hf_color_grading_canvas__",kc=64,Zt={enabled:!1,position:.5,softness:0,lineWidth:2};function Dc(t){let e=window,i=t.closest("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()??"",r=i?e.__hfVariablesByComp?.[i]:void 0;if(r)return r;let o=e.__hyperframes?.getVariables?.();return o&&typeof o=="object"?o:e.__hfVariables??{}}function Wi(t){let e=t.getAttribute(Xt);return e==null?null:_s(e,Dc(t))}var Ic=["attribute vec2 a_pos;","varying vec2 v_uv;","void main(){"," v_uv = a_pos * 0.5 + 0.5;"," gl_Position = vec4(a_pos, 0.0, 1.0);","}"].join(`\n`),Pc=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_source;","uniform sampler2D u_lut;","uniform vec2 u_resolution;","uniform vec2 u_uvScale;","uniform vec2 u_uvOffset;","uniform float u_lutEnabled;","uniform float u_lutSize;","uniform vec2 u_lutTextureSize;","uniform vec3 u_lutDomainMin;","uniform vec3 u_lutDomainMax;","uniform float u_lutIntensity;","uniform float u_exposure;","uniform float u_contrast;","uniform float u_highlights;","uniform float u_shadows;","uniform float u_whites;","uniform float u_blacks;","uniform float u_temperature;","uniform float u_tint;","uniform float u_saturation;","uniform float u_intensity;","uniform float u_compareEnabled;","uniform float u_comparePosition;","uniform float u_compareSoftness;","uniform float u_compareLineWidth;","float lumaOf(vec3 c){ return dot(c, vec3(0.2126, 0.7152, 0.0722)); }","vec3 sampleLut(float r, float g, float b){"," float size = max(u_lutSize, 2.0);"," float x = (r + b * size + 0.5) / max(u_lutTextureSize.x, 1.0);"," float y = (g + 0.5) / max(u_lutTextureSize.y, 1.0);"," return texture2D(u_lut, vec2(x, y)).rgb;","}","vec3 applyLut(vec3 color){"," if (u_lutEnabled < 0.5) return color;"," float size = max(u_lutSize, 2.0);"," vec3 span = max(u_lutDomainMax - u_lutDomainMin, vec3(0.00001));"," vec3 scaled = clamp((color - u_lutDomainMin) / span, 0.0, 1.0) * (size - 1.0);"," vec3 lo = floor(scaled);"," vec3 hi = min(lo + 1.0, vec3(size - 1.0));"," vec3 f = scaled - lo;"," vec3 c000 = sampleLut(lo.r, lo.g, lo.b);"," vec3 c100 = sampleLut(hi.r, lo.g, lo.b);"," vec3 c010 = sampleLut(lo.r, hi.g, lo.b);"," vec3 c110 = sampleLut(hi.r, hi.g, lo.b);"," vec3 c001 = sampleLut(lo.r, lo.g, hi.b);"," vec3 c101 = sampleLut(hi.r, lo.g, hi.b);"," vec3 c011 = sampleLut(lo.r, hi.g, hi.b);"," vec3 c111 = sampleLut(hi.r, hi.g, hi.b);"," vec3 c00 = mix(c000, c100, f.r);"," vec3 c10 = mix(c010, c110, f.r);"," vec3 c01 = mix(c001, c101, f.r);"," vec3 c11 = mix(c011, c111, f.r);"," vec3 c0 = mix(c00, c10, f.g);"," vec3 c1 = mix(c01, c11, f.g);"," vec3 lutColor = mix(c0, c1, f.b);"," return mix(color, lutColor, clamp(u_lutIntensity, 0.0, 1.0));","}","void main(){"," vec2 uv = (v_uv - u_uvOffset) / u_uvScale;"," if (uv.x < 0.0 || uv.y < 0.0 || uv.x > 1.0 || uv.y > 1.0) {"," gl_FragColor = vec4(0.0);"," return;"," }"," vec4 sampleColor = texture2D(u_source, uv);"," vec3 original = sampleColor.rgb;"," vec3 color = original * pow(2.0, u_exposure);"," float y = lumaOf(color);"," float shadowMask = 1.0 - smoothstep(0.0, 0.65, y);"," float highlightMask = smoothstep(0.35, 1.0, y);"," color += u_shadows * 0.35 * shadowMask;"," color += u_highlights * 0.35 * highlightMask;"," color += u_blacks * 0.25 * (1.0 - smoothstep(0.0, 0.35, y));"," color += u_whites * 0.25 * smoothstep(0.65, 1.0, y);"," color.r += u_temperature * 0.08 + u_tint * 0.04;"," color.b -= u_temperature * 0.08 - u_tint * 0.04;"," color.g -= u_tint * 0.08;"," color = (color - 0.5) * max(0.0, 1.0 + u_contrast) + 0.5;"," float satLuma = lumaOf(color);"," color = mix(vec3(satLuma), color, max(0.0, 1.0 + u_saturation));"," color = clamp(color, 0.0, 1.0);"," color = clamp(applyLut(color), 0.0, 1.0);"," vec3 graded = mix(original, color, u_intensity);"," if (u_compareEnabled > 0.5) {"," float pos = clamp(u_comparePosition, 0.0, 1.0);"," float softness = max(u_compareSoftness, 0.00001);"," float afterMask = smoothstep(pos - softness, pos + softness, v_uv.x);"," vec3 splitColor = mix(original, graded, afterMask);"," float lineMask = 0.0;"," if (u_compareLineWidth > 0.0) {"," float lineWidth = max(u_compareLineWidth / max(u_resolution.x, 1.0), 0.00001);"," lineMask = 1.0 - smoothstep(lineWidth, lineWidth * 1.8, abs(v_uv.x - pos));"," }"," gl_FragColor = vec4(mix(splitColor, vec3(1.0), lineMask * 0.82), sampleColor.a);"," return;"," }"," gl_FragColor = vec4(graded, sampleColor.a);","}"].join(`\n`);function st(t){return t instanceof HTMLVideoElement||t instanceof HTMLImageElement}function ks(t,e,n){let i=t.createShader(n);return i?(t.shaderSource(i,e),t.compileShader(i),t.getShaderParameter(i,t.COMPILE_STATUS)?i:(v("runtime.colorGrading.compileShader",t.getShaderInfoLog(i)),t.deleteShader(i),null)):null}function Oc(t){let e=ks(t,Ic,t.VERTEX_SHADER),n=ks(t,Pc,t.FRAGMENT_SHADER);if(!e||!n)return e&&t.deleteShader(e),n&&t.deleteShader(n),null;let i=t.createProgram();return i?(t.attachShader(i,e),t.attachShader(i,n),t.linkProgram(i),t.deleteShader(e),t.deleteShader(n),t.getProgramParameter(i,t.LINK_STATUS)?i:(v("runtime.colorGrading.linkProgram",t.getProgramInfoLog(i)),t.deleteProgram(i),null)):null}function Ds(t,e=t.LINEAR){let n=t.createTexture();return n?(t.bindTexture(t.TEXTURE_2D,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,e),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,null),n):null}function Bc(t){let e=t.getContext("webgl",{alpha:!0,premultipliedAlpha:!1,preserveDrawingBuffer:!0});if(!e)return null;let n=Oc(e),i=Ds(e),r=Ds(e,e.NEAREST);if(!n||!i||!r)return n&&e.deleteProgram(n),i&&e.deleteTexture(i),r&&e.deleteTexture(r),null;let o=e.createBuffer();return o?(e.bindBuffer(e.ARRAY_BUFFER,o),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),e.STATIC_DRAW),{gl:e,program:{program:n,texture:i,lutTexture:r,position:e.getAttribLocation(n,"a_pos"),source:e.getUniformLocation(n,"u_source"),lut:e.getUniformLocation(n,"u_lut"),resolution:e.getUniformLocation(n,"u_resolution"),uvScale:e.getUniformLocation(n,"u_uvScale"),uvOffset:e.getUniformLocation(n,"u_uvOffset"),lutEnabled:e.getUniformLocation(n,"u_lutEnabled"),lutSize:e.getUniformLocation(n,"u_lutSize"),lutTextureSize:e.getUniformLocation(n,"u_lutTextureSize"),lutDomainMin:e.getUniformLocation(n,"u_lutDomainMin"),lutDomainMax:e.getUniformLocation(n,"u_lutDomainMax"),lutIntensity:e.getUniformLocation(n,"u_lutIntensity"),exposure:e.getUniformLocation(n,"u_exposure"),contrast:e.getUniformLocation(n,"u_contrast"),highlights:e.getUniformLocation(n,"u_highlights"),shadows:e.getUniformLocation(n,"u_shadows"),whites:e.getUniformLocation(n,"u_whites"),blacks:e.getUniformLocation(n,"u_blacks"),temperature:e.getUniformLocation(n,"u_temperature"),tint:e.getUniformLocation(n,"u_tint"),saturation:e.getUniformLocation(n,"u_saturation"),intensity:e.getUniformLocation(n,"u_intensity"),compareEnabled:e.getUniformLocation(n,"u_compareEnabled"),comparePosition:e.getUniformLocation(n,"u_comparePosition"),compareSoftness:e.getUniformLocation(n,"u_compareSoftness"),compareLineWidth:e.getUniformLocation(n,"u_compareLineWidth")}}):(e.deleteProgram(n),e.deleteTexture(i),e.deleteTexture(r),null)}function Hc(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Wc(t){if(!Hc(t))return{...Zt};let e=(n,i,r,o)=>{let s=typeof n=="number"?n:Number(n);return Math.min(o,Math.max(r,Number.isFinite(s)?s:i))};return{enabled:t.enabled===!0,position:e(t.position,Zt.position,0,1),softness:e(t.softness,Zt.softness,0,.25),lineWidth:e(t.lineWidth,Zt.lineWidth,0,12)}}function Bs(t){try{let e=new URL(t,document.baseURI);return e.protocol==="data:"?{href:e.href}:e.protocol!=="http:"&&e.protocol!=="https:"?{error:"LUT must be project-local or a data URL"}:e.origin!==window.location.origin?{error:"Remote LUT URLs are not supported"}:{href:e.href}}catch{return{error:"Invalid LUT URL"}}}function Ui(t){return t instanceof Error?t.message:"LUT failed to load"}function Gc(t){let e=Bs(t);if("error"in e)return{state:"error",message:e.error};let n=Mn.get(e.href);if(n)return n;let i=fetch(e.href,{credentials:"same-origin"}).then(o=>{if(!o.ok)throw new Error(`Failed to load LUT (${o.status})`);return o.text()}).then(o=>vs(o,{maxSize:kc})),r={state:"pending",promise:i};return Mn.set(e.href,r),i.then(o=>Mn.set(e.href,{state:"ready",lut:o}),o=>Mn.set(e.href,{state:"error",message:Ui(o)})),r}function Is(t,e,n){if(t.lut?.src===e)return t.lut;let i=Rs(n),{gl:r,program:o}=t;try{return r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,o.lutTexture),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,i.width,i.height,0,r.RGBA,r.UNSIGNED_BYTE,i.data),t.lut={src:e,title:n.title,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:i.width,textureHeight:i.height},t.lutError=null,t.lutLoadingSrc=null,t.lut}catch(s){return t.lut=null,t.lutError=Ui(s),t.lutLoadingSrc=null,v("runtime.colorGrading.uploadLut",s),null}}function Uc(t){let e=t.grading.lut?.src.trim()??"",n=t.grading.lut?.intensity??1;if(!e||n<=0)return t.lut=null,t.lutLoadingSrc=null,t.lutError=null,null;let i=Bs(e);if("error"in i)return t.lut=null,t.lutLoadingSrc=null,t.lutError=i.error,null;if(t.lut?.src===i.href)return t.lut;t.lut=null;let r=Gc(e);return r.state==="ready"?Is(t,i.href,r.lut):r.state==="error"?(t.lutError=r.message,t.lutLoadingSrc=null,null):(t.lutLoadingSrc!==i.href&&(t.lutLoadingSrc=i.href,t.lutError=null,r.promise.then(o=>{t.destroyed||t.grading.lut?.src.trim()!==e||(Is(t,i.href,o),Ue(t))},o=>{t.destroyed||t.grading.lut?.src.trim()!==e||(t.lut=null,t.lutError=Ui(o),t.lutLoadingSrc=null,Ue(t))})),null)}function Gi(t){if(!t)return null;if(typeof t=="string"){let e=t.trim();if(!e)return null;let n=document.getElementById(e.replace(/^#/,""));if(n&&st(n))return n;try{let i=document.querySelector(e);return i&&st(i)?i:null}catch{return null}}if(t.hfId){let e=document.querySelector(`[data-hf-id="${CSS.escape(t.hfId)}"]`);if(e&&st(e))return e}if(t.id){let e=document.getElementById(t.id);if(e&&st(e))return e}if(!t.selector)return null;try{let e=Array.from(document.querySelectorAll(t.selector)),n=Math.max(0,Math.floor(Number(t.selectorIndex??0)||0)),i=e[n]??null;return i&&st(i)?i:null}catch{return null}}function Vc(t){return t instanceof HTMLVideoElement?t.videoWidth>0&&t.videoHeight>0?{width:t.videoWidth,height:t.videoHeight}:null:t instanceof HTMLImageElement&&t.naturalWidth>0&&t.naturalHeight>0?{width:t.naturalWidth,height:t.naturalHeight}:null}function Hs(t){return t instanceof HTMLVideoElement?t.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&t.videoWidth>0&&t.videoHeight>0:t instanceof HTMLImageElement?t.complete&&t.naturalWidth>0&&t.naturalHeight>0:!1}function zc(t){if(!t.id)return null;let e=document.getElementById(`__render_frame_${t.id}__`);return e instanceof HTMLImageElement&&Hs(e)?e:null}function jc(t){if(t instanceof HTMLVideoElement){let e=zc(t);if(e)return e}return Hs(t)?t:null}function Ps(t,e){let n=t.toLowerCase();if(n==="center")return .5;if(e==="x"){if(n==="left")return 0;if(n==="right")return 1}else{if(n==="top")return 0;if(n==="bottom")return 1}if(n.endsWith("%")){let i=Number.parseFloat(n);return Number.isFinite(i)?i/100:null}return null}function qc(t){let e=t.trim().split(/\\s+/).filter(Boolean),n=.5,i=.5;for(let r=0;r<e.length;r++){let o=e[r]??"",s=Ps(o,"x"),c=Ps(o,"y");if(s!==null&&(o==="left"||o==="right"||o.endsWith("%")&&r===0)){n=s;continue}if(c!==null&&(o==="top"||o==="bottom"||o.endsWith("%")&&r>0)){i=c;continue}}return{x:n,y:i}}function $c(t,e,n,i,r,o){if(t<=0||e<=0||n<=0||i<=0)return{scaleX:1,scaleY:1,offsetX:0,offsetY:0};let s=r||"fill",c=t,a=e;if(s==="contain"||s==="cover"||s==="scale-down"){let f=s==="cover"?Math.max(t/n,e/i):Math.min(t/n,e/i);c=n*f,a=i*f,s==="scale-down"&&c>n&&a>i&&(c=n,a=i)}else s==="none"&&(c=n,a=i);let l=qc(o||"center"),u=(t-c)*l.x/t,m=(e-a)*l.y/e;return{scaleX:c/t,scaleY:a/e,offsetX:u,offsetY:m}}function Kc(t,e){window.getComputedStyle(e).position==="static"&&(t.touchedParent||(t.touchedParent=e,t.parentInlinePosition=e.style.position||null),e.style.position="relative")}function Jc(t,e){let{element:n,canvas:i}=t,r=n.parentElement;r&&Kc(t,r);let o=window.getComputedStyle(e);vr(i.style,o),i.style.pointerEvents="none",i.style.position="absolute",i.style.inset="auto",i.style.left=`${n.offsetLeft}px`,i.style.top=`${n.offsetTop}px`,i.style.right="auto",i.style.bottom="auto",i.style.width=`${n.offsetWidth}px`,i.style.height=`${n.offsetHeight}px`,i.style.display="block",i.style.opacity=t.sourceOpacityForCanvas,i.style.visibility=t.sourceVisibleForCanvas?"visible":"hidden";let s=n.getBoundingClientRect(),c=Math.max(0,Math.round(n.offsetWidth||s.width)),a=Math.max(0,Math.round(n.offsetHeight||s.height));return c<=0||a<=0?(i.style.display="none",null):(i.width!==c&&(i.width=c),i.height!==a&&(i.height=a),{width:c,height:a})}function Yc(t,e,n,i,r,o,s){t.uniform1i(e.source,0),t.uniform1i(e.lut,1),t.uniform2f(e.resolution,o.width,o.height),t.uniform2f(e.uvScale,s.scaleX,s.scaleY),t.uniform2f(e.uvOffset,s.offsetX,s.offsetY),t.uniform1f(e.lutEnabled,i?1:0),t.uniform1f(e.lutSize,i?.size??2),t.uniform2f(e.lutTextureSize,i?.textureWidth??1,i?.textureHeight??1),t.uniform3f(e.lutDomainMin,i?.domainMin[0]??0,i?.domainMin[1]??0,i?.domainMin[2]??0),t.uniform3f(e.lutDomainMax,i?.domainMax[0]??1,i?.domainMax[1]??1,i?.domainMax[2]??1),t.uniform1f(e.lutIntensity,n.lut?.intensity??0),t.uniform1f(e.exposure,n.adjust.exposure),t.uniform1f(e.contrast,n.adjust.contrast),t.uniform1f(e.highlights,n.adjust.highlights),t.uniform1f(e.shadows,n.adjust.shadows),t.uniform1f(e.whites,n.adjust.whites),t.uniform1f(e.blacks,n.adjust.blacks),t.uniform1f(e.temperature,n.adjust.temperature),t.uniform1f(e.tint,n.adjust.tint),t.uniform1f(e.saturation,n.adjust.saturation),t.uniform1f(e.intensity,n.intensity),t.uniform1f(e.compareEnabled,r.enabled?1:0),t.uniform1f(e.comparePosition,r.position),t.uniform1f(e.compareSoftness,r.softness),t.uniform1f(e.compareLineWidth,r.lineWidth)}function Xc(t){t.sourceHidden||(t.sourceInlineOpacity=t.element.style.getPropertyValue("opacity")||null,t.sourceInlineOpacityPriority=t.element.style.getPropertyPriority("opacity")),t.element.setAttribute(Os,"true"),t.element.style.setProperty("opacity","0","important"),t.sourceHidden=!0}function Ue(t){if(t.destroyed)return!1;let e=jc(t.element);if(!e)return t.hasDrawn||(t.canvas.style.display="none"),!1;let n=Vc(e);if(!n)return!1;let i=e instanceof HTMLElement?e:t.element,r=t.element.style.getPropertyValue("opacity"),o=t.element.style.getPropertyPriority("opacity"),s=t.sourceHidden&&r==="0"&&o==="important",c=t.element.style.getPropertyValue("visibility");if(!s){let g=window.getComputedStyle(t.element);t.sourceOpacityForCanvas=g.opacity||"1",t.sourceVisibleForCanvas=c!=="hidden"&&g.visibility!=="hidden"}let a=Jc(t,i);if(!a)return!1;let l=window.getComputedStyle(i),u=$c(a.width,a.height,n.width,n.height,l.objectFit,l.objectPosition),{gl:m,program:f}=t;try{let g=Uc(t);return m.viewport(0,0,a.width,a.height),m.useProgram(f.program),m.activeTexture(m.TEXTURE0),m.bindTexture(m.TEXTURE_2D,f.texture),m.pixelStorei(m.UNPACK_FLIP_Y_WEBGL,!0),m.texImage2D(m.TEXTURE_2D,0,m.RGBA,m.RGBA,m.UNSIGNED_BYTE,e),m.activeTexture(m.TEXTURE1),m.bindTexture(m.TEXTURE_2D,f.lutTexture),Yc(m,f,t.grading,g,t.compare,a,u),m.enableVertexAttribArray(f.position),m.vertexAttribPointer(f.position,2,m.FLOAT,!1,0,0),m.drawArrays(m.TRIANGLE_STRIP,0,4),Xc(t),t.hasDrawn=!0,!0}catch(g){return v("runtime.colorGrading.drawEntry",g),!1}}function Ye(t,e,n,i){e.addEventListener(n,i),t.cleanup.push(()=>e.removeEventListener(n,i))}function Qc(t){t.animationFrame!==null&&(window.cancelAnimationFrame(t.animationFrame),t.animationFrame=null),t.videoFrameHandle!==null&&t.element instanceof HTMLVideoElement&&(t.element.cancelVideoFrameCallback?.(t.videoFrameHandle),t.videoFrameHandle=null)}function en(t){if(t.destroyed||!(t.element instanceof HTMLVideoElement)||t.videoFrameHandle!==null||t.animationFrame!==null)return;let e=t.element,n=e;if(typeof n.requestVideoFrameCallback=="function"){t.videoFrameHandle=n.requestVideoFrameCallback(()=>{t.videoFrameHandle=null,Ue(t),!t.destroyed&&!e.paused&&!e.ended&&en(t)});return}t.animationFrame=window.requestAnimationFrame(()=>{t.animationFrame=null,Ue(t),!t.destroyed&&!e.paused&&!e.ended&&en(t)})}function Zc(t){let e=()=>{Ue(t)};Ye(t,t.element,"load",e),Ye(t,t.element,"loadedmetadata",e),Ye(t,t.element,"loadeddata",e),Ye(t,t.element,"seeked",e),Ye(t,t.element,"timeupdate",e),Ye(t,window,"resize",e),t.element instanceof HTMLVideoElement&&(Ye(t,t.element,"play",()=>en(t)),Ye(t,t.element,"pause",e)),typeof ResizeObserver<"u"&&(t.resizeObserver=new ResizeObserver(e),t.resizeObserver.observe(t.element))}function ed(t){if(!t.destroyed){t.destroyed=!0,Qc(t),t.resizeObserver?.disconnect();for(let e of t.cleanup)e();if(t.cleanup.length=0,t.canvas.remove(),t.gl.deleteTexture(t.program.texture),t.gl.deleteTexture(t.program.lutTexture),t.gl.deleteProgram(t.program.program),t.sourceHidden){t.element.removeAttribute(Os);let e=t.element.style.getPropertyValue("opacity"),n=t.element.style.getPropertyPriority("opacity");e==="0"&&n==="important"&&(t.sourceInlineOpacity===null?t.element.style.removeProperty("opacity"):t.element.style.setProperty("opacity",t.sourceInlineOpacity,t.sourceInlineOpacityPriority))}t.touchedParent&&(t.parentInlinePosition===null?t.touchedParent.style.removeProperty("position"):t.touchedParent.style.position=t.parentInlinePosition)}}function td(t){let e=document.createElement("canvas");return e.className=Rc,e.setAttribute(vc,"true"),e.setAttribute("data-hyperframes-ignore",""),e.setAttribute("data-hyperframes-picker-ignore",""),e.setAttribute("data-hf-ignore",""),e.setAttribute("aria-hidden","true"),e.style.pointerEvents="none",e.style.display="none",t.parentNode?.insertBefore(e,t.nextSibling),e}function Ws(){let t=new WeakMap,e=new Set,n=null,i=!1,r=(y,x,w)=>{let N=t.get(y);if(N)return N.grading=x,N.source=w,Ue(N),y instanceof HTMLVideoElement&&!y.paused&&en(N),!0;let L=td(y),$=Bc(L);if(!$)return L.remove(),!1;let B={element:y,canvas:L,gl:$.gl,program:$.program,grading:x,compare:{...Zt},lut:null,lutLoadingSrc:null,lutError:null,source:w,animationFrame:null,videoFrameHandle:null,resizeObserver:null,cleanup:[],touchedParent:null,parentInlinePosition:null,sourceHidden:!1,sourceInlineOpacity:null,sourceInlineOpacityPriority:"",sourceOpacityForCanvas:window.getComputedStyle(y).opacity||"1",sourceVisibleForCanvas:window.getComputedStyle(y).visibility!=="hidden",hasDrawn:!1,destroyed:!1};return t.set(y,B),e.add(y),Zc(B),Ue(B),y instanceof HTMLVideoElement&&!y.paused&&en(B),!0},o=(y,x)=>{if(i)return!1;let w=Gi(y);if(!w)return!1;let N=t.get(w);if(!N){let L=Wi(w);if(!Qt(L)||!r(w,L,"attribute"))return!1;N=t.get(w)}return N?(N.compare=Wc(x),Ue(N),!0):!1},s=y=>{let x=t.get(y);x&&(ed(x),t.delete(y),e.delete(y))},c=()=>{if(i)return 0;let y=new Set;document.querySelectorAll(`video[${Xt}], img[${Xt}]`).forEach(w=>{if(!st(w))return;y.add(w);let N=Wi(w);Qt(N)?r(w,N,"attribute"):s(w)});for(let w of Array.from(e)){let N=t.get(w);N&&(!w.isConnected||N.source==="attribute"&&!y.has(w))&&s(w)}return e.size},a=()=>{if(i)return 0;let y=0;for(let x of Array.from(e,w=>t.get(w)))x&&Ue(x)&&(y+=1);return y},l=(y,x)=>{if(i)return!1;let w=Gi(y);if(!w)return!1;let N=Bi(x);return Qt(N)?r(w,N,"live"):(s(w),!0)},u=(y,x)=>{if(!st(y))return!1;let w=t.get(y);return w?(w.sourceVisibleForCanvas=x,!0):!1},m=y=>{let x=Gi(y);if(!x)return{state:"missing",message:"Media not found"};let w=t.get(x);if(w)return w.lutError?{state:"unavailable",message:w.lutError}:w.grading.lut&&w.lutLoadingSrc?{state:"pending",message:"Loading LUT"}:w.canvas.style.display==="none"?{state:"pending",message:"Waiting for media frame"}:{state:"active",message:w.lut?"Shader + LUT active":"Shader active"};let N=Wi(x);return Qt(N)?{state:"unavailable",message:"WebGL unavailable"}:{state:"inactive",message:"No grading applied"}},f=()=>{if(!i){i=!0,n?.disconnect(),n=null;for(let y of Array.from(e))s(y)}};document.body&&(n=new MutationObserver(()=>c()),n.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[Xt]}));let g={refresh:c,redraw:a,setGrading:l,setCompare:o,setSourceVisibility:u,getStatus:m,destroy:f},A=window;return A.__hf=A.__hf||{},A.__hf.colorGrading=g,c(),g}var Nn=class{constructor(e){ge(this,"_baseTime",0);ge(this,"_playStartMs",null);ge(this,"_rate",1);ge(this,"_duration",1/0);ge(this,"_nowMs");ge(this,"_audioSource",null);this._baseTime=e?.initialTime??0,this._rate=e?.rate??1,this._duration=e?.duration??1/0,this._nowMs=e?.nowMs??(()=>performance.now())}now(){if(this._playStartMs===null)return this._baseTime;if(this._audioSource){let i=null;if("currentTimeSeconds"in this._audioSource)i=this._audioSource.currentTimeSeconds;else{let{el:r,compositionStart:o,mediaStart:s}=this._audioSource;!r.paused&&Number.isFinite(r.currentTime)&&(i=(r.currentTime-s)/(r.playbackRate>0?r.playbackRate:1)*this._rate+o)}if(i!==null)return Number.isFinite(this._duration)&&i>=this._duration?this._duration:Math.max(0,i)}let e=(this._nowMs()-this._playStartMs)/1e3,n=this._baseTime+e*this._rate;return Number.isFinite(this._duration)&&n>=this._duration?this._duration:Math.max(0,n)}play(){return this._playStartMs!==null||Number.isFinite(this._duration)&&this._baseTime>=this._duration?!1:(this._playStartMs=this._nowMs(),!0)}pause(){return this._playStartMs===null?!1:(this._baseTime=this.now(),this._playStartMs=null,!0)}seek(e){let n=Number.isFinite(this._duration)?Math.max(0,Math.min(e,this._duration)):Math.max(0,e);this._baseTime=n,this._playStartMs!==null&&(this._playStartMs=this._nowMs())}isPlaying(){return this._playStartMs!==null}setRate(e){let n=Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1;this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._rate=n}getRate(){return this._rate}setDuration(e){this._duration=Number.isFinite(e)&&e>0?e:1/0,this._baseTime>this._duration&&(this._baseTime=this._duration)}getDuration(){return this._duration}attachAudioSource(e){this._audioSource=e}detachAudioSource(){this._audioSource&&this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._audioSource=null}hasAudioSource(){return this._audioSource!==null}getSource(){if(this._audioSource&&this._playStartMs!==null){if("currentTimeSeconds"in this._audioSource)return"audio";let{el:e}=this._audioSource;if(!e.paused&&Number.isFinite(e.currentTime))return"audio"}return"monotonic"}snapshot(){return{time:this.now(),playing:this.isPlaying(),rate:this._rate,duration:this._duration,source:this.getSource()}}reachedEnd(){return Number.isFinite(this._duration)&&this.now()>=this._duration}};function Gs(t){return!Number.isFinite(t)||t<=0?1:t}function nd(t,e){e||t.paused||!ln().__hfDebug||console.debug("[hyperframes] webAudioTransport claimed fallback-playing element:",t.currentSrc||t.getAttribute("src")||"")}function id(t,e){let{elapsed:n,mediaStart:i,scheduledAt:r,safeRate:o,clipDuration:s}=e,c=Number.isFinite(s)&&s>0,a=s*o;if(n>=0){let u=a-n;return c&&u<=0?!1:(c?t.start(0,n+i,u):t.start(0,n+i),!0)}let l=-n/o;return c?t.start(r+l,i,a):t.start(r+l,i),!0}var _n=class{constructor(){ge(this,"_ctx",null);ge(this,"_bufferCache",new Map);ge(this,"_failedSrcs",new Set);ge(this,"_activeSources",[]);ge(this,"_masterGain",null);ge(this,"_rateAnchorCtx",0);ge(this,"_rateAnchorComp",0);ge(this,"_rate",1);ge(this,"_paused",!0);ge(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._masterGain.connect(this._ctx.destination),!0}catch{return!1}}get context(){return this._ctx}getTime(){return!this._ctx||this._paused?-1:this._rateAnchorComp+(this._ctx.currentTime-this._rateAnchorCtx)*this._rate}async decodeAudioElement(e){let n=e.currentSrc||e.getAttribute("src");if(!n)return null;if(this._bufferCache.has(n))return this._bufferCache.get(n);if(this._failedSrcs.has(n)||!this._ctx)return null;let i;try{let r=await fetch(n,{cache:"no-store"});if(!r.ok)return v("webAudioTransport.fetch",new Error(`${r.status} ${n}`)),null;i=await r.arrayBuffer()}catch(r){return v("webAudioTransport.fetch",r),null}try{let r=await this._ctx.decodeAudioData(i);return this._bufferCache.set(n,r),r}catch(r){return this._failedSrcs.add(n),v("webAudioTransport.decode",r),null}}startGeneration(){return this._playGeneration+=1,this._playGeneration}currentGeneration(){return this._playGeneration}async schedulePlayback(e,n,i,r,o,s,c,a=1,l=Number.POSITIVE_INFINITY){if(!this._ctx||!this._masterGain||c!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),c!==this._playGeneration)return null;let u=Gs(a),m=this._ctx.createBufferSource();m.buffer=n,m.playbackRate.value=u;let f=this._ctx.createGain();f.gain.value=s,m.connect(f),f.connect(this._masterGain);let g=o-i,A=this._ctx.currentTime;if(this._rate=u,this._rateAnchorCtx=A,this._rateAnchorComp=o,!id(m,{elapsed:g,mediaStart:r,scheduledAt:A,safeRate:u,clipDuration:l}))return m.disconnect(),f.disconnect(),null;let y=e.muted;e.muted=!0,nd(e,y);let x={el:e,sourceNode:m,gainNode:f,compositionStart:i,mediaStart:r,scheduledAt:A,priorMuted:y,bounded:Number.isFinite(l)&&l>0};return this._activeSources.push(x),this._paused=!1,m.addEventListener("ended",()=>{let w=this._activeSources.indexOf(x);w!==-1&&(this._activeSources.splice(w,1),e.muted=y,this._activeSources.length===0&&(this._paused=!0))}),x}catch(u){return v("webAudioTransport.schedule",u),null}}setRate(e){let n=Gs(e);if(n===this._rate)return!1;this._ctx&&!this._paused&&(this._rateAnchorComp=this.getTime(),this._rateAnchorCtx=this._ctx.currentTime),this._rate=n;for(let i of this._activeSources)try{i.sourceNode.playbackRate.value=n}catch(r){v("webAudioTransport.setRate",r)}return!0}hasBoundedActiveSources(){return this._activeSources.some(e=>e.bounded)}stopAll(){for(let e of this._activeSources){try{e.sourceNode.stop(),e.sourceNode.disconnect(),e.gainNode.disconnect()}catch{}e.el.muted=e.priorMuted}this._activeSources=[],this._paused=!0}setVolume(e){this._masterGain&&(this._masterGain.gain.value=Math.max(0,Math.min(1,e)))}setElementVolume(e,n){let i=Math.max(0,Math.min(1,n));for(let r of this._activeSources)if(r.el===e)try{r.gainNode.gain.value=i}catch(o){v("webAudioTransport.setElementVolume",o)}}setMuted(e){this._masterGain&&(this._masterGain.gain.value=e?0:1)}isActive(){return this._activeSources.length>0&&!this._paused}ownsElement(e){return!this._paused&&this._activeSources.some(n=>n.el===e)}destroy(){if(this.stopAll(),this._bufferCache.clear(),this._failedSrcs.clear(),this._ctx)try{this._ctx.close()}catch{}this._ctx=null,this._masterGain=null}};var Us="data-hf-studio-manual-edit-gesture";var Vi="data-hf-authored-duration",zi="data-hf-authored-end";function rd(){let t=window.__HF_EXPORT_RENDER_SEEK_CONFIG,e=t?.fps,n=t?.fpsSource,i=Number(e);return!t||e==null?{fps:null,source:"default",rawFpsSource:n,rawFps:e,fallbackReason:"missing"}:!Number.isFinite(i)||i<=0?{fps:null,source:"default",rawFpsSource:n,rawFps:e,fallbackReason:"invalid"}:{fps:i,source:n==="render-options"||n==="default"?n:"unknown",rawFpsSource:n,rawFps:e,fallbackReason:t.fpsFallbackReason}}function Vs(){let t=Dr(),e=rd();t.canonicalFps=e.fps??t.canonicalFps,window.__HF_EXPORT_RENDER_SEEK_CONFIG&&console.info("[hyperframes] render runtime fps",{canonicalFps:t.canonicalFps,source:e.source,rawFpsSource:e.rawFpsSource,rawFps:e.rawFps,fallbackReason:e.fallbackReason});let n=null,i=null,r=null,o=[],s=new Set,c=null;if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(d){v("runtime.init.site1",d)}(()=>{let d=window.gsap,p=window;if(!(!d?.registerPlugin||p.__hfAutoNoopRegistered))try{d.registerPlugin({name:"_auto",init:()=>!1}),p.__hfAutoNoopRegistered=!0}catch{}})(),document.documentElement&&(document.documentElement.style.margin="0",document.documentElement.style.padding="0",document.documentElement.style.overflow="hidden"),document.body&&(document.body.style.margin="0",document.body.style.padding="0",document.body.style.overflow="hidden"),window.__timelines=window.__timelines||{};let l=()=>{let d=document.querySelector(\'[data-composition-id][data-root="true"]\');if(d instanceof HTMLElement)return d;let p=Array.from(document.querySelectorAll("[data-composition-id]"));return p.find(h=>!h.parentElement?.closest("[data-composition-id]"))??p[0]??null};if(Array.isArray(window.__timelines)){let d=window.__timelines,p=l()?.getAttribute("data-composition-id")??"root",h={};if(d.length===1)h[p]=d[0];else for(let b=0;b<d.length;b++)h[`tl-${b}`]=d[b];window.__timelines=h}let u=l();u&&!u.hasAttribute("data-start")&&u.setAttribute("data-start","0");let m=d=>{o.push(d)},f=(d,p,h)=>{let b=h??`${d}:${JSON.stringify(p)}`;s.has(b)||(s.add(b),Ee({source:"hf-preview",type:"diagnostic",code:d,details:p}))},g=d=>{let p={scale:1,focusX:960,focusY:540},h=[],b=[],E={time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying(),renderMode:!1,timelineDirty:!1};return{play:d.play,pause:d.pause,seek:d.seek,getTime:d.getTime,getDuration:d.getDuration,isPlaying:d.isPlaying,getMainTimeline:()=>null,getElementBounds:()=>{},getElementsAtPoint:()=>{},setElementPosition:()=>{},previewElementPosition:()=>{},setElementKeyframes:()=>{},setElementScale:()=>{},setElementFontSize:()=>{},setElementTextContent:()=>{},setElementTextColor:()=>{},setElementTextShadow:()=>{},setElementTextFontWeight:()=>{},setElementTextFontFamily:()=>{},setElementTextOutline:()=>{},setElementTextHighlight:()=>{},setElementVolume:()=>{},setStageZoom:()=>{},getStageZoom:()=>p,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>h,addElement:()=>!1,removeElement:()=>!1,updateElementTiming:()=>!1,setElementTiming:()=>{},updateElementSrc:()=>!1,updateElementLayer:()=>!1,updateElementBasePosition:()=>!1,markTimelineDirty:()=>{},isTimelineDirty:()=>!1,rebuildTimeline:()=>{},ensureTimeline:()=>{},enableRenderMode:()=>{},disableRenderMode:()=>{},renderSeek:d.renderSeek,getElementVisibility:()=>({visible:!1}),getVisibleElements:()=>b,getRenderState:()=>({...E,time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying()})}},A=1/60,y=.75,x=2,w=.05,N=100,L=240,$=d=>{if(d instanceof Error)return d.message||String(d);if(typeof d=="string")return d;try{return JSON.stringify(d)}catch{return String(d??"")}},B=d=>{let p=d.toLowerCase();return p.includes("cannot read properties of null")||p.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:p.includes("failed to execute \'queryselector\'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:p.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},_=d=>{if(d==null||d.trim()==="")return null;let p=Number.parseFloat(d);return!Number.isFinite(p)||p<=0?null:`${p}px`},S=()=>l(),C=()=>{let d=S();if(!d)return;let p=_(d.getAttribute("data-width")),h=_(d.getAttribute("data-height"));p&&(d.style.width=p),h&&(d.style.height=h),p&&d.style.setProperty("--comp-width",p),h&&d.style.setProperty("--comp-height",h)},F=()=>{let d=S(),p=Array.from(document.querySelectorAll("[data-composition-id]")).filter(h=>h.hasAttribute("data-duration")||h.hasAttribute("data-end"));for(let h of p){if(d&&h===d)continue;let b=h.getAttribute("data-duration"),E=h.getAttribute("data-end");b!=null&&!h.hasAttribute(Vi)&&h.setAttribute(Vi,b),E!=null&&!h.hasAttribute(zi)&&h.setAttribute(zi,E),h.removeAttribute("data-duration"),h.removeAttribute("data-end")}},T=()=>{let d=S();if(!d)return;d.style.position||(d.style.position="relative"),d.style.overflow="hidden";let p=_(d.getAttribute("data-width")),h=_(d.getAttribute("data-height"));p&&(d.style.width=p),h&&(d.style.height=h);let b=Array.from(d.children);for(let E of b){let M=E.tagName.toLowerCase();if(M==="script"||M==="style"||M==="link"||M==="meta"||!E.hasAttribute("data-start")||E.hasAttribute("data-hf-autostamped"))continue;let k=(E.style.top==="0px"||E.style.top==="0")&&(E.style.left==="0px"||E.style.left==="0")&&E.style.width==="100%"&&E.style.height==="100%",J=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(E.style.transform);if(k&&J&&!E.hasAttribute("data-width")&&!E.hasAttribute("data-height")){let ye=E.style.top,nt=E.style.left,Ae=E.style.width,wt=E.style.height;E.style.top="",E.style.left="",E.style.width="",E.style.height="";let ne=window.getComputedStyle(E);ne.top!=="auto"||ne.bottom!=="auto"||ne.left!=="auto"||ne.right!=="auto"||ne.width!=="0px"||ne.height!=="0px"||(E.style.top=ye,E.style.left=nt,E.style.width=Ae,E.style.height=wt)}let K=window.getComputedStyle(E),me=K.position;if(me!=="absolute"&&me!=="fixed"&&(E.style.position="absolute"),!!E.style.top||!!E.style.bottom||K.top!=="auto"||K.bottom!=="auto"||(E.style.top="0"),!!E.style.left||!!E.style.right||K.left!=="auto"||K.right!=="auto"||(E.style.left="0"),M!=="audio"){let ye=_(E.getAttribute("data-width")),nt=_(E.getAttribute("data-height")),Ae=K.width!=="0px"&&K.width!=="auto",wt=K.height!=="0px"&&K.height!=="auto";ye?!E.style.width&&!Ae&&(E.style.width=ye):!E.style.width&&K.width==="0px"&&(E.style.width="100%"),nt?!E.style.height&&!wt&&(E.style.height=nt):!E.style.height&&K.height==="0px"&&(E.style.height="100%")}}},R=(d,p=0,h)=>ze({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:h?.includeAuthoredTimingAttrs??!0}).resolveStartForElement(d,p),G=(d,p)=>ze({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:p?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(d),j=(d,p=0)=>!d.hasAttribute("data-hf-auto-start")&&d.hasAttribute("data-start")?Math.max(0,Number(d.getAttribute("data-start")??0)||0)+p:R(d,p),ie=(d,p)=>{let h=d.tagName.toLowerCase();if(h==="script"||h==="style"||h==="link"||h==="meta")return!1;let b=h==="video"||h==="audio"?j(d,0):R(d,0),E=G(d),M=d.getAttribute("data-composition-id");if(M){let J=(window.__timelines??{})[M],K=null;if(J&&typeof J.duration=="function"){let be=Number(J.duration());Number.isFinite(be)&&be>0&&(K=be)}!(d.hasAttribute("data-duration")||d.hasAttribute("data-end")||d.hasAttribute(Vi)||d.hasAttribute(zi))&&(E==null||E<=0)&&K!=null&&(E=K)}let k=E!=null&&E>0?b+E:Number.POSITIVE_INFINITY;return p>=b&&(Number.isFinite(k)?p<=k:!0)},P=!!document.querySelector("[data-composition-src]"),se=!1;{let d=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let p of d){let h=p.getAttribute("data-composition-id");if(h&&p.children.length===0&&document.querySelector(`template#${CSS.escape(h)}-template`)){se=!0;break}}}let Se=!P&&!se,H=d=>{if(!d||typeof d.duration!="function")return null;try{let p=Number(d.duration());return Number.isFinite(p)?Math.max(0,p):null}catch{return null}},U=d=>typeof d=="number"&&Number.isFinite(d)&&d>A,V=d=>{let p=Number(d.getAttribute("data-duration"));if(Number.isFinite(p)&&p>0)return p;let h=Number(d.getAttribute("data-playback-start")??d.getAttribute("data-media-start")??"0"),b=Number.isFinite(h)?Math.max(0,h):0;return Number.isFinite(d.duration)&&d.duration>b?Math.max(0,d.duration-b):null},re=()=>{let d=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(d.length===0)return null;let p=0;for(let h of d){let b=j(h,0);if(!Number.isFinite(b))continue;let E=V(h);E==null||E<=A||(p=Math.max(p,Math.max(0,b)+E))}return p>A?p:null},Fe=()=>{let d=S();if(!d)return null;let p=window.__timelines??{},h=ze({timelineRegistry:p,includeAuthoredTimingAttrs:!0}),b=0,E=Number.parseFloat(d.getAttribute("data-duration")??"");Number.isFinite(E)&&E>0&&(b=E);let M=Array.from(d.querySelectorAll("[data-composition-id][data-start]"));for(let k of M){if(!(k instanceof Element)||k.parentElement?.closest("[data-composition-id]")!==d)continue;let K=h.resolveStartForElement(k,0),me=h.resolveDurationForElement(k);!Number.isFinite(K)||me==null||me<=0||(b=Math.max(b,Math.max(0,K)+me))}return b>A?b:null},O=()=>{let d=re();return typeof d!="number"||!Number.isFinite(d)||d<=A?null:d},D=d=>U(d)?Math.max(A,d*y):A,W=()=>{let d=0;for(let p of t.deterministicAdapters){let h=p.getInferredDurationSeconds;if(typeof h!="function")continue;let b=null;try{b=h()}catch(E){v("runtime.init.adapterDuration",E)}typeof b=="number"&&Number.isFinite(b)&&b>0&&(d=Math.max(d,b))}return d>A?d:null},Q=(d,p=0)=>{let h=H(d),b=O(),E=Fe(),M=W(),k=Math.max(b??0,E??0,M??0),J=Number.isFinite(p)&&p>A?p:0,K=0;return U(h)?K=Math.max(h,k,J):U(k)?K=Math.max(k,J):K=J,K>0?Math.max(0,K):0},ae=()=>{let d=window.__timelines??{},p=ne=>{let ee=Object.entries(d).filter(xe=>!!xe[1]&&typeof xe[1].play=="function"&&typeof xe[1].pause=="function");if(ee.length!==1)return{timeline:null};let[fe,pe]=ee[0];return{timeline:pe,selectedTimelineIds:[fe],selectedDurationSeconds:H(pe),diagnostics:{code:"root_timeline_sole_registered_fallback",details:{reason:ne,soleTimelineId:fe}}}},h=ze({timelineRegistry:d,includeAuthoredTimingAttrs:!0}),b=O(),E=Fe(),M=Math.max(b??0,E??0)||null,k=D(M),J=ne=>{let ee=document.querySelector(`[data-composition-id="${CSS.escape(ne)}"]`);return ee?h.resolveStartForElement(ee,0):0},K=ne=>{let ee=window.gsap;if(!ee||typeof ee.timeline!="function")return null;let fe=ee.timeline({paused:!0});for(let pe of ne)fe.add(pe.timeline,J(pe.compositionId));return fe},me=(ne,ee)=>{if(!U(ne))return null;let fe=window.gsap;if(!fe||typeof fe.timeline!="function")return null;let pe=fe.timeline({paused:!0});if(ee)try{pe.add(ee,0)}catch(ue){v("runtime.init.site2",ue)}let xe=pe;if(typeof xe.to=="function")try{xe.to({},{duration:ne})}catch(ue){v("runtime.init.site3",ue)}return pe},be=(ne,ee)=>{let fe=ne;if(typeof fe.getChildren!="function")return[];try{let pe=fe.getChildren(!0,!0,!0)??[];if(!Array.isArray(pe))return[];let xe=[];for(let ue of ee)if(!pe.some(ve=>ve===ue.timeline))try{let ve=J(ue.compositionId);ne.add(ue.timeline,ve),xe.push(ue.compositionId)}catch(ve){v("runtime.init.site4",ve)}return xe}catch{return[]}},oe=S(),Z=oe?.getAttribute("data-composition-id")??null;if(!Z)return p("root_missing_composition_id");let ye=d[Z]??null,Ae=(()=>{if(!oe)return[];let ne=new Set,ee=Array.from(oe.querySelectorAll("[data-composition-id]")),fe=[];for(let pe of ee){let xe=pe.getAttribute("data-composition-id");if(!xe||xe===Z||ne.has(xe))continue;ne.add(xe);let ue=d[xe]??null;if(!ue||typeof ue.play!="function"||typeof ue.pause!="function")continue;let Ne=H(ue);fe.push({compositionId:xe,timeline:ue,durationSeconds:Ne??0})}return fe})(),wt=ne=>{for(let ee of ne){let fe=ee.timeline;if(typeof fe.paused=="function")try{fe.paused(!1)}catch(pe){v("runtime.init.site5",pe)}}};if(Ae.length>0&&wt(Ae),ye){let ne=Ae.length>0?be(ye,Ae):[];if((Ae.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+Z+"\'])"))&&(q=!0),ne.length>0)try{let ue=ye.time();ye.seek(ue,!1)}catch{}let ee=H(ye);if(!U(ee)&&Ae.length>0){let ue=Ae.map(Na=>Na.compositionId),Ne=K(Ae),ve=H(Ne);if(Ne&&U(ve))return{timeline:Ne,selectedTimelineIds:ue,selectedDurationSeconds:ve,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:k,selectedDurationSeconds:ve,mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:E,selectedTimelineIds:ue,autoNestedChildren:ne}}};let Un=me(M??0,ye),Vn=H(Un);if(Un&&U(Vn))return{timeline:Un,selectedTimelineIds:[Z],selectedDurationSeconds:Vn,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:E,selectedDurationSeconds:Vn,selectedTimelineIds:[Z],autoNestedChildren:ne}}}}if(!U(ee)&&Ae.length===0){let ue=me(M??0,ye),Ne=H(ue);if(ue&&U(Ne))return{timeline:ue,selectedTimelineIds:[Z],selectedDurationSeconds:Ne,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:E,selectedDurationSeconds:Ne,selectedTimelineIds:[Z]}}}}let fe=oe?.getAttribute("data-duration"),pe=fe?parseFloat(fe):null,xe=Math.max(U(pe)?pe:0,E??0);if(xe>0&&U(xe)&&U(ee)&&xe>=ee+.5){let ue=ye;if(typeof ue.to=="function")try{ue.to({},{duration:0},xe)}catch(ve){v("runtime.init.site6",ve)}let Ne=H(ye);if(U(Ne))return{timeline:ye,selectedTimelineIds:[Z],selectedDurationSeconds:Ne,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:Z,rootDurationSeconds:ee,rootDeclaredDur:pe,authoredCompositionDurationFloorSeconds:E,newDur:Ne}}}}return{timeline:ye,selectedTimelineIds:[Z],selectedDurationSeconds:ee,mediaDurationFloorSeconds:b,diagnostics:ne.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:Z,selectedDurationSeconds:ee,autoNestedChildren:ne}}:void 0}}if(Ae.length>0){let ne=Ae.map(pe=>pe.compositionId),ee=K(Ae),fe=H(ee);if(ee)return{timeline:ee,selectedTimelineIds:ne,selectedDurationSeconds:fe,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:Z,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:k,selectedDurationSeconds:fe,mediaDurationFloorSeconds:b,selectedTimelineIds:ne}}}}return p("root_composition_id_unmatched_in_registry")},q=!1,z=()=>{if(!Se)return!1;let d=t.capturedTimeline,p=H(d),h=U(p);if(d&&h&&q)return!1;let b=ae();if(!b.timeline)return!1;if(d&&d===b.timeline)return typeof d.timeScale=="function"&&d.timeScale(t.playbackRate),!1;t.capturedTimeline=b.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let E=Q(t.capturedTimeline,0);if(E<=0&&typeof t.capturedTimeline.progress=="function"&&(t.capturedTimeline.progress(1,!0),t.capturedTimeline.progress(0,!1),t.capturedTimeline.pause()),E>0){try{I.setDuration(E)}catch{}if(typeof t.capturedTimeline.totalTime=="function"){typeof t.capturedTimeline.progress=="function"&&t.capturedTimeline.progress(1e-4,!0);let k=Math.max(0,t.currentTime||0);t.capturedTimeline.totalTime(k,!1),t.capturedTimeline.pause()}let M=window.__hfStudioManualEditsApply;typeof M=="function"&&M()}if(b.diagnostics&&Ee({source:"hf-preview",type:"diagnostic",code:b.diagnostics.code,details:b.diagnostics.details}),Ee({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:b.selectedTimelineIds??[],selectedDurationSeconds:b.selectedDurationSeconds??null,mediaDurationFloorSeconds:b.mediaDurationFloorSeconds??null}}),window.parent!==window){let M=S(),k=E>0?E:0,J=String(k>0?k:1),K=new Set,me=new Set(document.querySelectorAll("[data-start]")),be=oe=>{let Z=oe.parentElement;for(;Z&&Z!==M;){if(me.has(Z))return!0;Z=Z.parentElement}return!1};if(t.capturedTimeline.getChildren)try{for(let oe of t.capturedTimeline.getChildren(!0))if(typeof oe.targets=="function")for(let Z of oe.targets())Z instanceof HTMLElement&&Z!==M&&(Z.hasAttribute("data-start")||be(Z)||K.has(Z)||(K.add(Z),Z.setAttribute("data-start","0"),Z.setAttribute("data-duration",J),Z.setAttribute("data-hf-autostamped","1")))}catch{}if(M instanceof HTMLElement)for(let oe of M.querySelectorAll("[id]"))oe instanceof HTMLElement&&oe!==M&&(oe.hasAttribute("data-start")||be(oe)||K.has(oe)||oe.tagName==="SCRIPT"||oe.tagName==="STYLE"||oe.tagName==="LINK"||(K.add(oe),oe.setAttribute("data-start","0"),oe.setAttribute("data-duration",J),oe.setAttribute("data-hf-autostamped","1")))}for(let M of St)rn.delete(M),er(M);return!0};window.__hfForceTimelineRebind=()=>{q=!1,z()};let X=()=>{let d=S();if(!(d instanceof HTMLElement))return;let p=d.getBoundingClientRect(),h=Number(d.getAttribute("data-width")),b=Number(d.getAttribute("data-height")),E=window.getComputedStyle(d),M=Number.isFinite(h)&&h>0&&Number.isFinite(b)&&b>0,k=p.width<=0||p.height<=0||d.clientWidth<=0||d.clientHeight<=0;!M||!k||f("root_stage_layout_zero",{compositionId:d.getAttribute("data-composition-id")??null,declaredWidth:h,declaredHeight:b,rectWidth:Math.round(p.width),rectHeight:Math.round(p.height),clientWidth:d.clientWidth,clientHeight:d.clientHeight,display:E.display,visibility:E.visibility,overflow:E.overflow},`root-stage-layout-zero:${d.getAttribute("data-composition-id")??"unknown"}`)},Ie=()=>{t.tornDown||(c!=null&&window.cancelAnimationFrame(c),c=window.requestAnimationFrame(()=>{c=null,X()}))},Me=()=>{i=d=>{let p=$(d.error??d.message).slice(0,L);if(!p)return;let h=B(p);Ee({source:"hf-preview",type:"diagnostic",code:h.code,details:{category:h.category,message:p,filename:d.filename||null,line:Number.isFinite(d.lineno)?d.lineno:null,column:Number.isFinite(d.colno)?d.colno:null}})},r=d=>{let p=$(d.reason).slice(0,L);if(!p)return;let h=B(p);Ee({source:"hf-preview",type:"diagnostic",code:`${h.code}_unhandled_rejection`,details:{category:`${h.category}-unhandled-rejection`,message:p}})},window.addEventListener("error",i),window.addEventListener("unhandledrejection",r)},bt=()=>{let d=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let h of d){let b=()=>{if(!(h instanceof Element))return;let E=h.tagName.toLowerCase(),M=h.getAttribute("src")??h.getAttribute("href")??h.getAttribute("poster")??null,k=E==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";f(k,{tagName:E,assetUrl:M,currentSrc:(h instanceof HTMLImageElement||h instanceof HTMLMediaElement)&&h.currentSrc||null,readyState:h instanceof HTMLMediaElement?h.readyState:null,networkState:h instanceof HTMLMediaElement?h.networkState:null},`${k}:${E}:${M??"unknown"}`)};h.addEventListener("error",b),m(()=>{h.removeEventListener("error",b)})}let p=document.fonts;p&&p.ready.then(()=>{if(t.tornDown)return;let h=Array.from(p).filter(b=>b.status==="error").map(b=>b.family).filter(b=>!!b).slice(0,10);h.length!==0&&f("runtime_font_load_issue",{failedFamilies:h,totalFaces:Array.from(p).length},`runtime-font-load-issue:${h.join("|")}`)}).catch(()=>{})},He=(d,p)=>{if(!d.timeline)return!1;let h=t.capturedTimeline;if(h&&h===d.timeline)return!1;let b=Math.max(0,t.currentTime||0),E=t.isPlaying;t.capturedTimeline=d.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);try{t.capturedTimeline.pause(),t.capturedTimeline.seek(b,!1),E&&t.capturedTimeline.play()}catch(M){v("runtime.init.site7",M)}return Ee({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:p,previousTime:b,selectedTimelineIds:d.selectedTimelineIds??[],selectedDurationSeconds:d.selectedDurationSeconds??null,mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),!0},Ze=null,Zi=!1,St=new Set,rn=new WeakMap,on=()=>{t.tornDown||(Ze!=null&&window.clearTimeout(Ze),Ze=window.setTimeout(()=>{if(t.tornDown)return;Ze=null;let d=ae();if(!d.timeline||!U(d.mediaDurationFloorSeconds??null))return;if(!t.capturedTimeline){z()&&(at(),_e(!0));return}if(Zi)return;let h=H(t.capturedTimeline),b=d.selectedDurationSeconds??H(d.timeline);U(b)&&(!U(h)||b>=h+w)&&He(d,"manual")&&(Zi=!0,Ee({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:h??null,selectedDurationSeconds:b??null,selectedTimelineIds:d.selectedTimelineIds??[],mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),at(),_e(!0))},N))},xa=()=>{for(let d of St)d.removeEventListener("loadedmetadata",on),d.removeEventListener("durationchange",on);St.clear()},Dn=()=>{if(t.tornDown)return;let d=Array.from(document.querySelectorAll("video, audio"));for(let p of d){if(St.has(p))continue;St.add(p);let h=Number.parseFloat(p.dataset.volume??"");Number.isFinite(h)&&(p.volume=Math.max(0,Math.min(1,h))),p.addEventListener("loadedmetadata",on),p.addEventListener("durationchange",on),p.preload!=="auto"&&(p.preload="auto"),p.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&p.load(),er(p)}},er=d=>{rn.has(d)||Nr(d,t.capturedTimeline,Q(t.capturedTimeline,0),rn)},In=new WeakMap,tr=d=>{let p=In.get(d);if(p!==void 0)return p;let h=window.getComputedStyle(d).position,b=h==="static"||h==="relative"||h==="sticky";return In.set(d,b),b},Pn=new WeakMap,ga=d=>{let p=Pn.get(d);if(p!==void 0)return p;let h=d.querySelector("[data-start]")===null;return Pn.set(d,h),h},ya=()=>{In=new WeakMap,Pn=new WeakMap},Le=()=>{let d=M=>{let k=M.closest("[data-composition-id]"),J=k?R(k,0):null,K=k?G(k,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:k,inheritedStart:J,inheritedDuration:K}},p=_r({shouldIncludeElement:M=>M.hasAttribute("data-start")||!!d(M).compositionRoot,resolveStartSeconds:M=>{let k=d(M);return j(M,k.inheritedStart??0)},resolveDurationSeconds:M=>{let k=d(M),J=j(M,k.inheritedStart??0),K=Number.parseFloat(M.dataset.playbackStart??M.dataset.mediaStart??"0")||0,me=k.inheritedStart!=null&&k.inheritedDuration!=null&&k.inheritedDuration>0?Math.max(0,k.inheritedStart+k.inheritedDuration-J):null,be=Number.isFinite(M.duration)&&M.duration>K?Math.max(0,M.duration-K):null,oe=Number.parseFloat(M.dataset.duration??""),Z=Number.isFinite(oe)&&oe>0?oe:null,ye=[be,me,Z].filter(nt=>nt!=null);return ye.length>0?Math.min(...ye):null}});for(let M of p.mediaClips){let k=rn.get(M.el);k&&(M.volumeKeyframes=k)}let h=t.mediaForceSyncNextTick;h&&(t.mediaForceSyncNextTick=!1),t.nativeMediaSyncDisabled||Tr({clips:p.mediaClips,timeSeconds:t.currentTime,playing:t.isPlaying,playbackRate:t.playbackRate,outputMuted:t.mediaOutputMuted||!t.webAudioMediaDisabled&&!t.nativeMediaSyncDisabled&&de.isActive(),userMuted:t.bridgeMuted,userVolume:t.bridgeVolume,forceSync:h,onElementVolume:(M,k)=>de.setElementVolume(M,k),isWebAudioOwned:M=>de.ownsElement(M),onAutoplayBlocked:()=>{t.mediaAutoplayBlockedPosted||(t.mediaAutoplayBlockedPosted=!0,Ee({source:"hf-preview",type:"media-autoplay-blocked"}))}});let b=Array.from(document.querySelectorAll("[data-start]")),E=S();for(let M of b){if(!(M instanceof HTMLElement))continue;let k=ie(M,t.currentTime);if(k){let J=M.parentElement;for(;J&&J!==E;){if(J instanceof HTMLElement&&J.hasAttribute("data-start")&&!ie(J,t.currentTime)){k=!1;break}J=J.parentElement}}M.style.visibility=k?"visible":"hidden",(M instanceof HTMLVideoElement||M instanceof HTMLImageElement)&&n?.setSourceVisibility(M,k),k?tr(M)&&M.style.removeProperty("display"):tr(M)&&ga(M)&&(M.style.display="none")}},_e=d=>{let p=Math.max(0,Math.round((t.currentTime||0)*t.canonicalFps)),h=Date.now();(d||p!==t.bridgeLastPostedFrame||t.isPlaying!==t.bridgeLastPostedPlaying||t.bridgeMuted!==t.bridgeLastPostedMuted||h-t.bridgeLastPostedAt>=t.bridgeMaxPostIntervalMs)&&(t.bridgeLastPostedFrame=p,t.bridgeLastPostedPlaying=t.isPlaying,t.bridgeLastPostedMuted=t.bridgeMuted,t.bridgeLastPostedAt=h,Ee({source:"hf-preview",type:"state",frame:p,isPlaying:t.isPlaying,muted:t.bridgeMuted,playbackRate:t.playbackRate}))},On="",ba=()=>{let d="";for(let p of document.querySelectorAll("[data-start]"))d+=`${p.id}:${p.tagName}|`;return d},at=()=>{F(),C(),T();let d=S();if(d){let b=_(d.getAttribute("data-width")),E=_(d.getAttribute("data-height")),M=b?parseInt(b,10):0,k=E?parseInt(E,10):0;M>0&&k>0&&Ee({source:"hf-preview",type:"stage-size",width:M,height:k})}z();let p=Hr({canonicalFps:t.canonicalFps});window.__clipManifest=p;let h=ba();if(On!==h&&ya(),!window.__clipTree||On!==h){let b=window;window.__clipTree=Ir({startResolver:ze({timelineRegistry:b.__timelines??{},includeAuthoredTimingAttrs:!0}),timelineRegistry:b.__timelines??{},rootDuration:p.durationInFrames/t.canonicalFps}),On=h}Ee(p),Ie()},Pe=(d,p=0)=>{for(let h of t.deterministicAdapters){try{d==="discover"&&h.discover(),d==="pause"&&h.pause(),d==="play"&&h.play&&h.play()}catch(b){v("runtime.init.site8",b)}if(d==="discover")try{h.seek({time:p})}catch(b){v("runtime.init.site9",b)}}},et=()=>{window.__renderReady=!1},At=null,Et=!0,Sa=()=>{let d=[];for(let p of t.deterministicAdapters){let h=p.getReadyPromise;if(typeof h=="function")try{let b=h();b&&d.push(b)}catch(b){v("runtime.init.adapterReady",b)}}return d},Aa=()=>{let d=Sa();if(d.length===0)return At=null,Et=!0,!0;let p=d.length===1?d[0]:Promise.all(d);return p!==At&&(At=p,Et=!1,Promise.resolve(p).then(()=>{At===p&&(Et=!0,et())},h=>{At===p&&(Et=!0,v("runtime.init.adapterReady",h),et())})),Et};if(Se)Pi();else{let d={injectedStyles:t.injectedCompStyles,injectedScripts:t.injectedCompScripts,parseDimensionPx:_,onDiagnostic:({code:p,details:h})=>{Ee({source:"hf-preview",type:"diagnostic",code:p,details:h})}};Fs(d).then(()=>Cs(d)).finally(()=>{Se=!0,Dn(),bt(),Pi(),et()})}let sn=Lr({postMessage:d=>Ee(d)});sn.installPickerApi();let We=Ws();n=We,m(()=>{We.destroy(),n=null});let Bn=d=>{let p=Number(d);!Number.isFinite(p)||p<=0?t.playbackRate=1:t.playbackRate=Math.max(.1,Math.min(5,p)),t.mediaForceSyncNextTick=!0,t.capturedTimeline&&typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let h=document.querySelectorAll("video, audio");for(let b of h)if(b instanceof HTMLMediaElement)try{b.playbackRate=t.playbackRate}catch(E){v("runtime.init.site10",E)}},he=kr({getTimeline:()=>t.capturedTimeline,setTimeline:d=>{t.capturedTimeline=d},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>t.isPlaying,setIsPlaying:d=>{t.isPlaying!==d&&(t.mediaForceSyncNextTick=!0),t.isPlaying=d},getPlaybackRate:()=>t.playbackRate,setPlaybackRate:Bn,getCanonicalFps:()=>t.canonicalFps,onSyncMedia:(d,p)=>{t.currentTime=Math.max(0,Number(d)||0),t.isPlaying!==p&&(t.mediaForceSyncNextTick=!0),t.isPlaying=p,Le()},onStatePost:_e,onDeterministicSeek:d=>{for(let p of t.deterministicAdapters)try{p.seek({time:Number(d)||0})}catch(h){v("runtime.init.site11",h)}},onDeterministicPause:()=>Pe("pause"),onDeterministicPlay:()=>Pe("play"),onRenderFrameSeek:()=>{We.redraw()},onShowNativeVideos:()=>{},getSafeDuration:()=>Q(t.capturedTimeline,0)});window.__player=g(he),window.__playerReady=!0,lr(Ee),Ct("composition_loaded",{duration:he.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),t.controlBridgeHandler=ar({onPlay:()=>{he.play(),Ct("composition_played",{time:he.getTime()})},onPause:()=>{he.pause(),Ct("composition_paused",{time:he.getTime()})},onStopMedia:()=>{de.stopAll();let d=document.querySelectorAll("video, audio");for(let p of d)p instanceof HTMLMediaElement&&!p.paused&&p.pause()},onSeek:(d,p)=>{let h=Math.max(0,d)/t.canonicalFps;he.seek(h),Ct("composition_seeked",{time:h})},onSetMuted:d=>{t.bridgeMuted=d;let p=d||t.mediaOutputMuted;de.setMuted(p);let h=document.querySelectorAll("video, audio");for(let b of h)b instanceof HTMLMediaElement&&(b.muted=p||b.defaultMuted)},onSetVolume:d=>{t.bridgeVolume=d,de.setVolume(d);let p=document.querySelectorAll("video, audio");for(let h of p){if(!(h instanceof HTMLMediaElement))continue;let b=parseFloat(h.dataset.volume??""),E=Number.isFinite(b)?b:1;h.volume=E*d}},onSetMediaOutputMuted:d=>{t.mediaOutputMuted=d;let p=d||t.bridgeMuted;de.setMuted(p);let h=document.querySelectorAll("video, audio");for(let b of h)b instanceof HTMLMediaElement&&(b.muted=p||b.defaultMuted)},onSetNativeMediaSyncDisabled:d=>{t.nativeMediaSyncDisabled!==d&&(t.nativeMediaSyncDisabled=d,t.mediaForceSyncNextTick=!0,d?(de.stopAll(),I.detachAudioSource()):Le())},onSetWebAudioMediaDisabled:d=>{t.webAudioMediaDisabled!==d&&(t.webAudioMediaDisabled=d,t.mediaForceSyncNextTick=!0,d&&(de.stopAll(),I.detachAudioSource()),Le())},onSetPlaybackRate:d=>{Bn(d),t.transportClock&&t.transportClock.setRate(t.playbackRate),or()},onSetColorGrading:(d,p)=>{We.setGrading(d,p)},onSetColorGradingCompare:(d,p)=>{We.setCompare(d,p)},onTick:()=>{if(t.tornDown||!I.isPlaying())return;let d=I.now();if(t.currentTime=d,tt(d),I.reachedEnd()){de.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,tt(p)),Pe("pause"),Le(),_e(!0)}},onEnablePickMode:()=>sn.enablePickMode(),onDisablePickMode:()=>sn.disablePickMode()}),t.deterministicAdapters=[Fr(),ur({resolveStartSeconds:d=>R(d,0)}),dr(),mr(),hr(),xr(),gr(),yr(),br(),Sr(),Ar(),cr({getTimeline:()=>t.capturedTimeline})],wr(),Cr(),window.__hfReseekGpu=d=>{let p=Math.max(0,Number(d)||0);window.__hfThreeTime=p,window.__hfTypegpuTime=p,pr(p)},Me(),Dn(),Pe("discover");let I=new Nn;t.transportClock=I;let de=new _n,Hn=!1;de.init().then(d=>{Hn=d});let Ea=()=>{let d=t.capturedTimeline,p=z();t.capturedTimeline&&(p||t.capturedTimeline!==d||!he._timeline)&&(he._timeline=t.capturedTimeline);let h=Q(t.capturedTimeline,0);if(h>0&&I.setDuration(h),Pe("discover",t.currentTime),!t.capturedTimeline){let b=window.__timelines??{},E=Object.keys(b).filter(M=>b[M]);if(E.length>0){let k=S()?.getAttribute("data-composition-id")??null;f("root_timeline_unbound_registry_present",{reason:k?"root data-composition-id has no matching key in window.__timelines":"root composition element has no data-composition-id attribute",rootCompositionId:k,registeredTimelineKeys:E},"root_timeline_unbound_registry_present"),console.warn("[hyperframes] Root timeline not bound \\u2014 render will freeze at t=0. "+(k?`Root data-composition-id is "${k}" but window.__timelines has no such key. `:"Root composition element has no data-composition-id. ")+`Registered timeline keys: [${E.join(", ")}]. Register the root timeline under its data-composition-id (window.__timelines["${k??"<root-id>"}"] = tl).`)}}window.__renderReady=!0,at(),_e(!0)};if(et=()=>{if(!Se||window.__hfTimelinesBuilding){window.__renderReady=!1;return}if(Pe("discover",t.currentTime),!Aa()){window.__renderReady=!1;return}Ea()},window.__hfTimelinesBuilding){window.__renderReady=!1;let d=()=>{window.removeEventListener("hf-timelines-built",d),et()};window.addEventListener("hf-timelines-built",d)}et(),Se&&setTimeout(()=>{et()},0);let an=0,Wn=!1,wa=(d,p,h)=>{try{d.pause(),typeof d.totalTime=="function"?d.totalTime(p,!1):d.seek(p,!1)}catch(b){v(h,b)}},Ca=d=>{let p=window.__timelines??{},h=S()?.getAttribute("data-composition-id")??null;for(let[b,E]of Object.entries(p)){if(!E||b===h)continue;let M=document.querySelector(`[data-composition-id="${CSS.escape(b)}"]`);if(!M)continue;let k=R(M,0);if(!Number.isFinite(k))continue;let J=G(M,{includeAuthoredTimingAttrs:!0}),K=H(E),me=J!=null&&J>0?J:K,be=Math.max(0,me!=null&&me>0?Math.min(me,d-k):d-k);wa(E,be,"runtime.init.transport.childTimeline")}},Fa=d=>{let p=window.__timelines??{};for(let h of Object.values(p))if(!(!h||h===d))try{h.play()}catch(b){v("runtime.init.activateSiblings",b)}},tt=(d,p)=>{let h=t.capturedTimeline;if(h){p?.activateChildren&&Fa(h);let b=h,E=d;if(typeof b.totalDuration=="function")try{let M=Number(b.totalDuration());Number.isFinite(M)&&M>0&&d>M&&(E=M)}catch(M){v("runtime.init.transport.clampDuration",M)}try{typeof h.totalTime=="function"?h.totalTime(E,!1):h.seek(E,!1)}catch(M){v("runtime.init.transport.seek",M)}}else Ca(d);for(let b of t.deterministicAdapters)try{b.seek({time:d})}catch(E){v("runtime.init.transport.adapter",E)}},Ma=()=>{try{return document.querySelector(`[${Us}]`)!=null}catch{return!1}},nr=()=>{if(!(t.tornDown||Wn)){Wn=!0;try{if(t.transportRafId=window.requestAnimationFrame(nr),an+=1,an%60===0&&!(I.isPlaying()&&t.capturedTimeline!=null&&I.now()<x)){let h=t.capturedTimeline;if(z()){t.capturedTimeline&&!he._timeline&&(he._timeline=t.capturedTimeline),t.capturedTimeline&&t.capturedTimeline!==h&&t.capturedTimeline.pause();let b=Q(t.capturedTimeline,0);b>0&&I.setDuration(b),at()}}if(an%20===0&&at(),an%30===0&&Dn(),t.capturedTimeline){let p=Q(t.capturedTimeline,0);p>0&&(!I.isPlaying()||p>=I.getDuration())&&I.setDuration(p)}if(I.isPlaying()&&!t.mediaOutputMuted)if(!t.nativeMediaSyncDisabled&&!t.webAudioMediaDisabled&&de.isActive()&&de.context){let p=de.getTime();p>=0&&I.attachAudioSource({currentTimeSeconds:p})}else{let p=document.querySelectorAll("audio[data-start]"),h=!1;for(let b of p){if(!(b instanceof HTMLMediaElement)||!b.isConnected)continue;let E=Number.parseFloat(b.dataset.start??""),M=Number.parseFloat(b.dataset.duration??""),k=Number.isFinite(M)&&M>0?E+M:1/0,J=Number.parseFloat(b.dataset.playbackStart??b.dataset.mediaStart??"0")||0;if(Number.isFinite(E)&&t.currentTime>=E&&t.currentTime<=k){b.paused?!b.error&&b.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(I.attachAudioSource({currentTimeSeconds:t.currentTime}),h=!0):(I.attachAudioSource({el:b,compositionStart:E,mediaStart:J}),h=!0);break}}!h&&I.hasAudioSource()&&I.detachAudioSource()}else I.hasAudioSource()&&I.detachAudioSource();let d=I.now();if(t.currentTime=d,(I.isPlaying()||!Ma())&&tt(d),I.isPlaying()&&I.reachedEnd()){de.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,tt(p)),Pe("pause"),Le(),_e(!0);return}I.isPlaying()&&Le(),_e(!1)}finally{Wn=!1}}},ir=d=>{let p=document.querySelectorAll("video, audio");for(let h of p){if(!(h instanceof HTMLMediaElement)||!h.isConnected)continue;let b=Number.parseFloat(h.dataset.start??"");if(!Number.isFinite(b))continue;let E=Number.parseFloat(h.dataset.duration??""),M=Number.isFinite(E)&&E>0?b+E:1/0;if(d<b||d>=M)continue;let k=Number.parseFloat(h.dataset.playbackStart??h.dataset.mediaStart??"0")||0,J=d-b+k;if(J>=0)try{h.currentTime=J}catch{}}},rr=()=>{if(t.nativeMediaSyncDisabled||t.webAudioMediaDisabled)return;let d=de.startGeneration(),p=document.querySelectorAll("audio[data-start]");for(let h of p){if(!(h instanceof HTMLMediaElement)||!h.isConnected)continue;let b=Number.parseFloat(h.dataset.start??"");if(!Number.isFinite(b))continue;let E=Number.parseFloat(h.dataset.playbackStart??h.dataset.mediaStart??"0")||0,M=Number.parseFloat(h.dataset.volume??""),k=Number.isFinite(M)?M:1,J=Number.parseFloat(h.dataset.duration??""),K=Number.isFinite(J)&&J>0?J:Number.POSITIVE_INFINITY,me=h.closest("[data-composition-id]");if(me){let be=R(me,0),oe=G(me,{includeAuthoredTimingAttrs:!0});oe!=null&&oe>0&&(K=Math.min(K,Math.max(0,be+oe-b)))}de.decodeAudioElement(h).then(be=>{!be||!I.isPlaying()||de.schedulePlayback(h,be,b,E,I.now(),k*t.bridgeVolume,d,t.playbackRate,K)})}},or=()=>{de.setRate(t.playbackRate)&&!t.nativeMediaSyncDisabled&&!t.webAudioMediaDisabled&&Hn&&I.isPlaying()&&de.hasBoundedActiveSources()&&(de.stopAll(),rr())};if(he.play=()=>{let d=t.capturedTimeline;if(I.isPlaying())return;let p=Q(d,0);if(p>0)I.setDuration(p),I.reachedEnd()&&(I.seek(0),t.currentTime=0,tt(0));else{let h=S(),b=Number(h?.getAttribute("data-duration")??0);b>0&&I.setDuration(b)}d&&d.pause(),I.play()&&(t.isPlaying=!0,t.mediaForceSyncNextTick=!0,ir(I.now()),Hn&&!t.nativeMediaSyncDisabled&&!t.webAudioMediaDisabled&&rr(),Pe("play"),Le(),We.redraw(),_e(!0))},he.pause=()=>{if(!I.isPlaying())return;de.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1,t.currentTime=I.now(),t.mediaForceSyncNextTick=!0,ir(t.currentTime);let d=t.capturedTimeline;d&&d.pause(),Pe("pause"),Le(),We.redraw(),_e(!0)},he.seek=d=>{let p=ut(Math.max(0,Number(d)||0),t.canonicalFps);de.stopAll(),I.detachAudioSource(),I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0;let b=t.capturedTimeline;b&&b.pause(),tt(t.currentTime),Pe("pause"),Le(),We.redraw(),_e(!0)},he.renderSeek=d=>{let p=ut(Math.max(0,Number(d)||0),t.canonicalFps);I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0,tt(t.currentTime,{activateChildren:!0}),Le(),We.redraw(),_e(!0)},he.getTime=()=>I.now(),he.getDuration=()=>{let d=I.getDuration();return Number.isFinite(d)?d:0},he.isPlaying=()=>I.isPlaying(),he.setPlaybackRate=d=>{Bn(d),I.setRate(t.playbackRate),or()},t.capturedTimeline){let d=Q(t.capturedTimeline,0);d>0&&I.setDuration(d),t.capturedTimeline.pause()}let sr=window.__player;if(sr){let d=["play","pause","seek","renderSeek","getTime","getDuration","isPlaying"];for(let p of d)Object.defineProperty(sr,p,{get:()=>he[p],set:h=>{he[p]=h},configurable:!0})}t.transportRafId=window.requestAnimationFrame(nr),at(),_e(!0);let Gn=()=>{if(!t.tornDown){t.tornDown=!0,t.transportRafId!=null&&(window.cancelAnimationFrame(t.transportRafId),t.transportRafId=null),t.transportClock=null,de.destroy(),Ze!=null&&(window.clearTimeout(Ze),Ze=null),c!=null&&(window.cancelAnimationFrame(c),c=null),xa(),t.controlBridgeHandler&&(window.removeEventListener("message",t.controlBridgeHandler),t.controlBridgeHandler=null),i&&(window.removeEventListener("error",i),i=null),r&&(window.removeEventListener("unhandledrejection",r),r=null),t.beforeUnloadHandler&&(window.removeEventListener("beforeunload",t.beforeUnloadHandler),t.beforeUnloadHandler=null),sn.disablePickMode();for(let d of t.deterministicAdapters)if(!(!d||typeof d.revert!="function"))try{d.revert()}catch(p){v("runtime.init.site12",p)}t.deterministicAdapters=[];for(let d of o.splice(0))try{d()}catch(p){v("runtime.init.site13",p)}for(let d of t.injectedCompStyles)try{d.remove()}catch(p){v("runtime.init.site14",p)}t.injectedCompStyles=[];for(let d of t.injectedCompScripts)try{d.remove()}catch(p){v("runtime.init.site15",p)}t.injectedCompScripts=[],t.capturedTimeline=null,window.__hfRuntimeTeardown===Gn&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=Gn,t.beforeUnloadHandler=Gn,window.addEventListener("beforeunload",t.beforeUnloadHandler)}var zs=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],ji=[[697,698,"ON"],[706,719,"ON"],[722,735,"ON"],[741,749,"ON"],[751,767,"ON"],[768,879,"NSM"],[884,885,"ON"],[894,894,"ON"],[900,901,"ON"],[903,903,"ON"],[1014,1014,"ON"],[1155,1161,"NSM"],[1418,1418,"ON"],[1421,1422,"ON"],[1423,1423,"ET"],[1424,1424,"R"],[1425,1469,"NSM"],[1470,1470,"R"],[1471,1471,"NSM"],[1472,1472,"R"],[1473,1474,"NSM"],[1475,1475,"R"],[1476,1477,"NSM"],[1478,1478,"R"],[1479,1479,"NSM"],[1480,1535,"R"],[1536,1541,"AN"],[1542,1543,"ON"],[1544,1544,"AL"],[1545,1546,"ET"],[1547,1547,"AL"],[1548,1548,"CS"],[1549,1549,"AL"],[1550,1551,"ON"],[1552,1562,"NSM"],[1563,1610,"AL"],[1611,1631,"NSM"],[1632,1641,"AN"],[1642,1642,"ET"],[1643,1644,"AN"],[1645,1647,"AL"],[1648,1648,"NSM"],[1649,1749,"AL"],[1750,1756,"NSM"],[1757,1757,"AN"],[1758,1758,"ON"],[1759,1764,"NSM"],[1765,1766,"AL"],[1767,1768,"NSM"],[1769,1769,"ON"],[1770,1773,"NSM"],[1774,1775,"AL"],[1776,1785,"EN"],[1786,1808,"AL"],[1809,1809,"NSM"],[1810,1839,"AL"],[1840,1866,"NSM"],[1867,1957,"AL"],[1958,1968,"NSM"],[1969,1983,"AL"],[1984,2026,"R"],[2027,2035,"NSM"],[2036,2037,"R"],[2038,2041,"ON"],[2042,2044,"R"],[2045,2045,"NSM"],[2046,2069,"R"],[2070,2073,"NSM"],[2074,2074,"R"],[2075,2083,"NSM"],[2084,2084,"R"],[2085,2087,"NSM"],[2088,2088,"R"],[2089,2093,"NSM"],[2094,2136,"R"],[2137,2139,"NSM"],[2140,2143,"R"],[2144,2191,"AL"],[2192,2193,"AN"],[2194,2198,"AL"],[2199,2207,"NSM"],[2208,2249,"AL"],[2250,2273,"NSM"],[2274,2274,"AN"],[2275,2306,"NSM"],[2362,2362,"NSM"],[2364,2364,"NSM"],[2369,2376,"NSM"],[2381,2381,"NSM"],[2385,2391,"NSM"],[2402,2403,"NSM"],[2433,2433,"NSM"],[2492,2492,"NSM"],[2497,2500,"NSM"],[2509,2509,"NSM"],[2530,2531,"NSM"],[2546,2547,"ET"],[2555,2555,"ET"],[2558,2558,"NSM"],[2561,2562,"NSM"],[2620,2620,"NSM"],[2625,2626,"NSM"],[2631,2632,"NSM"],[2635,2637,"NSM"],[2641,2641,"NSM"],[2672,2673,"NSM"],[2677,2677,"NSM"],[2689,2690,"NSM"],[2748,2748,"NSM"],[2753,2757,"NSM"],[2759,2760,"NSM"],[2765,2765,"NSM"],[2786,2787,"NSM"],[2801,2801,"ET"],[2810,2815,"NSM"],[2817,2817,"NSM"],[2876,2876,"NSM"],[2879,2879,"NSM"],[2881,2884,"NSM"],[2893,2893,"NSM"],[2901,2902,"NSM"],[2914,2915,"NSM"],[2946,2946,"NSM"],[3008,3008,"NSM"],[3021,3021,"NSM"],[3059,3064,"ON"],[3065,3065,"ET"],[3066,3066,"ON"],[3072,3072,"NSM"],[3076,3076,"NSM"],[3132,3132,"NSM"],[3134,3136,"NSM"],[3142,3144,"NSM"],[3146,3149,"NSM"],[3157,3158,"NSM"],[3170,3171,"NSM"],[3192,3198,"ON"],[3201,3201,"NSM"],[3260,3260,"NSM"],[3276,3277,"NSM"],[3298,3299,"NSM"],[3328,3329,"NSM"],[3387,3388,"NSM"],[3393,3396,"NSM"],[3405,3405,"NSM"],[3426,3427,"NSM"],[3457,3457,"NSM"],[3530,3530,"NSM"],[3538,3540,"NSM"],[3542,3542,"NSM"],[3633,3633,"NSM"],[3636,3642,"NSM"],[3647,3647,"ET"],[3655,3662,"NSM"],[3761,3761,"NSM"],[3764,3772,"NSM"],[3784,3790,"NSM"],[3864,3865,"NSM"],[3893,3893,"NSM"],[3895,3895,"NSM"],[3897,3897,"NSM"],[3898,3901,"ON"],[3953,3966,"NSM"],[3968,3972,"NSM"],[3974,3975,"NSM"],[3981,3991,"NSM"],[3993,4028,"NSM"],[4038,4038,"NSM"],[4141,4144,"NSM"],[4146,4151,"NSM"],[4153,4154,"NSM"],[4157,4158,"NSM"],[4184,4185,"NSM"],[4190,4192,"NSM"],[4209,4212,"NSM"],[4226,4226,"NSM"],[4229,4230,"NSM"],[4237,4237,"NSM"],[4253,4253,"NSM"],[4957,4959,"NSM"],[5008,5017,"ON"],[5120,5120,"ON"],[5760,5760,"WS"],[5787,5788,"ON"],[5906,5908,"NSM"],[5938,5939,"NSM"],[5970,5971,"NSM"],[6002,6003,"NSM"],[6068,6069,"NSM"],[6071,6077,"NSM"],[6086,6086,"NSM"],[6089,6099,"NSM"],[6107,6107,"ET"],[6109,6109,"NSM"],[6128,6137,"ON"],[6144,6154,"ON"],[6155,6157,"NSM"],[6158,6158,"BN"],[6159,6159,"NSM"],[6277,6278,"NSM"],[6313,6313,"NSM"],[6432,6434,"NSM"],[6439,6440,"NSM"],[6450,6450,"NSM"],[6457,6459,"NSM"],[6464,6464,"ON"],[6468,6469,"ON"],[6622,6655,"ON"],[6679,6680,"NSM"],[6683,6683,"NSM"],[6742,6742,"NSM"],[6744,6750,"NSM"],[6752,6752,"NSM"],[6754,6754,"NSM"],[6757,6764,"NSM"],[6771,6780,"NSM"],[6783,6783,"NSM"],[6832,6877,"NSM"],[6880,6891,"NSM"],[6912,6915,"NSM"],[6964,6964,"NSM"],[6966,6970,"NSM"],[6972,6972,"NSM"],[6978,6978,"NSM"],[7019,7027,"NSM"],[7040,7041,"NSM"],[7074,7077,"NSM"],[7080,7081,"NSM"],[7083,7085,"NSM"],[7142,7142,"NSM"],[7144,7145,"NSM"],[7149,7149,"NSM"],[7151,7153,"NSM"],[7212,7219,"NSM"],[7222,7223,"NSM"],[7376,7378,"NSM"],[7380,7392,"NSM"],[7394,7400,"NSM"],[7405,7405,"NSM"],[7412,7412,"NSM"],[7416,7417,"NSM"],[7616,7679,"NSM"],[8125,8125,"ON"],[8127,8129,"ON"],[8141,8143,"ON"],[8157,8159,"ON"],[8173,8175,"ON"],[8189,8190,"ON"],[8192,8202,"WS"],[8203,8205,"BN"],[8207,8207,"R"],[8208,8231,"ON"],[8232,8232,"WS"],[8233,8233,"B"],[8234,8238,"BN"],[8239,8239,"CS"],[8240,8244,"ET"],[8245,8259,"ON"],[8260,8260,"CS"],[8261,8286,"ON"],[8287,8287,"WS"],[8288,8303,"BN"],[8304,8304,"EN"],[8308,8313,"EN"],[8314,8315,"ES"],[8316,8318,"ON"],[8320,8329,"EN"],[8330,8331,"ES"],[8332,8334,"ON"],[8352,8399,"ET"],[8400,8432,"NSM"],[8448,8449,"ON"],[8451,8454,"ON"],[8456,8457,"ON"],[8468,8468,"ON"],[8470,8472,"ON"],[8478,8483,"ON"],[8485,8485,"ON"],[8487,8487,"ON"],[8489,8489,"ON"],[8494,8494,"ET"],[8506,8507,"ON"],[8512,8516,"ON"],[8522,8525,"ON"],[8528,8543,"ON"],[8585,8587,"ON"],[8592,8721,"ON"],[8722,8722,"ES"],[8723,8723,"ET"],[8724,9013,"ON"],[9083,9108,"ON"],[9110,9257,"ON"],[9280,9290,"ON"],[9312,9351,"ON"],[9352,9371,"EN"],[9450,9899,"ON"],[9901,10239,"ON"],[10496,11123,"ON"],[11126,11263,"ON"],[11493,11498,"ON"],[11503,11505,"NSM"],[11513,11519,"ON"],[11647,11647,"NSM"],[11744,11775,"NSM"],[11776,11869,"ON"],[11904,11929,"ON"],[11931,12019,"ON"],[12032,12245,"ON"],[12272,12287,"ON"],[12288,12288,"WS"],[12289,12292,"ON"],[12296,12320,"ON"],[12330,12333,"NSM"],[12336,12336,"ON"],[12342,12343,"ON"],[12349,12351,"ON"],[12441,12442,"NSM"],[12443,12444,"ON"],[12448,12448,"ON"],[12539,12539,"ON"],[12736,12773,"ON"],[12783,12783,"ON"],[12829,12830,"ON"],[12880,12895,"ON"],[12924,12926,"ON"],[12977,12991,"ON"],[13004,13007,"ON"],[13175,13178,"ON"],[13278,13279,"ON"],[13311,13311,"ON"],[19904,19967,"ON"],[42128,42182,"ON"],[42509,42511,"ON"],[42607,42610,"NSM"],[42611,42611,"ON"],[42612,42621,"NSM"],[42622,42623,"ON"],[42654,42655,"NSM"],[42736,42737,"NSM"],[42752,42785,"ON"],[42888,42888,"ON"],[43010,43010,"NSM"],[43014,43014,"NSM"],[43019,43019,"NSM"],[43045,43046,"NSM"],[43048,43051,"ON"],[43052,43052,"NSM"],[43064,43065,"ET"],[43124,43127,"ON"],[43204,43205,"NSM"],[43232,43249,"NSM"],[43263,43263,"NSM"],[43302,43309,"NSM"],[43335,43345,"NSM"],[43392,43394,"NSM"],[43443,43443,"NSM"],[43446,43449,"NSM"],[43452,43453,"NSM"],[43493,43493,"NSM"],[43561,43566,"NSM"],[43569,43570,"NSM"],[43573,43574,"NSM"],[43587,43587,"NSM"],[43596,43596,"NSM"],[43644,43644,"NSM"],[43696,43696,"NSM"],[43698,43700,"NSM"],[43703,43704,"NSM"],[43710,43711,"NSM"],[43713,43713,"NSM"],[43756,43757,"NSM"],[43766,43766,"NSM"],[43882,43883,"ON"],[44005,44005,"NSM"],[44008,44008,"NSM"],[44013,44013,"NSM"],[64285,64285,"R"],[64286,64286,"NSM"],[64287,64296,"R"],[64297,64297,"ES"],[64298,64335,"R"],[64336,64450,"AL"],[64451,64466,"ON"],[64467,64829,"AL"],[64830,64847,"ON"],[64848,64911,"AL"],[64912,64913,"ON"],[64914,64967,"AL"],[64968,64975,"ON"],[64976,65007,"BN"],[65008,65020,"AL"],[65021,65023,"ON"],[65024,65039,"NSM"],[65040,65049,"ON"],[65056,65071,"NSM"],[65072,65103,"ON"],[65104,65104,"CS"],[65105,65105,"ON"],[65106,65106,"CS"],[65108,65108,"ON"],[65109,65109,"CS"],[65110,65118,"ON"],[65119,65119,"ET"],[65120,65121,"ON"],[65122,65123,"ES"],[65124,65126,"ON"],[65128,65128,"ON"],[65129,65130,"ET"],[65131,65131,"ON"],[65136,65278,"AL"],[65279,65279,"BN"],[65281,65282,"ON"],[65283,65285,"ET"],[65286,65290,"ON"],[65291,65291,"ES"],[65292,65292,"CS"],[65293,65293,"ES"],[65294,65295,"CS"],[65296,65305,"EN"],[65306,65306,"CS"],[65307,65312,"ON"],[65339,65344,"ON"],[65371,65381,"ON"],[65504,65505,"ET"],[65506,65508,"ON"],[65509,65510,"ET"],[65512,65518,"ON"],[65520,65528,"BN"],[65529,65533,"ON"],[65534,65535,"BN"],[65793,65793,"ON"],[65856,65932,"ON"],[65936,65948,"ON"],[65952,65952,"ON"],[66045,66045,"NSM"],[66272,66272,"NSM"],[66273,66299,"EN"],[66422,66426,"NSM"],[67584,67870,"R"],[67871,67871,"ON"],[67872,68096,"R"],[68097,68099,"NSM"],[68100,68100,"R"],[68101,68102,"NSM"],[68103,68107,"R"],[68108,68111,"NSM"],[68112,68151,"R"],[68152,68154,"NSM"],[68155,68158,"R"],[68159,68159,"NSM"],[68160,68324,"R"],[68325,68326,"NSM"],[68327,68408,"R"],[68409,68415,"ON"],[68416,68863,"R"],[68864,68899,"AL"],[68900,68903,"NSM"],[68904,68911,"AL"],[68912,68921,"AN"],[68922,68927,"AL"],[68928,68937,"AN"],[68938,68968,"R"],[68969,68973,"NSM"],[68974,68974,"ON"],[68975,69215,"R"],[69216,69246,"AN"],[69247,69290,"R"],[69291,69292,"NSM"],[69293,69311,"R"],[69312,69327,"AL"],[69328,69336,"ON"],[69337,69369,"AL"],[69370,69375,"NSM"],[69376,69423,"R"],[69424,69445,"AL"],[69446,69456,"NSM"],[69457,69487,"AL"],[69488,69505,"R"],[69506,69509,"NSM"],[69510,69631,"R"],[69633,69633,"NSM"],[69688,69702,"NSM"],[69714,69733,"ON"],[69744,69744,"NSM"],[69747,69748,"NSM"],[69759,69761,"NSM"],[69811,69814,"NSM"],[69817,69818,"NSM"],[69826,69826,"NSM"],[69888,69890,"NSM"],[69927,69931,"NSM"],[69933,69940,"NSM"],[70003,70003,"NSM"],[70016,70017,"NSM"],[70070,70078,"NSM"],[70089,70092,"NSM"],[70095,70095,"NSM"],[70191,70193,"NSM"],[70196,70196,"NSM"],[70198,70199,"NSM"],[70206,70206,"NSM"],[70209,70209,"NSM"],[70367,70367,"NSM"],[70371,70378,"NSM"],[70400,70401,"NSM"],[70459,70460,"NSM"],[70464,70464,"NSM"],[70502,70508,"NSM"],[70512,70516,"NSM"],[70587,70592,"NSM"],[70606,70606,"NSM"],[70608,70608,"NSM"],[70610,70610,"NSM"],[70625,70626,"NSM"],[70712,70719,"NSM"],[70722,70724,"NSM"],[70726,70726,"NSM"],[70750,70750,"NSM"],[70835,70840,"NSM"],[70842,70842,"NSM"],[70847,70848,"NSM"],[70850,70851,"NSM"],[71090,71093,"NSM"],[71100,71101,"NSM"],[71103,71104,"NSM"],[71132,71133,"NSM"],[71219,71226,"NSM"],[71229,71229,"NSM"],[71231,71232,"NSM"],[71264,71276,"ON"],[71339,71339,"NSM"],[71341,71341,"NSM"],[71344,71349,"NSM"],[71351,71351,"NSM"],[71453,71453,"NSM"],[71455,71455,"NSM"],[71458,71461,"NSM"],[71463,71467,"NSM"],[71727,71735,"NSM"],[71737,71738,"NSM"],[71995,71996,"NSM"],[71998,71998,"NSM"],[72003,72003,"NSM"],[72148,72151,"NSM"],[72154,72155,"NSM"],[72160,72160,"NSM"],[72193,72198,"NSM"],[72201,72202,"NSM"],[72243,72248,"NSM"],[72251,72254,"NSM"],[72263,72263,"NSM"],[72273,72278,"NSM"],[72281,72283,"NSM"],[72330,72342,"NSM"],[72344,72345,"NSM"],[72544,72544,"NSM"],[72546,72548,"NSM"],[72550,72550,"NSM"],[72752,72758,"NSM"],[72760,72765,"NSM"],[72850,72871,"NSM"],[72874,72880,"NSM"],[72882,72883,"NSM"],[72885,72886,"NSM"],[73009,73014,"NSM"],[73018,73018,"NSM"],[73020,73021,"NSM"],[73023,73029,"NSM"],[73031,73031,"NSM"],[73104,73105,"NSM"],[73109,73109,"NSM"],[73111,73111,"NSM"],[73459,73460,"NSM"],[73472,73473,"NSM"],[73526,73530,"NSM"],[73536,73536,"NSM"],[73538,73538,"NSM"],[73562,73562,"NSM"],[73685,73692,"ON"],[73693,73696,"ET"],[73697,73713,"ON"],[78912,78912,"NSM"],[78919,78933,"NSM"],[90398,90409,"NSM"],[90413,90415,"NSM"],[92912,92916,"NSM"],[92976,92982,"NSM"],[94031,94031,"NSM"],[94095,94098,"NSM"],[94178,94178,"ON"],[94180,94180,"NSM"],[113821,113822,"NSM"],[113824,113827,"BN"],[117760,117973,"ON"],[118e3,118009,"EN"],[118010,118012,"ON"],[118016,118451,"ON"],[118458,118480,"ON"],[118496,118512,"ON"],[118528,118573,"NSM"],[118576,118598,"NSM"],[119143,119145,"NSM"],[119155,119162,"BN"],[119163,119170,"NSM"],[119173,119179,"NSM"],[119210,119213,"NSM"],[119273,119274,"ON"],[119296,119361,"ON"],[119362,119364,"NSM"],[119365,119365,"ON"],[119552,119638,"ON"],[120513,120513,"ON"],[120539,120539,"ON"],[120571,120571,"ON"],[120597,120597,"ON"],[120629,120629,"ON"],[120655,120655,"ON"],[120687,120687,"ON"],[120713,120713,"ON"],[120745,120745,"ON"],[120771,120771,"ON"],[120782,120831,"EN"],[121344,121398,"NSM"],[121403,121452,"NSM"],[121461,121461,"NSM"],[121476,121476,"NSM"],[121499,121503,"NSM"],[121505,121519,"NSM"],[122880,122886,"NSM"],[122888,122904,"NSM"],[122907,122913,"NSM"],[122915,122916,"NSM"],[122918,122922,"NSM"],[123023,123023,"NSM"],[123184,123190,"NSM"],[123566,123566,"NSM"],[123628,123631,"NSM"],[123647,123647,"ET"],[124140,124143,"NSM"],[124398,124399,"NSM"],[124643,124643,"NSM"],[124646,124646,"NSM"],[124654,124655,"NSM"],[124661,124661,"NSM"],[124928,125135,"R"],[125136,125142,"NSM"],[125143,125251,"R"],[125252,125258,"NSM"],[125259,126063,"R"],[126064,126143,"AL"],[126144,126207,"R"],[126208,126287,"AL"],[126288,126463,"R"],[126464,126703,"AL"],[126704,126705,"ON"],[126706,126719,"AL"],[126720,126975,"R"],[126976,127019,"ON"],[127024,127123,"ON"],[127136,127150,"ON"],[127153,127167,"ON"],[127169,127183,"ON"],[127185,127221,"ON"],[127232,127242,"EN"],[127243,127247,"ON"],[127279,127279,"ON"],[127338,127343,"ON"],[127405,127405,"ON"],[127584,127589,"ON"],[127744,128728,"ON"],[128732,128748,"ON"],[128752,128764,"ON"],[128768,128985,"ON"],[128992,129003,"ON"],[129008,129008,"ON"],[129024,129035,"ON"],[129040,129095,"ON"],[129104,129113,"ON"],[129120,129159,"ON"],[129168,129197,"ON"],[129200,129211,"ON"],[129216,129217,"ON"],[129232,129240,"ON"],[129280,129623,"ON"],[129632,129645,"ON"],[129648,129660,"ON"],[129664,129674,"ON"],[129678,129734,"ON"],[129736,129736,"ON"],[129741,129756,"ON"],[129759,129770,"ON"],[129775,129784,"ON"],[129792,129938,"ON"],[129940,130031,"ON"],[130032,130041,"EN"],[130042,130042,"ON"],[131070,131071,"BN"],[196606,196607,"BN"],[262142,262143,"BN"],[327678,327679,"BN"],[393214,393215,"BN"],[458750,458751,"BN"],[524286,524287,"BN"],[589822,589823,"BN"],[655358,655359,"BN"],[720894,720895,"BN"],[786430,786431,"BN"],[851966,851967,"BN"],[917502,917759,"BN"],[917760,917999,"NSM"],[918e3,921599,"BN"],[983038,983039,"BN"],[1048574,1048575,"BN"],[1114110,1114111,"BN"]];function od(t){if(t<=255)return zs[t];let e=0,n=ji.length-1;for(;e<=n;){let i=e+n>>1,r=ji[i];if(t<r[0]){n=i-1;continue}if(t>r[1]){e=i+1;continue}return r[2]}return"L"}function sd(t){let e=t.length;if(e===0)return null;let n=new Array(e),i=!1;for(let l=0;l<e;){let u=t.charCodeAt(l),m=u,f=1;if(u>=55296&&u<=56319&&l+1<e){let A=t.charCodeAt(l+1);A>=56320&&A<=57343&&(m=(u-55296<<10)+(A-56320)+65536,f=2)}let g=od(m);(g==="R"||g==="AL"||g==="AN")&&(i=!0);for(let A=0;A<f;A++)n[l+A]=g;l+=f}if(!i)return null;let r=0;for(let l=0;l<e;l++){let u=n[l];if(u==="L"){r=0;break}if(u==="R"||u==="AL"){r=1;break}}let o=new Int8Array(e);for(let l=0;l<e;l++)o[l]=r;let s=r&1?"R":"L",c=s,a=c;for(let l=0;l<e;l++)n[l]==="NSM"?n[l]=a:a=n[l];a=c;for(let l=0;l<e;l++){let u=n[l];u==="EN"?n[l]=a==="AL"?"AN":"EN":(u==="R"||u==="L"||u==="AL")&&(a=u)}for(let l=0;l<e;l++)n[l]==="AL"&&(n[l]="R");for(let l=1;l<e-1;l++)n[l]==="ES"&&n[l-1]==="EN"&&n[l+1]==="EN"&&(n[l]="EN"),n[l]==="CS"&&(n[l-1]==="EN"||n[l-1]==="AN")&&n[l+1]===n[l-1]&&(n[l]=n[l-1]);for(let l=0;l<e;l++){if(n[l]!=="EN")continue;let u;for(u=l-1;u>=0&&n[u]==="ET";u--)n[u]="EN";for(u=l+1;u<e&&n[u]==="ET";u++)n[u]="EN"}for(let l=0;l<e;l++){let u=n[l];(u==="WS"||u==="ES"||u==="ET"||u==="CS")&&(n[l]="ON")}a=c;for(let l=0;l<e;l++){let u=n[l];u==="EN"?n[l]=a==="L"?"L":"EN":(u==="R"||u==="L")&&(a=u)}for(let l=0;l<e;l++){if(n[l]!=="ON")continue;let u=l+1;for(;u<e&&n[u]==="ON";)u++;let m=l>0?n[l-1]:c,f=u<e?n[u]:c,g=m!=="L"?"R":"L";if(g===(f!=="L"?"R":"L"))for(let y=l;y<u;y++)n[y]=g;l=u-1}for(let l=0;l<e;l++)n[l]==="ON"&&(n[l]=s);for(let l=0;l<e;l++){let u=n[l];(o[l]&1)===0?u==="R"?o[l]++:(u==="AN"||u==="EN")&&(o[l]+=2):(u==="L"||u==="AN"||u==="EN")&&o[l]++}return o}function js(t,e){let n=sd(t);if(n===null)return null;let i=new Int8Array(e.length);for(let r=0;r<e.length;r++)i[r]=n[e[r]];return i}var ad=/[ \\t\\n\\r\\f]+/g,ld=/[\\t\\n\\r\\f]| {2,}|^ | $/;function ud(t){let e=t??"normal";return e==="pre-wrap"?{mode:e,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:e,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function cd(t){if(!ld.test(t))return t;let e=t.replace(ad," ");return e.charCodeAt(0)===32&&(e=e.slice(1)),e.length>0&&e.charCodeAt(e.length-1)===32&&(e=e.slice(0,-1)),e}function dd(t){return/[\\r\\f]/.test(t)?t.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):t.replace(/\\r\\n/g,`\n`)}var qi=null,fd;function md(){return qi===null&&(qi=new Intl.Segmenter(fd,{granularity:"word"})),qi}var pd=/\\p{Script=Arabic}/u,Tn=/\\p{M}/u,Zs=/\\p{Nd}/u;function qs(t){return pd.test(t)}function $s(t){return t>=19968&&t<=40959||t>=13312&&t<=19903||t>=131072&&t<=173791||t>=173824&&t<=177983||t>=177984&&t<=178207||t>=178208&&t<=183983||t>=183984&&t<=191471||t>=191472&&t<=192093||t>=194560&&t<=195103||t>=196608&&t<=201551||t>=201552&&t<=205743||t>=205744&&t<=210041||t>=63744&&t<=64255||t>=12288&&t<=12351||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=65280&&t<=65519}function De(t){for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);if(!(n<12288)){if(n>=55296&&n<=56319&&e+1<t.length){let i=t.charCodeAt(e+1);if(i>=56320&&i<=57343){let r=(n-55296<<10)+(i-56320)+65536;if($s(r))return!0;e++;continue}}if($s(n))return!0}}return!1}function hd(t){let e=Rn(t);return e!==null&&(vn.has(e)||Xe.has(e))}var xd=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function gd(t){return De(t)}function yd(t){let e=Rn(t);return e!==null&&xd.has(e)}function Ln(t){return!hd(t)&&!yd(t)}var vn=new Set(["\\uFF0C","\\uFF0E","\\uFF01","\\uFF1A","\\uFF1B","\\uFF1F","\\u3001","\\u3002","\\u30FB","\\uFF09","\\u3015","\\u3009","\\u300B","\\u300D","\\u300F","\\u3011","\\u3017","\\u3019","\\u301B","\\u30FC","\\u3005","\\u303B","\\u309D","\\u309E","\\u30FD","\\u30FE"]),nn=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),Ki=new Set(["\'","\\u2019"]),Xe=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),bd=new Set([":",".","\\u060C","\\u061B"]),Sd=new Set(["\\u104F"]),Ad=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function Ed(t){if(Ji(t))return!0;let e=!1;for(let n of t){if(Xe.has(n)){e=!0;continue}if(!(e&&Tn.test(n)))return!1}return e}function wd(t){for(let e of t)if(!vn.has(e)&&!Xe.has(e))return!1;return t.length>0}function Cd(t){if(Ji(t))return!0;for(let e of t)if(!nn.has(e)&&!Ki.has(e)&&!Tn.test(e))return!1;return t.length>0}function Ji(t){let e=!1;for(let n of t)if(!(n==="\\\\"||Tn.test(n))){if(nn.has(n)||Xe.has(n)||Ki.has(n)){e=!0;continue}return!1}return e}function ea(t,e){let n=e-1;if(n<=0)return Math.max(n,0);let i=t.charCodeAt(n);if(i<56320||i>57343)return n;let r=n-1;if(r<0)return n;let o=t.charCodeAt(r);return o>=55296&&o<=56319?r:n}function Rn(t){if(t.length===0)return null;let e=ea(t,t.length);return t.slice(e)}function Fd(t){let e=Array.from(t),n=e.length;for(;n>0;){let i=e[n-1];if(Tn.test(i)){n--;continue}if(nn.has(i)||Ki.has(i)){n--;continue}break}return n<=0||n===e.length?null:{head:e.slice(0,n).join(""),tail:e.slice(n).join("")}}function Md(t,e,n){return n==="text"&&!e&&t.length===1&&t!=="-"&&t!=="\\u2014"?t:null}function Ks(t,e,n,i){let r=e[i],o=t[i];if(r==null)return o;let s=n[i];if(o.length===s)return o;let c=r.repeat(s);return t[i]=c,c}function Js(t,e){return t&&e!==null&&bd.has(e)}function Nd(t){let e=Rn(t);return e!==null&&Sd.has(e)}function _d(t){if(t.length<2||t[0]!==" ")return null;let e=t.slice(1);return/^\\p{M}+$/u.test(e)?{space:" ",marks:e}:null}function kn(t){let e=t.length;for(;e>0;){let n=ea(t,e),i=t.slice(n,e);if(Ad.has(i))return!0;if(!Xe.has(i))return!1;e=n}return!1}function Td(t,e){if(e.preserveOrdinarySpaces||e.preserveHardBreaks){if(t===" ")return"preserved-space";if(t===" ")return"tab";if(e.preserveHardBreaks&&t===`\n`)return"hard-break"}return t===" "?"space":t==="\\xA0"||t==="\\u202F"||t==="\\u2060"||t==="\\uFEFF"?"glue":t==="\\u200B"?"zero-width-break":t==="\\xAD"?"soft-hyphen":"text"}var Ld=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function Te(t){return t.length===1?t[0]:t.join("")}function vd(t,e){let n=[];for(let i=t.length-1;i>=0;i--)n.push(t[i]);return n.push(e),Te(n)}function Rd(t,e,n,i){if(!Ld.test(t))return[{text:t,isWordLike:e,kind:"text",start:n}];let r=[],o=null,s=[],c=n,a=!1,l=0;for(let u of t){let m=Td(u,i),f=m==="text"&&e;if(o!==null&&m===o&&f===a){s.push(u),l+=u.length;continue}o!==null&&r.push({text:Te(s),isWordLike:a,kind:o,start:c}),o=m,s=[u],c=n+l,a=f,l+=u.length}return o!==null&&r.push({text:Te(s),isWordLike:a,kind:o,start:c}),r}function $i(t){return t==="space"||t==="preserved-space"||t==="zero-width-break"||t==="hard-break"}var kd=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function Dd(t,e){let n=t.texts[e];return n.startsWith("www.")?!0:kd.test(n)&&e+1<t.len&&t.kinds[e+1]==="text"&&t.texts[e+1]==="//"}function Id(t){return t.includes("?")&&(t.includes("://")||t.startsWith("www."))}function Pd(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let s=0;s<t.len;s++){if(i[s]!=="text"||!Dd(t,s))continue;let c=[e[s]],a=s+1;for(;a<t.len&&!$i(i[a]);){c.push(e[a]),n[s]=!0;let l=e[a].includes("?");if(i[a]="text",e[a]="",a++,l)break}e[s]=Te(c)}let o=0;for(let s=0;s<e.length;s++){let c=e[s];c.length!==0&&(o!==s&&(e[o]=c,n[o]=n[s],i[o]=i[s],r[o]=r[s]),o++)}return e.length=o,n.length=o,i.length=o,r.length=o,{len:o,texts:e,isWordLike:n,kinds:i,starts:r}}function Od(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o]),!Id(s))continue;let c=o+1;if(c>=t.len||$i(t.kinds[c]))continue;let a=[],l=t.starts[c],u=c;for(;u<t.len&&!$i(t.kinds[u]);)a.push(t.texts[u]),u++;a.length>0&&(e.push(Te(a)),n.push(!0),i.push("text"),r.push(l),o=u-1)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}var Bd=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Ys=/^[A-Za-z0-9_]+[,:;]*$/,Xs=/[,:;]+$/;function ta(t){for(let e of t)if(Zs.test(e))return!0;return!1}function tn(t){if(t.length===0)return!1;for(let e of t)if(!(Zs.test(e)||Bd.has(e)))return!1;return!0}function Hd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],c=t.kinds[o];if(c==="text"&&tn(s)&&ta(s)){let a=[s],l=o+1;for(;l<t.len&&t.kinds[l]==="text"&&tn(t.texts[l]);)a.push(t.texts[l]),l++;e.push(Te(a)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=l-1;continue}e.push(s),n.push(t.isWordLike[o]),i.push(c),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Wd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],c=t.kinds[o],a=t.isWordLike[o];if(c==="text"&&a&&Ys.test(s)){let l=[s],u=Xs.test(s),m=o+1;for(;u&&m<t.len&&t.kinds[m]==="text"&&t.isWordLike[m]&&Ys.test(t.texts[m]);){let f=t.texts[m];l.push(f),u=Xs.test(f),m++}e.push(Te(l)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=m-1;continue}e.push(s),n.push(a),i.push(c),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Gd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(t.kinds[o]==="text"&&s.includes("-")){let c=s.split("-"),a=c.length>1;for(let l=0;l<c.length;l++){let u=c[l];if(!a)break;(u.length===0||!ta(u)||!tn(u))&&(a=!1)}if(a){let l=0;for(let u=0;u<c.length;u++){let m=c[u],f=u<c.length-1?`${m}-`:m;e.push(f),n.push(!0),i.push("text"),r.push(t.starts[o]+l),l+=f.length}continue}}e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Ud(t){let e=[],n=[],i=[],r=[],o=0;for(;o<t.len;){let s=[t.texts[o]],c=t.isWordLike[o],a=t.kinds[o],l=t.starts[o];if(a==="glue"){let u=[s[0]],m=l;for(o++;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let f=Te(u);if(o<t.len&&t.kinds[o]==="text")s[0]=f,s.push(t.texts[o]),c=t.isWordLike[o],a="text",l=m,o++;else{e.push(f),n.push(!1),i.push("glue"),r.push(m);continue}}else o++;if(a==="text")for(;o<t.len&&t.kinds[o]==="glue";){let u=[];for(;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let m=Te(u);if(o<t.len&&t.kinds[o]==="text"){s.push(m,t.texts[o]),c=c||t.isWordLike[o],o++;continue}s.push(m)}e.push(Te(s)),n.push(c),i.push(a),r.push(l)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Vd(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let o=0;o<e.length-1;o++){if(i[o]!=="text"||i[o+1]!=="text"||!De(e[o])||!De(e[o+1]))continue;let s=Fd(e[o]);s!==null&&(e[o]=s.head,e[o+1]=s.tail+e[o+1],r[o+1]=r[o]+s.head.length)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Qs(t,e,n){let i=md(),r=0,o=[],s=[],c=[],a=[],l=[],u=[],m=[],f=[],g=[],A=[],y=[],x=[];for(let _ of i.segment(t))for(let S of Rd(_.segment,_.isWordLike??!1,_.index,n)){let se=function(){u[P]!==null&&(s[P]=[Ks(o,u,m,P)],u[P]=null),s[P].push(S.text),c[P]=c[P]||S.isWordLike,f[P]=f[P]||T,g[P]=g[P]||R,A[P]=j,y[P]=ie,x[P]=Js(g[P],G)},C=S.kind==="text",F=Md(S.text,S.isWordLike,S.kind),T=De(S.text),R=qs(S.text),G=Rn(S.text),j=kn(S.text),ie=Nd(S.text),P=r-1;e.carryCJKAfterClosingQuote&&C&&r>0&&a[P]==="text"&&T&&f[P]&&A[P]||C&&r>0&&a[P]==="text"&&wd(S.text)&&f[P]||C&&r>0&&a[P]==="text"&&y[P]?se():C&&r>0&&a[P]==="text"&&S.isWordLike&&R&&x[P]?(se(),c[P]=!0):F!==null&&r>0&&a[P]==="text"&&u[P]===F?m[P]=(m[P]??1)+1:C&&!S.isWordLike&&r>0&&a[P]==="text"&&(Ed(S.text)||S.text==="-"&&c[P])?se():(o[r]=S.text,s[r]=[S.text],c[r]=S.isWordLike,a[r]=S.kind,l[r]=S.start,u[r]=F,m[r]=F===null?0:1,f[r]=T,g[r]=R,A[r]=j,y[r]=ie,x[r]=Js(R,G),r++)}for(let _=0;_<r;_++){if(u[_]!==null){o[_]=Ks(o,u,m,_);continue}o[_]=Te(s[_])}for(let _=1;_<r;_++)a[_]==="text"&&!c[_]&&Ji(o[_])&&a[_-1]==="text"&&(o[_-1]+=o[_],c[_-1]=c[_-1]||c[_],o[_]="");let w=Array.from({length:r},()=>null),N=-1;for(let _=r-1;_>=0;_--){let S=o[_];if(S.length!==0){if(a[_]==="text"&&!c[_]&&Cd(S)&&N>=0&&a[N]==="text"){let C=w[N]??[];C.push(S),w[N]=C,l[N]=l[_],o[_]="";continue}N=_}}for(let _=0;_<r;_++){let S=w[_];S!=null&&(o[_]=vd(S,o[_]))}let L=0;for(let _=0;_<r;_++){let S=o[_];S.length!==0&&(L!==_&&(o[L]=S,c[L]=c[_],a[L]=a[_],l[L]=l[_]),L++)}o.length=L,c.length=L,a.length=L,l.length=L;let $=Ud({len:L,texts:o,isWordLike:c,kinds:a,starts:l}),B=Vd(Wd(Gd(Hd(Od(Pd($))))));for(let _=0;_<B.len-1;_++){let S=_d(B.texts[_]);S!==null&&(B.kinds[_]!=="space"&&B.kinds[_]!=="preserved-space"||B.kinds[_+1]!=="text"||!qs(B.texts[_+1])||(B.texts[_]=S.space,B.isWordLike[_]=!1,B.kinds[_]=B.kinds[_]==="preserved-space"?"preserved-space":"space",B.texts[_+1]=S.marks+B.texts[_+1],B.starts[_+1]=B.starts[_]+S.space.length))}return B}function zd(t,e){if(t.len===0)return[];if(!e.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}];let n=[],i=0;for(let r=0;r<t.len;r++)t.kinds[r]==="hard-break"&&(n.push({startSegmentIndex:i,endSegmentIndex:r,consumedEndSegmentIndex:r+1}),i=r+1);return i<t.len&&n.push({startSegmentIndex:i,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}),n}function jd(t){if(t.len<=1)return t;let e=[],n=[],i=[],r=[],o=null,s=!1,c=0,a=!1,l=!1;function u(){o!==null&&(e.push(Te(o)),n.push(s),i.push("text"),r.push(c),o=null)}for(let m=0;m<t.len;m++){let f=t.texts[m],g=t.kinds[m],A=t.isWordLike[m],y=t.starts[m];if(g==="text"){let x=gd(f),w=Ln(f);if(o!==null&&a&&l){o.push(f),s=s||A,a=a||x,l=w;continue}u(),o=[f],s=A,c=y,a=x,l=w;continue}u(),e.push(f),n.push(A),i.push(g),r.push(y)}return u(),{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function na(t,e,n="normal",i="normal"){let r=ud(n),o=r.mode==="pre-wrap"?dd(t):cd(t);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let s=i==="keep-all"?jd(Qs(o,e,r)):Qs(o,e,r);return{normalized:o,chunks:zd(s,r),...s}}var xt=null,ia=new Map,gt=null,qd=96,$d=/\\p{Emoji_Presentation}/u,Kd=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,Yi=null,ra=new Map;function Xi(){if(xt!==null)return xt;if(typeof OffscreenCanvas<"u")return xt=new OffscreenCanvas(1,1).getContext("2d"),xt;if(typeof document<"u")return xt=document.createElement("canvas").getContext("2d"),xt;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function Jd(t){let e=ia.get(t);return e||(e=new Map,ia.set(t,e)),e}function Ve(t,e){let n=e.get(t);return n===void 0&&(n={width:Xi().measureText(t).width,containsCJK:De(t)},e.set(t,n)),n}function yt(){if(gt!==null)return gt;if(typeof navigator>"u")return gt={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},gt;let t=navigator.userAgent,n=navigator.vendor==="Apple Computer, Inc."&&t.includes("Safari/")&&!t.includes("Chrome/")&&!t.includes("Chromium/")&&!t.includes("CriOS/")&&!t.includes("FxiOS/")&&!t.includes("EdgiOS/"),i=t.includes("Chrome/")||t.includes("Chromium/")||t.includes("CriOS/")||t.includes("Edg/");return gt={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:i,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},gt}function Yd(t){let e=t.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return e?parseFloat(e[1]):16}function oa(){return Yi===null&&(Yi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Yi}function Xd(t){return $d.test(t)||t.includes("\\uFE0F")}function sa(t){return Kd.test(t)}function Qd(t,e){let n=ra.get(t);if(n!==void 0)return n;let i=Xi();i.font=t;let r=i.measureText("\\u{1F600}").width;if(n=0,r>e+.5&&typeof document<"u"&&document.body!==null){let o=document.createElement("span");o.style.font=t,o.style.display="inline-block",o.style.visibility="hidden",o.style.position="absolute",o.textContent="\\u{1F600}",document.body.appendChild(o);let s=o.getBoundingClientRect().width;document.body.removeChild(o),r-s>.5&&(n=r-s)}return ra.set(t,n),n}function Zd(t){let e=0,n=oa();for(let i of n.segment(t))Xd(i.segment)&&e++;return e}function ef(t,e){return e.emojiCount===void 0&&(e.emojiCount=Zd(t)),e.emojiCount}function Qe(t,e,n){return n===0?e.width:e.width-ef(t,e)*n}function aa(t,e,n,i,r){if(e.breakableFitAdvances!==void 0)return e.breakableFitAdvances;let o=oa(),s=[];for(let u of o.segment(t))s.push(u.segment);if(s.length<=1)return e.breakableFitAdvances=null,e.breakableFitAdvances;if(r==="sum-graphemes"){let u=[];for(let m of s){let f=Ve(m,n);u.push(Qe(m,f,i))}return e.breakableFitAdvances=u,e.breakableFitAdvances}if(r==="pair-context"||s.length>qd){let u=[],m=null,f=0;for(let g of s){let A=Ve(g,n),y=Qe(g,A,i);if(m===null)u.push(y);else{let x=m+g,w=Ve(x,n);u.push(Qe(x,w,i)-f)}m=g,f=y}return e.breakableFitAdvances=u,e.breakableFitAdvances}let c=[],a="",l=0;for(let u of s){a+=u;let m=Ve(a,n),f=Qe(a,m,i);c.push(f-l),l=f}return e.breakableFitAdvances=c,e.breakableFitAdvances}function la(t,e){let n=Xi();n.font=t;let i=Jd(t),r=Yd(t),o=e?Qd(t,r):0;return{cache:i,fontSize:r,emojiCorrection:o}}function tf(t,e){for(;e<t.widths.length;){let n=t.kinds[e];if(n!=="space"&&n!=="zero-width-break"&&n!=="soft-hyphen")break;e++}return e}function nf(t,e){if(e<=0)return 0;let n=t%e;return Math.abs(n)<=1e-6?e:e-n}function rf(t,e,n,i,r){let o=0,s=e;for(;o<t.length;){let c=s+t[o];if((o+1<t.length?c+r:c)>n+i)break;s=c,o++}return{fitCount:o,fittedWidth:s}}function ua(t,e){return t.simpleLineWalkFastPath?ca(t,e):da(t,e)}function ca(t,e,n){let{widths:i,kinds:r,breakableFitAdvances:o}=t;if(i.length===0)return 0;let c=yt().lineFitEpsilon,a=e+c,l=0,u=0,m=!1,f=0,g=0,A=0,y=0,x=-1,w=0;function N(){x=-1,w=0}function L(F=A,T=y,R=u){l++,n?.({startSegmentIndex:f,startGraphemeIndex:g,endSegmentIndex:F,endGraphemeIndex:T,width:R}),u=0,m=!1,N()}function $(F,T){m=!0,f=F,g=0,A=F+1,y=0,u=T}function B(F,T,R){m=!0,f=F,g=T,A=F,y=T+1,u=R}function _(F,T){if(!m){$(F,T);return}u+=T,A=F+1,y=0}function S(F,T){let R=o[F];for(let G=T;G<R.length;G++){let j=R[G];m?u+j>a?(L(),B(F,G,j)):(u+=j,A=F,y=G+1):B(F,G,j)}m&&A===F&&y===R.length&&(A=F+1,y=0)}let C=0;for(;C<i.length&&!(!m&&(C=tf(t,C),C>=i.length));){let F=i[C],T=r[C],R=T==="space"||T==="preserved-space"||T==="tab"||T==="zero-width-break"||T==="soft-hyphen";if(!m){F>e&&o[C]!==null?S(C,0):$(C,F),R&&(x=C+1,w=u-F),C++;continue}if(u+F>a){if(R){_(C,F),L(C+1,0,u-F),C++;continue}if(x>=0){if(A>x||A===x&&y>0){L();continue}L(x,0,w);continue}if(F>e&&o[C]!==null){L(),S(C,0),C++;continue}L();continue}_(C,F),R&&(x=C+1,w=u-F),C++}return m&&L(),l}function da(t,e,n){if(t.simpleLineWalkFastPath)return ca(t,e,n);let{widths:i,lineEndFitAdvances:r,lineEndPaintAdvances:o,kinds:s,breakableFitAdvances:c,discretionaryHyphenWidth:a,tabStopAdvance:l,chunks:u}=t;if(i.length===0||u.length===0)return 0;let m=yt(),f=m.lineFitEpsilon,g=e+f,A=0,y=0,x=!1,w=0,N=0,L=0,$=0,B=-1,_=0,S=0,C=null;function F(){B=-1,_=0,S=0,C=null}function T(H=L,U=$,V=y){A++,n?.({startSegmentIndex:w,startGraphemeIndex:N,endSegmentIndex:H,endGraphemeIndex:U,width:V}),y=0,x=!1,F()}function R(H,U){x=!0,w=H,N=0,L=H+1,$=0,y=U}function G(H,U,V){x=!0,w=H,N=U,L=H,$=U+1,y=V}function j(H,U){if(!x){R(H,U);return}y+=U,L=H+1,$=0}function ie(H,U,V,re){if(!U)return;let Fe=H==="tab"?0:r[V],O=H==="tab"?re:o[V];B=V+1,_=y-re+Fe,S=y-re+O,C=H}function P(H,U){let V=c[H];for(let re=U;re<V.length;re++){let Fe=V[re];x?y+Fe>g?(T(),G(H,re,Fe)):(y+=Fe,L=H,$=re+1):G(H,re,Fe)}x&&L===H&&$===V.length&&(L=H+1,$=0)}function se(H){if(C!=="soft-hyphen")return!1;let U=c[H];if(U==null)return!1;let{fitCount:V,fittedWidth:re}=rf(U,y,e,f,a);return V===0?!1:(y=re,L=H,$=V,F(),V===U.length?(L=H+1,$=0,!0):(T(H,V,re+a),P(H,V),!0))}function Se(H){A++,n?.({startSegmentIndex:H.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:H.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),F()}for(let H=0;H<u.length;H++){let U=u[H];if(U.startSegmentIndex===U.endSegmentIndex){Se(U);continue}x=!1,y=0,w=U.startSegmentIndex,N=0,L=U.startSegmentIndex,$=0,F();let V=U.startSegmentIndex;for(;V<U.endSegmentIndex;){let re=s[V],Fe=re==="space"||re==="preserved-space"||re==="tab"||re==="zero-width-break"||re==="soft-hyphen",O=re==="tab"?nf(y,l):i[V];if(re==="soft-hyphen"){x&&(L=V+1,$=0,B=V+1,_=y+a,S=y+a,C=re),V++;continue}if(!x){O>e&&c[V]!==null?P(V,0):R(V,O),ie(re,Fe,V,O),V++;continue}if(y+O>g){let W=y+(re==="tab"?0:r[V]),Q=y+(re==="tab"?O:o[V]);if(C==="soft-hyphen"&&m.preferEarlySoftHyphenBreak&&_<=g){T(B,0,S);continue}if(C==="soft-hyphen"&&se(V)){V++;continue}if(Fe&&W<=g){j(V,O),T(V+1,0,Q),V++;continue}if(B>=0&&_<=g){if(L>B||L===B&&$>0){T();continue}let ae=B;T(ae,0,S),V=ae;continue}if(O>e&&c[V]!==null){T(),P(V,0),V++;continue}T();continue}j(V,O),ie(re,Fe,V,O),V++}if(x){let re=B===U.consumedEndSegmentIndex?S:y;T(U.consumedEndSegmentIndex,0,re)}}return A}var Qi=null;function of(){return Qi===null&&(Qi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Qi}function sf(t){return t?{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[],segments:[]}:{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[]}}function af(t,e){let n=[],i=[],r=0,o=!1,s=!1,c=!1;function a(){i.length!==0&&(n.push({text:i.length===1?i[0]:i.join(""),start:r}),i=[],o=!1,s=!1,c=!1)}function l(m,f,g){i=[m],r=f,o=g,s=kn(m),c=nn.has(m)}function u(m,f){i.push(m),o=o||f;let g=kn(m);m.length===1&&Xe.has(m)?s=s||g:s=g,c=!1}for(let m of of().segment(t)){let f=m.segment,g=De(f);if(i.length===0){l(f,m.index,g);continue}if(c||vn.has(f)||Xe.has(f)||e.carryCJKAfterClosingQuote&&g&&s){u(f,g);continue}if(!o&&!g){u(f,g);continue}a(),l(f,m.index,g)}return a(),n}function lf(t){if(t.length<=1)return t;let e=[],n=[t[0].text],i=t[0].start,r=De(t[0].text),o=Ln(t[0].text);function s(){e.push({text:n.length===1?n[0]:n.join(""),start:i})}for(let c=1;c<t.length;c++){let a=t[c],l=De(a.text),u=Ln(a.text);if(r&&o){n.push(a.text),r=r||l,o=u;continue}s(),n=[a.text],i=a.start,r=l,o=u}return s(),e}function uf(t,e,n,i){let r=yt(),{cache:o,emojiCorrection:s}=la(e,sa(t.normalized)),c=Qe("-",Ve("-",o),s),l=Qe(" ",Ve(" ",o),s)*8;if(t.len===0)return sf(n);let u=[],m=[],f=[],g=[],A=t.chunks.length<=1,y=n?[]:null,x=[],w=n?[]:null,N=Array.from({length:t.len});function L(S,C,F,T,R,G,j){R!=="text"&&R!=="space"&&R!=="zero-width-break"&&(A=!1),u.push(C),m.push(F),f.push(T),g.push(R),y?.push(G),x.push(j),w!==null&&w.push(S)}function $(S,C,F,T,R){let G=Ve(S,o),j=Qe(S,G,s),ie=C==="space"||C==="preserved-space"||C==="zero-width-break"?0:j,P=C==="space"||C==="zero-width-break"?0:j;if(R&&T&&S.length>1){let se="sum-graphemes";tn(S)?se="pair-context":r.preferPrefixWidthsForBreakableRuns&&(se="segment-prefixes");let Se=aa(S,G,o,s,se);L(S,j,ie,P,C,F,Se);return}L(S,j,ie,P,C,F,null)}for(let S=0;S<t.len;S++){N[S]=u.length;let C=t.texts[S],F=t.isWordLike[S],T=t.kinds[S],R=t.starts[S];if(T==="soft-hyphen"){L(C,0,c,c,T,R,null);continue}if(T==="hard-break"){L(C,0,0,0,T,R,null);continue}if(T==="tab"){L(C,0,0,0,T,R,null);continue}let G=Ve(C,o);if(T==="text"&&G.containsCJK){let j=af(C,r),ie=i==="keep-all"?lf(j):j;for(let P=0;P<ie.length;P++){let se=ie[P];$(se.text,"text",R+se.start,F,i==="keep-all"||!De(se.text))}continue}$(C,T,R,F,!0)}let B=cf(t.chunks,N,u.length),_=y===null?null:js(t.normalized,y);return w!==null?{widths:u,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:g,simpleLineWalkFastPath:A,segLevels:_,breakableFitAdvances:x,discretionaryHyphenWidth:c,tabStopAdvance:l,chunks:B,segments:w}:{widths:u,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:g,simpleLineWalkFastPath:A,segLevels:_,breakableFitAdvances:x,discretionaryHyphenWidth:c,tabStopAdvance:l,chunks:B}}function cf(t,e,n){let i=[];for(let r=0;r<t.length;r++){let o=t[r],s=o.startSegmentIndex<e.length?e[o.startSegmentIndex]:n,c=o.endSegmentIndex<e.length?e[o.endSegmentIndex]:n,a=o.consumedEndSegmentIndex<e.length?e[o.consumedEndSegmentIndex]:n;i.push({startSegmentIndex:s,endSegmentIndex:c,consumedEndSegmentIndex:a})}return i}function df(t,e,n,i){let r=i?.wordBreak??"normal",o=na(t,yt(),i?.whiteSpace,r);return uf(o,e,n,r)}function fa(t,e,n){return df(t,e,!1,n)}function ma(t,e,n){let i=ua(t,e);return{lineCount:i,height:i*n}}var ff={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function pa(t,e){let n={...ff,...e},i=1.2;for(let r=n.baseFontSize;r>=n.minFontSize;r-=n.step){let o=`${n.fontWeight} ${r}px ${n.fontFamily}`,s=fa(t,o),{lineCount:c}=ma(s,n.maxWidth,r*i);if(c<=1)return{fontSize:r,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}window.__timelines=window.__timelines||{};window.__hyperframes={fitTextFontSize:pa,getVariables:xs};function ha(){let t=window;t.__hyperframeRuntimeBootstrapped||(t.__hyperframeRuntimeBootstrapped=!0,Vs())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",ha,{once:!0}):ha();})();\n';
|
|
55971
55971
|
}
|
|
55972
55972
|
});
|
|
55973
55973
|
|
|
@@ -60925,7 +60925,7 @@ function formatHttpErrorDiagnostic(input2) {
|
|
|
60925
60925
|
return `[Browser:HTTP${input2.status}] ${input2.method} ${sanitizeDiagnosticUrl(input2.url)} resource=${input2.resourceType}${statusText}`;
|
|
60926
60926
|
}
|
|
60927
60927
|
async function driveWarmupTicks(options, state) {
|
|
60928
|
-
const
|
|
60928
|
+
const sleep5 = options.sleep ?? realSleep;
|
|
60929
60929
|
while (true) {
|
|
60930
60930
|
if (options.lockWarmupTicks) {
|
|
60931
60931
|
if (state.ticks >= LOCKED_WARMUP_TICKS) return;
|
|
@@ -60937,7 +60937,7 @@ async function driveWarmupTicks(options, state) {
|
|
|
60937
60937
|
state.ticks += 1;
|
|
60938
60938
|
} catch {
|
|
60939
60939
|
}
|
|
60940
|
-
await
|
|
60940
|
+
await sleep5(options.intervalMs);
|
|
60941
60941
|
}
|
|
60942
60942
|
}
|
|
60943
60943
|
function resolveCaptureSessionOptions(options, browserVersion, platform10 = process.platform) {
|
|
@@ -61676,6 +61676,16 @@ async function computeStaticFrameSet(page, fps) {
|
|
|
61676
61676
|
reason: eligible ? "eligible" : reasons.join("+")
|
|
61677
61677
|
};
|
|
61678
61678
|
}
|
|
61679
|
+
function computeStaticVerificationPoints(a, b2, sampleCount) {
|
|
61680
|
+
const span = b2 - a;
|
|
61681
|
+
const lengthScaledPoints = span > 0 ? Math.ceil(span / STATIC_VERIFY_REFERENCE_STRIDE) + 1 : 1;
|
|
61682
|
+
const perRun = Math.max(3, sampleCount, lengthScaledPoints);
|
|
61683
|
+
const stride = span > 0 ? Math.max(1, Math.floor(span / (perRun - 1))) : 1;
|
|
61684
|
+
const pts = /* @__PURE__ */ new Set();
|
|
61685
|
+
for (let f3 = a; f3 <= b2; f3 += stride) pts.add(f3);
|
|
61686
|
+
pts.add(b2);
|
|
61687
|
+
return [...pts].sort((x3, y) => x3 - y);
|
|
61688
|
+
}
|
|
61679
61689
|
async function verifyStaticFramesSafe(session, page, staticFrames, fps, sampleCount) {
|
|
61680
61690
|
const frames = [...staticFrames].sort((a, b2) => a - b2);
|
|
61681
61691
|
if (frames.length === 0) return null;
|
|
@@ -61693,20 +61703,18 @@ async function verifyStaticFramesSafe(session, page, staticFrames, fps, sampleCo
|
|
|
61693
61703
|
}, t2);
|
|
61694
61704
|
return pageScreenshotCapture(page, session.options);
|
|
61695
61705
|
};
|
|
61696
|
-
const
|
|
61697
|
-
|
|
61706
|
+
const hardCap = Math.max(
|
|
61707
|
+
sampleCount * 8,
|
|
61708
|
+
400,
|
|
61709
|
+
Math.ceil(frames.length / STATIC_VERIFY_REFERENCE_STRIDE) * 3 + runs.length
|
|
61710
|
+
);
|
|
61698
61711
|
let spent = 0;
|
|
61699
61712
|
for (const { a, b: b2 } of runs) {
|
|
61700
61713
|
const anchor = a - 1;
|
|
61701
61714
|
if (anchor < 0) continue;
|
|
61702
61715
|
const anchorBuf = await seekCapture(anchor);
|
|
61703
61716
|
spent++;
|
|
61704
|
-
const
|
|
61705
|
-
const stride = span > 0 ? Math.max(1, Math.floor(span / (perRun - 1))) : 1;
|
|
61706
|
-
const pts = /* @__PURE__ */ new Set();
|
|
61707
|
-
for (let f3 = a; f3 <= b2; f3 += stride) pts.add(f3);
|
|
61708
|
-
pts.add(b2);
|
|
61709
|
-
for (const f3 of [...pts].sort((x3, y) => x3 - y)) {
|
|
61717
|
+
for (const f3 of computeStaticVerificationPoints(a, b2, sampleCount)) {
|
|
61710
61718
|
const cur = await seekCapture(f3);
|
|
61711
61719
|
spent++;
|
|
61712
61720
|
if (!anchorBuf.equals(cur)) return { badFrame: f3, budgetExhausted: false };
|
|
@@ -61751,7 +61759,7 @@ async function armStaticDedup(session, page, logInitPhase) {
|
|
|
61751
61759
|
if (verdict !== null) {
|
|
61752
61760
|
session.staticDedupSkipReason = verdict.budgetExhausted ? "verification_budget" : "verification_failed";
|
|
61753
61761
|
logInitPhase(
|
|
61754
|
-
verdict.budgetExhausted ? `static-frame dedup: disabled (verification budget exhausted before frame ${verdict.badFrame};
|
|
61762
|
+
verdict.budgetExhausted ? `static-frame dedup: disabled (verification budget exhausted before frame ${verdict.badFrame}; too much predicted-static material to fully verify \u2014 this is the safe fallback, not an error)` : `static-frame dedup: disabled (verification failed \u2014 content drifts from anchor at predicted-static frame ${verdict.badFrame})`
|
|
61755
61763
|
);
|
|
61756
61764
|
return;
|
|
61757
61765
|
}
|
|
@@ -61929,7 +61937,7 @@ function isMemoryExhaustionError(error) {
|
|
|
61929
61937
|
const message = error instanceof Error ? error.message : String(error);
|
|
61930
61938
|
return MEMORY_EXHAUSTION_ERROR_PATTERNS.some((pattern) => pattern.test(message));
|
|
61931
61939
|
}
|
|
61932
|
-
var BROWSER_CONSOLE_BUFFER_SIZE, CAPTURE_SESSION_CLOSE_TIMEOUT_MS, LOCKED_WARMUP_TICKS, realSleep, HF_READY_DIAGNOSTIC_EXPR, TRANSIENT_BROWSER_ERROR_PATTERNS, MEMORY_EXHAUSTION_ERROR_PATTERNS;
|
|
61940
|
+
var BROWSER_CONSOLE_BUFFER_SIZE, CAPTURE_SESSION_CLOSE_TIMEOUT_MS, LOCKED_WARMUP_TICKS, realSleep, HF_READY_DIAGNOSTIC_EXPR, STATIC_VERIFY_REFERENCE_STRIDE, TRANSIENT_BROWSER_ERROR_PATTERNS, MEMORY_EXHAUSTION_ERROR_PATTERNS;
|
|
61933
61941
|
var init_frameCapture = __esm({
|
|
61934
61942
|
"../engine/src/services/frameCapture.ts"() {
|
|
61935
61943
|
"use strict";
|
|
@@ -61960,6 +61968,7 @@ var init_frameCapture = __esm({
|
|
|
61960
61968
|
declaredDuration: declaredDuration,
|
|
61961
61969
|
};
|
|
61962
61970
|
})()`;
|
|
61971
|
+
STATIC_VERIFY_REFERENCE_STRIDE = 24;
|
|
61963
61972
|
TRANSIENT_BROWSER_ERROR_PATTERNS = [
|
|
61964
61973
|
/Navigating frame was detached/i,
|
|
61965
61974
|
/Target closed/i,
|
|
@@ -62729,7 +62738,7 @@ import { join as join6, dirname as dirname4, extname as extname2 } from "path";
|
|
|
62729
62738
|
function appendEncodeTimeoutMessage(error, timedOut, timeoutMs) {
|
|
62730
62739
|
if (!timedOut) return error;
|
|
62731
62740
|
return `${error}
|
|
62732
|
-
FFmpeg killed after exceeding ffmpegEncodeTimeout (${timeoutMs} ms)
|
|
62741
|
+
FFmpeg killed after exceeding ffmpegEncodeTimeout (${timeoutMs} ms). Long or high-frame-count renders may need more time: set FFMPEG_ENCODE_TIMEOUT_MS to a higher value (ms), or set PRODUCER_ENABLE_CHUNKED_ENCODE=true to encode in smaller chunks instead of one long-running ffmpeg process.`;
|
|
62733
62742
|
}
|
|
62734
62743
|
function isAacSidecar(audioPath) {
|
|
62735
62744
|
return extname2(audioPath).toLowerCase() === ".aac";
|
|
@@ -64158,6 +64167,10 @@ function scopeSelector(selector, scope, compositionId, authoredRootId, compoundA
|
|
|
64158
64167
|
return selector;
|
|
64159
64168
|
const compositionIdPattern = new RegExp(`\\[\\s*data-composition-id\\s*=\\s*(["'])${escapeRegExp2(compositionId)}\\1\\s*\\]`, "g");
|
|
64160
64169
|
if (compositionIdPattern.test(trimmed)) {
|
|
64170
|
+
const isRootBoxSelector = trimmed.replace(compositionIdPattern, "").trim() === "";
|
|
64171
|
+
if (isRootBoxSelector) {
|
|
64172
|
+
return `${scope}:not(:has([${INNER_ROOT_ATTR}])), ${scope} > [${INNER_ROOT_ATTR}]`;
|
|
64173
|
+
}
|
|
64161
64174
|
return selectorWithoutRootTiming.replace(compositionIdPattern, scope);
|
|
64162
64175
|
}
|
|
64163
64176
|
const leading = selectorWithoutRootTiming.match(/^\s*/)?.[0] ?? "";
|
|
@@ -64496,11 +64509,12 @@ ${source.replace(/<\/(script)/gi, "<\\/$1")}
|
|
|
64496
64509
|
function wrapInlineScriptWithErrorBoundary(source, errorLabel) {
|
|
64497
64510
|
return `(function(){ try { Function(${JSON.stringify(source)}).call(window); } catch (_err) { console.error(${JSON.stringify(errorLabel)}, _err); } })();`;
|
|
64498
64511
|
}
|
|
64499
|
-
var AUTHORED_ROOT_ID_ATTR, GLOBAL_AT_RULES;
|
|
64512
|
+
var AUTHORED_ROOT_ID_ATTR, INNER_ROOT_ATTR, GLOBAL_AT_RULES;
|
|
64500
64513
|
var init_compositionScoping = __esm({
|
|
64501
64514
|
"../core/dist/compiler/compositionScoping.js"() {
|
|
64502
64515
|
"use strict";
|
|
64503
64516
|
AUTHORED_ROOT_ID_ATTR = "data-hf-authored-id";
|
|
64517
|
+
INNER_ROOT_ATTR = "data-hf-inner-root";
|
|
64504
64518
|
GLOBAL_AT_RULES = /* @__PURE__ */ new Set(["keyframes", "-webkit-keyframes", "font-face"]);
|
|
64505
64519
|
}
|
|
64506
64520
|
});
|
|
@@ -66304,8 +66318,15 @@ function findRootTag(source) {
|
|
|
66304
66318
|
const bodyEnd = bodyOpenMatch && bodyCloseMatch && bodyCloseMatch.index > bodyStart ? bodyCloseMatch.index : source.length;
|
|
66305
66319
|
const bodyContent = bodyOpenMatch ? source.slice(bodyStart, bodyEnd) : source;
|
|
66306
66320
|
const bodyTags = extractOpenTags(bodyContent);
|
|
66321
|
+
let skipBefore = -1;
|
|
66307
66322
|
for (const tag of bodyTags) {
|
|
66323
|
+
if (tag.index < skipBefore) continue;
|
|
66308
66324
|
if (["script", "style", "meta", "link", "title"].includes(tag.name)) continue;
|
|
66325
|
+
if (tag.name === "svg" && !readAttr(tag.raw, "data-composition-id") && !readAttr(tag.raw, "data-width") && !readAttr(tag.raw, "data-height")) {
|
|
66326
|
+
const closeMatch = /<\/svg\s*>/i.exec(bodyContent.slice(tag.index));
|
|
66327
|
+
skipBefore = closeMatch ? tag.index + closeMatch.index + closeMatch[0].length : Infinity;
|
|
66328
|
+
continue;
|
|
66329
|
+
}
|
|
66309
66330
|
return { ...tag, index: tag.index + bodyStart };
|
|
66310
66331
|
}
|
|
66311
66332
|
return null;
|
|
@@ -67974,7 +67995,7 @@ var init_dist4 = __esm({
|
|
|
67974
67995
|
TIMELINE_REGISTRY_INIT_PATTERN = /window\.__timelines\s*=\s*window\.__timelines\s*\|\|\s*\{\}|window\.__timelines\s*=\s*\{\}|window\.__timelines\s*\?\?=\s*\{\}/i;
|
|
67975
67996
|
TIMELINE_REGISTRY_OBJECT_LITERAL_PATTERN = /window\.__timelines\s*=\s*\{\s*(?:["'][^"']+["']|[A-Za-z_$][\w$]*)\s*:/i;
|
|
67976
67997
|
TIMELINE_REGISTRY_ASSIGN_PATTERN = /window\.__timelines(?:\[[^\]]+\]|\.[A-Za-z_$][\w$]*)\s*=/i;
|
|
67977
|
-
WINDOW_TIMELINE_ASSIGN_PATTERN = /window\.__timelines(?:\[\s*["']([^"']+)["']\s*\]|\.\s*([A-Za-z_$][\w$]*))\s*=\s*([A-Za-z_$][\w$]*)/i;
|
|
67998
|
+
WINDOW_TIMELINE_ASSIGN_PATTERN = /window\.__timelines(?:\[\s*(?:["']([^"']+)["']|[A-Za-z_$][\w$.]*)\s*\]|\.\s*([A-Za-z_$][\w$]*))\s*=\s*([A-Za-z_$][\w$]*)/i;
|
|
67978
67999
|
INVALID_SCRIPT_CLOSE_PATTERN = /<script[^>]*>[\s\S]*?<\s*\/\s*script(?!>)/i;
|
|
67979
68000
|
TIMELINE_REGISTRY_KEY_PATTERN = /window\.__timelines(?:\[\s*["']([^"']+)["']\s*\]|\.\s*([A-Za-z_$][\w$]*))\s*=/g;
|
|
67980
68001
|
TIMELINE_REGISTRY_OBJECT_BODY_PATTERN = /window\.__timelines\s*=\s*\{([\s\S]*?)\}/i;
|
|
@@ -68708,12 +68729,14 @@ ${right.raw}`)
|
|
|
68708
68729
|
(candidate) => isHardKillSet(candidate, win.targetSelector, boundary)
|
|
68709
68730
|
);
|
|
68710
68731
|
if (hasHardKill) continue;
|
|
68732
|
+
const exitClipInfo = clipIds.get(win.targetSelector) || clipClasses.get(win.targetSelector);
|
|
68733
|
+
const fixHint = exitClipInfo ? `"${win.targetSelector}" is a clip element \u2014 the framework already manages its visibility. Wrap the scene's content in an inner non-clip <div>, move the exit tween and the hard kill (\`tl.set("<inner-selector>", ${hiddenStateLiteral(win.propertyValues)}, ${boundary.toFixed(2)})\`) onto that wrapper instead.` : `Add \`tl.set("${win.targetSelector}", ${hiddenStateLiteral(win.propertyValues)}, ${boundary.toFixed(2)})\` after the exit tween.`;
|
|
68711
68734
|
findings.push({
|
|
68712
68735
|
code: "gsap_exit_missing_hard_kill",
|
|
68713
68736
|
severity: "error",
|
|
68714
68737
|
message: `GSAP exit on "${win.targetSelector}" ends at the ${boundary.toFixed(2)}s clip start boundary without a matching tl.set hard kill. Non-linear seeking can land after the fade and leave stale visibility state.`,
|
|
68715
68738
|
selector: win.targetSelector,
|
|
68716
|
-
fixHint
|
|
68739
|
+
fixHint,
|
|
68717
68740
|
snippet: truncateSnippet(win.raw)
|
|
68718
68741
|
});
|
|
68719
68742
|
}
|
|
@@ -68983,12 +69006,15 @@ ${right.raw}`)
|
|
|
68983
69006
|
const killPattern = new RegExp(`["']#${id}["'][^)]*visibility\\s*:\\s*["']hidden["']`);
|
|
68984
69007
|
const hasKill = killPattern.test(content);
|
|
68985
69008
|
if (!hasKill) {
|
|
69009
|
+
const classes = (readAttr(tag.raw, "class") || "").split(/\s+/).filter(Boolean);
|
|
69010
|
+
const isClip = classes.includes("clip");
|
|
69011
|
+
const fixHint = isClip ? `"#${id}" is a clip element \u2014 the framework already manages its visibility. Wrap the scene's content in an inner non-clip <div>, move the exit tween and the hard kill (\`tl.set("<inner-selector>", { visibility: "hidden" }, <exit-end-time>)\`) onto that wrapper instead.` : `Add \`tl.set("#${id}", { visibility: "hidden" }, <exit-end-time>)\` after the scene's exit tweens.`;
|
|
68986
69012
|
findings.push({
|
|
68987
69013
|
code: "scene_layer_missing_visibility_kill",
|
|
68988
69014
|
severity: "error",
|
|
68989
69015
|
elementId: id,
|
|
68990
69016
|
message: `Scene layer "#${id}" exits via opacity tween but has no visibility: hidden hard kill. When scrubbing or when tweens conflict, the scene may remain partially visible and overlap the next scene.`,
|
|
68991
|
-
fixHint
|
|
69017
|
+
fixHint
|
|
68992
69018
|
});
|
|
68993
69019
|
}
|
|
68994
69020
|
}
|
|
@@ -70089,7 +70115,7 @@ ${allInlineStyles}`.replace(/\/\*[\s\S]*?\*\//g, "");
|
|
|
70089
70115
|
code: "font_family_without_font_face",
|
|
70090
70116
|
severity: "error",
|
|
70091
70117
|
message: `Font ${undeclared.length === 1 ? "family" : "families"} used without @font-face declaration: ${undeclared.join(", ")}. These are not in the auto-resolved font list, so the renderer cannot supply them automatically. Text will fall back to a generic font, producing incorrect typography in the video.`,
|
|
70092
|
-
fixHint: "Add @font-face { font-family: '...'; src: url('capture/assets/fonts/...woff2'); } for each font family, pointing to the captured .woff2 files."
|
|
70118
|
+
fixHint: "Add @font-face { font-family: '...'; src: url('capture/assets/fonts/...woff2'); } for each font family, pointing to the captured .woff2 files. For an OS-bundled system font (e.g. Hiragino Sans, Microsoft YaHei) that has no downloadable file, use src: local('Exact Font Name') instead \u2014 the declaration alone satisfies this check without needing a font file."
|
|
70093
70119
|
});
|
|
70094
70120
|
return findings;
|
|
70095
70121
|
}
|
|
@@ -70309,6 +70335,9 @@ function inlineSubCompositions(document2, hosts, options) {
|
|
|
70309
70335
|
child.remove();
|
|
70310
70336
|
if (flattenInnerRoot) {
|
|
70311
70337
|
const prepared = flattenInnerRoot(innerRoot);
|
|
70338
|
+
if (!compId && inferredCompId) {
|
|
70339
|
+
prepared.setAttribute("data-composition-id", inferredCompId);
|
|
70340
|
+
}
|
|
70312
70341
|
hostEl.innerHTML = prepared.outerHTML || "";
|
|
70313
70342
|
} else {
|
|
70314
70343
|
hostEl.innerHTML = compId ? innerRoot.innerHTML || "" : innerRoot.outerHTML || "";
|
|
@@ -95031,10 +95060,11 @@ __export(manager_exports2, {
|
|
|
95031
95060
|
clearBrowser: () => clearBrowser,
|
|
95032
95061
|
ensureBrowser: () => ensureBrowser,
|
|
95033
95062
|
findBrowser: () => findBrowser,
|
|
95034
|
-
isLinuxArm: () => isLinuxArm
|
|
95063
|
+
isLinuxArm: () => isLinuxArm,
|
|
95064
|
+
withInstallLock: () => withInstallLock
|
|
95035
95065
|
});
|
|
95036
95066
|
import { execSync as execSync5, spawnSync as spawnSync2 } from "child_process";
|
|
95037
|
-
import { existsSync as existsSync31, readdirSync as readdirSync13, rmSync as rmSync6 } from "fs";
|
|
95067
|
+
import { existsSync as existsSync31, mkdirSync as mkdirSync15, readdirSync as readdirSync13, rmSync as rmSync6, statSync as statSync9 } from "fs";
|
|
95038
95068
|
import { basename as basename4 } from "path";
|
|
95039
95069
|
import { homedir as homedir9 } from "os";
|
|
95040
95070
|
import { join as join27 } from "path";
|
|
@@ -95049,6 +95079,59 @@ Fix: run \`npm install\` or \`bun install\` to restore missing packages, then re
|
|
|
95049
95079
|
);
|
|
95050
95080
|
}
|
|
95051
95081
|
}
|
|
95082
|
+
function isErrno(err, code) {
|
|
95083
|
+
return err.code === code;
|
|
95084
|
+
}
|
|
95085
|
+
function sleep(ms) {
|
|
95086
|
+
return new Promise((resolve62) => setTimeout(resolve62, ms));
|
|
95087
|
+
}
|
|
95088
|
+
function tryAcquireDirLock(lockDir) {
|
|
95089
|
+
try {
|
|
95090
|
+
mkdirSync15(lockDir, { recursive: false });
|
|
95091
|
+
return true;
|
|
95092
|
+
} catch (err) {
|
|
95093
|
+
if (!isErrno(err, "EEXIST")) throw err;
|
|
95094
|
+
return false;
|
|
95095
|
+
}
|
|
95096
|
+
}
|
|
95097
|
+
function reclaimStaleInstallLock(timeoutMs) {
|
|
95098
|
+
if (!tryAcquireDirLock(INSTALL_RECLAIM_LOCK_DIR)) return;
|
|
95099
|
+
try {
|
|
95100
|
+
const mtimeMs = statSync9(INSTALL_LOCK_DIR).mtimeMs;
|
|
95101
|
+
if (Date.now() - mtimeMs > timeoutMs) {
|
|
95102
|
+
rmSync6(INSTALL_LOCK_DIR, { recursive: true, force: true });
|
|
95103
|
+
}
|
|
95104
|
+
} catch (err) {
|
|
95105
|
+
if (!isErrno(err, "ENOENT")) throw err;
|
|
95106
|
+
} finally {
|
|
95107
|
+
rmSync6(INSTALL_RECLAIM_LOCK_DIR, { recursive: true, force: true });
|
|
95108
|
+
}
|
|
95109
|
+
}
|
|
95110
|
+
async function withInstallLock(fn, timeoutMs = INSTALL_LOCK_TIMEOUT_MS, pollMs = INSTALL_LOCK_POLL_MS) {
|
|
95111
|
+
if (!existsSync31(CACHE_DIR2)) mkdirSync15(CACHE_DIR2, { recursive: true });
|
|
95112
|
+
let deadline = Date.now() + timeoutMs;
|
|
95113
|
+
for (; ; ) {
|
|
95114
|
+
if (existsSync31(INSTALL_RECLAIM_LOCK_DIR)) {
|
|
95115
|
+
await sleep(pollMs);
|
|
95116
|
+
continue;
|
|
95117
|
+
}
|
|
95118
|
+
if (tryAcquireDirLock(INSTALL_LOCK_DIR)) {
|
|
95119
|
+
rmSync6(INSTALL_RECLAIM_LOCK_DIR, { recursive: true, force: true });
|
|
95120
|
+
break;
|
|
95121
|
+
}
|
|
95122
|
+
if (Date.now() > deadline) {
|
|
95123
|
+
reclaimStaleInstallLock(timeoutMs);
|
|
95124
|
+
deadline = Date.now() + timeoutMs;
|
|
95125
|
+
continue;
|
|
95126
|
+
}
|
|
95127
|
+
await sleep(pollMs);
|
|
95128
|
+
}
|
|
95129
|
+
try {
|
|
95130
|
+
return await fn();
|
|
95131
|
+
} finally {
|
|
95132
|
+
rmSync6(INSTALL_LOCK_DIR, { recursive: true, force: true });
|
|
95133
|
+
}
|
|
95134
|
+
}
|
|
95052
95135
|
function whichBinary2(name) {
|
|
95053
95136
|
try {
|
|
95054
95137
|
const cmd = process.platform === "win32" ? `where ${name}` : `which ${name}`;
|
|
@@ -95199,7 +95282,7 @@ async function findBrowser() {
|
|
|
95199
95282
|
`[browser] Cached binary missing at ${fromCache.staleHyperframesCachePath} \u2014 re-downloading...`
|
|
95200
95283
|
);
|
|
95201
95284
|
try {
|
|
95202
|
-
return await downloadBrowser();
|
|
95285
|
+
return await withInstallLock(() => downloadBrowser());
|
|
95203
95286
|
} catch (err) {
|
|
95204
95287
|
const cause = normalizeErrorMessage(err);
|
|
95205
95288
|
throw new Error(
|
|
@@ -95262,14 +95345,18 @@ async function ensureBrowser(options) {
|
|
|
95262
95345
|
console.warn(
|
|
95263
95346
|
`[browser] Cached binary missing at ${fromCache.staleHyperframesCachePath} \u2014 re-downloading...`
|
|
95264
95347
|
);
|
|
95265
|
-
return downloadBrowser(options);
|
|
95348
|
+
return withInstallLock(() => downloadBrowser(options));
|
|
95266
95349
|
}
|
|
95267
95350
|
const fromSystem = findFromSystem2();
|
|
95268
95351
|
if (fromSystem) {
|
|
95269
95352
|
warnSystemFallbackOnce(fromSystem.executablePath);
|
|
95270
95353
|
return fromSystem;
|
|
95271
95354
|
}
|
|
95272
|
-
return
|
|
95355
|
+
return withInstallLock(async () => {
|
|
95356
|
+
const afterLock = await findFromCache();
|
|
95357
|
+
if (afterLock.result) return afterLock.result;
|
|
95358
|
+
return downloadBrowser(options);
|
|
95359
|
+
});
|
|
95273
95360
|
}
|
|
95274
95361
|
async function downloadBrowser(options) {
|
|
95275
95362
|
if (isLinuxArm()) {
|
|
@@ -95299,7 +95386,7 @@ function clearBrowser() {
|
|
|
95299
95386
|
function isLinuxArm() {
|
|
95300
95387
|
return process.platform === "linux" && process.arch === "arm64";
|
|
95301
95388
|
}
|
|
95302
|
-
var CHROME_VERSION, CACHE_DIR2, PUPPETEER_CACHE_DIR, SYSTEM_CHROME_PATHS, _warnedSystemFallback;
|
|
95389
|
+
var CHROME_VERSION, CACHE_DIR2, PUPPETEER_CACHE_DIR, INSTALL_LOCK_DIR, INSTALL_RECLAIM_LOCK_DIR, INSTALL_LOCK_TIMEOUT_MS, INSTALL_LOCK_POLL_MS, SYSTEM_CHROME_PATHS, _warnedSystemFallback;
|
|
95303
95390
|
var init_manager2 = __esm({
|
|
95304
95391
|
"src/browser/manager.ts"() {
|
|
95305
95392
|
"use strict";
|
|
@@ -95307,6 +95394,10 @@ var init_manager2 = __esm({
|
|
|
95307
95394
|
CHROME_VERSION = "131.0.6778.85";
|
|
95308
95395
|
CACHE_DIR2 = join27(homedir9(), ".cache", "hyperframes", "chrome");
|
|
95309
95396
|
PUPPETEER_CACHE_DIR = join27(homedir9(), ".cache", "puppeteer", "chrome-headless-shell");
|
|
95397
|
+
INSTALL_LOCK_DIR = join27(CACHE_DIR2, ".install.lock");
|
|
95398
|
+
INSTALL_RECLAIM_LOCK_DIR = join27(CACHE_DIR2, ".install.reclaim.lock");
|
|
95399
|
+
INSTALL_LOCK_TIMEOUT_MS = 12e4;
|
|
95400
|
+
INSTALL_LOCK_POLL_MS = 200;
|
|
95310
95401
|
SYSTEM_CHROME_PATHS = process.platform === "darwin" ? ["/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"] : [
|
|
95311
95402
|
"/usr/bin/google-chrome",
|
|
95312
95403
|
"/usr/bin/google-chrome-stable",
|
|
@@ -98587,7 +98678,7 @@ __export(deterministicFonts_exports, {
|
|
|
98587
98678
|
resolveFontFamilyDeclarationFamilies: () => resolveFontFamilyDeclarationFamilies
|
|
98588
98679
|
});
|
|
98589
98680
|
import { createHash as createHash6 } from "crypto";
|
|
98590
|
-
import { existsSync as existsSync33, mkdirSync as
|
|
98681
|
+
import { existsSync as existsSync33, mkdirSync as mkdirSync16, readFileSync as readFileSync20, writeFileSync as writeFileSync11 } from "fs";
|
|
98591
98682
|
import { homedir as homedir10, tmpdir as tmpdir3 } from "os";
|
|
98592
98683
|
import { join as join28 } from "path";
|
|
98593
98684
|
import postcss4 from "postcss";
|
|
@@ -98914,7 +99005,7 @@ function fontSlug(familyName) {
|
|
|
98914
99005
|
function fontCacheDir(slug) {
|
|
98915
99006
|
const dir = join28(GOOGLE_FONTS_CACHE_DIR, slug);
|
|
98916
99007
|
if (!existsSync33(dir)) {
|
|
98917
|
-
|
|
99008
|
+
mkdirSync16(dir, { recursive: true });
|
|
98918
99009
|
}
|
|
98919
99010
|
return dir;
|
|
98920
99011
|
}
|
|
@@ -99201,11 +99292,11 @@ import { spawn as spawn10 } from "child_process";
|
|
|
99201
99292
|
import {
|
|
99202
99293
|
copyFileSync as copyFileSync2,
|
|
99203
99294
|
existsSync as existsSync34,
|
|
99204
|
-
mkdirSync as
|
|
99295
|
+
mkdirSync as mkdirSync17,
|
|
99205
99296
|
readFileSync as readFileSync21,
|
|
99206
99297
|
renameSync as renameSync4,
|
|
99207
99298
|
rmSync as rmSync7,
|
|
99208
|
-
statSync as
|
|
99299
|
+
statSync as statSync10
|
|
99209
99300
|
} from "fs";
|
|
99210
99301
|
import { dirname as dirname13, isAbsolute as isAbsolute10, join as join29, resolve as resolve20 } from "path";
|
|
99211
99302
|
function splitUrlSuffix2(src) {
|
|
@@ -99251,7 +99342,7 @@ function resolveGifSourcePath(src, options) {
|
|
|
99251
99342
|
}
|
|
99252
99343
|
function isUsableFile(path2) {
|
|
99253
99344
|
try {
|
|
99254
|
-
const stat3 =
|
|
99345
|
+
const stat3 = statSync10(path2);
|
|
99255
99346
|
return stat3.isFile() && stat3.size > 0;
|
|
99256
99347
|
} catch {
|
|
99257
99348
|
return false;
|
|
@@ -99368,10 +99459,10 @@ async function runAnimatedGifTranscode(request) {
|
|
|
99368
99459
|
}
|
|
99369
99460
|
async function ensurePreparedWebm(input2) {
|
|
99370
99461
|
if (!existsSync34(dirname13(input2.cachePath))) {
|
|
99371
|
-
|
|
99462
|
+
mkdirSync17(dirname13(input2.cachePath), { recursive: true });
|
|
99372
99463
|
}
|
|
99373
99464
|
if (!existsSync34(dirname13(input2.outputPath))) {
|
|
99374
|
-
|
|
99465
|
+
mkdirSync17(dirname13(input2.outputPath), { recursive: true });
|
|
99375
99466
|
}
|
|
99376
99467
|
if (!isUsableFile(input2.cachePath)) {
|
|
99377
99468
|
const tmpPath = `${input2.cachePath}.tmp-${process.pid}-${Date.now()}`;
|
|
@@ -99617,7 +99708,7 @@ var init_hf_early_stub_inline = __esm({
|
|
|
99617
99708
|
// ../producer/src/services/fileServer.ts
|
|
99618
99709
|
import { Hono as Hono3 } from "hono";
|
|
99619
99710
|
import { serve as serve2 } from "@hono/node-server";
|
|
99620
|
-
import { existsSync as existsSync36, realpathSync as realpathSync4, statSync as
|
|
99711
|
+
import { existsSync as existsSync36, realpathSync as realpathSync4, statSync as statSync11, createReadStream } from "fs";
|
|
99621
99712
|
import { readFile as readFile2 } from "fs/promises";
|
|
99622
99713
|
import { Readable as Readable2 } from "stream";
|
|
99623
99714
|
import { join as join30, extname as extname9, resolve as resolve23, sep as sep5 } from "path";
|
|
@@ -99965,13 +100056,13 @@ function createFileServer2(options) {
|
|
|
99965
100056
|
let filePath = null;
|
|
99966
100057
|
if (compiledDir) {
|
|
99967
100058
|
const candidate = join30(compiledDir, relativePath);
|
|
99968
|
-
if (existsSync36(candidate) && isPathInside2(candidate, compiledDir) &&
|
|
100059
|
+
if (existsSync36(candidate) && isPathInside2(candidate, compiledDir) && statSync11(candidate).isFile()) {
|
|
99969
100060
|
filePath = candidate;
|
|
99970
100061
|
}
|
|
99971
100062
|
}
|
|
99972
100063
|
if (!filePath) {
|
|
99973
100064
|
const candidate = join30(projectDir, relativePath);
|
|
99974
|
-
if (existsSync36(candidate) && isPathInside2(candidate, projectDir) &&
|
|
100065
|
+
if (existsSync36(candidate) && isPathInside2(candidate, projectDir) && statSync11(candidate).isFile()) {
|
|
99975
100066
|
filePath = candidate;
|
|
99976
100067
|
}
|
|
99977
100068
|
}
|
|
@@ -99993,7 +100084,7 @@ function createFileServer2(options) {
|
|
|
99993
100084
|
html = isIndex ? injectScriptsIntoHtml(html, headScripts, bodyScripts, stripEmbeddedRuntime) : html;
|
|
99994
100085
|
return c3.text(html, 200, { "Content-Type": contentType });
|
|
99995
100086
|
}
|
|
99996
|
-
const stat3 =
|
|
100087
|
+
const stat3 = statSync11(filePath);
|
|
99997
100088
|
const totalSize2 = stat3.size;
|
|
99998
100089
|
const rangeHeader = c3.req.header("range");
|
|
99999
100090
|
const rangeRequest = parseRangeHeader(rangeHeader, totalSize2);
|
|
@@ -100245,7 +100336,7 @@ var init_paths = __esm({
|
|
|
100245
100336
|
});
|
|
100246
100337
|
|
|
100247
100338
|
// ../producer/src/services/render/shared.ts
|
|
100248
|
-
import { copyFileSync as copyFileSync3, cpSync as cpSync2, existsSync as existsSync37, mkdirSync as
|
|
100339
|
+
import { copyFileSync as copyFileSync3, cpSync as cpSync2, existsSync as existsSync37, mkdirSync as mkdirSync18, symlinkSync as symlinkSync2, writeFileSync as writeFileSync12 } from "fs";
|
|
100249
100340
|
import { basename as basename6, dirname as dirname15, isAbsolute as isAbsolute11, join as join33, relative as relative8, resolve as resolve24 } from "path";
|
|
100250
100341
|
function writeFileExclusiveSync(path2, data2) {
|
|
100251
100342
|
try {
|
|
@@ -100275,11 +100366,11 @@ function resolveDeviceScaleFactor(input2) {
|
|
|
100275
100366
|
}
|
|
100276
100367
|
function writeCompiledArtifacts(compiled, workDir, includeSummary) {
|
|
100277
100368
|
const compileDir = join33(workDir, "compiled");
|
|
100278
|
-
|
|
100369
|
+
mkdirSync18(compileDir, { recursive: true });
|
|
100279
100370
|
writeFileSync12(join33(compileDir, "index.html"), compiled.html, "utf-8");
|
|
100280
100371
|
for (const [srcPath, html] of compiled.subCompositions) {
|
|
100281
100372
|
const outPath = join33(compileDir, srcPath);
|
|
100282
|
-
|
|
100373
|
+
mkdirSync18(dirname15(outPath), { recursive: true });
|
|
100283
100374
|
writeFileSync12(outPath, html, "utf-8");
|
|
100284
100375
|
}
|
|
100285
100376
|
for (const [relativePath, absolutePath] of compiled.externalAssets) {
|
|
@@ -100288,7 +100379,7 @@ function writeCompiledArtifacts(compiled, workDir, includeSummary) {
|
|
|
100288
100379
|
console.warn(`[Render] Skipping external asset with unsafe path: ${relativePath}`);
|
|
100289
100380
|
continue;
|
|
100290
100381
|
}
|
|
100291
|
-
|
|
100382
|
+
mkdirSync18(dirname15(outPath), { recursive: true });
|
|
100292
100383
|
copyFileSync3(absolutePath, outPath);
|
|
100293
100384
|
}
|
|
100294
100385
|
if (includeSummary) {
|
|
@@ -100413,7 +100504,7 @@ var init_shared = __esm({
|
|
|
100413
100504
|
};
|
|
100414
100505
|
materializeFileSystem = {
|
|
100415
100506
|
existsSync: existsSync37,
|
|
100416
|
-
mkdirSync:
|
|
100507
|
+
mkdirSync: mkdirSync18,
|
|
100417
100508
|
symlinkSync: symlinkSync2,
|
|
100418
100509
|
cpSync: cpSync2
|
|
100419
100510
|
};
|
|
@@ -101605,7 +101696,7 @@ var init_manualEditsRenderScript = __esm({
|
|
|
101605
101696
|
});
|
|
101606
101697
|
|
|
101607
101698
|
// ../producer/src/services/htmlCompiler.ts
|
|
101608
|
-
import { readFileSync as readFileSync24, existsSync as existsSync38, mkdirSync as
|
|
101699
|
+
import { readFileSync as readFileSync24, existsSync as existsSync38, mkdirSync as mkdirSync19 } from "fs";
|
|
101609
101700
|
import { join as join35, dirname as dirname16, resolve as resolve25, basename as basename7 } from "path";
|
|
101610
101701
|
function parseSubCompHtmlForValidity(html) {
|
|
101611
101702
|
return parseHTML(html).document;
|
|
@@ -101715,7 +101806,7 @@ function detectShaderTransitionUsage(html) {
|
|
|
101715
101806
|
async function resolveMediaDuration(src, mediaStart, baseDir, downloadDir, tagName19) {
|
|
101716
101807
|
let filePath = src;
|
|
101717
101808
|
if (isHttpUrl(src)) {
|
|
101718
|
-
if (!existsSync38(downloadDir))
|
|
101809
|
+
if (!existsSync38(downloadDir)) mkdirSync19(downloadDir, { recursive: true });
|
|
101719
101810
|
try {
|
|
101720
101811
|
filePath = await downloadToTemp(src, downloadDir);
|
|
101721
101812
|
} catch {
|
|
@@ -102004,7 +102095,14 @@ function inlineSubCompositions2(html, subCompositions, projectDir) {
|
|
|
102004
102095
|
},
|
|
102005
102096
|
parseHtml: (htmlStr) => parseHTML(htmlStr).document,
|
|
102006
102097
|
scriptErrorLabel: "[Compiler] Composition script failed",
|
|
102007
|
-
|
|
102098
|
+
// Preserve the authored root wrapper as a child of the host, matching
|
|
102099
|
+
// the preview bundler's shape (htmlBundler.ts's prepareFlattenedInnerRoot,
|
|
102100
|
+
// which the runtime compositionLoader mirrors with its own copy for the
|
|
102101
|
+
// live-loaded case). Without this, the wrapper element (and its
|
|
102102
|
+
// class/id) is discarded and any CSS anchored on it —
|
|
102103
|
+
// `.wrapper-class .title`, `#wrapper-id` — is dead at render time even
|
|
102104
|
+
// though it works in preview.
|
|
102105
|
+
flattenInnerRoot: prepareFlattenedInnerRoot,
|
|
102008
102106
|
onMissingComposition: (srcPath, reason) => {
|
|
102009
102107
|
console.warn(
|
|
102010
102108
|
`[Compiler] Skipping sub-composition "${srcPath}": ${reason ?? "the file is missing or empty"}.`
|
|
@@ -102012,12 +102110,6 @@ function inlineSubCompositions2(html, subCompositions, projectDir) {
|
|
|
102012
102110
|
}
|
|
102013
102111
|
}
|
|
102014
102112
|
);
|
|
102015
|
-
for (const hostEl of hosts) {
|
|
102016
|
-
const compId = hostEl.getAttribute("data-composition-id");
|
|
102017
|
-
if (compId && !hostEl.getAttribute("data-hf-authored-id")) {
|
|
102018
|
-
hostEl.setAttribute("data-hf-authored-id", compId);
|
|
102019
|
-
}
|
|
102020
|
-
}
|
|
102021
102113
|
for (const host of hosts) {
|
|
102022
102114
|
const hostW = host.getAttribute("data-width");
|
|
102023
102115
|
const hostH = host.getAttribute("data-height");
|
|
@@ -102202,7 +102294,7 @@ function collectExternalAssets(html, projectDir) {
|
|
|
102202
102294
|
}
|
|
102203
102295
|
async function downloadAndRewriteUrls(urlSet, html, remoteDir, warnLabel, logLabel, extraRewrite) {
|
|
102204
102296
|
if (urlSet.size === 0) return { html, remoteMediaAssets: /* @__PURE__ */ new Map() };
|
|
102205
|
-
if (!existsSync38(remoteDir))
|
|
102297
|
+
if (!existsSync38(remoteDir)) mkdirSync19(remoteDir, { recursive: true });
|
|
102206
102298
|
const urlToLocal = /* @__PURE__ */ new Map();
|
|
102207
102299
|
await Promise.all(
|
|
102208
102300
|
[...urlSet].map(async (url) => {
|
|
@@ -103465,6 +103557,7 @@ async function runAudioStage(input2) {
|
|
|
103465
103557
|
const stage3Start = Date.now();
|
|
103466
103558
|
const audioOutputPath = join39(workDir, "audio.aac");
|
|
103467
103559
|
let hasAudio = false;
|
|
103560
|
+
let audioError;
|
|
103468
103561
|
if (audios.length > 0) {
|
|
103469
103562
|
const audioResult = await processCompositionAudio(
|
|
103470
103563
|
audios,
|
|
@@ -103478,9 +103571,10 @@ async function runAudioStage(input2) {
|
|
|
103478
103571
|
);
|
|
103479
103572
|
assertNotAborted();
|
|
103480
103573
|
hasAudio = audioResult.success;
|
|
103574
|
+
if (!hasAudio) audioError = audioResult.error ?? "audio mix failed for an unknown reason";
|
|
103481
103575
|
}
|
|
103482
103576
|
const audioProcessMs = Date.now() - stage3Start;
|
|
103483
|
-
return { audioOutputPath, hasAudio, audioProcessMs };
|
|
103577
|
+
return { audioOutputPath, hasAudio, audioProcessMs, audioError };
|
|
103484
103578
|
}
|
|
103485
103579
|
var init_audioStage = __esm({
|
|
103486
103580
|
"../producer/src/services/render/stages/audioStage.ts"() {
|
|
@@ -104551,7 +104645,7 @@ import {
|
|
|
104551
104645
|
closeSync as closeSync3,
|
|
104552
104646
|
constants as constants2,
|
|
104553
104647
|
fstatSync as fstatSync2,
|
|
104554
|
-
mkdirSync as
|
|
104648
|
+
mkdirSync as mkdirSync20,
|
|
104555
104649
|
mkdtempSync as mkdtempSync2,
|
|
104556
104650
|
openSync as openSync2,
|
|
104557
104651
|
readFileSync as readFileSync25
|
|
@@ -104643,7 +104737,7 @@ async function extractHdrVideoFrames(args) {
|
|
|
104643
104737
|
for (const [videoId, srcPath] of prep.hdrVideoSrcPaths) {
|
|
104644
104738
|
const video = composition.videos.find((v2) => v2.id === videoId);
|
|
104645
104739
|
if (!video) continue;
|
|
104646
|
-
|
|
104740
|
+
mkdirSync20(framesDir, { recursive: true });
|
|
104647
104741
|
const frameDir = mkdtempSync2(join41(framesDir, `hdr_${tempDirSafePrefix(videoId)}-`));
|
|
104648
104742
|
const duration = video.end - video.start;
|
|
104649
104743
|
const dims = prep.hdrExtractionDims.get(videoId) ?? { width, height };
|
|
@@ -105362,7 +105456,7 @@ var init_captureHdrHybridLoop = __esm({
|
|
|
105362
105456
|
});
|
|
105363
105457
|
|
|
105364
105458
|
// ../producer/src/services/render/stages/captureHdrStage.ts
|
|
105365
|
-
import { existsSync as existsSync41, mkdirSync as
|
|
105459
|
+
import { existsSync as existsSync41, mkdirSync as mkdirSync21 } from "fs";
|
|
105366
105460
|
import { join as join46 } from "path";
|
|
105367
105461
|
async function runCaptureHdrStage(input2) {
|
|
105368
105462
|
const {
|
|
@@ -105524,7 +105618,7 @@ async function runCaptureHdrStage(input2) {
|
|
|
105524
105618
|
const debugDumpEnabled = process.env.KEEP_TEMP === "1";
|
|
105525
105619
|
const debugDumpDir = debugDumpEnabled ? join46(framesDir, "debug-composite") : null;
|
|
105526
105620
|
if (debugDumpDir && !existsSync41(debugDumpDir)) {
|
|
105527
|
-
|
|
105621
|
+
mkdirSync21(debugDumpDir, { recursive: true });
|
|
105528
105622
|
}
|
|
105529
105623
|
const compositeTransfer = resolveCompositeTransfer(hasHdrContent, effectiveHdr);
|
|
105530
105624
|
const hdrTargetTransfer = compositeTransfer === "srgb" ? void 0 : compositeTransfer;
|
|
@@ -105725,7 +105819,7 @@ var init_gifEncodeArgs = __esm({
|
|
|
105725
105819
|
});
|
|
105726
105820
|
|
|
105727
105821
|
// ../producer/src/services/render/stages/encodeStage.ts
|
|
105728
|
-
import { copyFileSync as copyFileSync4, existsSync as existsSync43, mkdirSync as
|
|
105822
|
+
import { copyFileSync as copyFileSync4, existsSync as existsSync43, mkdirSync as mkdirSync23, readdirSync as readdirSync14, rmSync as rmSync10, statSync as statSync12 } from "fs";
|
|
105729
105823
|
import { dirname as dirname18, join as join48 } from "path";
|
|
105730
105824
|
function resolveGifLoop(loop) {
|
|
105731
105825
|
const resolved = loop ?? 0;
|
|
@@ -105785,7 +105879,7 @@ async function encodeGifFromDir(framesDir, framePattern, outputPath, input2) {
|
|
|
105785
105879
|
error: formatFfmpegError(gifResult.exitCode, gifResult.stderr)
|
|
105786
105880
|
};
|
|
105787
105881
|
}
|
|
105788
|
-
const fileSize = existsSync43(outputPath) ?
|
|
105882
|
+
const fileSize = existsSync43(outputPath) ? statSync12(outputPath).size : 0;
|
|
105789
105883
|
return {
|
|
105790
105884
|
success: true,
|
|
105791
105885
|
outputPath,
|
|
@@ -105823,7 +105917,7 @@ async function runEncodeStage(input2) {
|
|
|
105823
105917
|
const stage5Start = Date.now();
|
|
105824
105918
|
if (isPngSequence) {
|
|
105825
105919
|
updateJobStatus(job, "encoding", "Writing PNG sequence", 75, onProgress);
|
|
105826
|
-
if (!existsSync43(outputPath))
|
|
105920
|
+
if (!existsSync43(outputPath)) mkdirSync23(outputPath, { recursive: true });
|
|
105827
105921
|
const captured = readdirSync14(framesDir).filter((name) => name.endsWith(".png")).sort();
|
|
105828
105922
|
if (captured.length === 0) {
|
|
105829
105923
|
throw new Error(
|
|
@@ -105967,12 +106061,12 @@ var init_assembleStage = __esm({
|
|
|
105967
106061
|
// ../producer/src/services/renderOrchestrator.ts
|
|
105968
106062
|
import {
|
|
105969
106063
|
existsSync as existsSync44,
|
|
105970
|
-
mkdirSync as
|
|
106064
|
+
mkdirSync as mkdirSync24,
|
|
105971
106065
|
mkdtempSync as mkdtempSync3,
|
|
105972
106066
|
readFileSync as readFileSync26,
|
|
105973
106067
|
readdirSync as readdirSync15,
|
|
105974
106068
|
rmSync as rmSync11,
|
|
105975
|
-
statSync as
|
|
106069
|
+
statSync as statSync13,
|
|
105976
106070
|
writeFileSync as writeFileSync13,
|
|
105977
106071
|
copyFileSync as copyFileSync5,
|
|
105978
106072
|
appendFileSync
|
|
@@ -105995,7 +106089,7 @@ function sampleDirectoryBytes(dir) {
|
|
|
105995
106089
|
for (const name of entries2) {
|
|
105996
106090
|
const full2 = join49(current2, name);
|
|
105997
106091
|
try {
|
|
105998
|
-
const st3 =
|
|
106092
|
+
const st3 = statSync13(full2);
|
|
105999
106093
|
if (st3.isDirectory()) {
|
|
106000
106094
|
stack.push(full2);
|
|
106001
106095
|
} else if (st3.isFile()) {
|
|
@@ -106350,7 +106444,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
106350
106444
|
const producerRoot = process.env.PRODUCER_RENDERS_DIR ? resolve26(process.env.PRODUCER_RENDERS_DIR, "..") : resolve26(moduleDir, "../..");
|
|
106351
106445
|
const debugDir = join49(producerRoot, ".debug");
|
|
106352
106446
|
const outputDir = dirname19(outputPath);
|
|
106353
|
-
if (!existsSync44(outputDir))
|
|
106447
|
+
if (!existsSync44(outputDir)) mkdirSync24(outputDir, { recursive: true });
|
|
106354
106448
|
const workDir = job.config.debug ? join49(debugDir, job.id) : mkdtempSync3(join49(outputDir, `work-${job.id}-`));
|
|
106355
106449
|
const pipelineStart = Date.now();
|
|
106356
106450
|
const log2 = job.config.logger ?? defaultLogger;
|
|
@@ -106412,7 +106506,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
106412
106506
|
job.startedAt = /* @__PURE__ */ new Date();
|
|
106413
106507
|
assertNotAborted();
|
|
106414
106508
|
assertConfiguredFfmpegBinariesExist();
|
|
106415
|
-
if (!existsSync44(workDir))
|
|
106509
|
+
if (!existsSync44(workDir)) mkdirSync24(workDir, { recursive: true });
|
|
106416
106510
|
if (job.config.debug) {
|
|
106417
106511
|
const logPath = join49(workDir, "render.log");
|
|
106418
106512
|
restoreLogger = installDebugLogger(logPath, log2);
|
|
@@ -106648,6 +106742,9 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
106648
106742
|
);
|
|
106649
106743
|
const { audioOutputPath, hasAudio } = audioResult;
|
|
106650
106744
|
perfStages.audioProcessMs = audioResult.audioProcessMs;
|
|
106745
|
+
if (audioResult.audioError) {
|
|
106746
|
+
log2.warn(`[Render] Audio mix failed \u2014 output will be video-only: ${audioResult.audioError}`);
|
|
106747
|
+
}
|
|
106651
106748
|
const stage4Start = Date.now();
|
|
106652
106749
|
updateJobStatus(job, "rendering", "Starting frame capture", 25, onProgress);
|
|
106653
106750
|
if (!fileServer) {
|
|
@@ -106674,7 +106771,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
106674
106771
|
throw new Error("File server failed to initialize before frame capture");
|
|
106675
106772
|
}
|
|
106676
106773
|
const framesDir = join49(workDir, "captured-frames");
|
|
106677
|
-
if (!existsSync44(framesDir))
|
|
106774
|
+
if (!existsSync44(framesDir)) mkdirSync24(framesDir, { recursive: true });
|
|
106678
106775
|
const resolvedBrowserGpuMode = await resolveBrowserGpuMode(cfg.browserGpuMode, {
|
|
106679
106776
|
chromePath: resolveHeadlessShellPath(cfg),
|
|
106680
106777
|
browserTimeout: cfg.browserTimeout
|
|
@@ -107264,7 +107361,7 @@ var init_config3 = __esm({
|
|
|
107264
107361
|
});
|
|
107265
107362
|
|
|
107266
107363
|
// ../producer/src/services/hyperframeLint.ts
|
|
107267
|
-
import { existsSync as existsSync45, readFileSync as readFileSync27, statSync as
|
|
107364
|
+
import { existsSync as existsSync45, readFileSync as readFileSync27, statSync as statSync14 } from "fs";
|
|
107268
107365
|
import { resolve as resolve27, join as join50 } from "path";
|
|
107269
107366
|
function isStringRecord2(value) {
|
|
107270
107367
|
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
@@ -107293,7 +107390,7 @@ function pickEntryFile(files, preferredEntryFile) {
|
|
|
107293
107390
|
}
|
|
107294
107391
|
function readProjectEntryFile(projectDir, preferredEntryFile) {
|
|
107295
107392
|
const absProjectDir = resolve27(projectDir);
|
|
107296
|
-
if (!existsSync45(absProjectDir) || !
|
|
107393
|
+
if (!existsSync45(absProjectDir) || !statSync14(absProjectDir).isDirectory()) {
|
|
107297
107394
|
return { error: `Project directory not found: ${absProjectDir}` };
|
|
107298
107395
|
}
|
|
107299
107396
|
const entryCandidates = [preferredEntryFile, "index.html", "src/index.html"].filter(
|
|
@@ -107304,7 +107401,7 @@ function readProjectEntryFile(projectDir, preferredEntryFile) {
|
|
|
107304
107401
|
if (!absoluteEntryPath.startsWith(absProjectDir)) {
|
|
107305
107402
|
return { error: `Entry file must stay inside project directory: ${entryFile}` };
|
|
107306
107403
|
}
|
|
107307
|
-
if (existsSync45(absoluteEntryPath) &&
|
|
107404
|
+
if (existsSync45(absoluteEntryPath) && statSync14(absoluteEntryPath).isFile()) {
|
|
107308
107405
|
return {
|
|
107309
107406
|
entryFile,
|
|
107310
107407
|
html: readFileSync27(absoluteEntryPath, "utf-8"),
|
|
@@ -107495,8 +107592,8 @@ var init_semaphore = __esm({
|
|
|
107495
107592
|
// ../producer/src/server.ts
|
|
107496
107593
|
import {
|
|
107497
107594
|
existsSync as existsSync47,
|
|
107498
|
-
mkdirSync as
|
|
107499
|
-
statSync as
|
|
107595
|
+
mkdirSync as mkdirSync25,
|
|
107596
|
+
statSync as statSync15,
|
|
107500
107597
|
mkdtempSync as mkdtempSync4,
|
|
107501
107598
|
writeFileSync as writeFileSync14,
|
|
107502
107599
|
rmSync as rmSync12,
|
|
@@ -107563,7 +107660,7 @@ function resolvePreparedRenderOutput(prepared, rendersDir, log2) {
|
|
|
107563
107660
|
const { input: input2, cleanupProjectDir } = prepared;
|
|
107564
107661
|
const absoluteOutputPath = resolveOutputPath(input2.projectDir, input2.outputPath, rendersDir, log2);
|
|
107565
107662
|
const outputDir = dirname21(absoluteOutputPath);
|
|
107566
|
-
if (!existsSync47(outputDir))
|
|
107663
|
+
if (!existsSync47(outputDir)) mkdirSync25(outputDir, { recursive: true });
|
|
107567
107664
|
return { input: input2, cleanupProjectDir, absoluteOutputPath };
|
|
107568
107665
|
}
|
|
107569
107666
|
function validateRenderOverrides(body) {
|
|
@@ -107593,7 +107690,7 @@ async function prepareRenderBody(body) {
|
|
|
107593
107690
|
const projectDir = typeof body.projectDir === "string" ? body.projectDir : void 0;
|
|
107594
107691
|
if (projectDir) {
|
|
107595
107692
|
const absProjectDir = resolve28(projectDir);
|
|
107596
|
-
if (!existsSync47(absProjectDir) || !
|
|
107693
|
+
if (!existsSync47(absProjectDir) || !statSync15(absProjectDir).isDirectory()) {
|
|
107597
107694
|
return { error: `Project directory not found: ${absProjectDir}` };
|
|
107598
107695
|
}
|
|
107599
107696
|
const entry = options.entryFile || "index.html";
|
|
@@ -107760,7 +107857,7 @@ function createRenderHandlers(options = {}) {
|
|
|
107760
107857
|
log2.info(`render progress ${pct}%`, { requestId, stage: j3.currentStage, message });
|
|
107761
107858
|
}
|
|
107762
107859
|
});
|
|
107763
|
-
const fileSize = existsSync47(absoluteOutputPath) ?
|
|
107860
|
+
const fileSize = existsSync47(absoluteOutputPath) ? statSync15(absoluteOutputPath).size : 0;
|
|
107764
107861
|
const durationMs = Date.now() - t0;
|
|
107765
107862
|
const outputToken = store.register(absoluteOutputPath);
|
|
107766
107863
|
const outputUrl = `${outputUrlPrefix}/${outputToken}`;
|
|
@@ -107876,7 +107973,7 @@ function createRenderHandlers(options = {}) {
|
|
|
107876
107973
|
},
|
|
107877
107974
|
abortController.signal
|
|
107878
107975
|
);
|
|
107879
|
-
const fileSize = existsSync47(absoluteOutputPath) ?
|
|
107976
|
+
const fileSize = existsSync47(absoluteOutputPath) ? statSync15(absoluteOutputPath).size : 0;
|
|
107880
107977
|
const outputToken = store.register(absoluteOutputPath);
|
|
107881
107978
|
const outputUrl = `${outputUrlPrefix}/${outputToken}`;
|
|
107882
107979
|
log2.info("render-stream completed", { requestId, fileSize, perf: job.perfSummary ?? null });
|
|
@@ -107939,7 +108036,7 @@ function createRenderHandlers(options = {}) {
|
|
|
107939
108036
|
store.delete(token);
|
|
107940
108037
|
return c3.json({ success: false, error: "Output artifact file missing" }, 404);
|
|
107941
108038
|
}
|
|
107942
|
-
const stats =
|
|
108039
|
+
const stats = statSync15(artifact.path);
|
|
107943
108040
|
return new Response(createReadStream2(artifact.path), {
|
|
107944
108041
|
headers: {
|
|
107945
108042
|
"content-type": "video/mp4",
|
|
@@ -108103,7 +108200,7 @@ var init_planHash = __esm({
|
|
|
108103
108200
|
});
|
|
108104
108201
|
|
|
108105
108202
|
// ../producer/src/services/render/stages/freezePlan.ts
|
|
108106
|
-
import { existsSync as existsSync48, mkdirSync as
|
|
108203
|
+
import { existsSync as existsSync48, mkdirSync as mkdirSync26, readFileSync as readFileSync28, readdirSync as readdirSync16, writeFileSync as writeFileSync15 } from "fs";
|
|
108107
108204
|
import { join as join54, relative as relative9, resolve as resolve29 } from "path";
|
|
108108
108205
|
function stripUndefined(value) {
|
|
108109
108206
|
if (Array.isArray(value)) return value.map(stripUndefined);
|
|
@@ -108199,7 +108296,7 @@ async function freezePlan(input2) {
|
|
|
108199
108296
|
throw new Error(`[freezePlan] planDir does not exist: ${planDir}`);
|
|
108200
108297
|
}
|
|
108201
108298
|
const metaDir = join54(planDir, "meta");
|
|
108202
|
-
if (!existsSync48(metaDir))
|
|
108299
|
+
if (!existsSync48(metaDir)) mkdirSync26(metaDir, { recursive: true });
|
|
108203
108300
|
writeFileSync15(
|
|
108204
108301
|
join54(metaDir, "composition.json"),
|
|
108205
108302
|
`${JSON.stringify(composition, null, 2)}
|
|
@@ -108429,11 +108526,11 @@ var init_shared2 = __esm({
|
|
|
108429
108526
|
import {
|
|
108430
108527
|
cpSync as cpSync3,
|
|
108431
108528
|
existsSync as existsSync50,
|
|
108432
|
-
mkdirSync as
|
|
108529
|
+
mkdirSync as mkdirSync27,
|
|
108433
108530
|
readdirSync as readdirSync17,
|
|
108434
108531
|
renameSync as renameSync5,
|
|
108435
108532
|
rmSync as rmSync13,
|
|
108436
|
-
statSync as
|
|
108533
|
+
statSync as statSync16,
|
|
108437
108534
|
writeFileSync as writeFileSync16
|
|
108438
108535
|
} from "fs";
|
|
108439
108536
|
import { join as join56, relative as relative10, sep as sep6 } from "path";
|
|
@@ -108466,7 +108563,7 @@ function measurePlanDirBytes(planDir) {
|
|
|
108466
108563
|
walk(full2);
|
|
108467
108564
|
} else if (entry.isFile()) {
|
|
108468
108565
|
try {
|
|
108469
|
-
total +=
|
|
108566
|
+
total += statSync16(full2).size;
|
|
108470
108567
|
} catch {
|
|
108471
108568
|
}
|
|
108472
108569
|
}
|
|
@@ -108600,7 +108697,7 @@ async function plan(projectDir, config, planDir) {
|
|
|
108600
108697
|
useGpu: false,
|
|
108601
108698
|
browserGpuMode: "software"
|
|
108602
108699
|
});
|
|
108603
|
-
if (!existsSync50(planDir))
|
|
108700
|
+
if (!existsSync50(planDir)) mkdirSync27(planDir, { recursive: true });
|
|
108604
108701
|
const log2 = config.logger ?? defaultLogger;
|
|
108605
108702
|
const abortSignal = config.abortSignal;
|
|
108606
108703
|
const assertNotAborted = () => {
|
|
@@ -108634,9 +108731,9 @@ async function plan(projectDir, config, planDir) {
|
|
|
108634
108731
|
throw new Error(`[plan] entry file not found: ${htmlPath}`);
|
|
108635
108732
|
}
|
|
108636
108733
|
const workDir = join56(planDir, ".plan-work");
|
|
108637
|
-
if (!existsSync50(workDir))
|
|
108734
|
+
if (!existsSync50(workDir)) mkdirSync27(workDir, { recursive: true });
|
|
108638
108735
|
const compiledDir = join56(workDir, "compiled");
|
|
108639
|
-
|
|
108736
|
+
mkdirSync27(compiledDir, { recursive: true });
|
|
108640
108737
|
cpSync3(projectDir, compiledDir, {
|
|
108641
108738
|
recursive: true,
|
|
108642
108739
|
dereference: true,
|
|
@@ -108729,13 +108826,16 @@ async function plan(projectDir, config, planDir) {
|
|
|
108729
108826
|
abortSignal,
|
|
108730
108827
|
assertNotAborted
|
|
108731
108828
|
});
|
|
108829
|
+
if (audioResult.audioError) {
|
|
108830
|
+
log2.warn(`[Render] Audio mix failed \u2014 output will be video-only: ${audioResult.audioError}`);
|
|
108831
|
+
}
|
|
108732
108832
|
const stagedVideoFrames = join56(compiledDir, "__hyperframes_video_frames");
|
|
108733
108833
|
const videoFramesDst = join56(planDir, "video-frames");
|
|
108734
108834
|
if (existsSync50(videoFramesDst)) rmSync13(videoFramesDst, { recursive: true, force: true });
|
|
108735
108835
|
if (existsSync50(stagedVideoFrames)) {
|
|
108736
108836
|
renameSync5(stagedVideoFrames, videoFramesDst);
|
|
108737
108837
|
} else {
|
|
108738
|
-
|
|
108838
|
+
mkdirSync27(videoFramesDst, { recursive: true });
|
|
108739
108839
|
}
|
|
108740
108840
|
if (existsSync50(finalCompiledDir)) rmSync13(finalCompiledDir, { recursive: true, force: true });
|
|
108741
108841
|
renameSync5(compiledDir, finalCompiledDir);
|
|
@@ -108750,7 +108850,7 @@ async function plan(projectDir, config, planDir) {
|
|
|
108750
108850
|
metadata: ext.metadata
|
|
108751
108851
|
}))
|
|
108752
108852
|
};
|
|
108753
|
-
|
|
108853
|
+
mkdirSync27(join56(planDir, "meta"), { recursive: true });
|
|
108754
108854
|
writeFileSync16(
|
|
108755
108855
|
join56(planDir, PLAN_VIDEOS_META_RELATIVE_PATH),
|
|
108756
108856
|
JSON.stringify(planVideosJson, null, 2),
|
|
@@ -108900,7 +109000,7 @@ var init_plan = __esm({
|
|
|
108900
109000
|
|
|
108901
109001
|
// ../producer/src/services/distributed/renderChunk.ts
|
|
108902
109002
|
import { randomBytes as randomBytes2 } from "crypto";
|
|
108903
|
-
import { existsSync as existsSync51, mkdirSync as
|
|
109003
|
+
import { existsSync as existsSync51, mkdirSync as mkdirSync28, readFileSync as readFileSync30, readdirSync as readdirSync18, rmSync as rmSync14, writeFileSync as writeFileSync17 } from "fs";
|
|
108904
109004
|
import { extname as extname10, join as join57 } from "path";
|
|
108905
109005
|
function rebuildExtractedFramesFromPlanDir(planDir, videos) {
|
|
108906
109006
|
const result = [];
|
|
@@ -109066,9 +109166,9 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath) {
|
|
|
109066
109166
|
"software"
|
|
109067
109167
|
);
|
|
109068
109168
|
const workDir = `${outputChunkPath}.work.${process.pid}.${randomBytes2(4).toString("hex")}`;
|
|
109069
|
-
|
|
109169
|
+
mkdirSync28(workDir, { recursive: true });
|
|
109070
109170
|
const framesDir = join57(workDir, "captured-frames");
|
|
109071
|
-
|
|
109171
|
+
mkdirSync28(framesDir, { recursive: true });
|
|
109072
109172
|
const fileServer = await createFileServer2({
|
|
109073
109173
|
projectDir: compiledDir,
|
|
109074
109174
|
compiledDir,
|
|
@@ -109147,10 +109247,10 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath) {
|
|
|
109147
109247
|
const effectiveBitrate = encoder.crf != null ? void 0 : encoder.bitrate;
|
|
109148
109248
|
const videoOnlyPath = outputChunkPath;
|
|
109149
109249
|
if (isPngSequence) {
|
|
109150
|
-
if (!existsSync51(outputChunkPath))
|
|
109250
|
+
if (!existsSync51(outputChunkPath)) mkdirSync28(outputChunkPath, { recursive: true });
|
|
109151
109251
|
} else {
|
|
109152
109252
|
const outDir = join57(outputChunkPath, "..");
|
|
109153
|
-
if (!existsSync51(outDir))
|
|
109253
|
+
if (!existsSync51(outDir)) mkdirSync28(outDir, { recursive: true });
|
|
109154
109254
|
}
|
|
109155
109255
|
const encodeStarted = Date.now();
|
|
109156
109256
|
await runEncodeStage({
|
|
@@ -109589,11 +109689,11 @@ var init_audioPadTrim = __esm({
|
|
|
109589
109689
|
import {
|
|
109590
109690
|
cpSync as cpSync4,
|
|
109591
109691
|
existsSync as existsSync53,
|
|
109592
|
-
mkdirSync as
|
|
109692
|
+
mkdirSync as mkdirSync29,
|
|
109593
109693
|
readFileSync as readFileSync31,
|
|
109594
109694
|
readdirSync as readdirSync19,
|
|
109595
109695
|
rmSync as rmSync16,
|
|
109596
|
-
statSync as
|
|
109696
|
+
statSync as statSync17,
|
|
109597
109697
|
writeFileSync as writeFileSync18
|
|
109598
109698
|
} from "fs";
|
|
109599
109699
|
import { dirname as dirname23, join as join58 } from "path";
|
|
@@ -109626,11 +109726,11 @@ async function assemble(planDir, chunkPaths, audioPath, outputPath, options) {
|
|
|
109626
109726
|
return mergePngFrameDirs(chunkPaths, outputPath, plan2.totalFrames, audioPath, start);
|
|
109627
109727
|
}
|
|
109628
109728
|
if (!existsSync53(dirname23(outputPath))) {
|
|
109629
|
-
|
|
109729
|
+
mkdirSync29(dirname23(outputPath), { recursive: true });
|
|
109630
109730
|
}
|
|
109631
109731
|
const workDir = `${outputPath}.assemble-work`;
|
|
109632
109732
|
if (existsSync53(workDir)) rmSync16(workDir, { recursive: true, force: true });
|
|
109633
|
-
|
|
109733
|
+
mkdirSync29(workDir, { recursive: true });
|
|
109634
109734
|
try {
|
|
109635
109735
|
const concatOutputPath = join58(workDir, `concat.${plan2.dimensions.format}`);
|
|
109636
109736
|
const fpsArg = fpsToFfmpegArg({
|
|
@@ -109775,7 +109875,7 @@ async function assemble(planDir, chunkPaths, audioPath, outputPath, options) {
|
|
|
109775
109875
|
});
|
|
109776
109876
|
}
|
|
109777
109877
|
}
|
|
109778
|
-
const fileSize = existsSync53(outputPath) ?
|
|
109878
|
+
const fileSize = existsSync53(outputPath) ? statSync17(outputPath).size : 0;
|
|
109779
109879
|
return {
|
|
109780
109880
|
outputPath,
|
|
109781
109881
|
durationMs: Date.now() - start,
|
|
@@ -109785,10 +109885,10 @@ async function assemble(planDir, chunkPaths, audioPath, outputPath, options) {
|
|
|
109785
109885
|
}
|
|
109786
109886
|
function mergePngFrameDirs(chunkPaths, outputPath, totalFrames, audioPath, startTimeMs) {
|
|
109787
109887
|
if (existsSync53(outputPath)) rmSync16(outputPath, { recursive: true, force: true });
|
|
109788
|
-
|
|
109888
|
+
mkdirSync29(outputPath, { recursive: true });
|
|
109789
109889
|
let globalIdx = 0;
|
|
109790
109890
|
for (const chunkDir of chunkPaths) {
|
|
109791
|
-
if (!
|
|
109891
|
+
if (!statSync17(chunkDir).isDirectory()) {
|
|
109792
109892
|
throw new Error(
|
|
109793
109893
|
`[assemble] png-sequence chunk must be a directory: ${chunkDir} (got a file)`
|
|
109794
109894
|
);
|
|
@@ -109815,7 +109915,7 @@ function mergePngFrameDirs(chunkPaths, outputPath, totalFrames, audioPath, start
|
|
|
109815
109915
|
let fileSize = 0;
|
|
109816
109916
|
for (const name of readdirSync19(outputPath)) {
|
|
109817
109917
|
try {
|
|
109818
|
-
fileSize +=
|
|
109918
|
+
fileSize += statSync17(join58(outputPath, name)).size;
|
|
109819
109919
|
} catch {
|
|
109820
109920
|
}
|
|
109821
109921
|
}
|
|
@@ -109929,7 +110029,7 @@ __export(studioServer_exports, {
|
|
|
109929
110029
|
});
|
|
109930
110030
|
import { Hono as Hono5 } from "hono";
|
|
109931
110031
|
import { streamSSE as streamSSE3 } from "hono/streaming";
|
|
109932
|
-
import { existsSync as existsSync54, readFileSync as readFileSync34, writeFileSync as writeFileSync19, statSync as
|
|
110032
|
+
import { existsSync as existsSync54, readFileSync as readFileSync34, writeFileSync as writeFileSync19, statSync as statSync18 } from "fs";
|
|
109933
110033
|
import { resolve as resolve30, join as join60, basename as basename8 } from "path";
|
|
109934
110034
|
function resolveDistDir() {
|
|
109935
110035
|
return resolveStudioBundle().dir;
|
|
@@ -110385,7 +110485,7 @@ function createStudioServer(options) {
|
|
|
110385
110485
|
});
|
|
110386
110486
|
const serveStudioStaticFile = (c3) => {
|
|
110387
110487
|
const filePath = resolve30(studioDir, c3.req.path.slice(1));
|
|
110388
|
-
if (!existsSync54(filePath) || !
|
|
110488
|
+
if (!existsSync54(filePath) || !statSync18(filePath).isFile()) return c3.text("not found", 404);
|
|
110389
110489
|
const content = readFileSync34(filePath);
|
|
110390
110490
|
return new Response(content, {
|
|
110391
110491
|
headers: { "Content-Type": getMimeType(filePath), "Cache-Control": "no-store" }
|
|
@@ -110496,7 +110596,7 @@ __export(preview_exports, {
|
|
|
110496
110596
|
examples: () => examples2
|
|
110497
110597
|
});
|
|
110498
110598
|
import { spawn as spawn12 } from "child_process";
|
|
110499
|
-
import { existsSync as existsSync55, lstatSync as lstatSync3, symlinkSync as symlinkSync3, unlinkSync as unlinkSync4, readlinkSync, mkdirSync as
|
|
110599
|
+
import { existsSync as existsSync55, lstatSync as lstatSync3, symlinkSync as symlinkSync3, unlinkSync as unlinkSync4, readlinkSync, mkdirSync as mkdirSync30 } from "fs";
|
|
110500
110600
|
import { resolve as resolve31, dirname as dirname24, basename as basename9, join as join61 } from "path";
|
|
110501
110601
|
import { fileURLToPath as fileURLToPath8 } from "url";
|
|
110502
110602
|
import { createRequire as createRequire2 } from "module";
|
|
@@ -110804,7 +110904,7 @@ function printStudioSummary(projectName, url, opts = {}) {
|
|
|
110804
110904
|
}
|
|
110805
110905
|
function linkProjectIntoStudioData(dir, projectsDir, projectName) {
|
|
110806
110906
|
const symlinkPath = join61(projectsDir, projectName);
|
|
110807
|
-
|
|
110907
|
+
mkdirSync30(projectsDir, { recursive: true });
|
|
110808
110908
|
let createdSymlink = false;
|
|
110809
110909
|
if (dir !== symlinkPath) {
|
|
110810
110910
|
if (existsSync55(symlinkPath)) {
|
|
@@ -111251,7 +111351,7 @@ __export(init_exports, {
|
|
|
111251
111351
|
});
|
|
111252
111352
|
import {
|
|
111253
111353
|
existsSync as existsSync56,
|
|
111254
|
-
mkdirSync as
|
|
111354
|
+
mkdirSync as mkdirSync31,
|
|
111255
111355
|
copyFileSync as copyFileSync6,
|
|
111256
111356
|
cpSync as cpSync5,
|
|
111257
111357
|
writeFileSync as writeFileSync20,
|
|
@@ -111590,7 +111690,7 @@ function applyResolutionPreset(destDir, resolution) {
|
|
|
111590
111690
|
}
|
|
111591
111691
|
}
|
|
111592
111692
|
async function scaffoldProject(destDir, name, templateId, localVideoName, durationSeconds, tailwind = false, resolution) {
|
|
111593
|
-
|
|
111693
|
+
mkdirSync31(destDir, { recursive: true });
|
|
111594
111694
|
const templateDir = getStaticTemplateDir(templateId);
|
|
111595
111695
|
if (existsSync56(join63(templateDir, "index.html"))) {
|
|
111596
111696
|
cpSync5(templateDir, destDir, { recursive: true });
|
|
@@ -111832,7 +111932,7 @@ var init_init = __esm({
|
|
|
111832
111932
|
console.error(c.error(`Audio file not found: ${audioFlag}`));
|
|
111833
111933
|
process.exit(1);
|
|
111834
111934
|
}
|
|
111835
|
-
|
|
111935
|
+
mkdirSync31(destDir2, { recursive: true });
|
|
111836
111936
|
let localVideoName2;
|
|
111837
111937
|
let videoDuration2;
|
|
111838
111938
|
let sourceFilePath2;
|
|
@@ -111974,7 +112074,7 @@ var init_init = __esm({
|
|
|
111974
112074
|
me("Setup cancelled.");
|
|
111975
112075
|
process.exit(1);
|
|
111976
112076
|
}
|
|
111977
|
-
|
|
112077
|
+
mkdirSync31(destDir, { recursive: true });
|
|
111978
112078
|
sourceFilePath = videoPath;
|
|
111979
112079
|
const result = await handleVideoFile(videoPath, destDir, true);
|
|
111980
112080
|
localVideoName = result.localVideoName;
|
|
@@ -111986,7 +112086,7 @@ var init_init = __esm({
|
|
|
111986
112086
|
me("Setup cancelled.");
|
|
111987
112087
|
process.exit(1);
|
|
111988
112088
|
}
|
|
111989
|
-
|
|
112089
|
+
mkdirSync31(destDir, { recursive: true });
|
|
111990
112090
|
sourceFilePath = audioPath;
|
|
111991
112091
|
copyFileSync6(audioPath, resolve33(destDir, basename10(audioPath)));
|
|
111992
112092
|
R2.info(`Audio copied to ${c.accent(basename10(audioPath))}`);
|
|
@@ -112856,18 +112956,18 @@ function buildPresentPage(projectName, islandJson) {
|
|
|
112856
112956
|
<meta charset="UTF-8" />
|
|
112857
112957
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
112858
112958
|
<title>${escHtml(projectName)} \u2014 Presenter</title>
|
|
112959
|
+
<script>
|
|
112960
|
+
// Retitle the audience tab so the two tabs are distinguishable in the
|
|
112961
|
+
// browser tab strip and in Meet's "Share a tab" picker.
|
|
112962
|
+
if (new URLSearchParams(location.search).get("mode") === "audience") {
|
|
112963
|
+
document.title = ${JSON.stringify(projectName).replace(/</g, "\\u003c")} + " \u2014 Audience";
|
|
112964
|
+
}
|
|
112965
|
+
</script>
|
|
112859
112966
|
<style>
|
|
112860
112967
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
112861
112968
|
html, body { height: 100%; background: #0a0a0a; overflow: hidden; }
|
|
112862
112969
|
hyperframes-slideshow { display: block; position: relative; width: 100vw; height: 100vh; }
|
|
112863
112970
|
hyperframes-player { position: absolute; inset: 0; }
|
|
112864
|
-
#present-btn {
|
|
112865
|
-
position: fixed; top: 18px; right: 18px; z-index: 99999;
|
|
112866
|
-
font: 600 14px/1 system-ui, sans-serif; color: #0d1321;
|
|
112867
|
-
background: #f4b740; border: none; border-radius: 999px;
|
|
112868
|
-
padding: 11px 18px; cursor: pointer; box-shadow: 0 6px 20px rgba(0,0,0,.45);
|
|
112869
|
-
}
|
|
112870
|
-
#present-btn:hover { background: #ffcb5c; }
|
|
112871
112971
|
</style>
|
|
112872
112972
|
<script src="/player.js"></script>
|
|
112873
112973
|
<script src="/slideshow.js"></script>
|
|
@@ -112879,28 +112979,8 @@ function buildPresentPage(projectName, islandJson) {
|
|
|
112879
112979
|
${islandJson}
|
|
112880
112980
|
</script>
|
|
112881
112981
|
</hyperframes-slideshow>
|
|
112882
|
-
|
|
112883
|
-
|
|
112884
|
-
(function () {
|
|
112885
|
-
// The audience window loads this same page with ?mode=audience; it must not
|
|
112886
|
-
// show the Present button or it would recurse opening windows.
|
|
112887
|
-
var isAudience = new URLSearchParams(location.search).get("mode") === "audience";
|
|
112888
|
-
var btn = document.getElementById("present-btn");
|
|
112889
|
-
if (isAudience) { if (btn) btn.remove(); return; }
|
|
112890
|
-
function present() {
|
|
112891
|
-
var ss = document.querySelector("hyperframes-slideshow");
|
|
112892
|
-
if (ss && typeof ss.present === "function") {
|
|
112893
|
-
ss.present();
|
|
112894
|
-
if (btn) btn.style.display = "none";
|
|
112895
|
-
}
|
|
112896
|
-
}
|
|
112897
|
-
if (btn) btn.addEventListener("click", present);
|
|
112898
|
-
// 'P' opens presenter mode (window.open needs a user gesture, so a key/click).
|
|
112899
|
-
window.addEventListener("keydown", function (e) {
|
|
112900
|
-
if ((e.key === "p" || e.key === "P") && !e.metaKey && !e.ctrlKey) present();
|
|
112901
|
-
});
|
|
112902
|
-
})();
|
|
112903
|
-
</script>
|
|
112982
|
+
<!-- Present CTA lives in the component's nav cluster (data-hf-present, plus
|
|
112983
|
+
the P key) \u2014 no page-level button, or we'd render two Present CTAs. -->
|
|
112904
112984
|
<script>
|
|
112905
112985
|
// Sound effects play HERE, in the parent document. The composition runs in the
|
|
112906
112986
|
// player's iframe, which is autoplay-blocked without its own user gesture; the
|
|
@@ -113069,6 +113149,15 @@ var init_present = __esm({
|
|
|
113069
113149
|
return;
|
|
113070
113150
|
}
|
|
113071
113151
|
const islandJson = islandMatch[1].trim();
|
|
113152
|
+
try {
|
|
113153
|
+
JSON.parse(islandJson);
|
|
113154
|
+
} catch (err) {
|
|
113155
|
+
R2.error(
|
|
113156
|
+
`Slideshow island in ${project.indexPath} is not valid JSON: ${err.message}`
|
|
113157
|
+
);
|
|
113158
|
+
process.exitCode = 1;
|
|
113159
|
+
return;
|
|
113160
|
+
}
|
|
113072
113161
|
const { Hono: Hono6 } = await import("hono");
|
|
113073
113162
|
const { createAdaptorServer } = await import("@hono/node-server");
|
|
113074
113163
|
const { isSafePath: isSafePath2 } = await Promise.resolve().then(() => (init_studio_api(), studio_api_exports));
|
|
@@ -113110,7 +113199,15 @@ var init_present = __esm({
|
|
|
113110
113199
|
console.log(` ${c.dim("Deck")} ${c.accent(project.name)}`);
|
|
113111
113200
|
console.log(` ${c.dim("Present")} ${c.accent(url)}`);
|
|
113112
113201
|
console.log();
|
|
113113
|
-
console.log(
|
|
113202
|
+
console.log(
|
|
113203
|
+
` ${c.dim("Click the Present control (or press P) to open the audience display.")}`
|
|
113204
|
+
);
|
|
113205
|
+
console.log(
|
|
113206
|
+
` ${c.dim('Google Meet: share the AUDIENCE tab ("Share screen \u2192 A tab"), not a window or your whole screen.')}`
|
|
113207
|
+
);
|
|
113208
|
+
console.log(
|
|
113209
|
+
` ${c.dim("Zoom desktop: drag the audience tab into its own window and share that window (keep it at least partly visible).")}`
|
|
113210
|
+
);
|
|
113114
113211
|
console.log(` ${c.dim("Press Ctrl+C to stop")}`);
|
|
113115
113212
|
console.log();
|
|
113116
113213
|
if (args.open) {
|
|
@@ -113129,7 +113226,7 @@ var init_present = __esm({
|
|
|
113129
113226
|
|
|
113130
113227
|
// src/utils/publishProject.ts
|
|
113131
113228
|
import { basename as basename11, dirname as dirname27, join as join64, posix as posix4, relative as relative13, resolve as resolve39 } from "path";
|
|
113132
|
-
import { existsSync as existsSync61, readdirSync as readdirSync23, readFileSync as readFileSync38, statSync as
|
|
113229
|
+
import { existsSync as existsSync61, readdirSync as readdirSync23, readFileSync as readFileSync38, statSync as statSync19 } from "fs";
|
|
113133
113230
|
import AdmZip from "adm-zip";
|
|
113134
113231
|
function isRecord3(value) {
|
|
113135
113232
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -113236,7 +113333,7 @@ function collectProjectFiles(rootDir, currentDir, paths) {
|
|
|
113236
113333
|
collectProjectFiles(rootDir, absolutePath, paths);
|
|
113237
113334
|
continue;
|
|
113238
113335
|
}
|
|
113239
|
-
if (!
|
|
113336
|
+
if (!statSync19(absolutePath).isFile()) continue;
|
|
113240
113337
|
paths.push(relativePath);
|
|
113241
113338
|
}
|
|
113242
113339
|
}
|
|
@@ -113263,7 +113360,7 @@ function tryResolveExternal(ctx, rawPath, referrerAbsDir) {
|
|
|
113263
113360
|
const absPath = resolve39(referrerAbsDir, rawPath);
|
|
113264
113361
|
if (isPathInside(absPath, ctx.absProjectDir)) return null;
|
|
113265
113362
|
try {
|
|
113266
|
-
if (!existsSync61(absPath) || !
|
|
113363
|
+
if (!existsSync61(absPath) || !statSync19(absPath).isFile()) return null;
|
|
113267
113364
|
} catch {
|
|
113268
113365
|
return null;
|
|
113269
113366
|
}
|
|
@@ -114292,7 +114389,7 @@ __export(batchRender_exports, {
|
|
|
114292
114389
|
resolveOutputTemplate: () => resolveOutputTemplate,
|
|
114293
114390
|
runBatchRender: () => runBatchRender
|
|
114294
114391
|
});
|
|
114295
|
-
import { mkdirSync as
|
|
114392
|
+
import { mkdirSync as mkdirSync33, readFileSync as readFileSync40, writeFileSync as writeFileSync21 } from "fs";
|
|
114296
114393
|
import { dirname as dirname28, join as join66, resolve as resolve43, sep as sep8 } from "path";
|
|
114297
114394
|
function isRecord4(value) {
|
|
114298
114395
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
@@ -114477,7 +114574,7 @@ function summarizeManifest(manifest) {
|
|
|
114477
114574
|
}
|
|
114478
114575
|
function writeManifest(manifest) {
|
|
114479
114576
|
summarizeManifest(manifest);
|
|
114480
|
-
|
|
114577
|
+
mkdirSync33(dirname28(manifest.manifestPath), { recursive: true });
|
|
114481
114578
|
writeFileSync21(manifest.manifestPath, JSON.stringify(manifest, null, 2) + "\n", "utf8");
|
|
114482
114579
|
}
|
|
114483
114580
|
function emitJsonEvent(event, json) {
|
|
@@ -114499,7 +114596,7 @@ async function renderBatchRow(row, manifest, options) {
|
|
|
114499
114596
|
console.log(c.dim(`Batch row ${row.index}: ${row.outputPath}`));
|
|
114500
114597
|
}
|
|
114501
114598
|
try {
|
|
114502
|
-
|
|
114599
|
+
mkdirSync33(dirname28(row.outputPath), { recursive: true });
|
|
114503
114600
|
const result = await options.renderOne(row);
|
|
114504
114601
|
manifestRow.status = "completed";
|
|
114505
114602
|
manifestRow.durationMs = result.durationMs ?? null;
|
|
@@ -114640,7 +114737,7 @@ __export(render_exports, {
|
|
|
114640
114737
|
renderLocal: () => renderLocal,
|
|
114641
114738
|
resolveBrowserGpuForCli: () => resolveBrowserGpuForCli
|
|
114642
114739
|
});
|
|
114643
|
-
import { mkdirSync as
|
|
114740
|
+
import { mkdirSync as mkdirSync34, readdirSync as readdirSync24, readFileSync as readFileSync41, statSync as statSync20, writeFileSync as writeFileSync23, rmSync as rmSync17 } from "fs";
|
|
114644
114741
|
import { cpus as cpus4, freemem as freemem5, tmpdir as tmpdir5 } from "os";
|
|
114645
114742
|
import { resolve as resolve44, dirname as dirname29, join as join67, basename as basename12 } from "path";
|
|
114646
114743
|
import { execFileSync as execFileSync9, spawn as spawn14 } from "child_process";
|
|
@@ -114706,7 +114803,7 @@ function resolveDockerfilePath() {
|
|
|
114706
114803
|
const devPath = resolve44(__dirname, "..", "src", "docker", "Dockerfile.render");
|
|
114707
114804
|
for (const p2 of [builtPath, devPath]) {
|
|
114708
114805
|
try {
|
|
114709
|
-
|
|
114806
|
+
statSync20(p2);
|
|
114710
114807
|
return p2;
|
|
114711
114808
|
} catch {
|
|
114712
114809
|
continue;
|
|
@@ -114735,7 +114832,7 @@ function ensureDockerImage(version2, platform10, quiet) {
|
|
|
114735
114832
|
if (!quiet) console.log(c.dim(` Building Docker image: ${tag} (${platform10})...`));
|
|
114736
114833
|
const dockerfilePath = resolveDockerfilePath();
|
|
114737
114834
|
const tmpDir = join67(tmpdir5(), `hyperframes-docker-${Date.now()}`);
|
|
114738
|
-
|
|
114835
|
+
mkdirSync34(tmpDir, { recursive: true });
|
|
114739
114836
|
writeFileSync23(join67(tmpDir, "Dockerfile"), readFileSync41(dockerfilePath));
|
|
114740
114837
|
const targetArch = platform10 === "linux/arm64" ? "arm64" : "amd64";
|
|
114741
114838
|
try {
|
|
@@ -115133,14 +115230,14 @@ function printRenderComplete(outputPath, elapsedMs, quiet, outputDurationSeconds
|
|
|
115133
115230
|
let fileSize = "unknown";
|
|
115134
115231
|
let isDirectory = false;
|
|
115135
115232
|
try {
|
|
115136
|
-
const stat3 =
|
|
115233
|
+
const stat3 = statSync20(outputPath);
|
|
115137
115234
|
isDirectory = stat3.isDirectory();
|
|
115138
115235
|
if (stat3.isDirectory()) {
|
|
115139
115236
|
let total = 0;
|
|
115140
115237
|
for (const entry of readdirSync24(outputPath, { withFileTypes: true })) {
|
|
115141
115238
|
if (!entry.isFile()) continue;
|
|
115142
115239
|
try {
|
|
115143
|
-
total +=
|
|
115240
|
+
total += statSync20(join67(outputPath, entry.name)).size;
|
|
115144
115241
|
} catch {
|
|
115145
115242
|
}
|
|
115146
115243
|
}
|
|
@@ -115560,7 +115657,7 @@ var init_render = __esm({
|
|
|
115560
115657
|
const timePart = now.toTimeString().slice(0, 8).replace(/:/g, "-");
|
|
115561
115658
|
const batchOutputTemplate = args.output ? args.output : join67(rendersDir, `${project.name}_${datePart}_${timePart}_{index}${ext}`);
|
|
115562
115659
|
const outputPath = args.output ? resolve44(args.output) : join67(rendersDir, `${project.name}_${datePart}_${timePart}${ext}`);
|
|
115563
|
-
if (!batchPath)
|
|
115660
|
+
if (!batchPath) mkdirSync34(dirname29(outputPath), { recursive: true });
|
|
115564
115661
|
const useDocker = args.docker ?? false;
|
|
115565
115662
|
const useGpu = args.gpu ?? false;
|
|
115566
115663
|
const browserGpuArg = args["browser-gpu"];
|
|
@@ -115618,7 +115715,7 @@ var init_render = __esm({
|
|
|
115618
115715
|
console.log(c.warn(" GIF output is capped at 30fps. Use --fps 15 for smaller files."));
|
|
115619
115716
|
}
|
|
115620
115717
|
const pageNavigationTimeoutMs = resolveBrowserTimeoutMsArg(args["browser-timeout"]);
|
|
115621
|
-
const entryFile = resolveCompositionEntryArg(args.composition, project.dir,
|
|
115718
|
+
const entryFile = resolveCompositionEntryArg(args.composition, project.dir, statSync20);
|
|
115622
115719
|
let batchModule;
|
|
115623
115720
|
let preparedBatch;
|
|
115624
115721
|
if (batchPath) {
|
|
@@ -116171,7 +116268,7 @@ __export(beats_exports, {
|
|
|
116171
116268
|
default: () => beats_default,
|
|
116172
116269
|
examples: () => examples11
|
|
116173
116270
|
});
|
|
116174
|
-
import { existsSync as existsSync66, readFileSync as readFileSync44, mkdirSync as
|
|
116271
|
+
import { existsSync as existsSync66, readFileSync as readFileSync44, mkdirSync as mkdirSync35, writeFileSync as writeFileSync24 } from "fs";
|
|
116175
116272
|
import { resolve as resolve45, join as join69, dirname as dirname31 } from "path";
|
|
116176
116273
|
function fail(message) {
|
|
116177
116274
|
console.error(c.error(message));
|
|
@@ -116243,7 +116340,7 @@ var init_beats2 = __esm({
|
|
|
116243
116340
|
fail(`No beats detected in ${rel} \u2014 nothing written. (Track may be silent/ambient.)`);
|
|
116244
116341
|
}
|
|
116245
116342
|
const outPath = join69(project.dir, "beats", `${rel}.json`);
|
|
116246
|
-
|
|
116343
|
+
mkdirSync35(dirname31(outPath), { recursive: true });
|
|
116247
116344
|
writeFileSync24(outPath, serializeBeats(result.beatTimes, result.beatStrengths, rel));
|
|
116248
116345
|
report(`beats/${rel}.json`, result, Boolean(args.json));
|
|
116249
116346
|
}
|
|
@@ -116257,10 +116354,10 @@ __export(staticProjectServer_exports, {
|
|
|
116257
116354
|
serveStaticProjectHtml: () => serveStaticProjectHtml
|
|
116258
116355
|
});
|
|
116259
116356
|
import { createServer } from "http";
|
|
116260
|
-
import { createReadStream as createReadStream3, existsSync as existsSync67, statSync as
|
|
116357
|
+
import { createReadStream as createReadStream3, existsSync as existsSync67, statSync as statSync21 } from "fs";
|
|
116261
116358
|
import { isAbsolute as isAbsolute13, relative as relative14, resolve as resolve46 } from "path";
|
|
116262
116359
|
function serveFileWithRange(filePath, rangeHeader, res) {
|
|
116263
|
-
const size =
|
|
116360
|
+
const size = statSync21(filePath).size;
|
|
116264
116361
|
const headers = {
|
|
116265
116362
|
"Content-Type": getMimeType(filePath),
|
|
116266
116363
|
"Accept-Ranges": "bytes"
|
|
@@ -119459,7 +119556,7 @@ __export(keyframes_exports, {
|
|
|
119459
119556
|
examples: () => examples14,
|
|
119460
119557
|
surfaceComposition: () => surfaceComposition
|
|
119461
119558
|
});
|
|
119462
|
-
import { existsSync as existsSync70, readFileSync as readFileSync47, statSync as
|
|
119559
|
+
import { existsSync as existsSync70, readFileSync as readFileSync47, statSync as statSync23 } from "fs";
|
|
119463
119560
|
import { resolve as resolve47, dirname as dirname33, basename as basename14 } from "path";
|
|
119464
119561
|
function inlineScriptText(html) {
|
|
119465
119562
|
const doc = new DOMParser().parseFromString(html, "text/html");
|
|
@@ -119941,7 +120038,7 @@ function resolveScope(args) {
|
|
|
119941
120038
|
let comps;
|
|
119942
120039
|
let projectName;
|
|
119943
120040
|
let projectDir;
|
|
119944
|
-
if (raw && raw.endsWith(".html") && existsSync70(raw) &&
|
|
120041
|
+
if (raw && raw.endsWith(".html") && existsSync70(raw) && statSync23(raw).isFile()) {
|
|
119945
120042
|
comps = [surfaceComposition(readFileSync47(raw, "utf-8"), basename14(raw), raw)];
|
|
119946
120043
|
projectName = basename14(raw);
|
|
119947
120044
|
projectDir = dirname33(raw);
|
|
@@ -120151,7 +120248,7 @@ __export(info_exports, {
|
|
|
120151
120248
|
examples: () => examples15,
|
|
120152
120249
|
orientation: () => orientation
|
|
120153
120250
|
});
|
|
120154
|
-
import { readFileSync as readFileSync48, readdirSync as readdirSync26, statSync as
|
|
120251
|
+
import { readFileSync as readFileSync48, readdirSync as readdirSync26, statSync as statSync24 } from "fs";
|
|
120155
120252
|
import { join as join73 } from "path";
|
|
120156
120253
|
function orientation(width, height) {
|
|
120157
120254
|
if (width > height) return "landscape";
|
|
@@ -120170,7 +120267,7 @@ function totalSize(dir) {
|
|
|
120170
120267
|
if (entry.isDirectory()) {
|
|
120171
120268
|
total += totalSize(path2);
|
|
120172
120269
|
} else {
|
|
120173
|
-
total +=
|
|
120270
|
+
total += statSync24(path2).size;
|
|
120174
120271
|
}
|
|
120175
120272
|
}
|
|
120176
120273
|
return total;
|
|
@@ -120433,7 +120530,7 @@ __export(benchmark_exports, {
|
|
|
120433
120530
|
default: () => benchmark_default,
|
|
120434
120531
|
examples: () => examples17
|
|
120435
120532
|
});
|
|
120436
|
-
import { existsSync as existsSync73, statSync as
|
|
120533
|
+
import { existsSync as existsSync73, statSync as statSync25 } from "fs";
|
|
120437
120534
|
import { resolve as resolve49, join as join74 } from "path";
|
|
120438
120535
|
var examples17, FPS_30, FPS_60, DEFAULT_CONFIGS, benchmark_default;
|
|
120439
120536
|
var init_benchmark = __esm({
|
|
@@ -120527,7 +120624,7 @@ var init_benchmark = __esm({
|
|
|
120527
120624
|
const elapsedMs = Date.now() - startTime;
|
|
120528
120625
|
let fileSize = null;
|
|
120529
120626
|
if (existsSync73(outputPath)) {
|
|
120530
|
-
const stat3 =
|
|
120627
|
+
const stat3 = statSync25(outputPath);
|
|
120531
120628
|
fileSize = stat3.size;
|
|
120532
120629
|
}
|
|
120533
120630
|
runs.push({ elapsedMs, fileSize });
|
|
@@ -120784,7 +120881,7 @@ __export(manager_exports3, {
|
|
|
120784
120881
|
modelPath: () => modelPath,
|
|
120785
120882
|
selectProviders: () => selectProviders
|
|
120786
120883
|
});
|
|
120787
|
-
import { existsSync as existsSync74, mkdirSync as
|
|
120884
|
+
import { existsSync as existsSync74, mkdirSync as mkdirSync36 } from "fs";
|
|
120788
120885
|
import { homedir as homedir11, platform as platform8, arch } from "os";
|
|
120789
120886
|
import { join as join75 } from "path";
|
|
120790
120887
|
function isDevice(value) {
|
|
@@ -120831,7 +120928,7 @@ function modelPath(model = DEFAULT_MODEL2) {
|
|
|
120831
120928
|
async function ensureModel2(model = DEFAULT_MODEL2, options) {
|
|
120832
120929
|
const dest = modelPath(model);
|
|
120833
120930
|
if (existsSync74(dest)) return dest;
|
|
120834
|
-
|
|
120931
|
+
mkdirSync36(MODELS_DIR2, { recursive: true });
|
|
120835
120932
|
options?.onProgress?.(`Downloading ${model} weights (~168 MB)...`);
|
|
120836
120933
|
await downloadFile(MODEL_URLS[model], dest);
|
|
120837
120934
|
if (!existsSync74(dest)) {
|
|
@@ -121783,7 +121880,7 @@ var init_transcribe2 = __esm({
|
|
|
121783
121880
|
});
|
|
121784
121881
|
|
|
121785
121882
|
// src/tts/manager.ts
|
|
121786
|
-
import { existsSync as existsSync77, mkdirSync as
|
|
121883
|
+
import { existsSync as existsSync77, mkdirSync as mkdirSync37 } from "fs";
|
|
121787
121884
|
import { homedir as homedir12 } from "os";
|
|
121788
121885
|
import { join as join77 } from "path";
|
|
121789
121886
|
function inferLangFromVoiceId(voiceId) {
|
|
@@ -121802,7 +121899,7 @@ async function ensureModel3(model = DEFAULT_MODEL3, options) {
|
|
|
121802
121899
|
`Unknown TTS model: ${model}. Available: ${Object.keys(MODEL_URLS2).join(", ")}`
|
|
121803
121900
|
);
|
|
121804
121901
|
}
|
|
121805
|
-
|
|
121902
|
+
mkdirSync37(MODELS_DIR3, { recursive: true });
|
|
121806
121903
|
options?.onProgress?.(`Downloading TTS model ${model} (~311 MB)...`);
|
|
121807
121904
|
await downloadFile(url, modelPath2);
|
|
121808
121905
|
if (!existsSync77(modelPath2)) {
|
|
@@ -121813,7 +121910,7 @@ async function ensureModel3(model = DEFAULT_MODEL3, options) {
|
|
|
121813
121910
|
async function ensureVoices(options) {
|
|
121814
121911
|
const voicesPath = join77(VOICES_DIR, "voices-v1.0.bin");
|
|
121815
121912
|
if (existsSync77(voicesPath)) return voicesPath;
|
|
121816
|
-
|
|
121913
|
+
mkdirSync37(VOICES_DIR, { recursive: true });
|
|
121817
121914
|
options?.onProgress?.("Downloading voice data (~27 MB)...");
|
|
121818
121915
|
await downloadFile(VOICES_URL, voicesPath);
|
|
121819
121916
|
if (!existsSync77(voicesPath)) {
|
|
@@ -121945,12 +122042,12 @@ __export(synthesize_exports, {
|
|
|
121945
122042
|
synthesize: () => synthesize
|
|
121946
122043
|
});
|
|
121947
122044
|
import { execFileSync as execFileSync11 } from "child_process";
|
|
121948
|
-
import { existsSync as existsSync78, writeFileSync as writeFileSync27, mkdirSync as
|
|
122045
|
+
import { existsSync as existsSync78, writeFileSync as writeFileSync27, mkdirSync as mkdirSync38, readdirSync as readdirSync27, unlinkSync as unlinkSync5 } from "fs";
|
|
121949
122046
|
import { join as join78, dirname as dirname36, basename as basename15 } from "path";
|
|
121950
122047
|
import { homedir as homedir13 } from "os";
|
|
121951
122048
|
function ensureSynthScript() {
|
|
121952
122049
|
if (!existsSync78(SCRIPT_PATH)) {
|
|
121953
|
-
|
|
122050
|
+
mkdirSync38(SCRIPT_DIR, { recursive: true });
|
|
121954
122051
|
writeFileSync27(SCRIPT_PATH, SYNTH_SCRIPT);
|
|
121955
122052
|
const currentName = basename15(SCRIPT_PATH);
|
|
121956
122053
|
try {
|
|
@@ -121991,7 +122088,7 @@ async function synthesize(text2, outputPath, options) {
|
|
|
121991
122088
|
ensureVoices({ onProgress: options?.onProgress })
|
|
121992
122089
|
]);
|
|
121993
122090
|
const scriptPath = ensureSynthScript();
|
|
121994
|
-
|
|
122091
|
+
mkdirSync38(dirname36(outputPath), { recursive: true });
|
|
121995
122092
|
options?.onProgress?.(`Generating speech with voice ${voice} (${lang})...`);
|
|
121996
122093
|
try {
|
|
121997
122094
|
const stdout2 = execFileSync11(
|
|
@@ -123211,6 +123308,7 @@ var validate_exports = {};
|
|
|
123211
123308
|
__export(validate_exports, {
|
|
123212
123309
|
default: () => validate_default,
|
|
123213
123310
|
extractCompositionErrorsFromLint: () => extractCompositionErrorsFromLint,
|
|
123311
|
+
raceMediaReady: () => raceMediaReady,
|
|
123214
123312
|
shouldIgnoreRequestFailure: () => shouldIgnoreRequestFailure
|
|
123215
123313
|
});
|
|
123216
123314
|
import { existsSync as existsSync81, readFileSync as readFileSync53 } from "fs";
|
|
@@ -123247,13 +123345,49 @@ async function seekTo2(page, time) {
|
|
|
123247
123345
|
}, time);
|
|
123248
123346
|
await new Promise((r2) => setTimeout(r2, SEEK_SETTLE_MS2));
|
|
123249
123347
|
}
|
|
123250
|
-
|
|
123251
|
-
|
|
123348
|
+
function raceMediaReady(el, deadlineMs) {
|
|
123349
|
+
if (Number.isFinite(el.duration) && el.duration > 0) return Promise.resolve();
|
|
123350
|
+
return new Promise((resolve62) => {
|
|
123351
|
+
const onReady = () => {
|
|
123352
|
+
el.removeEventListener("loadedmetadata", onReady);
|
|
123353
|
+
el.removeEventListener("error", onReady);
|
|
123354
|
+
clearTimeout(timer);
|
|
123355
|
+
resolve62();
|
|
123356
|
+
};
|
|
123357
|
+
el.addEventListener("loadedmetadata", onReady, { once: true });
|
|
123358
|
+
el.addEventListener("error", onReady, { once: true });
|
|
123359
|
+
const timer = setTimeout(onReady, Math.max(0, deadlineMs - Date.now()));
|
|
123360
|
+
});
|
|
123361
|
+
}
|
|
123362
|
+
async function auditClipDurations(page, analyzeClipMediaFit2, extraWaitMs) {
|
|
123363
|
+
const clips = await page.evaluate(async (maxWaitMs) => {
|
|
123364
|
+
const nodes = Array.from(
|
|
123365
|
+
document.querySelectorAll("video[data-duration], audio[data-duration]")
|
|
123366
|
+
);
|
|
123367
|
+
const deadline = Date.now() + maxWaitMs;
|
|
123368
|
+
await Promise.all(
|
|
123369
|
+
nodes.map((el) => {
|
|
123370
|
+
if (Number.isFinite(el.duration) && el.duration > 0) return Promise.resolve();
|
|
123371
|
+
return new Promise((resolve62) => {
|
|
123372
|
+
const cleanup = () => {
|
|
123373
|
+
el.removeEventListener("loadedmetadata", onReady);
|
|
123374
|
+
el.removeEventListener("error", onReady);
|
|
123375
|
+
clearTimeout(timer);
|
|
123376
|
+
};
|
|
123377
|
+
const onReady = () => {
|
|
123378
|
+
cleanup();
|
|
123379
|
+
resolve62();
|
|
123380
|
+
};
|
|
123381
|
+
el.addEventListener("loadedmetadata", onReady, { once: true });
|
|
123382
|
+
el.addEventListener("error", onReady, { once: true });
|
|
123383
|
+
const timer = setTimeout(onReady, Math.max(0, deadline - Date.now()));
|
|
123384
|
+
});
|
|
123385
|
+
})
|
|
123386
|
+
);
|
|
123252
123387
|
const rows = [];
|
|
123253
|
-
|
|
123254
|
-
const el = node;
|
|
123388
|
+
for (const el of nodes) {
|
|
123255
123389
|
const slot = parseFloat(el.getAttribute("data-duration") ?? "");
|
|
123256
|
-
if (!(slot > 0))
|
|
123390
|
+
if (!(slot > 0)) continue;
|
|
123257
123391
|
rows.push({
|
|
123258
123392
|
id: el.id || el.getAttribute("src") || `(${el.tagName.toLowerCase()})`,
|
|
123259
123393
|
kind: el.tagName === "AUDIO" ? "Audio" : "Video",
|
|
@@ -123262,9 +123396,9 @@ async function auditClipDurations(page, analyzeClipMediaFit2) {
|
|
|
123262
123396
|
duration: el.duration,
|
|
123263
123397
|
loop: el.loop || el.getAttribute("data-loop") === "true"
|
|
123264
123398
|
});
|
|
123265
|
-
}
|
|
123399
|
+
}
|
|
123266
123400
|
return rows;
|
|
123267
|
-
});
|
|
123401
|
+
}, extraWaitMs);
|
|
123268
123402
|
const warnings = [];
|
|
123269
123403
|
const unreadable = [];
|
|
123270
123404
|
for (const clip of clips) {
|
|
@@ -123383,7 +123517,7 @@ async function validateInBrowser(project, opts) {
|
|
|
123383
123517
|
});
|
|
123384
123518
|
await page.goto(server.url, { waitUntil: "domcontentloaded", timeout: 1e4 });
|
|
123385
123519
|
await new Promise((r2) => setTimeout(r2, opts.timeout ?? 3e3));
|
|
123386
|
-
for (const w3 of await auditClipDurations(page, analyzeClipMediaFit2)) {
|
|
123520
|
+
for (const w3 of await auditClipDurations(page, analyzeClipMediaFit2, opts.timeout ?? 3e3)) {
|
|
123387
123521
|
warnings.push(w3);
|
|
123388
123522
|
}
|
|
123389
123523
|
if (opts.contrast) {
|
|
@@ -129885,7 +130019,7 @@ var require_node_domexception = __commonJS({
|
|
|
129885
130019
|
});
|
|
129886
130020
|
|
|
129887
130021
|
// ../../node_modules/.bun/fetch-blob@3.2.0/node_modules/fetch-blob/from.js
|
|
129888
|
-
import { statSync as
|
|
130022
|
+
import { statSync as statSync26, createReadStream as createReadStream4, promises as fs2 } from "fs";
|
|
129889
130023
|
import { basename as basename17 } from "path";
|
|
129890
130024
|
var import_node_domexception, stat, blobFromSync, blobFrom, fileFrom, fileFromSync, fromBlob, fromFile, BlobDataItem;
|
|
129891
130025
|
var init_from = __esm({
|
|
@@ -129895,10 +130029,10 @@ var init_from = __esm({
|
|
|
129895
130029
|
init_file();
|
|
129896
130030
|
init_fetch_blob();
|
|
129897
130031
|
({ stat } = fs2);
|
|
129898
|
-
blobFromSync = (path2, type) => fromBlob(
|
|
130032
|
+
blobFromSync = (path2, type) => fromBlob(statSync26(path2), path2, type);
|
|
129899
130033
|
blobFrom = (path2, type) => stat(path2).then((stat3) => fromBlob(stat3, path2, type));
|
|
129900
130034
|
fileFrom = (path2, type) => stat(path2).then((stat3) => fromFile(stat3, path2, type));
|
|
129901
|
-
fileFromSync = (path2, type) => fromFile(
|
|
130035
|
+
fileFromSync = (path2, type) => fromFile(statSync26(path2), path2, type);
|
|
129902
130036
|
fromBlob = (stat3, path2, type = "") => new fetch_blob_default([new BlobDataItem({
|
|
129903
130037
|
path: path2,
|
|
129904
130038
|
size: stat3.size,
|
|
@@ -143689,7 +143823,7 @@ var require_websocket = __commonJS({
|
|
|
143689
143823
|
var http4 = __require("http");
|
|
143690
143824
|
var net2 = __require("net");
|
|
143691
143825
|
var tls = __require("tls");
|
|
143692
|
-
var { randomBytes: randomBytes4, createHash:
|
|
143826
|
+
var { randomBytes: randomBytes4, createHash: createHash15 } = __require("crypto");
|
|
143693
143827
|
var { Duplex, Readable: Readable4 } = __require("stream");
|
|
143694
143828
|
var { URL: URL2 } = __require("url");
|
|
143695
143829
|
var PerMessageDeflate2 = require_permessage_deflate();
|
|
@@ -144349,7 +144483,7 @@ var require_websocket = __commonJS({
|
|
|
144349
144483
|
abortHandshake(websocket, socket, "Invalid Upgrade header");
|
|
144350
144484
|
return;
|
|
144351
144485
|
}
|
|
144352
|
-
const digest =
|
|
144486
|
+
const digest = createHash15("sha1").update(key2 + GUID).digest("base64");
|
|
144353
144487
|
if (res.headers["sec-websocket-accept"] !== digest) {
|
|
144354
144488
|
abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
|
|
144355
144489
|
return;
|
|
@@ -144716,7 +144850,7 @@ var require_websocket_server = __commonJS({
|
|
|
144716
144850
|
var EventEmitter = __require("events");
|
|
144717
144851
|
var http4 = __require("http");
|
|
144718
144852
|
var { Duplex } = __require("stream");
|
|
144719
|
-
var { createHash:
|
|
144853
|
+
var { createHash: createHash15 } = __require("crypto");
|
|
144720
144854
|
var extension2 = require_extension();
|
|
144721
144855
|
var PerMessageDeflate2 = require_permessage_deflate();
|
|
144722
144856
|
var subprotocol2 = require_subprotocol();
|
|
@@ -145017,7 +145151,7 @@ var require_websocket_server = __commonJS({
|
|
|
145017
145151
|
);
|
|
145018
145152
|
}
|
|
145019
145153
|
if (this._state > RUNNING) return abortHandshake(socket, 503);
|
|
145020
|
-
const digest =
|
|
145154
|
+
const digest = createHash15("sha1").update(key2 + GUID).digest("base64");
|
|
145021
145155
|
const headers = [
|
|
145022
145156
|
"HTTP/1.1 101 Switching Protocols",
|
|
145023
145157
|
"Upgrade: websocket",
|
|
@@ -156052,7 +156186,7 @@ async function uploadBlobInternal(file, uploadUrl, apiClient, httpOptions) {
|
|
|
156052
156186
|
break;
|
|
156053
156187
|
}
|
|
156054
156188
|
retryCount++;
|
|
156055
|
-
await
|
|
156189
|
+
await sleep2(currentDelayMs);
|
|
156056
156190
|
currentDelayMs = currentDelayMs * DELAY_MULTIPLIER;
|
|
156057
156191
|
}
|
|
156058
156192
|
offset2 += chunkSize;
|
|
@@ -156069,7 +156203,7 @@ async function getBlobStat(file) {
|
|
|
156069
156203
|
const fileStat = { size: file.size, type: file.type };
|
|
156070
156204
|
return fileStat;
|
|
156071
156205
|
}
|
|
156072
|
-
function
|
|
156206
|
+
function sleep2(ms) {
|
|
156073
156207
|
return new Promise((resolvePromise) => setTimeout(resolvePromise, ms));
|
|
156074
156208
|
}
|
|
156075
156209
|
function resolveCloudFlag(options) {
|
|
@@ -163294,7 +163428,7 @@ ${underline2}`);
|
|
|
163294
163428
|
break;
|
|
163295
163429
|
}
|
|
163296
163430
|
retryCount++;
|
|
163297
|
-
await
|
|
163431
|
+
await sleep2(currentDelayMs);
|
|
163298
163432
|
currentDelayMs = currentDelayMs * DELAY_MULTIPLIER;
|
|
163299
163433
|
}
|
|
163300
163434
|
offset2 += bytesRead;
|
|
@@ -163465,7 +163599,7 @@ __export(snapshot_exports, {
|
|
|
163465
163599
|
tailFrameTime: () => tailFrameTime
|
|
163466
163600
|
});
|
|
163467
163601
|
import { spawn as spawn16 } from "child_process";
|
|
163468
|
-
import { existsSync as existsSync84, mkdtempSync as mkdtempSync5, readFileSync as readFileSync55, mkdirSync as
|
|
163602
|
+
import { existsSync as existsSync84, mkdtempSync as mkdtempSync5, readFileSync as readFileSync55, mkdirSync as mkdirSync39, rmSync as rmSync18, writeFileSync as writeFileSync29 } from "fs";
|
|
163469
163603
|
import { tmpdir as tmpdir6 } from "os";
|
|
163470
163604
|
import { resolve as resolve55, join as join83, relative as relative15, isAbsolute as isAbsolute14, basename as basename19 } from "path";
|
|
163471
163605
|
function orbitStageSource() {
|
|
@@ -163667,7 +163801,7 @@ async function captureSnapshots(projectDir, opts) {
|
|
|
163667
163801
|
}
|
|
163668
163802
|
const cameraExpr = opts.angle && (opts.angle.yaw !== 0 || opts.angle.pitch !== 0) ? `(${orbitStageSource()})(${JSON.stringify(opts.angle)})` : null;
|
|
163669
163803
|
const snapshotDir = opts.outputDir ?? join83(projectDir, "snapshots");
|
|
163670
|
-
|
|
163804
|
+
mkdirSync39(snapshotDir, { recursive: true });
|
|
163671
163805
|
try {
|
|
163672
163806
|
const { readdirSync: readdirSync35 } = await import("fs");
|
|
163673
163807
|
for (const file of readdirSync35(snapshotDir)) {
|
|
@@ -163997,7 +164131,7 @@ ${c.error("\u2717")} Snapshot failed: ${msg}`);
|
|
|
163997
164131
|
});
|
|
163998
164132
|
|
|
163999
164133
|
// src/capture/assetDownloader.ts
|
|
164000
|
-
import { writeFileSync as writeFileSync30, mkdirSync as
|
|
164134
|
+
import { writeFileSync as writeFileSync30, mkdirSync as mkdirSync40 } from "fs";
|
|
164001
164135
|
import { join as join84, extname as extname15 } from "path";
|
|
164002
164136
|
import { createHash as createHash12 } from "crypto";
|
|
164003
164137
|
function svgContentHashSlug(svgSource, isLogo) {
|
|
@@ -164006,10 +164140,10 @@ function svgContentHashSlug(svgSource, isLogo) {
|
|
|
164006
164140
|
}
|
|
164007
164141
|
async function downloadAssets(tokens, outputDir, catalogedAssets, faviconLinks) {
|
|
164008
164142
|
const assetsDir = join84(outputDir, "assets");
|
|
164009
|
-
|
|
164143
|
+
mkdirSync40(assetsDir, { recursive: true });
|
|
164010
164144
|
const assets = [];
|
|
164011
164145
|
const downloadedUrls = /* @__PURE__ */ new Set();
|
|
164012
|
-
|
|
164146
|
+
mkdirSync40(join84(outputDir, "assets", "svgs"), { recursive: true });
|
|
164013
164147
|
const usedSvgNames = /* @__PURE__ */ new Set();
|
|
164014
164148
|
for (let i2 = 0; i2 < tokens.svgs.length && i2 < 30; i2++) {
|
|
164015
164149
|
const svg = tokens.svgs[i2];
|
|
@@ -164140,7 +164274,7 @@ function normalizeUrl(u) {
|
|
|
164140
164274
|
}
|
|
164141
164275
|
async function downloadAndRewriteFonts(css, outputDir) {
|
|
164142
164276
|
const assetsDir = join84(outputDir, "assets", "fonts");
|
|
164143
|
-
|
|
164277
|
+
mkdirSync40(assetsDir, { recursive: true });
|
|
164144
164278
|
const fontUrlRegex = /url\(['"]?(https?:\/\/[^'")\s]+\.(?:woff2?|ttf|otf)[^'")\s]*?)['"]?\)/g;
|
|
164145
164279
|
const fontUrls = /* @__PURE__ */ new Set();
|
|
164146
164280
|
let match;
|
|
@@ -164333,7 +164467,7 @@ __export(video_exports, {
|
|
|
164333
164467
|
runVideoMode: () => runVideoMode,
|
|
164334
164468
|
safeFilename: () => safeFilename
|
|
164335
164469
|
});
|
|
164336
|
-
import { createWriteStream as createWriteStream4, existsSync as existsSync85, mkdirSync as
|
|
164470
|
+
import { createWriteStream as createWriteStream4, existsSync as existsSync85, mkdirSync as mkdirSync41, readFileSync as readFileSync56, unlinkSync as unlinkSync7 } from "fs";
|
|
164337
164471
|
import { resolve as resolve56, join as join85, basename as basename20 } from "path";
|
|
164338
164472
|
async function streamToFile(url, destPath) {
|
|
164339
164473
|
const r2 = await safeFetch(url, {
|
|
@@ -164509,7 +164643,7 @@ async function runVideoMode(args) {
|
|
|
164509
164643
|
return;
|
|
164510
164644
|
}
|
|
164511
164645
|
const outDir = isW2hLayout ? join85(projectDir, "capture", "assets", "videos") : join85(projectDir, "assets", "videos");
|
|
164512
|
-
|
|
164646
|
+
mkdirSync41(outDir, { recursive: true });
|
|
164513
164647
|
const fname = safeFilename(entry.filename || basename20(entry.url));
|
|
164514
164648
|
const outPath = join85(outDir, fname);
|
|
164515
164649
|
const relPath = isW2hLayout ? `capture/assets/videos/${fname}` : `assets/videos/${fname}`;
|
|
@@ -165280,7 +165414,8 @@ var init_designStyleExtractor = __esm({
|
|
|
165280
165414
|
function rgbToHex(color) {
|
|
165281
165415
|
if (!color) return "";
|
|
165282
165416
|
if (color.startsWith('#')) return color.toUpperCase();
|
|
165283
|
-
|
|
165417
|
+
// capture optional alpha (group 4), allowing both comma and modern slash (rgb r g b / a) syntax.
|
|
165418
|
+
var m = color.match(/rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)(?:\\s*[,/]\\s*([\\d.]+))?/);
|
|
165284
165419
|
if (!m) return color;
|
|
165285
165420
|
// fully-transparent fill (rgba(...,0)) \u2192 sentinel, NOT #000000 \u2014 otherwise a transparent
|
|
165286
165421
|
// chip/tab/stat ground reads as solid black on a light-ground site.
|
|
@@ -165292,8 +165427,15 @@ var init_designStyleExtractor = __esm({
|
|
|
165292
165427
|
return f.split(",")[0].replace(/['"]/g, "").trim();
|
|
165293
165428
|
}
|
|
165294
165429
|
|
|
165430
|
+
// keep only gradient background-images (drop url() sprites + "none"); gradients are a core
|
|
165431
|
+
// brand signal (Stripe/ElevenLabs/Snowflake mesh washes) that a flat background-color misses.
|
|
165432
|
+
function gradientOf(v) {
|
|
165433
|
+
return v && v.indexOf("gradient") >= 0 ? v.trim() : "";
|
|
165434
|
+
}
|
|
165435
|
+
|
|
165295
165436
|
function getStyles(el) {
|
|
165296
165437
|
var s = getComputedStyle(el);
|
|
165438
|
+
var bf = s.backdropFilter || s.webkitBackdropFilter || "";
|
|
165297
165439
|
return {
|
|
165298
165440
|
fontFamily: cleanFont(s.fontFamily),
|
|
165299
165441
|
fontSize: s.fontSize,
|
|
@@ -165302,6 +165444,8 @@ var init_designStyleExtractor = __esm({
|
|
|
165302
165444
|
letterSpacing: s.letterSpacing,
|
|
165303
165445
|
color: rgbToHex(s.color),
|
|
165304
165446
|
background: rgbToHex(s.backgroundColor),
|
|
165447
|
+
backgroundImage: gradientOf(s.backgroundImage),
|
|
165448
|
+
backdropFilter: bf === "none" ? "" : bf,
|
|
165305
165449
|
padding: s.padding,
|
|
165306
165450
|
borderRadius: s.borderRadius,
|
|
165307
165451
|
border: s.border,
|
|
@@ -165370,23 +165514,37 @@ var init_designStyleExtractor = __esm({
|
|
|
165370
165514
|
}
|
|
165371
165515
|
|
|
165372
165516
|
// \u2500\u2500 2. Buttons \u2500\u2500
|
|
165517
|
+
// a page's primary CTA is very often a FILLED pill in the nav/header ("Sign up", "Start for free").
|
|
165518
|
+
// Old code dropped everything under <nav>, losing that CTA; keep nav elements that carry a solid
|
|
165519
|
+
// fill (a real button), still dropping plain nav text links.
|
|
165520
|
+
var isFilledEl = (el) => {
|
|
165521
|
+
var cs = getComputedStyle(el);
|
|
165522
|
+
var bg = cs.backgroundColor;
|
|
165523
|
+
var solid = !!bg && bg !== "transparent" && !/rgba?\\([^)]*,\\s*0\\s*\\)/.test(bg);
|
|
165524
|
+
// a gradient-filled CTA (e.g. Snowflake's blue pill = background: var(--ui-background-03)) has a
|
|
165525
|
+
// transparent background-COLOR but a gradient background-IMAGE \u2014 count it as filled too.
|
|
165526
|
+
return solid || (cs.backgroundImage || "").indexOf("gradient") >= 0;
|
|
165527
|
+
};
|
|
165373
165528
|
var buttonEls = Array.from(document.querySelectorAll(
|
|
165374
165529
|
'button, a[class*="btn"], a[class*="button"], a[role="button"], ' +
|
|
165375
165530
|
'[class*="btn-"], [class*="button-"], [class*="cta"]'
|
|
165376
165531
|
)).filter(function(el) {
|
|
165377
|
-
|
|
165378
|
-
|
|
165532
|
+
if (!isVisible(el)) return false;
|
|
165533
|
+
return el.closest('nav, [role="navigation"]') ? isFilledEl(el) : true;
|
|
165534
|
+
}).slice(0, 16);
|
|
165379
165535
|
|
|
165380
165536
|
var buttonMap = {};
|
|
165381
165537
|
for (var bi = 0; bi < buttonEls.length; bi++) {
|
|
165382
165538
|
var bs = getStyles(buttonEls[bi]);
|
|
165383
|
-
// Deduplicate by visual appearance
|
|
165384
|
-
var bKey = bs.background + "|" + bs.borderRadius + "|" + bs.border;
|
|
165539
|
+
// Deduplicate by visual appearance (gradient fill kept distinct so a gradient CTA survives)
|
|
165540
|
+
var bKey = bs.background + "|" + bs.backgroundImage + "|" + bs.borderRadius + "|" + bs.border;
|
|
165385
165541
|
if (!buttonMap[bKey]) {
|
|
165386
165542
|
var btnText = (buttonEls[bi].textContent || "").trim().slice(0, 40);
|
|
165387
165543
|
buttonMap[bKey] = {
|
|
165388
165544
|
label: btnText || "button",
|
|
165389
165545
|
background: bs.background,
|
|
165546
|
+
backgroundImage: bs.backgroundImage,
|
|
165547
|
+
backdropFilter: bs.backdropFilter,
|
|
165390
165548
|
color: bs.color,
|
|
165391
165549
|
padding: bs.padding,
|
|
165392
165550
|
borderRadius: bs.borderRadius,
|
|
@@ -165398,7 +165556,7 @@ var init_designStyleExtractor = __esm({
|
|
|
165398
165556
|
};
|
|
165399
165557
|
}
|
|
165400
165558
|
}
|
|
165401
|
-
var buttons = Object.values(buttonMap).slice(0,
|
|
165559
|
+
var buttons = Object.values(buttonMap).slice(0, 6);
|
|
165402
165560
|
|
|
165403
165561
|
// \u2500\u2500 3. Cards / containers \u2500\u2500
|
|
165404
165562
|
var cardEls = Array.from(document.querySelectorAll(
|
|
@@ -165413,11 +165571,14 @@ var init_designStyleExtractor = __esm({
|
|
|
165413
165571
|
var cardMap = {};
|
|
165414
165572
|
for (var ci = 0; ci < cardEls.length; ci++) {
|
|
165415
165573
|
var cs = getStyles(cardEls[ci]);
|
|
165416
|
-
|
|
165574
|
+
// gradient fill + glass blur kept in the key so a gradient/frosted card is a distinct variant
|
|
165575
|
+
var cKey = cs.background + "|" + cs.backgroundImage + "|" + cs.backdropFilter + "|" + cs.borderRadius + "|" + cs.border;
|
|
165417
165576
|
if (!cardMap[cKey]) {
|
|
165418
165577
|
cardMap[cKey] = {
|
|
165419
165578
|
label: "card",
|
|
165420
165579
|
background: cs.background,
|
|
165580
|
+
backgroundImage: cs.backgroundImage,
|
|
165581
|
+
backdropFilter: cs.backdropFilter,
|
|
165421
165582
|
color: cs.color,
|
|
165422
165583
|
padding: cs.padding,
|
|
165423
165584
|
borderRadius: cs.borderRadius,
|
|
@@ -165439,6 +165600,8 @@ var init_designStyleExtractor = __esm({
|
|
|
165439
165600
|
nav = {
|
|
165440
165601
|
label: "navigation",
|
|
165441
165602
|
background: ns.background,
|
|
165603
|
+
backgroundImage: ns.backgroundImage,
|
|
165604
|
+
backdropFilter: ns.backdropFilter,
|
|
165442
165605
|
color: ns.color,
|
|
165443
165606
|
padding: ns.padding,
|
|
165444
165607
|
borderRadius: ns.borderRadius,
|
|
@@ -165622,6 +165785,90 @@ var init_designStyleExtractor = __esm({
|
|
|
165622
165785
|
.slice(0, 5)
|
|
165623
165786
|
.map(function(e) { return { value: e[0], count: e[1] }; });
|
|
165624
165787
|
|
|
165788
|
+
// \u2500\u2500 8. Dominant gradient / mesh backgrounds \u2500\u2500
|
|
165789
|
+
// A site's signature color wash (Stripe/ElevenLabs/Snowflake) lives in gradient background-images
|
|
165790
|
+
// on large blocks \u2014 often on a pseudo-element (::before glow orbs) rather than the block itself.
|
|
165791
|
+
// Weight each distinct gradient by the total on-screen area it covers; return the top few.
|
|
165792
|
+
var gradientArea = {};
|
|
165793
|
+
var gradSamples = Array.from(document.querySelectorAll(
|
|
165794
|
+
"body, main, section, header, div, [class*='hero'], [class*='gradient'], [class*='bg'], [class*='background']"
|
|
165795
|
+
)).slice(0, 400);
|
|
165796
|
+
|
|
165797
|
+
// max stop chroma (max\u2212min RGB) of a gradient: a vivid brand wash scores high, a neutral
|
|
165798
|
+
// white/cream scrim ~0. Used to rank washes so a small vivid gradient beats a big grey scrim.
|
|
165799
|
+
function gradientChroma(g) {
|
|
165800
|
+
var max = 0, re = /rgba?\\(\\s*(\\d+)[,\\s]+(\\d+)[,\\s]+(\\d+)/g, m;
|
|
165801
|
+
while ((m = re.exec(g))) {
|
|
165802
|
+
var r = +m[1], gr = +m[2], b = +m[3];
|
|
165803
|
+
var c = Math.max(r, gr, b) - Math.min(r, gr, b);
|
|
165804
|
+
if (c > max) max = c;
|
|
165805
|
+
}
|
|
165806
|
+
return max;
|
|
165807
|
+
}
|
|
165808
|
+
|
|
165809
|
+
function addGradient(val, area) {
|
|
165810
|
+
var g = gradientOf(val);
|
|
165811
|
+
if (!g || area < 20000) return; // ignore tiny decorative gradients
|
|
165812
|
+
var norm = g.replace(/\\s+/g, " ");
|
|
165813
|
+
gradientArea[norm] = (gradientArea[norm] || 0) + area;
|
|
165814
|
+
}
|
|
165815
|
+
|
|
165816
|
+
for (var gi = 0; gi < gradSamples.length; gi++) {
|
|
165817
|
+
var gel = gradSamples[gi];
|
|
165818
|
+
if (!isVisible(gel)) continue;
|
|
165819
|
+
var grect = gel.getBoundingClientRect();
|
|
165820
|
+
var garea = grect.width * grect.height;
|
|
165821
|
+
if (garea < 20000) continue;
|
|
165822
|
+
addGradient(getComputedStyle(gel).backgroundImage, garea);
|
|
165823
|
+
addGradient(getComputedStyle(gel, "::before").backgroundImage, garea);
|
|
165824
|
+
addGradient(getComputedStyle(gel, "::after").backgroundImage, garea);
|
|
165825
|
+
}
|
|
165826
|
+
|
|
165827
|
+
// rank by chroma-weighted area so the brand's signature color wash outranks a larger neutral scrim
|
|
165828
|
+
var backgrounds = Object.entries(gradientArea)
|
|
165829
|
+
.map(function(e) { return { value: e[0], area: Math.round(e[1]), score: e[1] * (1 + 2 * gradientChroma(e[0]) / 255) }; })
|
|
165830
|
+
.sort(function(a, b) { return b.score - a.score; })
|
|
165831
|
+
.slice(0, 6)
|
|
165832
|
+
.map(function(e) { return { value: e.value, area: e.area }; });
|
|
165833
|
+
|
|
165834
|
+
// \u2500\u2500 9. Frosted-glass panels (backdrop-filter) \u2500\u2500
|
|
165835
|
+
// A defining material on modern hero UIs (HeyGen's prompt box, Stripe's floating chrome): a
|
|
165836
|
+
// translucent surface with a backdrop blur. Capture the RAW fill (rgba/gradient \u2014 alpha preserved,
|
|
165837
|
+
// unlike rgbToHex) + the blur, ranked by area. This is what lets a frame render a real frosted card.
|
|
165838
|
+
var glassSamples = Array.from(document.querySelectorAll(
|
|
165839
|
+
"div, section, header, nav, aside, [class*='card'], [class*='panel'], [class*='glass'], [class*='blur'], [class*='modal'], [class*='overlay'], [class*='input']"
|
|
165840
|
+
)).slice(0, 400);
|
|
165841
|
+
var glassByKey = {};
|
|
165842
|
+
for (var qi = 0; qi < glassSamples.length; qi++) {
|
|
165843
|
+
var qel = glassSamples[qi];
|
|
165844
|
+
if (!isVisible(qel)) continue;
|
|
165845
|
+
var qs = getComputedStyle(qel);
|
|
165846
|
+
var bf = qs.backdropFilter || qs.webkitBackdropFilter || "";
|
|
165847
|
+
if (!bf || bf === "none" || bf.indexOf("blur") < 0) continue;
|
|
165848
|
+
var qrect = qel.getBoundingClientRect();
|
|
165849
|
+
var qarea = qrect.width * qrect.height;
|
|
165850
|
+
if (qarea < 8000) continue; // ignore tiny blurred chips
|
|
165851
|
+
// raw fill with alpha intact: prefer a translucent gradient, else the rgba background-color
|
|
165852
|
+
var gi2 = qs.backgroundImage;
|
|
165853
|
+
var rawFill = gi2 && gi2.indexOf("gradient") >= 0 ? gi2.replace(/\\s+/g, " ").trim() : qs.backgroundColor;
|
|
165854
|
+
var key = bf + "|" + rawFill + "|" + qs.borderRadius;
|
|
165855
|
+
if (!glassByKey[key]) {
|
|
165856
|
+
glassByKey[key] = {
|
|
165857
|
+
backdropFilter: bf,
|
|
165858
|
+
background: rawFill,
|
|
165859
|
+
border: qs.border,
|
|
165860
|
+
borderRadius: qs.borderRadius,
|
|
165861
|
+
boxShadow: qs.boxShadow === "none" ? "" : qs.boxShadow,
|
|
165862
|
+
area: 0
|
|
165863
|
+
};
|
|
165864
|
+
}
|
|
165865
|
+
glassByKey[key].area += qarea;
|
|
165866
|
+
}
|
|
165867
|
+
var glass = Object.values(glassByKey)
|
|
165868
|
+
.sort(function(a, b) { return b.area - a.area; })
|
|
165869
|
+
.slice(0, 3)
|
|
165870
|
+
.map(function(g) { return { backdropFilter: g.backdropFilter, background: g.background, border: g.border, borderRadius: g.borderRadius, boxShadow: g.boxShadow, area: Math.round(g.area) }; });
|
|
165871
|
+
|
|
165625
165872
|
return {
|
|
165626
165873
|
typography: uniqueTypo,
|
|
165627
165874
|
spacing: { observed: observedSpacing.slice(0, 15), baseUnit: baseUnit },
|
|
@@ -165632,7 +165879,9 @@ var init_designStyleExtractor = __esm({
|
|
|
165632
165879
|
nav: nav,
|
|
165633
165880
|
chips: chips,
|
|
165634
165881
|
statCells: statCells,
|
|
165635
|
-
tabs: tabs
|
|
165882
|
+
tabs: tabs,
|
|
165883
|
+
backgrounds: backgrounds,
|
|
165884
|
+
glass: glass
|
|
165636
165885
|
};
|
|
165637
165886
|
})()`;
|
|
165638
165887
|
}
|
|
@@ -165962,7 +166211,7 @@ var init_animationCataloger = __esm({
|
|
|
165962
166211
|
});
|
|
165963
166212
|
|
|
165964
166213
|
// src/capture/mediaCapture.ts
|
|
165965
|
-
import { mkdirSync as
|
|
166214
|
+
import { mkdirSync as mkdirSync43, writeFileSync as writeFileSync33, readdirSync as readdirSync30, readFileSync as readFileSync58, statSync as statSync27 } from "fs";
|
|
165966
166215
|
import { join as join87, extname as extname16 } from "path";
|
|
165967
166216
|
async function saveLottieAnimations(discoveredLotties, lottieDir) {
|
|
165968
166217
|
let savedCount = 0;
|
|
@@ -166024,7 +166273,7 @@ async function saveLottieAnimations(discoveredLotties, lottieDir) {
|
|
|
166024
166273
|
async function renderLottiePreviews(chromeBrowser, lottieDir, outputDir) {
|
|
166025
166274
|
const manifest = [];
|
|
166026
166275
|
const previewDir = join87(lottieDir, "previews");
|
|
166027
|
-
|
|
166276
|
+
mkdirSync43(previewDir, { recursive: true });
|
|
166028
166277
|
for (const file of readdirSync30(lottieDir)) {
|
|
166029
166278
|
if (!file.endsWith(".json")) continue;
|
|
166030
166279
|
try {
|
|
@@ -166032,7 +166281,7 @@ async function renderLottiePreviews(chromeBrowser, lottieDir, outputDir) {
|
|
|
166032
166281
|
const fr = raw.fr || 30;
|
|
166033
166282
|
const dur = ((raw.op || 0) - (raw.ip || 0)) / fr;
|
|
166034
166283
|
const previewName = file.replace(".json", "-preview.png");
|
|
166035
|
-
const fileSize =
|
|
166284
|
+
const fileSize = statSync27(join87(lottieDir, file)).size;
|
|
166036
166285
|
if (fileSize > 2e6) continue;
|
|
166037
166286
|
let previewPage;
|
|
166038
166287
|
try {
|
|
@@ -166190,9 +166439,9 @@ async function captureVideoManifest(page, outputDir, progress, opts) {
|
|
|
166190
166439
|
const merged = [...byKey.values()];
|
|
166191
166440
|
if (merged.length === 0) return;
|
|
166192
166441
|
const videoManifestDir = join87(outputDir, "assets", "videos");
|
|
166193
|
-
|
|
166442
|
+
mkdirSync43(videoManifestDir, { recursive: true });
|
|
166194
166443
|
const previewDir = join87(videoManifestDir, "previews");
|
|
166195
|
-
|
|
166444
|
+
mkdirSync43(previewDir, { recursive: true });
|
|
166196
166445
|
const videoManifest = [];
|
|
166197
166446
|
const dlStart = Date.now();
|
|
166198
166447
|
for (let vi = 0; vi < merged.length && vi < 20; vi++) {
|
|
@@ -166314,7 +166563,7 @@ var init_mediaCapture = __esm({
|
|
|
166314
166563
|
});
|
|
166315
166564
|
|
|
166316
166565
|
// src/capture/contentExtractor.ts
|
|
166317
|
-
import { existsSync as existsSync87, readdirSync as readdirSync31, statSync as
|
|
166566
|
+
import { existsSync as existsSync87, readdirSync as readdirSync31, statSync as statSync28, readFileSync as readFileSync59 } from "fs";
|
|
166318
166567
|
import { basename as basename21, join as join88 } from "path";
|
|
166319
166568
|
async function detectLibraries(page, capturedShaders) {
|
|
166320
166569
|
let detectedLibraries = [];
|
|
@@ -166491,7 +166740,7 @@ async function captionImagesWithGemini(outputDir, progress, warnings) {
|
|
|
166491
166740
|
const results = await Promise.allSettled(
|
|
166492
166741
|
batch.map(async (file) => {
|
|
166493
166742
|
const filePath = join88(outputDir, "assets", file);
|
|
166494
|
-
const stat3 =
|
|
166743
|
+
const stat3 = statSync28(filePath);
|
|
166495
166744
|
if (stat3.size > 4e6) return { file, caption: "" };
|
|
166496
166745
|
const buffer = readFileSync59(filePath);
|
|
166497
166746
|
const base64 = buffer.toString("base64");
|
|
@@ -166615,7 +166864,7 @@ function generateAssetDescriptions(outputDir, tokens, catalogedAssets, geminiCap
|
|
|
166615
166864
|
for (const file of readdirSync31(assetsPath)) {
|
|
166616
166865
|
if (file === "svgs" || file === "fonts" || file === "lottie" || file === "videos") continue;
|
|
166617
166866
|
const filePath = join88(assetsPath, file);
|
|
166618
|
-
const stat3 =
|
|
166867
|
+
const stat3 = statSync28(filePath);
|
|
166619
166868
|
if (!stat3.isFile()) continue;
|
|
166620
166869
|
const sizeKb = Math.round(stat3.size / 1024);
|
|
166621
166870
|
const catalogMatch = catalogedAssets.find(
|
|
@@ -166898,11 +167147,11 @@ var screenshotCapture_exports = {};
|
|
|
166898
167147
|
__export(screenshotCapture_exports, {
|
|
166899
167148
|
captureScrollScreenshots: () => captureScrollScreenshots
|
|
166900
167149
|
});
|
|
166901
|
-
import { writeFileSync as writeFileSync36, mkdirSync as
|
|
167150
|
+
import { writeFileSync as writeFileSync36, mkdirSync as mkdirSync44 } from "fs";
|
|
166902
167151
|
import { join as join91 } from "path";
|
|
166903
167152
|
async function captureScrollScreenshots(page, outputDir) {
|
|
166904
167153
|
const screenshotsDir = join91(outputDir, "screenshots");
|
|
166905
|
-
|
|
167154
|
+
mkdirSync44(screenshotsDir, { recursive: true });
|
|
166906
167155
|
const MAX_SCREENSHOTS = 20;
|
|
166907
167156
|
const filePaths = [];
|
|
166908
167157
|
try {
|
|
@@ -167342,7 +167591,7 @@ var capture_exports = {};
|
|
|
167342
167591
|
__export(capture_exports, {
|
|
167343
167592
|
captureWebsite: () => captureWebsite
|
|
167344
167593
|
});
|
|
167345
|
-
import { mkdirSync as
|
|
167594
|
+
import { mkdirSync as mkdirSync45, writeFileSync as writeFileSync37, existsSync as existsSync90 } from "fs";
|
|
167346
167595
|
import { join as join93 } from "path";
|
|
167347
167596
|
async function captureWebsite(opts, onProgress) {
|
|
167348
167597
|
const {
|
|
@@ -167360,9 +167609,9 @@ async function captureWebsite(opts, onProgress) {
|
|
|
167360
167609
|
onProgress?.(stage, detail);
|
|
167361
167610
|
};
|
|
167362
167611
|
loadEnvFile(outputDir);
|
|
167363
|
-
|
|
167364
|
-
|
|
167365
|
-
|
|
167612
|
+
mkdirSync45(join93(outputDir, "extracted"), { recursive: true });
|
|
167613
|
+
mkdirSync45(join93(outputDir, "screenshots"), { recursive: true });
|
|
167614
|
+
mkdirSync45(join93(outputDir, "assets"), { recursive: true });
|
|
167366
167615
|
progress("browser", "Launching headless Chrome...");
|
|
167367
167616
|
const { ensureBrowser: ensureBrowser2 } = await Promise.resolve().then(() => (init_manager2(), manager_exports2));
|
|
167368
167617
|
const browser = await ensureBrowser2();
|
|
@@ -167523,7 +167772,7 @@ async function captureWebsite(opts, onProgress) {
|
|
|
167523
167772
|
}
|
|
167524
167773
|
if (discoveredLotties.length > 0) {
|
|
167525
167774
|
const lottieDir = join93(outputDir, "assets", "lottie");
|
|
167526
|
-
|
|
167775
|
+
mkdirSync45(lottieDir, { recursive: true });
|
|
167527
167776
|
const savedCount = await saveLottieAnimations(discoveredLotties, lottieDir);
|
|
167528
167777
|
if (savedCount > 0) {
|
|
167529
167778
|
await renderLottiePreviews(chromeBrowser, lottieDir, outputDir);
|
|
@@ -168025,8 +168274,8 @@ var init_capture2 = __esm({
|
|
|
168025
168274
|
} catch (err) {
|
|
168026
168275
|
const errMsg = normalizeErrorMessage(err);
|
|
168027
168276
|
try {
|
|
168028
|
-
const { mkdirSync:
|
|
168029
|
-
|
|
168277
|
+
const { mkdirSync: mkdirSync50, writeFileSync: writeFileSync40 } = await import("fs");
|
|
168278
|
+
mkdirSync50(outputDir, { recursive: true });
|
|
168030
168279
|
const isTimeout = /timeout|timed out/i.test(errMsg);
|
|
168031
168280
|
const reason = isTimeout ? "Page navigation timed out \u2014 the site may be blocking headless browsers or requires authentication." : `Capture failed: ${errMsg}`;
|
|
168032
168281
|
writeFileSync40(
|
|
@@ -168072,14 +168321,14 @@ __export(state_exports, {
|
|
|
168072
168321
|
stateFilePath: () => stateFilePath,
|
|
168073
168322
|
writeStackOutputs: () => writeStackOutputs
|
|
168074
168323
|
});
|
|
168075
|
-
import { existsSync as existsSync91, mkdirSync as
|
|
168324
|
+
import { existsSync as existsSync91, mkdirSync as mkdirSync46, readdirSync as readdirSync34, readFileSync as readFileSync61, rmSync as rmSync19, writeFileSync as writeFileSync38 } from "fs";
|
|
168076
168325
|
import { dirname as dirname40, join as join94 } from "path";
|
|
168077
168326
|
function stateFilePath(stackName = DEFAULT_STACK_NAME, cwd = process.cwd()) {
|
|
168078
168327
|
return join94(cwd, STATE_DIR_NAME, `${STATE_FILE_PREFIX}${stackName}.json`);
|
|
168079
168328
|
}
|
|
168080
168329
|
function writeStackOutputs(outputs, cwd = process.cwd()) {
|
|
168081
168330
|
const path2 = stateFilePath(outputs.stackName, cwd);
|
|
168082
|
-
|
|
168331
|
+
mkdirSync46(dirname40(path2), { recursive: true });
|
|
168083
168332
|
writeFileSync38(path2, JSON.stringify(outputs, null, 2) + "\n");
|
|
168084
168333
|
return path2;
|
|
168085
168334
|
}
|
|
@@ -168563,10 +168812,10 @@ async function waitForCompletion(executionArn, stack, intervalMs, json) {
|
|
|
168563
168812
|
}
|
|
168564
168813
|
return;
|
|
168565
168814
|
}
|
|
168566
|
-
await
|
|
168815
|
+
await sleep3(intervalMs);
|
|
168567
168816
|
}
|
|
168568
168817
|
}
|
|
168569
|
-
function
|
|
168818
|
+
function sleep3(ms) {
|
|
168570
168819
|
return new Promise((res) => setTimeout(res, ms));
|
|
168571
168820
|
}
|
|
168572
168821
|
var init_render2 = __esm({
|
|
@@ -169632,7 +169881,7 @@ __export(cloudrun_exports, {
|
|
|
169632
169881
|
});
|
|
169633
169882
|
import { spawnSync as spawnSync6 } from "child_process";
|
|
169634
169883
|
import { createRequire as createRequire4 } from "module";
|
|
169635
|
-
import { existsSync as existsSync97, mkdirSync as
|
|
169884
|
+
import { existsSync as existsSync97, mkdirSync as mkdirSync47, readFileSync as readFileSync66, writeFileSync as writeFileSync39 } from "fs";
|
|
169636
169885
|
import { homedir as homedir14 } from "os";
|
|
169637
169886
|
import { dirname as dirname42, join as join100, resolve as resolve61 } from "path";
|
|
169638
169887
|
function stateDir() {
|
|
@@ -169642,7 +169891,7 @@ function statePath() {
|
|
|
169642
169891
|
return join100(stateDir(), "cloudrun-state.json");
|
|
169643
169892
|
}
|
|
169644
169893
|
function writeState(state) {
|
|
169645
|
-
|
|
169894
|
+
mkdirSync47(stateDir(), { recursive: true });
|
|
169646
169895
|
writeFileSync39(statePath(), JSON.stringify(state, null, 2));
|
|
169647
169896
|
}
|
|
169648
169897
|
function readState(args) {
|
|
@@ -169805,7 +170054,7 @@ function findRepoRoot(tfDir) {
|
|
|
169805
170054
|
}
|
|
169806
170055
|
function writeCloudBuildConfig(image) {
|
|
169807
170056
|
const cfgPath = join100(stateDir(), "cloudrun-cloudbuild.yaml");
|
|
169808
|
-
|
|
170057
|
+
mkdirSync47(stateDir(), { recursive: true });
|
|
169809
170058
|
writeFileSync39(
|
|
169810
170059
|
cfgPath,
|
|
169811
170060
|
[
|
|
@@ -170380,7 +170629,7 @@ async function pollUntilTerminal(client, renderId, options = {}) {
|
|
|
170380
170629
|
const intervalMs = options.intervalMs ?? DEFAULT_POLL_INTERVAL_MS;
|
|
170381
170630
|
const maxWaitMs = options.maxWaitMs ?? DEFAULT_MAX_WAIT_MS;
|
|
170382
170631
|
const now = options.now ?? (() => Date.now());
|
|
170383
|
-
const
|
|
170632
|
+
const sleep5 = options.sleep ?? defaultAbortableSleep(options.signal);
|
|
170384
170633
|
const started = now();
|
|
170385
170634
|
while (true) {
|
|
170386
170635
|
if (options.signal?.aborted) {
|
|
@@ -170395,7 +170644,7 @@ async function pollUntilTerminal(client, renderId, options = {}) {
|
|
|
170395
170644
|
if (elapsed >= maxWaitMs) {
|
|
170396
170645
|
throw new PollTimeoutError(detail, elapsed);
|
|
170397
170646
|
}
|
|
170398
|
-
await
|
|
170647
|
+
await sleep5(intervalMs);
|
|
170399
170648
|
}
|
|
170400
170649
|
}
|
|
170401
170650
|
function signalAbortError(signal) {
|
|
@@ -170436,7 +170685,7 @@ var init_poll = __esm({
|
|
|
170436
170685
|
});
|
|
170437
170686
|
|
|
170438
170687
|
// src/cloud/download.ts
|
|
170439
|
-
import { createWriteStream as createWriteStream5, mkdirSync as
|
|
170688
|
+
import { createWriteStream as createWriteStream5, mkdirSync as mkdirSync48, unlinkSync as unlinkSync8 } from "fs";
|
|
170440
170689
|
import { dirname as dirname43 } from "path";
|
|
170441
170690
|
async function downloadToFile(url, destPath, options = {}) {
|
|
170442
170691
|
const fetchImpl = options.fetchImpl ?? fetch;
|
|
@@ -170447,7 +170696,7 @@ async function downloadToFile(url, destPath, options = {}) {
|
|
|
170447
170696
|
if (!res.body) {
|
|
170448
170697
|
throw new Error(`Failed to download ${url}: empty response body`);
|
|
170449
170698
|
}
|
|
170450
|
-
|
|
170699
|
+
mkdirSync48(dirname43(destPath), { recursive: true });
|
|
170451
170700
|
const totalHeader = res.headers.get("content-length");
|
|
170452
170701
|
const total = totalHeader ? Number.parseInt(totalHeader, 10) : void 0;
|
|
170453
170702
|
const totalOpt = total !== void 0 && Number.isFinite(total) ? total : void 0;
|
|
@@ -170653,6 +170902,33 @@ var init_client2 = __esm({
|
|
|
170653
170902
|
signal: args.signal
|
|
170654
170903
|
});
|
|
170655
170904
|
}
|
|
170905
|
+
/**
|
|
170906
|
+
* Create Asset Upload
|
|
170907
|
+
*
|
|
170908
|
+
* Begin a direct-to-S3 upload. Returns an asset_id and a presigned upload_url; PUT the file bytes to upload_url, then call POST /v3/assets/{asset_id}/complete. Unlike POST /v3/assets (which proxies the bytes), this never sends the file through the API.
|
|
170909
|
+
*/
|
|
170910
|
+
async createAssetUpload(args) {
|
|
170911
|
+
return await this.request({
|
|
170912
|
+
method: "POST",
|
|
170913
|
+
path: "/v3/assets/direct-uploads",
|
|
170914
|
+
body: args.body,
|
|
170915
|
+
idempotencyKey: args.idempotencyKey,
|
|
170916
|
+
signal: args.signal
|
|
170917
|
+
});
|
|
170918
|
+
}
|
|
170919
|
+
/**
|
|
170920
|
+
* Complete Asset Upload
|
|
170921
|
+
*
|
|
170922
|
+
* Finalize a direct-to-S3 upload into a reusable asset. Call after the upload PUT returns 200. Idempotent: repeated calls return the same finalized asset.
|
|
170923
|
+
*/
|
|
170924
|
+
async completeAssetUpload(args) {
|
|
170925
|
+
return await this.request({
|
|
170926
|
+
method: "POST",
|
|
170927
|
+
path: `/v3/assets/${encodeURIComponent(args.asset_id)}/complete`,
|
|
170928
|
+
body: args.body,
|
|
170929
|
+
signal: args.signal
|
|
170930
|
+
});
|
|
170931
|
+
}
|
|
170656
170932
|
/**
|
|
170657
170933
|
* Create HyperFrames Render
|
|
170658
170934
|
*
|
|
@@ -171782,7 +172058,7 @@ var init_errors2 = __esm({
|
|
|
171782
172058
|
init_format();
|
|
171783
172059
|
init_client2();
|
|
171784
172060
|
ERROR_CODE_HINTS = {
|
|
171785
|
-
hyperframes_project_too_large: "The zip exceeded the
|
|
172061
|
+
hyperframes_project_too_large: "The zip exceeded the 200 MB limit. Trim large media (or pre-host them and reference by URL), then try again.",
|
|
171786
172062
|
hyperframes_render_not_found: "The render_id no longer exists \u2014 either soft-deleted or never created.",
|
|
171787
172063
|
invalid_parameter: "Check the listed parameter against `hyperframes cloud render --help` for the accepted values.",
|
|
171788
172064
|
authentication_failed: "Run `hyperframes auth status` to confirm your credential; `hyperframes auth login` to re-auth.",
|
|
@@ -171848,6 +172124,91 @@ var init_parsing = __esm({
|
|
|
171848
172124
|
}
|
|
171849
172125
|
});
|
|
171850
172126
|
|
|
172127
|
+
// src/cloud/upload.ts
|
|
172128
|
+
import { createHash as createHash14 } from "crypto";
|
|
172129
|
+
function sha256Hex2(bytes) {
|
|
172130
|
+
return createHash14("sha256").update(bytes).digest("hex");
|
|
172131
|
+
}
|
|
172132
|
+
function sleep4(ms) {
|
|
172133
|
+
return new Promise((r2) => setTimeout(r2, ms));
|
|
172134
|
+
}
|
|
172135
|
+
function normalizeUploadHeaders(raw) {
|
|
172136
|
+
const out = {};
|
|
172137
|
+
for (const [k2, v2] of Object.entries(raw ?? {})) {
|
|
172138
|
+
if (typeof v2 === "string") out[k2] = v2;
|
|
172139
|
+
else if (typeof v2 === "number" || typeof v2 === "boolean") out[k2] = String(v2);
|
|
172140
|
+
}
|
|
172141
|
+
return out;
|
|
172142
|
+
}
|
|
172143
|
+
async function putBytesToPresignedUrl(fetchImpl, uploadUrl, uploadHeaders, bytes) {
|
|
172144
|
+
const headers = {
|
|
172145
|
+
"content-type": CONTENT_TYPE_ZIP,
|
|
172146
|
+
...normalizeUploadHeaders(uploadHeaders)
|
|
172147
|
+
};
|
|
172148
|
+
const res = await fetchImpl(uploadUrl, {
|
|
172149
|
+
method: "PUT",
|
|
172150
|
+
headers,
|
|
172151
|
+
body: bytes
|
|
172152
|
+
});
|
|
172153
|
+
if (!res.ok) {
|
|
172154
|
+
const detail = await res.text().catch(() => "");
|
|
172155
|
+
throw new Error(
|
|
172156
|
+
`Direct upload PUT failed: ${res.status} ${res.statusText}${detail ? ` \u2014 ${detail.slice(0, 300)}` : ""}`
|
|
172157
|
+
);
|
|
172158
|
+
}
|
|
172159
|
+
}
|
|
172160
|
+
async function completeWithRetry(client, asset_id, checksum_sha256) {
|
|
172161
|
+
let lastErr;
|
|
172162
|
+
for (let attempt = 0; attempt < COMPLETE_MAX_RETRIES; attempt++) {
|
|
172163
|
+
try {
|
|
172164
|
+
return await client.completeAssetUpload({
|
|
172165
|
+
asset_id,
|
|
172166
|
+
body: { checksum_sha256 }
|
|
172167
|
+
});
|
|
172168
|
+
} catch (err) {
|
|
172169
|
+
const retryable = err instanceof HyperframesApiError && err.status === 409;
|
|
172170
|
+
if (!retryable || attempt === COMPLETE_MAX_RETRIES - 1) {
|
|
172171
|
+
throw err;
|
|
172172
|
+
}
|
|
172173
|
+
lastErr = err;
|
|
172174
|
+
await sleep4(COMPLETE_RETRY_BASE_MS * (attempt + 1));
|
|
172175
|
+
}
|
|
172176
|
+
}
|
|
172177
|
+
throw lastErr ?? new Error("completeAssetUpload retries exhausted");
|
|
172178
|
+
}
|
|
172179
|
+
async function uploadZipViaDirectUpload(opts) {
|
|
172180
|
+
const start = Date.now();
|
|
172181
|
+
const { bytes, filename, idempotencyKey } = opts;
|
|
172182
|
+
const size_bytes = bytes.byteLength;
|
|
172183
|
+
const checksum_sha256 = sha256Hex2(bytes);
|
|
172184
|
+
const fetchImpl = opts.fetchImpl ?? fetch;
|
|
172185
|
+
opts.onProgress?.({ phase: "initialize" });
|
|
172186
|
+
const initialize = await opts.client.createAssetUpload({
|
|
172187
|
+
body: { filename, content_type: CONTENT_TYPE_ZIP, size_bytes, checksum_sha256 },
|
|
172188
|
+
idempotencyKey
|
|
172189
|
+
});
|
|
172190
|
+
opts.onProgress?.({ phase: "upload", percent: 0 });
|
|
172191
|
+
await putBytesToPresignedUrl(fetchImpl, initialize.upload_url, initialize.upload_headers, bytes);
|
|
172192
|
+
opts.onProgress?.({ phase: "upload", percent: 100 });
|
|
172193
|
+
opts.onProgress?.({ phase: "complete" });
|
|
172194
|
+
const completed = await completeWithRetry(opts.client, initialize.asset_id, checksum_sha256);
|
|
172195
|
+
return {
|
|
172196
|
+
asset_id: completed.asset_id,
|
|
172197
|
+
size_bytes,
|
|
172198
|
+
duration_ms: Date.now() - start
|
|
172199
|
+
};
|
|
172200
|
+
}
|
|
172201
|
+
var COMPLETE_MAX_RETRIES, COMPLETE_RETRY_BASE_MS, CONTENT_TYPE_ZIP;
|
|
172202
|
+
var init_upload = __esm({
|
|
172203
|
+
"src/cloud/upload.ts"() {
|
|
172204
|
+
"use strict";
|
|
172205
|
+
init_client2();
|
|
172206
|
+
COMPLETE_MAX_RETRIES = 5;
|
|
172207
|
+
COMPLETE_RETRY_BASE_MS = 500;
|
|
172208
|
+
CONTENT_TYPE_ZIP = "application/zip";
|
|
172209
|
+
}
|
|
172210
|
+
});
|
|
172211
|
+
|
|
171851
172212
|
// src/cloud/statusColor.ts
|
|
171852
172213
|
function colorStatus(status) {
|
|
171853
172214
|
switch (status) {
|
|
@@ -172008,22 +172369,25 @@ async function maybeUploadProject(client, source, asJson, idempotencyKey) {
|
|
|
172008
172369
|
}
|
|
172009
172370
|
if (!asJson) {
|
|
172010
172371
|
console.log("");
|
|
172011
|
-
console.log(`${c.accent("\u25C6")} Uploading to
|
|
172372
|
+
console.log(`${c.accent("\u25C6")} Uploading (direct-to-S3)`);
|
|
172012
172373
|
}
|
|
172013
172374
|
const uploadStart = Date.now();
|
|
172014
172375
|
let uploaded;
|
|
172015
172376
|
try {
|
|
172016
|
-
uploaded = await
|
|
172017
|
-
|
|
172377
|
+
uploaded = await uploadZipViaDirectUpload({
|
|
172378
|
+
client,
|
|
172379
|
+
bytes: archive.buffer,
|
|
172018
172380
|
filename: `${project.name}.zip`,
|
|
172019
|
-
|
|
172020
|
-
|
|
172021
|
-
|
|
172022
|
-
|
|
172023
|
-
|
|
172024
|
-
|
|
172025
|
-
|
|
172026
|
-
|
|
172381
|
+
idempotencyKey,
|
|
172382
|
+
onProgress: !asJson ? (ev) => {
|
|
172383
|
+
if (ev.phase === "initialize") {
|
|
172384
|
+
console.log(c.dim(` initializing\u2026`));
|
|
172385
|
+
} else if (ev.phase === "upload" && ev.percent === 0) {
|
|
172386
|
+
console.log(c.dim(` uploading to S3\u2026`));
|
|
172387
|
+
} else if (ev.phase === "complete") {
|
|
172388
|
+
console.log(c.dim(` finalizing\u2026`));
|
|
172389
|
+
}
|
|
172390
|
+
} : void 0
|
|
172027
172391
|
});
|
|
172028
172392
|
} catch (err) {
|
|
172029
172393
|
reportApiError("Upload failed", err);
|
|
@@ -172160,6 +172524,7 @@ var init_render3 = __esm({
|
|
|
172160
172524
|
init_cloud();
|
|
172161
172525
|
init_errors2();
|
|
172162
172526
|
init_parsing();
|
|
172527
|
+
init_upload();
|
|
172163
172528
|
init_statusColor();
|
|
172164
172529
|
VALID_QUALITY2 = ["draft", "standard", "high"];
|
|
172165
172530
|
VALID_FORMAT2 = ["mp4", "webm", "mov"];
|
|
@@ -173600,7 +173965,7 @@ __export(autoUpdate_exports, {
|
|
|
173600
173965
|
scheduleBackgroundInstall: () => scheduleBackgroundInstall
|
|
173601
173966
|
});
|
|
173602
173967
|
import { spawn as spawn17 } from "child_process";
|
|
173603
|
-
import { appendFileSync as appendFileSync2, mkdirSync as
|
|
173968
|
+
import { appendFileSync as appendFileSync2, mkdirSync as mkdirSync49, openSync as openSync3 } from "fs";
|
|
173604
173969
|
import { homedir as homedir16 } from "os";
|
|
173605
173970
|
import { join as join103 } from "path";
|
|
173606
173971
|
import { compareVersions as compareVersions3 } from "compare-versions";
|
|
@@ -173617,14 +173982,14 @@ function majorOf(version2) {
|
|
|
173617
173982
|
}
|
|
173618
173983
|
function log(line2) {
|
|
173619
173984
|
try {
|
|
173620
|
-
|
|
173985
|
+
mkdirSync49(CONFIG_DIR2, { recursive: true, mode: 448 });
|
|
173621
173986
|
appendFileSync2(LOG_FILE, `${(/* @__PURE__ */ new Date()).toISOString()} ${line2}
|
|
173622
173987
|
`, { mode: 384 });
|
|
173623
173988
|
} catch {
|
|
173624
173989
|
}
|
|
173625
173990
|
}
|
|
173626
173991
|
function launchDetachedInstall(installCommand, version2) {
|
|
173627
|
-
|
|
173992
|
+
mkdirSync49(CONFIG_DIR2, { recursive: true, mode: 448 });
|
|
173628
173993
|
const configFile = join103(CONFIG_DIR2, "config.json");
|
|
173629
173994
|
const nodeScript = `
|
|
173630
173995
|
const { exec } = require("node:child_process");
|