@tscircuit/eval 0.0.1014 → 0.0.1015
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/blob-url.js +1 -1
- package/dist/eval/index.js +98 -74
- package/dist/lib/index.js +98 -74
- package/dist/webworker/entrypoint.js +12 -12
- package/package.json +1 -1
|
@@ -801,20 +801,12 @@ ${spiceString}`)}catch(error2){debug11(`Failed to convert circuit JSON to SPICE:
|
|
|
801
801
|
`)}},__publicField(_a387,"token","arc"),__publicField(_a387,"parentToken","kicad_pcb"),_a387);SxClass.register(PcbArc);function parsePoint(args,label){if(args.length!==2)throw new Error(`arc ${label} expects two numeric values`);return{x:parseNumber(args[0],`${label}.x`),y:parseNumber(args[1],`${label}.y`)}}function parseNumber(value,label){let numeric=toNumberValue(value);if(numeric===void 0)throw new Error(`arc ${label} expects a numeric value`);return numeric}function parseString(value,label){if(typeof value!="string")throw new Error(`arc ${label} expects a string value`);return value}function parseNet(value){let numeric=toNumberValue(value);if(numeric!==void 0)return numeric;let stringValue=toStringValue(value);if(stringValue!==void 0)return stringValue;throw new Error("arc net expects a numeric id or string name")}function parseLocked(args){if(args.length===0)return!0;if(args.length!==1)throw new Error("arc locked expects at most one value");let parsed=parseYesNo(args[0]);if(parsed===void 0)throw new Error(`arc locked expects yes/no, received ${JSON.stringify(args[0])}`);return parsed}function parseLayer(args){if(args.length!==1)throw new Error("arc layer expects a single string value");return parseString(args[0],"layer")}function renderPoint(label,point6){return` (${label} ${point6.x} ${point6.y})`}var _a388,SegmentEnd=(_a388=class extends SxClass{constructor(x3,y2){super();__publicField(this,"token","end");__publicField(this,"_x");__publicField(this,"_y");this._x=x3,this._y=y2}static fromSexprPrimitives(primitiveSexprs){let[rawX,rawY]=primitiveSexprs,x3=toNumberValue(rawX),y2=toNumberValue(rawY);if(x3===void 0||y2===void 0)throw new Error("end expects two numeric arguments");return new _a388(x3,y2)}get x(){return this._x}set x(value){this._x=value}get y(){return this._y}set y(value){this._y=value}toObject(){return{x:this._x,y:this._y}}getChildren(){return[]}getString(){return`(end ${this._x} ${this._y})`}},__publicField(_a388,"token","end"),__publicField(_a388,"parentToken","segment"),_a388);SxClass.register(SegmentEnd);var truthyStrings5=new Set(["true","yes","1"]),_a389,SegmentLocked=(_a389=class extends SxPrimitiveBoolean{constructor(value){super(value);__publicField(this,"token","locked")}static fromSexprPrimitives(primitiveSexprs){let[rawValue]=primitiveSexprs;return typeof rawValue=="boolean"?new _a389(rawValue):typeof rawValue=="string"?new _a389(truthyStrings5.has(rawValue.toLowerCase())):new _a389(!1)}getString(){return`(locked ${this.value?"yes":"no"})`}},__publicField(_a389,"token","locked"),__publicField(_a389,"parentToken","segment"),_a389);SxClass.register(SegmentLocked);var _a390,SegmentNet=(_a390=class extends SxClass{constructor(idOrName,name){super();__publicField(this,"token","net");__publicField(this,"_id");__publicField(this,"_name");if(typeof idOrName=="number"){this._id=idOrName,this._name=name;return}this._name=idOrName}static fromSexprPrimitives(primitiveSexprs){let[rawId,rawName]=primitiveSexprs,id3=toNumberValue(rawId);if(id3!==void 0){let name2=rawName===void 0?void 0:toStringValue(rawName);return new _a390(id3,name2??void 0)}let name=toStringValue(rawId);if(name===void 0)throw new Error("net expects a numeric identifier or string name");return new _a390(name)}get id(){return this._id}set id(value){this._id=value}get name(){return this._name}set name(value){this._name=value===""?void 0:value}toObject(){return this._name===void 0?{id:this._id}:{id:this._id,name:this._name}}getChildren(){return[]}getString(){if(this._id===void 0)return`(net ${quoteSExprString(this._name??"")})`;let namePart=this._name?` ${quoteSExprString(this._name)}`:"";return`(net ${this._id}${namePart})`}},__publicField(_a390,"token","net"),__publicField(_a390,"parentToken","segment"),_a390);SxClass.register(SegmentNet);var _a391,SegmentStart=(_a391=class extends SxClass{constructor(x3,y2){super();__publicField(this,"token","start");__publicField(this,"_x");__publicField(this,"_y");this._x=x3,this._y=y2}static fromSexprPrimitives(primitiveSexprs){let[rawX,rawY]=primitiveSexprs,x3=toNumberValue(rawX),y2=toNumberValue(rawY);if(x3===void 0||y2===void 0)throw new Error("start expects two numeric arguments");return new _a391(x3,y2)}get x(){return this._x}set x(value){this._x=value}get y(){return this._y}set y(value){this._y=value}toObject(){return{x:this._x,y:this._y}}getChildren(){return[]}getString(){return`(start ${this._x} ${this._y})`}},__publicField(_a391,"token","start"),__publicField(_a391,"parentToken","segment"),_a391);SxClass.register(SegmentStart);var SUPPORTED_SINGLE_TOKENS12=new Set(["start","end","width","layer","net","tstamp","uuid","locked"]),_a392,Segment3=(_a392=class extends SxClass{constructor(params={}){super();__publicField(this,"token","segment");__publicField(this,"_sxStart");__publicField(this,"_sxEnd");__publicField(this,"_sxWidth");__publicField(this,"_sxLayer");__publicField(this,"_sxNet");__publicField(this,"_sxTstamp");__publicField(this,"_sxUuid");__publicField(this,"_sxLocked");params.start!==void 0&&(this.start=params.start),params.end!==void 0&&(this.end=params.end),params.width!==void 0&&(this.width=params.width),params.layer!==void 0&&(this.layer=params.layer),params.net!==void 0&&(this.net=params.net),params.tstamp!==void 0&&(this.tstamp=params.tstamp),params.uuid!==void 0&&(this.uuid=params.uuid),params.locked!==void 0&&(this.locked=params.locked)}static fromSexprPrimitives(primitiveSexprs){let segment2=new _a392,{propertyMap,arrayPropertyMap}=SxClass.parsePrimitivesToClassProperties(primitiveSexprs,this.token),unexpectedSingleTokens=Object.keys(propertyMap).filter(token=>!SUPPORTED_SINGLE_TOKENS12.has(token));if(unexpectedSingleTokens.length>0)throw new Error(`Unsupported child tokens inside segment expression: ${unexpectedSingleTokens.join(", ")}`);for(let[token,entries]of Object.entries(arrayPropertyMap)){if(!SUPPORTED_SINGLE_TOKENS12.has(token))throw new Error(`Unsupported child tokens inside segment expression: ${token}`);if(entries.length>1)throw new Error(`Segment does not support repeated child tokens: ${token}`)}segment2._sxStart=arrayPropertyMap.start?.[0]??propertyMap.start,segment2._sxEnd=arrayPropertyMap.end?.[0]??propertyMap.end,segment2._sxWidth=arrayPropertyMap.width?.[0]??propertyMap.width,segment2._sxLayer=arrayPropertyMap.layer?.[0]??propertyMap.layer,segment2._sxNet=arrayPropertyMap.net?.[0]??propertyMap.net;let locked=arrayPropertyMap.locked?.[0]??propertyMap.locked;return segment2._sxLocked=locked&&locked.value?locked:void 0,segment2._sxTstamp=arrayPropertyMap.tstamp?.[0]??propertyMap.tstamp,segment2._sxUuid=arrayPropertyMap.uuid?.[0]??propertyMap.uuid,segment2}get start(){return this._sxStart}set start(value){this._sxStart=this.normalizeStart(value)}get end(){return this._sxEnd}set end(value){this._sxEnd=this.normalizeEnd(value)}get startPoint(){return this._sxStart?.toObject()}get endPoint(){return this._sxEnd?.toObject()}get width(){return this._sxWidth?.value}set width(value){if(value===void 0){this._sxWidth=void 0;return}this._sxWidth=value instanceof Width?value:new Width(value)}get widthClass(){return this._sxWidth}set widthClass(value){this._sxWidth=value}get layer(){return this._sxLayer}set layer(value){if(value===void 0){this._sxLayer=void 0;return}if(value instanceof Layer){this._sxLayer=value;return}let names=Array.isArray(value)?value:[value];this._sxLayer=new Layer(names)}get net(){return this._sxNet}set net(value){if(value===void 0){this._sxNet=void 0;return}if(value instanceof SegmentNet){this._sxNet=value;return}this._sxNet=new SegmentNet(value.id,value.name)}get tstamp(){return this._sxTstamp}set tstamp(value){if(value===void 0){this._sxTstamp=void 0;return}this._sxTstamp=value instanceof Tstamp?value:new Tstamp(value)}get uuid(){return this._sxUuid}set uuid(value){if(value===void 0){this._sxUuid=void 0;return}this._sxUuid=value instanceof Uuid?value:new Uuid(value)}get locked(){return this._sxLocked?.value??!1}set locked(value){this._sxLocked=value?new SegmentLocked(!0):void 0}getChildren(){let children=[];return this._sxStart&&children.push(this._sxStart),this._sxEnd&&children.push(this._sxEnd),this._sxWidth&&children.push(this._sxWidth),this._sxLayer&&children.push(this._sxLayer),this._sxNet&&children.push(this._sxNet),this._sxLocked&&children.push(this._sxLocked),this._sxTstamp&&children.push(this._sxTstamp),this._sxUuid&&children.push(this._sxUuid),children}normalizeStart(value){if(value!==void 0)return value instanceof SegmentStart?value:new SegmentStart(value.x,value.y)}normalizeEnd(value){if(value!==void 0)return value instanceof SegmentEnd?value:new SegmentEnd(value.x,value.y)}},__publicField(_a392,"token","segment"),_a392);SxClass.register(Segment3);var SingleValueProperty=class extends SxClass{constructor(value){super();__publicField(this,"_value");__publicField(this,"quoteStringValue",!1);this._value=value}static fromSexprPrimitives(primitiveSexprs){let[valuePrimitive]=primitiveSexprs,value=this.parsePrimitiveValue(valuePrimitive),Constructor=this;return new Constructor(value)}static parsePrimitiveValue(value){let stringValue=toStringValue(value);if(stringValue===void 0)throw new Error(`${this.name} expects a primitive value`);return stringValue}get value(){return this._value}set value(value){this._value=value}getChildren(){return[]}formatValue(){return typeof this._value=="string"?this.quoteStringValue?quoteSExprString(this._value):this._value:`${this._value}`}getString(){return`(${this.token} ${this.formatValue()})`}},NumericListProperty=class extends SxClass{constructor(values){super();__publicField(this,"_values");this._values=values}static fromSexprPrimitives(primitiveSexprs){let values=primitiveSexprs.map(primitive=>{let value=toNumberValue(primitive);if(value===void 0)throw new Error(`${this.name} expects numeric primitives but received ${primitive}`);return value}),Constructor=this;return new Constructor(values)}get values(){return[...this._values]}set values(values){this._values=[...values]}getChildren(){return[]}getString(){return`(${this.token} ${this._values.join(" ")})`}},CoordinateProperty=class extends SxClass{constructor(x3,y2){super();__publicField(this,"_x");__publicField(this,"_y");this._x=x3,this._y=y2}static fromSexprPrimitives(primitiveSexprs){let[xPrimitive,yPrimitive]=primitiveSexprs,x3=toNumberValue(xPrimitive),y2=toNumberValue(yPrimitive);if(x3===void 0||y2===void 0)throw new Error(`${this.name} expects two numeric values`);let Constructor=this;return new Constructor(x3,y2)}get x(){return this._x}set x(value){this._x=value}get y(){return this._y}set y(value){this._y=value}getChildren(){return[]}getString(){return`(${this.token} ${this._x} ${this._y})`}},_a393,Capping=(_a393=class extends SingleValueProperty{constructor(){super(...arguments);__publicField(this,"token","capping")}},__publicField(_a393,"token","capping"),_a393);SxClass.register(Capping);var _a394,Back=(_a394=class extends SingleValueProperty{constructor(){super(...arguments);__publicField(this,"token","back")}},__publicField(_a394,"token","back"),_a394);SxClass.register(Back);var _a395,Front=(_a395=class extends SingleValueProperty{constructor(){super(...arguments);__publicField(this,"token","front")}},__publicField(_a395,"token","front"),_a395);SxClass.register(Front);var _a396,Covering=(_a396=class extends SxClass{constructor(params={}){super();__publicField(this,"token","covering");__publicField(this,"_sxFront");__publicField(this,"_sxBack");params.front!==void 0&&(this.front=params.front),params.back!==void 0&&(this.back=params.back)}static fromSexprPrimitives(primitiveSexprs){let{propertyMap}=SxClass.parsePrimitivesToClassProperties(primitiveSexprs,this.token);return new _a396({front:propertyMap.front,back:propertyMap.back})}get front(){return this._sxFront?.value}set front(value){if(value===void 0){this._sxFront=void 0;return}this._sxFront=value instanceof Front?value:new Front(value)}get back(){return this._sxBack?.value}set back(value){if(value===void 0){this._sxBack=void 0;return}this._sxBack=value instanceof Back?value:new Back(value)}getChildren(){let children=[];return this._sxFront&&children.push(this._sxFront),this._sxBack&&children.push(this._sxBack),children}},__publicField(_a396,"token","covering"),_a396);SxClass.register(Covering);var _a397,Filling=(_a397=class extends SingleValueProperty{constructor(){super(...arguments);__publicField(this,"token","filling")}},__publicField(_a397,"token","filling"),_a397);SxClass.register(Filling);var _a398,PlotParamProperty=(_a398=class extends SingleValueProperty{},__publicField(_a398,"parentToken","pcbplotparams"),_a398),PlotParamNumberProperty=class extends PlotParamProperty{static parsePrimitiveValue(value){let parsed=toNumberValue(value);if(parsed===void 0)throw new Error(`pcbplotparams ${this.token} expects a numeric value`);return parsed}},_a399,PlotParamLayerSelection=(_a399=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","layerselection")}},__publicField(_a399,"token","layerselection"),_a399);SxClass.register(PlotParamLayerSelection);var _a400,PlotParamPlotOnAllLayersSelection=(_a400=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","plot_on_all_layers_selection")}},__publicField(_a400,"token","plot_on_all_layers_selection"),_a400);SxClass.register(PlotParamPlotOnAllLayersSelection);var _a401,PlotParamDashedLineDashRatio=(_a401=class extends PlotParamNumberProperty{constructor(){super(...arguments);__publicField(this,"token","dashed_line_dash_ratio")}},__publicField(_a401,"token","dashed_line_dash_ratio"),_a401);SxClass.register(PlotParamDashedLineDashRatio);var _a402,PlotParamDashedLineGapRatio=(_a402=class extends PlotParamNumberProperty{constructor(){super(...arguments);__publicField(this,"token","dashed_line_gap_ratio")}},__publicField(_a402,"token","dashed_line_gap_ratio"),_a402);SxClass.register(PlotParamDashedLineGapRatio);var _a403,PlotParamSvgPrecision=(_a403=class extends PlotParamNumberProperty{constructor(){super(...arguments);__publicField(this,"token","svgprecision")}},__publicField(_a403,"token","svgprecision"),_a403);SxClass.register(PlotParamSvgPrecision);var _a404,PlotParamLineWidth=(_a404=class extends PlotParamNumberProperty{constructor(){super(...arguments);__publicField(this,"token","linewidth")}},__publicField(_a404,"token","linewidth"),_a404);SxClass.register(PlotParamLineWidth);var _a405,PlotParamMode=(_a405=class extends PlotParamNumberProperty{constructor(){super(...arguments);__publicField(this,"token","mode")}},__publicField(_a405,"token","mode"),_a405);SxClass.register(PlotParamMode);var _a406,PlotParamHpglPenNumber=(_a406=class extends PlotParamNumberProperty{constructor(){super(...arguments);__publicField(this,"token","hpglpennumber")}},__publicField(_a406,"token","hpglpennumber"),_a406);SxClass.register(PlotParamHpglPenNumber);var _a407,PlotParamHpglPenSpeed=(_a407=class extends PlotParamNumberProperty{constructor(){super(...arguments);__publicField(this,"token","hpglpenspeed")}},__publicField(_a407,"token","hpglpenspeed"),_a407);SxClass.register(PlotParamHpglPenSpeed);var _a408,PlotParamHpglPenDiameter=(_a408=class extends PlotParamNumberProperty{constructor(){super(...arguments);__publicField(this,"token","hpglpendiameter")}},__publicField(_a408,"token","hpglpendiameter"),_a408);SxClass.register(PlotParamHpglPenDiameter);var _a409,PlotParamHpglPenOverlay=(_a409=class extends PlotParamNumberProperty{constructor(){super(...arguments);__publicField(this,"token","hpglpenoverlay")}},__publicField(_a409,"token","hpglpenoverlay"),_a409);SxClass.register(PlotParamHpglPenOverlay);var _a410,PlotParamOutputFormat=(_a410=class extends PlotParamNumberProperty{constructor(){super(...arguments);__publicField(this,"token","outputformat")}},__publicField(_a410,"token","outputformat"),_a410);SxClass.register(PlotParamOutputFormat);var _a411,PlotParamDrillShape=(_a411=class extends PlotParamNumberProperty{constructor(){super(...arguments);__publicField(this,"token","drillshape")}},__publicField(_a411,"token","drillshape"),_a411);SxClass.register(PlotParamDrillShape);var _a412,PlotParamScaleSelection=(_a412=class extends PlotParamNumberProperty{constructor(){super(...arguments);__publicField(this,"token","scaleselection")}},__publicField(_a412,"token","scaleselection"),_a412);SxClass.register(PlotParamScaleSelection);var _a413,PlotParamPlotFpText=(_a413=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","plotfptext")}},__publicField(_a413,"token","plotfptext"),_a413);SxClass.register(PlotParamPlotFpText);var _a414,PlotParamDisableApertMacros=(_a414=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","disableapertmacros")}},__publicField(_a414,"token","disableapertmacros"),_a414);SxClass.register(PlotParamDisableApertMacros);var _a415,PlotParamUseGerberExtensions=(_a415=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","usegerberextensions")}},__publicField(_a415,"token","usegerberextensions"),_a415);SxClass.register(PlotParamUseGerberExtensions);var _a416,PlotParamUseGerberAttributes=(_a416=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","usegerberattributes")}},__publicField(_a416,"token","usegerberattributes"),_a416);SxClass.register(PlotParamUseGerberAttributes);var _a417,PlotParamUseGerberAdvancedAttributes=(_a417=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","usegerberadvancedattributes")}},__publicField(_a417,"token","usegerberadvancedattributes"),_a417);SxClass.register(PlotParamUseGerberAdvancedAttributes);var _a418,PlotParamCreateGerberJobFile=(_a418=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","creategerberjobfile")}},__publicField(_a418,"token","creategerberjobfile"),_a418);SxClass.register(PlotParamCreateGerberJobFile);var _a419,PlotParamSvgUseInch=(_a419=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","svguseinch")}},__publicField(_a419,"token","svguseinch"),_a419);SxClass.register(PlotParamSvgUseInch);var _a420,PlotParamExcludeEdgeLayer=(_a420=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","excludeedgelayer")}},__publicField(_a420,"token","excludeedgelayer"),_a420);SxClass.register(PlotParamExcludeEdgeLayer);var _a421,PlotParamPlotFrameRef=(_a421=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","plotframeref")}},__publicField(_a421,"token","plotframeref"),_a421);SxClass.register(PlotParamPlotFrameRef);var _a422,PlotParamViaOnMask=(_a422=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","viasonmask")}},__publicField(_a422,"token","viasonmask"),_a422);SxClass.register(PlotParamViaOnMask);var _a423,PlotParamUseAuxOrigin=(_a423=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","useauxorigin")}},__publicField(_a423,"token","useauxorigin"),_a423);SxClass.register(PlotParamUseAuxOrigin);var _a424,PlotParamPdfFrontFpPropertyPopups=(_a424=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","pdf_front_fp_property_popups")}},__publicField(_a424,"token","pdf_front_fp_property_popups"),_a424);SxClass.register(PlotParamPdfFrontFpPropertyPopups);var _a425,PlotParamPdfBackFpPropertyPopups=(_a425=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","pdf_back_fp_property_popups")}},__publicField(_a425,"token","pdf_back_fp_property_popups"),_a425);SxClass.register(PlotParamPdfBackFpPropertyPopups);var _a426,PlotParamPdfMetadata=(_a426=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","pdf_metadata")}},__publicField(_a426,"token","pdf_metadata"),_a426);SxClass.register(PlotParamPdfMetadata);var _a427,PlotParamPdfSingleDocument=(_a427=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","pdf_single_document")}},__publicField(_a427,"token","pdf_single_document"),_a427);SxClass.register(PlotParamPdfSingleDocument);var _a428,PlotParamDxfPolygonMode=(_a428=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","dxfpolygonmode")}},__publicField(_a428,"token","dxfpolygonmode"),_a428);SxClass.register(PlotParamDxfPolygonMode);var _a429,PlotParamDxfImperialUnits=(_a429=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","dxfimperialunits")}},__publicField(_a429,"token","dxfimperialunits"),_a429);SxClass.register(PlotParamDxfImperialUnits);var _a430,PlotParamDxfUsePcbnewFont=(_a430=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","dxfusepcbnewfont")}},__publicField(_a430,"token","dxfusepcbnewfont"),_a430);SxClass.register(PlotParamDxfUsePcbnewFont);var _a431,PlotParamPsNegative=(_a431=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","psnegative")}},__publicField(_a431,"token","psnegative"),_a431);SxClass.register(PlotParamPsNegative);var _a432,PlotParamPsA4Output=(_a432=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","psa4output")}},__publicField(_a432,"token","psa4output"),_a432);SxClass.register(PlotParamPsA4Output);var _a433,PlotParamPlotReference=(_a433=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","plotreference")}},__publicField(_a433,"token","plotreference"),_a433);SxClass.register(PlotParamPlotReference);var _a434,PlotParamPlotValue=(_a434=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","plotvalue")}},__publicField(_a434,"token","plotvalue"),_a434);SxClass.register(PlotParamPlotValue);var _a435,PlotParamPlotOtherText=(_a435=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","plotothertext")}},__publicField(_a435,"token","plotothertext"),_a435);SxClass.register(PlotParamPlotOtherText);var _a436,PlotParamPlotInvisibleText=(_a436=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","plotinvisibletext")}},__publicField(_a436,"token","plotinvisibletext"),_a436);SxClass.register(PlotParamPlotInvisibleText);var _a437,PlotParamPadOnSilk=(_a437=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","padsonsilk")}},__publicField(_a437,"token","padsonsilk"),_a437);SxClass.register(PlotParamPadOnSilk);var _a438,PlotParamSketchPadsOnFab=(_a438=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","sketchpadsonfab")}},__publicField(_a438,"token","sketchpadsonfab"),_a438);SxClass.register(PlotParamSketchPadsOnFab);var _a439,PlotParamPlotPadNumbers=(_a439=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","plotpadnumbers")}},__publicField(_a439,"token","plotpadnumbers"),_a439);SxClass.register(PlotParamPlotPadNumbers);var _a440,PlotParamHideDnpOnFab=(_a440=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","hidednponfab")}},__publicField(_a440,"token","hidednponfab"),_a440);SxClass.register(PlotParamHideDnpOnFab);var _a441,PlotParamSketchDnpOnFab=(_a441=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","sketchdnponfab")}},__publicField(_a441,"token","sketchdnponfab"),_a441);SxClass.register(PlotParamSketchDnpOnFab);var _a442,PlotParamCrossoutDnpOnFab=(_a442=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","crossoutdnponfab")}},__publicField(_a442,"token","crossoutdnponfab"),_a442);SxClass.register(PlotParamCrossoutDnpOnFab);var _a443,PlotParamSubtractMaskFromSilk=(_a443=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","subtractmaskfromsilk")}},__publicField(_a443,"token","subtractmaskfromsilk"),_a443);SxClass.register(PlotParamSubtractMaskFromSilk);var _a444,PlotParamPlotBlackAndWhite=(_a444=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","plot_black_and_white")}},__publicField(_a444,"token","plot_black_and_white"),_a444);SxClass.register(PlotParamPlotBlackAndWhite);var _a445,PlotParamMirror=(_a445=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","mirror")}},__publicField(_a445,"token","mirror"),_a445);SxClass.register(PlotParamMirror);var _a446,PlotParamOutputDirectory=(_a446=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","outputdirectory");__publicField(this,"quoteStringValue",!0)}},__publicField(_a446,"token","outputdirectory"),_a446);SxClass.register(PlotParamOutputDirectory);var _a447,PlotParamPlotOnAllLayers=(_a447=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","plot_on_all_layers")}},__publicField(_a447,"token","plot_on_all_layers"),_a447);SxClass.register(PlotParamPlotOnAllLayers);var _a448,PlotParamPlotInvisible=(_a448=class extends PlotParamProperty{constructor(){super(...arguments);__publicField(this,"token","plotinvisible")}},__publicField(_a448,"token","plotinvisible"),_a448);SxClass.register(PlotParamPlotInvisible);var TOKEN_TO_KEY={layerselection:"layerselection",plot_on_all_layers_selection:"plot_on_all_layers_selection",disableapertmacros:"disableapertmacros",usegerberextensions:"usegerberextensions",usegerberattributes:"usegerberattributes",usegerberadvancedattributes:"usegerberadvancedattributes",creategerberjobfile:"creategerberjobfile",excludeedgelayer:"excludeedgelayer",dashed_line_dash_ratio:"dashed_line_dash_ratio",dashed_line_gap_ratio:"dashed_line_gap_ratio",svguseinch:"svguseinch",svgprecision:"svgprecision",linewidth:"linewidth",plotframeref:"plotframeref",plotreference:"plotreference",plotvalue:"plotvalue",plotfptext:"plotfptext",plotothertext:"plotothertext",plotinvisibletext:"plotinvisibletext",padsonsilk:"padsonsilk",sketchpadsonfab:"sketchpadsonfab",plotpadnumbers:"plotpadnumbers",hidednponfab:"hidednponfab",sketchdnponfab:"sketchdnponfab",crossoutdnponfab:"crossoutdnponfab",subtractmaskfromsilk:"subtractmaskfromsilk",plot_black_and_white:"plot_black_and_white",plot_on_all_layers:"plot_on_all_layers",plotinvisible:"plotinvisible",mode:"mode",useauxorigin:"useauxorigin",viasonmask:"viasonmask",hpglpennumber:"hpglpennumber",hpglpenspeed:"hpglpenspeed",hpglpendiameter:"hpglpendiameter",hpglpenoverlay:"hpglpenoverlay",pdf_front_fp_property_popups:"pdf_front_fp_property_popups",pdf_back_fp_property_popups:"pdf_back_fp_property_popups",pdf_metadata:"pdf_metadata",pdf_single_document:"pdf_single_document",dxfpolygonmode:"dxfpolygonmode",dxfimperialunits:"dxfimperialunits",dxfusepcbnewfont:"dxfusepcbnewfont",psnegative:"psnegative",psa4output:"psa4output",mirror:"mirror",outputformat:"outputformat",drillshape:"drillshape",scaleselection:"scaleselection",outputdirectory:"outputdirectory"},PCB_PLOT_PARAM_CHILD_ORDER=["layerselection","plot_on_all_layers_selection","disableapertmacros","usegerberextensions","usegerberattributes","usegerberadvancedattributes","creategerberjobfile","excludeedgelayer","dashed_line_dash_ratio","dashed_line_gap_ratio","svguseinch","svgprecision","linewidth","plotframeref","plotreference","plotvalue","plotfptext","plotothertext","mode","useauxorigin","viasonmask","hpglpennumber","hpglpenspeed","hpglpendiameter","hpglpenoverlay","pdf_front_fp_property_popups","pdf_back_fp_property_popups","pdf_metadata","pdf_single_document","dxfpolygonmode","dxfimperialunits","dxfusepcbnewfont","psnegative","psa4output","plot_black_and_white","plot_on_all_layers","plotinvisible","plotinvisibletext","padsonsilk","sketchpadsonfab","plotpadnumbers","hidednponfab","sketchdnponfab","crossoutdnponfab","subtractmaskfromsilk","outputformat","mirror","drillshape","scaleselection","outputdirectory"],_a449,PcbPlotParams=(_a449=class extends SxClass{constructor(){super(...arguments);__publicField(this,"token","pcbplotparams");__publicField(this,"_properties",{})}static fromSexprPrimitives(primitiveSexprs){let params=new _a449,{propertyMap}=SxClass.parsePrimitivesToClassProperties(primitiveSexprs,this.token);for(let[token,instance]of Object.entries(propertyMap)){let key=TOKEN_TO_KEY[token];if(!key)throw new Error(`Unsupported pcbplotparams token: ${token}`);params._properties[key]=instance}return params}getChildren(){let children=[];for(let key of PCB_PLOT_PARAM_CHILD_ORDER){let child=this._properties[key];child&&children.push(child)}return children}clearProperty(key){delete this._properties[key]}setStringProperty(key,value,ClassRef){if(value===void 0){this.clearProperty(key);return}this._properties[key]=new ClassRef(value)}setNumberProperty(key,value,ClassRef){if(value===void 0){this.clearProperty(key);return}this._properties[key]=new ClassRef(value)}setStringOrNumberProperty(key,value,ClassRef){if(value===void 0){this.clearProperty(key);return}this._properties[key]=new ClassRef(value)}get layerselection(){return this._properties.layerselection?.value}set layerselection(value){this.setStringOrNumberProperty("layerselection",value,PlotParamLayerSelection)}get plot_on_all_layers_selection(){return this._properties.plot_on_all_layers_selection?.value}set plot_on_all_layers_selection(value){this.setStringOrNumberProperty("plot_on_all_layers_selection",value,PlotParamPlotOnAllLayersSelection)}get disableapertmacros(){return this._properties.disableapertmacros?.value}set disableapertmacros(value){this.setStringProperty("disableapertmacros",value,PlotParamDisableApertMacros)}get usegerberextensions(){return this._properties.usegerberextensions?.value}set usegerberextensions(value){this.setStringProperty("usegerberextensions",value,PlotParamUseGerberExtensions)}get usegerberattributes(){return this._properties.usegerberattributes?.value}set usegerberattributes(value){this.setStringProperty("usegerberattributes",value,PlotParamUseGerberAttributes)}get usegerberadvancedattributes(){return this._properties.usegerberadvancedattributes?.value}set usegerberadvancedattributes(value){this.setStringProperty("usegerberadvancedattributes",value,PlotParamUseGerberAdvancedAttributes)}get creategerberjobfile(){return this._properties.creategerberjobfile?.value}set creategerberjobfile(value){this.setStringProperty("creategerberjobfile",value,PlotParamCreateGerberJobFile)}get excludeedgelayer(){return this._properties.excludeedgelayer?.value}set excludeedgelayer(value){this.setStringProperty("excludeedgelayer",value,PlotParamExcludeEdgeLayer)}get dashed_line_dash_ratio(){return this._properties.dashed_line_dash_ratio?.value}set dashed_line_dash_ratio(value){this.setNumberProperty("dashed_line_dash_ratio",value,PlotParamDashedLineDashRatio)}get dashed_line_gap_ratio(){return this._properties.dashed_line_gap_ratio?.value}set dashed_line_gap_ratio(value){this.setNumberProperty("dashed_line_gap_ratio",value,PlotParamDashedLineGapRatio)}get svguseinch(){return this._properties.svguseinch?.value}set svguseinch(value){this.setStringProperty("svguseinch",value,PlotParamSvgUseInch)}get svgprecision(){return this._properties.svgprecision?.value}set svgprecision(value){this.setNumberProperty("svgprecision",value,PlotParamSvgPrecision)}get linewidth(){return this._properties.linewidth?.value}set linewidth(value){this.setNumberProperty("linewidth",value,PlotParamLineWidth)}get plotframeref(){return this._properties.plotframeref?.value}set plotframeref(value){this.setStringProperty("plotframeref",value,PlotParamPlotFrameRef)}get plotreference(){return this._properties.plotreference?.value}set plotreference(value){this.setStringProperty("plotreference",value,PlotParamPlotReference)}get plotvalue(){return this._properties.plotvalue?.value}set plotvalue(value){this.setStringProperty("plotvalue",value,PlotParamPlotValue)}get plotfptext(){return this._properties.plotfptext?.value}set plotfptext(value){this.setStringProperty("plotfptext",value,PlotParamPlotFpText)}get plotothertext(){return this._properties.plotothertext?.value}set plotothertext(value){this.setStringProperty("plotothertext",value,PlotParamPlotOtherText)}get plotinvisibletext(){return this._properties.plotinvisibletext?.value}set plotinvisibletext(value){this.setStringProperty("plotinvisibletext",value,PlotParamPlotInvisibleText)}get padsonsilk(){return this._properties.padsonsilk?.value}set padsonsilk(value){this.setStringProperty("padsonsilk",value,PlotParamPadOnSilk)}get plotpadnumbers(){return this._properties.plotpadnumbers?.value}set plotpadnumbers(value){this.setStringProperty("plotpadnumbers",value,PlotParamPlotPadNumbers)}get sketchpadsonfab(){return this._properties.sketchpadsonfab?.value}set sketchpadsonfab(value){this.setStringProperty("sketchpadsonfab",value,PlotParamSketchPadsOnFab)}get hidednponfab(){return this._properties.hidednponfab?.value}set hidednponfab(value){this.setStringProperty("hidednponfab",value,PlotParamHideDnpOnFab)}get sketchdnponfab(){return this._properties.sketchdnponfab?.value}set sketchdnponfab(value){this.setStringProperty("sketchdnponfab",value,PlotParamSketchDnpOnFab)}get crossoutdnponfab(){return this._properties.crossoutdnponfab?.value}set crossoutdnponfab(value){this.setStringProperty("crossoutdnponfab",value,PlotParamCrossoutDnpOnFab)}get subtractmaskfromsilk(){return this._properties.subtractmaskfromsilk?.value}set subtractmaskfromsilk(value){this.setStringProperty("subtractmaskfromsilk",value,PlotParamSubtractMaskFromSilk)}get plot_black_and_white(){return this._properties.plot_black_and_white?.value}set plot_black_and_white(value){this.setStringProperty("plot_black_and_white",value,PlotParamPlotBlackAndWhite)}get plot_on_all_layers(){return this._properties.plot_on_all_layers?.value}set plot_on_all_layers(value){this.setStringProperty("plot_on_all_layers",value,PlotParamPlotOnAllLayers)}get plotinvisible(){return this._properties.plotinvisible?.value}set plotinvisible(value){this.setStringProperty("plotinvisible",value,PlotParamPlotInvisible)}get mode(){return this._properties.mode?.value}set mode(value){this.setNumberProperty("mode",value,PlotParamMode)}get useauxorigin(){return this._properties.useauxorigin?.value}set useauxorigin(value){this.setStringProperty("useauxorigin",value,PlotParamUseAuxOrigin)}get viasonmask(){return this._properties.viasonmask?.value}set viasonmask(value){this.setStringProperty("viasonmask",value,PlotParamViaOnMask)}get hpglpennumber(){return this._properties.hpglpennumber?.value}set hpglpennumber(value){this.setNumberProperty("hpglpennumber",value,PlotParamHpglPenNumber)}get hpglpenspeed(){return this._properties.hpglpenspeed?.value}set hpglpenspeed(value){this.setNumberProperty("hpglpenspeed",value,PlotParamHpglPenSpeed)}get hpglpendiameter(){return this._properties.hpglpendiameter?.value}set hpglpendiameter(value){this.setNumberProperty("hpglpendiameter",value,PlotParamHpglPenDiameter)}get hpglpenoverlay(){return this._properties.hpglpenoverlay?.value}set hpglpenoverlay(value){this.setNumberProperty("hpglpenoverlay",value,PlotParamHpglPenOverlay)}get pdf_front_fp_property_popups(){return this._properties.pdf_front_fp_property_popups?.value}set pdf_front_fp_property_popups(value){this.setStringProperty("pdf_front_fp_property_popups",value,PlotParamPdfFrontFpPropertyPopups)}get pdf_back_fp_property_popups(){return this._properties.pdf_back_fp_property_popups?.value}set pdf_back_fp_property_popups(value){this.setStringProperty("pdf_back_fp_property_popups",value,PlotParamPdfBackFpPropertyPopups)}get pdf_metadata(){return this._properties.pdf_metadata?.value}set pdf_metadata(value){this.setStringProperty("pdf_metadata",value,PlotParamPdfMetadata)}get pdf_single_document(){return this._properties.pdf_single_document?.value}set pdf_single_document(value){this.setStringProperty("pdf_single_document",value,PlotParamPdfSingleDocument)}get dxfpolygonmode(){return this._properties.dxfpolygonmode?.value}set dxfpolygonmode(value){this.setStringProperty("dxfpolygonmode",value,PlotParamDxfPolygonMode)}get dxfimperialunits(){return this._properties.dxfimperialunits?.value}set dxfimperialunits(value){this.setStringProperty("dxfimperialunits",value,PlotParamDxfImperialUnits)}get dxfusepcbnewfont(){return this._properties.dxfusepcbnewfont?.value}set dxfusepcbnewfont(value){this.setStringProperty("dxfusepcbnewfont",value,PlotParamDxfUsePcbnewFont)}get psnegative(){return this._properties.psnegative?.value}set psnegative(value){this.setStringProperty("psnegative",value,PlotParamPsNegative)}get psa4output(){return this._properties.psa4output?.value}set psa4output(value){this.setStringProperty("psa4output",value,PlotParamPsA4Output)}get mirror(){return this._properties.mirror?.value}set mirror(value){this.setStringProperty("mirror",value,PlotParamMirror)}get outputformat(){return this._properties.outputformat?.value}set outputformat(value){this.setNumberProperty("outputformat",value,PlotParamOutputFormat)}get drillshape(){return this._properties.drillshape?.value}set drillshape(value){this.setNumberProperty("drillshape",value,PlotParamDrillShape)}get scaleselection(){return this._properties.scaleselection?.value}set scaleselection(value){this.setNumberProperty("scaleselection",value,PlotParamScaleSelection)}get outputdirectory(){return this._properties.outputdirectory?.value}set outputdirectory(value){this.setStringProperty("outputdirectory",value,PlotParamOutputDirectory)}},__publicField(_a449,"token","pcbplotparams"),__publicField(_a449,"parentToken","setup"),_a449);SxClass.register(PcbPlotParams);var _a450,Plugging=(_a450=class extends SxClass{constructor(params={}){super();__publicField(this,"token","plugging");__publicField(this,"_sxFront");__publicField(this,"_sxBack");params.front!==void 0&&(this.front=params.front),params.back!==void 0&&(this.back=params.back)}static fromSexprPrimitives(primitiveSexprs){let{propertyMap}=SxClass.parsePrimitivesToClassProperties(primitiveSexprs,this.token);return new _a450({front:propertyMap.front,back:propertyMap.back})}get front(){return this._sxFront?.value}set front(value){if(value===void 0){this._sxFront=void 0;return}this._sxFront=value instanceof Front?value:new Front(value)}get back(){return this._sxBack?.value}set back(value){if(value===void 0){this._sxBack=void 0;return}this._sxBack=value instanceof Back?value:new Back(value)}getChildren(){let children=[];return this._sxFront&&children.push(this._sxFront),this._sxBack&&children.push(this._sxBack),children}},__publicField(_a450,"token","plugging"),_a450);SxClass.register(Plugging);var _a451,SetupStringProperty=(_a451=class extends SingleValueProperty{},__publicField(_a451,"parentToken","setup"),_a451),_a452,SetupZone45Only=(_a452=class extends SetupStringProperty{constructor(){super(...arguments);__publicField(this,"token","zone_45_only")}},__publicField(_a452,"token","zone_45_only"),_a452);SxClass.register(SetupZone45Only);var _a453,SetupAllowSoldermaskBridgesInFootprints=(_a453=class extends SetupStringProperty{constructor(){super(...arguments);__publicField(this,"token","allow_soldermask_bridges_in_footprints")}},__publicField(_a453,"token","allow_soldermask_bridges_in_footprints"),_a453);SxClass.register(SetupAllowSoldermaskBridgesInFootprints);var _a454,SetupVisibleElements=(_a454=class extends SetupStringProperty{constructor(){super(...arguments);__publicField(this,"token","visible_elements")}},__publicField(_a454,"token","visible_elements"),_a454);SxClass.register(SetupVisibleElements);var _a455,SetupUviasAllowed=(_a455=class extends SetupStringProperty{constructor(){super(...arguments);__publicField(this,"token","uvias_allowed")}},__publicField(_a455,"token","uvias_allowed"),_a455);SxClass.register(SetupUviasAllowed);var _a456,SetupTenting=(_a456=class extends SxClass{constructor(sides=[]){super();__publicField(this,"token","tenting");__publicField(this,"_sides",[]);__publicField(this,"_sxFront");__publicField(this,"_sxBack");this.sides=sides}static fromSexprPrimitives(primitiveSexprs){if(primitiveSexprs.some(primitive=>Array.isArray(primitive))){let{propertyMap}=SxClass.parsePrimitivesToClassProperties(primitiveSexprs,this.token),tenting=new _a456;return tenting._sxFront=propertyMap.front,tenting._sxBack=propertyMap.back,tenting}let sides=primitiveSexprs.map(primitive=>toStringValue(primitive)).filter(value=>value!==void 0);return new _a456(sides)}get sides(){return[...this._sides]}set sides(sides){this._sides=sides.map(side=>String(side))}getChildren(){let children=[];return this._sxFront&&children.push(this._sxFront),this._sxBack&&children.push(this._sxBack),children}getString(){return this._sxFront||this._sxBack?super.getString():this._sides.length===0?"(tenting)":`(tenting ${this._sides.join(" ")})`}},__publicField(_a456,"token","tenting"),__publicField(_a456,"parentToken","setup"),_a456);SxClass.register(SetupTenting);var _a457,SetupNumericListProperty=(_a457=class extends NumericListProperty{},__publicField(_a457,"parentToken","setup"),_a457),_a458,SetupCoordinateProperty=(_a458=class extends CoordinateProperty{},__publicField(_a458,"parentToken","setup"),_a458),_a459,SetupPcbTextSize=(_a459=class extends SetupNumericListProperty{constructor(){super(...arguments);__publicField(this,"token","pcb_text_size")}},__publicField(_a459,"token","pcb_text_size"),_a459);SxClass.register(SetupPcbTextSize);var _a460,SetupModTextSize=(_a460=class extends SetupNumericListProperty{constructor(){super(...arguments);__publicField(this,"token","mod_text_size")}},__publicField(_a460,"token","mod_text_size"),_a460);SxClass.register(SetupModTextSize);var _a461,SetupPadSize=(_a461=class extends SetupNumericListProperty{constructor(){super(...arguments);__publicField(this,"token","pad_size")}},__publicField(_a461,"token","pad_size"),_a461);SxClass.register(SetupPadSize);var _a462,SetupPadToPasteClearanceValues=(_a462=class extends SetupNumericListProperty{constructor(){super(...arguments);__publicField(this,"token","pad_to_paste_clearance_values")}},__publicField(_a462,"token","pad_to_paste_clearance_values"),_a462);SxClass.register(SetupPadToPasteClearanceValues);var _a463,SetupTraceWidth=(_a463=class extends SetupNumericListProperty{constructor(){super(...arguments);__publicField(this,"token","trace_width")}},__publicField(_a463,"token","trace_width"),_a463);SxClass.register(SetupTraceWidth);var _a464,SetupAuxAxisOrigin=(_a464=class extends SetupCoordinateProperty{constructor(){super(...arguments);__publicField(this,"token","aux_axis_origin")}},__publicField(_a464,"token","aux_axis_origin"),_a464);SxClass.register(SetupAuxAxisOrigin);var _a465,SetupGridOrigin=(_a465=class extends SetupCoordinateProperty{constructor(){super(...arguments);__publicField(this,"token","grid_origin")}},__publicField(_a465,"token","grid_origin"),_a465);SxClass.register(SetupGridOrigin);var _a466,SetupNumberProperty=(_a466=class extends SingleValueProperty{static parsePrimitiveValue(value){let parsed=toNumberValue(value);if(parsed===void 0)throw new Error(`${this.name} expects a numeric value`);return parsed}},__publicField(_a466,"parentToken","setup"),_a466),_a467,SetupPadToMaskClearance=(_a467=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","pad_to_mask_clearance")}},__publicField(_a467,"token","pad_to_mask_clearance"),_a467);SxClass.register(SetupPadToMaskClearance);var _a468,SetupSolderMaskMinWidth=(_a468=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","solder_mask_min_width")}},__publicField(_a468,"token","solder_mask_min_width"),_a468);SxClass.register(SetupSolderMaskMinWidth);var _a469,SetupPadToPasteClearance=(_a469=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","pad_to_paste_clearance")}},__publicField(_a469,"token","pad_to_paste_clearance"),_a469);SxClass.register(SetupPadToPasteClearance);var _a470,SetupPadToPasteClearanceRatio=(_a470=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","pad_to_paste_clearance_ratio")}},__publicField(_a470,"token","pad_to_paste_clearance_ratio"),_a470);SxClass.register(SetupPadToPasteClearanceRatio);var _a471,SetupLastTraceWidth=(_a471=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","last_trace_width")}},__publicField(_a471,"token","last_trace_width"),_a471);SxClass.register(SetupLastTraceWidth);var _a472,SetupTraceClearance=(_a472=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","trace_clearance")}},__publicField(_a472,"token","trace_clearance"),_a472);SxClass.register(SetupTraceClearance);var _a473,SetupZoneClearance=(_a473=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","zone_clearance")}},__publicField(_a473,"token","zone_clearance"),_a473);SxClass.register(SetupZoneClearance);var _a474,SetupTraceMin=(_a474=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","trace_min")}},__publicField(_a474,"token","trace_min"),_a474);SxClass.register(SetupTraceMin);var _a475,SetupSegmentWidth=(_a475=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","segment_width")}},__publicField(_a475,"token","segment_width"),_a475);SxClass.register(SetupSegmentWidth);var _a476,SetupEdgeWidth=(_a476=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","edge_width")}},__publicField(_a476,"token","edge_width"),_a476);SxClass.register(SetupEdgeWidth);var _a477,SetupViaSize=(_a477=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","via_size")}},__publicField(_a477,"token","via_size"),_a477);SxClass.register(SetupViaSize);var _a478,SetupViaDrill=(_a478=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","via_drill")}},__publicField(_a478,"token","via_drill"),_a478);SxClass.register(SetupViaDrill);var _a479,SetupViaMinSize=(_a479=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","via_min_size")}},__publicField(_a479,"token","via_min_size"),_a479);SxClass.register(SetupViaMinSize);var _a480,SetupViaMinDrill=(_a480=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","via_min_drill")}},__publicField(_a480,"token","via_min_drill"),_a480);SxClass.register(SetupViaMinDrill);var _a481,SetupUviaSize=(_a481=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","uvia_size")}},__publicField(_a481,"token","uvia_size"),_a481);SxClass.register(SetupUviaSize);var _a482,SetupUviaDrill=(_a482=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","uvia_drill")}},__publicField(_a482,"token","uvia_drill"),_a482);SxClass.register(SetupUviaDrill);var _a483,SetupUviaMinSize=(_a483=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","uvia_min_size")}},__publicField(_a483,"token","uvia_min_size"),_a483);SxClass.register(SetupUviaMinSize);var _a484,SetupUviaMinDrill=(_a484=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","uvia_min_drill")}},__publicField(_a484,"token","uvia_min_drill"),_a484);SxClass.register(SetupUviaMinDrill);var _a485,SetupPcbTextWidth=(_a485=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","pcb_text_width")}},__publicField(_a485,"token","pcb_text_width"),_a485);SxClass.register(SetupPcbTextWidth);var _a486,SetupModEdgeWidth=(_a486=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","mod_edge_width")}},__publicField(_a486,"token","mod_edge_width"),_a486);SxClass.register(SetupModEdgeWidth);var _a487,SetupModTextWidth=(_a487=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","mod_text_width")}},__publicField(_a487,"token","mod_text_width"),_a487);SxClass.register(SetupModTextWidth);var _a488,SetupPadDrill=(_a488=class extends SetupNumberProperty{constructor(){super(...arguments);__publicField(this,"token","pad_drill")}},__publicField(_a488,"token","pad_drill"),_a488);SxClass.register(SetupPadDrill);var _a489,StackupSingleValueProperty=(_a489=class extends SingleValueProperty{},__publicField(_a489,"parentToken","stackup"),_a489),_a490,StackupCopperFinish=(_a490=class extends StackupSingleValueProperty{constructor(){super(...arguments);__publicField(this,"token","copper_finish");__publicField(this,"quoteStringValue",!0)}},__publicField(_a490,"token","copper_finish"),_a490);SxClass.register(StackupCopperFinish);var _a491,StackupDielectricConstraints=(_a491=class extends StackupSingleValueProperty{constructor(){super(...arguments);__publicField(this,"token","dielectric_constraints")}},__publicField(_a491,"token","dielectric_constraints"),_a491);SxClass.register(StackupDielectricConstraints);var _a492,StackupEdgeConnector=(_a492=class extends StackupSingleValueProperty{constructor(){super(...arguments);__publicField(this,"token","edge_connector")}},__publicField(_a492,"token","edge_connector"),_a492);SxClass.register(StackupEdgeConnector);var _a493,StackupCastellatedPads=(_a493=class extends StackupSingleValueProperty{constructor(){super(...arguments);__publicField(this,"token","castellated_pads")}},__publicField(_a493,"token","castellated_pads"),_a493);SxClass.register(StackupCastellatedPads);var _a494,StackupEdgePlating=(_a494=class extends StackupSingleValueProperty{constructor(){super(...arguments);__publicField(this,"token","edge_plating")}},__publicField(_a494,"token","edge_plating"),_a494);SxClass.register(StackupEdgePlating);var _a495,StackupLayerProperty=(_a495=class extends SingleValueProperty{},__publicField(_a495,"parentToken","layer"),_a495),_a496,StackupLayerType=(_a496=class extends StackupLayerProperty{constructor(){super(...arguments);__publicField(this,"token","type");__publicField(this,"quoteStringValue",!0)}},__publicField(_a496,"token","type"),_a496);SxClass.register(StackupLayerType);var _a497,StackupLayerColor=(_a497=class extends StackupLayerProperty{constructor(){super(...arguments);__publicField(this,"token","color");__publicField(this,"quoteStringValue",!0)}},__publicField(_a497,"token","color"),_a497);SxClass.register(StackupLayerColor);var _a498,StackupLayerThickness=(_a498=class extends StackupLayerProperty{constructor(){super(...arguments);__publicField(this,"token","thickness")}static parsePrimitiveValue(value){let parsed=toNumberValue(value);if(parsed===void 0)throw new Error("Stackup layer thickness expects a numeric value");return parsed}},__publicField(_a498,"token","thickness"),_a498);SxClass.register(StackupLayerThickness);var _a499,StackupLayerMaterial=(_a499=class extends StackupLayerProperty{constructor(){super(...arguments);__publicField(this,"token","material");__publicField(this,"quoteStringValue",!0)}},__publicField(_a499,"token","material"),_a499);SxClass.register(StackupLayerMaterial);var _a500,StackupLayerEpsilonR=(_a500=class extends StackupLayerProperty{constructor(){super(...arguments);__publicField(this,"token","epsilon_r")}static parsePrimitiveValue(value){let parsed=toNumberValue(value);if(parsed===void 0)throw new Error("Stackup layer epsilon_r expects a numeric value");return parsed}},__publicField(_a500,"token","epsilon_r"),_a500);SxClass.register(StackupLayerEpsilonR);var _a501,StackupLayerLossTangent=(_a501=class extends StackupLayerProperty{constructor(){super(...arguments);__publicField(this,"token","loss_tangent")}static parsePrimitiveValue(value){let parsed=toNumberValue(value);if(parsed===void 0)throw new Error("Stackup layer loss_tangent expects a numeric value");return parsed}},__publicField(_a501,"token","loss_tangent"),_a501);SxClass.register(StackupLayerLossTangent);var _a502,StackupLayer=(_a502=class extends SxClass{constructor(name,opts={}){super();__publicField(this,"token","layer");__publicField(this,"_name");__publicField(this,"_number");__publicField(this,"_sxType");__publicField(this,"_sxColor");__publicField(this,"_sxThickness");__publicField(this,"_sxMaterial");__publicField(this,"_sxEpsilonR");__publicField(this,"_sxLossTangent");this._name=name,this._number=opts.number,this._sxType=opts.type,this._sxColor=opts.color,this._sxThickness=opts.thickness,this._sxMaterial=opts.material,this._sxEpsilonR=opts.epsilonR,this._sxLossTangent=opts.lossTangent}static fromSexprPrimitives(primitiveSexprs){if(primitiveSexprs.length===0)throw new Error("Stackup layer requires at least a name");let name=toStringValue(primitiveSexprs[0]);if(name===void 0)throw new Error("Stackup layer name must be a string");let propertyIndex=1,number,maybeNumber2=primitiveSexprs[propertyIndex],numericLayerNumber=toNumberValue(maybeNumber2);numericLayerNumber!==void 0&&(number=numericLayerNumber,propertyIndex+=1);let propertyPrimitives=primitiveSexprs.slice(propertyIndex),{propertyMap}=SxClass.parsePrimitivesToClassProperties(propertyPrimitives,this.token);return new _a502(name,{number,type:propertyMap.type,color:propertyMap.color,thickness:propertyMap.thickness,material:propertyMap.material,epsilonR:propertyMap.epsilon_r,lossTangent:propertyMap.loss_tangent})}get name(){return this._name}set name(value){let parsed=toStringValue(value);if(parsed===void 0)throw new Error("Stackup layer name must be a string");this._name=parsed}get number(){return this._number}set number(value){if(value===void 0){this._number=void 0;return}let parsed=toNumberValue(value);if(parsed===void 0)throw new Error("Stackup layer number must be numeric");this._number=parsed}get type(){return this._sxType?.value}set type(value){if(value===void 0){this._sxType=void 0;return}this._sxType=value instanceof StackupLayerType?value:new StackupLayerType(value)}get color(){return this._sxColor?.value}set color(value){if(value===void 0){this._sxColor=void 0;return}this._sxColor=value instanceof StackupLayerColor?value:new StackupLayerColor(value)}get thickness(){return this._sxThickness?.value}set thickness(value){if(value===void 0){this._sxThickness=void 0;return}this._sxThickness=value instanceof StackupLayerThickness?value:new StackupLayerThickness(value)}get material(){return this._sxMaterial?.value}set material(value){if(value===void 0){this._sxMaterial=void 0;return}this._sxMaterial=value instanceof StackupLayerMaterial?value:new StackupLayerMaterial(value)}get epsilonR(){return this._sxEpsilonR?.value}set epsilonR(value){if(value===void 0){this._sxEpsilonR=void 0;return}this._sxEpsilonR=value instanceof StackupLayerEpsilonR?value:new StackupLayerEpsilonR(value)}get lossTangent(){return this._sxLossTangent?.value}set lossTangent(value){if(value===void 0){this._sxLossTangent=void 0;return}this._sxLossTangent=value instanceof StackupLayerLossTangent?value:new StackupLayerLossTangent(value)}getChildren(){let children=[];return this._sxType&&children.push(this._sxType),this._sxColor&&children.push(this._sxColor),this._sxThickness&&children.push(this._sxThickness),this._sxMaterial&&children.push(this._sxMaterial),this._sxEpsilonR&&children.push(this._sxEpsilonR),this._sxLossTangent&&children.push(this._sxLossTangent),children}getString(){let header=`(layer ${quoteSExprString(this._name)}${this._number!==void 0?` ${this._number}`:""}`,children=this.getChildren();if(children.length===0)return`${header})`;let lines=[header];for(let child of children)lines.push(child.getStringIndented());return lines.push(")"),lines.join(`
|
|
802
802
|
`)}},__publicField(_a502,"token","layer"),__publicField(_a502,"parentToken","stackup"),_a502);SxClass.register(StackupLayer);var _a503,Stackup=(_a503=class extends SxClass{constructor(opts={}){super();__publicField(this,"token","stackup");__publicField(this,"_layers",[]);__publicField(this,"_sxCopperFinish");__publicField(this,"_sxDielectricConstraints");__publicField(this,"_sxEdgeConnector");__publicField(this,"_sxCastellatedPads");__publicField(this,"_sxEdgePlating");this.layers=opts.layers??[],this._sxCopperFinish=opts.copperFinish,this._sxDielectricConstraints=opts.dielectricConstraints,this._sxEdgeConnector=opts.edgeConnector,this._sxCastellatedPads=opts.castellatedPads,this._sxEdgePlating=opts.edgePlating}static fromSexprPrimitives(primitiveSexprs){let{propertyMap,arrayPropertyMap}=SxClass.parsePrimitivesToClassProperties(primitiveSexprs,this.token);return new _a503({layers:arrayPropertyMap.layer??[],copperFinish:propertyMap.copper_finish,dielectricConstraints:propertyMap.dielectric_constraints,edgeConnector:propertyMap.edge_connector,castellatedPads:propertyMap.castellated_pads,edgePlating:propertyMap.edge_plating})}get layers(){return[...this._layers]}set layers(layers){this._layers=layers.map(layer=>{if(!(layer instanceof StackupLayer))throw new Error("Stackup layers must be StackupLayer instances");return layer})}get copperFinish(){return this._sxCopperFinish?.value}set copperFinish(value){this._sxCopperFinish=value?new StackupCopperFinish(value):void 0}get dielectricConstraints(){return this._sxDielectricConstraints?.value}set dielectricConstraints(value){this._sxDielectricConstraints=value?new StackupDielectricConstraints(value):void 0}get edgeConnector(){return this._sxEdgeConnector?.value}set edgeConnector(value){this._sxEdgeConnector=value?new StackupEdgeConnector(value):void 0}get castellatedPads(){return this._sxCastellatedPads?.value}set castellatedPads(value){this._sxCastellatedPads=value?new StackupCastellatedPads(value):void 0}get edgePlating(){return this._sxEdgePlating?.value}set edgePlating(value){this._sxEdgePlating=value?new StackupEdgePlating(value):void 0}getChildren(){let children=[...this._layers],optionalChildren=[this._sxCopperFinish,this._sxDielectricConstraints,this._sxEdgeConnector,this._sxCastellatedPads,this._sxEdgePlating];for(let child of optionalChildren)child&&children.push(child);return children}},__publicField(_a503,"token","stackup"),__publicField(_a503,"parentToken","setup"),_a503);SxClass.register(Stackup);var TOKEN_TO_KEY2={stackup:"stackup",pcbplotparams:"pcbPlotParams",pad_to_mask_clearance:"padToMaskClearance",solder_mask_min_width:"solderMaskMinWidth",pad_to_paste_clearance:"padToPasteClearance",pad_to_paste_clearance_ratio:"padToPasteClearanceRatio",last_trace_width:"lastTraceWidth",trace_clearance:"traceClearance",zone_clearance:"zoneClearance",zone_45_only:"zone45Only",trace_min:"traceMin",segment_width:"segmentWidth",edge_width:"edgeWidth",via_size:"viaSize",via_drill:"viaDrill",via_min_size:"viaMinSize",via_min_drill:"viaMinDrill",uvias_allowed:"uviasAllowed",uvia_size:"uviaSize",uvia_drill:"uviaDrill",uvia_min_size:"uviaMinSize",uvia_min_drill:"uviaMinDrill",pcb_text_width:"pcbTextWidth",pcb_text_size:"pcbTextSize",mod_edge_width:"modEdgeWidth",mod_text_size:"modTextSize",mod_text_width:"modTextWidth",pad_size:"padSize",pad_drill:"padDrill",allow_soldermask_bridges_in_footprints:"allowSoldermaskBridgesInFootprints",tenting:"tenting",covering:"covering",plugging:"plugging",capping:"capping",filling:"filling",aux_axis_origin:"auxAxisOrigin",grid_origin:"gridOrigin",visible_elements:"visibleElements",pad_to_paste_clearance_values:"padToPasteClearanceValues",trace_width:"traceWidth"},SETUP_CHILD_ORDER=["stackup","padToMaskClearance","solderMaskMinWidth","padToPasteClearance","padToPasteClearanceRatio","lastTraceWidth","traceClearance","zoneClearance","zone45Only","traceMin","segmentWidth","edgeWidth","viaSize","viaDrill","viaMinSize","viaMinDrill","uviaSize","uviaDrill","uviasAllowed","uviaMinSize","uviaMinDrill","pcbTextWidth","pcbTextSize","modEdgeWidth","modTextSize","modTextWidth","padSize","padDrill","allowSoldermaskBridgesInFootprints","tenting","covering","plugging","capping","filling","auxAxisOrigin","gridOrigin","visibleElements","padToPasteClearanceValues","traceWidth","pcbPlotParams"],_a504,Setup=(_a504=class extends SxClass{constructor(){super(...arguments);__publicField(this,"token","setup");__publicField(this,"_properties",{})}static fromSexprPrimitives(primitiveSexprs){let setup=new _a504,{propertyMap}=SxClass.parsePrimitivesToClassProperties(primitiveSexprs,this.token);for(let[token,instance]of Object.entries(propertyMap)){let key=TOKEN_TO_KEY2[token];if(!key)throw new Error(`Unsupported setup property token: ${token}`);setup._properties[key]=instance}return setup}getChildren(){let children=[];for(let key of SETUP_CHILD_ORDER){let child=this._properties[key];child&&children.push(child)}return children}setProperty(key,instance){if(instance){this._properties[key]=instance;return}delete this._properties[key]}setNumberProperty(key,value,ClassRef){if(value===void 0){delete this._properties[key];return}this._properties[key]=new ClassRef(value)}getPropertyInstance(key,ClassRef){let value=this._properties[key];return value instanceof ClassRef?value:void 0}get stackup(){return this.getPropertyInstance("stackup",Stackup)}set stackup(value){if(value!==void 0&&!(value instanceof Stackup))throw new Error("stackup must be a Stackup instance");this.setProperty("stackup",value)}get pcbPlotParams(){return this.getPropertyInstance("pcbPlotParams",PcbPlotParams)}set pcbPlotParams(value){if(value!==void 0&&!(value instanceof PcbPlotParams))throw new Error("pcbPlotParams must be a PcbPlotParams instance");this.setProperty("pcbPlotParams",value)}get padToMaskClearance(){return this.getPropertyInstance("padToMaskClearance",SetupPadToMaskClearance)?.value}set padToMaskClearance(value){this.setNumberProperty("padToMaskClearance",value,SetupPadToMaskClearance)}get solderMaskMinWidth(){return this.getPropertyInstance("solderMaskMinWidth",SetupSolderMaskMinWidth)?.value}set solderMaskMinWidth(value){this.setNumberProperty("solderMaskMinWidth",value,SetupSolderMaskMinWidth)}get padToPasteClearance(){return this.getPropertyInstance("padToPasteClearance",SetupPadToPasteClearance)?.value}set padToPasteClearance(value){this.setNumberProperty("padToPasteClearance",value,SetupPadToPasteClearance)}get padToPasteClearanceRatio(){return this.getPropertyInstance("padToPasteClearanceRatio",SetupPadToPasteClearanceRatio)?.value}set padToPasteClearanceRatio(value){this.setNumberProperty("padToPasteClearanceRatio",value,SetupPadToPasteClearanceRatio)}get lastTraceWidth(){return this.getPropertyInstance("lastTraceWidth",SetupLastTraceWidth)?.value}set lastTraceWidth(value){this.setNumberProperty("lastTraceWidth",value,SetupLastTraceWidth)}get traceClearance(){return this.getPropertyInstance("traceClearance",SetupTraceClearance)?.value}set traceClearance(value){this.setNumberProperty("traceClearance",value,SetupTraceClearance)}get zoneClearance(){return this.getPropertyInstance("zoneClearance",SetupZoneClearance)?.value}set zoneClearance(value){this.setNumberProperty("zoneClearance",value,SetupZoneClearance)}get zone45Only(){return this.getPropertyInstance("zone45Only",SetupZone45Only)?.value}set zone45Only(value){this.setProperty("zone45Only",value===void 0?void 0:new SetupZone45Only(value))}get traceMin(){return this.getPropertyInstance("traceMin",SetupTraceMin)?.value}set traceMin(value){this.setNumberProperty("traceMin",value,SetupTraceMin)}get segmentWidth(){return this.getPropertyInstance("segmentWidth",SetupSegmentWidth)?.value}set segmentWidth(value){this.setNumberProperty("segmentWidth",value,SetupSegmentWidth)}get edgeWidth(){return this.getPropertyInstance("edgeWidth",SetupEdgeWidth)?.value}set edgeWidth(value){this.setNumberProperty("edgeWidth",value,SetupEdgeWidth)}get viaSize(){return this.getPropertyInstance("viaSize",SetupViaSize)?.value}set viaSize(value){this.setNumberProperty("viaSize",value,SetupViaSize)}get viaDrill(){return this.getPropertyInstance("viaDrill",SetupViaDrill)?.value}set viaDrill(value){this.setNumberProperty("viaDrill",value,SetupViaDrill)}get viaMinSize(){return this.getPropertyInstance("viaMinSize",SetupViaMinSize)?.value}set viaMinSize(value){this.setNumberProperty("viaMinSize",value,SetupViaMinSize)}get viaMinDrill(){return this.getPropertyInstance("viaMinDrill",SetupViaMinDrill)?.value}set viaMinDrill(value){this.setNumberProperty("viaMinDrill",value,SetupViaMinDrill)}get uviasAllowed(){return this.getPropertyInstance("uviasAllowed",SetupUviasAllowed)?.value}set uviasAllowed(value){this.setProperty("uviasAllowed",value===void 0?void 0:new SetupUviasAllowed(value))}get uviaSize(){return this.getPropertyInstance("uviaSize",SetupUviaSize)?.value}set uviaSize(value){this.setNumberProperty("uviaSize",value,SetupUviaSize)}get uviaDrill(){return this.getPropertyInstance("uviaDrill",SetupUviaDrill)?.value}set uviaDrill(value){this.setNumberProperty("uviaDrill",value,SetupUviaDrill)}get uviaMinSize(){return this.getPropertyInstance("uviaMinSize",SetupUviaMinSize)?.value}set uviaMinSize(value){this.setNumberProperty("uviaMinSize",value,SetupUviaMinSize)}get uviaMinDrill(){return this.getPropertyInstance("uviaMinDrill",SetupUviaMinDrill)?.value}set uviaMinDrill(value){this.setNumberProperty("uviaMinDrill",value,SetupUviaMinDrill)}get pcbTextWidth(){return this.getPropertyInstance("pcbTextWidth",SetupPcbTextWidth)?.value}set pcbTextWidth(value){this.setNumberProperty("pcbTextWidth",value,SetupPcbTextWidth)}get pcbTextSize(){return this.getPropertyInstance("pcbTextSize",SetupPcbTextSize)?.values}set pcbTextSize(values){if(values===void 0){delete this._properties.pcbTextSize;return}this.setProperty("pcbTextSize",new SetupPcbTextSize(values))}get modEdgeWidth(){return this.getPropertyInstance("modEdgeWidth",SetupModEdgeWidth)?.value}set modEdgeWidth(value){this.setNumberProperty("modEdgeWidth",value,SetupModEdgeWidth)}get modTextSize(){return this.getPropertyInstance("modTextSize",SetupModTextSize)?.values}set modTextSize(values){if(values===void 0){delete this._properties.modTextSize;return}this.setProperty("modTextSize",new SetupModTextSize(values))}get modTextWidth(){return this.getPropertyInstance("modTextWidth",SetupModTextWidth)?.value}set modTextWidth(value){this.setNumberProperty("modTextWidth",value,SetupModTextWidth)}get padSize(){return this.getPropertyInstance("padSize",SetupPadSize)?.values}set padSize(values){if(values===void 0){delete this._properties.padSize;return}this.setProperty("padSize",new SetupPadSize(values))}get padDrill(){return this.getPropertyInstance("padDrill",SetupPadDrill)?.value}set padDrill(value){this.setNumberProperty("padDrill",value,SetupPadDrill)}get allowSoldermaskBridgesInFootprints(){return this.getPropertyInstance("allowSoldermaskBridgesInFootprints",SetupAllowSoldermaskBridgesInFootprints)?.value}set allowSoldermaskBridgesInFootprints(value){this.setProperty("allowSoldermaskBridgesInFootprints",value===void 0?void 0:new SetupAllowSoldermaskBridgesInFootprints(value))}get tenting(){return this.getPropertyInstance("tenting",SetupTenting)?.sides}set tenting(sides){if(sides===void 0){delete this._properties.tenting;return}this.setProperty("tenting",new SetupTenting(sides))}get covering(){return this.getPropertyInstance("covering",Covering)}set covering(value){this.setProperty("covering",value)}get plugging(){return this.getPropertyInstance("plugging",Plugging)}set plugging(value){this.setProperty("plugging",value)}get capping(){return this.getPropertyInstance("capping",Capping)?.value}set capping(value){this.setProperty("capping",value===void 0?void 0:new Capping(value))}get filling(){return this.getPropertyInstance("filling",Filling)?.value}set filling(value){this.setProperty("filling",value===void 0?void 0:new Filling(value))}get auxAxisOrigin(){let origin=this.getPropertyInstance("auxAxisOrigin",SetupAuxAxisOrigin);if(origin)return{x:origin.x,y:origin.y}}set auxAxisOrigin(origin){if(!origin){delete this._properties.auxAxisOrigin;return}this.setProperty("auxAxisOrigin",new SetupAuxAxisOrigin(origin.x,origin.y))}get gridOrigin(){let origin=this.getPropertyInstance("gridOrigin",SetupGridOrigin);if(origin)return{x:origin.x,y:origin.y}}set gridOrigin(origin){if(!origin){delete this._properties.gridOrigin;return}this.setProperty("gridOrigin",new SetupGridOrigin(origin.x,origin.y))}get visibleElements(){return this.getPropertyInstance("visibleElements",SetupVisibleElements)?.value}set visibleElements(value){this.setProperty("visibleElements",value===void 0?void 0:new SetupVisibleElements(value))}get padToPasteClearanceValues(){return this.getPropertyInstance("padToPasteClearanceValues",SetupPadToPasteClearanceValues)?.values}set padToPasteClearanceValues(values){if(values===void 0){delete this._properties.padToPasteClearanceValues;return}this.setProperty("padToPasteClearanceValues",new SetupPadToPasteClearanceValues(values))}get traceWidth(){return this.getPropertyInstance("traceWidth",SetupTraceWidth)?.values}set traceWidth(values){if(values===void 0){delete this._properties.traceWidth;return}this.setProperty("traceWidth",new SetupTraceWidth(values))}},__publicField(_a504,"token","setup"),_a504);SxClass.register(Setup);var _a505,PcbGeneralThickness=(_a505=class extends SxPrimitiveNumber{constructor(){super(...arguments);__publicField(this,"token","thickness")}},__publicField(_a505,"token","thickness"),__publicField(_a505,"parentToken","general"),_a505);SxClass.register(PcbGeneralThickness);var _a506,PcbGeneralLegacyTeardrops=(_a506=class extends SxClass{constructor(enabled){super();__publicField(this,"token","legacy_teardrops");__publicField(this,"_enabled");this._enabled=enabled}static fromSexprPrimitives(primitiveSexprs){let value=toStringValue(primitiveSexprs[0]);if(value===void 0)throw new Error("legacy_teardrops expects a string value");let enabled=/^(yes|true)$/iu.test(value);return new _a506(enabled)}get enabled(){return this._enabled}set enabled(value){this._enabled=value}getChildren(){return[]}getString(){return`(legacy_teardrops ${this._enabled?"yes":"no"})`}},__publicField(_a506,"token","legacy_teardrops"),__publicField(_a506,"parentToken","general"),_a506);SxClass.register(PcbGeneralLegacyTeardrops);var SINGLE_TOKENS6=new Set(["thickness","legacy_teardrops"]),_a507,PcbGeneral=(_a507=class extends SxClass{constructor(){super(...arguments);__publicField(this,"token","general");__publicField(this,"_sxThickness");__publicField(this,"_sxLegacyTeardrops")}static fromSexprPrimitives(primitiveSexprs){let general=new _a507,{propertyMap,arrayPropertyMap}=SxClass.parsePrimitivesToClassProperties(primitiveSexprs,this.token);for(let token of Object.keys(propertyMap))if(!SINGLE_TOKENS6.has(token))throw new Error(`general encountered unsupported child token "${token}"`);for(let[token,entries]of Object.entries(arrayPropertyMap)){if(!SINGLE_TOKENS6.has(token))throw new Error(`general encountered unsupported child token "${token}"`);if(entries.length>1)throw new Error(`general encountered repeated child token "${token}"`)}return general._sxThickness=arrayPropertyMap.thickness?.[0]??propertyMap.thickness,general._sxLegacyTeardrops=arrayPropertyMap.legacy_teardrops?.[0]??propertyMap.legacy_teardrops,general}get thickness(){return this._sxThickness?.value}set thickness(value){this._sxThickness=value===void 0?void 0:new PcbGeneralThickness(value)}get legacyTeardrops(){return this._sxLegacyTeardrops?.enabled}set legacyTeardrops(value){if(value===void 0){this._sxLegacyTeardrops=void 0;return}this._sxLegacyTeardrops=new PcbGeneralLegacyTeardrops(value)}getChildren(){let children=[];return this._sxThickness&&children.push(this._sxThickness),this._sxLegacyTeardrops&&children.push(this._sxLegacyTeardrops),children}},__publicField(_a507,"token","general"),__publicField(_a507,"parentToken","kicad_pcb"),_a507);SxClass.register(PcbGeneral);var _a508,PcbLayerDefinition=(_a508=class extends SxClass{constructor(options){super();__publicField(this,"token","__pcb_layer_definition__");__publicField(this,"_index");__publicField(this,"_name");__publicField(this,"_type");__publicField(this,"_userName");this._index=options.index,this._name=options.name,this._type=options.type,this._userName=options.userName}static fromPrimitive(primitive){if(!Array.isArray(primitive)||primitive.length<3)throw new Error(`layers entry must be an array with at least index, name, and type: ${JSON.stringify(primitive)}`);let[rawIndex,rawName,rawType,rawUser]=primitive,index=toNumberValue(rawIndex),name=toStringValue(rawName),type=toStringValue(rawType),userName=rawUser===void 0?void 0:toStringValue(rawUser);if(index===void 0||name===void 0||type===void 0)throw new Error(`layers entry is missing required values: ${JSON.stringify(primitive)}`);return new _a508({index,name,type,userName})}get index(){return this._index}set index(value){this._index=value}get name(){return this._name}set name(value){this._name=value}get type(){return this._type}set type(value){this._type=value}get userName(){return this._userName}set userName(value){this._userName=value}getChildren(){return[]}getString(){if(this._index===void 0||this._name===void 0||this._type===void 0)return"()";let tokens=[String(this._index),quoteSExprString(this._name),this._type];return this._userName!==void 0&&tokens.push(quoteSExprString(this._userName)),`(${tokens.join(" ")})`}},__publicField(_a508,"token","__pcb_layer_definition__"),__publicField(_a508,"parentToken","layers"),_a508);SxClass.register(PcbLayerDefinition);var _a509,PcbLayers=(_a509=class extends SxClass{constructor(){super(...arguments);__publicField(this,"token","layers");__publicField(this,"_definitions",[])}static fromSexprPrimitives(primitiveSexprs){let layers=new _a509;return layers._definitions=primitiveSexprs.map(primitive=>PcbLayerDefinition.fromPrimitive(primitive)),layers}get definitions(){return[...this._definitions]}set definitions(value){this._definitions=[...value]}getChildren(){return[...this._definitions]}},__publicField(_a509,"token","layers"),__publicField(_a509,"parentToken","kicad_pcb"),_a509);SxClass.register(PcbLayers);var _a510,PcbNet=(_a510=class extends SxClass{constructor(id3,name){super();__publicField(this,"token","net");__publicField(this,"_id");__publicField(this,"_name");this._id=id3,this._name=name}static fromSexprPrimitives(primitiveSexprs){let id3=toNumberValue(primitiveSexprs[0]),name=toStringValue(primitiveSexprs[1]);if(id3===void 0||name===void 0)throw new Error("net requires numeric id and string name");return new _a510(id3,name)}get id(){return this._id}set id(value){this._id=value}get name(){return this._name}set name(value){this._name=value}getChildren(){return[]}getString(){return`(net ${this._id} ${quoteSExprString(this._name)})`}},__publicField(_a510,"token","net"),__publicField(_a510,"parentToken","kicad_pcb"),_a510);SxClass.register(PcbNet);var _a511,PcbVersion=(_a511=class extends SxPrimitiveNumber{constructor(){super(...arguments);__publicField(this,"token","version")}},__publicField(_a511,"token","version"),__publicField(_a511,"parentToken","kicad_pcb"),_a511);SxClass.register(PcbVersion);var isSymbol3=value=>/^[A-Za-z0-9._-]+$/.test(value),_a512,PcbGenerator=(_a512=class extends SxPrimitiveString{constructor(){super(...arguments);__publicField(this,"token","generator")}getString(){return`(generator ${isSymbol3(this.value)?this.value:quoteSExprString(this.value)})`}},__publicField(_a512,"token","generator"),__publicField(_a512,"parentToken","kicad_pcb"),_a512);SxClass.register(PcbGenerator);var isSymbol4=value=>/^[A-Za-z0-9._-]+$/.test(value),_a513,PcbGeneratorVersion=(_a513=class extends SxPrimitiveString{constructor(){super(...arguments);__publicField(this,"token","generator_version")}getString(){return`(generator_version ${isSymbol4(this.value)?this.value:quoteSExprString(this.value)})`}},__publicField(_a513,"token","generator_version"),__publicField(_a513,"parentToken","kicad_pcb"),_a513);SxClass.register(PcbGeneratorVersion);var _a514,ViaNet=(_a514=class extends SxClass{constructor(idOrName,name){super();__publicField(this,"token","net");__publicField(this,"_id");__publicField(this,"_name");if(typeof idOrName=="number"){this._id=idOrName,this._name=name;return}this._name=idOrName}static fromSexprPrimitives(primitiveSexprs){let id3=toNumberValue(primitiveSexprs[0]);if(id3!==void 0){let name2=primitiveSexprs.length>1?toStringValue(primitiveSexprs[1]):void 0;return new _a514(id3,name2)}let name=toStringValue(primitiveSexprs[0]);if(name===void 0)throw new Error("via net requires a numeric id or string name");return new _a514(name)}get id(){return this._id}set id(value){this._id=value}get name(){return this._name}set name(value){this._name=value}getChildren(){return[]}getString(){return this._id===void 0?`(net ${quoteSExprString(this._name??"")})`:this._name!==void 0?`(net ${this._id} ${quoteSExprString(this._name)})`:`(net ${this._id})`}},__publicField(_a514,"token","net"),__publicField(_a514,"parentToken","via"),_a514);SxClass.register(ViaNet);var BARE_FLAGS=new Set(["locked","free","remove_unused_layers","keep_end_layers"]),_a515,Via2=(_a515=class extends SxClass{constructor(params={}){super();__publicField(this,"token","via");__publicField(this,"_type");__publicField(this,"_locked",!1);__publicField(this,"_free",!1);__publicField(this,"_removeUnusedLayers",!1);__publicField(this,"_keepEndLayers",!1);__publicField(this,"_sxAt");__publicField(this,"_size");__publicField(this,"_drill");__publicField(this,"_sxLayers");__publicField(this,"_sxNet");__publicField(this,"_sxUuid");__publicField(this,"_sxTstamp");__publicField(this,"_sxTeardrops");__publicField(this,"_sxCapping");__publicField(this,"_sxCovering");__publicField(this,"_sxPlugging");__publicField(this,"_sxFilling");params.type!==void 0&&(this.type=params.type),params.locked!==void 0&&(this.locked=params.locked),params.free!==void 0&&(this.free=params.free),params.removeUnusedLayers!==void 0&&(this.removeUnusedLayers=params.removeUnusedLayers),params.keepEndLayers!==void 0&&(this.keepEndLayers=params.keepEndLayers),params.at!==void 0&&(this.at=params.at),params.size!==void 0&&(this.size=params.size),params.drill!==void 0&&(this.drill=params.drill),params.layers!==void 0&&(this.layers=params.layers),params.net!==void 0&&(this.net=params.net),params.uuid!==void 0&&(this.uuid=params.uuid),params.tstamp!==void 0&&(this.tstamp=params.tstamp),params.teardrops!==void 0&&(this.teardrops=params.teardrops),params.capping!==void 0&&(this.capping=params.capping),params.covering!==void 0&&(this.covering=params.covering),params.plugging!==void 0&&(this.plugging=params.plugging),params.filling!==void 0&&(this.filling=params.filling)}static fromSexprPrimitives(primitiveSexprs){let via=new _a515;for(let primitive of primitiveSexprs){if(typeof primitive=="string"){via.consumeBareToken(primitive);continue}if(!Array.isArray(primitive)||primitive.length===0)throw new Error(`via encountered unsupported primitive child: ${JSON.stringify(primitive)}`);let[token,...rest]=primitive;if(typeof token!="string")throw new Error(`via encountered child with non-string token: ${JSON.stringify(primitive)}`);via.consumeNode(token,rest)}return via}consumeBareToken(token){if(token==="blind"||token==="micro"){this._type=token;return}if(!BARE_FLAGS.has(token))throw new Error(`via encountered unsupported flag "${token}"`);switch(token){case"locked":this._locked=!0;break;case"free":this._free=!0;break;case"remove_unused_layers":this._removeUnusedLayers=!0;break;case"keep_end_layers":this._keepEndLayers=!0;break}}consumeNode(token,args){switch(token){case"type":{let value=toStringValue(args[0]);if(value===void 0)throw new Error("via type expects a string value");this._type=value;return}case"locked":this._locked=this.parseYesNo(args);return;case"free":this._free=this.parseYesNo(args);return;case"remove_unused_layers":this._removeUnusedLayers=this.parseYesNo(args);return;case"keep_end_layers":this._keepEndLayers=this.parseYesNo(args);return;case"at":{let parsed=SxClass.parsePrimitiveSexpr(["at",...args],{parentToken:this.token});if(!(parsed instanceof At2))throw new Error("via failed to parse at child");this._sxAt=parsed;return}case"size":{let value=toNumberValue(args[0]);if(value===void 0)throw new Error("via size expects a numeric value");this._size=value;return}case"drill":{let value=toNumberValue(args[0]);if(value===void 0)throw new Error("via drill expects a numeric value");this._drill=value;return}case"layers":{this._sxLayers=Layers.fromSexprPrimitives(args);return}case"net":{this._sxNet=ViaNet.fromSexprPrimitives(args);return}case"teardrops":{this._sxTeardrops=PadTeardrops.fromSexprPrimitives(args);return}case"capping":{let parsed=SxClass.parsePrimitiveSexpr(["capping",...args],{parentToken:this.token});if(!(parsed instanceof Capping))throw new Error("via failed to parse capping child");this._sxCapping=parsed;return}case"covering":{let parsed=SxClass.parsePrimitiveSexpr(["covering",...args],{parentToken:this.token});if(!(parsed instanceof Covering))throw new Error("via failed to parse covering child");this._sxCovering=parsed;return}case"plugging":{let parsed=SxClass.parsePrimitiveSexpr(["plugging",...args],{parentToken:this.token});if(!(parsed instanceof Plugging))throw new Error("via failed to parse plugging child");this._sxPlugging=parsed;return}case"filling":{let parsed=SxClass.parsePrimitiveSexpr(["filling",...args],{parentToken:this.token});if(!(parsed instanceof Filling))throw new Error("via failed to parse filling child");this._sxFilling=parsed;return}case"uuid":{let value=toStringValue(args[0]);if(value===void 0)throw new Error("via uuid expects a string value");this._sxUuid=new Uuid(value);return}case"tstamp":{let value=toStringValue(args[0]);if(value===void 0)throw new Error("via tstamp expects a string value");this._sxTstamp=new Tstamp(value);return}default:throw new Error(`via encountered unsupported child token "${token}"`)}}parseYesNo(args){if(args.length===0)return!0;let value=toStringValue(args[0]);if(value===void 0)throw new Error("Expected string when parsing via boolean child");return/^(yes|true)$/iu.test(value)}get type(){return this._type}set type(value){this._type=value}get locked(){return this._locked}set locked(value){this._locked=value}get free(){return this._free}set free(value){this._free=value}get removeUnusedLayers(){return this._removeUnusedLayers}set removeUnusedLayers(value){this._removeUnusedLayers=value}get keepEndLayers(){return this._keepEndLayers}set keepEndLayers(value){this._keepEndLayers=value}get at(){return this._sxAt}set at(value){this._sxAt=value!==void 0?At2.from(value):void 0}get size(){return this._size}set size(value){this._size=value}get drill(){return this._drill}set drill(value){this._drill=value}get layers(){return this._sxLayers}set layers(value){if(value===void 0){this._sxLayers=void 0;return}this._sxLayers=value instanceof Layers?value:new Layers(value)}get net(){return this._sxNet}set net(value){this._sxNet=value}get uuid(){return this._sxUuid}set uuid(value){if(value===void 0){this._sxUuid=void 0;return}this._sxUuid=value instanceof Uuid?value:new Uuid(value)}get teardrops(){return this._sxTeardrops}set teardrops(value){this._sxTeardrops=value}get capping(){return this._sxCapping?.value}set capping(value){if(value===void 0){this._sxCapping=void 0;return}this._sxCapping=value instanceof Capping?value:new Capping(value)}get covering(){return this._sxCovering}set covering(value){this._sxCovering=value}get plugging(){return this._sxPlugging}set plugging(value){this._sxPlugging=value}get filling(){return this._sxFilling?.value}set filling(value){if(value===void 0){this._sxFilling=void 0;return}this._sxFilling=value instanceof Filling?value:new Filling(value)}get tstamp(){return this._sxTstamp}set tstamp(value){if(value===void 0){this._sxTstamp=void 0;return}this._sxTstamp=value instanceof Tstamp?value:new Tstamp(value)}getChildren(){let children=[];return this._sxAt&&children.push(this._sxAt),this._sxLayers&&children.push(this._sxLayers),this._sxCapping&&children.push(this._sxCapping),this._sxCovering&&children.push(this._sxCovering),this._sxPlugging&&children.push(this._sxPlugging),this._sxFilling&&children.push(this._sxFilling),this._sxNet&&children.push(this._sxNet),this._sxUuid&&children.push(this._sxUuid),this._sxTstamp&&children.push(this._sxTstamp),this._sxTeardrops&&children.push(this._sxTeardrops),children}getString(){let lines=["(via"];return this._type!==void 0&&lines.push(` (type ${this._type})`),this._locked&&lines.push(" (locked)"),this._free&&lines.push(" (free)"),this._removeUnusedLayers&&lines.push(" (remove_unused_layers)"),this._keepEndLayers&&lines.push(" (keep_end_layers)"),this._sxAt&&lines.push(this._sxAt.getStringIndented()),this._size!==void 0&&lines.push(` (size ${this._size})`),this._drill!==void 0&&lines.push(` (drill ${this._drill})`),this._sxLayers&&lines.push(this._sxLayers.getStringIndented()),this._sxCapping&&lines.push(this._sxCapping.getStringIndented()),this._sxCovering&&lines.push(this._sxCovering.getStringIndented()),this._sxPlugging&&lines.push(this._sxPlugging.getStringIndented()),this._sxFilling&&lines.push(this._sxFilling.getStringIndented()),this._sxNet&&lines.push(this._sxNet.getStringIndented()),this._sxUuid&&lines.push(this._sxUuid.getStringIndented()),this._sxTstamp&&lines.push(this._sxTstamp.getStringIndented()),this._sxTeardrops&&lines.push(this._sxTeardrops.getStringIndented()),lines.push(")"),lines.join(`
|
|
803
803
|
`)}},__publicField(_a515,"token","via"),_a515);SxClass.register(Via2);var _a516,KicadPcb=(_a516=class extends SxClass{constructor(params={}){super();__publicField(this,"token","kicad_pcb");__publicField(this,"_sxVersion");__publicField(this,"_sxGenerator");__publicField(this,"_sxGeneratorVersion");__publicField(this,"_sxGeneral");__publicField(this,"_sxPaper");__publicField(this,"_sxTitleBlock");__publicField(this,"_sxLayers");__publicField(this,"_sxSetup");__publicField(this,"_properties",[]);__publicField(this,"_nets",[]);__publicField(this,"_footprints",[]);__publicField(this,"_images",[]);__publicField(this,"_segments",[]);__publicField(this,"_arcs",[]);__publicField(this,"_grArcs",[]);__publicField(this,"_grCircles",[]);__publicField(this,"_grCurves",[]);__publicField(this,"_grLines",[]);__publicField(this,"_grTexts",[]);__publicField(this,"_grPolys",[]);__publicField(this,"_grRects",[]);__publicField(this,"_vias",[]);__publicField(this,"_zones",[]);__publicField(this,"_sxEmbeddedFonts");__publicField(this,"_sxEmbeddedFiles");__publicField(this,"_otherChildren",[]);params.version!==void 0&&(this.version=params.version),params.generator!==void 0&&(this.generator=params.generator),params.generatorVersion!==void 0&&(this.generatorVersion=params.generatorVersion),params.general!==void 0&&(this.general=params.general),params.paper!==void 0&&(this.paper=params.paper),params.titleBlock!==void 0&&(this.titleBlock=params.titleBlock),params.layers!==void 0&&(this.layers=params.layers),params.setup!==void 0&&(this.setup=params.setup),params.properties!==void 0&&(this.properties=params.properties),params.nets!==void 0&&(this.nets=params.nets),params.footprints!==void 0&&(this.footprints=params.footprints),params.images!==void 0&&(this.images=params.images),params.segments!==void 0&&(this.segments=params.segments),params.arcs!==void 0&&(this.arcs=params.arcs),params.graphicArcs!==void 0&&(this.graphicArcs=params.graphicArcs),params.graphicCircles!==void 0&&(this.graphicCircles=params.graphicCircles),params.graphicCurves!==void 0&&(this.graphicCurves=params.graphicCurves),params.graphicLines!==void 0&&(this.graphicLines=params.graphicLines),params.graphicTexts!==void 0&&(this.graphicTexts=params.graphicTexts),params.graphicPolys!==void 0&&(this.graphicPolys=params.graphicPolys),params.graphicRects!==void 0&&(this.graphicRects=params.graphicRects),params.vias!==void 0&&(this.vias=params.vias),params.zones!==void 0&&(this.zones=params.zones),params.embeddedFonts!==void 0&&(this.embeddedFonts=params.embeddedFonts),params.embeddedFiles!==void 0&&(this.embeddedFiles=params.embeddedFiles),params.otherChildren!==void 0&&(this.otherChildren=params.otherChildren)}static fromSexprPrimitives(primitiveSexprs){let pcb=new _a516;for(let primitive of primitiveSexprs){if(!Array.isArray(primitive)||primitive.length===0)throw new Error(`kicad_pcb encountered unsupported primitive child: ${JSON.stringify(primitive)}`);let parsed=SxClass.parsePrimitiveSexpr(primitive,{parentToken:_a516.token});if(!(parsed instanceof SxClass))throw new Error(`kicad_pcb expected SxClass child, received ${JSON.stringify(primitive)}`);pcb.consumeChild(parsed)}return pcb}consumeChild(child){if(child instanceof PcbVersion){this._sxVersion=child;return}if(child instanceof PcbGenerator){this._sxGenerator=child;return}if(child instanceof PcbGeneratorVersion){this._sxGeneratorVersion=child;return}if(child instanceof PcbGeneral){this._sxGeneral=child;return}if(child instanceof Paper){this._sxPaper=child;return}if(child instanceof TitleBlock){this._sxTitleBlock=child;return}if(child instanceof PcbLayers){this._sxLayers=child;return}if(child instanceof Setup){this._sxSetup=child;return}if(child instanceof Property){this._properties.push(child);return}if(child instanceof PcbNet){this._nets.push(child);return}if(child instanceof Footprint2){this._footprints.push(child);return}if(child instanceof Image){this._images.push(child);return}if(child instanceof Segment3){this._segments.push(child);return}if(child instanceof PcbArc){this._arcs.push(child);return}if(child instanceof GrArc){this._grArcs.push(child);return}if(child instanceof GrCircle){this._grCircles.push(child);return}if(child instanceof GrCurve){this._grCurves.push(child);return}if(child instanceof GrLine){this._grLines.push(child);return}if(child instanceof GrText){this._grTexts.push(child);return}if(child instanceof GrPoly){this._grPolys.push(child);return}if(child instanceof GrRect){this._grRects.push(child);return}if(child instanceof Via2){this._vias.push(child);return}if(child instanceof Zone){this._zones.push(child);return}if(child instanceof EmbeddedFonts){this._sxEmbeddedFonts=child;return}if(child instanceof EmbeddedFiles){this._sxEmbeddedFiles=child;return}this._otherChildren.push(child)}get version(){return this._sxVersion?.value}set version(value){this._sxVersion=value===void 0?void 0:new PcbVersion(value)}get generator(){return this._sxGenerator?.value}set generator(value){this._sxGenerator=value===void 0?void 0:new PcbGenerator(value)}get generatorVersion(){return this._sxGeneratorVersion?.value}set generatorVersion(value){this._sxGeneratorVersion=value===void 0?void 0:new PcbGeneratorVersion(value)}get general(){return this._sxGeneral}set general(value){this._sxGeneral=value}get paper(){return this._sxPaper}set paper(value){this._sxPaper=value}get titleBlock(){return this._sxTitleBlock}set titleBlock(value){this._sxTitleBlock=value}get layers(){return this._sxLayers}set layers(value){this._sxLayers=value}get setup(){return this._sxSetup}set setup(value){this._sxSetup=value}get properties(){return[...this._properties]}set properties(value){this._properties=[...value]}get nets(){return[...this._nets]}set nets(value){this._nets=[...value]}get footprints(){return[...this._footprints]}set footprints(value){this._footprints=[...value]}get images(){return[...this._images]}set images(value){this._images=[...value]}get segments(){return[...this._segments]}set segments(value){this._segments=[...value]}get arcs(){return[...this._arcs]}set arcs(value){this._arcs=[...value]}get graphicArcs(){return[...this._grArcs]}set graphicArcs(value){this._grArcs=[...value]}get graphicCircles(){return[...this._grCircles]}set graphicCircles(value){this._grCircles=[...value]}get graphicCurves(){return[...this._grCurves]}set graphicCurves(value){this._grCurves=[...value]}get graphicLines(){return[...this._grLines]}set graphicLines(value){this._grLines=[...value]}get graphicTexts(){return[...this._grTexts]}set graphicTexts(value){this._grTexts=[...value]}get graphicPolys(){return[...this._grPolys]}set graphicPolys(value){this._grPolys=[...value]}get graphicRects(){return[...this._grRects]}set graphicRects(value){this._grRects=[...value]}get vias(){return[...this._vias]}set vias(value){this._vias=[...value]}get zones(){return[...this._zones]}set zones(value){this._zones=[...value]}get embeddedFonts(){return this._sxEmbeddedFonts}set embeddedFonts(value){this._sxEmbeddedFonts=value}get embeddedFiles(){return this._sxEmbeddedFiles}set embeddedFiles(value){this._sxEmbeddedFiles=value}get otherChildren(){return[...this._otherChildren]}set otherChildren(value){this._otherChildren=[...value]}getChildren(){let children=[];return this._sxVersion&&children.push(this._sxVersion),this._sxGenerator&&children.push(this._sxGenerator),this._sxGeneratorVersion&&children.push(this._sxGeneratorVersion),this._sxGeneral&&children.push(this._sxGeneral),this._sxPaper&&children.push(this._sxPaper),this._sxTitleBlock&&children.push(this._sxTitleBlock),this._sxLayers&&children.push(this._sxLayers),this._sxSetup&&children.push(this._sxSetup),children.push(...this._properties),children.push(...this._nets),children.push(...this._footprints),children.push(...this._images),children.push(...this._segments),children.push(...this._arcs),children.push(...this._grArcs),children.push(...this._grCircles),children.push(...this._grCurves),children.push(...this._grLines),children.push(...this._grTexts),children.push(...this._grPolys),children.push(...this._grRects),children.push(...this._vias),children.push(...this._zones),this._sxEmbeddedFonts&&children.push(this._sxEmbeddedFonts),this._sxEmbeddedFiles&&children.push(this._sxEmbeddedFiles),children.push(...this._otherChildren),children}},__publicField(_a516,"token","kicad_pcb"),_a516);SxClass.register(KicadPcb);var parseKicadSexpr=sexpr=>SxClass.parse(sexpr),parseKicadSch=sexpr=>{let[root]=parseKicadSexpr(sexpr);if(!(root instanceof KicadSch))throw new Error(`Expected KicadSch root, got ${root?.constructor.name??"undefined"}`);return root},parseKicadPcb=sexpr=>{let[root]=parseKicadSexpr(sexpr);if(!(root instanceof KicadPcb))throw new Error(`Expected KicadPcb root, got ${root?.constructor.name??"undefined"}`);return root},parseKicadSym=sexpr=>{let[root]=parseKicadSexpr(sexpr);if(!(root instanceof KicadSymbolLib))throw new Error(`Expected KicadSym root, got ${root?.constructor.name??"undefined"}`);return root},parseKicadMod=sexpr=>{let[root]=parseKicadSexpr(sexpr);if(!(root instanceof Footprint2))throw new Error(`Expected Footprint root, got ${root?.constructor.name??"undefined"}`);return root};init_src();init_src();init_src();init_src();init_src();init_dist7();init_src();init_dist7();init_src();init_src();init_src();init_src();init_src();init_src();init_src();init_src();var KICAD5_MODULE_ROOT_RE=/^(\uFEFF?\s*)\(module(?=[\s"])/;function upgradeKicad5FootprintToKicad6(content){return content.replace(KICAD5_MODULE_ROOT_RE,"$1(footprint")}var INNER_COPPER_LAYER_REGEX=/^In([1-9]\d*)\.Cu$/;function dedupeLayerRefs(layers){return[...new Set(layers)]}function extractKicadLayerNames(layer){return layer?typeof layer=="string"?[layer]:Array.isArray(layer)?layer.filter(name=>typeof name=="string"):[...layer.names||[],...layer._names||[],...layer._layers||[],...layer.name?[layer.name]:[],...layer._name?[layer._name]:[]].filter(name=>typeof name=="string"):[]}function mapKicadLayerToPcbRenderLayer(layer){let layerNames=extractKicadLayerNames(layer);for(let layerName of layerNames){let copperLayer=mapKicadLayerNameToLayerRef(layerName);if(copperLayer)return`${copperLayer}_copper`;if(layerName.includes("Edge.Cuts"))return"edge_cuts";let side=mapKicadLayerToVisibleLayer(layerName);if(layerName.includes("CrtYd"))return`${side}_courtyard`;if(layerName.includes("Fab"))return`${side}_fabrication_note`;if(layerName.includes("SilkS"))return`${side}_silkscreen`}}function isPcbAnnotationRenderLayer(renderLayer){return renderLayer?.endsWith("_silkscreen")||renderLayer?.endsWith("_fabrication_note")||renderLayer?.endsWith("_courtyard")||!1}function isPcbTextRenderLayer(renderLayer){return renderLayer?.endsWith("_silkscreen")||renderLayer?.endsWith("_fabrication_note")||renderLayer?.endsWith("_copper")||!1}function mapKicadLayerNameToLayerRef(layerName){if(layerName==="F.Cu")return"top";if(layerName==="B.Cu")return"bottom";let innerLayerMatch=layerName.match(INNER_COPPER_LAYER_REGEX);if(innerLayerMatch)return`inner${innerLayerMatch[1]}`}function mapKicadLayerToLayerRef(layer){let layerNames=extractKicadLayerNames(layer);for(let layerName of layerNames){let mappedLayer=mapKicadLayerNameToLayerRef(layerName);if(mappedLayer)return mappedLayer}let layerLabel=layerNames.join(" ");return layerLabel.includes("B.")||layerLabel.includes("Back")||layerLabel.includes("Bottom")?"bottom":"top"}function mapKicadLayerToVisibleLayer(layer){return mapKicadLayerToLayerRef(layer)==="bottom"?"bottom":"top"}function getPcbCopperLayerRefs(kicadPcb){let copperLayers=(kicadPcb?.layers?.definitions??[]).map(definition=>mapKicadLayerNameToLayerRef(definition.name??"")).filter(layer=>!!layer);return copperLayers.length>0?dedupeLayerRefs(copperLayers):["top","bottom"]}function getPcbCopperLayerCount(kicadPcb){let copperLayerCount=(kicadPcb?.layers?.definitions??[]).filter(definition=>definition.name?.endsWith(".Cu")??!1).length;return copperLayerCount>0?copperLayerCount:2}function getLayerRefsFromLayers(layers,kicadPcb){let layerNames=extractKicadLayerNames(layers),mappedLayers=[];for(let layerName of layerNames){if(layerName==="*.Cu"){mappedLayers.push(...getPcbCopperLayerRefs(kicadPcb));continue}let mappedLayer=mapKicadLayerNameToLayerRef(layerName);mappedLayer&&mappedLayers.push(mappedLayer)}return dedupeLayerRefs(mappedLayers)}function expandCopperLayerSpan(layers,kicadPcb){if(layers.length<=1)return layers;let copperStack=getPcbCopperLayerRefs(kicadPcb),startIndex=copperStack.indexOf(layers[0]),endIndex=copperStack.indexOf(layers[layers.length-1]);if(startIndex===-1||endIndex===-1)return dedupeLayerRefs(layers);let[fromIndex,toIndex]=startIndex<=endIndex?[startIndex,endIndex]:[endIndex,startIndex];return copperStack.slice(fromIndex,toIndex+1)}function getCopperSpanLayerRefsFromLayers(layers,kicadPcb){return expandCopperLayerSpan(getLayerRefsFromLayers(layers,kicadPcb),kicadPcb)}function getComponentLayer(footprint){return mapKicadLayerToVisibleLayer(footprint.layer)}function determineLayerFromLayers(layers){return mapKicadLayerToLayerRef(extractKicadLayerNames(layers))}function mapTextLayer(kicadLayer){return mapKicadLayerToVisibleLayer(kicadLayer)}function getPadNetNum(pad2){let net=pad2?._sxNet||pad2?.net;return net?typeof net=="number"?net:typeof net=="object"?net._id??net.number??net.ordinal??null:null:null}function getSourcePortIdForPad(params){let{componentId,footprint,pad:pad2}=params,padNumber=pad2.number?.toString();if(!padNumber)return;let baseSourcePortId=`${componentId}_port_${padNumber}`;return hasDuplicatePadNumberOnDifferentNets(footprint,padNumber)?`${baseSourcePortId}_net_${getPadNetNum(pad2)??"none"}`:baseSourcePortId}function hasDuplicatePadNumberOnDifferentNets(footprint,padNumber){let pads=footprint.fpPads||[],padArray=Array.isArray(pads)?pads:[pads],netKeys=new Set;for(let pad2 of padArray)pad2.number?.toString()===padNumber&&netKeys.add(String(getPadNetNum(pad2)??"none"));return netKeys.size>1}function insertFootprintRoute(options){let{ctx,componentId,layer,renderLayer,route,strokeWidth}=options;if(renderLayer.endsWith("_silkscreen")){ctx.db.pcb_silkscreen_path.insert({pcb_component_id:componentId,layer,route,stroke_width:strokeWidth});return}if(renderLayer.endsWith("_fabrication_note")){ctx.db.pcb_fabrication_note_path.insert({pcb_component_id:componentId,layer,route,stroke_width:strokeWidth});return}ctx.db.pcb_courtyard_outline.insert({pcb_component_id:componentId,layer,outline:route})}function getGraphicStrokeWidth(graphic,fallback=.12){return graphic.stroke?.width??graphic.stroke?._sxWidth?.value??graphic._sxStroke?._sxWidth?.value??graphic.width??graphic._sxWidth?.value??fallback}function getPolyPoints(poly){let rawPoly=poly,pointCandidates=[rawPoly.points?.points,rawPoly._sxPts?.points,rawPoly.pts,rawPoly._points?.points];for(let points of pointCandidates)if(Array.isArray(points))return points;return[]}function rotatePoint6(params){let{point:point6,ccwRotationDegrees}=params,rotationRad=ccwRotationDegrees*Math.PI/180;return{x:point6.x*Math.cos(rotationRad)-point6.y*Math.sin(rotationRad),y:point6.x*Math.sin(rotationRad)+point6.y*Math.cos(rotationRad)}}function processFootprintGraphics(params){let{ctx,footprint,componentId,footprintPlacement}=params;if(!ctx.k2cMatPcb)return;let lines=footprint.fpLines||[],lineArray=Array.isArray(lines)?lines:lines?[lines]:[];for(let line2 of lineArray)createFootprintLine({ctx,line:line2,componentId,footprintPlacement});let rects=footprint.fpRects||[],rectArray=Array.isArray(rects)?rects:rects?[rects]:[];for(let rect of rectArray)createFootprintRect({ctx,rect,componentId,footprintPlacement});let circles=footprint.fpCircles||[],circleArray=Array.isArray(circles)?circles:circles?[circles]:[];for(let circle2 of circleArray)createFootprintCircle({ctx,circle:circle2,componentId,footprintPlacement});let arcs=footprint.fpArcs||[],arcArray=Array.isArray(arcs)?arcs:arcs?[arcs]:[];for(let arc2 of arcArray)createFootprintArc({ctx,arc:arc2,componentId,footprintPlacement});let polys=footprint.fpPolys||[],polyArray=Array.isArray(polys)?polys:polys?[polys]:[];for(let poly of polyArray)createFootprintPoly({ctx,poly,componentId,footprintPlacement})}function createFootprintLine(params){let{ctx,line:line2,componentId,footprintPlacement}=params;if(!ctx.k2cMatPcb)return;let renderLayer=mapKicadLayerToPcbRenderLayer(line2.layer);if(!isPcbAnnotationRenderLayer(renderLayer))return;let start=line2.start||{x:0,y:0},end=line2.end||{x:0,y:0},rotatedStart=rotatePoint6({point:start,ccwRotationDegrees:-footprintPlacement.componentCcwRotationDegrees}),rotatedEnd=rotatePoint6({point:end,ccwRotationDegrees:-footprintPlacement.componentCcwRotationDegrees}),startKicadPos={x:footprintPlacement.kicadComponentPos.x+rotatedStart.x,y:footprintPlacement.kicadComponentPos.y+rotatedStart.y},endKicadPos={x:footprintPlacement.kicadComponentPos.x+rotatedEnd.x,y:footprintPlacement.kicadComponentPos.y+rotatedEnd.y},startPos=applyToPoint(ctx.k2cMatPcb,startKicadPos),endPos=applyToPoint(ctx.k2cMatPcb,endKicadPos),layer=mapTextLayer(line2.layer),strokeWidth=getGraphicStrokeWidth(line2);insertFootprintRoute({ctx,componentId,layer,renderLayer,route:[startPos,endPos],strokeWidth})}function createFootprintRect(params){let{ctx,rect,componentId,footprintPlacement}=params;if(!ctx.k2cMatPcb)return;let renderLayer=mapKicadLayerToPcbRenderLayer(rect.layer);if(!isPcbAnnotationRenderLayer(renderLayer))return;let start=rect.start||{x:0,y:0},end=rect.end||{x:0,y:0},center2={x:(start.x+end.x)/2,y:(start.y+end.y)/2},rotatedCenter=rotatePoint6({point:center2,ccwRotationDegrees:-footprintPlacement.componentCcwRotationDegrees}),centerKicadPos={x:footprintPlacement.kicadComponentPos.x+rotatedCenter.x,y:footprintPlacement.kicadComponentPos.y+rotatedCenter.y},centerPos=applyToPoint(ctx.k2cMatPcb,centerKicadPos),layer=mapTextLayer(rect.layer),width=Math.abs(end.x-start.x),height=Math.abs(end.y-start.y),strokeWidth=getGraphicStrokeWidth(rect);if(renderLayer.endsWith("_courtyard")){ctx.db.pcb_courtyard_rect.insert({pcb_component_id:componentId,center:centerPos,width,height,layer,ccw_rotation:-footprintPlacement.componentCcwRotationDegrees});return}if(renderLayer.endsWith("_fabrication_note")){ctx.db.pcb_fabrication_note_rect.insert({pcb_component_id:componentId,center:centerPos,width,height,layer,stroke_width:strokeWidth,is_filled:rect.fill?.filled===!0,has_stroke:!0});return}let route=[{x:start.x,y:start.y},{x:end.x,y:start.y},{x:end.x,y:end.y},{x:start.x,y:end.y},{x:start.x,y:start.y}].map(point6=>{let rotated=rotatePoint6({point:point6,ccwRotationDegrees:-footprintPlacement.componentCcwRotationDegrees}),kicadPos={x:footprintPlacement.kicadComponentPos.x+rotated.x,y:footprintPlacement.kicadComponentPos.y+rotated.y};return applyToPoint(ctx.k2cMatPcb,kicadPos)});insertFootprintRoute({ctx,componentId,layer,renderLayer,route,strokeWidth})}function createFootprintCircle(params){let{ctx,circle:circle2,componentId,footprintPlacement}=params;if(!ctx.k2cMatPcb)return;let renderLayer=mapKicadLayerToPcbRenderLayer(circle2.layer);if(!isPcbAnnotationRenderLayer(renderLayer))return;let center2=circle2.center||{x:0,y:0},end=circle2.end||{x:0,y:0},radius=Math.sqrt((end.x-center2.x)**2+(end.y-center2.y)**2),rotatedCenter=rotatePoint6({point:center2,ccwRotationDegrees:-footprintPlacement.componentCcwRotationDegrees}),centerKicadPos={x:footprintPlacement.kicadComponentPos.x+rotatedCenter.x,y:footprintPlacement.kicadComponentPos.y+rotatedCenter.y},centerPos=applyToPoint(ctx.k2cMatPcb,centerKicadPos),layer=mapTextLayer(circle2.layer),strokeWidth=getGraphicStrokeWidth(circle2);if(renderLayer.endsWith("_courtyard")){ctx.db.pcb_courtyard_circle.insert({pcb_component_id:componentId,center:centerPos,radius,layer});return}let numPoints=16,circleRoute=[];for(let i5=0;i5<=numPoints;i5++){let angle=i5/numPoints*2*Math.PI,x3=centerPos.x+radius*Math.cos(angle),y2=centerPos.y+radius*Math.sin(angle);circleRoute.push({x:x3,y:y2})}insertFootprintRoute({ctx,componentId,layer,renderLayer,route:circleRoute,strokeWidth})}function calculateArcCenter(params){let{start,mid,end}=params,ax3=start.x-mid.x,ay3=start.y-mid.y,bx3=mid.x-end.x,by3=mid.y-end.y,denom=2*(ax3*by3-ay3*bx3);if(Math.abs(denom)<1e-10)return null;let d12=start.x*start.x+start.y*start.y-mid.x*mid.x-mid.y*mid.y,d22=mid.x*mid.x+mid.y*mid.y-end.x*end.x-end.y*end.y,cx3=(d12*by3-d22*ay3)/denom,cy3=(ax3*d22-bx3*d12)/denom,radius=Math.sqrt((start.x-cx3)**2+(start.y-cy3)**2);return{center:{x:cx3,y:cy3},radius}}function createFootprintArc(params){let{ctx,arc:arc2,componentId,footprintPlacement}=params;if(!ctx.k2cMatPcb)return;let renderLayer=mapKicadLayerToPcbRenderLayer(arc2.layer);if(!isPcbAnnotationRenderLayer(renderLayer))return;let start=arc2.start||{x:0,y:0},mid=arc2.mid||{x:0,y:0},end=arc2.end||{x:0,y:0},rotatedStart=rotatePoint6({point:start,ccwRotationDegrees:-footprintPlacement.componentCcwRotationDegrees}),rotatedMid=rotatePoint6({point:mid,ccwRotationDegrees:-footprintPlacement.componentCcwRotationDegrees}),rotatedEnd=rotatePoint6({point:end,ccwRotationDegrees:-footprintPlacement.componentCcwRotationDegrees}),startKicadPos={x:footprintPlacement.kicadComponentPos.x+rotatedStart.x,y:footprintPlacement.kicadComponentPos.y+rotatedStart.y},midKicadPos={x:footprintPlacement.kicadComponentPos.x+rotatedMid.x,y:footprintPlacement.kicadComponentPos.y+rotatedMid.y},endKicadPos={x:footprintPlacement.kicadComponentPos.x+rotatedEnd.x,y:footprintPlacement.kicadComponentPos.y+rotatedEnd.y},layer=mapTextLayer(arc2.layer),strokeWidth=arc2.stroke?.width||arc2.width||.12,arcInfo=calculateArcCenter({start:startKicadPos,mid:midKicadPos,end:endKicadPos});if(!arcInfo){let startPos=applyToPoint(ctx.k2cMatPcb,startKicadPos),endPos=applyToPoint(ctx.k2cMatPcb,endKicadPos);insertFootprintRoute({ctx,componentId,layer,renderLayer,route:[startPos,endPos],strokeWidth});return}let{center:center2,radius}=arcInfo,startAngle=Math.atan2(startKicadPos.y-center2.y,startKicadPos.x-center2.x),midAngle=Math.atan2(midKicadPos.y-center2.y,midKicadPos.x-center2.x),sweepAngle=Math.atan2(endKicadPos.y-center2.y,endKicadPos.x-center2.x)-startAngle,midSweep=midAngle-startAngle;for(;sweepAngle>Math.PI;)sweepAngle-=2*Math.PI;for(;sweepAngle<-Math.PI;)sweepAngle+=2*Math.PI;for(;midSweep>Math.PI;)midSweep-=2*Math.PI;for(;midSweep<-Math.PI;)midSweep+=2*Math.PI;let isCCW=sweepAngle>0;isCCW&&midSweep>0&&midSweep<sweepAngle||!isCCW&&midSweep<0&&midSweep>sweepAngle||(sweepAngle=sweepAngle>0?sweepAngle-2*Math.PI:sweepAngle+2*Math.PI);let arcLength2=Math.abs(radius*sweepAngle),numSegments=Math.max(2,Math.ceil(arcLength2/.1)),arcRoute=[];for(let i5=0;i5<=numSegments;i5++){let t52=i5/numSegments,angle=startAngle+sweepAngle*t52,kicadPoint={x:center2.x+radius*Math.cos(angle),y:center2.y+radius*Math.sin(angle)},cjPoint=applyToPoint(ctx.k2cMatPcb,kicadPoint);arcRoute.push(cjPoint)}insertFootprintRoute({ctx,componentId,layer,renderLayer,route:arcRoute,strokeWidth})}function createFootprintPoly(params){let{ctx,poly,componentId,footprintPlacement}=params;if(!ctx.k2cMatPcb)return;let renderLayer=mapKicadLayerToPcbRenderLayer(poly.layer);if(!isPcbAnnotationRenderLayer(renderLayer))return;let ptArray=getPolyPoints(poly);if(ptArray.length===0)return;let layer=mapTextLayer(poly.layer),strokeWidth=getGraphicStrokeWidth(poly),transformedPts=ptArray.map(p3=>{let x3=p3.x??p3.xy?.x??0,y2=p3.y??p3.xy?.y??0,rotated=rotatePoint6({point:{x:x3,y:y2},ccwRotationDegrees:-footprintPlacement.componentCcwRotationDegrees}),kicadPos={x:footprintPlacement.kicadComponentPos.x+rotated.x,y:footprintPlacement.kicadComponentPos.y+rotated.y};return applyToPoint(ctx.k2cMatPcb,kicadPos)});if(renderLayer.endsWith("_courtyard")){ctx.db.pcb_courtyard_outline.insert({pcb_component_id:componentId,layer,outline:transformedPts});return}insertFootprintRoute({ctx,componentId,layer,renderLayer,route:transformedPts,strokeWidth})}function createPcbPort({ctx,componentId,padInfo}){if(!padInfo.layers||padInfo.layers.length===0)return;let sourcePortId=padInfo.sourcePortId??`${componentId}_port_${padInfo.padNumber}`;return ctx.db.pcb_port.insert({pcb_component_id:componentId,source_port_id:sourcePortId,x:padInfo.position.x,y:padInfo.position.y,layers:padInfo.layers}).pcb_port_id}var getNextPcbSmtPadId=ctx=>{let usedIds=new Set(ctx.db.pcb_smtpad.list().map(pad2=>pad2.pcb_smtpad_id)),index=usedIds.size,candidate=`pcb_smtpad_${index}`;for(;usedIds.has(candidate);)index++,candidate=`pcb_smtpad_${index}`;return candidate},getNextPcbPlatedHoleId=ctx=>{let usedIds=new Set(ctx.db.pcb_plated_hole.list().map(hole=>hole.pcb_plated_hole_id)),index=usedIds.size,candidate=`pcb_plated_hole_${index}`;for(;usedIds.has(candidate);)index++,candidate=`pcb_plated_hole_${index}`;return candidate};function getCustomPadPolygonRawContours(grPoly){let explicitContours=getRawContourArray(grPoly._contours??grPoly.contours);if(explicitContours.length>0)return explicitContours;let rawPoints=getRawPointArray(grPoly._sxPts??grPoly.points??grPoly.pts);return rawPoints.length>0?[rawPoints]:[]}function getRawContourArray(contours){return(Array.isArray(contours)?contours:contours?[contours]:[]).map(getRawPointArray).filter(points=>points.length>0)}function getRawPointArray(container){return container?Array.isArray(container)?container:Array.isArray(container.points)?container.points:Array.isArray(container.pts)?container.pts:Array.isArray(container._sxPts)?container._sxPts:[]:[]}function attachPadPolygonContours(pad2,contours){Object.defineProperty(pad2,"contours",{value:contours,enumerable:!1,configurable:!0})}function processPads(params){let{ctx,footprint,componentId,footprintPlacement}=params;if(!ctx.k2cMatPcb)return;let pads=footprint.fpPads||[],padArray=Array.isArray(pads)?pads:[pads];for(let pad2 of padArray)processPad({ctx,footprint,pad:pad2,componentId,footprintPlacement})}function processPad({ctx,footprint,pad:pad2,componentId,footprintPlacement}){if(!ctx.k2cMatPcb)return;let padAt=pad2.at||{x:0,y:0,angle:0},padType=pad2.padType||pad2.type||"thru_hole",padShape=pad2.shape||"circle",rotationRad=-footprintPlacement.componentCcwRotationDegrees*Math.PI/180,rotatedPadX=padAt.x*Math.cos(rotationRad)-padAt.y*Math.sin(rotationRad),rotatedPadY=padAt.x*Math.sin(rotationRad)+padAt.y*Math.cos(rotationRad),padKicadPos={x:footprintPlacement.kicadComponentPos.x+rotatedPadX,y:footprintPlacement.kicadComponentPos.y+rotatedPadY},globalPos=applyToPoint(ctx.k2cMatPcb,padKicadPos),sizeX=1,sizeY=1;pad2.size&&(Array.isArray(pad2.size)?(sizeX=pad2.size[0]||1,sizeY=pad2.size[1]||1):typeof pad2.size=="object"&&(sizeX=pad2.size._width||pad2.size.x||1,sizeY=pad2.size._height||pad2.size.y||1));let size3={x:sizeX,y:sizeY},drill=pad2.drill,mappedCopperLayers=padType==="thru_hole"?getCopperSpanLayerRefsFromLayers(pad2.layers||[],ctx.kicadPcb):getLayerRefsFromLayers(pad2.layers||[],ctx.kicadPcb),copperLayers=mappedCopperLayers.length>0?mappedCopperLayers:padType==="thru_hole"?getPcbCopperLayerRefs(ctx.kicadPcb):[],totalCcwRotationDegrees=(padAt.angle||0)-footprintPlacement.componentCcwRotationDegrees,padNumber=pad2.number?.toString(),pcbPortId,sourcePortId;if(padNumber){sourcePortId=getSourcePortIdForPad({componentId,footprint,pad:pad2});let padLayers=padType==="smd"?copperLayers.slice(0,1):padType==="thru_hole"?copperLayers:[];pcbPortId=createPcbPort({ctx,componentId,padInfo:{padNumber,sourcePortId,padType,layers:padLayers,position:globalPos}}),pcbPortId||(sourcePortId=void 0)}if(padType==="smd"){if(copperLayers.length===0)return;createSmdPad({ctx,pad:pad2,componentId,pos:globalPos,size:size3,shape:padShape,pcbPortId,sourcePortId,padKicadPos,totalCcwRotationDegrees})}else padType==="np_thru_hole"?createNpthHole({ctx,componentId,pos:globalPos,drill}):createPlatedHole({ctx,pad:pad2,componentId,pos:globalPos,size:size3,drill,padShape,layers:copperLayers,pcbPortId})}function createSmdPad({ctx,pad:pad2,componentId,pos,size:size3,shape,pcbPortId,sourcePortId:_sourcePortId,padKicadPos,totalCcwRotationDegrees=0}){let layers=pad2.layers||[],layer=determineLayerFromLayers(layers);if(shape==="custom"){let primitives=pad2._sxPrimitives?._graphics||pad2.primitives||[],primitivesArray=Array.isArray(primitives)?primitives:[primitives],primitivesProcessed=0,primMinX=Number.POSITIVE_INFINITY,primMinY=Number.POSITIVE_INFINITY,primMaxX=Number.NEGATIVE_INFINITY,primMaxY=Number.NEGATIVE_INFINITY,expandPrimBounds=(x3,y2)=>{x3<primMinX&&(primMinX=x3),x3>primMaxX&&(primMaxX=x3),y2<primMinY&&(primMinY=y2),y2>primMaxY&&(primMaxY=y2)};for(let primitive of primitivesArray){if(primitive.token==="gr_poly"){let grPoly=primitive.gr_poly||primitive,rawContours=getCustomPadPolygonRawContours(grPoly),polygonContours=[];for(let rawContour of rawContours){let contourPoints=[];for(let pt3 of rawContour){let x3=pt3.x??pt3.xy?.x,y2=pt3.y??pt3.xy?.y;if(x3!==void 0&&y2!==void 0){let rotated=rotatePoint6({point:{x:x3,y:y2},ccwRotationDegrees:totalCcwRotationDegrees}),kicadPos={x:padKicadPos.x+rotated.x,y:padKicadPos.y+rotated.y},globalPt=applyToPoint(ctx.k2cMatPcb,kicadPos);contourPoints.push(globalPt),expandPrimBounds(globalPt.x,globalPt.y)}}contourPoints.length>0&&polygonContours.push(contourPoints)}let points=polygonContours.flat();if(points.length>0){let smtpad2={type:"pcb_smtpad",shape:"polygon",pcb_component_id:componentId,pcb_port_id:pcbPortId,pcb_smtpad_id:getNextPcbSmtPadId(ctx),layer,port_hints:[pad2.number.toString()],points},insertedPad=ctx.db.pcb_smtpad.insert(smtpad2);polygonContours.length>1&&attachPadPolygonContours(insertedPad,polygonContours),primitivesProcessed++}}if(primitive.token==="gr_circle"){let grCircle=primitive.gr_circle||primitive,center2=grCircle.center||grCircle._sxCenter||{x:0,y:0},end=grCircle.end||grCircle._sxEnd||{x:0,y:0},centerlineRadius=Math.sqrt((end.x-center2.x)**2+(end.y-center2.y)**2),strokeWidth=grCircle.stroke?.width||grCircle.width||grCircle._sxWidth?.value||0,radius=(grCircle.fill?.value||grCircle.fill||grCircle._sxFill?.value)==="no"&&strokeWidth>0?centerlineRadius+strokeWidth/2:centerlineRadius,rotatedCenter=rotatePoint6({point:center2,ccwRotationDegrees:totalCcwRotationDegrees}),kicadCenterPos={x:padKicadPos.x+rotatedCenter.x,y:padKicadPos.y+rotatedCenter.y},globalCenter=applyToPoint(ctx.k2cMatPcb,kicadCenterPos);expandPrimBounds(globalCenter.x-radius,globalCenter.y-radius),expandPrimBounds(globalCenter.x+radius,globalCenter.y+radius);let smtpad2={type:"pcb_smtpad",shape:"circle",pcb_component_id:componentId,pcb_port_id:pcbPortId,pcb_smtpad_id:getNextPcbSmtPadId(ctx),layer,port_hints:[pad2.number.toString()],x:globalCenter.x,y:globalCenter.y,width:radius*2,height:radius*2,radius};ctx.db.pcb_smtpad.insert(smtpad2),primitivesProcessed++}}let anchorShape=pad2.options?.anchor??"rect",anchorCcwRotation=normalizeRotationDegrees(pad2.at?.angle),anchorIsPlaceholder=size3.x<.01||size3.y<.01,anchorExtendsBeyondPrimitives=!0;if(primitivesProcessed>0&&primMinX!==Number.POSITIVE_INFINITY){let halfX=size3.x/2,halfY=size3.y/2,anchorMinX=Number.POSITIVE_INFINITY,anchorMinY=Number.POSITIVE_INFINITY,anchorMaxX=Number.NEGATIVE_INFINITY,anchorMaxY=Number.NEGATIVE_INFINITY,anchorCorners=[[-halfX,-halfY],[halfX,-halfY],[halfX,halfY],[-halfX,halfY]];for(let[dx3,dy3]of anchorCorners){let rotated=rotatePoint6({point:{x:dx3,y:dy3},ccwRotationDegrees:totalCcwRotationDegrees}),corner=applyToPoint(ctx.k2cMatPcb,{x:padKicadPos.x+rotated.x,y:padKicadPos.y+rotated.y});corner.x<anchorMinX&&(anchorMinX=corner.x),corner.x>anchorMaxX&&(anchorMaxX=corner.x),corner.y<anchorMinY&&(anchorMinY=corner.y),corner.y>anchorMaxY&&(anchorMaxY=corner.y)}let tolerance=.01;anchorExtendsBeyondPrimitives=anchorMinX<primMinX-tolerance||anchorMaxX>primMaxX+tolerance||anchorMinY<primMinY-tolerance||anchorMaxY>primMaxY+tolerance}let anchorEmitted=0;!anchorIsPlaceholder&&anchorExtendsBeyondPrimitives&&(anchorShape==="circle"?ctx.db.pcb_smtpad.insert({type:"pcb_smtpad",shape:"circle",pcb_component_id:componentId,pcb_port_id:pcbPortId,pcb_smtpad_id:getNextPcbSmtPadId(ctx),layer,port_hints:[pad2.number.toString()],x:pos.x,y:pos.y,width:size3.x,height:size3.y,radius:Math.max(size3.x,size3.y)/2}):anchorCcwRotation!==0?ctx.db.pcb_smtpad.insert({type:"pcb_smtpad",shape:"rotated_rect",pcb_component_id:componentId,pcb_port_id:pcbPortId,pcb_smtpad_id:getNextPcbSmtPadId(ctx),layer,port_hints:[pad2.number.toString()],x:pos.x,y:pos.y,width:size3.x,height:size3.y,ccw_rotation:anchorCcwRotation}):ctx.db.pcb_smtpad.insert({type:"pcb_smtpad",shape:"rect",pcb_component_id:componentId,pcb_port_id:pcbPortId,pcb_smtpad_id:getNextPcbSmtPadId(ctx),layer,port_hints:[pad2.number.toString()],x:pos.x,y:pos.y,width:size3.x,height:size3.y}),anchorEmitted=1),ctx.stats&&(ctx.stats.pads=(ctx.stats.pads||0)+primitivesProcessed+anchorEmitted);return}let ccwRotationDegrees=pad2.at?.angle;if(shape==="circle"){let smtpad2={type:"pcb_smtpad",pcb_component_id:componentId,pcb_smtpad_id:getNextPcbSmtPadId(ctx),x:pos.x,y:pos.y,width:size3.x,height:size3.y,layer,pcb_port_id:pcbPortId,port_hints:[pad2.number?.toString()],shape:"circle",radius:Math.max(size3.x,size3.y)/2};ctx.db.pcb_smtpad.insert(smtpad2)}else if(shape==="oval"){let normalizedCcwRotation=normalizeRotationDegrees(ccwRotationDegrees),rightAngleTurns=getRightAngleTurns(normalizedCcwRotation),radius=Math.min(size3.x,size3.y)/2;if(rightAngleTurns===null&&normalizedCcwRotation!==0){let rotatedSmtPad={type:"pcb_smtpad",pcb_component_id:componentId,x:pos.x,y:pos.y,width:size3.x,height:size3.y,radius,layer,pcb_port_id:pcbPortId,port_hints:[pad2.number.toString()],shape:"rotated_pill",ccw_rotation:normalizedCcwRotation};ctx.db.pcb_smtpad.insert(rotatedSmtPad);return}let shouldSwapDimensions=rightAngleTurns!==null&&Math.abs(rightAngleTurns)%2===1,smtpad2={type:"pcb_smtpad",pcb_component_id:componentId,x:pos.x,y:pos.y,width:shouldSwapDimensions?size3.y:size3.x,height:shouldSwapDimensions?size3.x:size3.y,radius,layer,pcb_port_id:pcbPortId,port_hints:[pad2.number.toString()],shape:"pill"};ctx.db.pcb_smtpad.insert(smtpad2)}else if(shape==="rect"||shape==="roundrect"){let roundrectRatio=pad2._sxRoundrectRatio?.value??pad2.roundrect_rratio,cornerRadius;shape==="roundrect"&&roundrectRatio!==void 0&&(cornerRadius=Math.min(size3.x,size3.y)*roundrectRatio/2);let normalizedCcwRotation=normalizeRotationDegrees(ccwRotationDegrees),rightAngleTurns=getRightAngleTurns(normalizedCcwRotation);if(rightAngleTurns===null&&normalizedCcwRotation!==0){let rotatedsmtpad={type:"pcb_smtpad",pcb_component_id:componentId,x:pos.x,y:pos.y,width:size3.x,height:size3.y,layer,pcb_port_id:pcbPortId,port_hints:[pad2.number.toString()],shape:"rotated_rect",ccw_rotation:normalizedCcwRotation,corner_radius:cornerRadius};ctx.db.pcb_smtpad.insert(rotatedsmtpad);return}let shouldSwapDimensions=rightAngleTurns!==null&&Math.abs(rightAngleTurns)%2===1,smtpad2={type:"pcb_smtpad",pcb_component_id:componentId,x:pos.x,y:pos.y,width:shouldSwapDimensions?size3.y:size3.x,height:shouldSwapDimensions?size3.x:size3.y,layer,pcb_port_id:pcbPortId,port_hints:[pad2.number.toString()],shape:"rect",corner_radius:cornerRadius};ctx.db.pcb_smtpad.insert(smtpad2)}else ctx.db.pcb_smtpad.insert({type:"pcb_smtpad",pcb_component_id:componentId,x:pos.x,y:pos.y,width:size3.x,height:size3.y,layer,pcb_port_id:pcbPortId,port_hints:[pad2.number?.toString()],shape:"rect"});ctx.stats&&(ctx.stats.pads=(ctx.stats.pads||0)+1)}function normalizeRotationDegrees(rotationDegrees){if(!rotationDegrees)return 0;let normalized=rotationDegrees%360;return normalized<0?normalized+360:normalized}function getRightAngleTurns(rotationDegrees){let quarterTurns=rotationDegrees/90;return Math.abs(quarterTurns-Math.round(quarterTurns))>1e-9?null:Math.round(quarterTurns)}function createPlatedHole(params){let{ctx,pad:pad2,componentId,pos,size:size3,drill,padShape,layers,pcbPortId}=params,drillX=typeof drill=="object"?drill?.x||drill?._width||drill?.diameter||.8:drill||.8,drillY=typeof drill=="object"?drill?.y||drill?._height||drill?.diameter||drillX:drill||.8,holeDiameter=Math.max(drillX,drillY),drillIsOval=typeof drill=="object"&&drillX!==void 0&&drillY!==void 0&&drillX!==drillY,outerWidth=size3.x,outerHeight=size3.y;if(padShape==="circle"){let platedHole={type:"pcb_plated_hole",shape:"circle",pcb_component_id:componentId,pcb_port_id:pcbPortId,x:pos.x,y:pos.y,port_hints:[pad2.number?.toString()],hole_diameter:holeDiameter,outer_diameter:Math.max(outerWidth,outerHeight),layers};ctx.db.pcb_plated_hole.insert(platedHole)}else if(padShape==="oval"){let platedHole={type:"pcb_plated_hole",shape:"pill",pcb_component_id:componentId,pcb_port_id:pcbPortId,x:pos.x,y:pos.y,port_hints:[pad2.number?.toString()],hole_width:drillY,hole_height:drillX,outer_width:outerWidth,outer_height:outerHeight,ccw_rotation:pad2.at?.angle||0,layers};ctx.db.pcb_plated_hole.insert(platedHole)}else if(padShape==="rect"||padShape==="square"||padShape==="roundrect"){let normalizedCcwRotationDegrees=normalizeRotationDegrees(pad2.at?.angle);if(drillIsOval)if(normalizedCcwRotationDegrees===0){let platedHole={type:"pcb_plated_hole",shape:"pill_hole_with_rect_pad",pcb_component_id:componentId,pcb_port_id:pcbPortId,x:pos.x,y:pos.y,port_hints:[pad2.number?.toString()],hole_shape:"pill",pad_shape:"rect",hole_width:drillY,hole_height:drillX,rect_pad_width:outerWidth,rect_pad_height:outerHeight,hole_offset_x:0,hole_offset_y:0,layers};if(padShape==="roundrect"){let roundrectRatio=pad2._sxRoundrectRatio?.value??pad2.roundrect_rratio;if(roundrectRatio!==void 0){let minDimension=Math.min(outerWidth,outerHeight);platedHole.rect_border_radius=minDimension*roundrectRatio/2}}ctx.db.pcb_plated_hole.insert(platedHole)}else{let platedHole={type:"pcb_plated_hole",shape:"rotated_pill_hole_with_rect_pad",pcb_component_id:componentId,pcb_port_id:pcbPortId,x:pos.x,y:pos.y,port_hints:[pad2.number?.toString()],hole_shape:"rotated_pill",pad_shape:"rect",hole_width:drillY,hole_height:drillX,hole_ccw_rotation:normalizedCcwRotationDegrees,rect_ccw_rotation:normalizedCcwRotationDegrees,rect_pad_width:outerWidth,rect_pad_height:outerHeight,hole_offset_x:0,hole_offset_y:0,layers};if(padShape==="roundrect"){let roundrectRatio=pad2._sxRoundrectRatio?.value??pad2.roundrect_rratio;if(roundrectRatio!==void 0){let minDimension=Math.min(outerWidth,outerHeight);platedHole.rect_border_radius=minDimension*roundrectRatio/2}}ctx.db.pcb_plated_hole.insert(platedHole)}else{let platedHole={type:"pcb_plated_hole",shape:"circular_hole_with_rect_pad",pcb_component_id:componentId,pcb_port_id:pcbPortId,pcb_plated_hole_id:getNextPcbPlatedHoleId(ctx),x:pos.x,y:pos.y,port_hints:[pad2.number?.toString()],hole_shape:"circle",pad_shape:"rect",hole_diameter:holeDiameter,rect_ccw_rotation:pad2.at?.angle||0,rect_pad_width:outerWidth,rect_pad_height:outerHeight,hole_offset_x:0,hole_offset_y:0,layers};if(padShape==="roundrect"){let roundrectRatio=pad2._sxRoundrectRatio?.value??pad2.roundrect_rratio;if(roundrectRatio!==void 0){let minDimension=Math.min(outerWidth,outerHeight);platedHole.rect_border_radius=minDimension*roundrectRatio/2}}ctx.db.pcb_plated_hole.insert(platedHole)}}ctx.stats&&(ctx.stats.pads=(ctx.stats.pads||0)+1)}function createNpthHole(params){let{ctx,componentId,pos,drill}=params,holeDiameter=drill?.diameter||drill||1,hole={type:"pcb_hole",hole_shape:"circle",pcb_component_id:componentId,x:pos.x,y:pos.y,hole_diameter:holeDiameter};ctx.db.pcb_hole.insert(hole)}function getTextValue(footprint,type){let texts=footprint.fpTexts||[];return(Array.isArray(texts)?texts:[texts]).find(t52=>t52.type===type)?.text}function getPropertyValue(footprint,propertyName){let properties=footprint.properties||[];return(Array.isArray(properties)?properties:[properties]).find(p3=>p3.key===propertyName)?.value}function substituteKicadVariables(text,footprint){let result=text,reference=getPropertyValue(footprint,"Reference")||getTextValue(footprint,"reference")||"?",value=getPropertyValue(footprint,"Value")||getTextValue(footprint,"value")||"";return result=result.replace(/\$\{REFERENCE\}/g,reference),result=result.replace(/\$\{VALUE\}/g,value),result}function mapKicadJustifyToAnchorAlignment(justify){if(!justify)return"center";let horizontal=justify.horizontal||"center",vertical=justify.vertical||"center";if(vertical==="top"){if(horizontal==="left")return"top_left";if(horizontal==="center")return"top_center";if(horizontal==="right")return"top_right"}if(vertical==="center"){if(horizontal==="left")return"center_left";if(horizontal==="center")return"center";if(horizontal==="right")return"center_right"}if(vertical==="bottom"){if(horizontal==="left")return"bottom_left";if(horizontal==="center")return"bottom_center";if(horizontal==="right")return"bottom_right"}return"center"}function convertKiCadAngleToCircuitJsonCcwRotation(rotationDegrees){if(!rotationDegrees)return 0;let circuitJsonRotation=rotationDegrees%360;return circuitJsonRotation<0?circuitJsonRotation+360:circuitJsonRotation}function isKicadTextHidden(text){return text.hidden===!0||text._sxHide?.value===!0}var KICAD_TEXT_HEIGHT_TO_CIRCUIT_JSON_FONT_SIZE=1,TEXT_POSITION_EPSILON=1e-6;function getPropertyKey(property){return String(property?._key??property?.key??property?.name??"")}function getFpTextKind(text){return String(text?._type??text?.type??text?.kind??"")}function getKiCadTextAnchor(text){return text?._sxPosition||text?.at||text?._sxAt}function areKiCadTextAnchorsAtSamePosition(a3,b4){return Math.abs((a3?.x??0)-(b4?.x??0))<TEXT_POSITION_EPSILON&&Math.abs((a3?.y??0)-(b4?.y??0))<TEXT_POSITION_EPSILON}function isFabTextSameLabelAndPositionAsVisibleSilkscreenText(text,footprint){if(!mapKicadLayerToPcbRenderLayer(text.layer)?.endsWith("_fabrication_note"))return!1;let textValue=substituteKicadVariables(text.text||"",footprint),textAt=getKiCadTextAnchor(text),properties=footprint.properties||[];if((Array.isArray(properties)?properties:[properties]).some(property=>!mapKicadLayerToPcbRenderLayer(property.layer)?.endsWith("_silkscreen")||isKicadTextHidden(property)||property.value!==textValue?!1:areKiCadTextAnchorsAtSamePosition(textAt,getKiCadTextAnchor(property))))return!0;let texts=footprint.fpTexts||[];return(Array.isArray(texts)?texts:[texts]).some(otherText=>!mapKicadLayerToPcbRenderLayer(otherText.layer)?.endsWith("_silkscreen")||isKicadTextHidden(otherText)||substituteKicadVariables(otherText.text||"",footprint)!==textValue?!1:areKiCadTextAnchorsAtSamePosition(textAt,getKiCadTextAnchor(otherText)))}function processFootprintText(params){let{ctx,footprint,componentId,footprintPlacement}=params;if(!ctx.k2cMatPcb)return;processFootprintProperties({ctx,footprint,componentId,footprintPlacement});let texts=footprint.fpTexts||[],textArray=Array.isArray(texts)?texts:[texts];for(let text of textArray){if(isKicadTextHidden(text)||isFabTextSameLabelAndPositionAsVisibleSilkscreenText(text,footprint))continue;let renderLayer=mapKicadLayerToPcbRenderLayer(text.layer);if(!isPcbTextRenderLayer(renderLayer))continue;let textElement={text:text.text,at:getKiCadTextAnchor(text),layer:text.layer,effects:text._sxEffects||text.effects,_sxEffects:text._sxEffects};createGraphicText({ctx,textElement,renderLayer,componentId,footprint,footprintPlacement,isReferenceText:ctx.standaloneFootprintConversion&&getFpTextKind(text)==="reference"})}}function processFootprintProperties(params){let{ctx,footprint,componentId,footprintPlacement}=params;if(!ctx.k2cMatPcb)return;let properties=footprint.properties||[],propertyArray=Array.isArray(properties)?properties:[properties];for(let property of propertyArray){if(!property.layer)continue;let renderLayer=mapKicadLayerToPcbRenderLayer(property.layer),isPropertyHidden=isKicadTextHidden(property);if(!isPcbTextRenderLayer(renderLayer)||isPropertyHidden)continue;let textElement={text:property.value,at:getKiCadTextAnchor(property),layer:property.layer,effects:property._sxEffects||property.effects,_sxEffects:property._sxEffects};createGraphicText({ctx,textElement,renderLayer,componentId,footprint,footprintPlacement,isReferenceText:ctx.standaloneFootprintConversion&&getPropertyKey(property)==="Reference"})}}function createGraphicText(params){let{ctx,textElement,renderLayer,componentId,footprint,footprintPlacement,isReferenceText=!1}=params;if(!ctx.k2cMatPcb)return;let at3=textElement.at,textLocalX=at3?.x??0,textLocalY=at3?.y??0,rotationRad=-footprintPlacement.componentCcwRotationDegrees*Math.PI/180,rotatedTextX=textLocalX*Math.cos(rotationRad)-textLocalY*Math.sin(rotationRad),rotatedTextY=textLocalX*Math.sin(rotationRad)+textLocalY*Math.cos(rotationRad),textKicadPos={x:footprintPlacement.kicadComponentPos.x+rotatedTextX,y:footprintPlacement.kicadComponentPos.y+rotatedTextY},pos=applyToPoint(ctx.k2cMatPcb,textKicadPos),layer=mapTextLayer(textElement.layer),processedText=substituteKicadVariables(textElement.text||"",footprint),fontSize=(textElement._sxEffects?._sxFont?._sxSize?._height||textElement.effects?.font?.size?.y||1)*KICAD_TEXT_HEIGHT_TO_CIRCUIT_JSON_FONT_SIZE,ccwRotation=isReferenceText?0:convertKiCadAngleToCircuitJsonCcwRotation(at3?.angle),justify=textElement._sxEffects?._sxJustify||textElement.effects?.justify,anchorAlignment=mapKicadJustifyToAnchorAlignment(justify);if(renderLayer.endsWith("_silkscreen")){ctx.db.pcb_silkscreen_text.insert({pcb_component_id:componentId,font:"tscircuit2024",font_size:fontSize,text:processedText,anchor_position:pos,anchor_alignment:anchorAlignment,layer,ccw_rotation:ccwRotation||void 0});return}if(renderLayer.endsWith("_fabrication_note")){ctx.db.pcb_fabrication_note_text.insert({type:"pcb_fabrication_note_text",pcb_fabrication_note_text_id:"",pcb_component_id:componentId,font:"tscircuit2024",font_size:fontSize,text:processedText,anchor_position:pos,anchor_alignment:anchorAlignment,layer});return}renderLayer.endsWith("_copper")&&ctx.db.pcb_copper_text.insert({pcb_component_id:componentId,font:"tscircuit2024",font_size:fontSize,text:processedText,anchor_position:pos,anchor_alignment:anchorAlignment,layer,ccw_rotation:ccwRotation||void 0})}function getFootprintProperties(footprint){let properties=footprint.properties||[];return Array.isArray(properties)?properties:[properties]}function getFootprintPropertyName(property){return property?.key}function getFootprintPropertyValue(property){return property?.value}function findFootprintProperty(footprint,propertyNames){let names=Array.isArray(propertyNames)?propertyNames:[propertyNames];return getFootprintProperties(footprint).find(property=>names.includes(getFootprintPropertyName(property)??""))}function findFootprintPropertyValue(footprint,propertyNames){let property=findFootprintProperty(footprint,propertyNames);return getFootprintPropertyValue(property)}function parseSupplierPartNumbers(value){if(!value)return;let partNumbers=value.split(/[,;]/).map(partNumber=>partNumber.trim()).filter(Boolean);return partNumbers.length>0?partNumbers:void 0}function inferComponentType(reference,footprint){if(!reference&&!footprint)return"simple_chip";let normalizedReference=reference?.trim(),prefix=normalizedReference?.match(/^([A-Z]+)/)?.[1];if(isFiducialReference(normalizedReference)||isFiducialFootprint(footprint))return"simple_fiducial";if(prefix==="TP"||isTestPointReference(normalizedReference)||isTestPointFootprint(footprint))return"simple_test_point";switch(prefix){case"R":return"simple_resistor";case"C":return"simple_capacitor";case"L":return"simple_inductor";case"D":return isLedFootprint(footprint)?"simple_led":"simple_diode";case"LED":return"simple_led";case"SW":return"simple_switch";case"Q":return"simple_transistor";case"U":case"IC":return"simple_chip";case"J":case"P":return"simple_chip";default:return"simple_chip"}}function isFiducialReference(reference){return/^FID\d+/i.test(reference||"")}function isFiducialFootprint(footprint){return getFootprintMetadata(footprint).includes("fiducial")}function isLedFootprint(footprint){let metadata=getFootprintMetadata(footprint);return metadata.includes("led")||metadata.includes("light emitting diode")}function isTestPointReference(reference){return/^TP\d+/i.test(reference||"")}function isTestPointFootprint(footprint){let metadata=getFootprintMetadata(footprint);return metadata.includes("testpoint")||metadata.includes("test point")}function getFootprintMetadata(footprint){return footprint?[footprint.libraryLink,footprint.descr?.value,footprint.tags?.value,findFootprintPropertyValue(footprint,"Footprint"),findFootprintPropertyValue(footprint,"Description"),findFootprintPropertyValue(footprint,"Value")].filter(Boolean).join(" ").toLowerCase():""}function inferTransistorTypeFromFootprint(footprint,value){let lowerValue=(value||"").toLowerCase();if(lowerValue.includes("pnp"))return"pnp";if(lowerValue.includes("npn"))return"npn";let lowerLibId=(footprint.libraryId||"").toLowerCase();return lowerLibId.includes("pnp")?"pnp":(lowerLibId.includes("npn"),"npn")}function processFootprint(ctx,footprint){if(!ctx.k2cMatPcb)return;let position4=footprint.position,kicadPos={x:position4?.x??0,y:position4?.y??0},cjPos=applyToPoint(ctx.k2cMatPcb,kicadPos),componentCcwRotationDegrees=position4&&"angle"in position4?position4.angle??0:0,uuid=footprint.uuid?.value||footprint.tstamp?.value;if(!uuid)return;let refdes=getFootprintReference(footprint),value=getFootprintValue(footprint),jlcpcbPartNumbers=getJlcpcbPartNumbers(footprint),ftype=inferComponentType(refdes,footprint),sourceComponentData={name:refdes||"U",ftype};if(ftype==="simple_transistor"&&(sourceComponentData.transistor_type=inferTransistorTypeFromFootprint(footprint,value)),jlcpcbPartNumbers&&(sourceComponentData.supplier_part_numbers={jlcpcb:jlcpcbPartNumbers}),value){let sanitizedValue=value.replace(/,/g,".");switch(ftype){case"simple_resistor":sourceComponentData.resistance=sanitizedValue;break;case"simple_capacitor":sourceComponentData.capacitance=sanitizedValue;break;case"simple_inductor":sourceComponentData.inductance=sanitizedValue;break}}let sourceComponentId=ctx.db.source_component.insert(sourceComponentData).source_component_id,componentId=ctx.db.pcb_component.insert({center:{x:cjPos.x,y:cjPos.y},layer:getComponentLayer(footprint),rotation:-componentCcwRotationDegrees,width:0,height:0,source_component_id:sourceComponentId}).pcb_component_id;ctx.footprintUuidToComponentId?.set(uuid,componentId),ctx.footprintUuidToSourceComponentId?.set(uuid,sourceComponentId);let footprintPlacement={kicadComponentPos:kicadPos,componentCcwRotationDegrees};processPads({ctx,footprint,componentId,footprintPlacement}),processFootprintText({ctx,footprint,componentId,footprintPlacement}),processFootprintGraphics({ctx,footprint,componentId,footprintPlacement}),ctx.stats&&(ctx.stats.components=(ctx.stats.components||0)+1)}function getFootprintReference(footprint){let propertyValue=findFootprintPropertyValue(footprint,"Reference");if(propertyValue)return propertyValue;let textItems=footprint.fpTexts||[],textArray=Array.isArray(textItems)?textItems:[textItems];for(let text of textArray)if(text.type==="reference")return text.text}function getFootprintValue(footprint){let propertyValue=findFootprintPropertyValue(footprint,"Value");if(propertyValue)return propertyValue;let textItems=footprint.fpTexts||[],textArray=Array.isArray(textItems)?textItems:[textItems];for(let text of textArray)if(text.type==="value")return text.text}function getJlcpcbPartNumbers(footprint){return parseSupplierPartNumbers(findFootprintPropertyValue(footprint,["JLCPCB Part #","Supplier Part Number"]))}var KicadFootprintToCircuitJsonConverter=class{constructor(){__publicField(this,"fsMap",{});__publicField(this,"ctx")}addFile(filePath,content){this.fsMap[filePath]=content}_findFileWithExtension(extension){let filesWithExtension=Object.keys(this.fsMap).filter(key=>key.endsWith(extension));if(filesWithExtension.length>1)throw new Error(`Expected 0 or 1 file with extension ${extension}, got ${filesWithExtension.length}. Files: ${filesWithExtension.join(", ")}`);return filesWithExtension[0]??null}initializeContext(){let footprintFile=this._findFileWithExtension(".kicad_mod");if(!footprintFile)throw new Error("No .kicad_mod file was added to the converter");let footprint=parseKicadMod(upgradeKicad5FootprintToKicad6(this.fsMap[footprintFile])),position4=footprint.position,footprintOrigin={x:position4?.x??0,y:position4?.y??0};this.ctx={db:cju_default([]),k2cMatPcb:compose(scale(1,-1),translate(-footprintOrigin.x,-footprintOrigin.y)),footprintUuidToComponentId:new Map,footprintUuidToSourceComponentId:new Map,warnings:[],stats:{},standaloneFootprintConversion:!0},processFootprint(this.ctx,this.ensureFootprintUuid(footprint))}ensureFootprintUuid(footprint){return footprint.uuid?.value||footprint.tstamp?.value||(footprint.tstamp={value:"standalone-footprint"}),footprint}runUntilFinished(){this.ctx||this.initializeContext()}getOutput(){return this.ctx||this.initializeContext(),this.ctx.db.toArray()}getOutputString(){return JSON.stringify(this.getOutput(),null,2)}getWarnings(){return this.ctx?.warnings||[]}getStats(){return this.ctx?.stats||{}}},ConverterStage=class{constructor(ctx){__publicField(this,"ctx");__publicField(this,"MAX_ITERATIONS",100);__publicField(this,"iterationCount",0);__publicField(this,"finished",!1);this.ctx=ctx}runUntilFinished(){for(this.iterationCount=0;!this.finished&&this.iterationCount<this.MAX_ITERATIONS;)this.step()||(this.finished=!0),this.iterationCount++;this.iterationCount>=this.MAX_ITERATIONS&&(this.ctx.warnings=this.ctx.warnings||[],this.ctx.warnings.push(`Stage ${this.constructor.name} exceeded maximum iterations (${this.MAX_ITERATIONS})`),this.finished=!0)}};function inferSourceComponentFtype(params){let name=params.name||"",reference=params.reference?.trim()||"",metadata=params.metadata||"",lowerName=name.toLowerCase(),prefix=reference.match(/^([A-Z]+)/i)?.[1]?.toUpperCase();return isPinHeaderLike({name,metadata})?"simple_pin_header":isTestPointLike({name,reference,metadata})?"simple_test_point":lowerName==="r"||lowerName.startsWith("r_")||lowerName.includes(":r_")||prefix==="R"?"simple_resistor":lowerName==="c"||lowerName.startsWith("c_")||lowerName.includes(":c_")||prefix==="C"?"simple_capacitor":lowerName==="l"||lowerName.startsWith("l_")||lowerName.includes(":l_")||prefix==="L"?"simple_inductor":lowerName.includes("led")||prefix==="LED"?"simple_led":lowerName.startsWith("d_")||lowerName.includes(":d_")||prefix==="D"?"simple_diode":lowerName.startsWith("q_")||lowerName.includes(":q_")||prefix==="Q"?"simple_transistor":"simple_chip"}function isPinHeaderLike(params){let name=params.name||"",metadata=params.metadata||"",combined=`${name} ${metadata}`.toLowerCase();return/(?:^|:)pinheader_\d+x\d+/i.test(name)||/(?:^|:)pinsocket_\d+x\d+/i.test(name)||/^conn_\d+x\d+(?:_|$)/i.test(name)||combined.includes("pin header")||combined.includes("pinsocket")||combined.includes("pin socket")}function isTestPointLike(params){let name=params.name||"",reference=params.reference?.trim()||"",metadata=params.metadata||"",combined=`${name} ${metadata}`.toLowerCase();return reference.match(/^([A-Z]+)/i)?.[1]?.toUpperCase()==="TP"||/(?:^|:)testpoint(?:_|$)/i.test(name)||combined.includes("test point")||combined.includes("testpoint")}function rotationToDirection(rotation5){let normalized=(rotation5%360+360)%360;return normalized>=315||normalized<45?"up":normalized>=45&&normalized<135?"right":normalized>=135&&normalized<225?"down":"left"}var SCHEMATIC_ARC_ANGLE_FRAME=scale(1,-1),MAX_KICAD_SYMBOL_UNIT_TO_CJ=1,PREVIEW_COLUMNS=6,PREVIEW_CELL_WIDTH=10,PREVIEW_CELL_HEIGHT=9.5,PREVIEW_CELL_FILL_RATIO=.95,DEFAULT_STROKE_COLOR="rgb(132, 0, 0)",DEFAULT_FILL_COLOR2="rgb(255, 255, 194)",CollectSymbolLibrarySymbolsStage=class extends ConverterStage{constructor(){super(...arguments);__publicField(this,"processedSymbols",new Set);__publicField(this,"previewIndex",0)}step(){if(!this.ctx.kicadSymbolLib)return this.finished=!0,!1;let symbols=[...this.ctx.kicadSymbolLib.symbols].sort((a3,b4)=>{let aFileName=this.getKicadSymbolExportFileName(a3),bFileName=this.getKicadSymbolExportFileName(b4);return aFileName<bFileName?-1:aFileName>bFileName?1:0});for(let symbol of symbols){let symbolName=this.getSymbolName(symbol);!symbolName||this.processedSymbols.has(symbolName)||(this.processSymbol(symbol),this.processedSymbols.add(symbolName))}return this.finished=!0,!1}processSymbol(symbol){let pins=this.collectPins(symbol),schematicSymbolData={name:this.getSymbolName(symbol)},schematicSymbol=this.ctx.db.schematic_symbol.insert(schematicSymbolData),sourceComponentData=this.createSourceComponentData(symbol,pins),sourceComponent=this.ctx.db.source_component.insert(sourceComponentData),seenPinNumbers=new Set,unnamedPinIndex=0,sourcePortIdByPinNumber=new Map;for(let pin of pins){let pinNumber=pin.numberString||`unnamed_${unnamedPinIndex++}`;if(seenPinNumbers.has(pinNumber))continue;seenPinNumbers.add(pinNumber);let sourcePortData={source_component_id:sourceComponent.source_component_id,name:this.getPortName(pin,pinNumber),...this.getSourcePortPinMetadata(pinNumber)},sourcePort=this.ctx.db.source_port.insert(sourcePortData);sourcePortIdByPinNumber.set(pinNumber,sourcePort.source_port_id)}this.createSchematicPreview({symbol,pins,schematicSymbolId:schematicSymbol.schematic_symbol_id,sourceComponentId:sourceComponent.source_component_id,sourcePortIdByPinNumber}),this.ctx.stats&&(this.ctx.stats.components=(this.ctx.stats.components||0)+1,this.ctx.stats.pads=(this.ctx.stats.pads||0)+seenPinNumbers.size)}getKicadSymbolExportFileName(symbol){return`${this.getSymbolName(symbol)}_unit1.svg`}getSymbolName(symbol){return symbol.libraryId??symbol.libraryName??""}getSymbolProperties(symbol){return Object.fromEntries(symbol.properties.map(property=>[property.key,property.value]))}collectPins(symbol){return[...symbol.pins,...symbol.subSymbols.flatMap(subSymbol=>this.collectPins(subSymbol))]}collectPolylines(symbol){return[...symbol.polylines,...symbol.subSymbols.flatMap(subSymbol=>this.collectPolylines(subSymbol))]}collectRectangles(symbol){return[...symbol.rectangles,...symbol.subSymbols.flatMap(subSymbol=>this.collectRectangles(subSymbol))]}collectCircles(symbol){return[...symbol.circles,...symbol.subSymbols.flatMap(subSymbol=>this.collectCircles(subSymbol))]}collectArcs(symbol){return[...symbol.arcs,...symbol.subSymbols.flatMap(subSymbol=>this.collectArcs(subSymbol))]}collectTexts(symbol){return[...symbol.texts,...symbol.subSymbols.flatMap(subSymbol=>this.collectTexts(subSymbol))]}createSchematicPreview(params){let{symbol,pins,schematicSymbolId,sourceComponentId,sourcePortIdByPinNumber}=params,bounds=this.getPinBounds(pins),origin=this.getPreviewCenter(),transform7=compose(translate(origin.x,origin.y),scale(this.getPreviewScale(bounds))),bodyBox=this.getBodyBox({symbol,transform:transform7}),schematicComponentData={source_component_id:sourceComponentId,schematic_symbol_id:schematicSymbolId,center:bodyBox?.center??origin,size:bodyBox?{width:bodyBox.width,height:bodyBox.height}:{width:0,height:0},is_box_with_pins:!0,symbol_display_value:this.getSymbolProperties(symbol).Value||this.getSymbolName(symbol)},schematicComponent=this.ctx.db.schematic_component.insert(schematicComponentData),pinNamesHidden=symbol.pinNames?.hide===!0;for(let pin of pins){if(!pin.at)continue;let pinNumber=pin.numberString||"",sourcePortId=sourcePortIdByPinNumber.get(pinNumber);if(!sourcePortId)continue;let schematicPortData={schematic_component_id:schematicComponent.schematic_component_id,source_port_id:sourcePortId,center:applyToPoint(transform7,{x:pin.at.x,y:pin.at.y}),facing_direction:rotationToDirection(pin.at.angle??0),...this.getSchematicPortPinMetadata({pin,pinNumber,transform:transform7,pinNamesHidden})};this.ctx.db.schematic_port.insert(schematicPortData)}this.createSchematicPrimitives({symbol,schematicComponentId:schematicComponent.schematic_component_id,schematicSymbolId,transform:transform7}),this.createPropertyTextPrimitives({symbol,schematicComponentId:schematicComponent.schematic_component_id,schematicSymbolId,transform:transform7})}getPreviewCenter(){let index=this.previewIndex++,column=index%PREVIEW_COLUMNS,row=Math.floor(index/PREVIEW_COLUMNS);return{x:(column-(PREVIEW_COLUMNS-1)/2)*PREVIEW_CELL_WIDTH,y:-row*PREVIEW_CELL_HEIGHT}}getPinBounds(pins){let pinsWithPositions=pins.filter(pin=>pin.at);if(pinsWithPositions.length===0)return{width:15,height:15};let xs3=pinsWithPositions.map(pin=>pin.at.x),ys3=pinsWithPositions.map(pin=>pin.at.y);return{width:Math.max(...xs3)-Math.min(...xs3)+7.5,height:Math.max(...ys3)-Math.min(...ys3)+7.5}}getPreviewScale(bounds){let scaleX=PREVIEW_CELL_WIDTH*PREVIEW_CELL_FILL_RATIO/Math.max(1,bounds.width),scaleY=PREVIEW_CELL_HEIGHT*PREVIEW_CELL_FILL_RATIO/Math.max(1,bounds.height);return Math.min(MAX_KICAD_SYMBOL_UNIT_TO_CJ,scaleX,scaleY)}createSchematicPrimitives(params){let{symbol,schematicComponentId,schematicSymbolId,transform:transform7}=params,scale52=this.scaleOf(transform7);for(let polyline of this.collectPolylines(symbol))this.createPolylinePrimitives({polyline,schematicComponentId,schematicSymbolId,transform:transform7});for(let rectangle of this.collectRectangles(symbol)){if(this.getShapeFillType(rectangle)==="background")continue;let startPoint=this.getShapePoint(rectangle,"start"),endPoint=this.getShapePoint(rectangle,"end");if(!startPoint||!endPoint)continue;let start=applyToPoint(transform7,startPoint),end=applyToPoint(transform7,endPoint),rectData={schematic_component_id:schematicComponentId,schematic_symbol_id:schematicSymbolId,center:{x:(start.x+end.x)/2,y:(start.y+end.y)/2},width:Math.abs(end.x-start.x),height:Math.abs(end.y-start.y),rotation:0,stroke_width:this.toStrokeWidth(this.getShapeStroke(rectangle)?.width,scale52),color:DEFAULT_STROKE_COLOR,is_filled:this.isFilled(this.getShapeFillType(rectangle)),fill_color:this.getFillColor(this.getShapeFillType(rectangle)),is_dashed:this.getShapeStroke(rectangle)?.type==="dash"};this.ctx.db.schematic_rect.insert(rectData)}for(let circle2 of this.collectCircles(symbol)){let center2=this.getShapePoint(circle2,"center"),radius=this.getShapeNumber(circle2,"radius");if(!center2||radius===void 0)continue;let circleData={schematic_component_id:schematicComponentId,schematic_symbol_id:schematicSymbolId,center:applyToPoint(transform7,center2),radius:radius*scale52,stroke_width:this.toStrokeWidth(this.getShapeStroke(circle2)?.width,scale52),color:DEFAULT_STROKE_COLOR,is_filled:this.isFilled(this.getShapeFillType(circle2)),fill_color:this.getFillColor(this.getShapeFillType(circle2)),is_dashed:this.getShapeStroke(circle2)?.type==="dash"};this.ctx.db.schematic_circle.insert(circleData)}for(let arc2 of this.collectArcs(symbol)){let arcPoints=this.getArcPoints(arc2);if(!arcPoints)continue;let arcGeometry=this.getArcGeometry({arc:arc2,transform:transform7});if(!arcGeometry){let pathData={schematic_component_id:schematicComponentId,schematic_symbol_id:schematicSymbolId,points:[arcPoints.start,arcPoints.mid,arcPoints.end].map(point6=>applyToPoint(transform7,point6)),stroke_width:this.toStrokeWidth(this.getShapeStroke(arc2)?.width,scale52),stroke_color:DEFAULT_STROKE_COLOR,is_dashed:this.getShapeStroke(arc2)?.type==="dash"};this.ctx.db.schematic_path.insert(pathData);continue}let arcData={schematic_component_id:schematicComponentId,schematic_symbol_id:schematicSymbolId,...arcGeometry,stroke_width:this.toStrokeWidth(this.getShapeStroke(arc2)?.width,scale52),color:DEFAULT_STROKE_COLOR,is_dashed:this.getShapeStroke(arc2)?.type==="dash"};this.ctx.db.schematic_arc.insert(arcData)}for(let text of this.collectTexts(symbol)){if(!text.value)continue;let textData={schematic_component_id:schematicComponentId,schematic_symbol_id:schematicSymbolId,text:text.value,font_size:Math.max(.1,this.getFontSize(text.effects)*scale52),position:applyToPoint(transform7,text.at??{x:0,y:0}),rotation:-(text.at?.angle??0),anchor:"center",color:DEFAULT_STROKE_COLOR};this.ctx.db.schematic_text.insert(textData)}}createPropertyTextPrimitives(params){let{symbol,schematicComponentId,schematicSymbolId,transform:transform7}=params,scale52=this.scaleOf(transform7);for(let property of symbol.properties){if(property.hidden||!property.value||!this.shouldRenderProperty(property))continue;let textData={schematic_component_id:schematicComponentId,schematic_symbol_id:schematicSymbolId,text:property.value,font_size:Math.max(.1,this.getFontSize(property.effects)*scale52),position:applyToPoint(transform7,property.at??{x:0,y:0}),rotation:-(property.at?.angle??0),anchor:this.getTextAnchor(property.effects?.justify?.horizontal),color:DEFAULT_STROKE_COLOR};this.ctx.db.schematic_text.insert(textData)}}shouldRenderProperty(property){return property.key==="Reference"||property.key==="Value"}getTextAnchor(justify){return justify==="left"?"left":justify==="right"?"right":"center"}createPolylinePrimitives(params){let{polyline,schematicComponentId,schematicSymbolId,transform:transform7}=params,scale52=this.scaleOf(transform7),points=this.getPolylinePoints(polyline);if(!(points.length<2)){if(this.isFilled(polyline.fill?.type)&&points.length>=3){let pathData={schematic_component_id:schematicComponentId,schematic_symbol_id:schematicSymbolId,points:points.map(point6=>applyToPoint(transform7,point6)),stroke_width:this.toStrokeWidth(polyline.stroke?.width,scale52),stroke_color:DEFAULT_STROKE_COLOR,is_dashed:polyline.stroke?.type==="dash",is_filled:!0,fill_color:this.getFillColor(polyline.fill?.type)};this.ctx.db.schematic_path.insert(pathData)}for(let index=1;index<points.length;index++){let start=applyToPoint(transform7,points[index-1]),end=applyToPoint(transform7,points[index]),lineData={schematic_component_id:schematicComponentId,schematic_symbol_id:schematicSymbolId,x1:start.x,y1:start.y,x2:end.x,y2:end.y,stroke_width:this.toStrokeWidth(polyline.stroke?.width,scale52),color:DEFAULT_STROKE_COLOR,is_dashed:polyline.stroke?.type==="dash"};this.ctx.db.schematic_line.insert(lineData)}}}scaleOf(transform7){return Math.hypot(transform7.a,transform7.b)}toStrokeWidth(width,scale52){return width?Math.max(.01,width*scale52):null}isFilled(fillType){return fillType!==void 0&&fillType!=="none"}getFillColor(fillType){if(this.isFilled(fillType))return fillType==="background"?DEFAULT_FILL_COLOR2:DEFAULT_STROKE_COLOR}getBodyBox(params){let{symbol,transform:transform7}=params;for(let rectangle of this.collectRectangles(symbol)){if(this.getShapeFillType(rectangle)!=="background")continue;let startPoint=this.getShapePoint(rectangle,"start"),endPoint=this.getShapePoint(rectangle,"end");if(!startPoint||!endPoint)continue;let start=applyToPoint(transform7,startPoint),end=applyToPoint(transform7,endPoint);return{center:{x:(start.x+end.x)/2,y:(start.y+end.y)/2},width:Math.abs(end.x-start.x),height:Math.abs(end.y-start.y)}}return null}getFontSize(effects){let size3=effects?.font?.size;return size3?Math.max(size3.height,size3.width):1.27}getPolylinePoints(polyline){return polyline.points?.points.flatMap(point6=>"x"in point6&&"y"in point6?[{x:point6.x,y:point6.y}]:[])??[]}getShapeChildren(shape){return shape.getChildren()}getShapeChild(shape,token){return this.getShapeChildren(shape).find(child=>child.token===token)}getShapePoint(shape,token){let child=this.getShapeChild(shape,token);if(!(child?.x===void 0||child.y===void 0))return{x:child.x,y:child.y}}getShapeNumber(shape,token){return this.getShapeChild(shape,token)?.value}getShapeStroke(shape){return this.getShapeChild(shape,"stroke")}getShapeFillType(shape){return this.getShapeChild(shape,"fill")?.type}getArcPoints(arc2){let start=this.getShapePoint(arc2,"start"),mid=this.getShapePoint(arc2,"mid"),end=this.getShapePoint(arc2,"end");return!start||!mid||!end?null:{start,mid,end}}getArcGeometry(params){let{arc:arc2,transform:transform7}=params,arcPoints=this.getArcPoints(arc2);if(!arcPoints)return null;let start=applyToPoint(transform7,arcPoints.start),mid=applyToPoint(transform7,arcPoints.mid),end=applyToPoint(transform7,arcPoints.end),denominator=2*(start.x*(mid.y-end.y)+mid.x*(end.y-start.y)+end.x*(start.y-mid.y));if(Math.abs(denominator)<1e-9)return null;let startLen=start.x**2+start.y**2,midLen=mid.x**2+mid.y**2,endLen=end.x**2+end.y**2,center2={x:(startLen*(mid.y-end.y)+midLen*(end.y-start.y)+endLen*(start.y-mid.y))/denominator,y:(startLen*(end.x-mid.x)+midLen*(start.x-end.x)+endLen*(mid.x-start.x))/denominator},radius=Math.hypot(start.x-center2.x,start.y-center2.y),cross4=(mid.x-start.x)*(end.y-mid.y)-(mid.y-start.y)*(end.x-mid.x);return{center:center2,radius,start_angle_degrees:this.getArcAngleDegrees(start,center2),end_angle_degrees:this.getArcAngleDegrees(end,center2),direction:cross4>=0?"counterclockwise":"clockwise"}}getArcAngleDegrees(point6,center2){let{x:x3,y:y2}=applyToPoint(SCHEMATIC_ARC_ANGLE_FRAME,{x:point6.x-center2.x,y:point6.y-center2.y});return Math.atan2(y2,x3)*180/Math.PI}getManufacturerPartNumber(symbol){let properties=this.getSymbolProperties(symbol);return properties["Manufacturer Part Number"]||properties.MPN||properties["P/N"]||properties.Value||void 0}createSourceComponentData(symbol,pins){let base={name:this.getSymbolName(symbol),manufacturer_part_number:this.getManufacturerPartNumber(symbol)},ftype=this.inferFtype(symbol);switch(ftype){case"simple_resistor":return{...base,ftype,resistance:0};case"simple_capacitor":return{...base,ftype,capacitance:0};case"simple_inductor":return{...base,ftype,inductance:0};case"simple_transistor":return{...base,ftype,transistor_type:"npn"};case"simple_pin_header":return{...base,ftype,pin_count:this.getUniquePinCount(pins)||this.inferPinHeaderPinCountFromName(symbol)||1,gender:this.inferPinHeaderGender(symbol)};case"simple_test_point":case"simple_led":case"simple_diode":case"simple_chip":return{...base,ftype}}let exhaustiveCheck=ftype;throw new Error(`Unsupported source component ftype: ${exhaustiveCheck}`)}inferFtype(symbol){return inferSourceComponentFtype({name:this.getSymbolName(symbol),reference:this.getSymbolProperties(symbol).Reference??"",metadata:this.getSymbolMetadataText(symbol)})}getSymbolMetadataText(symbol){return Object.values(this.getSymbolProperties(symbol)).join(" ")}getUniquePinCount(pins){return this.countUniquePinIdentifiers(pins.map(pin=>pin.numberString||pin._sxNumber?.value))}countUniquePinIdentifiers(identifiers){return new Set(identifiers.map(identifier=>`${identifier??""}`.trim()).filter(Boolean)).size}inferPinHeaderGender(symbol){let combined=`${this.getSymbolName(symbol)} ${this.getSymbolMetadataText(symbol)}`.toLowerCase();return combined.includes("socket")||combined.includes("female")||combined.includes("pinsocket")?"female":"male"}inferPinHeaderPinCountFromName(symbol){let name=this.getSymbolName(symbol);if(!name)return;let match2=name.match(/(?:pin(?:header|socket)|conn)_(\d+)x(\d+)/i);if(!match2)return;let rows=Number.parseInt(match2[1],10),columns=Number.parseInt(match2[2],10);if(!(!Number.isFinite(rows)||!Number.isFinite(columns)))return rows*columns}getPortName(pin,pinNumber){return pin.name?pin.name:/^\d+$/.test(pinNumber)?`pin${Number(pinNumber)}`:pinNumber}getSourcePortPinMetadata(pinNumber){return/^\d+$/.test(pinNumber)?{pin_number:Number(pinNumber)}:{port_hints:[pinNumber]}}getSchematicPortPinMetadata(params){let{pin,pinNumber,transform:transform7,pinNamesHidden}=params,scale52=this.scaleOf(transform7),metadata={};return/^\d+$/.test(pinNumber)?metadata.pin_number=Number(pinNumber):metadata.display_pin_label=pinNumber,pin.name&&!pinNamesHidden&&(metadata.display_pin_label=pin.name),!pin.hidden&&pin.length&&pin.length>0&&(metadata.side_of_component=this.pinAngleToSideOfComponent(pin.at?.angle??0),metadata.distance_from_component_edge=pin.length*scale52),metadata}pinAngleToSideOfComponent(angle){let normalized=(angle%360+360)%360;return normalized>=315||normalized<45?"left":normalized>=45&&normalized<135?"bottom":normalized>=135&&normalized<225?"right":"top"}},InitializeSymbolLibraryContextStage=class extends ConverterStage{step(){return this.ctx.kicadSymbolLib?(this.ctx.warnings=this.ctx.warnings||[],this.ctx.stats=this.ctx.stats||{},this.finished=!0,!1):(this.finished=!0,!1)}},KicadSymbolToCircuitJsonConverter=class{constructor(){__publicField(this,"fsMap",{});__publicField(this,"ctx");__publicField(this,"currentStageIndex",0);__publicField(this,"pipeline")}get currentStage(){return this.pipeline?.[this.currentStageIndex]}addFile(filePath,content){this.fsMap[filePath]=content}_findFileWithExtension(extension){let filesWithExtension=Object.keys(this.fsMap).filter(key=>key.endsWith(extension));if(filesWithExtension.length>1)throw new Error(`Expected 0 or 1 file with extension ${extension}, got ${filesWithExtension.length}. Files: ${filesWithExtension.join(", ")}`);return filesWithExtension[0]??null}initializePipeline(){let symbolLibFile=this._findFileWithExtension(".kicad_sym");if(!symbolLibFile)throw new Error("No .kicad_sym file was added to the converter");this.ctx={db:cju_default([]),kicadSymbolLib:parseKicadSym(this.fsMap[symbolLibFile]),warnings:[],stats:{}},this.pipeline=[new InitializeSymbolLibraryContextStage(this.ctx),new CollectSymbolLibrarySymbolsStage(this.ctx)]}step(){return this.pipeline||this.initializePipeline(),this.currentStage?((!this.currentStage.step()||this.currentStage.finished)&&this.currentStageIndex++,this.currentStageIndex<(this.pipeline?.length||0)):!1}runUntilFinished(){this.pipeline||this.initializePipeline();for(let stage of this.pipeline||[])stage.runUntilFinished()}getOutput(){return this.ctx||(this.initializePipeline(),this.runUntilFinished()),this.ctx.db.toArray()}getOutputString(){return JSON.stringify(this.getOutput(),null,2)}getWarnings(){return this.ctx?.warnings||[]}getStats(){return this.ctx?.stats||{}}},CollectFootprintsStage=class extends ConverterStage{constructor(){super(...arguments);__publicField(this,"processedFootprints",new Set)}step(){if(!this.ctx.kicadPcb||!this.ctx.k2cMatPcb)return this.finished=!0,!1;let footprints=this.ctx.kicadPcb.footprints||[],footprintArray=Array.isArray(footprints)?footprints:[footprints];for(let footprint of footprintArray){let uuid=footprint.uuid?.value||footprint.tstamp?.value;uuid&&(this.processedFootprints.has(uuid)||(processFootprint(this.ctx,footprint),this.processedFootprints.add(uuid)))}return this.finished=!0,!1}},FULL_TURN=Math.PI*2;function normalizeToArray(value){return value?Array.isArray(value)?value:[value]:[]}function getLayerNames(layer){return layer?typeof layer=="string"?[layer]:layer.names||[]:[]}function getGraphicLayerNames(graphic){return getLayerNames(graphic?.layer)}function getPcbPoint(point6){return{x:point6?.x??0,y:point6?.y??0}}function getLineStartEnd(line2){return{start:getPcbPoint(line2.start),end:getPcbPoint(line2.end)}}function getArcStartMidEnd(arc2){return{start:getPcbPoint(arc2.start),mid:getPcbPoint(arc2.mid),end:getPcbPoint(arc2.end)}}function getCircleCenterEnd(circle2){return{center:getPcbPoint(circle2.center),end:getPcbPoint(circle2.end)}}function getGraphicArcs(kicadPcb){return normalizeToArray(kicadPcb.graphicArcs)}function getGraphicCircles(kicadPcb){return normalizeToArray(kicadPcb.graphicCircles)}function getGraphicCurves(kicadPcb){return normalizeToArray(kicadPcb.graphicCurves)}function getTopLevelCopperArcs(kicadPcb){return normalizeToArray(kicadPcb.arcs)}function approximateArcPoints(params){let{start,mid,end,segmentLength=.25,minSegments=8}=params,geometry=getArcGeometry({start,mid,end});if(!geometry)return[start,end];let arcLength2=Math.abs(geometry.radius*geometry.sweepAngle),numSegments=Math.max(2,minSegments,Math.ceil(arcLength2/segmentLength)),points=[];for(let i5=0;i5<=numSegments;i5++){let t52=i5/numSegments,angle=geometry.startAngle+geometry.sweepAngle*t52;points.push({x:geometry.center.x+geometry.radius*Math.cos(angle),y:geometry.center.y+geometry.radius*Math.sin(angle)})}return points}function getCurvePoints(curve){let xyPoints=(curve.points?.points??[]).filter(point6=>point6.token==="xy").map(point6=>getPcbPoint(point6));return xyPoints.length<4?null:{start:xyPoints[0],control1:xyPoints[1],control2:xyPoints[2],end:xyPoints[3]}}function approximateCubicBezierPoints(params){let{start,control1,control2,end,segmentLength=.25,minSegments=8}=params,controlPolygonLength=getDistance4(start,control1)+getDistance4(control1,control2)+getDistance4(control2,end),numSegments=Math.max(2,minSegments,Math.ceil(controlPolygonLength/segmentLength)),points=[];for(let i5=0;i5<=numSegments;i5++){let t52=i5/numSegments,omt=1-t52;points.push({x:omt**3*start.x+3*omt**2*t52*control1.x+3*omt*t52**2*control2.x+t52**3*end.x,y:omt**3*start.y+3*omt**2*t52*control1.y+3*omt*t52**2*control2.y+t52**3*end.y})}return points}function approximateCirclePoints(params){let{center:center2,end,segmentLength=.25,minSegments=16}=params,radius=getDistance4(center2,end);if(radius<=0)return[center2];let circumference=FULL_TURN*radius,numSegments=Math.max(8,minSegments,Math.ceil(circumference/segmentLength)),startAngle=Math.atan2(end.y-center2.y,end.x-center2.x),points=[];for(let i5=0;i5<=numSegments;i5++){let t52=i5/numSegments,angle=startAngle+FULL_TURN*t52;points.push({x:center2.x+radius*Math.cos(angle),y:center2.y+radius*Math.sin(angle)})}return points}function getArcGeometry(params){let{start,mid,end}=params,circle2=calculateArcCenter2({start,mid,end});if(!circle2)return null;let startAngle=Math.atan2(start.y-circle2.center.y,start.x-circle2.center.x),midAngle=Math.atan2(mid.y-circle2.center.y,mid.x-circle2.center.x),endAngle=Math.atan2(end.y-circle2.center.y,end.x-circle2.center.x),sweepAngle=normalizeSignedAngle(endAngle-startAngle),midSweep=normalizeSignedAngle(midAngle-startAngle),isCounterClockwise=sweepAngle>0;return isCounterClockwise&&midSweep>0&&midSweep<sweepAngle||!isCounterClockwise&&midSweep<0&&midSweep>sweepAngle||(sweepAngle=sweepAngle>0?sweepAngle-FULL_TURN:sweepAngle+FULL_TURN),{center:circle2.center,radius:circle2.radius,startAngle,sweepAngle}}function normalizeSignedAngle(angle){for(;angle<=-Math.PI;)angle+=FULL_TURN;for(;angle>Math.PI;)angle-=FULL_TURN;return angle}function calculateArcCenter2(params){let{start,mid,end}=params,ax3=start.x,ay3=start.y,bx3=mid.x,by3=mid.y,cx3=end.x,cy3=end.y,determinant=2*(ax3*(by3-cy3)+bx3*(cy3-ay3)+cx3*(ay3-by3));if(Math.abs(determinant)<1e-10)return null;let ux3=((ax3*ax3+ay3*ay3)*(by3-cy3)+(bx3*bx3+by3*by3)*(cy3-ay3)+(cx3*cx3+cy3*cy3)*(ay3-by3))/determinant,uy3=((ax3*ax3+ay3*ay3)*(cx3-bx3)+(bx3*bx3+by3*by3)*(ax3-cx3)+(cx3*cx3+cy3*cy3)*(bx3-ax3))/determinant;return{center:{x:ux3,y:uy3},radius:Math.sqrt((ax3-ux3)**2+(ay3-uy3)**2)}}function getDistance4(a3,b4){return Math.hypot(b4.x-a3.x,b4.y-a3.y)}var EDGE_CUT_POINT_EPSILON=.01,KICAD_TEXT_HEIGHT_TO_CIRCUIT_JSON_FONT_SIZE2=1.5;function convertKiCadAngleToCircuitJsonCcwRotation2(rotationDegrees){if(!rotationDegrees)return 0;let circuitJsonRotation=rotationDegrees%360;return circuitJsonRotation<0?circuitJsonRotation+360:circuitJsonRotation}var CollectGraphicsStage=class extends ConverterStage{step(){if(!this.ctx.kicadPcb||!this.ctx.k2cMatPcb)return this.finished=!0,!1;let lines=this.ctx.kicadPcb.graphicLines||[],lineArray=Array.isArray(lines)?lines:[lines],arcArray=getGraphicArcs(this.ctx.kicadPcb),circleArray=getGraphicCircles(this.ctx.kicadPcb),curveArray=getGraphicCurves(this.ctx.kicadPcb),grRects=this.ctx.kicadPcb.graphicRects||[],rectArray=Array.isArray(grRects)?grRects:[grRects],edgeCutPrimitives=[];for(let line2 of lineArray){let layerStr=getGraphicLayerNames(line2).join(" ");if(layerStr.includes("Edge.Cuts")){let{start,end}=getLineStartEnd(line2);edgeCutPrimitives.push({type:"line",start,end})}else if(layerStr.includes("SilkS")||layerStr.includes("Fab")||layerStr.includes("CrtYd")){let renderLayer=mapKicadLayerToPcbRenderLayer(line2.layer);renderLayer&&this.createGraphicPath(line2,renderLayer)}}for(let arc2 of arcArray){let layerStr=getGraphicLayerNames(arc2).join(" ");if(layerStr.includes("Edge.Cuts")){let{start,mid,end}=getArcStartMidEnd(arc2);edgeCutPrimitives.push({type:"arc",start,mid,end})}else if(layerStr.includes("SilkS")||layerStr.includes("Fab")||layerStr.includes("CrtYd")){let renderLayer=mapKicadLayerToPcbRenderLayer(arc2.layer);renderLayer&&this.createGraphicArc(arc2,renderLayer)}}for(let circle2 of circleArray){if(!getGraphicLayerNames(circle2).join(" ").includes("Edge.Cuts"))continue;let{center:center2,end}=getCircleCenterEnd(circle2);edgeCutPrimitives.push({type:"circle",center:center2,start:end,end})}for(let curve of curveArray){if(!getGraphicLayerNames(curve).join(" ").includes("Edge.Cuts"))continue;let points=getCurvePoints(curve);points&&edgeCutPrimitives.push({type:"curve",start:points.start,control1:points.control1,control2:points.control2,end:points.end})}for(let rect of rectArray)getGraphicLayerNames(rect).join(" ").includes("Edge.Cuts")&&edgeCutPrimitives.push(...this.getRectEdgeCutPrimitives(rect));edgeCutPrimitives.push(...this.getFootprintEdgeCutPrimitives()),edgeCutPrimitives.length>0&&this.createBoardOutline(edgeCutPrimitives);for(let rect of rectArray)this.processRectangle(rect);let grPolys=this.ctx.kicadPcb.graphicPolys||[],polyArray=Array.isArray(grPolys)?grPolys:[grPolys];for(let poly of polyArray)this.processPolygon(poly);let texts=this.ctx.kicadPcb.graphicTexts||[],textArray=Array.isArray(texts)?texts:[texts];for(let text of textArray){let renderLayer=mapKicadLayerToPcbRenderLayer(text.layer);renderLayer&&this.createGraphicText(text,renderLayer)}return this.finished=!0,!1}createBoardOutline(primitives){if(!this.ctx.k2cMatPcb)return;let contours=this.createBoardContours(primitives);if(contours.length===0)return;let boardContour=contours.reduce((largestContour,contour)=>contour.area>largestContour.area?contour:largestContour),points=boardContour.points,numLayers=getPcbCopperLayerCount(this.ctx.kicadPcb);for(let contour of contours)contour!==boardContour&&this.createEdgeCutCutout(contour);let existingBoard=this.ctx.db.pcb_board.list()[0];existingBoard?(existingBoard.outline=points,existingBoard.width=this.calculateWidth(points),existingBoard.height=this.calculateHeight(points),existingBoard.num_layers=numLayers):this.ctx.db.insert({type:"pcb_board",center:{x:0,y:0},outline:points,width:this.calculateWidth(points),height:this.calculateHeight(points),num_layers:numLayers})}createBoardContours(primitives){return this.orderConnectedContours(primitives).map(contourPrimitives=>{let points=this.getBoardContourPoints(contourPrimitives);return{primitives:contourPrimitives,points,area:Math.abs(this.calculatePolygonArea(points))}}).filter(contour=>contour.points.length>0)}getFootprintEdgeCutPrimitives(){let footprints=this.ctx.kicadPcb?.footprints||[],footprintArray=Array.isArray(footprints)?footprints:[footprints],primitives=[];for(let footprint of footprintArray){let position4=footprint.position,footprintPosition=getPcbPoint(position4),footprintRotation=position4?.angle??0,fpLines=footprint.fpLines||[],fpLineArray=Array.isArray(fpLines)?fpLines:[fpLines];for(let line2 of fpLineArray){if(!getGraphicLayerNames(line2).join(" ").includes("Edge.Cuts"))continue;let{start,end}=getLineStartEnd(line2);primitives.push(this.transformFootprintPrimitive({primitive:{type:"line",start,end},footprintPosition,footprintCcwRotationDegrees:footprintRotation}))}let fpArcs=footprint.fpArcs||[],fpArcArray=Array.isArray(fpArcs)?fpArcs:[fpArcs];for(let arc2 of fpArcArray){if(!getGraphicLayerNames(arc2).join(" ").includes("Edge.Cuts"))continue;let{start,mid,end}=getArcStartMidEnd(arc2);primitives.push(this.transformFootprintPrimitive({primitive:{type:"arc",start,mid,end},footprintPosition,footprintCcwRotationDegrees:footprintRotation}))}let fpCircles=footprint.fpCircles||[],fpCircleArray=Array.isArray(fpCircles)?fpCircles:[fpCircles];for(let circle2 of fpCircleArray){if(!getGraphicLayerNames(circle2).join(" ").includes("Edge.Cuts"))continue;let{center:center2,end}=getCircleCenterEnd(circle2);primitives.push(this.transformFootprintPrimitive({primitive:{type:"circle",center:center2,start:end,end},footprintPosition,footprintCcwRotationDegrees:footprintRotation}))}let fpRects=footprint.fpRects||[],fpRectArray=Array.isArray(fpRects)?fpRects:[fpRects];for(let rect of fpRectArray)getGraphicLayerNames(rect).join(" ").includes("Edge.Cuts")&&primitives.push(...this.getRectEdgeCutPrimitives(rect).map(primitive=>this.transformFootprintPrimitive({primitive,footprintPosition,footprintCcwRotationDegrees:footprintRotation})))}return primitives}transformFootprintPrimitive(params){let{primitive,footprintPosition,footprintCcwRotationDegrees}=params;return primitive.type==="arc"?{type:"arc",start:this.transformFootprintPoint({point:primitive.start,footprintPosition,footprintCcwRotationDegrees}),mid:this.transformFootprintPoint({point:primitive.mid,footprintPosition,footprintCcwRotationDegrees}),end:this.transformFootprintPoint({point:primitive.end,footprintPosition,footprintCcwRotationDegrees})}:primitive.type==="circle"?{type:"circle",center:this.transformFootprintPoint({point:primitive.center,footprintPosition,footprintCcwRotationDegrees}),start:this.transformFootprintPoint({point:primitive.start,footprintPosition,footprintCcwRotationDegrees}),end:this.transformFootprintPoint({point:primitive.end,footprintPosition,footprintCcwRotationDegrees})}:primitive.type==="curve"?{type:"curve",start:this.transformFootprintPoint({point:primitive.start,footprintPosition,footprintCcwRotationDegrees}),control1:this.transformFootprintPoint({point:primitive.control1,footprintPosition,footprintCcwRotationDegrees}),control2:this.transformFootprintPoint({point:primitive.control2,footprintPosition,footprintCcwRotationDegrees}),end:this.transformFootprintPoint({point:primitive.end,footprintPosition,footprintCcwRotationDegrees})}:{type:"line",start:this.transformFootprintPoint({point:primitive.start,footprintPosition,footprintCcwRotationDegrees}),end:this.transformFootprintPoint({point:primitive.end,footprintPosition,footprintCcwRotationDegrees})}}transformFootprintPoint(params){let{point:point6,footprintPosition,footprintCcwRotationDegrees}=params,rotated=rotatePoint6({point:point6,ccwRotationDegrees:-footprintCcwRotationDegrees});return{x:footprintPosition.x+rotated.x,y:footprintPosition.y+rotated.y}}orderConnectedContours(primitives){let remainingSegments=[...primitives],contours=[];for(;remainingSegments.length>0;){let orderedSegments=[remainingSegments.shift()];for(;remainingSegments.length>0;){let lastEnd=orderedSegments[orderedSegments.length-1].end,foundIndex=remainingSegments.findIndex(seg=>this.pointsEqualKicad(seg.start,lastEnd));if(foundIndex!==-1){orderedSegments.push(remainingSegments.splice(foundIndex,1)[0]);continue}if(foundIndex=remainingSegments.findIndex(seg=>this.pointsEqualKicad(seg.end,lastEnd)),foundIndex!==-1){let segment2=remainingSegments.splice(foundIndex,1)[0];orderedSegments.push(this.reverseBoardPrimitive(segment2));continue}break}contours.push(orderedSegments)}return contours}reverseBoardPrimitive(segment2){return segment2.type==="arc"?{type:"arc",start:segment2.end,mid:segment2.mid,end:segment2.start}:segment2.type==="circle"?{type:"circle",center:segment2.center,start:segment2.end,end:segment2.start}:segment2.type==="curve"?{type:"curve",start:segment2.end,control1:segment2.control2,control2:segment2.control1,end:segment2.start}:{type:"line",start:segment2.end,end:segment2.start}}getRectEdgeCutPrimitives(rect){let{start,end}=this.getRectStartEnd(rect),topLeft={x:start.x,y:start.y},topRight={x:end.x,y:start.y},bottomRight={x:end.x,y:end.y},bottomLeft={x:start.x,y:end.y};return[{type:"line",start:topLeft,end:topRight},{type:"line",start:topRight,end:bottomRight},{type:"line",start:bottomRight,end:bottomLeft},{type:"line",start:bottomLeft,end:topLeft}]}getRectStartEnd(rect){return{start:{x:rect.start?.x??rect._sxStart?._x??0,y:rect.start?.y??rect._sxStart?._y??0},end:{x:rect.end?.x??rect._sxEnd?._x??0,y:rect.end?.y??rect._sxEnd?._y??0}}}getBoardContourPoints(primitives){if(!this.ctx.k2cMatPcb)return[];let points=[];for(let segment2 of primitives){let kicadPoints=this.getPrimitivePoints(segment2);for(let kicadPoint of kicadPoints){let point6=applyToPoint(this.ctx.k2cMatPcb,kicadPoint),lastPoint=points[points.length-1];(!lastPoint||!this.pointsEqual(lastPoint,point6))&&points.push(point6)}}return points}getPrimitivePoints(segment2){return segment2.type==="arc"?approximateArcPoints({start:segment2.start,mid:segment2.mid,end:segment2.end,segmentLength:.25,minSegments:16}):segment2.type==="circle"?approximateCirclePoints({center:segment2.center,end:segment2.end,segmentLength:.25,minSegments:16}):segment2.type==="curve"?approximateCubicBezierPoints({start:segment2.start,control1:segment2.control1,control2:segment2.control2,end:segment2.end,segmentLength:.25,minSegments:16}):[segment2.start,segment2.end]}createEdgeCutCutout(contour){let[circle2]=contour.primitives;if(circle2?.type==="circle"&&contour.primitives.length===1){this.createEdgeCutCircleHole(circle2);return}this.ctx.db.pcb_cutout.insert({shape:"polygon",points:contour.points})}createEdgeCutCircleHole(circle2){if(!this.ctx.k2cMatPcb)return;let center2=applyToPoint(this.ctx.k2cMatPcb,circle2.center),radius=Math.hypot(circle2.end.x-circle2.center.x,circle2.end.y-circle2.center.y);this.ctx.db.pcb_hole.insert({hole_shape:"circle",hole_diameter:radius*2,x:center2.x,y:center2.y})}calculatePolygonArea(points){let area=0;for(let i5=0;i5<points.length;i5++){let current3=points[i5],next2=points[(i5+1)%points.length];area+=current3.x*next2.y-next2.x*current3.y}return area/2}createGraphicPath(line2,renderLayer){if(!this.ctx.k2cMatPcb)return;let{start,end}=getLineStartEnd(line2),startPos=applyToPoint(this.ctx.k2cMatPcb,start),endPos=applyToPoint(this.ctx.k2cMatPcb,end),layer=mapKicadLayerToVisibleLayer(line2.layer),strokeWidth=line2.width||.15;this.insertRouteGraphic({layer,renderLayer,pcbComponentId:"",route:[startPos,endPos],strokeWidth})}createGraphicArc(arc2,renderLayer){if(!this.ctx.k2cMatPcb)return;let{start,mid,end}=getArcStartMidEnd(arc2),route=approximateArcPoints({start,mid,end,segmentLength:.1,minSegments:8}).map(point6=>applyToPoint(this.ctx.k2cMatPcb,point6)),layer=mapKicadLayerToVisibleLayer(arc2.layer),strokeWidth=arc2.stroke?.width??arc2._sxStroke?._sxWidth?.value??arc2.width??.15;this.insertRouteGraphic({layer,renderLayer,pcbComponentId:"",route,strokeWidth})}insertRouteGraphic(options){let{layer,renderLayer,pcbComponentId,route,strokeWidth}=options;if(renderLayer.endsWith("_silkscreen")){this.ctx.db.pcb_silkscreen_path.insert({pcb_component_id:pcbComponentId,layer,route,stroke_width:strokeWidth});return}if(renderLayer.endsWith("_fabrication_note")){this.ctx.db.pcb_fabrication_note_path.insert({pcb_component_id:pcbComponentId,layer,route,stroke_width:strokeWidth});return}this.ctx.db.pcb_courtyard_outline.insert({pcb_component_id:pcbComponentId,layer,outline:route})}processRectangle(rect){if(!this.ctx.k2cMatPcb)return;let start={x:rect._sxStart?._x??0,y:rect._sxStart?._y??0},end={x:rect._sxEnd?._x??0,y:rect._sxEnd?._y??0},renderLayer=mapKicadLayerToPcbRenderLayer(rect._sxLayer),isFilled=rect._sxFill&&(rect._sxFill.isFilled===!0||String(rect._sxFill).includes("fill yes")),isCopperLayer=renderLayer?.endsWith("_copper"),centerKicad={x:(start.x+end.x)/2,y:(start.y+end.y)/2},widthKicad=Math.abs(end.x-start.x),heightKicad=Math.abs(end.y-start.y),centerCJ=applyToPoint(this.ctx.k2cMatPcb,centerKicad);if(isFilled&&isCopperLayer){let layer2=mapKicadLayerToLayerRef(rect._sxLayer);this.ctx.db.pcb_smtpad.insert({pcb_component_id:"",x:centerCJ.x,y:centerCJ.y,width:widthKicad,height:heightKicad,layer:layer2,shape:"rect",port_hints:[]}),this.ctx.stats&&(this.ctx.stats.pads=(this.ctx.stats.pads||0)+1);return}let layer=mapKicadLayerToVisibleLayer(rect._sxLayer),strokeWidth=rect.stroke?.width??rect._sxStroke?._sxWidth?.value??rect.width??.15;if(renderLayer?.endsWith("_fabrication_note")){this.ctx.db.pcb_fabrication_note_rect.insert({pcb_component_id:"",center:centerCJ,width:widthKicad,height:heightKicad,layer,stroke_width:strokeWidth,is_filled:isFilled,has_stroke:!0});return}renderLayer?.endsWith("_courtyard")&&this.ctx.db.pcb_courtyard_rect.insert({pcb_component_id:"",center:centerCJ,width:widthKicad,height:heightKicad,layer})}createGraphicText(text,renderLayer){if(!this.ctx.k2cMatPcb)return;let at3=text.at||text._sxPosition,pos=applyToPoint(this.ctx.k2cMatPcb,{x:at3?.x??0,y:at3?.y??0}),rotation5=convertKiCadAngleToCircuitJsonCcwRotation2(at3?.angle),layer=mapKicadLayerToVisibleLayer(text.layer),fontSize=(text._sxEffects?._sxFont?._sxSize?._height||text.effects?.font?.size?.y||1)*KICAD_TEXT_HEIGHT_TO_CIRCUIT_JSON_FONT_SIZE2,textValue=text.text||text._text||"",justify=text._sxEffects?._sxJustify||text.effects?.justify,anchorAlignment=mapKicadJustifyToAnchorAlignment(justify),isKnockout=extractKicadLayerNames(text.layer).includes("knockout");if(renderLayer.endsWith("_silkscreen")){let silkscreenText={pcb_component_id:"",text:textValue,anchor_position:pos,anchor_alignment:anchorAlignment,layer,font_size:fontSize,font:"tscircuit2024",ccw_rotation:rotation5||void 0};isKnockout&&(silkscreenText.is_knockout=!0),this.ctx.db.pcb_silkscreen_text.insert(silkscreenText);return}if(renderLayer.endsWith("_fabrication_note")){let fabricationNoteText={pcb_component_id:"",type:"pcb_fabrication_note_text",pcb_fabrication_note_text_id:"",text:textValue,anchor_position:pos,anchor_alignment:anchorAlignment,layer,font_size:fontSize,font:"tscircuit2024",ccw_rotation:rotation5||void 0};this.ctx.db.pcb_fabrication_note_text.insert(fabricationNoteText);return}if(renderLayer.endsWith("_copper")){let copperText={pcb_component_id:"",text:textValue,anchor_position:pos,anchor_alignment:anchorAlignment,layer,font_size:fontSize,font:"tscircuit2024",ccw_rotation:rotation5||void 0};this.ctx.db.pcb_copper_text.insert(copperText)}}pointsEqual(p12,p22){return Math.abs(p12.x-p22.x)<EDGE_CUT_POINT_EPSILON&&Math.abs(p12.y-p22.y)<EDGE_CUT_POINT_EPSILON}pointsEqualKicad(p12,p22){return Math.abs(p12.x-p22.x)<EDGE_CUT_POINT_EPSILON&&Math.abs(p12.y-p22.y)<EDGE_CUT_POINT_EPSILON}calculateWidth(points){if(points.length===0)return 0;let xs3=points.map(p3=>p3.x);return Math.max(...xs3)-Math.min(...xs3)}calculateHeight(points){if(points.length===0)return 0;let ys3=points.map(p3=>p3.y);return Math.max(...ys3)-Math.min(...ys3)}processPolygon(poly){if(!this.ctx.k2cMatPcb)return;let renderLayer=mapKicadLayerToPcbRenderLayer(poly._sxLayer),isFilled=poly._sxFill?.filled===!0,isCopperLayer=renderLayer?.endsWith("_copper");if(!isFilled&&!renderLayer?.endsWith("_courtyard"))return;let ptsData=poly._sxPts?.points||[],points=[];for(let pt3 of ptsData)if(pt3.token==="xy")points.push({x:pt3.x,y:pt3.y});else if(pt3.token==="arc"){let arcPoints=approximateArcPoints({start:{x:pt3._sxStart?._x,y:pt3._sxStart?._y},mid:{x:pt3._sxMid?._x,y:pt3._sxMid?._y},end:{x:pt3._sxEnd?._x,y:pt3._sxEnd?._y}});points.push(...arcPoints)}if(points.length<3)return;let transformedPoints=points.map(pt3=>applyToPoint(this.ctx.k2cMatPcb,pt3));if(isFilled&&isCopperLayer){let layer=mapKicadLayerToLayerRef(poly._sxLayer);this.ctx.db.pcb_smtpad.insert({pcb_component_id:"",shape:"polygon",points:transformedPoints,layer,port_hints:[]}),this.ctx.stats&&(this.ctx.stats.pads=(this.ctx.stats.pads||0)+1);return}if(renderLayer?.endsWith("_courtyard")){let layer=mapKicadLayerToVisibleLayer(poly._sxLayer);this.ctx.db.pcb_courtyard_outline.insert({pcb_component_id:"",layer,outline:transformedPoints})}}};function sanitizeCircuitJsonNetName(rawName,fallbackName){let name=(rawName?.trim()||fallbackName).replace(/\+/g,"_P").replace(/-/g,"_").replace(/[^A-Za-z0-9_]/g,"_").replace(/_+/g,"_").replace(/^_+|_+$/g,"")||fallbackName;return/^\d/.test(name)?`net_${name}`:name}var CollectNetsStage=class extends ConverterStage{step(){if(!this.ctx.kicadPcb||!this.ctx.netNumToName)return this.finished=!0,!1;let nets=this.ctx.kicadPcb.nets||[],netArray=Array.isArray(nets)?nets:[nets],usedNetNames=new Set;for(let net of netArray){let netNum=net._id??net.number??net.ordinal??0,rawNetName=net._name??net.name,sanitizedNetName=sanitizeCircuitJsonNetName(rawNetName,`Net_${netNum}`),netName=usedNetNames.has(sanitizedNetName)?`${sanitizedNetName}_${netNum}`:sanitizedNetName;usedNetNames.add(netName),this.ctx.netNumToName.set(netNum,netName)}return this.ctx.netNumToName.has(0)||this.ctx.netNumToName.set(0,""),this.finished=!0,!1}},CollectSourceTracesStage=class extends ConverterStage{constructor(){super(...arguments);__publicField(this,"processedNets",new Set)}step(){if(!this.ctx.kicadPcb||!this.ctx.netNumToName)return this.finished=!0,!1;let netToPads=new Map,footprints=this.ctx.kicadPcb.footprints||[],footprintArray=Array.isArray(footprints)?footprints:[footprints];for(let footprint of footprintArray)this.processFootprintPads(footprint,netToPads);this.collectNetsFromCopper(netToPads);for(let[netNum,pads]of netToPads.entries()){if(this.processedNets.has(netNum))continue;let sourcePortIds=this.getUniqueSourcePortIds(pads.map(p3=>p3.sourcePortId));this.ctx.netNumToSourcePortIds?.set(netNum,sourcePortIds);let sourceNetId=this.createSourceNet(netNum);this.createSourceTrace(netNum,sourceNetId,sourcePortIds),this.processedNets.add(netNum)}return this.finished=!0,!1}collectNetsFromCopper(netToPads){if(!this.ctx.kicadPcb)return;let segments=this.ctx.kicadPcb.segments||[],segmentArray=Array.isArray(segments)?segments:[segments];for(let segment2 of segmentArray){let netNum=this.getSegmentNet(segment2);netNum&&(netToPads.has(netNum)||netToPads.set(netNum,[]))}let arcArray=getTopLevelCopperArcs(this.ctx.kicadPcb);for(let arc2 of arcArray){let netNum=this.getSegmentNet(arc2);netNum&&(netToPads.has(netNum)||netToPads.set(netNum,[]))}}getSegmentNet(segment2){let net=segment2?.net;return net?typeof net=="number"?net:typeof net=="object"?net._id??net.number??net.ordinal??null:null:null}processFootprintPads(footprint,netToPads){let footprintUuid=footprint.uuid?.value||footprint.tstamp?.value;if(!footprintUuid)return;let componentId=this.ctx.footprintUuidToComponentId?.get(footprintUuid);if(!componentId)return;let pads=footprint.fpPads||[],padArray=Array.isArray(pads)?pads:[pads];for(let pad2 of padArray){let padNumber=pad2.number?.toString();if(!padNumber)continue;let netNum=this.getPadNet(pad2);if(netNum==null||netNum===0)continue;let sourcePortId=this.getOrCreateSourcePort({componentId,padNumber,footprint,pad:pad2});netToPads.has(netNum)||netToPads.set(netNum,[]),netToPads.get(netNum).push({componentId,padNumber,sourcePortId})}}getPadNet(pad2){return getPadNetNum(pad2)}getOrCreateSourcePort(params){let{componentId,padNumber,footprint,pad:pad2}=params,sourcePortId=getSourcePortIdForPad({componentId,footprint,pad:pad2});if(!sourcePortId)return`${componentId}_port_${padNumber}`;if(!this.ctx.db.source_port.list().find(sp3=>sp3.source_port_id===sourcePortId)){let footprintUuid=footprint.uuid?.value||footprint.tstamp?.value,sourceComponentId=footprintUuid&&this.ctx.footprintUuidToSourceComponentId?this.ctx.footprintUuidToSourceComponentId.get(footprintUuid):void 0;this.ctx.db.source_port.insert({source_port_id:sourcePortId,source_component_id:sourceComponentId||componentId,name:this.getSourcePortName(padNumber),pin_number:this.getSourcePortPinNumber(padNumber)})}return sourcePortId}getSourcePortName(padNumber){return/^\d+$/.test(padNumber)?`pin${Number(padNumber)}`:padNumber}getSourcePortPinNumber(padNumber){return/^\d+$/.test(padNumber)?Number(padNumber):padNumber}createSourceNet(netNum){let netName=this.ctx.netNumToName?.get(netNum)||`Net-${netNum}`,sourceNet=this.ctx.db.source_net.insert({name:netName,member_source_group_ids:[]});return this.ctx.netNumToSourceNetId?.set(netNum,sourceNet.source_net_id),this.ctx.stats&&(this.ctx.stats.traces=(this.ctx.stats.traces||0)+1),sourceNet.source_net_id}createSourceTrace(netNum,sourceNetId,sourcePortIds){let netName=this.ctx.netNumToName?.get(netNum)||`Net-${netNum}`,sourceTrace=this.ctx.db.source_trace.insert({connected_source_port_ids:sourcePortIds,connected_source_net_ids:[sourceNetId],display_name:netName});this.ctx.netNumToSourceTraceId?.set(netNum,sourceTrace.source_trace_id)}getUniqueSourcePortIds(sourcePortIds){let uniqueSourcePortIds=[];for(let sourcePortId of sourcePortIds)uniqueSourcePortIds.includes(sourcePortId)||uniqueSourcePortIds.push(sourcePortId);return uniqueSourcePortIds}};function isPointInsidePolygonContours(point6,contours,tolerance=0){let validContours=contours.filter(contour=>contour.length>=3);if(validContours.length===0)return!1;for(let contour of validContours)if(isPointOnContourBoundary(point6,contour,tolerance))return!0;let inside2=!1;for(let contour of validContours)isPointInsideContourInterior(point6,contour)&&(inside2=!inside2);return inside2}function isPointOnContourBoundary(point6,contour,tolerance){for(let i5=0,j4=contour.length-1;i5<contour.length;j4=i5++)if(getDistanceToSegment(point6,contour[j4],contour[i5])<=tolerance)return!0;return!1}function isPointInsideContourInterior(point6,contour){let inside2=!1;for(let i5=0,j4=contour.length-1;i5<contour.length;j4=i5++){let current3=contour[i5],previous=contour[j4];current3.y>point6.y!=previous.y>point6.y&&point6.x<(previous.x-current3.x)*(point6.y-current3.y)/(previous.y-current3.y)+current3.x&&(inside2=!inside2)}return inside2}function getDistanceToSegment(point6,start,end){let dx3=end.x-start.x,dy3=end.y-start.y,lengthSq=dx3*dx3+dy3*dy3;if(lengthSq===0)return Math.hypot(point6.x-start.x,point6.y-start.y);let projection=Math.max(0,Math.min(1,((point6.x-start.x)*dx3+(point6.y-start.y)*dy3)/lengthSq)),projectedX=start.x+projection*dx3,projectedY=start.y+projection*dy3;return Math.hypot(point6.x-projectedX,point6.y-projectedY)}var CollectTracesStage=class extends ConverterStage{constructor(){super(...arguments);__publicField(this,"PORT_MATCH_TOLERANCE",.001);__publicField(this,"POINT_KEY_PRECISION",1e6)}step(){if(!this.ctx.kicadPcb||!this.ctx.k2cMatPcb||!this.ctx.netNumToName||!this.ctx.netNumToSourceTraceId)return this.finished=!0,!1;let segments=this.ctx.kicadPcb.segments||[],segmentArray=Array.isArray(segments)?segments:[segments],arcArray=getTopLevelCopperArcs(this.ctx.kicadPcb),primitives=[];for(let segment2 of segmentArray){let primitive=this.getTracePrimitiveFromSegment(segment2);primitive&&primitives.push(primitive)}for(let arc2 of arcArray){let primitive=this.getTracePrimitiveFromArc(arc2);primitive&&primitives.push(primitive)}let vias=this.ctx.kicadPcb.vias||[],viaArray=Array.isArray(vias)?vias:[vias];for(let via of viaArray){let primitive=this.getTracePrimitiveFromVia(via);primitive&&primitives.push(primitive)}return this.createTracesFromPrimitives(primitives),this.finished=!0,!1}getTracePrimitiveFromSegment(segment2){if(!this.ctx.k2cMatPcb)return;let start=segment2.start||{x:0,y:0},end=segment2.end||{x:0,y:0},width=segment2.width||.2,layer=segment2.layer,layerStr=getLayerNames(layer).join(" "),mappedLayer=mapKicadLayerToLayerRef(layerStr),netNum=this.getSegmentNet(segment2),startPoint={x:start.x,y:start.y},endPoint={x:end.x,y:end.y};if(!this.pointsMatch(startPoint,endPoint))return{primitiveType:"wire",start:startPoint,end:endPoint,points:[startPoint,endPoint],width,layer:mappedLayer,netNum}}getTracePrimitiveFromArc(arc2){if(!this.ctx.k2cMatPcb)return;let{start,mid,end}=getArcStartMidEnd(arc2),width=arc2.width??arc2._sxWidth?.value??.2,layerStr=getLayerNames(arc2.layer).join(" "),mappedLayer=mapKicadLayerToLayerRef(layerStr),netNum=this.getSegmentNet(arc2),points=approximateArcPoints({start,mid,end,segmentLength:Math.max(width,.1),minSegments:8}),startPoint=points[0],endPoint=points[points.length-1];if(!(!startPoint||!endPoint||this.pointsMatch(startPoint,endPoint)))return{primitiveType:"wire",start:startPoint,end:endPoint,points,width,layer:mappedLayer,netNum}}getTracePrimitiveFromVia(via){let netNum=this.getSegmentNet(via);if(netNum===null)return;let at3=via.at||{x:0,y:0},point6={x:at3.x,y:at3.y},viaLayers=via.layers?getCopperSpanLayerRefsFromLayers(via.layers,this.ctx.kicadPcb):[],layers=viaLayers.length>0?viaLayers:getPcbCopperLayerRefs(this.ctx.kicadPcb),fromLayer=layers[0],toLayer=layers[layers.length-1];if(!(!fromLayer||!toLayer||fromLayer===toLayer))return{primitiveType:"via",start:point6,end:point6,points:[point6],fromLayer,toLayer,outerDiameter:via.size||.8,holeDiameter:via.drill||.4,netNum}}createTracesFromPrimitives(primitives){let groupedPrimitives=new Map;for(let primitive of primitives){let key=this.getPrimitiveGroupKey(primitive),group=groupedPrimitives.get(key)??[];group.push(primitive),groupedPrimitives.set(key,group)}for(let group of groupedPrimitives.values())this.createTracesFromPrimitiveGroup(group)}createTracesFromPrimitiveGroup(primitives){let graph=this.createTraceGraph(primitives),visitedEdgeIds=new Set,isTerminal=nodeKey=>this.isTerminalNode(nodeKey,graph);for(let nodeKey of graph.adjacency.keys())if(isTerminal(nodeKey))for(let edgeId of graph.adjacency.get(nodeKey)??[]){if(visitedEdgeIds.has(edgeId))continue;let path=this.walkTracePath({startNodeKey:nodeKey,firstEdgeId:edgeId,graph,visitedEdgeIds});this.insertTracePath(path)}for(let edge of graph.edges){if(visitedEdgeIds.has(edge.id))continue;let path=this.walkTracePath({startNodeKey:edge.startKey,firstEdgeId:edge.id,graph,visitedEdgeIds});this.insertTracePath(path)}}createTraceGraph(primitives){let edges=[],adjacency=new Map;for(let primitive of primitives){let id3=edges.length,startLayer=primitive.primitiveType==="via"?primitive.fromLayer:primitive.layer,endLayer=primitive.primitiveType==="via"?primitive.toLayer:primitive.layer,startKey=this.getTraceGraphNodeKey(primitive.start,startLayer),endKey=this.getTraceGraphNodeKey(primitive.end,endLayer),edge={...primitive,id:id3,startKey,endKey};edges.push(edge);for(let nodeKey of[startKey,endKey]){let edgeIds=adjacency.get(nodeKey)??[];edgeIds.push(id3),adjacency.set(nodeKey,edgeIds)}}return{edges,adjacency}}walkTracePath(params){let{startNodeKey,firstEdgeId,graph,visitedEdgeIds}=params,path=[],currentNodeKey=startNodeKey,edgeId=firstEdgeId;for(;!visitedEdgeIds.has(edgeId);){let edge=graph.edges[edgeId];if(!edge)break;let reversed=edge.endKey===currentNodeKey;if(path.push({edge,reversed}),visitedEdgeIds.add(edgeId),currentNodeKey=reversed?edge.startKey:edge.endKey,this.isTerminalNode(currentNodeKey,graph))break;let nextEdgeId=(graph.adjacency.get(currentNodeKey)??[]).find(candidateEdgeId=>candidateEdgeId!==edgeId&&!visitedEdgeIds.has(candidateEdgeId));if(nextEdgeId===void 0)break;edgeId=nextEdgeId}return path}insertTracePath(path){if(!this.ctx.k2cMatPcb||!this.ctx.netNumToSourceTraceId||path.length===0)return;let routePoints=this.getPathRoutePoints(path);if(routePoints.length<2)return;let netNum=path[0].edge.netNum,sourceTraceId=netNum!==null?this.ctx.netNumToSourceTraceId.get(netNum)??void 0:void 0,firstWireIndex=routePoints.findIndex(point6=>point6.routeType==="wire"),lastWireIndex=routePoints.findLastIndex(point6=>point6.routeType==="wire");if(firstWireIndex===-1)return;let firstWirePoint=routePoints[firstWireIndex],lastWirePoint=routePoints[lastWireIndex],startPcbPortId=this.findPortAtPosition({x:firstWirePoint.x,y:firstWirePoint.y},firstWirePoint.layer,netNum),endPcbPortId=this.findPortAtPosition({x:lastWirePoint.x,y:lastWirePoint.y},lastWirePoint.layer,netNum),route=routePoints.map((point6,index)=>point6.routeType==="via"?{route_type:"via",x:point6.x,y:point6.y,from_layer:point6.fromLayer,to_layer:point6.toLayer,...point6.outerDiameter?{outer_diameter:point6.outerDiameter}:{},...point6.holeDiameter?{hole_diameter:point6.holeDiameter}:{}}:{route_type:"wire",x:point6.x,y:point6.y,width:point6.width,layer:point6.layer,...index===firstWireIndex&&startPcbPortId?{start_pcb_port_id:startPcbPortId}:{},...index===lastWireIndex&&endPcbPortId?{end_pcb_port_id:endPcbPortId}:{}});this.ctx.db.pcb_trace.insert({route,source_trace_id:sourceTraceId,pcb_port_id:void 0}),this.ctx.stats&&(this.ctx.stats.traces=(this.ctx.stats.traces||0)+1)}getPathRoutePoints(path){let routePoints=[],lastRawPoint,lastWireLayer;for(let{edge,reversed}of path){if(edge.primitiveType==="via"){let point6=edge.start,transformedPoint=applyToPoint(this.ctx.k2cMatPcb,point6);routePoints.push({routeType:"via",x:transformedPoint.x,y:transformedPoint.y,fromLayer:reversed?edge.toLayer:edge.fromLayer,toLayer:reversed?edge.fromLayer:edge.toLayer,outerDiameter:edge.outerDiameter,holeDiameter:edge.holeDiameter});continue}let edgePoints=reversed?[...edge.points].reverse():edge.points,layer=edge.layer,width=edge.width;for(let point6 of edgePoints){if(lastRawPoint&&lastWireLayer===layer&&this.pointsMatch(lastRawPoint,point6))continue;let transformedPoint=applyToPoint(this.ctx.k2cMatPcb,point6);routePoints.push({routeType:"wire",x:transformedPoint.x,y:transformedPoint.y,width,layer}),lastRawPoint=point6,lastWireLayer=layer}}return routePoints}isTerminalNode(nodeKey,graph){let edgeIds=graph.adjacency.get(nodeKey)??[];if(edgeIds.length!==2)return!0;let{point:point6,layer}=this.getTraceGraphNodeFromKey(nodeKey),transformedPoint=applyToPoint(this.ctx.k2cMatPcb,point6),netNum=graph.edges[edgeIds[0]]?.netNum??null;return!!this.findPortCenterAtPosition(transformedPoint,layer,netNum)}getPrimitiveGroupKey(primitive){return`${primitive.netNum??"no-net"}`}getPointKey(point6){let x3=Math.round(point6.x*this.POINT_KEY_PRECISION),y2=Math.round(point6.y*this.POINT_KEY_PRECISION);return`${x3},${y2}`}getPointFromKey(pointKey4){let[x3,y2]=pointKey4.split(",").map(Number);return{x:(x3??0)/this.POINT_KEY_PRECISION,y:(y2??0)/this.POINT_KEY_PRECISION}}getTraceGraphNodeKey(point6,layer){return`${layer}:${this.getPointKey(point6)}`}getTraceGraphNodeFromKey(nodeKey){let[layer,...pointKeyParts]=nodeKey.split(":");return{layer,point:this.getPointFromKey(pointKeyParts.join(":"))}}pointsMatch(a3,b4){return this.getPointKey(a3)===this.getPointKey(b4)}getSegmentNet(segment2){let net=segment2?.net;return net?typeof net=="number"?net:typeof net=="object"?net._id??net.number??net.ordinal??null:null:null}findPortAtPosition(point6,layer,netNum){let portAtCenter=this.findPortCenterAtPosition(point6,layer,netNum);return portAtCenter||this.findPortContainingPoint(point6,layer,netNum)}findPortCenterAtPosition(point6,layer,netNum){let ports=this.ctx.db.pcb_port.list();for(let port of ports){if(!this.isPcbPortOnNet(port,netNum))continue;let layers=port.layers;if(!(layers?.length&&!layers.includes(layer))&&Math.abs((port.x??0)-point6.x)<=this.PORT_MATCH_TOLERANCE&&Math.abs((port.y??0)-point6.y)<=this.PORT_MATCH_TOLERANCE)return port.pcb_port_id}}findPortContainingPoint(point6,layer,netNum){let candidates=[],collectCandidate=pad2=>{let pcbPortId=pad2.pcb_port_id;if(!pcbPortId||!this.isPadOnLayer(pad2,layer))return;let pcbPort=this.ctx.db.pcb_port.get(pcbPortId);if(!this.isPcbPortOnNet(pcbPort,netNum)||!this.isPointInsidePadCopper(point6,pad2))return;let dx3=(pad2.x??0)-point6.x,dy3=(pad2.y??0)-point6.y;candidates.push({pcbPortId,distanceSq:dx3*dx3+dy3*dy3})};for(let pad2 of this.ctx.db.pcb_smtpad.list())collectCandidate(pad2);for(let pad2 of this.ctx.db.pcb_plated_hole.list())collectCandidate(pad2);return candidates.sort((a3,b4)=>a3.distanceSq-b4.distanceSq),candidates[0]?.pcbPortId}isPcbPortOnNet(port,netNum){if(netNum===null)return!0;let sourcePortId=port?.source_port_id;return sourcePortId?this.ctx.netNumToSourcePortIds?.get(netNum)?.includes(sourcePortId)??!1:!1}isPadOnLayer(pad2,layer){if(pad2.layer&&pad2.layer!==layer)return!1;let layers=pad2.layers;return!(layers?.length&&!layers.includes(layer))}isPointInsidePadCopper(point6,pad2){let shape=pad2.shape;if(shape==="circle")return this.isPointInsideCircle(point6,pad2);if(shape==="polygon")return isPointInsidePolygonContours(point6,this.getPadPolygonContours(pad2),this.PORT_MATCH_TOLERANCE);if(shape==="pill"||shape==="rotated_pill"){let width=pad2.width??pad2.outer_width,height=pad2.height??pad2.outer_height,rotation5=shape==="rotated_pill"?pad2.ccw_rotation:0;return this.isPointInsidePill(point6,pad2,width,height,rotation5)}if(shape==="rect"||shape==="rotated_rect"){let rotation5=shape==="rotated_rect"?pad2.ccw_rotation:0;return this.isPointInsideRect(point6,pad2,pad2.width,pad2.height,rotation5)}return shape==="circular_hole_with_rect_pad"||shape==="pill_hole_with_rect_pad"||shape==="rotated_pill_hole_with_rect_pad"?this.isPointInsideRect(point6,pad2,pad2.rect_pad_width,pad2.rect_pad_height,pad2.rect_ccw_rotation):!1}isPointInsideCircle(point6,pad2){let radius=pad2.radius??(pad2.outer_diameter!==void 0?pad2.outer_diameter/2:void 0)??(pad2.width!==void 0&&pad2.height!==void 0?Math.max(pad2.width,pad2.height)/2:void 0);if(radius===void 0)return!1;let dx3=point6.x-(pad2.x??0),dy3=point6.y-(pad2.y??0);return dx3*dx3+dy3*dy3<=(radius+this.PORT_MATCH_TOLERANCE)**2}isPointInsideRect(point6,pad2,width,height,ccwRotationDegrees){if(width===void 0||height===void 0)return!1;let local=this.getLocalPadPoint(point6,pad2,ccwRotationDegrees);return Math.abs(local.x)<=width/2+this.PORT_MATCH_TOLERANCE&&Math.abs(local.y)<=height/2+this.PORT_MATCH_TOLERANCE}isPointInsidePill(point6,pad2,width,height,ccwRotationDegrees){if(width===void 0||height===void 0)return!1;let local=this.getLocalPadPoint(point6,pad2,ccwRotationDegrees),radius=Math.min(width,height)/2,tolerance=this.PORT_MATCH_TOLERANCE;if(width>=height){let centerHalfWidth=width/2-radius;if(Math.abs(local.x)<=centerHalfWidth+tolerance&&Math.abs(local.y)<=radius+tolerance)return!0;let capX=local.x<0?-centerHalfWidth:centerHalfWidth;return(local.x-capX)**2+local.y**2<=(radius+tolerance)**2}let centerHalfHeight=height/2-radius;if(Math.abs(local.x)<=radius+tolerance&&Math.abs(local.y)<=centerHalfHeight+tolerance)return!0;let capY=local.y<0?-centerHalfHeight:centerHalfHeight;return local.x**2+(local.y-capY)**2<=(radius+tolerance)**2}getPadPolygonContours(pad2){let validContours=pad2.contours?.filter(contour=>contour.length>=3)??[];if(validContours.length>0)return validContours;let points=pad2.points;return points&&points.length>=3?[points]:[]}getLocalPadPoint(point6,pad2,ccwRotationDegrees){let dx3=point6.x-(pad2.x??0),dy3=point6.y-(pad2.y??0),radians2=-(ccwRotationDegrees??0)*Math.PI/180,cos6=Math.cos(radians2),sin6=Math.sin(radians2);return{x:dx3*cos6-dy3*sin6,y:dx3*sin6+dy3*cos6}}},CollectViasStage=class extends ConverterStage{step(){if(!this.ctx.kicadPcb||!this.ctx.k2cMatPcb||!this.ctx.netNumToName)return this.finished=!0,!1;let vias=this.ctx.kicadPcb.vias||[],viaArray=Array.isArray(vias)?vias:[vias];for(let via of viaArray)this.processVia(via);return this.finished=!0,!1}processVia(via){if(!this.ctx.k2cMatPcb||!this.ctx.netNumToName)return;let at3=via.at||{x:0,y:0},pos=applyToPoint(this.ctx.k2cMatPcb,{x:at3.x,y:at3.y}),size3=via.size||.8,drill=via.drill||.4,mappedLayers=via.layers?getCopperSpanLayerRefsFromLayers(via.layers,this.ctx.kicadPcb):[],layers=mappedLayers.length>0?mappedLayers:getPcbCopperLayerRefs(this.ctx.kicadPcb),pcbVia={x:pos.x,y:pos.y,outer_diameter:size3,hole_diameter:drill,layers};this.ctx.db.pcb_via.insert(pcbVia),this.ctx.stats&&(this.ctx.stats.vias=(this.ctx.stats.vias||0)+1)}},CollectZonesStage=class extends ConverterStage{step(){if(!this.ctx.kicadPcb||!this.ctx.k2cMatPcb||!this.ctx.netNumToName)return this.finished=!0,!1;let zones=this.ctx.kicadPcb.zones||[],zoneArray=Array.isArray(zones)?zones:[zones];for(let zone of zoneArray)this.isZoneFilled(zone)&&this.createCopperPourFromZone(zone);return this.finished=!0,!1}isZoneFilled(zone){return zone.fill?.filled===!0||zone.filledPolygons.length>0}createCopperPourFromZone(zone){if(!this.ctx.k2cMatPcb||!this.ctx.netNumToName)return;let polygonRecords=this.getZonePolygonRecords(zone);if(polygonRecords.length===0){this.ctx.warnings&&this.ctx.warnings.push(`Zone on layer ${this.getZoneLayerLabel(zone)} has no valid polygon points`);return}let netNum=typeof zone.net=="number"?zone.net:0,netName=this.ctx.netNumToName.get(netNum)||zone.netName||"";for(let polygonRecord of polygonRecords){let transformedPoints=polygonRecord.points.map(point6=>applyToPoint(this.ctx.k2cMatPcb,{x:point6.x,y:point6.y}));this.ctx.db.pcb_copper_pour.insert({layer:polygonRecord.layer,net_name:netName,points:transformedPoints,shape:"polygon"}),this.ctx.stats&&(this.ctx.stats.copper_pours=(this.ctx.stats.copper_pours||0)+1)}}getZonePolygonRecords(zone){let filledPolygonRecords=zone.filledPolygons.flatMap(filledPolygon=>this.createZonePolygonRecordsFromShape(filledPolygon,this.getPolygonLayers(zone,filledPolygon)));return filledPolygonRecords.length>0?filledPolygonRecords:zone.polygons.flatMap(polygon2=>this.createZonePolygonRecordsFromShape(polygon2,this.getZoneLayers(zone)))}createZonePolygonRecordsFromShape(polygon2,layers){let points=this.extractPointsFromPts(polygon2.pts?.points??[]);return points.length<3||layers.length===0?[]:layers.map(layer=>({layer,points}))}getPolygonLayers(zone,polygon2){return polygon2.layer?[mapKicadLayerToLayerRef(polygon2.layer)]:this.getZoneLayers(zone)}getZoneLayers(zone){if(zone.layer)return[mapKicadLayerToLayerRef(zone.layer)];if(zone.layers){let layers=getLayerRefsFromLayers(zone.layers,this.ctx.kicadPcb);if(layers.length>0)return layers}return[]}getZoneLayerLabel(zone){return[...zone.layer?.names??[],...zone.layers?.names??[]].join(" ")||"unknown"}extractPointsFromPts(pointsData){let points=[];for(let point6 of pointsData){if(point6 instanceof Xy3){points.push({x:point6.x,y:point6.y});continue}point6 instanceof PtsArc&&point6.start&&point6.mid&&point6.end&&points.push(...approximateArcPoints({start:point6.start,mid:point6.mid,end:point6.end}))}return points}},InitializePcbContextStage=class extends ConverterStage{step(){if(!this.ctx.kicadPcb)return this.finished=!0,!1;let center2=this.calculateBoardCenter();return this.ctx.k2cMatPcb=compose(scale(1,-1),translate(-center2.x,-center2.y)),this.ctx.netNumToName=new Map,this.ctx.netNumToSourceNetId=new Map,this.ctx.netNumToSourceTraceId=new Map,this.ctx.netNumToSourcePortIds=new Map,this.ctx.footprintUuidToComponentId=new Map,this.ctx.footprintUuidToSourceComponentId=new Map,this.finished=!0,!1}calculateBoardCenter(){if(!this.ctx.kicadPcb)return{x:0,y:0};let lines=this.ctx.kicadPcb.graphicLines||[],lineArray=Array.isArray(lines)?lines:[lines],arcArray=getGraphicArcs(this.ctx.kicadPcb),circleArray=getGraphicCircles(this.ctx.kicadPcb),curveArray=getGraphicCurves(this.ctx.kicadPcb),rectArray=this.getGraphicRects(),xs3=[],ys3=[];for(let line2 of lineArray){if(!getGraphicLayerNames(line2).join(" ").includes("Edge.Cuts"))continue;let{start,end}=getLineStartEnd(line2);xs3.push(start.x,end.x),ys3.push(start.y,end.y)}for(let arc2 of arcArray){if(!getGraphicLayerNames(arc2).join(" ").includes("Edge.Cuts"))continue;let{start,mid,end}=getArcStartMidEnd(arc2);for(let point6 of approximateArcPoints({start,mid,end,segmentLength:.25,minSegments:16}))xs3.push(point6.x),ys3.push(point6.y)}for(let circle2 of circleArray){if(!getGraphicLayerNames(circle2).join(" ").includes("Edge.Cuts"))continue;let{center:center2,end}=getCircleCenterEnd(circle2);for(let point6 of approximateCirclePoints({center:center2,end,segmentLength:.25,minSegments:16}))xs3.push(point6.x),ys3.push(point6.y)}for(let curve of curveArray){if(!getGraphicLayerNames(curve).join(" ").includes("Edge.Cuts"))continue;let points=getCurvePoints(curve);if(points)for(let point6 of approximateCubicBezierPoints({start:points.start,control1:points.control1,control2:points.control2,end:points.end,segmentLength:.25,minSegments:16}))xs3.push(point6.x),ys3.push(point6.y)}for(let rect of rectArray){if(!getGraphicLayerNames(rect).join(" ").includes("Edge.Cuts"))continue;let{start,end}=this.getRectStartEnd(rect);xs3.push(start.x,end.x),ys3.push(start.y,end.y)}if(xs3.length===0||ys3.length===0)return{x:0,y:0};let minX=Math.min(...xs3),maxX=Math.max(...xs3),minY=Math.min(...ys3),maxY=Math.max(...ys3);return{x:(minX+maxX)/2,y:(minY+maxY)/2}}getGraphicRects(){let rects=this.ctx.kicadPcb?.graphicRects||[];return Array.isArray(rects)?rects:[rects]}getRectStartEnd(rect){return{start:{x:rect.start?.x??rect._sxStart?._x??0,y:rect.start?.y??rect._sxStart?._y??0},end:{x:rect.end?.x??rect._sxEnd?._x??0,y:rect.end?.y??rect._sxEnd?._y??0}}}};function inferSymbolName({libId,reference,rotation:rotation5}){let lower=libId.toLowerCase(),direction2=rotationToDirection(rotation5);if(lower.includes(":r_")||lower.includes(":r")&&reference.startsWith("R"))return`boxresistor_${direction2}`;if(lower.includes(":c_")||lower.includes(":c")&&reference.startsWith("C"))return lower.includes("polarized")||lower.includes("_pol")?`capacitor_${direction2}`:`capacitor_${direction2}`;if(lower.includes(":l_")||lower.includes(":l")&&reference.startsWith("L"))return`inductor_${direction2}`;if(lower.includes(":d_")||lower.includes("diode")||reference.startsWith("D"))return lower.includes("led")?`led_${direction2}`:lower.includes("schottky")?`schottky_diode_${direction2}`:lower.includes("zener")?`zener_diode_${direction2}`:`diode_${direction2}`;if(lower.includes(":q_")||reference.startsWith("Q"))return lower.includes("npn")?`npn_bipolar_transistor_${direction2}`:lower.includes("pnp")?`pnp_bipolar_transistor_${direction2}`:lower.includes("_n_")||lower.includes("nmos")?`n_channel_mosfet_transistor_${direction2}`:lower.includes("_p_")||lower.includes("pmos")?`p_channel_mosfet_transistor_${direction2}`:`npn_bipolar_transistor_${direction2}`;lower.includes("gnd")||lower.includes("ground")||lower.includes("vcc")||lower.includes("vdd")||lower.includes("power")}var CollectLibrarySymbolsStage=class extends ConverterStage{constructor(){super(...arguments);__publicField(this,"processedSymbols",new Set)}step(){if(!this.ctx.kicadSch||!this.ctx.k2cMatSch)return this.finished=!0,!1;let symbols=this.ctx.kicadSch.symbols||[];for(let symbol of symbols){let uuid=symbol.uuid;!uuid||this.processedSymbols.has(uuid)||(this.processSymbol(symbol),this.processedSymbols.add(uuid))}return this.finished=!0,!1}processSymbol(symbol){if(!this.ctx.k2cMatSch)return;let reference=this.getProperty(symbol,"Reference")||"U?",value=this.getProperty(symbol,"Value")||"",libId=symbol.libraryId||"",at3=symbol.at,kicadPos={x:at3?.x??0,y:at3?.y??0},cjPos=applyToPoint(this.ctx.k2cMatSch,kicadPos),rotation5=at3?.angle??0,ftype=this.inferFtype(libId,reference),sourceComponentId=`${libId}_source`;this.ctx.db.source_component.list().find(sc3=>sc3.source_component_id===sourceComponentId)||this.ctx.db.source_component.insert({name:libId||reference,ftype,manufacturer_part_number:value||void 0});let uuid=symbol.uuid;if(!uuid)return;let symbolName=inferSymbolName({libId,reference,rotation:rotation5}),componentId=this.ctx.db.schematic_component.insert({source_component_id:sourceComponentId,center:{x:cjPos.x,y:cjPos.y},size:this.estimateSize(symbol),...symbolName?{symbol_name:symbolName}:{}}).schematic_component_id;this.ctx.symbolUuidToComponentId?.set(uuid,componentId),this.createPorts(symbol,componentId),this.ctx.stats&&(this.ctx.stats.components=(this.ctx.stats.components||0)+1)}getProperty(symbol,propName){return(symbol.properties||[]).find(p3=>p3.key===propName)?.value}inferFtype(libId,reference){return inferSourceComponentFtype({name:libId,reference})}estimateSize(symbol){return{width:1,height:1}}createPorts(symbol,componentId){let libId=symbol.libraryId,libSymbol=this.ctx.kicadSch?.libSymbols?.symbols?.find(ls3=>ls3.libraryId===libId);if(!libSymbol)return;let allPins=[];if(libSymbol.pins&&Array.isArray(libSymbol.pins)&&libSymbol.pins.length>0?allPins.push(...libSymbol.pins):libSymbol.pins&&!Array.isArray(libSymbol.pins)&&allPins.push(libSymbol.pins),libSymbol.subSymbols&&Array.isArray(libSymbol.subSymbols))for(let subSymbol of libSymbol.subSymbols)subSymbol.pins&&Array.isArray(subSymbol.pins)&&subSymbol.pins.length>0?allPins.push(...subSymbol.pins):subSymbol.pins&&!Array.isArray(subSymbol.pins)&&allPins.push(subSymbol.pins);if(allPins.length===0)return;let componentRotation=symbol.at?.angle??0;for(let pin of allPins){let pinAt=pin._sxAt;if(!pinAt)continue;let rotRad=componentRotation*Math.PI/180,cosR=Math.cos(rotRad),sinR=Math.sin(rotRad),rotatedPinPos={x:pinAt.x*cosR-pinAt.y*sinR,y:pinAt.x*sinR+pinAt.y*cosR},scaleFactor=Math.abs(this.ctx.k2cMatSch?.a||1/15),relativePos={x:rotatedPinPos.x*scaleFactor,y:-rotatedPinPos.y*scaleFactor};this.ctx.db.schematic_port.insert({schematic_component_id:componentId,center:relativePos,facing_direction:this.inferPinDirection(pin,componentRotation),pin_number:pin._sxNumber?.value??pin.pinNumber??void 0})}}inferPinDirection(pin,componentRotation){let totalAngle=(pin.at?.angle??0)+componentRotation;return rotationToDirection(totalAngle)}},CollectSchematicTracesStage=class extends ConverterStage{step(){if(!this.ctx.kicadSch||!this.ctx.k2cMatSch)return this.finished=!0,!1;let wires=this.ctx.kicadSch.wires||[],wireArray=Array.isArray(wires)?wires:[wires];for(let wire of wireArray)this.processWire(wire);let junctions=this.ctx.kicadSch.junctions||[],junctionArray=Array.isArray(junctions)?junctions:[junctions];for(let junction of junctionArray)this.processJunction(junction);return this.finished=!0,!1}processWire(wire){if(!this.ctx.k2cMatSch||!wire.pts)return;let pts=Array.isArray(wire.pts.xy)?wire.pts.xy:[wire.pts.xy];if(pts.length<2)return;let edges=[];for(let i5=0;i5<pts.length-1;i5++){let from=applyToPoint(this.ctx.k2cMatSch,{x:pts[i5].x,y:pts[i5].y}),to3=applyToPoint(this.ctx.k2cMatSch,{x:pts[i5+1].x,y:pts[i5+1].y});edges.push({from,to:to3})}this.ctx.db.schematic_trace.insert({edges}),this.ctx.stats&&(this.ctx.stats.traces=(this.ctx.stats.traces||0)+1)}processJunction(junction){if(!this.ctx.k2cMatSch||!junction.at)return;let pos=applyToPoint(this.ctx.k2cMatSch,{x:junction.at.x,y:junction.at.y});this.ctx.db.schematic_trace.insert({edges:[],junctions:[pos]})}},InitializeSchematicContextStage=class extends ConverterStage{step(){if(!this.ctx.kicadSch)return this.finished=!0,!1;let KICAD_CENTER_X=105,KICAD_CENTER_Y=148.5,kicadCenterX=KICAD_CENTER_X,kicadCenterY=KICAD_CENTER_Y,cjCenterX=0,cjCenterY=0;return this.ctx.k2cMatSch=compose(translate(cjCenterX,cjCenterY),scale(1/15,-1/15),translate(-kicadCenterX,-kicadCenterY)),this.ctx.symbolUuidToComponentId=new Map,this.ctx.warnings=this.ctx.warnings||[],this.ctx.stats=this.ctx.stats||{},this.finished=!0,!1}},KicadToCircuitJsonConverter=class{constructor(){__publicField(this,"fsMap",{});__publicField(this,"ctx");__publicField(this,"currentStageIndex",0);__publicField(this,"pipeline")}get currentStage(){return this.pipeline?.[this.currentStageIndex]}addFile(filePath,content){this.fsMap[filePath]=content}_findFileWithExtension(extension){let filesWithExtension=Object.keys(this.fsMap).filter(key=>key.endsWith(extension));if(filesWithExtension.length>1)throw new Error(`Expected 0 or 1 file with extension ${extension}, got ${filesWithExtension.length}. Files: ${filesWithExtension.join(", ")}`);return filesWithExtension[0]??null}initializePipeline(){let pcbFile=this._findFileWithExtension(".kicad_pcb"),schFile=this._findFileWithExtension(".kicad_sch"),symbolLibFile=this._findFileWithExtension(".kicad_sym");this.ctx={db:cju_default([]),kicadPcb:pcbFile?parseKicadPcb(this.fsMap[pcbFile]):void 0,kicadSch:schFile?parseKicadSch(this.fsMap[schFile]):void 0,kicadSymbolLib:symbolLibFile?parseKicadSym(this.fsMap[symbolLibFile]):void 0,warnings:[],stats:{}},this.pipeline=[],this.ctx.kicadSymbolLib&&this.pipeline.push(new InitializeSymbolLibraryContextStage(this.ctx),new CollectSymbolLibrarySymbolsStage(this.ctx)),this.ctx.kicadSch&&this.pipeline.push(new InitializeSchematicContextStage(this.ctx),new CollectLibrarySymbolsStage(this.ctx),new CollectSchematicTracesStage(this.ctx)),this.ctx.kicadPcb&&this.pipeline.push(new InitializePcbContextStage(this.ctx),new CollectNetsStage(this.ctx),new CollectFootprintsStage(this.ctx),new CollectSourceTracesStage(this.ctx),new CollectTracesStage(this.ctx),new CollectViasStage(this.ctx),new CollectZonesStage(this.ctx),new CollectGraphicsStage(this.ctx))}step(){return this.pipeline||this.initializePipeline(),this.currentStage?((!this.currentStage.step()||this.currentStage.finished)&&this.currentStageIndex++,this.currentStageIndex<(this.pipeline?.length||0)):!1}runUntilFinished(){this.pipeline||this.initializePipeline();for(let stage of this.pipeline||[])stage.runUntilFinished()}getOutput(){return this.ctx||(this.initializePipeline(),this.runUntilFinished()),this.ctx.db.toArray()}getOutputString(){return JSON.stringify(this.getOutput(),null,2)}getWarnings(){return this.ctx?.warnings||[]}getStats(){return this.ctx?.stats||{}}};var React=__toESM(require_react(),1),KICAD_FOOTPRINT_CACHE_URL="https://kicad-mod-cache.tscircuit.com",ngspiceEngineCache=null,toJlcpcbSupplierPartNumber=partNumber=>/^\d+$/.test(partNumber)?`C${partNumber}`:/^c\d+$/i.test(partNumber)?`C${partNumber.slice(1)}`:partNumber,loadKicadPcbStaticFile=async fileContent=>{let kicadPcbContent=typeof fileContent=="string"?fileContent:new TextDecoder().decode(fileContent);if(kicadPcbContent==="__STATIC_ASSET__"||kicadPcbContent.startsWith("blob:"))throw new Error(".kicad_pcb imports require local file contents. Static asset URLs are not supported.");let converter=new KicadToCircuitJsonConverter;converter.addFile("imported.kicad_pcb",kicadPcbContent),converter.runUntilFinished();let circuitJson=converter.getOutput(),boardContentCircuitJson=circuitJson.filter(elm=>elm.type!=="pcb_board");return{__esModule:!0,default:circuitJson,Board:props=>React.createElement("board",{...props,circuitJson}),boardContentCircuitJson,circuitJson}},loadKicadSymbolStaticFile=async fileContent=>{let kicadSymbolContent=typeof fileContent=="string"?fileContent:new TextDecoder().decode(fileContent);if(kicadSymbolContent==="__STATIC_ASSET__"||kicadSymbolContent.startsWith("blob:"))throw new Error(".kicad_sym imports require local file contents. Static asset URLs are not supported.");let converter=new KicadSymbolToCircuitJsonConverter;converter.addFile("imported.kicad_sym",kicadSymbolContent),converter.runUntilFinished();let circuitJson=converter.getOutput();return{__esModule:!0,default:circuitJson,circuitJson}},getPlatformConfig=(overrides={},options={})=>{let partsEngine2=overrides.partsEngine??jlcPartsEngine;return!overrides.partsEngine&&options.easyEdaProxyConfig&&(partsEngine2=new JlcPcbPartsEngine({platformFetch:overrides.platformFetch,easyEdaProxyConfig:options.easyEdaProxyConfig})),{localCacheEngine:overrides.localCacheEngine,partsEngine:partsEngine2,autorouterMap:{krt:{createAutorouter:createKiCadRoutingToolsAutorouter({gridStep:.1,clearance:.2,maxIterations:3e5})},...overrides.autorouterMap},spiceEngineMap:{ngspice:{simulate:async spice=>{if(!ngspiceEngineCache){let createNgspiceSpiceEngine=await dynamicallyLoadDependencyWithCdnBackup("@tscircuit/ngspice-spice-engine").catch(error2=>{throw new Error("Could not load ngspice engine from local node_modules or CDN fallback.",{cause:error2})});createNgspiceSpiceEngine&&(ngspiceEngineCache=await createNgspiceSpiceEngine({pspiceCompatibility:!0}))}if(!ngspiceEngineCache)throw new Error("Could not load ngspice engine from local node_modules or CDN fallback.");return ngspiceEngineCache.simulate(spice)}}},footprintLibraryMap:{kicad:async footprintName=>{let baseUrl=`${KICAD_FOOTPRINT_CACHE_URL}/${footprintName}`,circuitJsonUrl=`${baseUrl}.circuit.json`,res2=await fetch(circuitJsonUrl);if(!res2.ok){let bodyPreview=(await res2.text()).slice(0,200);throw new Error(`Failed to load KiCad footprint "${footprintName}" from ${circuitJsonUrl} (HTTP ${res2.status}). ${bodyPreview}`)}let raw;try{raw=await res2.json()}catch{throw new Error(`Failed to parse KiCad footprint JSON for "${footprintName}" from ${circuitJsonUrl}`)}let filtered=Array.isArray(raw)?raw.filter(el3=>el3?.type==="pcb_silkscreen_text"?el3?.text==="REF**":!0):[raw],wrlUrl=`${baseUrl}.wrl`,stepUrl=`${baseUrl}.step`;return{footprintCircuitJson:filtered,cadModel:{wrlUrl,stepUrl}}},jlcpcb:async partNumber=>{if(!partsEngine2.fetchPartCircuitJson)throw new Error("Configured parts engine does not support fetchPartCircuitJson, required for jlcpcb footprints.");let supplierPartNumber=toJlcpcbSupplierPartNumber(partNumber),footprintCircuitJson=await partsEngine2.fetchPartCircuitJson({supplierPartNumber,platformFetch:overrides.platformFetch});if(!Array.isArray(footprintCircuitJson))throw new Error(`Failed to load JLCPCB footprint "${supplierPartNumber}" from parts engine.`);return{footprintCircuitJson,cadModel:extractCadModelFromCircuitJson2(footprintCircuitJson)}}},footprintFileParserMap:{kicad_mod:{loadFromUrl:async url2=>{let kicadContent=await fetch(url2).then(res2=>res2.text()),converter=new KicadFootprintToCircuitJsonConverter;converter.addFile("footprint.kicad_mod",kicadContent),converter.runUntilFinished();let kicadJson=converter.getOutput();return{footprintCircuitJson:Array.isArray(kicadJson)?kicadJson:[kicadJson]}}}},staticFileLoaderMap:{kicad_pcb:loadKicadPcbStaticFile,kicad_sym:loadKicadSymbolStaticFile,...overrides.staticFileLoaderMap}}};var tslib_es6_exports={};__export(tslib_es6_exports,{__addDisposableResource:()=>__addDisposableResource,__assign:()=>__assign,__asyncDelegator:()=>__asyncDelegator,__asyncGenerator:()=>__asyncGenerator,__asyncValues:()=>__asyncValues,__await:()=>__await,__awaiter:()=>__awaiter,__classPrivateFieldGet:()=>__classPrivateFieldGet,__classPrivateFieldIn:()=>__classPrivateFieldIn,__classPrivateFieldSet:()=>__classPrivateFieldSet,__createBinding:()=>__createBinding,__decorate:()=>__decorate,__disposeResources:()=>__disposeResources,__esDecorate:()=>__esDecorate,__exportStar:()=>__exportStar,__extends:()=>__extends,__generator:()=>__generator,__importDefault:()=>__importDefault,__importStar:()=>__importStar,__makeTemplateObject:()=>__makeTemplateObject,__metadata:()=>__metadata,__param:()=>__param,__propKey:()=>__propKey,__read:()=>__read,__rest:()=>__rest,__rewriteRelativeImportExtension:()=>__rewriteRelativeImportExtension,__runInitializers:()=>__runInitializers,__setFunctionName:()=>__setFunctionName,__spread:()=>__spread,__spreadArray:()=>__spreadArray,__spreadArrays:()=>__spreadArrays,__values:()=>__values,default:()=>tslib_es6_default});var extendStatics=function(d6,b4){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d7,b5){d7.__proto__=b5}||function(d7,b5){for(var p3 in b5)Object.prototype.hasOwnProperty.call(b5,p3)&&(d7[p3]=b5[p3])},extendStatics(d6,b4)};function __extends(d6,b4){if(typeof b4!="function"&&b4!==null)throw new TypeError("Class extends value "+String(b4)+" is not a constructor or null");extendStatics(d6,b4);function __3(){this.constructor=d6}d6.prototype=b4===null?Object.create(b4):(__3.prototype=b4.prototype,new __3)}var __assign=function(){return __assign=Object.assign||function(t52){for(var s4,i5=1,n7=arguments.length;i5<n7;i5++){s4=arguments[i5];for(var p3 in s4)Object.prototype.hasOwnProperty.call(s4,p3)&&(t52[p3]=s4[p3])}return t52},__assign.apply(this,arguments)};function __rest(s4,e6){var t52={};for(var p3 in s4)Object.prototype.hasOwnProperty.call(s4,p3)&&e6.indexOf(p3)<0&&(t52[p3]=s4[p3]);if(s4!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i5=0,p3=Object.getOwnPropertySymbols(s4);i5<p3.length;i5++)e6.indexOf(p3[i5])<0&&Object.prototype.propertyIsEnumerable.call(s4,p3[i5])&&(t52[p3[i5]]=s4[p3[i5]]);return t52}function __decorate(decorators,target,key,desc){var c6=arguments.length,r6=c6<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d6;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r6=Reflect.decorate(decorators,target,key,desc);else for(var i5=decorators.length-1;i5>=0;i5--)(d6=decorators[i5])&&(r6=(c6<3?d6(r6):c6>3?d6(target,key,r6):d6(target,key))||r6);return c6>3&&r6&&Object.defineProperty(target,key,r6),r6}function __param(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex)}}function __esDecorate(ctor,descriptorIn,decorators,contextIn,initializers,extraInitializers){function accept(f3){if(f3!==void 0&&typeof f3!="function")throw new TypeError("Function expected");return f3}for(var kind=contextIn.kind,key=kind==="getter"?"get":kind==="setter"?"set":"value",target=!descriptorIn&&ctor?contextIn.static?ctor:ctor.prototype:null,descriptor=descriptorIn||(target?Object.getOwnPropertyDescriptor(target,contextIn.name):{}),_3,done=!1,i5=decorators.length-1;i5>=0;i5--){var context={};for(var p3 in contextIn)context[p3]=p3==="access"?{}:contextIn[p3];for(var p3 in contextIn.access)context.access[p3]=contextIn.access[p3];context.addInitializer=function(f3){if(done)throw new TypeError("Cannot add initializers after decoration has completed");extraInitializers.push(accept(f3||null))};var result=(0,decorators[i5])(kind==="accessor"?{get:descriptor.get,set:descriptor.set}:descriptor[key],context);if(kind==="accessor"){if(result===void 0)continue;if(result===null||typeof result!="object")throw new TypeError("Object expected");(_3=accept(result.get))&&(descriptor.get=_3),(_3=accept(result.set))&&(descriptor.set=_3),(_3=accept(result.init))&&initializers.unshift(_3)}else(_3=accept(result))&&(kind==="field"?initializers.unshift(_3):descriptor[key]=_3)}target&&Object.defineProperty(target,contextIn.name,descriptor),done=!0}function __runInitializers(thisArg,initializers,value){for(var useValue=arguments.length>2,i5=0;i5<initializers.length;i5++)value=useValue?initializers[i5].call(thisArg,value):initializers[i5].call(thisArg);return useValue?value:void 0}function __propKey(x3){return typeof x3=="symbol"?x3:"".concat(x3)}function __setFunctionName(f3,name,prefix){return typeof name=="symbol"&&(name=name.description?"[".concat(name.description,"]"):""),Object.defineProperty(f3,"name",{configurable:!0,value:prefix?"".concat(prefix," ",name):name})}function __metadata(metadataKey,metadataValue){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(metadataKey,metadataValue)}function __awaiter(thisArg,_arguments,P6,generator){function adopt(value){return value instanceof P6?value:new P6(function(resolve){resolve(value)})}return new(P6||(P6=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e6){reject(e6)}}function rejected(value){try{step(generator.throw(value))}catch(e6){reject(e6)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})}function __generator(thisArg,body){var _3={label:0,sent:function(){if(t52[0]&1)throw t52[1];return t52[1]},trys:[],ops:[]},f3,y2,t52,g6=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return g6.next=verb(0),g6.throw=verb(1),g6.return=verb(2),typeof Symbol=="function"&&(g6[Symbol.iterator]=function(){return this}),g6;function verb(n7){return function(v5){return step([n7,v5])}}function step(op3){if(f3)throw new TypeError("Generator is already executing.");for(;g6&&(g6=0,op3[0]&&(_3=0)),_3;)try{if(f3=1,y2&&(t52=op3[0]&2?y2.return:op3[0]?y2.throw||((t52=y2.return)&&t52.call(y2),0):y2.next)&&!(t52=t52.call(y2,op3[1])).done)return t52;switch(y2=0,t52&&(op3=[op3[0]&2,t52.value]),op3[0]){case 0:case 1:t52=op3;break;case 4:return _3.label++,{value:op3[1],done:!1};case 5:_3.label++,y2=op3[1],op3=[0];continue;case 7:op3=_3.ops.pop(),_3.trys.pop();continue;default:if(t52=_3.trys,!(t52=t52.length>0&&t52[t52.length-1])&&(op3[0]===6||op3[0]===2)){_3=0;continue}if(op3[0]===3&&(!t52||op3[1]>t52[0]&&op3[1]<t52[3])){_3.label=op3[1];break}if(op3[0]===6&&_3.label<t52[1]){_3.label=t52[1],t52=op3;break}if(t52&&_3.label<t52[2]){_3.label=t52[2],_3.ops.push(op3);break}t52[2]&&_3.ops.pop(),_3.trys.pop();continue}op3=body.call(thisArg,_3)}catch(e6){op3=[6,e6],y2=0}finally{f3=t52=0}if(op3[0]&5)throw op3[1];return{value:op3[0]?op3[1]:void 0,done:!0}}}var __createBinding=Object.create?(function(o5,m3,k3,k22){k22===void 0&&(k22=k3);var desc=Object.getOwnPropertyDescriptor(m3,k3);(!desc||("get"in desc?!m3.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m3[k3]}}),Object.defineProperty(o5,k22,desc)}):(function(o5,m3,k3,k22){k22===void 0&&(k22=k3),o5[k22]=m3[k3]});function __exportStar(m3,o5){for(var p3 in m3)p3!=="default"&&!Object.prototype.hasOwnProperty.call(o5,p3)&&__createBinding(o5,m3,p3)}function __values(o5){var s4=typeof Symbol=="function"&&Symbol.iterator,m3=s4&&o5[s4],i5=0;if(m3)return m3.call(o5);if(o5&&typeof o5.length=="number")return{next:function(){return o5&&i5>=o5.length&&(o5=void 0),{value:o5&&o5[i5++],done:!o5}}};throw new TypeError(s4?"Object is not iterable.":"Symbol.iterator is not defined.")}function __read(o5,n7){var m3=typeof Symbol=="function"&&o5[Symbol.iterator];if(!m3)return o5;var i5=m3.call(o5),r6,ar3=[],e6;try{for(;(n7===void 0||n7-- >0)&&!(r6=i5.next()).done;)ar3.push(r6.value)}catch(error2){e6={error:error2}}finally{try{r6&&!r6.done&&(m3=i5.return)&&m3.call(i5)}finally{if(e6)throw e6.error}}return ar3}function __spread(){for(var ar3=[],i5=0;i5<arguments.length;i5++)ar3=ar3.concat(__read(arguments[i5]));return ar3}function __spreadArrays(){for(var s4=0,i5=0,il3=arguments.length;i5<il3;i5++)s4+=arguments[i5].length;for(var r6=Array(s4),k3=0,i5=0;i5<il3;i5++)for(var a3=arguments[i5],j4=0,jl3=a3.length;j4<jl3;j4++,k3++)r6[k3]=a3[j4];return r6}function __spreadArray(to3,from,pack2){if(pack2||arguments.length===2)for(var i5=0,l3=from.length,ar3;i5<l3;i5++)(ar3||!(i5 in from))&&(ar3||(ar3=Array.prototype.slice.call(from,0,i5)),ar3[i5]=from[i5]);return to3.concat(ar3||Array.prototype.slice.call(from))}function __await(v5){return this instanceof __await?(this.v=v5,this):new __await(v5)}function __asyncGenerator(thisArg,_arguments,generator){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var g6=generator.apply(thisArg,_arguments||[]),i5,q3=[];return i5=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),verb("next"),verb("throw"),verb("return",awaitReturn),i5[Symbol.asyncIterator]=function(){return this},i5;function awaitReturn(f3){return function(v5){return Promise.resolve(v5).then(f3,reject)}}function verb(n7,f3){g6[n7]&&(i5[n7]=function(v5){return new Promise(function(a3,b4){q3.push([n7,v5,a3,b4])>1||resume(n7,v5)})},f3&&(i5[n7]=f3(i5[n7])))}function resume(n7,v5){try{step(g6[n7](v5))}catch(e6){settle(q3[0][3],e6)}}function step(r6){r6.value instanceof __await?Promise.resolve(r6.value.v).then(fulfill,reject):settle(q3[0][2],r6)}function fulfill(value){resume("next",value)}function reject(value){resume("throw",value)}function settle(f3,v5){f3(v5),q3.shift(),q3.length&&resume(q3[0][0],q3[0][1])}}function __asyncDelegator(o5){var i5,p3;return i5={},verb("next"),verb("throw",function(e6){throw e6}),verb("return"),i5[Symbol.iterator]=function(){return this},i5;function verb(n7,f3){i5[n7]=o5[n7]?function(v5){return(p3=!p3)?{value:__await(o5[n7](v5)),done:!1}:f3?f3(v5):v5}:f3}}function __asyncValues(o5){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var m3=o5[Symbol.asyncIterator],i5;return m3?m3.call(o5):(o5=typeof __values=="function"?__values(o5):o5[Symbol.iterator](),i5={},verb("next"),verb("throw"),verb("return"),i5[Symbol.asyncIterator]=function(){return this},i5);function verb(n7){i5[n7]=o5[n7]&&function(v5){return new Promise(function(resolve,reject){v5=o5[n7](v5),settle(resolve,reject,v5.done,v5.value)})}}function settle(resolve,reject,d6,v5){Promise.resolve(v5).then(function(v6){resolve({value:v6,done:d6})},reject)}}function __makeTemplateObject(cooked,raw){return Object.defineProperty?Object.defineProperty(cooked,"raw",{value:raw}):cooked.raw=raw,cooked}var __setModuleDefault=Object.create?(function(o5,v5){Object.defineProperty(o5,"default",{enumerable:!0,value:v5})}):function(o5,v5){o5.default=v5},ownKeys=function(o5){return ownKeys=Object.getOwnPropertyNames||function(o6){var ar3=[];for(var k3 in o6)Object.prototype.hasOwnProperty.call(o6,k3)&&(ar3[ar3.length]=k3);return ar3},ownKeys(o5)};function __importStar(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k3=ownKeys(mod),i5=0;i5<k3.length;i5++)k3[i5]!=="default"&&__createBinding(result,mod,k3[i5]);return __setModuleDefault(result,mod),result}function __importDefault(mod){return mod&&mod.__esModule?mod:{default:mod}}function __classPrivateFieldGet(receiver,state2,kind,f3){if(kind==="a"&&!f3)throw new TypeError("Private accessor was defined without a getter");if(typeof state2=="function"?receiver!==state2||!f3:!state2.has(receiver))throw new TypeError("Cannot read private member from an object whose class did not declare it");return kind==="m"?f3:kind==="a"?f3.call(receiver):f3?f3.value:state2.get(receiver)}function __classPrivateFieldSet(receiver,state2,value,kind,f3){if(kind==="m")throw new TypeError("Private method is not writable");if(kind==="a"&&!f3)throw new TypeError("Private accessor was defined without a setter");if(typeof state2=="function"?receiver!==state2||!f3:!state2.has(receiver))throw new TypeError("Cannot write private member to an object whose class did not declare it");return kind==="a"?f3.call(receiver,value):f3?f3.value=value:state2.set(receiver,value),value}function __classPrivateFieldIn(state2,receiver){if(receiver===null||typeof receiver!="object"&&typeof receiver!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof state2=="function"?receiver===state2:state2.has(receiver)}function __addDisposableResource(env,value,async){if(value!=null){if(typeof value!="object"&&typeof value!="function")throw new TypeError("Object expected.");var dispose,inner;if(async){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");dispose=value[Symbol.asyncDispose]}if(dispose===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");dispose=value[Symbol.dispose],async&&(inner=dispose)}if(typeof dispose!="function")throw new TypeError("Object not disposable.");inner&&(dispose=function(){try{inner.call(this)}catch(e6){return Promise.reject(e6)}}),env.stack.push({value,dispose,async})}else async&&env.stack.push({async:!0});return value}var _SuppressedError=typeof SuppressedError=="function"?SuppressedError:function(error2,suppressed,message){var e6=new Error(message);return e6.name="SuppressedError",e6.error=error2,e6.suppressed=suppressed,e6};function __disposeResources(env){function fail(e6){env.error=env.hasError?new _SuppressedError(e6,env.error,"An error was suppressed during disposal."):e6,env.hasError=!0}var r6,s4=0;function next2(){for(;r6=env.stack.pop();)try{if(!r6.async&&s4===1)return s4=0,env.stack.push(r6),Promise.resolve().then(next2);if(r6.dispose){var result=r6.dispose.call(r6.value);if(r6.async)return s4|=2,Promise.resolve(result).then(next2,function(e6){return fail(e6),next2()})}else s4|=1}catch(e6){fail(e6)}if(s4===1)return env.hasError?Promise.reject(env.error):Promise.resolve();if(env.hasError)throw env.error}return next2()}function __rewriteRelativeImportExtension(path,preserveJsx){return typeof path=="string"&&/^\.\.?\//.test(path)?path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(m3,tsx,d6,ext,cm3){return tsx?preserveJsx?".jsx":".js":d6&&(!ext||!cm3)?m3:d6+ext+"."+cm3.toLowerCase()+"js"}):path}var tslib_es6_default={__extends,__assign,__rest,__decorate,__param,__esDecorate,__runInitializers,__propKey,__setFunctionName,__metadata,__awaiter,__generator,__createBinding,__exportStar,__values,__read,__spread,__spreadArrays,__spreadArray,__await,__asyncGenerator,__asyncDelegator,__asyncValues,__makeTemplateObject,__importStar,__importDefault,__classPrivateFieldGet,__classPrivateFieldSet,__classPrivateFieldIn,__addDisposableResource,__disposeResources,__rewriteRelativeImportExtension};var import_debug21=__toESM(require_browser(),1),debug12=(0,import_debug21.default)("tsci:eval:execution-context");function createExecutionContext(webWorkerConfiguration,opts={}){globalThis.React=React3;let basePlatform=opts.platform||getPlatformConfig({},{easyEdaProxyConfig:webWorkerConfiguration.easyEdaProxyConfig}),platform=opts.projectConfig?{...basePlatform,...opts.projectConfig}:basePlatform;platform.partsEngineDisabled&&(platform.partsEngine=void 0);let circuit=new RootCircuit({platform});opts.name&&(circuit.name=opts.name),opts.debugNamespace&&circuit.enableDebug(opts.debugNamespace);let logs=[];return{fsMap:{},entrypoint:"",logger:{info:message=>{logs.push({msg:message})},getLogs:()=>logs,stringifyLogs:()=>logs.map(log=>log.msg).join(`
|
|
804
|
-
`)},preSuppliedImports:{"@tscircuit/core":dist_exports4,tscircuit:dist_exports4,"@tscircuit/math-utils":dist_exports2,"@tscircuit/mm":dist_exports5,react:React3,"react/jsx-runtime":ReactJsxRuntime,debug:import_debug21.default,tslib:tslib_es6_exports,"@tscircuit/props":{}},circuit,tsConfig:null,importStack:[],currentlyImporting:new Set,...webWorkerConfiguration}}function normalizeFilePath(filePath){let normFilePath=filePath;return normFilePath=normFilePath.replace(/\\/g,"/"),normFilePath=normFilePath.trim(),normFilePath.startsWith("./")&&(normFilePath=normFilePath.slice(2)),normFilePath.startsWith("/")&&(normFilePath=normFilePath.slice(1)),normFilePath}function normalizeFsMap(fsMap){let normalizedFsMap={};for(let[fsPath,fileContent]of Object.entries(fsMap))normalizedFsMap[normalizeFilePath(fsPath)]=fileContent;return normalizedFsMap}function dirname(path){if(!path)return".";let cleanPath=path.replace(/\\/g,"/").replace(/\/+$/,"");return cleanPath.indexOf("/")===-1?".":cleanPath.substring(0,cleanPath.lastIndexOf("/"))||"/"}function resolveRelativePath(importPath,cwd){if(importPath.startsWith("../")){let parentDir=dirname(cwd);return resolveRelativePath(importPath.slice(3),parentDir)}return importPath.startsWith("./")?resolveRelativePath(importPath.slice(2),cwd):importPath.startsWith("/")?importPath.slice(1):`${cwd}/${importPath}`}var stripComments=code=>{let out="",i5=0,inSingle=!1,inDouble=!1,inTemplate=!1;for(;i5<code.length;){let ch3=code[i5],next2=code[i5+1];if(!inDouble&&!inTemplate&&ch3==="'"&&code[i5-1]!=="\\"){inSingle=!inSingle,out+=ch3,i5++;continue}if(!inSingle&&!inTemplate&&ch3==='"'&&code[i5-1]!=="\\"){inDouble=!inDouble,out+=ch3,i5++;continue}if(!inSingle&&!inDouble&&ch3==="`"&&code[i5-1]!=="\\"){inTemplate=!inTemplate,out+=ch3,i5++;continue}if(!inSingle&&!inDouble&&!inTemplate){if(ch3==="/"&&next2==="/"){for(out+=" ",i5+=2;i5<code.length&&code[i5]!==`
|
|
804
|
+
`)},preSuppliedImports:{"@tscircuit/core":dist_exports4,tscircuit:dist_exports4,"@tscircuit/math-utils":dist_exports2,"@tscircuit/mm":dist_exports5,react:React3,"react/jsx-runtime":ReactJsxRuntime,debug:import_debug21.default,tslib:tslib_es6_exports,"@tscircuit/props":{}},circuit,tsConfig:null,importStack:[],currentlyImporting:new Set,...webWorkerConfiguration}}var import_debug22=__toESM(require_browser(),1);function normalizeFilePath(filePath){let normFilePath=filePath;return normFilePath=normFilePath.replace(/\\/g,"/"),normFilePath=normFilePath.trim(),normFilePath.startsWith("./")&&(normFilePath=normFilePath.slice(2)),normFilePath.startsWith("/")&&(normFilePath=normFilePath.slice(1)),normFilePath}function normalizeFsMap(fsMap){let normalizedFsMap={};for(let[fsPath,fileContent]of Object.entries(fsMap))normalizedFsMap[normalizeFilePath(fsPath)]=fileContent;return normalizedFsMap}function dirname(path){if(!path)return".";let cleanPath=path.replace(/\\/g,"/").replace(/\/+$/,"");return cleanPath.indexOf("/")===-1?".":cleanPath.substring(0,cleanPath.lastIndexOf("/"))||"/"}function resolveRelativePath(importPath,cwd){if(importPath.startsWith("../")){let parentDir=dirname(cwd);return resolveRelativePath(importPath.slice(3),parentDir)}return importPath.startsWith("./")?resolveRelativePath(importPath.slice(2),cwd):importPath.startsWith("/")?importPath.slice(1):`${cwd}/${importPath}`}var stripComments=code=>{let out="",i5=0,inSingle=!1,inDouble=!1,inTemplate=!1;for(;i5<code.length;){let ch3=code[i5],next2=code[i5+1];if(!inDouble&&!inTemplate&&ch3==="'"&&code[i5-1]!=="\\"){inSingle=!inSingle,out+=ch3,i5++;continue}if(!inSingle&&!inTemplate&&ch3==='"'&&code[i5-1]!=="\\"){inDouble=!inDouble,out+=ch3,i5++;continue}if(!inSingle&&!inDouble&&ch3==="`"&&code[i5-1]!=="\\"){inTemplate=!inTemplate,out+=ch3,i5++;continue}if(!inSingle&&!inDouble&&!inTemplate){if(ch3==="/"&&next2==="/"){for(out+=" ",i5+=2;i5<code.length&&code[i5]!==`
|
|
805
805
|
`;)out+=" ",i5++;continue}if(ch3==="/"&&next2==="*"){for(out+=" ",i5+=2;i5<code.length;){if(code[i5]===`
|
|
806
806
|
`?out+=`
|
|
807
807
|
`:out+=" ",code[i5]==="*"&&code[i5+1]==="/"){out+=" ",i5+=2;break}i5++}continue}}out+=ch3,i5++}return out};var stripJsonTrailingCommas=jsonc=>{let out="",inString=!1,escaped=!1;for(let i5=0;i5<jsonc.length;i5++){let ch3=jsonc[i5];if(inString){out+=ch3,escaped?escaped=!1:ch3==="\\"?escaped=!0:ch3==='"'&&(inString=!1);continue}if(ch3==='"'){inString=!0,out+=ch3;continue}if(ch3===","){let nextIndex=i5+1;for(;/\s/.test(jsonc[nextIndex]??"");)nextIndex++;let nextNonWhitespace=jsonc[nextIndex];if(nextNonWhitespace==="}"||nextNonWhitespace==="]")continue}out+=ch3}return out};function getTsConfig(fsMapOrAllFilePaths){if(Array.isArray(fsMapOrAllFilePaths))return null;let tsconfigContent=fsMapOrAllFilePaths["tsconfig.json"];if(!tsconfigContent)return null;try{let sanitizedContent=stripJsonTrailingCommas(stripComments(tsconfigContent));return JSON.parse(sanitizedContent)}catch(e6){throw new Error(`Failed to parse tsconfig.json: ${e6.message}`)}}function resolveWithTsconfigPaths(opts){let{importPath,normalizedFilePathMap,extensions,tsConfig,tsconfigDir}=opts,paths=tsConfig?.compilerOptions?.paths;if(!paths)return null;let baseUrl=tsConfig?.compilerOptions?.baseUrl||".",tryResolveCandidate=candidate=>{let normalizedCandidate=normalizeFilePath(candidate);if(normalizedFilePathMap.has(normalizedCandidate))return normalizedFilePathMap.get(normalizedCandidate);for(let ext of extensions){let withExt=`${normalizedCandidate}.${ext}`;if(normalizedFilePathMap.has(withExt))return normalizedFilePathMap.get(withExt)}return null};for(let[alias,targets]of Object.entries(paths))if(alias.includes("*")){let[prefix,suffix]=alias.split("*");if(!importPath.startsWith(prefix)||!importPath.endsWith(suffix||""))continue;let starMatch=importPath.slice(prefix.length,importPath.length-(suffix?suffix.length:0));for(let target of targets){let replaced=target.replace("*",starMatch),candidate=baseUrl&&!replaced.startsWith("./")&&!replaced.startsWith("/")?`${baseUrl}/${replaced}`:replaced,resolved=tryResolveCandidate(candidate);if(resolved)return resolved}}else{if(importPath!==alias)continue;for(let target of targets){let candidate=baseUrl&&!target.startsWith("./")&&!target.startsWith("/")?`${baseUrl}/${target}`:target,resolved=tryResolveCandidate(candidate);if(resolved)return resolved}}let resolvedPathFromBaseUrl=resolveWithBaseUrl({importPath,normalizedFilePathMap,extensions,tsConfig,tsconfigDir});return resolvedPathFromBaseUrl||null}function resolveWithBaseUrl(opts){let{importPath,normalizedFilePathMap,extensions,tsConfig,tsconfigDir}=opts,baseUrl=tsConfig?.compilerOptions?.baseUrl;if(!baseUrl)return null;let filePathToResolve=`${tsconfigDir||"."}/${baseUrl}/${importPath}`;filePathToResolve=filePathToResolve.replace(/\/+/g,"/"),filePathToResolve=filePathToResolve.replace(/\/\.\//g,"/");let normalizedFilePath=normalizeFilePath(filePathToResolve);if(normalizedFilePathMap.has(normalizedFilePath))return normalizedFilePathMap.get(normalizedFilePath);for(let ext of extensions){let withExt=`${normalizedFilePath}.${ext}`;if(normalizedFilePathMap.has(withExt))return normalizedFilePathMap.get(withExt)}return null}function matchesTsconfigPathPattern(importPath,tsConfig){let paths=tsConfig?.compilerOptions?.paths;if(!paths)return!1;for(let[alias]of Object.entries(paths))if(alias.includes("*")){let[prefix,suffix]=alias.split("*");if(importPath.startsWith(prefix)&&importPath.endsWith(suffix||""))return!0}else if(importPath===alias)return!0;return!1}var FILE_EXTENSIONS=["tsx","ts","json","js","jsx","obj","gltf","glb","stl","step","stp"],resolveFilePath=(unknownFilePath,fsMapOrAllFilePaths,cwd,opts={})=>{let tsConfig=opts.tsConfig??null,isRelativeImport=unknownFilePath.startsWith("./")||unknownFilePath.startsWith("../"),hasBaseUrl=!!tsConfig?.compilerOptions?.baseUrl,resolvedPath=cwd&&(isRelativeImport||!hasBaseUrl)?resolveRelativePath(unknownFilePath,cwd):unknownFilePath,filePaths=new Set(Array.isArray(fsMapOrAllFilePaths)?fsMapOrAllFilePaths:Object.keys(fsMapOrAllFilePaths));if(filePaths.has(resolvedPath))return resolvedPath;let normalizedFilePathMap=new Map;for(let filePath of filePaths)normalizedFilePathMap.set(normalizeFilePath(filePath),filePath);let normalizedResolvedPath=normalizeFilePath(resolvedPath);if(isRelativeImport||!hasBaseUrl){if(normalizedFilePathMap.has(normalizedResolvedPath))return normalizedFilePathMap.get(normalizedResolvedPath);for(let ext of FILE_EXTENSIONS){let possibleFilePath=`${normalizedResolvedPath}.${ext}`;if(normalizedFilePathMap.has(possibleFilePath))return normalizedFilePathMap.get(possibleFilePath)}}if(!isRelativeImport){let resolvedPathFromPaths=resolveWithTsconfigPaths({importPath:unknownFilePath,normalizedFilePathMap,extensions:FILE_EXTENSIONS,tsConfig,tsconfigDir:opts.tsconfigDir});if(resolvedPathFromPaths)return resolvedPathFromPaths;let resolvedPathFromBaseUrl=resolveWithBaseUrl({importPath:unknownFilePath,normalizedFilePathMap,extensions:FILE_EXTENSIONS,tsConfig,tsconfigDir:opts.tsconfigDir});if(resolvedPathFromBaseUrl)return resolvedPathFromBaseUrl}if(!isRelativeImport&&!hasBaseUrl){let normalizedUnknownFilePath=normalizeFilePath(unknownFilePath);if(normalizedFilePathMap.has(normalizedUnknownFilePath))return normalizedFilePathMap.get(normalizedUnknownFilePath);for(let ext of FILE_EXTENSIONS){let possibleFilePath=`${normalizedUnknownFilePath}.${ext}`;if(normalizedFilePathMap.has(possibleFilePath))return normalizedFilePathMap.get(possibleFilePath)}}return null},resolveFilePathOrThrow=(unknownFilePath,fsMapOrAllFilePaths,cwd,opts={})=>{let resolvedFilePath=resolveFilePath(unknownFilePath,fsMapOrAllFilePaths,cwd,opts);if(!resolvedFilePath)throw new Error(`File not found "${unknownFilePath}", available paths:
|
|
808
808
|
|
|
809
|
-
${Object.keys(fsMapOrAllFilePaths).join(", ")}`);return resolvedFilePath};var getImportsFromCode=code=>{let strippedCode=stripComments(code),importRegex=/(?:^|[;\n\r}])\s*import\s*(?:(?:[\w$]+\s*,\s*)?(?:\*\s*as\s+[\w$]+|\{[^}]+\}|[\w$]+)\s*from\s*)?['"]([^'"]+)['"]/gm,imports=[],match2;for(;(match2=importRegex.exec(strippedCode))!==null;){let fullMatch=match2[0];/\bimport\s+type\b/.test(fullMatch)||imports.push(match2[1])}let reExportRegex=/^\s*export\s+(?:type\s+)?(?:\*\s+as\s+[\w$]+|\*|\{[^}]+\})\s+from\s*['"](.+?)['"]/gm,reExportMatch;for(;(reExportMatch=reExportRegex.exec(strippedCode))!==null;){let fullMatch=reExportMatch[0];/^\s*export\s+type\b/.test(fullMatch)||imports.push(reExportMatch[1])}let requireRegex=/\brequire\s*\(\s*['"]([^'"]+)['"]\s*\)/g,requireMatch=requireRegex.exec(strippedCode);for(;requireMatch!==null;)imports.push(requireMatch[1]),requireMatch=requireRegex.exec(strippedCode);return imports};var getTypeExportsFromCode=code=>{let strippedCode=stripComments(code),typeExports=[],exportTypeRegex=/export\s+type\s+(\w+)\s*(?:=|<)/g,match2;for(;(match2=exportTypeRegex.exec(strippedCode))!==null;)typeExports.push(match2[1]);let exportInterfaceRegex=/export\s+interface\s+(\w+)/g;for(;(match2=exportInterfaceRegex.exec(strippedCode))!==null;)typeExports.push(match2[1]);return typeExports};var normalizePackageEntrypoint=entrypoint=>entrypoint.replace(/^\.\//,"");function getBrowserMappedEntrypoint(packageJson){if(!packageJson.browser||typeof packageJson.browser=="string")return null;let entryPoint=packageJson.module||packageJson.main||"index.js",browserEntrypoint=packageJson.browser[entryPoint];if(typeof browserEntrypoint=="string")return browserEntrypoint;let normalizedEntryPoint=normalizePackageEntrypoint(entryPoint),normalizedBrowserEntrypoint=packageJson.browser[`./${normalizedEntryPoint}`]??packageJson.browser[normalizedEntryPoint];return typeof normalizedBrowserEntrypoint=="string"?normalizedBrowserEntrypoint:null}function createContext(modulePath,fsMap,basePath){return{fsMap,extensions:[".js",".jsx",".ts",".tsx",".json"],basePath,modulePath}}function findPackageJson(nodeModulesPath,ctx){let packageJsonPath=`${nodeModulesPath}/package.json`;if(!ctx.fsMap[packageJsonPath])return null;try{return JSON.parse(ctx.fsMap[packageJsonPath])}catch{return null}}function tryResolveWithExtensions(path,ctx){if(ctx.fsMap[path])return path;for(let ext of ctx.extensions){let pathWithExt=path.replace(/\.js$|\.jsx$/,"")+ext;if(ctx.fsMap[pathWithExt])return pathWithExt}return null}function resolveExportPath(nodeModulesPath,exportPath,ctx){let fullExportPath=`${nodeModulesPath}/${exportPath.replace(/^\.\//,"")}`;return tryResolveWithExtensions(fullExportPath,ctx)}function resolveConditionalExport(exportValue){if(typeof exportValue=="string")return exportValue;let conditions=["import","default","require","node","browser"];for(let condition of conditions)if(exportValue[condition]){let conditionValue=exportValue[condition];if(typeof conditionValue=="string")return conditionValue;let resolved=resolveConditionalExport(conditionValue);if(resolved)return resolved}return null}function resolvePackageExports(nodeModulesPath,packageJson,remainingPath,ctx){if(!packageJson.exports)return null;let defaultExport=packageJson.exports["."];if(remainingPath===""&&defaultExport){let exportPath=resolveConditionalExport(defaultExport);if(exportPath){let resolved=resolveExportPath(nodeModulesPath,exportPath,ctx);if(resolved)return resolved}}let subpathExport=remainingPath?packageJson.exports[`./${remainingPath}`]:null;if(subpathExport){let exportPath=resolveConditionalExport(subpathExport);if(exportPath){let resolved=resolveExportPath(nodeModulesPath,exportPath,ctx);if(resolved)return resolved}}let importExport=packageJson.exports.import;if(remainingPath===""&&importExport!==void 0){let exportPath=resolveConditionalExport(importExport);if(exportPath){let resolved=resolveExportPath(nodeModulesPath,exportPath,ctx);if(resolved)return resolved}}return null}function resolvePackageEntryPoint(nodeModulesPath,packageJson,ctx){let entryPoint=normalizePackageEntrypoint(typeof packageJson.browser=="string"&&packageJson.browser||getBrowserMappedEntrypoint(packageJson)||packageJson.module||packageJson.main||"index.js"),fullPath=`${nodeModulesPath}/${entryPoint}`;return tryResolveWithExtensions(fullPath,ctx)}function resolveRemainingPath(nodeModulesPath,remainingPath,ctx){if(!remainingPath){for(let ext of ctx.extensions){let indexPath=`${nodeModulesPath}/index${ext}`;if(ctx.fsMap[indexPath])return indexPath}return null}let fullPath=`${nodeModulesPath}/${remainingPath}`,directMatch=tryResolveWithExtensions(fullPath,ctx);if(directMatch)return directMatch;for(let ext of ctx.extensions){let indexPath=`${fullPath}/index${ext}`;if(ctx.fsMap[indexPath])return indexPath}return null}function resolveNodeModuleInPath(searchPath,ctx){let moduleParts=ctx.modulePath.split("/"),scope=moduleParts[0].startsWith("@")?moduleParts.slice(0,2).join("/"):moduleParts[0],remainingPath=moduleParts.slice(scope.includes("/")?2:1).join("/"),nodeModulesPath=`${searchPath==="."?"":`${searchPath}/`}node_modules/${scope}`,packageJson=findPackageJson(nodeModulesPath,ctx);if(packageJson){let exportsResolution=resolvePackageExports(nodeModulesPath,packageJson,remainingPath,ctx);if(exportsResolution)return exportsResolution;let entryPointResolution=resolvePackageEntryPoint(nodeModulesPath,packageJson,ctx);if(entryPointResolution)return entryPointResolution}let remainingPathResolution=resolveRemainingPath(nodeModulesPath,remainingPath,ctx);if(remainingPathResolution)return remainingPathResolution;let parentPath=dirname(searchPath);return parentPath&&parentPath!==searchPath?resolveNodeModuleInPath(parentPath,ctx):null}function resolveNodeModule(modulePath,fsMap,basePath){let ctx=createContext(modulePath,fsMap,basePath);return resolveNodeModuleInPath(ctx.basePath,ctx)}var hasPreSuppliedImport=(preSuppliedImports,importName)=>Object.prototype.hasOwnProperty.call(preSuppliedImports,importName);function evalCompiledJs(compiledCode,preSuppliedImports,cwd){globalThis.__tscircuit_require=name=>{let resolvedFilePath=resolveFilePath(name,preSuppliedImports,cwd);!resolvedFilePath&&!name.startsWith(".")&&!name.startsWith("/")&&(resolvedFilePath=resolveNodeModule(name,preSuppliedImports,cwd||""));let hasResolvedFilePath=resolvedFilePath&&hasPreSuppliedImport(preSuppliedImports,resolvedFilePath);if(!hasPreSuppliedImport(preSuppliedImports,name)&&!hasResolvedFilePath)throw new Error(`Import "${name}" not found ${cwd?`in "${cwd}"`:""}`);let mod=hasPreSuppliedImport(preSuppliedImports,name)?preSuppliedImports[name]:preSuppliedImports[resolvedFilePath];if(mod.__esModule&&mod.default!==void 0){let modKeys=Object.keys(mod);if(modKeys.length===2&&modKeys.includes("__esModule")&&modKeys.includes("default"))return mod.default}if(mod.default&&typeof mod.default=="function"){let callableWrapper=(...args)=>mod.default(...args);return Object.assign(callableWrapper,mod),callableWrapper.__esModule=!0,callableWrapper}return new Proxy(mod,{get(target,prop){if(!(prop in target)){if(prop==="default")return target.default!==void 0?target.default:target.__esModule?void 0:typeof target=="function"||typeof target=="object"?target:void 0;if(prop==="__esModule")return!0;if(prop==="__typeOnlyExports__")return target.__typeOnlyExports__||[];let typeExports=target.__typeOnlyExports__||[],propName=String(prop);throw typeExports.includes(propName)?new Error(`"${propName}" is a type exported by "${name}" and cannot be imported as a value.
|
|
810
|
-
Use "export type { ${propName} }" instead of "export { ${propName} }"`):new Error(`"${propName}" is not exported by "${name}".
|
|
811
|
-
If "${propName}" is a type, use "export type { ${propName} }" instead of "export { ${propName} }"`)}return target[prop]}})};let functionBody=`
|
|
812
|
-
var exports = {};
|
|
813
|
-
var require = globalThis.__tscircuit_require;
|
|
814
|
-
var module = { exports };
|
|
815
|
-
var circuit = globalThis.__tscircuit_circuit;
|
|
816
|
-
${compiledCode};
|
|
817
|
-
return module;`.trim();return Function(functionBody).call(globalThis)}var import_debug22=__toESM(require_browser(),1);var STATIC_ASSET_EXTENSIONS=[".glb",".kicad_mod",".gltf",".obj",".stl",".step",".stp"],isStaticAssetPath2=path=>STATIC_ASSET_EXTENSIONS.some(ext=>path.endsWith(ext));var ContextualKeyword;(function(ContextualKeyword2){ContextualKeyword2[ContextualKeyword2.NONE=0]="NONE";let _abstract=1;ContextualKeyword2[ContextualKeyword2._abstract=_abstract]="_abstract";let _accessor=_abstract+1;ContextualKeyword2[ContextualKeyword2._accessor=_accessor]="_accessor";let _as=_accessor+1;ContextualKeyword2[ContextualKeyword2._as=_as]="_as";let _assert=_as+1;ContextualKeyword2[ContextualKeyword2._assert=_assert]="_assert";let _asserts=_assert+1;ContextualKeyword2[ContextualKeyword2._asserts=_asserts]="_asserts";let _async=_asserts+1;ContextualKeyword2[ContextualKeyword2._async=_async]="_async";let _await=_async+1;ContextualKeyword2[ContextualKeyword2._await=_await]="_await";let _checks=_await+1;ContextualKeyword2[ContextualKeyword2._checks=_checks]="_checks";let _constructor=_checks+1;ContextualKeyword2[ContextualKeyword2._constructor=_constructor]="_constructor";let _declare=_constructor+1;ContextualKeyword2[ContextualKeyword2._declare=_declare]="_declare";let _enum=_declare+1;ContextualKeyword2[ContextualKeyword2._enum=_enum]="_enum";let _exports=_enum+1;ContextualKeyword2[ContextualKeyword2._exports=_exports]="_exports";let _from=_exports+1;ContextualKeyword2[ContextualKeyword2._from=_from]="_from";let _get=_from+1;ContextualKeyword2[ContextualKeyword2._get=_get]="_get";let _global=_get+1;ContextualKeyword2[ContextualKeyword2._global=_global]="_global";let _implements=_global+1;ContextualKeyword2[ContextualKeyword2._implements=_implements]="_implements";let _infer=_implements+1;ContextualKeyword2[ContextualKeyword2._infer=_infer]="_infer";let _interface=_infer+1;ContextualKeyword2[ContextualKeyword2._interface=_interface]="_interface";let _is=_interface+1;ContextualKeyword2[ContextualKeyword2._is=_is]="_is";let _keyof=_is+1;ContextualKeyword2[ContextualKeyword2._keyof=_keyof]="_keyof";let _mixins=_keyof+1;ContextualKeyword2[ContextualKeyword2._mixins=_mixins]="_mixins";let _module=_mixins+1;ContextualKeyword2[ContextualKeyword2._module=_module]="_module";let _namespace=_module+1;ContextualKeyword2[ContextualKeyword2._namespace=_namespace]="_namespace";let _of=_namespace+1;ContextualKeyword2[ContextualKeyword2._of=_of]="_of";let _opaque=_of+1;ContextualKeyword2[ContextualKeyword2._opaque=_opaque]="_opaque";let _out=_opaque+1;ContextualKeyword2[ContextualKeyword2._out=_out]="_out";let _override=_out+1;ContextualKeyword2[ContextualKeyword2._override=_override]="_override";let _private=_override+1;ContextualKeyword2[ContextualKeyword2._private=_private]="_private";let _protected=_private+1;ContextualKeyword2[ContextualKeyword2._protected=_protected]="_protected";let _proto=_protected+1;ContextualKeyword2[ContextualKeyword2._proto=_proto]="_proto";let _public=_proto+1;ContextualKeyword2[ContextualKeyword2._public=_public]="_public";let _readonly=_public+1;ContextualKeyword2[ContextualKeyword2._readonly=_readonly]="_readonly";let _require=_readonly+1;ContextualKeyword2[ContextualKeyword2._require=_require]="_require";let _satisfies=_require+1;ContextualKeyword2[ContextualKeyword2._satisfies=_satisfies]="_satisfies";let _set=_satisfies+1;ContextualKeyword2[ContextualKeyword2._set=_set]="_set";let _static=_set+1;ContextualKeyword2[ContextualKeyword2._static=_static]="_static";let _symbol=_static+1;ContextualKeyword2[ContextualKeyword2._symbol=_symbol]="_symbol";let _type=_symbol+1;ContextualKeyword2[ContextualKeyword2._type=_type]="_type";let _unique=_type+1;ContextualKeyword2[ContextualKeyword2._unique=_unique]="_unique";let _using=_unique+1;ContextualKeyword2[ContextualKeyword2._using=_using]="_using"})(ContextualKeyword||(ContextualKeyword={}));var TokenType;(function(TokenType2){TokenType2[TokenType2.PRECEDENCE_MASK=15]="PRECEDENCE_MASK";let IS_KEYWORD=16;TokenType2[TokenType2.IS_KEYWORD=IS_KEYWORD]="IS_KEYWORD";let IS_ASSIGN=32;TokenType2[TokenType2.IS_ASSIGN=IS_ASSIGN]="IS_ASSIGN";let IS_RIGHT_ASSOCIATIVE=64;TokenType2[TokenType2.IS_RIGHT_ASSOCIATIVE=IS_RIGHT_ASSOCIATIVE]="IS_RIGHT_ASSOCIATIVE";let IS_PREFIX=128;TokenType2[TokenType2.IS_PREFIX=IS_PREFIX]="IS_PREFIX";let IS_POSTFIX=256;TokenType2[TokenType2.IS_POSTFIX=IS_POSTFIX]="IS_POSTFIX";let IS_EXPRESSION_START=512;TokenType2[TokenType2.IS_EXPRESSION_START=IS_EXPRESSION_START]="IS_EXPRESSION_START";let num=512;TokenType2[TokenType2.num=num]="num";let bigint=1536;TokenType2[TokenType2.bigint=bigint]="bigint";let decimal=2560;TokenType2[TokenType2.decimal=decimal]="decimal";let regexp=3584;TokenType2[TokenType2.regexp=regexp]="regexp";let string=4608;TokenType2[TokenType2.string=string]="string";let name=5632;TokenType2[TokenType2.name=name]="name";let eof=6144;TokenType2[TokenType2.eof=eof]="eof";let bracketL=7680;TokenType2[TokenType2.bracketL=bracketL]="bracketL";let bracketR=8192;TokenType2[TokenType2.bracketR=bracketR]="bracketR";let braceL=9728;TokenType2[TokenType2.braceL=braceL]="braceL";let braceBarL=10752;TokenType2[TokenType2.braceBarL=braceBarL]="braceBarL";let braceR=11264;TokenType2[TokenType2.braceR=braceR]="braceR";let braceBarR=12288;TokenType2[TokenType2.braceBarR=braceBarR]="braceBarR";let parenL=13824;TokenType2[TokenType2.parenL=parenL]="parenL";let parenR=14336;TokenType2[TokenType2.parenR=parenR]="parenR";let comma2=15360;TokenType2[TokenType2.comma=comma2]="comma";let semi=16384;TokenType2[TokenType2.semi=semi]="semi";let colon=17408;TokenType2[TokenType2.colon=colon]="colon";let doubleColon=18432;TokenType2[TokenType2.doubleColon=doubleColon]="doubleColon";let dot=19456;TokenType2[TokenType2.dot=dot]="dot";let question=20480;TokenType2[TokenType2.question=question]="question";let questionDot=21504;TokenType2[TokenType2.questionDot=questionDot]="questionDot";let arrow=22528;TokenType2[TokenType2.arrow=arrow]="arrow";let template=23552;TokenType2[TokenType2.template=template]="template";let ellipsis=24576;TokenType2[TokenType2.ellipsis=ellipsis]="ellipsis";let backQuote=25600;TokenType2[TokenType2.backQuote=backQuote]="backQuote";let dollarBraceL=27136;TokenType2[TokenType2.dollarBraceL=dollarBraceL]="dollarBraceL";let at3=27648;TokenType2[TokenType2.at=at3]="at";let hash=29184;TokenType2[TokenType2.hash=hash]="hash";let eq=29728;TokenType2[TokenType2.eq=eq]="eq";let assign=30752;TokenType2[TokenType2.assign=assign]="assign";let preIncDec=32640;TokenType2[TokenType2.preIncDec=preIncDec]="preIncDec";let postIncDec=33664;TokenType2[TokenType2.postIncDec=postIncDec]="postIncDec";let bang=34432;TokenType2[TokenType2.bang=bang]="bang";let tilde=35456;TokenType2[TokenType2.tilde=tilde]="tilde";let pipeline=35841;TokenType2[TokenType2.pipeline=pipeline]="pipeline";let nullishCoalescing=36866;TokenType2[TokenType2.nullishCoalescing=nullishCoalescing]="nullishCoalescing";let logicalOR=37890;TokenType2[TokenType2.logicalOR=logicalOR]="logicalOR";let logicalAND=38915;TokenType2[TokenType2.logicalAND=logicalAND]="logicalAND";let bitwiseOR=39940;TokenType2[TokenType2.bitwiseOR=bitwiseOR]="bitwiseOR";let bitwiseXOR=40965;TokenType2[TokenType2.bitwiseXOR=bitwiseXOR]="bitwiseXOR";let bitwiseAND=41990;TokenType2[TokenType2.bitwiseAND=bitwiseAND]="bitwiseAND";let equality=43015;TokenType2[TokenType2.equality=equality]="equality";let lessThan=44040;TokenType2[TokenType2.lessThan=lessThan]="lessThan";let greaterThan=45064;TokenType2[TokenType2.greaterThan=greaterThan]="greaterThan";let relationalOrEqual=46088;TokenType2[TokenType2.relationalOrEqual=relationalOrEqual]="relationalOrEqual";let bitShiftL=47113;TokenType2[TokenType2.bitShiftL=bitShiftL]="bitShiftL";let bitShiftR=48137;TokenType2[TokenType2.bitShiftR=bitShiftR]="bitShiftR";let plus=49802;TokenType2[TokenType2.plus=plus]="plus";let minus=50826;TokenType2[TokenType2.minus=minus]="minus";let modulo=51723;TokenType2[TokenType2.modulo=modulo]="modulo";let star=52235;TokenType2[TokenType2.star=star]="star";let slash=53259;TokenType2[TokenType2.slash=slash]="slash";let exponent=54348;TokenType2[TokenType2.exponent=exponent]="exponent";let jsxName=55296;TokenType2[TokenType2.jsxName=jsxName]="jsxName";let jsxText=56320;TokenType2[TokenType2.jsxText=jsxText]="jsxText";let jsxEmptyText=57344;TokenType2[TokenType2.jsxEmptyText=jsxEmptyText]="jsxEmptyText";let jsxTagStart=58880;TokenType2[TokenType2.jsxTagStart=jsxTagStart]="jsxTagStart";let jsxTagEnd=59392;TokenType2[TokenType2.jsxTagEnd=jsxTagEnd]="jsxTagEnd";let typeParameterStart=60928;TokenType2[TokenType2.typeParameterStart=typeParameterStart]="typeParameterStart";let nonNullAssertion=61440;TokenType2[TokenType2.nonNullAssertion=nonNullAssertion]="nonNullAssertion";let _break=62480;TokenType2[TokenType2._break=_break]="_break";let _case=63504;TokenType2[TokenType2._case=_case]="_case";let _catch=64528;TokenType2[TokenType2._catch=_catch]="_catch";let _continue=65552;TokenType2[TokenType2._continue=_continue]="_continue";let _debugger=66576;TokenType2[TokenType2._debugger=_debugger]="_debugger";let _default=67600;TokenType2[TokenType2._default=_default]="_default";let _do=68624;TokenType2[TokenType2._do=_do]="_do";let _else=69648;TokenType2[TokenType2._else=_else]="_else";let _finally=70672;TokenType2[TokenType2._finally=_finally]="_finally";let _for=71696;TokenType2[TokenType2._for=_for]="_for";let _function=73232;TokenType2[TokenType2._function=_function]="_function";let _if=73744;TokenType2[TokenType2._if=_if]="_if";let _return=74768;TokenType2[TokenType2._return=_return]="_return";let _switch=75792;TokenType2[TokenType2._switch=_switch]="_switch";let _throw=77456;TokenType2[TokenType2._throw=_throw]="_throw";let _try=77840;TokenType2[TokenType2._try=_try]="_try";let _var=78864;TokenType2[TokenType2._var=_var]="_var";let _let=79888;TokenType2[TokenType2._let=_let]="_let";let _const=80912;TokenType2[TokenType2._const=_const]="_const";let _while=81936;TokenType2[TokenType2._while=_while]="_while";let _with=82960;TokenType2[TokenType2._with=_with]="_with";let _new=84496;TokenType2[TokenType2._new=_new]="_new";let _this=85520;TokenType2[TokenType2._this=_this]="_this";let _super=86544;TokenType2[TokenType2._super=_super]="_super";let _class=87568;TokenType2[TokenType2._class=_class]="_class";let _extends=88080;TokenType2[TokenType2._extends=_extends]="_extends";let _export=89104;TokenType2[TokenType2._export=_export]="_export";let _import=90640;TokenType2[TokenType2._import=_import]="_import";let _yield=91664;TokenType2[TokenType2._yield=_yield]="_yield";let _null=92688;TokenType2[TokenType2._null=_null]="_null";let _true=93712;TokenType2[TokenType2._true=_true]="_true";let _false=94736;TokenType2[TokenType2._false=_false]="_false";let _in=95256;TokenType2[TokenType2._in=_in]="_in";let _instanceof=96280;TokenType2[TokenType2._instanceof=_instanceof]="_instanceof";let _typeof=97936;TokenType2[TokenType2._typeof=_typeof]="_typeof";let _void=98960;TokenType2[TokenType2._void=_void]="_void";let _delete=99984;TokenType2[TokenType2._delete=_delete]="_delete";let _async=100880;TokenType2[TokenType2._async=_async]="_async";let _get=101904;TokenType2[TokenType2._get=_get]="_get";let _set=102928;TokenType2[TokenType2._set=_set]="_set";let _declare=103952;TokenType2[TokenType2._declare=_declare]="_declare";let _readonly=104976;TokenType2[TokenType2._readonly=_readonly]="_readonly";let _abstract=106e3;TokenType2[TokenType2._abstract=_abstract]="_abstract";let _static=107024;TokenType2[TokenType2._static=_static]="_static";let _public=107536;TokenType2[TokenType2._public=_public]="_public";let _private=108560;TokenType2[TokenType2._private=_private]="_private";let _protected=109584;TokenType2[TokenType2._protected=_protected]="_protected";let _override=110608;TokenType2[TokenType2._override=_override]="_override";let _as=112144;TokenType2[TokenType2._as=_as]="_as";let _enum=113168;TokenType2[TokenType2._enum=_enum]="_enum";let _type=114192;TokenType2[TokenType2._type=_type]="_type";let _implements=115216;TokenType2[TokenType2._implements=_implements]="_implements"})(TokenType||(TokenType={}));function formatTokenType(tokenType){switch(tokenType){case TokenType.num:return"num";case TokenType.bigint:return"bigint";case TokenType.decimal:return"decimal";case TokenType.regexp:return"regexp";case TokenType.string:return"string";case TokenType.name:return"name";case TokenType.eof:return"eof";case TokenType.bracketL:return"[";case TokenType.bracketR:return"]";case TokenType.braceL:return"{";case TokenType.braceBarL:return"{|";case TokenType.braceR:return"}";case TokenType.braceBarR:return"|}";case TokenType.parenL:return"(";case TokenType.parenR:return")";case TokenType.comma:return",";case TokenType.semi:return";";case TokenType.colon:return":";case TokenType.doubleColon:return"::";case TokenType.dot:return".";case TokenType.question:return"?";case TokenType.questionDot:return"?.";case TokenType.arrow:return"=>";case TokenType.template:return"template";case TokenType.ellipsis:return"...";case TokenType.backQuote:return"`";case TokenType.dollarBraceL:return"${";case TokenType.at:return"@";case TokenType.hash:return"#";case TokenType.eq:return"=";case TokenType.assign:return"_=";case TokenType.preIncDec:return"++/--";case TokenType.postIncDec:return"++/--";case TokenType.bang:return"!";case TokenType.tilde:return"~";case TokenType.pipeline:return"|>";case TokenType.nullishCoalescing:return"??";case TokenType.logicalOR:return"||";case TokenType.logicalAND:return"&&";case TokenType.bitwiseOR:return"|";case TokenType.bitwiseXOR:return"^";case TokenType.bitwiseAND:return"&";case TokenType.equality:return"==/!=";case TokenType.lessThan:return"<";case TokenType.greaterThan:return">";case TokenType.relationalOrEqual:return"<=/>=";case TokenType.bitShiftL:return"<<";case TokenType.bitShiftR:return">>/>>>";case TokenType.plus:return"+";case TokenType.minus:return"-";case TokenType.modulo:return"%";case TokenType.star:return"*";case TokenType.slash:return"/";case TokenType.exponent:return"**";case TokenType.jsxName:return"jsxName";case TokenType.jsxText:return"jsxText";case TokenType.jsxEmptyText:return"jsxEmptyText";case TokenType.jsxTagStart:return"jsxTagStart";case TokenType.jsxTagEnd:return"jsxTagEnd";case TokenType.typeParameterStart:return"typeParameterStart";case TokenType.nonNullAssertion:return"nonNullAssertion";case TokenType._break:return"break";case TokenType._case:return"case";case TokenType._catch:return"catch";case TokenType._continue:return"continue";case TokenType._debugger:return"debugger";case TokenType._default:return"default";case TokenType._do:return"do";case TokenType._else:return"else";case TokenType._finally:return"finally";case TokenType._for:return"for";case TokenType._function:return"function";case TokenType._if:return"if";case TokenType._return:return"return";case TokenType._switch:return"switch";case TokenType._throw:return"throw";case TokenType._try:return"try";case TokenType._var:return"var";case TokenType._let:return"let";case TokenType._const:return"const";case TokenType._while:return"while";case TokenType._with:return"with";case TokenType._new:return"new";case TokenType._this:return"this";case TokenType._super:return"super";case TokenType._class:return"class";case TokenType._extends:return"extends";case TokenType._export:return"export";case TokenType._import:return"import";case TokenType._yield:return"yield";case TokenType._null:return"null";case TokenType._true:return"true";case TokenType._false:return"false";case TokenType._in:return"in";case TokenType._instanceof:return"instanceof";case TokenType._typeof:return"typeof";case TokenType._void:return"void";case TokenType._delete:return"delete";case TokenType._async:return"async";case TokenType._get:return"get";case TokenType._set:return"set";case TokenType._declare:return"declare";case TokenType._readonly:return"readonly";case TokenType._abstract:return"abstract";case TokenType._static:return"static";case TokenType._public:return"public";case TokenType._private:return"private";case TokenType._protected:return"protected";case TokenType._override:return"override";case TokenType._as:return"as";case TokenType._enum:return"enum";case TokenType._type:return"type";case TokenType._implements:return"implements";default:return""}}var Scope=class{constructor(startTokenIndex,endTokenIndex,isFunctionScope){this.startTokenIndex=startTokenIndex,this.endTokenIndex=endTokenIndex,this.isFunctionScope=isFunctionScope}},StateSnapshot=class{constructor(potentialArrowAt,noAnonFunctionType,inDisallowConditionalTypesContext,tokensLength,scopesLength,pos,type,contextualKeyword,start,end,isType,scopeDepth,error2){this.potentialArrowAt=potentialArrowAt,this.noAnonFunctionType=noAnonFunctionType,this.inDisallowConditionalTypesContext=inDisallowConditionalTypesContext,this.tokensLength=tokensLength,this.scopesLength=scopesLength,this.pos=pos,this.type=type,this.contextualKeyword=contextualKeyword,this.start=start,this.end=end,this.isType=isType,this.scopeDepth=scopeDepth,this.error=error2}},State=class _State{constructor(){_State.prototype.__init.call(this),_State.prototype.__init2.call(this),_State.prototype.__init3.call(this),_State.prototype.__init4.call(this),_State.prototype.__init5.call(this),_State.prototype.__init6.call(this),_State.prototype.__init7.call(this),_State.prototype.__init8.call(this),_State.prototype.__init9.call(this),_State.prototype.__init10.call(this),_State.prototype.__init11.call(this),_State.prototype.__init12.call(this),_State.prototype.__init13.call(this)}__init(){this.potentialArrowAt=-1}__init2(){this.noAnonFunctionType=!1}__init3(){this.inDisallowConditionalTypesContext=!1}__init4(){this.tokens=[]}__init5(){this.scopes=[]}__init6(){this.pos=0}__init7(){this.type=TokenType.eof}__init8(){this.contextualKeyword=ContextualKeyword.NONE}__init9(){this.start=0}__init10(){this.end=0}__init11(){this.isType=!1}__init12(){this.scopeDepth=0}__init13(){this.error=null}snapshot(){return new StateSnapshot(this.potentialArrowAt,this.noAnonFunctionType,this.inDisallowConditionalTypesContext,this.tokens.length,this.scopes.length,this.pos,this.type,this.contextualKeyword,this.start,this.end,this.isType,this.scopeDepth,this.error)}restoreFromSnapshot(snapshot){this.potentialArrowAt=snapshot.potentialArrowAt,this.noAnonFunctionType=snapshot.noAnonFunctionType,this.inDisallowConditionalTypesContext=snapshot.inDisallowConditionalTypesContext,this.tokens.length=snapshot.tokensLength,this.scopes.length=snapshot.scopesLength,this.pos=snapshot.pos,this.type=snapshot.type,this.contextualKeyword=snapshot.contextualKeyword,this.start=snapshot.start,this.end=snapshot.end,this.isType=snapshot.isType,this.scopeDepth=snapshot.scopeDepth,this.error=snapshot.error}};var charCodes;(function(charCodes2){charCodes2[charCodes2.backSpace=8]="backSpace";let lineFeed=10;charCodes2[charCodes2.lineFeed=lineFeed]="lineFeed";let tab=9;charCodes2[charCodes2.tab=tab]="tab";let carriageReturn=13;charCodes2[charCodes2.carriageReturn=carriageReturn]="carriageReturn";let shiftOut=14;charCodes2[charCodes2.shiftOut=shiftOut]="shiftOut";let space=32;charCodes2[charCodes2.space=space]="space";let exclamationMark=33;charCodes2[charCodes2.exclamationMark=exclamationMark]="exclamationMark";let quotationMark=34;charCodes2[charCodes2.quotationMark=quotationMark]="quotationMark";let numberSign=35;charCodes2[charCodes2.numberSign=numberSign]="numberSign";let dollarSign=36;charCodes2[charCodes2.dollarSign=dollarSign]="dollarSign";let percentSign=37;charCodes2[charCodes2.percentSign=percentSign]="percentSign";let ampersand=38;charCodes2[charCodes2.ampersand=ampersand]="ampersand";let apostrophe=39;charCodes2[charCodes2.apostrophe=apostrophe]="apostrophe";let leftParenthesis=40;charCodes2[charCodes2.leftParenthesis=leftParenthesis]="leftParenthesis";let rightParenthesis=41;charCodes2[charCodes2.rightParenthesis=rightParenthesis]="rightParenthesis";let asterisk=42;charCodes2[charCodes2.asterisk=asterisk]="asterisk";let plusSign=43;charCodes2[charCodes2.plusSign=plusSign]="plusSign";let comma2=44;charCodes2[charCodes2.comma=comma2]="comma";let dash=45;charCodes2[charCodes2.dash=dash]="dash";let dot=46;charCodes2[charCodes2.dot=dot]="dot";let slash=47;charCodes2[charCodes2.slash=slash]="slash";let digit0=48;charCodes2[charCodes2.digit0=digit0]="digit0";let digit1=49;charCodes2[charCodes2.digit1=digit1]="digit1";let digit2=50;charCodes2[charCodes2.digit2=digit2]="digit2";let digit3=51;charCodes2[charCodes2.digit3=digit3]="digit3";let digit4=52;charCodes2[charCodes2.digit4=digit4]="digit4";let digit5=53;charCodes2[charCodes2.digit5=digit5]="digit5";let digit6=54;charCodes2[charCodes2.digit6=digit6]="digit6";let digit7=55;charCodes2[charCodes2.digit7=digit7]="digit7";let digit8=56;charCodes2[charCodes2.digit8=digit8]="digit8";let digit9=57;charCodes2[charCodes2.digit9=digit9]="digit9";let colon=58;charCodes2[charCodes2.colon=colon]="colon";let semicolon3=59;charCodes2[charCodes2.semicolon=semicolon3]="semicolon";let lessThan=60;charCodes2[charCodes2.lessThan=lessThan]="lessThan";let equalsTo=61;charCodes2[charCodes2.equalsTo=equalsTo]="equalsTo";let greaterThan=62;charCodes2[charCodes2.greaterThan=greaterThan]="greaterThan";let questionMark=63;charCodes2[charCodes2.questionMark=questionMark]="questionMark";let atSign=64;charCodes2[charCodes2.atSign=atSign]="atSign";let uppercaseA=65;charCodes2[charCodes2.uppercaseA=uppercaseA]="uppercaseA";let uppercaseB=66;charCodes2[charCodes2.uppercaseB=uppercaseB]="uppercaseB";let uppercaseC=67;charCodes2[charCodes2.uppercaseC=uppercaseC]="uppercaseC";let uppercaseD=68;charCodes2[charCodes2.uppercaseD=uppercaseD]="uppercaseD";let uppercaseE=69;charCodes2[charCodes2.uppercaseE=uppercaseE]="uppercaseE";let uppercaseF=70;charCodes2[charCodes2.uppercaseF=uppercaseF]="uppercaseF";let uppercaseG=71;charCodes2[charCodes2.uppercaseG=uppercaseG]="uppercaseG";let uppercaseH=72;charCodes2[charCodes2.uppercaseH=uppercaseH]="uppercaseH";let uppercaseI=73;charCodes2[charCodes2.uppercaseI=uppercaseI]="uppercaseI";let uppercaseJ=74;charCodes2[charCodes2.uppercaseJ=uppercaseJ]="uppercaseJ";let uppercaseK=75;charCodes2[charCodes2.uppercaseK=uppercaseK]="uppercaseK";let uppercaseL=76;charCodes2[charCodes2.uppercaseL=uppercaseL]="uppercaseL";let uppercaseM=77;charCodes2[charCodes2.uppercaseM=uppercaseM]="uppercaseM";let uppercaseN=78;charCodes2[charCodes2.uppercaseN=uppercaseN]="uppercaseN";let uppercaseO=79;charCodes2[charCodes2.uppercaseO=uppercaseO]="uppercaseO";let uppercaseP=80;charCodes2[charCodes2.uppercaseP=uppercaseP]="uppercaseP";let uppercaseQ=81;charCodes2[charCodes2.uppercaseQ=uppercaseQ]="uppercaseQ";let uppercaseR=82;charCodes2[charCodes2.uppercaseR=uppercaseR]="uppercaseR";let uppercaseS=83;charCodes2[charCodes2.uppercaseS=uppercaseS]="uppercaseS";let uppercaseT=84;charCodes2[charCodes2.uppercaseT=uppercaseT]="uppercaseT";let uppercaseU=85;charCodes2[charCodes2.uppercaseU=uppercaseU]="uppercaseU";let uppercaseV=86;charCodes2[charCodes2.uppercaseV=uppercaseV]="uppercaseV";let uppercaseW=87;charCodes2[charCodes2.uppercaseW=uppercaseW]="uppercaseW";let uppercaseX=88;charCodes2[charCodes2.uppercaseX=uppercaseX]="uppercaseX";let uppercaseY=89;charCodes2[charCodes2.uppercaseY=uppercaseY]="uppercaseY";let uppercaseZ=90;charCodes2[charCodes2.uppercaseZ=uppercaseZ]="uppercaseZ";let leftSquareBracket=91;charCodes2[charCodes2.leftSquareBracket=leftSquareBracket]="leftSquareBracket";let backslash=92;charCodes2[charCodes2.backslash=backslash]="backslash";let rightSquareBracket=93;charCodes2[charCodes2.rightSquareBracket=rightSquareBracket]="rightSquareBracket";let caret=94;charCodes2[charCodes2.caret=caret]="caret";let underscore=95;charCodes2[charCodes2.underscore=underscore]="underscore";let graveAccent=96;charCodes2[charCodes2.graveAccent=graveAccent]="graveAccent";let lowercaseA=97;charCodes2[charCodes2.lowercaseA=lowercaseA]="lowercaseA";let lowercaseB=98;charCodes2[charCodes2.lowercaseB=lowercaseB]="lowercaseB";let lowercaseC=99;charCodes2[charCodes2.lowercaseC=lowercaseC]="lowercaseC";let lowercaseD=100;charCodes2[charCodes2.lowercaseD=lowercaseD]="lowercaseD";let lowercaseE=101;charCodes2[charCodes2.lowercaseE=lowercaseE]="lowercaseE";let lowercaseF=102;charCodes2[charCodes2.lowercaseF=lowercaseF]="lowercaseF";let lowercaseG=103;charCodes2[charCodes2.lowercaseG=lowercaseG]="lowercaseG";let lowercaseH=104;charCodes2[charCodes2.lowercaseH=lowercaseH]="lowercaseH";let lowercaseI=105;charCodes2[charCodes2.lowercaseI=lowercaseI]="lowercaseI";let lowercaseJ=106;charCodes2[charCodes2.lowercaseJ=lowercaseJ]="lowercaseJ";let lowercaseK=107;charCodes2[charCodes2.lowercaseK=lowercaseK]="lowercaseK";let lowercaseL=108;charCodes2[charCodes2.lowercaseL=lowercaseL]="lowercaseL";let lowercaseM=109;charCodes2[charCodes2.lowercaseM=lowercaseM]="lowercaseM";let lowercaseN=110;charCodes2[charCodes2.lowercaseN=lowercaseN]="lowercaseN";let lowercaseO=111;charCodes2[charCodes2.lowercaseO=lowercaseO]="lowercaseO";let lowercaseP=112;charCodes2[charCodes2.lowercaseP=lowercaseP]="lowercaseP";let lowercaseQ=113;charCodes2[charCodes2.lowercaseQ=lowercaseQ]="lowercaseQ";let lowercaseR=114;charCodes2[charCodes2.lowercaseR=lowercaseR]="lowercaseR";let lowercaseS=115;charCodes2[charCodes2.lowercaseS=lowercaseS]="lowercaseS";let lowercaseT=116;charCodes2[charCodes2.lowercaseT=lowercaseT]="lowercaseT";let lowercaseU=117;charCodes2[charCodes2.lowercaseU=lowercaseU]="lowercaseU";let lowercaseV=118;charCodes2[charCodes2.lowercaseV=lowercaseV]="lowercaseV";let lowercaseW=119;charCodes2[charCodes2.lowercaseW=lowercaseW]="lowercaseW";let lowercaseX=120;charCodes2[charCodes2.lowercaseX=lowercaseX]="lowercaseX";let lowercaseY=121;charCodes2[charCodes2.lowercaseY=lowercaseY]="lowercaseY";let lowercaseZ=122;charCodes2[charCodes2.lowercaseZ=lowercaseZ]="lowercaseZ";let leftCurlyBrace=123;charCodes2[charCodes2.leftCurlyBrace=leftCurlyBrace]="leftCurlyBrace";let verticalBar=124;charCodes2[charCodes2.verticalBar=verticalBar]="verticalBar";let rightCurlyBrace=125;charCodes2[charCodes2.rightCurlyBrace=rightCurlyBrace]="rightCurlyBrace";let tilde=126;charCodes2[charCodes2.tilde=tilde]="tilde";let nonBreakingSpace=160;charCodes2[charCodes2.nonBreakingSpace=nonBreakingSpace]="nonBreakingSpace";let oghamSpaceMark=5760;charCodes2[charCodes2.oghamSpaceMark=oghamSpaceMark]="oghamSpaceMark";let lineSeparator=8232;charCodes2[charCodes2.lineSeparator=lineSeparator]="lineSeparator";let paragraphSeparator=8233;charCodes2[charCodes2.paragraphSeparator=paragraphSeparator]="paragraphSeparator"})(charCodes||(charCodes={}));var isJSXEnabled,isTypeScriptEnabled,isFlowEnabled,state,input,nextContextId;function getNextContextId(){return nextContextId++}function augmentError(error2){if("pos"in error2){let loc=locationForIndex(error2.pos);error2.message+=` (${loc.line}:${loc.column})`,error2.loc=loc}return error2}var Loc=class{constructor(line2,column){this.line=line2,this.column=column}};function locationForIndex(pos){let line2=1,column=1;for(let i5=0;i5<pos;i5++)input.charCodeAt(i5)===charCodes.lineFeed?(line2++,column=1):column++;return new Loc(line2,column)}function initParser(inputCode,isJSXEnabledArg,isTypeScriptEnabledArg,isFlowEnabledArg){input=inputCode,state=new State,nextContextId=1,isJSXEnabled=isJSXEnabledArg,isTypeScriptEnabled=isTypeScriptEnabledArg,isFlowEnabled=isFlowEnabledArg}function isContextual(contextualKeyword){return state.contextualKeyword===contextualKeyword}function isLookaheadContextual(contextualKeyword){let l3=lookaheadTypeAndKeyword();return l3.type===TokenType.name&&l3.contextualKeyword===contextualKeyword}function eatContextual(contextualKeyword){return state.contextualKeyword===contextualKeyword&&eat(TokenType.name)}function expectContextual(contextualKeyword){eatContextual(contextualKeyword)||unexpected()}function canInsertSemicolon(){return match(TokenType.eof)||match(TokenType.braceR)||hasPrecedingLineBreak()}function hasPrecedingLineBreak(){let prevToken=state.tokens[state.tokens.length-1],lastTokEnd=prevToken?prevToken.end:0;for(let i5=lastTokEnd;i5<state.start;i5++){let code=input.charCodeAt(i5);if(code===charCodes.lineFeed||code===charCodes.carriageReturn||code===8232||code===8233)return!0}return!1}function hasFollowingLineBreak(){let nextStart=nextTokenStart();for(let i5=state.end;i5<nextStart;i5++){let code=input.charCodeAt(i5);if(code===charCodes.lineFeed||code===charCodes.carriageReturn||code===8232||code===8233)return!0}return!1}function isLineTerminator(){return eat(TokenType.semi)||canInsertSemicolon()}function semicolon(){isLineTerminator()||unexpected('Unexpected token, expected ";"')}function expect(type){eat(type)||unexpected(`Unexpected token, expected "${formatTokenType(type)}"`)}function unexpected(message="Unexpected token",pos=state.start){if(state.error)return;let err2=new SyntaxError(message);err2.pos=pos,state.error=err2,state.pos=input.length,finishToken(TokenType.eof)}var WHITESPACE_CHARS=[9,11,12,charCodes.space,charCodes.nonBreakingSpace,charCodes.oghamSpaceMark,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],skipWhiteSpace=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,IS_WHITESPACE=new Uint8Array(65536);for(let char of WHITESPACE_CHARS)IS_WHITESPACE[char]=1;function computeIsIdentifierChar(code){if(code<48)return code===36;if(code<58)return!0;if(code<65)return!1;if(code<91)return!0;if(code<97)return code===95;if(code<123)return!0;if(code<128)return!1;throw new Error("Should not be called with non-ASCII char code.")}var IS_IDENTIFIER_CHAR=new Uint8Array(65536);for(let i5=0;i5<128;i5++)IS_IDENTIFIER_CHAR[i5]=computeIsIdentifierChar(i5)?1:0;for(let i5=128;i5<65536;i5++)IS_IDENTIFIER_CHAR[i5]=1;for(let whitespaceChar of WHITESPACE_CHARS)IS_IDENTIFIER_CHAR[whitespaceChar]=0;IS_IDENTIFIER_CHAR[8232]=0;IS_IDENTIFIER_CHAR[8233]=0;var IS_IDENTIFIER_START=IS_IDENTIFIER_CHAR.slice();for(let numChar=charCodes.digit0;numChar<=charCodes.digit9;numChar++)IS_IDENTIFIER_START[numChar]=0;var READ_WORD_TREE=new Int32Array([-1,27,783,918,1755,2376,2862,3483,-1,3699,-1,4617,4752,4833,5130,5508,5940,-1,6480,6939,7749,8181,8451,8613,-1,8829,-1,-1,-1,54,243,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,432,-1,-1,-1,675,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,81,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,108,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,135,-1,-1,-1,-1,-1,-1,-1,-1,-1,162,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,189,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,216,-1,-1,-1,-1,-1,-1,ContextualKeyword._abstract<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,270,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,297,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,324,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,351,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,378,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,405,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._accessor<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._as<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,459,-1,-1,-1,-1,-1,594,-1,-1,-1,-1,-1,-1,486,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,513,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,540,-1,-1,-1,-1,-1,-1,ContextualKeyword._assert<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,567,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._asserts<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,621,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,648,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._async<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,702,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,729,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,756,-1,-1,-1,-1,-1,-1,ContextualKeyword._await<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,810,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,837,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,864,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,891,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._break<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,945,-1,-1,-1,-1,-1,-1,1107,-1,-1,-1,1242,-1,-1,1350,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,972,1026,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,999,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._case<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1053,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1080,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._catch<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1134,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1161,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1188,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1215,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._checks<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1269,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1296,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1323,-1,-1,-1,-1,-1,-1,-1,(TokenType._class<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1377,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1404,1620,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1431,-1,-1,-1,-1,-1,-1,(TokenType._const<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1458,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1485,-1,-1,-1,-1,-1,-1,-1,-1,1512,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1539,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1566,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1593,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._constructor<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1647,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1674,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1701,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1728,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._continue<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1782,-1,-1,-1,-1,-1,-1,-1,-1,-1,2349,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1809,1971,-1,-1,2106,-1,-1,-1,-1,-1,2241,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1836,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1863,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1890,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1917,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1944,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._debugger<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1998,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2025,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2052,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2079,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._declare<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2133,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2160,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2187,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2214,-1,-1,-1,-1,-1,-1,(TokenType._default<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2268,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2295,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2322,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._delete<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._do<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2403,-1,2484,-1,-1,-1,-1,-1,-1,-1,-1,-1,2565,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2430,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2457,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._else<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2511,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2538,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._enum<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2592,-1,-1,-1,2727,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2619,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2646,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2673,-1,-1,-1,-1,-1,-1,(TokenType._export<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2700,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._exports<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2754,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2781,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2808,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2835,-1,-1,-1,-1,-1,-1,-1,(TokenType._extends<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2889,-1,-1,-1,-1,-1,-1,-1,2997,-1,-1,-1,-1,-1,3159,-1,-1,3213,-1,-1,3294,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2916,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2943,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2970,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._false<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3024,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3051,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3078,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3105,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3132,-1,(TokenType._finally<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3186,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._for<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3240,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3267,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._from<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3321,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3348,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3375,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3402,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3429,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3456,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._function<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3510,-1,-1,-1,-1,-1,-1,3564,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3537,-1,-1,-1,-1,-1,-1,ContextualKeyword._get<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3591,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3618,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3645,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3672,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._global<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3726,-1,-1,-1,-1,-1,-1,3753,4077,-1,-1,-1,-1,4590,-1,-1,-1,-1,-1,-1,-1,(TokenType._if<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3780,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3807,-1,-1,3996,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3834,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3861,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3888,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3915,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3942,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3969,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._implements<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4023,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4050,-1,-1,-1,-1,-1,-1,(TokenType._import<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._in<<1)+1,-1,-1,-1,-1,-1,4104,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4185,4401,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4131,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4158,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._infer<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4212,-1,-1,-1,-1,-1,-1,-1,4239,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4266,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4293,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4320,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4347,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4374,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._instanceof<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4428,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4455,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4482,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4509,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4536,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4563,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._interface<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._is<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4644,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4671,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4698,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4725,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._keyof<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4779,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4806,-1,-1,-1,-1,-1,-1,(TokenType._let<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4860,-1,-1,-1,-1,-1,4995,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4887,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4914,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4941,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4968,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._mixins<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5022,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5049,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5076,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5103,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._module<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5157,-1,-1,-1,5373,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5427,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5184,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5211,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5238,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5265,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5292,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5346,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._namespace<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5400,-1,-1,-1,(TokenType._new<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5454,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5481,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._null<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5535,-1,-1,-1,-1,-1,-1,-1,-1,-1,5562,-1,-1,-1,-1,5697,5751,-1,-1,-1,-1,ContextualKeyword._of<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5589,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5616,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5643,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5670,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._opaque<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5724,-1,-1,-1,-1,-1,-1,ContextualKeyword._out<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5778,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5805,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5832,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5859,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5886,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5913,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._override<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5967,-1,-1,6345,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5994,-1,-1,-1,-1,-1,6129,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6021,-1,-1,-1,-1,-1,6048,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6075,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6102,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._private<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6156,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6183,-1,-1,-1,-1,-1,-1,-1,-1,-1,6318,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6210,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6237,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6264,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6291,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._protected<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._proto<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6372,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6399,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6426,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6453,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._public<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6507,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6534,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6696,-1,-1,6831,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6561,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6588,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6615,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6642,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6669,-1,ContextualKeyword._readonly<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6723,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6750,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6777,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6804,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._require<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6858,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6885,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6912,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._return<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6966,-1,-1,-1,7182,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7236,7371,-1,7479,-1,7614,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6993,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7020,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7047,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7074,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7101,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7128,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7155,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._satisfies<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7209,-1,-1,-1,-1,-1,-1,ContextualKeyword._set<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7263,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7290,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7317,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7344,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._static<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7398,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7425,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7452,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._super<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7506,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7533,-1,-1,-1,-1,-1,-1,-1,-1,-1,7560,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7587,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._switch<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7641,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7668,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7695,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7722,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._symbol<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7776,-1,-1,-1,-1,-1,-1,-1,-1,-1,7938,-1,-1,-1,-1,-1,-1,8046,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7803,-1,-1,-1,-1,-1,-1,-1,-1,7857,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7830,-1,-1,-1,-1,-1,-1,-1,(TokenType._this<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7884,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7911,-1,-1,-1,(TokenType._throw<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7965,-1,-1,-1,8019,-1,-1,-1,-1,-1,-1,7992,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._true<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._try<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8073,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8100,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._type<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8127,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8154,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._typeof<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8208,-1,-1,-1,-1,8343,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8235,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8262,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8289,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8316,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._unique<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8370,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8397,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8424,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._using<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8478,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8532,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8505,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._var<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8559,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8586,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._void<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8640,8748,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8667,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8694,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8721,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._while<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8775,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8802,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._with<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8856,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8883,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8910,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8937,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._yield<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]);function readWord(){let treePos=0,code=0,pos=state.pos;for(;pos<input.length&&(code=input.charCodeAt(pos),!(code<charCodes.lowercaseA||code>charCodes.lowercaseZ));){let next2=READ_WORD_TREE[treePos+(code-charCodes.lowercaseA)+1];if(next2===-1)break;treePos=next2,pos++}let keywordValue=READ_WORD_TREE[treePos];if(keywordValue>-1&&!IS_IDENTIFIER_CHAR[code]){state.pos=pos,keywordValue&1?finishToken(keywordValue>>>1):finishToken(TokenType.name,keywordValue>>>1);return}for(;pos<input.length;){let ch3=input.charCodeAt(pos);if(IS_IDENTIFIER_CHAR[ch3])pos++;else if(ch3===charCodes.backslash){if(pos+=2,input.charCodeAt(pos)===charCodes.leftCurlyBrace){for(;pos<input.length&&input.charCodeAt(pos)!==charCodes.rightCurlyBrace;)pos++;pos++}}else if(ch3===charCodes.atSign&&input.charCodeAt(pos+1)===charCodes.atSign)pos+=2;else break}state.pos=pos,finishToken(TokenType.name)}var IdentifierRole;(function(IdentifierRole2){IdentifierRole2[IdentifierRole2.Access=0]="Access";let ExportAccess=1;IdentifierRole2[IdentifierRole2.ExportAccess=ExportAccess]="ExportAccess";let TopLevelDeclaration=ExportAccess+1;IdentifierRole2[IdentifierRole2.TopLevelDeclaration=TopLevelDeclaration]="TopLevelDeclaration";let FunctionScopedDeclaration=TopLevelDeclaration+1;IdentifierRole2[IdentifierRole2.FunctionScopedDeclaration=FunctionScopedDeclaration]="FunctionScopedDeclaration";let BlockScopedDeclaration=FunctionScopedDeclaration+1;IdentifierRole2[IdentifierRole2.BlockScopedDeclaration=BlockScopedDeclaration]="BlockScopedDeclaration";let ObjectShorthandTopLevelDeclaration=BlockScopedDeclaration+1;IdentifierRole2[IdentifierRole2.ObjectShorthandTopLevelDeclaration=ObjectShorthandTopLevelDeclaration]="ObjectShorthandTopLevelDeclaration";let ObjectShorthandFunctionScopedDeclaration=ObjectShorthandTopLevelDeclaration+1;IdentifierRole2[IdentifierRole2.ObjectShorthandFunctionScopedDeclaration=ObjectShorthandFunctionScopedDeclaration]="ObjectShorthandFunctionScopedDeclaration";let ObjectShorthandBlockScopedDeclaration=ObjectShorthandFunctionScopedDeclaration+1;IdentifierRole2[IdentifierRole2.ObjectShorthandBlockScopedDeclaration=ObjectShorthandBlockScopedDeclaration]="ObjectShorthandBlockScopedDeclaration";let ObjectShorthand=ObjectShorthandBlockScopedDeclaration+1;IdentifierRole2[IdentifierRole2.ObjectShorthand=ObjectShorthand]="ObjectShorthand";let ImportDeclaration=ObjectShorthand+1;IdentifierRole2[IdentifierRole2.ImportDeclaration=ImportDeclaration]="ImportDeclaration";let ObjectKey=ImportDeclaration+1;IdentifierRole2[IdentifierRole2.ObjectKey=ObjectKey]="ObjectKey";let ImportAccess=ObjectKey+1;IdentifierRole2[IdentifierRole2.ImportAccess=ImportAccess]="ImportAccess"})(IdentifierRole||(IdentifierRole={}));var JSXRole;(function(JSXRole2){JSXRole2[JSXRole2.NoChildren=0]="NoChildren";let OneChild=1;JSXRole2[JSXRole2.OneChild=OneChild]="OneChild";let StaticChildren=OneChild+1;JSXRole2[JSXRole2.StaticChildren=StaticChildren]="StaticChildren";let KeyAfterPropSpread=StaticChildren+1;JSXRole2[JSXRole2.KeyAfterPropSpread=KeyAfterPropSpread]="KeyAfterPropSpread"})(JSXRole||(JSXRole={}));function isDeclaration(token){let role=token.identifierRole;return role===IdentifierRole.TopLevelDeclaration||role===IdentifierRole.FunctionScopedDeclaration||role===IdentifierRole.BlockScopedDeclaration||role===IdentifierRole.ObjectShorthandTopLevelDeclaration||role===IdentifierRole.ObjectShorthandFunctionScopedDeclaration||role===IdentifierRole.ObjectShorthandBlockScopedDeclaration}function isNonTopLevelDeclaration(token){let role=token.identifierRole;return role===IdentifierRole.FunctionScopedDeclaration||role===IdentifierRole.BlockScopedDeclaration||role===IdentifierRole.ObjectShorthandFunctionScopedDeclaration||role===IdentifierRole.ObjectShorthandBlockScopedDeclaration}function isTopLevelDeclaration(token){let role=token.identifierRole;return role===IdentifierRole.TopLevelDeclaration||role===IdentifierRole.ObjectShorthandTopLevelDeclaration||role===IdentifierRole.ImportDeclaration}function isBlockScopedDeclaration(token){let role=token.identifierRole;return role===IdentifierRole.TopLevelDeclaration||role===IdentifierRole.BlockScopedDeclaration||role===IdentifierRole.ObjectShorthandTopLevelDeclaration||role===IdentifierRole.ObjectShorthandBlockScopedDeclaration}function isFunctionScopedDeclaration(token){let role=token.identifierRole;return role===IdentifierRole.FunctionScopedDeclaration||role===IdentifierRole.ObjectShorthandFunctionScopedDeclaration}function isObjectShorthandDeclaration(token){return token.identifierRole===IdentifierRole.ObjectShorthandTopLevelDeclaration||token.identifierRole===IdentifierRole.ObjectShorthandBlockScopedDeclaration||token.identifierRole===IdentifierRole.ObjectShorthandFunctionScopedDeclaration}var Token=class{constructor(){this.type=state.type,this.contextualKeyword=state.contextualKeyword,this.start=state.start,this.end=state.end,this.scopeDepth=state.scopeDepth,this.isType=state.isType,this.identifierRole=null,this.jsxRole=null,this.shadowsGlobal=!1,this.isAsyncOperation=!1,this.contextId=null,this.rhsEndIndex=null,this.isExpression=!1,this.numNullishCoalesceStarts=0,this.numNullishCoalesceEnds=0,this.isOptionalChainStart=!1,this.isOptionalChainEnd=!1,this.subscriptStartIndex=null,this.nullishStartIndex=null}};function next(){state.tokens.push(new Token),nextToken()}function nextTemplateToken(){state.tokens.push(new Token),state.start=state.pos,readTmplToken()}function retokenizeSlashAsRegex(){state.type===TokenType.assign&&--state.pos,readRegexp()}function pushTypeContext(existingTokensInType){for(let i5=state.tokens.length-existingTokensInType;i5<state.tokens.length;i5++)state.tokens[i5].isType=!0;let oldIsType=state.isType;return state.isType=!0,oldIsType}function popTypeContext(oldIsType){state.isType=oldIsType}function eat(type){return match(type)?(next(),!0):!1}function eatTypeToken(tokenType){let oldIsType=state.isType;state.isType=!0,eat(tokenType),state.isType=oldIsType}function match(type){return state.type===type}function lookaheadType(){let snapshot=state.snapshot();next();let type=state.type;return state.restoreFromSnapshot(snapshot),type}var TypeAndKeyword=class{constructor(type,contextualKeyword){this.type=type,this.contextualKeyword=contextualKeyword}};function lookaheadTypeAndKeyword(){let snapshot=state.snapshot();next();let type=state.type,contextualKeyword=state.contextualKeyword;return state.restoreFromSnapshot(snapshot),new TypeAndKeyword(type,contextualKeyword)}function nextTokenStart(){return nextTokenStartSince(state.pos)}function nextTokenStartSince(pos){skipWhiteSpace.lastIndex=pos;let skip=skipWhiteSpace.exec(input);return pos+skip[0].length}function lookaheadCharCode(){return input.charCodeAt(nextTokenStart())}function nextToken(){if(skipSpace(),state.start=state.pos,state.pos>=input.length){let tokens=state.tokens;tokens.length>=2&&tokens[tokens.length-1].start>=input.length&&tokens[tokens.length-2].start>=input.length&&unexpected("Unexpectedly reached the end of input."),finishToken(TokenType.eof);return}readToken(input.charCodeAt(state.pos))}function readToken(code){IS_IDENTIFIER_START[code]||code===charCodes.backslash||code===charCodes.atSign&&input.charCodeAt(state.pos+1)===charCodes.atSign?readWord():getTokenFromCode(code)}function skipBlockComment(){for(;input.charCodeAt(state.pos)!==charCodes.asterisk||input.charCodeAt(state.pos+1)!==charCodes.slash;)if(state.pos++,state.pos>input.length){unexpected("Unterminated comment",state.pos-2);return}state.pos+=2}function skipLineComment(startSkip){let ch3=input.charCodeAt(state.pos+=startSkip);if(state.pos<input.length)for(;ch3!==charCodes.lineFeed&&ch3!==charCodes.carriageReturn&&ch3!==charCodes.lineSeparator&&ch3!==charCodes.paragraphSeparator&&++state.pos<input.length;)ch3=input.charCodeAt(state.pos)}function skipSpace(){for(;state.pos<input.length;){let ch3=input.charCodeAt(state.pos);switch(ch3){case charCodes.carriageReturn:input.charCodeAt(state.pos+1)===charCodes.lineFeed&&++state.pos;case charCodes.lineFeed:case charCodes.lineSeparator:case charCodes.paragraphSeparator:++state.pos;break;case charCodes.slash:switch(input.charCodeAt(state.pos+1)){case charCodes.asterisk:state.pos+=2,skipBlockComment();break;case charCodes.slash:skipLineComment(2);break;default:return}break;default:if(IS_WHITESPACE[ch3])++state.pos;else return}}}function finishToken(type,contextualKeyword=ContextualKeyword.NONE){state.end=state.pos,state.type=type,state.contextualKeyword=contextualKeyword}function readToken_dot(){let nextChar=input.charCodeAt(state.pos+1);if(nextChar>=charCodes.digit0&&nextChar<=charCodes.digit9){readNumber(!0);return}nextChar===charCodes.dot&&input.charCodeAt(state.pos+2)===charCodes.dot?(state.pos+=3,finishToken(TokenType.ellipsis)):(++state.pos,finishToken(TokenType.dot))}function readToken_slash(){input.charCodeAt(state.pos+1)===charCodes.equalsTo?finishOp(TokenType.assign,2):finishOp(TokenType.slash,1)}function readToken_mult_modulo(code){let tokenType=code===charCodes.asterisk?TokenType.star:TokenType.modulo,width=1,nextChar=input.charCodeAt(state.pos+1);code===charCodes.asterisk&&nextChar===charCodes.asterisk&&(width++,nextChar=input.charCodeAt(state.pos+2),tokenType=TokenType.exponent),nextChar===charCodes.equalsTo&&input.charCodeAt(state.pos+2)!==charCodes.greaterThan&&(width++,tokenType=TokenType.assign),finishOp(tokenType,width)}function readToken_pipe_amp(code){let nextChar=input.charCodeAt(state.pos+1);if(nextChar===code){input.charCodeAt(state.pos+2)===charCodes.equalsTo?finishOp(TokenType.assign,3):finishOp(code===charCodes.verticalBar?TokenType.logicalOR:TokenType.logicalAND,2);return}if(code===charCodes.verticalBar){if(nextChar===charCodes.greaterThan){finishOp(TokenType.pipeline,2);return}else if(nextChar===charCodes.rightCurlyBrace&&isFlowEnabled){finishOp(TokenType.braceBarR,2);return}}if(nextChar===charCodes.equalsTo){finishOp(TokenType.assign,2);return}finishOp(code===charCodes.verticalBar?TokenType.bitwiseOR:TokenType.bitwiseAND,1)}function readToken_caret(){input.charCodeAt(state.pos+1)===charCodes.equalsTo?finishOp(TokenType.assign,2):finishOp(TokenType.bitwiseXOR,1)}function readToken_plus_min(code){let nextChar=input.charCodeAt(state.pos+1);if(nextChar===code){finishOp(TokenType.preIncDec,2);return}nextChar===charCodes.equalsTo?finishOp(TokenType.assign,2):code===charCodes.plusSign?finishOp(TokenType.plus,1):finishOp(TokenType.minus,1)}function readToken_lt(){let nextChar=input.charCodeAt(state.pos+1);if(nextChar===charCodes.lessThan){if(input.charCodeAt(state.pos+2)===charCodes.equalsTo){finishOp(TokenType.assign,3);return}state.isType?finishOp(TokenType.lessThan,1):finishOp(TokenType.bitShiftL,2);return}nextChar===charCodes.equalsTo?finishOp(TokenType.relationalOrEqual,2):finishOp(TokenType.lessThan,1)}function readToken_gt(){if(state.isType){finishOp(TokenType.greaterThan,1);return}let nextChar=input.charCodeAt(state.pos+1);if(nextChar===charCodes.greaterThan){let size3=input.charCodeAt(state.pos+2)===charCodes.greaterThan?3:2;if(input.charCodeAt(state.pos+size3)===charCodes.equalsTo){finishOp(TokenType.assign,size3+1);return}finishOp(TokenType.bitShiftR,size3);return}nextChar===charCodes.equalsTo?finishOp(TokenType.relationalOrEqual,2):finishOp(TokenType.greaterThan,1)}function rescan_gt(){state.type===TokenType.greaterThan&&(state.pos-=1,readToken_gt())}function readToken_eq_excl(code){let nextChar=input.charCodeAt(state.pos+1);if(nextChar===charCodes.equalsTo){finishOp(TokenType.equality,input.charCodeAt(state.pos+2)===charCodes.equalsTo?3:2);return}if(code===charCodes.equalsTo&&nextChar===charCodes.greaterThan){state.pos+=2,finishToken(TokenType.arrow);return}finishOp(code===charCodes.equalsTo?TokenType.eq:TokenType.bang,1)}function readToken_question(){let nextChar=input.charCodeAt(state.pos+1),nextChar2=input.charCodeAt(state.pos+2);nextChar===charCodes.questionMark&&!(isFlowEnabled&&state.isType)?nextChar2===charCodes.equalsTo?finishOp(TokenType.assign,3):finishOp(TokenType.nullishCoalescing,2):nextChar===charCodes.dot&&!(nextChar2>=charCodes.digit0&&nextChar2<=charCodes.digit9)?(state.pos+=2,finishToken(TokenType.questionDot)):(++state.pos,finishToken(TokenType.question))}function getTokenFromCode(code){switch(code){case charCodes.numberSign:++state.pos,finishToken(TokenType.hash);return;case charCodes.dot:readToken_dot();return;case charCodes.leftParenthesis:++state.pos,finishToken(TokenType.parenL);return;case charCodes.rightParenthesis:++state.pos,finishToken(TokenType.parenR);return;case charCodes.semicolon:++state.pos,finishToken(TokenType.semi);return;case charCodes.comma:++state.pos,finishToken(TokenType.comma);return;case charCodes.leftSquareBracket:++state.pos,finishToken(TokenType.bracketL);return;case charCodes.rightSquareBracket:++state.pos,finishToken(TokenType.bracketR);return;case charCodes.leftCurlyBrace:isFlowEnabled&&input.charCodeAt(state.pos+1)===charCodes.verticalBar?finishOp(TokenType.braceBarL,2):(++state.pos,finishToken(TokenType.braceL));return;case charCodes.rightCurlyBrace:++state.pos,finishToken(TokenType.braceR);return;case charCodes.colon:input.charCodeAt(state.pos+1)===charCodes.colon?finishOp(TokenType.doubleColon,2):(++state.pos,finishToken(TokenType.colon));return;case charCodes.questionMark:readToken_question();return;case charCodes.atSign:++state.pos,finishToken(TokenType.at);return;case charCodes.graveAccent:++state.pos,finishToken(TokenType.backQuote);return;case charCodes.digit0:{let nextChar=input.charCodeAt(state.pos+1);if(nextChar===charCodes.lowercaseX||nextChar===charCodes.uppercaseX||nextChar===charCodes.lowercaseO||nextChar===charCodes.uppercaseO||nextChar===charCodes.lowercaseB||nextChar===charCodes.uppercaseB){readRadixNumber();return}}case charCodes.digit1:case charCodes.digit2:case charCodes.digit3:case charCodes.digit4:case charCodes.digit5:case charCodes.digit6:case charCodes.digit7:case charCodes.digit8:case charCodes.digit9:readNumber(!1);return;case charCodes.quotationMark:case charCodes.apostrophe:readString(code);return;case charCodes.slash:readToken_slash();return;case charCodes.percentSign:case charCodes.asterisk:readToken_mult_modulo(code);return;case charCodes.verticalBar:case charCodes.ampersand:readToken_pipe_amp(code);return;case charCodes.caret:readToken_caret();return;case charCodes.plusSign:case charCodes.dash:readToken_plus_min(code);return;case charCodes.lessThan:readToken_lt();return;case charCodes.greaterThan:readToken_gt();return;case charCodes.equalsTo:case charCodes.exclamationMark:readToken_eq_excl(code);return;case charCodes.tilde:finishOp(TokenType.tilde,1);return;default:break}unexpected(`Unexpected character '${String.fromCharCode(code)}'`,state.pos)}function finishOp(type,size3){state.pos+=size3,finishToken(type)}function readRegexp(){let start=state.pos,escaped=!1,inClass=!1;for(;;){if(state.pos>=input.length){unexpected("Unterminated regular expression",start);return}let code=input.charCodeAt(state.pos);if(escaped)escaped=!1;else{if(code===charCodes.leftSquareBracket)inClass=!0;else if(code===charCodes.rightSquareBracket&&inClass)inClass=!1;else if(code===charCodes.slash&&!inClass)break;escaped=code===charCodes.backslash}++state.pos}++state.pos,skipWord(),finishToken(TokenType.regexp)}function readInt(){for(;;){let code=input.charCodeAt(state.pos);if(code>=charCodes.digit0&&code<=charCodes.digit9||code===charCodes.underscore)state.pos++;else break}}function readRadixNumber(){for(state.pos+=2;;){let code=input.charCodeAt(state.pos);if(code>=charCodes.digit0&&code<=charCodes.digit9||code>=charCodes.lowercaseA&&code<=charCodes.lowercaseF||code>=charCodes.uppercaseA&&code<=charCodes.uppercaseF||code===charCodes.underscore)state.pos++;else break}input.charCodeAt(state.pos)===charCodes.lowercaseN?(++state.pos,finishToken(TokenType.bigint)):finishToken(TokenType.num)}function readNumber(startsWithDot){let isBigInt=!1,isDecimal=!1;startsWithDot||readInt();let nextChar=input.charCodeAt(state.pos);if(nextChar===charCodes.dot&&(++state.pos,readInt(),nextChar=input.charCodeAt(state.pos)),(nextChar===charCodes.uppercaseE||nextChar===charCodes.lowercaseE)&&(nextChar=input.charCodeAt(++state.pos),(nextChar===charCodes.plusSign||nextChar===charCodes.dash)&&++state.pos,readInt(),nextChar=input.charCodeAt(state.pos)),nextChar===charCodes.lowercaseN?(++state.pos,isBigInt=!0):nextChar===charCodes.lowercaseM&&(++state.pos,isDecimal=!0),isBigInt){finishToken(TokenType.bigint);return}if(isDecimal){finishToken(TokenType.decimal);return}finishToken(TokenType.num)}function readString(quote){for(state.pos++;;){if(state.pos>=input.length){unexpected("Unterminated string constant");return}let ch3=input.charCodeAt(state.pos);if(ch3===charCodes.backslash)state.pos++;else if(ch3===quote)break;state.pos++}state.pos++,finishToken(TokenType.string)}function readTmplToken(){for(;;){if(state.pos>=input.length){unexpected("Unterminated template");return}let ch3=input.charCodeAt(state.pos);if(ch3===charCodes.graveAccent||ch3===charCodes.dollarSign&&input.charCodeAt(state.pos+1)===charCodes.leftCurlyBrace){if(state.pos===state.start&&match(TokenType.template))if(ch3===charCodes.dollarSign){state.pos+=2,finishToken(TokenType.dollarBraceL);return}else{++state.pos,finishToken(TokenType.backQuote);return}finishToken(TokenType.template);return}ch3===charCodes.backslash&&state.pos++,state.pos++}}function skipWord(){for(;state.pos<input.length;){let ch3=input.charCodeAt(state.pos);if(IS_IDENTIFIER_CHAR[ch3])state.pos++;else if(ch3===charCodes.backslash){if(state.pos+=2,input.charCodeAt(state.pos)===charCodes.leftCurlyBrace){for(;state.pos<input.length&&input.charCodeAt(state.pos)!==charCodes.rightCurlyBrace;)state.pos++;state.pos++}}else break}}function getImportExportSpecifierInfo(tokens,index=tokens.currentIndex()){let endIndex=index+1;if(isSpecifierEnd(tokens,endIndex)){let name=tokens.identifierNameAtIndex(index);return{isType:!1,leftName:name,rightName:name,endIndex}}if(endIndex++,isSpecifierEnd(tokens,endIndex))return{isType:!0,leftName:null,rightName:null,endIndex};if(endIndex++,isSpecifierEnd(tokens,endIndex))return{isType:!1,leftName:tokens.identifierNameAtIndex(index),rightName:tokens.identifierNameAtIndex(index+2),endIndex};if(endIndex++,isSpecifierEnd(tokens,endIndex))return{isType:!0,leftName:null,rightName:null,endIndex};throw new Error(`Unexpected import/export specifier at ${index}`)}function isSpecifierEnd(tokens,index){let token=tokens.tokens[index];return token.type===TokenType.braceR||token.type===TokenType.comma}var xhtml_default=new Map([["quot",'"'],["amp","&"],["apos","'"],["lt","<"],["gt",">"],["nbsp","\xA0"],["iexcl","\xA1"],["cent","\xA2"],["pound","\xA3"],["curren","\xA4"],["yen","\xA5"],["brvbar","\xA6"],["sect","\xA7"],["uml","\xA8"],["copy","\xA9"],["ordf","\xAA"],["laquo","\xAB"],["not","\xAC"],["shy","\xAD"],["reg","\xAE"],["macr","\xAF"],["deg","\xB0"],["plusmn","\xB1"],["sup2","\xB2"],["sup3","\xB3"],["acute","\xB4"],["micro","\xB5"],["para","\xB6"],["middot","\xB7"],["cedil","\xB8"],["sup1","\xB9"],["ordm","\xBA"],["raquo","\xBB"],["frac14","\xBC"],["frac12","\xBD"],["frac34","\xBE"],["iquest","\xBF"],["Agrave","\xC0"],["Aacute","\xC1"],["Acirc","\xC2"],["Atilde","\xC3"],["Auml","\xC4"],["Aring","\xC5"],["AElig","\xC6"],["Ccedil","\xC7"],["Egrave","\xC8"],["Eacute","\xC9"],["Ecirc","\xCA"],["Euml","\xCB"],["Igrave","\xCC"],["Iacute","\xCD"],["Icirc","\xCE"],["Iuml","\xCF"],["ETH","\xD0"],["Ntilde","\xD1"],["Ograve","\xD2"],["Oacute","\xD3"],["Ocirc","\xD4"],["Otilde","\xD5"],["Ouml","\xD6"],["times","\xD7"],["Oslash","\xD8"],["Ugrave","\xD9"],["Uacute","\xDA"],["Ucirc","\xDB"],["Uuml","\xDC"],["Yacute","\xDD"],["THORN","\xDE"],["szlig","\xDF"],["agrave","\xE0"],["aacute","\xE1"],["acirc","\xE2"],["atilde","\xE3"],["auml","\xE4"],["aring","\xE5"],["aelig","\xE6"],["ccedil","\xE7"],["egrave","\xE8"],["eacute","\xE9"],["ecirc","\xEA"],["euml","\xEB"],["igrave","\xEC"],["iacute","\xED"],["icirc","\xEE"],["iuml","\xEF"],["eth","\xF0"],["ntilde","\xF1"],["ograve","\xF2"],["oacute","\xF3"],["ocirc","\xF4"],["otilde","\xF5"],["ouml","\xF6"],["divide","\xF7"],["oslash","\xF8"],["ugrave","\xF9"],["uacute","\xFA"],["ucirc","\xFB"],["uuml","\xFC"],["yacute","\xFD"],["thorn","\xFE"],["yuml","\xFF"],["OElig","\u0152"],["oelig","\u0153"],["Scaron","\u0160"],["scaron","\u0161"],["Yuml","\u0178"],["fnof","\u0192"],["circ","\u02C6"],["tilde","\u02DC"],["Alpha","\u0391"],["Beta","\u0392"],["Gamma","\u0393"],["Delta","\u0394"],["Epsilon","\u0395"],["Zeta","\u0396"],["Eta","\u0397"],["Theta","\u0398"],["Iota","\u0399"],["Kappa","\u039A"],["Lambda","\u039B"],["Mu","\u039C"],["Nu","\u039D"],["Xi","\u039E"],["Omicron","\u039F"],["Pi","\u03A0"],["Rho","\u03A1"],["Sigma","\u03A3"],["Tau","\u03A4"],["Upsilon","\u03A5"],["Phi","\u03A6"],["Chi","\u03A7"],["Psi","\u03A8"],["Omega","\u03A9"],["alpha","\u03B1"],["beta","\u03B2"],["gamma","\u03B3"],["delta","\u03B4"],["epsilon","\u03B5"],["zeta","\u03B6"],["eta","\u03B7"],["theta","\u03B8"],["iota","\u03B9"],["kappa","\u03BA"],["lambda","\u03BB"],["mu","\u03BC"],["nu","\u03BD"],["xi","\u03BE"],["omicron","\u03BF"],["pi","\u03C0"],["rho","\u03C1"],["sigmaf","\u03C2"],["sigma","\u03C3"],["tau","\u03C4"],["upsilon","\u03C5"],["phi","\u03C6"],["chi","\u03C7"],["psi","\u03C8"],["omega","\u03C9"],["thetasym","\u03D1"],["upsih","\u03D2"],["piv","\u03D6"],["ensp","\u2002"],["emsp","\u2003"],["thinsp","\u2009"],["zwnj","\u200C"],["zwj","\u200D"],["lrm","\u200E"],["rlm","\u200F"],["ndash","\u2013"],["mdash","\u2014"],["lsquo","\u2018"],["rsquo","\u2019"],["sbquo","\u201A"],["ldquo","\u201C"],["rdquo","\u201D"],["bdquo","\u201E"],["dagger","\u2020"],["Dagger","\u2021"],["bull","\u2022"],["hellip","\u2026"],["permil","\u2030"],["prime","\u2032"],["Prime","\u2033"],["lsaquo","\u2039"],["rsaquo","\u203A"],["oline","\u203E"],["frasl","\u2044"],["euro","\u20AC"],["image","\u2111"],["weierp","\u2118"],["real","\u211C"],["trade","\u2122"],["alefsym","\u2135"],["larr","\u2190"],["uarr","\u2191"],["rarr","\u2192"],["darr","\u2193"],["harr","\u2194"],["crarr","\u21B5"],["lArr","\u21D0"],["uArr","\u21D1"],["rArr","\u21D2"],["dArr","\u21D3"],["hArr","\u21D4"],["forall","\u2200"],["part","\u2202"],["exist","\u2203"],["empty","\u2205"],["nabla","\u2207"],["isin","\u2208"],["notin","\u2209"],["ni","\u220B"],["prod","\u220F"],["sum","\u2211"],["minus","\u2212"],["lowast","\u2217"],["radic","\u221A"],["prop","\u221D"],["infin","\u221E"],["ang","\u2220"],["and","\u2227"],["or","\u2228"],["cap","\u2229"],["cup","\u222A"],["int","\u222B"],["there4","\u2234"],["sim","\u223C"],["cong","\u2245"],["asymp","\u2248"],["ne","\u2260"],["equiv","\u2261"],["le","\u2264"],["ge","\u2265"],["sub","\u2282"],["sup","\u2283"],["nsub","\u2284"],["sube","\u2286"],["supe","\u2287"],["oplus","\u2295"],["otimes","\u2297"],["perp","\u22A5"],["sdot","\u22C5"],["lceil","\u2308"],["rceil","\u2309"],["lfloor","\u230A"],["rfloor","\u230B"],["lang","\u2329"],["rang","\u232A"],["loz","\u25CA"],["spades","\u2660"],["clubs","\u2663"],["hearts","\u2665"],["diams","\u2666"]]);function getJSXPragmaInfo(options){let[base,suffix]=splitPragma(options.jsxPragma||"React.createElement"),[fragmentBase,fragmentSuffix]=splitPragma(options.jsxFragmentPragma||"React.Fragment");return{base,suffix,fragmentBase,fragmentSuffix}}function splitPragma(pragma){let dotIndex=pragma.indexOf(".");return dotIndex===-1&&(dotIndex=pragma.length),[pragma.slice(0,dotIndex),pragma.slice(dotIndex)]}var Transformer=class{getPrefixCode(){return""}getHoistedCode(){return""}getSuffixCode(){return""}};var JSXTransformer=class _JSXTransformer extends Transformer{__init(){this.lastLineNumber=1}__init2(){this.lastIndex=0}__init3(){this.filenameVarName=null}__init4(){this.esmAutomaticImportNameResolutions={}}__init5(){this.cjsAutomaticModuleNameResolutions={}}constructor(rootTransformer,tokens,importProcessor,nameManager,options){super(),this.rootTransformer=rootTransformer,this.tokens=tokens,this.importProcessor=importProcessor,this.nameManager=nameManager,this.options=options,_JSXTransformer.prototype.__init.call(this),_JSXTransformer.prototype.__init2.call(this),_JSXTransformer.prototype.__init3.call(this),_JSXTransformer.prototype.__init4.call(this),_JSXTransformer.prototype.__init5.call(this),this.jsxPragmaInfo=getJSXPragmaInfo(options),this.isAutomaticRuntime=options.jsxRuntime==="automatic",this.jsxImportSource=options.jsxImportSource||"react"}process(){return this.tokens.matches1(TokenType.jsxTagStart)?(this.processJSXTag(),!0):!1}getPrefixCode(){let prefix="";if(this.filenameVarName&&(prefix+=`const ${this.filenameVarName} = ${JSON.stringify(this.options.filePath||"")};`),this.isAutomaticRuntime)if(this.importProcessor)for(let[path,resolvedName]of Object.entries(this.cjsAutomaticModuleNameResolutions))prefix+=`var ${resolvedName} = require("${path}");`;else{let{createElement:createElementResolution,...otherResolutions}=this.esmAutomaticImportNameResolutions;createElementResolution&&(prefix+=`import {createElement as ${createElementResolution}} from "${this.jsxImportSource}";`);let importSpecifiers=Object.entries(otherResolutions).map(([name,resolvedName])=>`${name} as ${resolvedName}`).join(", ");if(importSpecifiers){let importPath=this.jsxImportSource+(this.options.production?"/jsx-runtime":"/jsx-dev-runtime");prefix+=`import {${importSpecifiers}} from "${importPath}";`}}return prefix}processJSXTag(){let{jsxRole,start}=this.tokens.currentToken(),elementLocationCode=this.options.production?null:this.getElementLocationCode(start);this.isAutomaticRuntime&&jsxRole!==JSXRole.KeyAfterPropSpread?this.transformTagToJSXFunc(elementLocationCode,jsxRole):this.transformTagToCreateElement(elementLocationCode)}getElementLocationCode(firstTokenStart){return`lineNumber: ${this.getLineNumberForIndex(firstTokenStart)}`}getLineNumberForIndex(index){let code=this.tokens.code;for(;this.lastIndex<index&&this.lastIndex<code.length;)code[this.lastIndex]===`
|
|
809
|
+
${Object.keys(fsMapOrAllFilePaths).join(", ")}`);return resolvedFilePath};var STATIC_ASSET_EXTENSIONS=[".glb",".kicad_mod",".gltf",".obj",".stl",".step",".stp"],isStaticAssetPath2=path=>STATIC_ASSET_EXTENSIONS.some(ext=>path.endsWith(ext));var ContextualKeyword;(function(ContextualKeyword2){ContextualKeyword2[ContextualKeyword2.NONE=0]="NONE";let _abstract=1;ContextualKeyword2[ContextualKeyword2._abstract=_abstract]="_abstract";let _accessor=_abstract+1;ContextualKeyword2[ContextualKeyword2._accessor=_accessor]="_accessor";let _as=_accessor+1;ContextualKeyword2[ContextualKeyword2._as=_as]="_as";let _assert=_as+1;ContextualKeyword2[ContextualKeyword2._assert=_assert]="_assert";let _asserts=_assert+1;ContextualKeyword2[ContextualKeyword2._asserts=_asserts]="_asserts";let _async=_asserts+1;ContextualKeyword2[ContextualKeyword2._async=_async]="_async";let _await=_async+1;ContextualKeyword2[ContextualKeyword2._await=_await]="_await";let _checks=_await+1;ContextualKeyword2[ContextualKeyword2._checks=_checks]="_checks";let _constructor=_checks+1;ContextualKeyword2[ContextualKeyword2._constructor=_constructor]="_constructor";let _declare=_constructor+1;ContextualKeyword2[ContextualKeyword2._declare=_declare]="_declare";let _enum=_declare+1;ContextualKeyword2[ContextualKeyword2._enum=_enum]="_enum";let _exports=_enum+1;ContextualKeyword2[ContextualKeyword2._exports=_exports]="_exports";let _from=_exports+1;ContextualKeyword2[ContextualKeyword2._from=_from]="_from";let _get=_from+1;ContextualKeyword2[ContextualKeyword2._get=_get]="_get";let _global=_get+1;ContextualKeyword2[ContextualKeyword2._global=_global]="_global";let _implements=_global+1;ContextualKeyword2[ContextualKeyword2._implements=_implements]="_implements";let _infer=_implements+1;ContextualKeyword2[ContextualKeyword2._infer=_infer]="_infer";let _interface=_infer+1;ContextualKeyword2[ContextualKeyword2._interface=_interface]="_interface";let _is=_interface+1;ContextualKeyword2[ContextualKeyword2._is=_is]="_is";let _keyof=_is+1;ContextualKeyword2[ContextualKeyword2._keyof=_keyof]="_keyof";let _mixins=_keyof+1;ContextualKeyword2[ContextualKeyword2._mixins=_mixins]="_mixins";let _module=_mixins+1;ContextualKeyword2[ContextualKeyword2._module=_module]="_module";let _namespace=_module+1;ContextualKeyword2[ContextualKeyword2._namespace=_namespace]="_namespace";let _of=_namespace+1;ContextualKeyword2[ContextualKeyword2._of=_of]="_of";let _opaque=_of+1;ContextualKeyword2[ContextualKeyword2._opaque=_opaque]="_opaque";let _out=_opaque+1;ContextualKeyword2[ContextualKeyword2._out=_out]="_out";let _override=_out+1;ContextualKeyword2[ContextualKeyword2._override=_override]="_override";let _private=_override+1;ContextualKeyword2[ContextualKeyword2._private=_private]="_private";let _protected=_private+1;ContextualKeyword2[ContextualKeyword2._protected=_protected]="_protected";let _proto=_protected+1;ContextualKeyword2[ContextualKeyword2._proto=_proto]="_proto";let _public=_proto+1;ContextualKeyword2[ContextualKeyword2._public=_public]="_public";let _readonly=_public+1;ContextualKeyword2[ContextualKeyword2._readonly=_readonly]="_readonly";let _require=_readonly+1;ContextualKeyword2[ContextualKeyword2._require=_require]="_require";let _satisfies=_require+1;ContextualKeyword2[ContextualKeyword2._satisfies=_satisfies]="_satisfies";let _set=_satisfies+1;ContextualKeyword2[ContextualKeyword2._set=_set]="_set";let _static=_set+1;ContextualKeyword2[ContextualKeyword2._static=_static]="_static";let _symbol=_static+1;ContextualKeyword2[ContextualKeyword2._symbol=_symbol]="_symbol";let _type=_symbol+1;ContextualKeyword2[ContextualKeyword2._type=_type]="_type";let _unique=_type+1;ContextualKeyword2[ContextualKeyword2._unique=_unique]="_unique";let _using=_unique+1;ContextualKeyword2[ContextualKeyword2._using=_using]="_using"})(ContextualKeyword||(ContextualKeyword={}));var TokenType;(function(TokenType2){TokenType2[TokenType2.PRECEDENCE_MASK=15]="PRECEDENCE_MASK";let IS_KEYWORD=16;TokenType2[TokenType2.IS_KEYWORD=IS_KEYWORD]="IS_KEYWORD";let IS_ASSIGN=32;TokenType2[TokenType2.IS_ASSIGN=IS_ASSIGN]="IS_ASSIGN";let IS_RIGHT_ASSOCIATIVE=64;TokenType2[TokenType2.IS_RIGHT_ASSOCIATIVE=IS_RIGHT_ASSOCIATIVE]="IS_RIGHT_ASSOCIATIVE";let IS_PREFIX=128;TokenType2[TokenType2.IS_PREFIX=IS_PREFIX]="IS_PREFIX";let IS_POSTFIX=256;TokenType2[TokenType2.IS_POSTFIX=IS_POSTFIX]="IS_POSTFIX";let IS_EXPRESSION_START=512;TokenType2[TokenType2.IS_EXPRESSION_START=IS_EXPRESSION_START]="IS_EXPRESSION_START";let num=512;TokenType2[TokenType2.num=num]="num";let bigint=1536;TokenType2[TokenType2.bigint=bigint]="bigint";let decimal=2560;TokenType2[TokenType2.decimal=decimal]="decimal";let regexp=3584;TokenType2[TokenType2.regexp=regexp]="regexp";let string=4608;TokenType2[TokenType2.string=string]="string";let name=5632;TokenType2[TokenType2.name=name]="name";let eof=6144;TokenType2[TokenType2.eof=eof]="eof";let bracketL=7680;TokenType2[TokenType2.bracketL=bracketL]="bracketL";let bracketR=8192;TokenType2[TokenType2.bracketR=bracketR]="bracketR";let braceL=9728;TokenType2[TokenType2.braceL=braceL]="braceL";let braceBarL=10752;TokenType2[TokenType2.braceBarL=braceBarL]="braceBarL";let braceR=11264;TokenType2[TokenType2.braceR=braceR]="braceR";let braceBarR=12288;TokenType2[TokenType2.braceBarR=braceBarR]="braceBarR";let parenL=13824;TokenType2[TokenType2.parenL=parenL]="parenL";let parenR=14336;TokenType2[TokenType2.parenR=parenR]="parenR";let comma2=15360;TokenType2[TokenType2.comma=comma2]="comma";let semi=16384;TokenType2[TokenType2.semi=semi]="semi";let colon=17408;TokenType2[TokenType2.colon=colon]="colon";let doubleColon=18432;TokenType2[TokenType2.doubleColon=doubleColon]="doubleColon";let dot=19456;TokenType2[TokenType2.dot=dot]="dot";let question=20480;TokenType2[TokenType2.question=question]="question";let questionDot=21504;TokenType2[TokenType2.questionDot=questionDot]="questionDot";let arrow=22528;TokenType2[TokenType2.arrow=arrow]="arrow";let template=23552;TokenType2[TokenType2.template=template]="template";let ellipsis=24576;TokenType2[TokenType2.ellipsis=ellipsis]="ellipsis";let backQuote=25600;TokenType2[TokenType2.backQuote=backQuote]="backQuote";let dollarBraceL=27136;TokenType2[TokenType2.dollarBraceL=dollarBraceL]="dollarBraceL";let at3=27648;TokenType2[TokenType2.at=at3]="at";let hash=29184;TokenType2[TokenType2.hash=hash]="hash";let eq=29728;TokenType2[TokenType2.eq=eq]="eq";let assign=30752;TokenType2[TokenType2.assign=assign]="assign";let preIncDec=32640;TokenType2[TokenType2.preIncDec=preIncDec]="preIncDec";let postIncDec=33664;TokenType2[TokenType2.postIncDec=postIncDec]="postIncDec";let bang=34432;TokenType2[TokenType2.bang=bang]="bang";let tilde=35456;TokenType2[TokenType2.tilde=tilde]="tilde";let pipeline=35841;TokenType2[TokenType2.pipeline=pipeline]="pipeline";let nullishCoalescing=36866;TokenType2[TokenType2.nullishCoalescing=nullishCoalescing]="nullishCoalescing";let logicalOR=37890;TokenType2[TokenType2.logicalOR=logicalOR]="logicalOR";let logicalAND=38915;TokenType2[TokenType2.logicalAND=logicalAND]="logicalAND";let bitwiseOR=39940;TokenType2[TokenType2.bitwiseOR=bitwiseOR]="bitwiseOR";let bitwiseXOR=40965;TokenType2[TokenType2.bitwiseXOR=bitwiseXOR]="bitwiseXOR";let bitwiseAND=41990;TokenType2[TokenType2.bitwiseAND=bitwiseAND]="bitwiseAND";let equality=43015;TokenType2[TokenType2.equality=equality]="equality";let lessThan=44040;TokenType2[TokenType2.lessThan=lessThan]="lessThan";let greaterThan=45064;TokenType2[TokenType2.greaterThan=greaterThan]="greaterThan";let relationalOrEqual=46088;TokenType2[TokenType2.relationalOrEqual=relationalOrEqual]="relationalOrEqual";let bitShiftL=47113;TokenType2[TokenType2.bitShiftL=bitShiftL]="bitShiftL";let bitShiftR=48137;TokenType2[TokenType2.bitShiftR=bitShiftR]="bitShiftR";let plus=49802;TokenType2[TokenType2.plus=plus]="plus";let minus=50826;TokenType2[TokenType2.minus=minus]="minus";let modulo=51723;TokenType2[TokenType2.modulo=modulo]="modulo";let star=52235;TokenType2[TokenType2.star=star]="star";let slash=53259;TokenType2[TokenType2.slash=slash]="slash";let exponent=54348;TokenType2[TokenType2.exponent=exponent]="exponent";let jsxName=55296;TokenType2[TokenType2.jsxName=jsxName]="jsxName";let jsxText=56320;TokenType2[TokenType2.jsxText=jsxText]="jsxText";let jsxEmptyText=57344;TokenType2[TokenType2.jsxEmptyText=jsxEmptyText]="jsxEmptyText";let jsxTagStart=58880;TokenType2[TokenType2.jsxTagStart=jsxTagStart]="jsxTagStart";let jsxTagEnd=59392;TokenType2[TokenType2.jsxTagEnd=jsxTagEnd]="jsxTagEnd";let typeParameterStart=60928;TokenType2[TokenType2.typeParameterStart=typeParameterStart]="typeParameterStart";let nonNullAssertion=61440;TokenType2[TokenType2.nonNullAssertion=nonNullAssertion]="nonNullAssertion";let _break=62480;TokenType2[TokenType2._break=_break]="_break";let _case=63504;TokenType2[TokenType2._case=_case]="_case";let _catch=64528;TokenType2[TokenType2._catch=_catch]="_catch";let _continue=65552;TokenType2[TokenType2._continue=_continue]="_continue";let _debugger=66576;TokenType2[TokenType2._debugger=_debugger]="_debugger";let _default=67600;TokenType2[TokenType2._default=_default]="_default";let _do=68624;TokenType2[TokenType2._do=_do]="_do";let _else=69648;TokenType2[TokenType2._else=_else]="_else";let _finally=70672;TokenType2[TokenType2._finally=_finally]="_finally";let _for=71696;TokenType2[TokenType2._for=_for]="_for";let _function=73232;TokenType2[TokenType2._function=_function]="_function";let _if=73744;TokenType2[TokenType2._if=_if]="_if";let _return=74768;TokenType2[TokenType2._return=_return]="_return";let _switch=75792;TokenType2[TokenType2._switch=_switch]="_switch";let _throw=77456;TokenType2[TokenType2._throw=_throw]="_throw";let _try=77840;TokenType2[TokenType2._try=_try]="_try";let _var=78864;TokenType2[TokenType2._var=_var]="_var";let _let=79888;TokenType2[TokenType2._let=_let]="_let";let _const=80912;TokenType2[TokenType2._const=_const]="_const";let _while=81936;TokenType2[TokenType2._while=_while]="_while";let _with=82960;TokenType2[TokenType2._with=_with]="_with";let _new=84496;TokenType2[TokenType2._new=_new]="_new";let _this=85520;TokenType2[TokenType2._this=_this]="_this";let _super=86544;TokenType2[TokenType2._super=_super]="_super";let _class=87568;TokenType2[TokenType2._class=_class]="_class";let _extends=88080;TokenType2[TokenType2._extends=_extends]="_extends";let _export=89104;TokenType2[TokenType2._export=_export]="_export";let _import=90640;TokenType2[TokenType2._import=_import]="_import";let _yield=91664;TokenType2[TokenType2._yield=_yield]="_yield";let _null=92688;TokenType2[TokenType2._null=_null]="_null";let _true=93712;TokenType2[TokenType2._true=_true]="_true";let _false=94736;TokenType2[TokenType2._false=_false]="_false";let _in=95256;TokenType2[TokenType2._in=_in]="_in";let _instanceof=96280;TokenType2[TokenType2._instanceof=_instanceof]="_instanceof";let _typeof=97936;TokenType2[TokenType2._typeof=_typeof]="_typeof";let _void=98960;TokenType2[TokenType2._void=_void]="_void";let _delete=99984;TokenType2[TokenType2._delete=_delete]="_delete";let _async=100880;TokenType2[TokenType2._async=_async]="_async";let _get=101904;TokenType2[TokenType2._get=_get]="_get";let _set=102928;TokenType2[TokenType2._set=_set]="_set";let _declare=103952;TokenType2[TokenType2._declare=_declare]="_declare";let _readonly=104976;TokenType2[TokenType2._readonly=_readonly]="_readonly";let _abstract=106e3;TokenType2[TokenType2._abstract=_abstract]="_abstract";let _static=107024;TokenType2[TokenType2._static=_static]="_static";let _public=107536;TokenType2[TokenType2._public=_public]="_public";let _private=108560;TokenType2[TokenType2._private=_private]="_private";let _protected=109584;TokenType2[TokenType2._protected=_protected]="_protected";let _override=110608;TokenType2[TokenType2._override=_override]="_override";let _as=112144;TokenType2[TokenType2._as=_as]="_as";let _enum=113168;TokenType2[TokenType2._enum=_enum]="_enum";let _type=114192;TokenType2[TokenType2._type=_type]="_type";let _implements=115216;TokenType2[TokenType2._implements=_implements]="_implements"})(TokenType||(TokenType={}));function formatTokenType(tokenType){switch(tokenType){case TokenType.num:return"num";case TokenType.bigint:return"bigint";case TokenType.decimal:return"decimal";case TokenType.regexp:return"regexp";case TokenType.string:return"string";case TokenType.name:return"name";case TokenType.eof:return"eof";case TokenType.bracketL:return"[";case TokenType.bracketR:return"]";case TokenType.braceL:return"{";case TokenType.braceBarL:return"{|";case TokenType.braceR:return"}";case TokenType.braceBarR:return"|}";case TokenType.parenL:return"(";case TokenType.parenR:return")";case TokenType.comma:return",";case TokenType.semi:return";";case TokenType.colon:return":";case TokenType.doubleColon:return"::";case TokenType.dot:return".";case TokenType.question:return"?";case TokenType.questionDot:return"?.";case TokenType.arrow:return"=>";case TokenType.template:return"template";case TokenType.ellipsis:return"...";case TokenType.backQuote:return"`";case TokenType.dollarBraceL:return"${";case TokenType.at:return"@";case TokenType.hash:return"#";case TokenType.eq:return"=";case TokenType.assign:return"_=";case TokenType.preIncDec:return"++/--";case TokenType.postIncDec:return"++/--";case TokenType.bang:return"!";case TokenType.tilde:return"~";case TokenType.pipeline:return"|>";case TokenType.nullishCoalescing:return"??";case TokenType.logicalOR:return"||";case TokenType.logicalAND:return"&&";case TokenType.bitwiseOR:return"|";case TokenType.bitwiseXOR:return"^";case TokenType.bitwiseAND:return"&";case TokenType.equality:return"==/!=";case TokenType.lessThan:return"<";case TokenType.greaterThan:return">";case TokenType.relationalOrEqual:return"<=/>=";case TokenType.bitShiftL:return"<<";case TokenType.bitShiftR:return">>/>>>";case TokenType.plus:return"+";case TokenType.minus:return"-";case TokenType.modulo:return"%";case TokenType.star:return"*";case TokenType.slash:return"/";case TokenType.exponent:return"**";case TokenType.jsxName:return"jsxName";case TokenType.jsxText:return"jsxText";case TokenType.jsxEmptyText:return"jsxEmptyText";case TokenType.jsxTagStart:return"jsxTagStart";case TokenType.jsxTagEnd:return"jsxTagEnd";case TokenType.typeParameterStart:return"typeParameterStart";case TokenType.nonNullAssertion:return"nonNullAssertion";case TokenType._break:return"break";case TokenType._case:return"case";case TokenType._catch:return"catch";case TokenType._continue:return"continue";case TokenType._debugger:return"debugger";case TokenType._default:return"default";case TokenType._do:return"do";case TokenType._else:return"else";case TokenType._finally:return"finally";case TokenType._for:return"for";case TokenType._function:return"function";case TokenType._if:return"if";case TokenType._return:return"return";case TokenType._switch:return"switch";case TokenType._throw:return"throw";case TokenType._try:return"try";case TokenType._var:return"var";case TokenType._let:return"let";case TokenType._const:return"const";case TokenType._while:return"while";case TokenType._with:return"with";case TokenType._new:return"new";case TokenType._this:return"this";case TokenType._super:return"super";case TokenType._class:return"class";case TokenType._extends:return"extends";case TokenType._export:return"export";case TokenType._import:return"import";case TokenType._yield:return"yield";case TokenType._null:return"null";case TokenType._true:return"true";case TokenType._false:return"false";case TokenType._in:return"in";case TokenType._instanceof:return"instanceof";case TokenType._typeof:return"typeof";case TokenType._void:return"void";case TokenType._delete:return"delete";case TokenType._async:return"async";case TokenType._get:return"get";case TokenType._set:return"set";case TokenType._declare:return"declare";case TokenType._readonly:return"readonly";case TokenType._abstract:return"abstract";case TokenType._static:return"static";case TokenType._public:return"public";case TokenType._private:return"private";case TokenType._protected:return"protected";case TokenType._override:return"override";case TokenType._as:return"as";case TokenType._enum:return"enum";case TokenType._type:return"type";case TokenType._implements:return"implements";default:return""}}var Scope=class{constructor(startTokenIndex,endTokenIndex,isFunctionScope){this.startTokenIndex=startTokenIndex,this.endTokenIndex=endTokenIndex,this.isFunctionScope=isFunctionScope}},StateSnapshot=class{constructor(potentialArrowAt,noAnonFunctionType,inDisallowConditionalTypesContext,tokensLength,scopesLength,pos,type,contextualKeyword,start,end,isType,scopeDepth,error2){this.potentialArrowAt=potentialArrowAt,this.noAnonFunctionType=noAnonFunctionType,this.inDisallowConditionalTypesContext=inDisallowConditionalTypesContext,this.tokensLength=tokensLength,this.scopesLength=scopesLength,this.pos=pos,this.type=type,this.contextualKeyword=contextualKeyword,this.start=start,this.end=end,this.isType=isType,this.scopeDepth=scopeDepth,this.error=error2}},State=class _State{constructor(){_State.prototype.__init.call(this),_State.prototype.__init2.call(this),_State.prototype.__init3.call(this),_State.prototype.__init4.call(this),_State.prototype.__init5.call(this),_State.prototype.__init6.call(this),_State.prototype.__init7.call(this),_State.prototype.__init8.call(this),_State.prototype.__init9.call(this),_State.prototype.__init10.call(this),_State.prototype.__init11.call(this),_State.prototype.__init12.call(this),_State.prototype.__init13.call(this)}__init(){this.potentialArrowAt=-1}__init2(){this.noAnonFunctionType=!1}__init3(){this.inDisallowConditionalTypesContext=!1}__init4(){this.tokens=[]}__init5(){this.scopes=[]}__init6(){this.pos=0}__init7(){this.type=TokenType.eof}__init8(){this.contextualKeyword=ContextualKeyword.NONE}__init9(){this.start=0}__init10(){this.end=0}__init11(){this.isType=!1}__init12(){this.scopeDepth=0}__init13(){this.error=null}snapshot(){return new StateSnapshot(this.potentialArrowAt,this.noAnonFunctionType,this.inDisallowConditionalTypesContext,this.tokens.length,this.scopes.length,this.pos,this.type,this.contextualKeyword,this.start,this.end,this.isType,this.scopeDepth,this.error)}restoreFromSnapshot(snapshot){this.potentialArrowAt=snapshot.potentialArrowAt,this.noAnonFunctionType=snapshot.noAnonFunctionType,this.inDisallowConditionalTypesContext=snapshot.inDisallowConditionalTypesContext,this.tokens.length=snapshot.tokensLength,this.scopes.length=snapshot.scopesLength,this.pos=snapshot.pos,this.type=snapshot.type,this.contextualKeyword=snapshot.contextualKeyword,this.start=snapshot.start,this.end=snapshot.end,this.isType=snapshot.isType,this.scopeDepth=snapshot.scopeDepth,this.error=snapshot.error}};var charCodes;(function(charCodes2){charCodes2[charCodes2.backSpace=8]="backSpace";let lineFeed=10;charCodes2[charCodes2.lineFeed=lineFeed]="lineFeed";let tab=9;charCodes2[charCodes2.tab=tab]="tab";let carriageReturn=13;charCodes2[charCodes2.carriageReturn=carriageReturn]="carriageReturn";let shiftOut=14;charCodes2[charCodes2.shiftOut=shiftOut]="shiftOut";let space=32;charCodes2[charCodes2.space=space]="space";let exclamationMark=33;charCodes2[charCodes2.exclamationMark=exclamationMark]="exclamationMark";let quotationMark=34;charCodes2[charCodes2.quotationMark=quotationMark]="quotationMark";let numberSign=35;charCodes2[charCodes2.numberSign=numberSign]="numberSign";let dollarSign=36;charCodes2[charCodes2.dollarSign=dollarSign]="dollarSign";let percentSign=37;charCodes2[charCodes2.percentSign=percentSign]="percentSign";let ampersand=38;charCodes2[charCodes2.ampersand=ampersand]="ampersand";let apostrophe=39;charCodes2[charCodes2.apostrophe=apostrophe]="apostrophe";let leftParenthesis=40;charCodes2[charCodes2.leftParenthesis=leftParenthesis]="leftParenthesis";let rightParenthesis=41;charCodes2[charCodes2.rightParenthesis=rightParenthesis]="rightParenthesis";let asterisk=42;charCodes2[charCodes2.asterisk=asterisk]="asterisk";let plusSign=43;charCodes2[charCodes2.plusSign=plusSign]="plusSign";let comma2=44;charCodes2[charCodes2.comma=comma2]="comma";let dash=45;charCodes2[charCodes2.dash=dash]="dash";let dot=46;charCodes2[charCodes2.dot=dot]="dot";let slash=47;charCodes2[charCodes2.slash=slash]="slash";let digit0=48;charCodes2[charCodes2.digit0=digit0]="digit0";let digit1=49;charCodes2[charCodes2.digit1=digit1]="digit1";let digit2=50;charCodes2[charCodes2.digit2=digit2]="digit2";let digit3=51;charCodes2[charCodes2.digit3=digit3]="digit3";let digit4=52;charCodes2[charCodes2.digit4=digit4]="digit4";let digit5=53;charCodes2[charCodes2.digit5=digit5]="digit5";let digit6=54;charCodes2[charCodes2.digit6=digit6]="digit6";let digit7=55;charCodes2[charCodes2.digit7=digit7]="digit7";let digit8=56;charCodes2[charCodes2.digit8=digit8]="digit8";let digit9=57;charCodes2[charCodes2.digit9=digit9]="digit9";let colon=58;charCodes2[charCodes2.colon=colon]="colon";let semicolon3=59;charCodes2[charCodes2.semicolon=semicolon3]="semicolon";let lessThan=60;charCodes2[charCodes2.lessThan=lessThan]="lessThan";let equalsTo=61;charCodes2[charCodes2.equalsTo=equalsTo]="equalsTo";let greaterThan=62;charCodes2[charCodes2.greaterThan=greaterThan]="greaterThan";let questionMark=63;charCodes2[charCodes2.questionMark=questionMark]="questionMark";let atSign=64;charCodes2[charCodes2.atSign=atSign]="atSign";let uppercaseA=65;charCodes2[charCodes2.uppercaseA=uppercaseA]="uppercaseA";let uppercaseB=66;charCodes2[charCodes2.uppercaseB=uppercaseB]="uppercaseB";let uppercaseC=67;charCodes2[charCodes2.uppercaseC=uppercaseC]="uppercaseC";let uppercaseD=68;charCodes2[charCodes2.uppercaseD=uppercaseD]="uppercaseD";let uppercaseE=69;charCodes2[charCodes2.uppercaseE=uppercaseE]="uppercaseE";let uppercaseF=70;charCodes2[charCodes2.uppercaseF=uppercaseF]="uppercaseF";let uppercaseG=71;charCodes2[charCodes2.uppercaseG=uppercaseG]="uppercaseG";let uppercaseH=72;charCodes2[charCodes2.uppercaseH=uppercaseH]="uppercaseH";let uppercaseI=73;charCodes2[charCodes2.uppercaseI=uppercaseI]="uppercaseI";let uppercaseJ=74;charCodes2[charCodes2.uppercaseJ=uppercaseJ]="uppercaseJ";let uppercaseK=75;charCodes2[charCodes2.uppercaseK=uppercaseK]="uppercaseK";let uppercaseL=76;charCodes2[charCodes2.uppercaseL=uppercaseL]="uppercaseL";let uppercaseM=77;charCodes2[charCodes2.uppercaseM=uppercaseM]="uppercaseM";let uppercaseN=78;charCodes2[charCodes2.uppercaseN=uppercaseN]="uppercaseN";let uppercaseO=79;charCodes2[charCodes2.uppercaseO=uppercaseO]="uppercaseO";let uppercaseP=80;charCodes2[charCodes2.uppercaseP=uppercaseP]="uppercaseP";let uppercaseQ=81;charCodes2[charCodes2.uppercaseQ=uppercaseQ]="uppercaseQ";let uppercaseR=82;charCodes2[charCodes2.uppercaseR=uppercaseR]="uppercaseR";let uppercaseS=83;charCodes2[charCodes2.uppercaseS=uppercaseS]="uppercaseS";let uppercaseT=84;charCodes2[charCodes2.uppercaseT=uppercaseT]="uppercaseT";let uppercaseU=85;charCodes2[charCodes2.uppercaseU=uppercaseU]="uppercaseU";let uppercaseV=86;charCodes2[charCodes2.uppercaseV=uppercaseV]="uppercaseV";let uppercaseW=87;charCodes2[charCodes2.uppercaseW=uppercaseW]="uppercaseW";let uppercaseX=88;charCodes2[charCodes2.uppercaseX=uppercaseX]="uppercaseX";let uppercaseY=89;charCodes2[charCodes2.uppercaseY=uppercaseY]="uppercaseY";let uppercaseZ=90;charCodes2[charCodes2.uppercaseZ=uppercaseZ]="uppercaseZ";let leftSquareBracket=91;charCodes2[charCodes2.leftSquareBracket=leftSquareBracket]="leftSquareBracket";let backslash=92;charCodes2[charCodes2.backslash=backslash]="backslash";let rightSquareBracket=93;charCodes2[charCodes2.rightSquareBracket=rightSquareBracket]="rightSquareBracket";let caret=94;charCodes2[charCodes2.caret=caret]="caret";let underscore=95;charCodes2[charCodes2.underscore=underscore]="underscore";let graveAccent=96;charCodes2[charCodes2.graveAccent=graveAccent]="graveAccent";let lowercaseA=97;charCodes2[charCodes2.lowercaseA=lowercaseA]="lowercaseA";let lowercaseB=98;charCodes2[charCodes2.lowercaseB=lowercaseB]="lowercaseB";let lowercaseC=99;charCodes2[charCodes2.lowercaseC=lowercaseC]="lowercaseC";let lowercaseD=100;charCodes2[charCodes2.lowercaseD=lowercaseD]="lowercaseD";let lowercaseE=101;charCodes2[charCodes2.lowercaseE=lowercaseE]="lowercaseE";let lowercaseF=102;charCodes2[charCodes2.lowercaseF=lowercaseF]="lowercaseF";let lowercaseG=103;charCodes2[charCodes2.lowercaseG=lowercaseG]="lowercaseG";let lowercaseH=104;charCodes2[charCodes2.lowercaseH=lowercaseH]="lowercaseH";let lowercaseI=105;charCodes2[charCodes2.lowercaseI=lowercaseI]="lowercaseI";let lowercaseJ=106;charCodes2[charCodes2.lowercaseJ=lowercaseJ]="lowercaseJ";let lowercaseK=107;charCodes2[charCodes2.lowercaseK=lowercaseK]="lowercaseK";let lowercaseL=108;charCodes2[charCodes2.lowercaseL=lowercaseL]="lowercaseL";let lowercaseM=109;charCodes2[charCodes2.lowercaseM=lowercaseM]="lowercaseM";let lowercaseN=110;charCodes2[charCodes2.lowercaseN=lowercaseN]="lowercaseN";let lowercaseO=111;charCodes2[charCodes2.lowercaseO=lowercaseO]="lowercaseO";let lowercaseP=112;charCodes2[charCodes2.lowercaseP=lowercaseP]="lowercaseP";let lowercaseQ=113;charCodes2[charCodes2.lowercaseQ=lowercaseQ]="lowercaseQ";let lowercaseR=114;charCodes2[charCodes2.lowercaseR=lowercaseR]="lowercaseR";let lowercaseS=115;charCodes2[charCodes2.lowercaseS=lowercaseS]="lowercaseS";let lowercaseT=116;charCodes2[charCodes2.lowercaseT=lowercaseT]="lowercaseT";let lowercaseU=117;charCodes2[charCodes2.lowercaseU=lowercaseU]="lowercaseU";let lowercaseV=118;charCodes2[charCodes2.lowercaseV=lowercaseV]="lowercaseV";let lowercaseW=119;charCodes2[charCodes2.lowercaseW=lowercaseW]="lowercaseW";let lowercaseX=120;charCodes2[charCodes2.lowercaseX=lowercaseX]="lowercaseX";let lowercaseY=121;charCodes2[charCodes2.lowercaseY=lowercaseY]="lowercaseY";let lowercaseZ=122;charCodes2[charCodes2.lowercaseZ=lowercaseZ]="lowercaseZ";let leftCurlyBrace=123;charCodes2[charCodes2.leftCurlyBrace=leftCurlyBrace]="leftCurlyBrace";let verticalBar=124;charCodes2[charCodes2.verticalBar=verticalBar]="verticalBar";let rightCurlyBrace=125;charCodes2[charCodes2.rightCurlyBrace=rightCurlyBrace]="rightCurlyBrace";let tilde=126;charCodes2[charCodes2.tilde=tilde]="tilde";let nonBreakingSpace=160;charCodes2[charCodes2.nonBreakingSpace=nonBreakingSpace]="nonBreakingSpace";let oghamSpaceMark=5760;charCodes2[charCodes2.oghamSpaceMark=oghamSpaceMark]="oghamSpaceMark";let lineSeparator=8232;charCodes2[charCodes2.lineSeparator=lineSeparator]="lineSeparator";let paragraphSeparator=8233;charCodes2[charCodes2.paragraphSeparator=paragraphSeparator]="paragraphSeparator"})(charCodes||(charCodes={}));var isJSXEnabled,isTypeScriptEnabled,isFlowEnabled,state,input,nextContextId;function getNextContextId(){return nextContextId++}function augmentError(error2){if("pos"in error2){let loc=locationForIndex(error2.pos);error2.message+=` (${loc.line}:${loc.column})`,error2.loc=loc}return error2}var Loc=class{constructor(line2,column){this.line=line2,this.column=column}};function locationForIndex(pos){let line2=1,column=1;for(let i5=0;i5<pos;i5++)input.charCodeAt(i5)===charCodes.lineFeed?(line2++,column=1):column++;return new Loc(line2,column)}function initParser(inputCode,isJSXEnabledArg,isTypeScriptEnabledArg,isFlowEnabledArg){input=inputCode,state=new State,nextContextId=1,isJSXEnabled=isJSXEnabledArg,isTypeScriptEnabled=isTypeScriptEnabledArg,isFlowEnabled=isFlowEnabledArg}function isContextual(contextualKeyword){return state.contextualKeyword===contextualKeyword}function isLookaheadContextual(contextualKeyword){let l3=lookaheadTypeAndKeyword();return l3.type===TokenType.name&&l3.contextualKeyword===contextualKeyword}function eatContextual(contextualKeyword){return state.contextualKeyword===contextualKeyword&&eat(TokenType.name)}function expectContextual(contextualKeyword){eatContextual(contextualKeyword)||unexpected()}function canInsertSemicolon(){return match(TokenType.eof)||match(TokenType.braceR)||hasPrecedingLineBreak()}function hasPrecedingLineBreak(){let prevToken=state.tokens[state.tokens.length-1],lastTokEnd=prevToken?prevToken.end:0;for(let i5=lastTokEnd;i5<state.start;i5++){let code=input.charCodeAt(i5);if(code===charCodes.lineFeed||code===charCodes.carriageReturn||code===8232||code===8233)return!0}return!1}function hasFollowingLineBreak(){let nextStart=nextTokenStart();for(let i5=state.end;i5<nextStart;i5++){let code=input.charCodeAt(i5);if(code===charCodes.lineFeed||code===charCodes.carriageReturn||code===8232||code===8233)return!0}return!1}function isLineTerminator(){return eat(TokenType.semi)||canInsertSemicolon()}function semicolon(){isLineTerminator()||unexpected('Unexpected token, expected ";"')}function expect(type){eat(type)||unexpected(`Unexpected token, expected "${formatTokenType(type)}"`)}function unexpected(message="Unexpected token",pos=state.start){if(state.error)return;let err2=new SyntaxError(message);err2.pos=pos,state.error=err2,state.pos=input.length,finishToken(TokenType.eof)}var WHITESPACE_CHARS=[9,11,12,charCodes.space,charCodes.nonBreakingSpace,charCodes.oghamSpaceMark,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],skipWhiteSpace=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,IS_WHITESPACE=new Uint8Array(65536);for(let char of WHITESPACE_CHARS)IS_WHITESPACE[char]=1;function computeIsIdentifierChar(code){if(code<48)return code===36;if(code<58)return!0;if(code<65)return!1;if(code<91)return!0;if(code<97)return code===95;if(code<123)return!0;if(code<128)return!1;throw new Error("Should not be called with non-ASCII char code.")}var IS_IDENTIFIER_CHAR=new Uint8Array(65536);for(let i5=0;i5<128;i5++)IS_IDENTIFIER_CHAR[i5]=computeIsIdentifierChar(i5)?1:0;for(let i5=128;i5<65536;i5++)IS_IDENTIFIER_CHAR[i5]=1;for(let whitespaceChar of WHITESPACE_CHARS)IS_IDENTIFIER_CHAR[whitespaceChar]=0;IS_IDENTIFIER_CHAR[8232]=0;IS_IDENTIFIER_CHAR[8233]=0;var IS_IDENTIFIER_START=IS_IDENTIFIER_CHAR.slice();for(let numChar=charCodes.digit0;numChar<=charCodes.digit9;numChar++)IS_IDENTIFIER_START[numChar]=0;var READ_WORD_TREE=new Int32Array([-1,27,783,918,1755,2376,2862,3483,-1,3699,-1,4617,4752,4833,5130,5508,5940,-1,6480,6939,7749,8181,8451,8613,-1,8829,-1,-1,-1,54,243,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,432,-1,-1,-1,675,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,81,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,108,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,135,-1,-1,-1,-1,-1,-1,-1,-1,-1,162,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,189,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,216,-1,-1,-1,-1,-1,-1,ContextualKeyword._abstract<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,270,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,297,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,324,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,351,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,378,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,405,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._accessor<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._as<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,459,-1,-1,-1,-1,-1,594,-1,-1,-1,-1,-1,-1,486,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,513,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,540,-1,-1,-1,-1,-1,-1,ContextualKeyword._assert<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,567,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._asserts<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,621,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,648,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._async<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,702,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,729,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,756,-1,-1,-1,-1,-1,-1,ContextualKeyword._await<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,810,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,837,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,864,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,891,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._break<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,945,-1,-1,-1,-1,-1,-1,1107,-1,-1,-1,1242,-1,-1,1350,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,972,1026,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,999,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._case<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1053,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1080,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._catch<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1134,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1161,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1188,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1215,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._checks<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1269,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1296,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1323,-1,-1,-1,-1,-1,-1,-1,(TokenType._class<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1377,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1404,1620,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1431,-1,-1,-1,-1,-1,-1,(TokenType._const<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1458,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1485,-1,-1,-1,-1,-1,-1,-1,-1,1512,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1539,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1566,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1593,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._constructor<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1647,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1674,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1701,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1728,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._continue<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1782,-1,-1,-1,-1,-1,-1,-1,-1,-1,2349,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1809,1971,-1,-1,2106,-1,-1,-1,-1,-1,2241,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1836,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1863,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1890,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1917,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1944,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._debugger<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1998,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2025,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2052,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2079,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._declare<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2133,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2160,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2187,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2214,-1,-1,-1,-1,-1,-1,(TokenType._default<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2268,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2295,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2322,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._delete<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._do<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2403,-1,2484,-1,-1,-1,-1,-1,-1,-1,-1,-1,2565,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2430,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2457,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._else<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2511,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2538,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._enum<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2592,-1,-1,-1,2727,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2619,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2646,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2673,-1,-1,-1,-1,-1,-1,(TokenType._export<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2700,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._exports<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2754,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2781,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2808,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2835,-1,-1,-1,-1,-1,-1,-1,(TokenType._extends<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2889,-1,-1,-1,-1,-1,-1,-1,2997,-1,-1,-1,-1,-1,3159,-1,-1,3213,-1,-1,3294,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2916,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2943,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2970,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._false<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3024,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3051,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3078,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3105,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3132,-1,(TokenType._finally<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3186,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._for<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3240,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3267,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._from<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3321,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3348,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3375,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3402,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3429,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3456,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._function<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3510,-1,-1,-1,-1,-1,-1,3564,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3537,-1,-1,-1,-1,-1,-1,ContextualKeyword._get<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3591,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3618,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3645,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3672,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._global<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3726,-1,-1,-1,-1,-1,-1,3753,4077,-1,-1,-1,-1,4590,-1,-1,-1,-1,-1,-1,-1,(TokenType._if<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3780,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3807,-1,-1,3996,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3834,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3861,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3888,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3915,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3942,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3969,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._implements<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4023,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4050,-1,-1,-1,-1,-1,-1,(TokenType._import<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._in<<1)+1,-1,-1,-1,-1,-1,4104,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4185,4401,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4131,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4158,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._infer<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4212,-1,-1,-1,-1,-1,-1,-1,4239,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4266,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4293,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4320,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4347,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4374,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._instanceof<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4428,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4455,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4482,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4509,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4536,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4563,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._interface<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._is<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4644,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4671,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4698,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4725,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._keyof<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4779,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4806,-1,-1,-1,-1,-1,-1,(TokenType._let<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4860,-1,-1,-1,-1,-1,4995,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4887,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4914,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4941,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4968,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._mixins<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5022,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5049,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5076,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5103,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._module<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5157,-1,-1,-1,5373,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5427,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5184,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5211,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5238,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5265,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5292,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5319,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5346,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._namespace<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5400,-1,-1,-1,(TokenType._new<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5454,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5481,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._null<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5535,-1,-1,-1,-1,-1,-1,-1,-1,-1,5562,-1,-1,-1,-1,5697,5751,-1,-1,-1,-1,ContextualKeyword._of<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5589,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5616,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5643,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5670,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._opaque<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5724,-1,-1,-1,-1,-1,-1,ContextualKeyword._out<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5778,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5805,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5832,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5859,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5886,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5913,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._override<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5967,-1,-1,6345,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5994,-1,-1,-1,-1,-1,6129,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6021,-1,-1,-1,-1,-1,6048,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6075,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6102,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._private<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6156,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6183,-1,-1,-1,-1,-1,-1,-1,-1,-1,6318,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6210,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6237,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6264,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6291,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._protected<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._proto<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6372,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6399,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6426,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6453,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._public<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6507,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6534,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6696,-1,-1,6831,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6561,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6588,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6615,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6642,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6669,-1,ContextualKeyword._readonly<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6723,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6750,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6777,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6804,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._require<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6858,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6885,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6912,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._return<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6966,-1,-1,-1,7182,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7236,7371,-1,7479,-1,7614,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6993,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7020,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7047,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7074,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7101,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7128,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7155,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._satisfies<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7209,-1,-1,-1,-1,-1,-1,ContextualKeyword._set<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7263,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7290,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7317,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7344,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._static<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7398,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7425,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7452,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._super<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7506,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7533,-1,-1,-1,-1,-1,-1,-1,-1,-1,7560,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7587,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._switch<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7641,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7668,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7695,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7722,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._symbol<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7776,-1,-1,-1,-1,-1,-1,-1,-1,-1,7938,-1,-1,-1,-1,-1,-1,8046,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7803,-1,-1,-1,-1,-1,-1,-1,-1,7857,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7830,-1,-1,-1,-1,-1,-1,-1,(TokenType._this<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7884,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7911,-1,-1,-1,(TokenType._throw<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7965,-1,-1,-1,8019,-1,-1,-1,-1,-1,-1,7992,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._true<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._try<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8073,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8100,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._type<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8127,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8154,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._typeof<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8208,-1,-1,-1,-1,8343,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8235,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8262,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8289,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8316,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._unique<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8370,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8397,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8424,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,ContextualKeyword._using<<1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8478,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8532,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8505,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._var<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8559,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8586,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._void<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8640,8748,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8667,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8694,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8721,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._while<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8775,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8802,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._with<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8856,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8883,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8910,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8937,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,(TokenType._yield<<1)+1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]);function readWord(){let treePos=0,code=0,pos=state.pos;for(;pos<input.length&&(code=input.charCodeAt(pos),!(code<charCodes.lowercaseA||code>charCodes.lowercaseZ));){let next2=READ_WORD_TREE[treePos+(code-charCodes.lowercaseA)+1];if(next2===-1)break;treePos=next2,pos++}let keywordValue=READ_WORD_TREE[treePos];if(keywordValue>-1&&!IS_IDENTIFIER_CHAR[code]){state.pos=pos,keywordValue&1?finishToken(keywordValue>>>1):finishToken(TokenType.name,keywordValue>>>1);return}for(;pos<input.length;){let ch3=input.charCodeAt(pos);if(IS_IDENTIFIER_CHAR[ch3])pos++;else if(ch3===charCodes.backslash){if(pos+=2,input.charCodeAt(pos)===charCodes.leftCurlyBrace){for(;pos<input.length&&input.charCodeAt(pos)!==charCodes.rightCurlyBrace;)pos++;pos++}}else if(ch3===charCodes.atSign&&input.charCodeAt(pos+1)===charCodes.atSign)pos+=2;else break}state.pos=pos,finishToken(TokenType.name)}var IdentifierRole;(function(IdentifierRole2){IdentifierRole2[IdentifierRole2.Access=0]="Access";let ExportAccess=1;IdentifierRole2[IdentifierRole2.ExportAccess=ExportAccess]="ExportAccess";let TopLevelDeclaration=ExportAccess+1;IdentifierRole2[IdentifierRole2.TopLevelDeclaration=TopLevelDeclaration]="TopLevelDeclaration";let FunctionScopedDeclaration=TopLevelDeclaration+1;IdentifierRole2[IdentifierRole2.FunctionScopedDeclaration=FunctionScopedDeclaration]="FunctionScopedDeclaration";let BlockScopedDeclaration=FunctionScopedDeclaration+1;IdentifierRole2[IdentifierRole2.BlockScopedDeclaration=BlockScopedDeclaration]="BlockScopedDeclaration";let ObjectShorthandTopLevelDeclaration=BlockScopedDeclaration+1;IdentifierRole2[IdentifierRole2.ObjectShorthandTopLevelDeclaration=ObjectShorthandTopLevelDeclaration]="ObjectShorthandTopLevelDeclaration";let ObjectShorthandFunctionScopedDeclaration=ObjectShorthandTopLevelDeclaration+1;IdentifierRole2[IdentifierRole2.ObjectShorthandFunctionScopedDeclaration=ObjectShorthandFunctionScopedDeclaration]="ObjectShorthandFunctionScopedDeclaration";let ObjectShorthandBlockScopedDeclaration=ObjectShorthandFunctionScopedDeclaration+1;IdentifierRole2[IdentifierRole2.ObjectShorthandBlockScopedDeclaration=ObjectShorthandBlockScopedDeclaration]="ObjectShorthandBlockScopedDeclaration";let ObjectShorthand=ObjectShorthandBlockScopedDeclaration+1;IdentifierRole2[IdentifierRole2.ObjectShorthand=ObjectShorthand]="ObjectShorthand";let ImportDeclaration=ObjectShorthand+1;IdentifierRole2[IdentifierRole2.ImportDeclaration=ImportDeclaration]="ImportDeclaration";let ObjectKey=ImportDeclaration+1;IdentifierRole2[IdentifierRole2.ObjectKey=ObjectKey]="ObjectKey";let ImportAccess=ObjectKey+1;IdentifierRole2[IdentifierRole2.ImportAccess=ImportAccess]="ImportAccess"})(IdentifierRole||(IdentifierRole={}));var JSXRole;(function(JSXRole2){JSXRole2[JSXRole2.NoChildren=0]="NoChildren";let OneChild=1;JSXRole2[JSXRole2.OneChild=OneChild]="OneChild";let StaticChildren=OneChild+1;JSXRole2[JSXRole2.StaticChildren=StaticChildren]="StaticChildren";let KeyAfterPropSpread=StaticChildren+1;JSXRole2[JSXRole2.KeyAfterPropSpread=KeyAfterPropSpread]="KeyAfterPropSpread"})(JSXRole||(JSXRole={}));function isDeclaration(token){let role=token.identifierRole;return role===IdentifierRole.TopLevelDeclaration||role===IdentifierRole.FunctionScopedDeclaration||role===IdentifierRole.BlockScopedDeclaration||role===IdentifierRole.ObjectShorthandTopLevelDeclaration||role===IdentifierRole.ObjectShorthandFunctionScopedDeclaration||role===IdentifierRole.ObjectShorthandBlockScopedDeclaration}function isNonTopLevelDeclaration(token){let role=token.identifierRole;return role===IdentifierRole.FunctionScopedDeclaration||role===IdentifierRole.BlockScopedDeclaration||role===IdentifierRole.ObjectShorthandFunctionScopedDeclaration||role===IdentifierRole.ObjectShorthandBlockScopedDeclaration}function isTopLevelDeclaration(token){let role=token.identifierRole;return role===IdentifierRole.TopLevelDeclaration||role===IdentifierRole.ObjectShorthandTopLevelDeclaration||role===IdentifierRole.ImportDeclaration}function isBlockScopedDeclaration(token){let role=token.identifierRole;return role===IdentifierRole.TopLevelDeclaration||role===IdentifierRole.BlockScopedDeclaration||role===IdentifierRole.ObjectShorthandTopLevelDeclaration||role===IdentifierRole.ObjectShorthandBlockScopedDeclaration}function isFunctionScopedDeclaration(token){let role=token.identifierRole;return role===IdentifierRole.FunctionScopedDeclaration||role===IdentifierRole.ObjectShorthandFunctionScopedDeclaration}function isObjectShorthandDeclaration(token){return token.identifierRole===IdentifierRole.ObjectShorthandTopLevelDeclaration||token.identifierRole===IdentifierRole.ObjectShorthandBlockScopedDeclaration||token.identifierRole===IdentifierRole.ObjectShorthandFunctionScopedDeclaration}var Token=class{constructor(){this.type=state.type,this.contextualKeyword=state.contextualKeyword,this.start=state.start,this.end=state.end,this.scopeDepth=state.scopeDepth,this.isType=state.isType,this.identifierRole=null,this.jsxRole=null,this.shadowsGlobal=!1,this.isAsyncOperation=!1,this.contextId=null,this.rhsEndIndex=null,this.isExpression=!1,this.numNullishCoalesceStarts=0,this.numNullishCoalesceEnds=0,this.isOptionalChainStart=!1,this.isOptionalChainEnd=!1,this.subscriptStartIndex=null,this.nullishStartIndex=null}};function next(){state.tokens.push(new Token),nextToken()}function nextTemplateToken(){state.tokens.push(new Token),state.start=state.pos,readTmplToken()}function retokenizeSlashAsRegex(){state.type===TokenType.assign&&--state.pos,readRegexp()}function pushTypeContext(existingTokensInType){for(let i5=state.tokens.length-existingTokensInType;i5<state.tokens.length;i5++)state.tokens[i5].isType=!0;let oldIsType=state.isType;return state.isType=!0,oldIsType}function popTypeContext(oldIsType){state.isType=oldIsType}function eat(type){return match(type)?(next(),!0):!1}function eatTypeToken(tokenType){let oldIsType=state.isType;state.isType=!0,eat(tokenType),state.isType=oldIsType}function match(type){return state.type===type}function lookaheadType(){let snapshot=state.snapshot();next();let type=state.type;return state.restoreFromSnapshot(snapshot),type}var TypeAndKeyword=class{constructor(type,contextualKeyword){this.type=type,this.contextualKeyword=contextualKeyword}};function lookaheadTypeAndKeyword(){let snapshot=state.snapshot();next();let type=state.type,contextualKeyword=state.contextualKeyword;return state.restoreFromSnapshot(snapshot),new TypeAndKeyword(type,contextualKeyword)}function nextTokenStart(){return nextTokenStartSince(state.pos)}function nextTokenStartSince(pos){skipWhiteSpace.lastIndex=pos;let skip=skipWhiteSpace.exec(input);return pos+skip[0].length}function lookaheadCharCode(){return input.charCodeAt(nextTokenStart())}function nextToken(){if(skipSpace(),state.start=state.pos,state.pos>=input.length){let tokens=state.tokens;tokens.length>=2&&tokens[tokens.length-1].start>=input.length&&tokens[tokens.length-2].start>=input.length&&unexpected("Unexpectedly reached the end of input."),finishToken(TokenType.eof);return}readToken(input.charCodeAt(state.pos))}function readToken(code){IS_IDENTIFIER_START[code]||code===charCodes.backslash||code===charCodes.atSign&&input.charCodeAt(state.pos+1)===charCodes.atSign?readWord():getTokenFromCode(code)}function skipBlockComment(){for(;input.charCodeAt(state.pos)!==charCodes.asterisk||input.charCodeAt(state.pos+1)!==charCodes.slash;)if(state.pos++,state.pos>input.length){unexpected("Unterminated comment",state.pos-2);return}state.pos+=2}function skipLineComment(startSkip){let ch3=input.charCodeAt(state.pos+=startSkip);if(state.pos<input.length)for(;ch3!==charCodes.lineFeed&&ch3!==charCodes.carriageReturn&&ch3!==charCodes.lineSeparator&&ch3!==charCodes.paragraphSeparator&&++state.pos<input.length;)ch3=input.charCodeAt(state.pos)}function skipSpace(){for(;state.pos<input.length;){let ch3=input.charCodeAt(state.pos);switch(ch3){case charCodes.carriageReturn:input.charCodeAt(state.pos+1)===charCodes.lineFeed&&++state.pos;case charCodes.lineFeed:case charCodes.lineSeparator:case charCodes.paragraphSeparator:++state.pos;break;case charCodes.slash:switch(input.charCodeAt(state.pos+1)){case charCodes.asterisk:state.pos+=2,skipBlockComment();break;case charCodes.slash:skipLineComment(2);break;default:return}break;default:if(IS_WHITESPACE[ch3])++state.pos;else return}}}function finishToken(type,contextualKeyword=ContextualKeyword.NONE){state.end=state.pos,state.type=type,state.contextualKeyword=contextualKeyword}function readToken_dot(){let nextChar=input.charCodeAt(state.pos+1);if(nextChar>=charCodes.digit0&&nextChar<=charCodes.digit9){readNumber(!0);return}nextChar===charCodes.dot&&input.charCodeAt(state.pos+2)===charCodes.dot?(state.pos+=3,finishToken(TokenType.ellipsis)):(++state.pos,finishToken(TokenType.dot))}function readToken_slash(){input.charCodeAt(state.pos+1)===charCodes.equalsTo?finishOp(TokenType.assign,2):finishOp(TokenType.slash,1)}function readToken_mult_modulo(code){let tokenType=code===charCodes.asterisk?TokenType.star:TokenType.modulo,width=1,nextChar=input.charCodeAt(state.pos+1);code===charCodes.asterisk&&nextChar===charCodes.asterisk&&(width++,nextChar=input.charCodeAt(state.pos+2),tokenType=TokenType.exponent),nextChar===charCodes.equalsTo&&input.charCodeAt(state.pos+2)!==charCodes.greaterThan&&(width++,tokenType=TokenType.assign),finishOp(tokenType,width)}function readToken_pipe_amp(code){let nextChar=input.charCodeAt(state.pos+1);if(nextChar===code){input.charCodeAt(state.pos+2)===charCodes.equalsTo?finishOp(TokenType.assign,3):finishOp(code===charCodes.verticalBar?TokenType.logicalOR:TokenType.logicalAND,2);return}if(code===charCodes.verticalBar){if(nextChar===charCodes.greaterThan){finishOp(TokenType.pipeline,2);return}else if(nextChar===charCodes.rightCurlyBrace&&isFlowEnabled){finishOp(TokenType.braceBarR,2);return}}if(nextChar===charCodes.equalsTo){finishOp(TokenType.assign,2);return}finishOp(code===charCodes.verticalBar?TokenType.bitwiseOR:TokenType.bitwiseAND,1)}function readToken_caret(){input.charCodeAt(state.pos+1)===charCodes.equalsTo?finishOp(TokenType.assign,2):finishOp(TokenType.bitwiseXOR,1)}function readToken_plus_min(code){let nextChar=input.charCodeAt(state.pos+1);if(nextChar===code){finishOp(TokenType.preIncDec,2);return}nextChar===charCodes.equalsTo?finishOp(TokenType.assign,2):code===charCodes.plusSign?finishOp(TokenType.plus,1):finishOp(TokenType.minus,1)}function readToken_lt(){let nextChar=input.charCodeAt(state.pos+1);if(nextChar===charCodes.lessThan){if(input.charCodeAt(state.pos+2)===charCodes.equalsTo){finishOp(TokenType.assign,3);return}state.isType?finishOp(TokenType.lessThan,1):finishOp(TokenType.bitShiftL,2);return}nextChar===charCodes.equalsTo?finishOp(TokenType.relationalOrEqual,2):finishOp(TokenType.lessThan,1)}function readToken_gt(){if(state.isType){finishOp(TokenType.greaterThan,1);return}let nextChar=input.charCodeAt(state.pos+1);if(nextChar===charCodes.greaterThan){let size3=input.charCodeAt(state.pos+2)===charCodes.greaterThan?3:2;if(input.charCodeAt(state.pos+size3)===charCodes.equalsTo){finishOp(TokenType.assign,size3+1);return}finishOp(TokenType.bitShiftR,size3);return}nextChar===charCodes.equalsTo?finishOp(TokenType.relationalOrEqual,2):finishOp(TokenType.greaterThan,1)}function rescan_gt(){state.type===TokenType.greaterThan&&(state.pos-=1,readToken_gt())}function readToken_eq_excl(code){let nextChar=input.charCodeAt(state.pos+1);if(nextChar===charCodes.equalsTo){finishOp(TokenType.equality,input.charCodeAt(state.pos+2)===charCodes.equalsTo?3:2);return}if(code===charCodes.equalsTo&&nextChar===charCodes.greaterThan){state.pos+=2,finishToken(TokenType.arrow);return}finishOp(code===charCodes.equalsTo?TokenType.eq:TokenType.bang,1)}function readToken_question(){let nextChar=input.charCodeAt(state.pos+1),nextChar2=input.charCodeAt(state.pos+2);nextChar===charCodes.questionMark&&!(isFlowEnabled&&state.isType)?nextChar2===charCodes.equalsTo?finishOp(TokenType.assign,3):finishOp(TokenType.nullishCoalescing,2):nextChar===charCodes.dot&&!(nextChar2>=charCodes.digit0&&nextChar2<=charCodes.digit9)?(state.pos+=2,finishToken(TokenType.questionDot)):(++state.pos,finishToken(TokenType.question))}function getTokenFromCode(code){switch(code){case charCodes.numberSign:++state.pos,finishToken(TokenType.hash);return;case charCodes.dot:readToken_dot();return;case charCodes.leftParenthesis:++state.pos,finishToken(TokenType.parenL);return;case charCodes.rightParenthesis:++state.pos,finishToken(TokenType.parenR);return;case charCodes.semicolon:++state.pos,finishToken(TokenType.semi);return;case charCodes.comma:++state.pos,finishToken(TokenType.comma);return;case charCodes.leftSquareBracket:++state.pos,finishToken(TokenType.bracketL);return;case charCodes.rightSquareBracket:++state.pos,finishToken(TokenType.bracketR);return;case charCodes.leftCurlyBrace:isFlowEnabled&&input.charCodeAt(state.pos+1)===charCodes.verticalBar?finishOp(TokenType.braceBarL,2):(++state.pos,finishToken(TokenType.braceL));return;case charCodes.rightCurlyBrace:++state.pos,finishToken(TokenType.braceR);return;case charCodes.colon:input.charCodeAt(state.pos+1)===charCodes.colon?finishOp(TokenType.doubleColon,2):(++state.pos,finishToken(TokenType.colon));return;case charCodes.questionMark:readToken_question();return;case charCodes.atSign:++state.pos,finishToken(TokenType.at);return;case charCodes.graveAccent:++state.pos,finishToken(TokenType.backQuote);return;case charCodes.digit0:{let nextChar=input.charCodeAt(state.pos+1);if(nextChar===charCodes.lowercaseX||nextChar===charCodes.uppercaseX||nextChar===charCodes.lowercaseO||nextChar===charCodes.uppercaseO||nextChar===charCodes.lowercaseB||nextChar===charCodes.uppercaseB){readRadixNumber();return}}case charCodes.digit1:case charCodes.digit2:case charCodes.digit3:case charCodes.digit4:case charCodes.digit5:case charCodes.digit6:case charCodes.digit7:case charCodes.digit8:case charCodes.digit9:readNumber(!1);return;case charCodes.quotationMark:case charCodes.apostrophe:readString(code);return;case charCodes.slash:readToken_slash();return;case charCodes.percentSign:case charCodes.asterisk:readToken_mult_modulo(code);return;case charCodes.verticalBar:case charCodes.ampersand:readToken_pipe_amp(code);return;case charCodes.caret:readToken_caret();return;case charCodes.plusSign:case charCodes.dash:readToken_plus_min(code);return;case charCodes.lessThan:readToken_lt();return;case charCodes.greaterThan:readToken_gt();return;case charCodes.equalsTo:case charCodes.exclamationMark:readToken_eq_excl(code);return;case charCodes.tilde:finishOp(TokenType.tilde,1);return;default:break}unexpected(`Unexpected character '${String.fromCharCode(code)}'`,state.pos)}function finishOp(type,size3){state.pos+=size3,finishToken(type)}function readRegexp(){let start=state.pos,escaped=!1,inClass=!1;for(;;){if(state.pos>=input.length){unexpected("Unterminated regular expression",start);return}let code=input.charCodeAt(state.pos);if(escaped)escaped=!1;else{if(code===charCodes.leftSquareBracket)inClass=!0;else if(code===charCodes.rightSquareBracket&&inClass)inClass=!1;else if(code===charCodes.slash&&!inClass)break;escaped=code===charCodes.backslash}++state.pos}++state.pos,skipWord(),finishToken(TokenType.regexp)}function readInt(){for(;;){let code=input.charCodeAt(state.pos);if(code>=charCodes.digit0&&code<=charCodes.digit9||code===charCodes.underscore)state.pos++;else break}}function readRadixNumber(){for(state.pos+=2;;){let code=input.charCodeAt(state.pos);if(code>=charCodes.digit0&&code<=charCodes.digit9||code>=charCodes.lowercaseA&&code<=charCodes.lowercaseF||code>=charCodes.uppercaseA&&code<=charCodes.uppercaseF||code===charCodes.underscore)state.pos++;else break}input.charCodeAt(state.pos)===charCodes.lowercaseN?(++state.pos,finishToken(TokenType.bigint)):finishToken(TokenType.num)}function readNumber(startsWithDot){let isBigInt=!1,isDecimal=!1;startsWithDot||readInt();let nextChar=input.charCodeAt(state.pos);if(nextChar===charCodes.dot&&(++state.pos,readInt(),nextChar=input.charCodeAt(state.pos)),(nextChar===charCodes.uppercaseE||nextChar===charCodes.lowercaseE)&&(nextChar=input.charCodeAt(++state.pos),(nextChar===charCodes.plusSign||nextChar===charCodes.dash)&&++state.pos,readInt(),nextChar=input.charCodeAt(state.pos)),nextChar===charCodes.lowercaseN?(++state.pos,isBigInt=!0):nextChar===charCodes.lowercaseM&&(++state.pos,isDecimal=!0),isBigInt){finishToken(TokenType.bigint);return}if(isDecimal){finishToken(TokenType.decimal);return}finishToken(TokenType.num)}function readString(quote){for(state.pos++;;){if(state.pos>=input.length){unexpected("Unterminated string constant");return}let ch3=input.charCodeAt(state.pos);if(ch3===charCodes.backslash)state.pos++;else if(ch3===quote)break;state.pos++}state.pos++,finishToken(TokenType.string)}function readTmplToken(){for(;;){if(state.pos>=input.length){unexpected("Unterminated template");return}let ch3=input.charCodeAt(state.pos);if(ch3===charCodes.graveAccent||ch3===charCodes.dollarSign&&input.charCodeAt(state.pos+1)===charCodes.leftCurlyBrace){if(state.pos===state.start&&match(TokenType.template))if(ch3===charCodes.dollarSign){state.pos+=2,finishToken(TokenType.dollarBraceL);return}else{++state.pos,finishToken(TokenType.backQuote);return}finishToken(TokenType.template);return}ch3===charCodes.backslash&&state.pos++,state.pos++}}function skipWord(){for(;state.pos<input.length;){let ch3=input.charCodeAt(state.pos);if(IS_IDENTIFIER_CHAR[ch3])state.pos++;else if(ch3===charCodes.backslash){if(state.pos+=2,input.charCodeAt(state.pos)===charCodes.leftCurlyBrace){for(;state.pos<input.length&&input.charCodeAt(state.pos)!==charCodes.rightCurlyBrace;)state.pos++;state.pos++}}else break}}function getImportExportSpecifierInfo(tokens,index=tokens.currentIndex()){let endIndex=index+1;if(isSpecifierEnd(tokens,endIndex)){let name=tokens.identifierNameAtIndex(index);return{isType:!1,leftName:name,rightName:name,endIndex}}if(endIndex++,isSpecifierEnd(tokens,endIndex))return{isType:!0,leftName:null,rightName:null,endIndex};if(endIndex++,isSpecifierEnd(tokens,endIndex))return{isType:!1,leftName:tokens.identifierNameAtIndex(index),rightName:tokens.identifierNameAtIndex(index+2),endIndex};if(endIndex++,isSpecifierEnd(tokens,endIndex))return{isType:!0,leftName:null,rightName:null,endIndex};throw new Error(`Unexpected import/export specifier at ${index}`)}function isSpecifierEnd(tokens,index){let token=tokens.tokens[index];return token.type===TokenType.braceR||token.type===TokenType.comma}var xhtml_default=new Map([["quot",'"'],["amp","&"],["apos","'"],["lt","<"],["gt",">"],["nbsp","\xA0"],["iexcl","\xA1"],["cent","\xA2"],["pound","\xA3"],["curren","\xA4"],["yen","\xA5"],["brvbar","\xA6"],["sect","\xA7"],["uml","\xA8"],["copy","\xA9"],["ordf","\xAA"],["laquo","\xAB"],["not","\xAC"],["shy","\xAD"],["reg","\xAE"],["macr","\xAF"],["deg","\xB0"],["plusmn","\xB1"],["sup2","\xB2"],["sup3","\xB3"],["acute","\xB4"],["micro","\xB5"],["para","\xB6"],["middot","\xB7"],["cedil","\xB8"],["sup1","\xB9"],["ordm","\xBA"],["raquo","\xBB"],["frac14","\xBC"],["frac12","\xBD"],["frac34","\xBE"],["iquest","\xBF"],["Agrave","\xC0"],["Aacute","\xC1"],["Acirc","\xC2"],["Atilde","\xC3"],["Auml","\xC4"],["Aring","\xC5"],["AElig","\xC6"],["Ccedil","\xC7"],["Egrave","\xC8"],["Eacute","\xC9"],["Ecirc","\xCA"],["Euml","\xCB"],["Igrave","\xCC"],["Iacute","\xCD"],["Icirc","\xCE"],["Iuml","\xCF"],["ETH","\xD0"],["Ntilde","\xD1"],["Ograve","\xD2"],["Oacute","\xD3"],["Ocirc","\xD4"],["Otilde","\xD5"],["Ouml","\xD6"],["times","\xD7"],["Oslash","\xD8"],["Ugrave","\xD9"],["Uacute","\xDA"],["Ucirc","\xDB"],["Uuml","\xDC"],["Yacute","\xDD"],["THORN","\xDE"],["szlig","\xDF"],["agrave","\xE0"],["aacute","\xE1"],["acirc","\xE2"],["atilde","\xE3"],["auml","\xE4"],["aring","\xE5"],["aelig","\xE6"],["ccedil","\xE7"],["egrave","\xE8"],["eacute","\xE9"],["ecirc","\xEA"],["euml","\xEB"],["igrave","\xEC"],["iacute","\xED"],["icirc","\xEE"],["iuml","\xEF"],["eth","\xF0"],["ntilde","\xF1"],["ograve","\xF2"],["oacute","\xF3"],["ocirc","\xF4"],["otilde","\xF5"],["ouml","\xF6"],["divide","\xF7"],["oslash","\xF8"],["ugrave","\xF9"],["uacute","\xFA"],["ucirc","\xFB"],["uuml","\xFC"],["yacute","\xFD"],["thorn","\xFE"],["yuml","\xFF"],["OElig","\u0152"],["oelig","\u0153"],["Scaron","\u0160"],["scaron","\u0161"],["Yuml","\u0178"],["fnof","\u0192"],["circ","\u02C6"],["tilde","\u02DC"],["Alpha","\u0391"],["Beta","\u0392"],["Gamma","\u0393"],["Delta","\u0394"],["Epsilon","\u0395"],["Zeta","\u0396"],["Eta","\u0397"],["Theta","\u0398"],["Iota","\u0399"],["Kappa","\u039A"],["Lambda","\u039B"],["Mu","\u039C"],["Nu","\u039D"],["Xi","\u039E"],["Omicron","\u039F"],["Pi","\u03A0"],["Rho","\u03A1"],["Sigma","\u03A3"],["Tau","\u03A4"],["Upsilon","\u03A5"],["Phi","\u03A6"],["Chi","\u03A7"],["Psi","\u03A8"],["Omega","\u03A9"],["alpha","\u03B1"],["beta","\u03B2"],["gamma","\u03B3"],["delta","\u03B4"],["epsilon","\u03B5"],["zeta","\u03B6"],["eta","\u03B7"],["theta","\u03B8"],["iota","\u03B9"],["kappa","\u03BA"],["lambda","\u03BB"],["mu","\u03BC"],["nu","\u03BD"],["xi","\u03BE"],["omicron","\u03BF"],["pi","\u03C0"],["rho","\u03C1"],["sigmaf","\u03C2"],["sigma","\u03C3"],["tau","\u03C4"],["upsilon","\u03C5"],["phi","\u03C6"],["chi","\u03C7"],["psi","\u03C8"],["omega","\u03C9"],["thetasym","\u03D1"],["upsih","\u03D2"],["piv","\u03D6"],["ensp","\u2002"],["emsp","\u2003"],["thinsp","\u2009"],["zwnj","\u200C"],["zwj","\u200D"],["lrm","\u200E"],["rlm","\u200F"],["ndash","\u2013"],["mdash","\u2014"],["lsquo","\u2018"],["rsquo","\u2019"],["sbquo","\u201A"],["ldquo","\u201C"],["rdquo","\u201D"],["bdquo","\u201E"],["dagger","\u2020"],["Dagger","\u2021"],["bull","\u2022"],["hellip","\u2026"],["permil","\u2030"],["prime","\u2032"],["Prime","\u2033"],["lsaquo","\u2039"],["rsaquo","\u203A"],["oline","\u203E"],["frasl","\u2044"],["euro","\u20AC"],["image","\u2111"],["weierp","\u2118"],["real","\u211C"],["trade","\u2122"],["alefsym","\u2135"],["larr","\u2190"],["uarr","\u2191"],["rarr","\u2192"],["darr","\u2193"],["harr","\u2194"],["crarr","\u21B5"],["lArr","\u21D0"],["uArr","\u21D1"],["rArr","\u21D2"],["dArr","\u21D3"],["hArr","\u21D4"],["forall","\u2200"],["part","\u2202"],["exist","\u2203"],["empty","\u2205"],["nabla","\u2207"],["isin","\u2208"],["notin","\u2209"],["ni","\u220B"],["prod","\u220F"],["sum","\u2211"],["minus","\u2212"],["lowast","\u2217"],["radic","\u221A"],["prop","\u221D"],["infin","\u221E"],["ang","\u2220"],["and","\u2227"],["or","\u2228"],["cap","\u2229"],["cup","\u222A"],["int","\u222B"],["there4","\u2234"],["sim","\u223C"],["cong","\u2245"],["asymp","\u2248"],["ne","\u2260"],["equiv","\u2261"],["le","\u2264"],["ge","\u2265"],["sub","\u2282"],["sup","\u2283"],["nsub","\u2284"],["sube","\u2286"],["supe","\u2287"],["oplus","\u2295"],["otimes","\u2297"],["perp","\u22A5"],["sdot","\u22C5"],["lceil","\u2308"],["rceil","\u2309"],["lfloor","\u230A"],["rfloor","\u230B"],["lang","\u2329"],["rang","\u232A"],["loz","\u25CA"],["spades","\u2660"],["clubs","\u2663"],["hearts","\u2665"],["diams","\u2666"]]);function getJSXPragmaInfo(options){let[base,suffix]=splitPragma(options.jsxPragma||"React.createElement"),[fragmentBase,fragmentSuffix]=splitPragma(options.jsxFragmentPragma||"React.Fragment");return{base,suffix,fragmentBase,fragmentSuffix}}function splitPragma(pragma){let dotIndex=pragma.indexOf(".");return dotIndex===-1&&(dotIndex=pragma.length),[pragma.slice(0,dotIndex),pragma.slice(dotIndex)]}var Transformer=class{getPrefixCode(){return""}getHoistedCode(){return""}getSuffixCode(){return""}};var JSXTransformer=class _JSXTransformer extends Transformer{__init(){this.lastLineNumber=1}__init2(){this.lastIndex=0}__init3(){this.filenameVarName=null}__init4(){this.esmAutomaticImportNameResolutions={}}__init5(){this.cjsAutomaticModuleNameResolutions={}}constructor(rootTransformer,tokens,importProcessor,nameManager,options){super(),this.rootTransformer=rootTransformer,this.tokens=tokens,this.importProcessor=importProcessor,this.nameManager=nameManager,this.options=options,_JSXTransformer.prototype.__init.call(this),_JSXTransformer.prototype.__init2.call(this),_JSXTransformer.prototype.__init3.call(this),_JSXTransformer.prototype.__init4.call(this),_JSXTransformer.prototype.__init5.call(this),this.jsxPragmaInfo=getJSXPragmaInfo(options),this.isAutomaticRuntime=options.jsxRuntime==="automatic",this.jsxImportSource=options.jsxImportSource||"react"}process(){return this.tokens.matches1(TokenType.jsxTagStart)?(this.processJSXTag(),!0):!1}getPrefixCode(){let prefix="";if(this.filenameVarName&&(prefix+=`const ${this.filenameVarName} = ${JSON.stringify(this.options.filePath||"")};`),this.isAutomaticRuntime)if(this.importProcessor)for(let[path,resolvedName]of Object.entries(this.cjsAutomaticModuleNameResolutions))prefix+=`var ${resolvedName} = require("${path}");`;else{let{createElement:createElementResolution,...otherResolutions}=this.esmAutomaticImportNameResolutions;createElementResolution&&(prefix+=`import {createElement as ${createElementResolution}} from "${this.jsxImportSource}";`);let importSpecifiers=Object.entries(otherResolutions).map(([name,resolvedName])=>`${name} as ${resolvedName}`).join(", ");if(importSpecifiers){let importPath=this.jsxImportSource+(this.options.production?"/jsx-runtime":"/jsx-dev-runtime");prefix+=`import {${importSpecifiers}} from "${importPath}";`}}return prefix}processJSXTag(){let{jsxRole,start}=this.tokens.currentToken(),elementLocationCode=this.options.production?null:this.getElementLocationCode(start);this.isAutomaticRuntime&&jsxRole!==JSXRole.KeyAfterPropSpread?this.transformTagToJSXFunc(elementLocationCode,jsxRole):this.transformTagToCreateElement(elementLocationCode)}getElementLocationCode(firstTokenStart){return`lineNumber: ${this.getLineNumberForIndex(firstTokenStart)}`}getLineNumberForIndex(index){let code=this.tokens.code;for(;this.lastIndex<index&&this.lastIndex<code.length;)code[this.lastIndex]===`
|
|
818
810
|
`&&this.lastLineNumber++,this.lastIndex++;return this.lastLineNumber}transformTagToJSXFunc(elementLocationCode,jsxRole){let isStatic=jsxRole===JSXRole.StaticChildren;this.tokens.replaceToken(this.getJSXFuncInvocationCode(isStatic));let keyCode=null;if(this.tokens.matches1(TokenType.jsxTagEnd))this.tokens.replaceToken(`${this.getFragmentCode()}, {`),this.processAutomaticChildrenAndEndProps(jsxRole);else{if(this.processTagIntro(),this.tokens.appendCode(", {"),keyCode=this.processProps(!0),this.tokens.matches2(TokenType.slash,TokenType.jsxTagEnd))this.tokens.appendCode("}");else if(this.tokens.matches1(TokenType.jsxTagEnd))this.tokens.removeToken(),this.processAutomaticChildrenAndEndProps(jsxRole);else throw new Error("Expected either /> or > at the end of the tag.");keyCode&&this.tokens.appendCode(`, ${keyCode}`)}for(this.options.production||(keyCode===null&&this.tokens.appendCode(", void 0"),this.tokens.appendCode(`, ${isStatic}, ${this.getDevSource(elementLocationCode)}, this`)),this.tokens.removeInitialToken();!this.tokens.matches1(TokenType.jsxTagEnd);)this.tokens.removeToken();this.tokens.replaceToken(")")}transformTagToCreateElement(elementLocationCode){if(this.tokens.replaceToken(this.getCreateElementInvocationCode()),this.tokens.matches1(TokenType.jsxTagEnd))this.tokens.replaceToken(`${this.getFragmentCode()}, null`),this.processChildren(!0);else if(this.processTagIntro(),this.processPropsObjectWithDevInfo(elementLocationCode),!this.tokens.matches2(TokenType.slash,TokenType.jsxTagEnd))if(this.tokens.matches1(TokenType.jsxTagEnd))this.tokens.removeToken(),this.processChildren(!0);else throw new Error("Expected either /> or > at the end of the tag.");for(this.tokens.removeInitialToken();!this.tokens.matches1(TokenType.jsxTagEnd);)this.tokens.removeToken();this.tokens.replaceToken(")")}getJSXFuncInvocationCode(isStatic){return this.options.production?isStatic?this.claimAutoImportedFuncInvocation("jsxs","/jsx-runtime"):this.claimAutoImportedFuncInvocation("jsx","/jsx-runtime"):this.claimAutoImportedFuncInvocation("jsxDEV","/jsx-dev-runtime")}getCreateElementInvocationCode(){if(this.isAutomaticRuntime)return this.claimAutoImportedFuncInvocation("createElement","");{let{jsxPragmaInfo}=this;return`${this.importProcessor&&this.importProcessor.getIdentifierReplacement(jsxPragmaInfo.base)||jsxPragmaInfo.base}${jsxPragmaInfo.suffix}(`}}getFragmentCode(){if(this.isAutomaticRuntime)return this.claimAutoImportedName("Fragment",this.options.production?"/jsx-runtime":"/jsx-dev-runtime");{let{jsxPragmaInfo}=this;return(this.importProcessor&&this.importProcessor.getIdentifierReplacement(jsxPragmaInfo.fragmentBase)||jsxPragmaInfo.fragmentBase)+jsxPragmaInfo.fragmentSuffix}}claimAutoImportedFuncInvocation(funcName,importPathSuffix){let funcCode=this.claimAutoImportedName(funcName,importPathSuffix);return this.importProcessor?`${funcCode}.call(void 0, `:`${funcCode}(`}claimAutoImportedName(funcName,importPathSuffix){if(this.importProcessor){let path=this.jsxImportSource+importPathSuffix;return this.cjsAutomaticModuleNameResolutions[path]||(this.cjsAutomaticModuleNameResolutions[path]=this.importProcessor.getFreeIdentifierForPath(path)),`${this.cjsAutomaticModuleNameResolutions[path]}.${funcName}`}else return this.esmAutomaticImportNameResolutions[funcName]||(this.esmAutomaticImportNameResolutions[funcName]=this.nameManager.claimFreeName(`_${funcName}`)),this.esmAutomaticImportNameResolutions[funcName]}processTagIntro(){let introEnd=this.tokens.currentIndex()+1;for(;this.tokens.tokens[introEnd].isType||!this.tokens.matches2AtIndex(introEnd-1,TokenType.jsxName,TokenType.jsxName)&&!this.tokens.matches2AtIndex(introEnd-1,TokenType.greaterThan,TokenType.jsxName)&&!this.tokens.matches1AtIndex(introEnd,TokenType.braceL)&&!this.tokens.matches1AtIndex(introEnd,TokenType.jsxTagEnd)&&!this.tokens.matches2AtIndex(introEnd,TokenType.slash,TokenType.jsxTagEnd);)introEnd++;if(introEnd===this.tokens.currentIndex()+1){let tagName=this.tokens.identifierName();startsWithLowerCase(tagName)&&this.tokens.replaceToken(`'${tagName}'`)}for(;this.tokens.currentIndex()<introEnd;)this.rootTransformer.processToken()}processPropsObjectWithDevInfo(elementLocationCode){let devProps=this.options.production?"":`__self: this, __source: ${this.getDevSource(elementLocationCode)}`;if(!this.tokens.matches1(TokenType.jsxName)&&!this.tokens.matches1(TokenType.braceL)){devProps?this.tokens.appendCode(`, {${devProps}}`):this.tokens.appendCode(", null");return}this.tokens.appendCode(", {"),this.processProps(!1),devProps?this.tokens.appendCode(` ${devProps}}`):this.tokens.appendCode("}")}processProps(extractKeyCode){let keyCode=null;for(;;){if(this.tokens.matches2(TokenType.jsxName,TokenType.eq)){let propName=this.tokens.identifierName();if(extractKeyCode&&propName==="key"){keyCode!==null&&this.tokens.appendCode(keyCode.replace(/[^\n]/g,"")),this.tokens.removeToken(),this.tokens.removeToken();let snapshot=this.tokens.snapshot();this.processPropValue(),keyCode=this.tokens.dangerouslyGetAndRemoveCodeSinceSnapshot(snapshot);continue}else this.processPropName(propName),this.tokens.replaceToken(": "),this.processPropValue()}else if(this.tokens.matches1(TokenType.jsxName)){let propName=this.tokens.identifierName();this.processPropName(propName),this.tokens.appendCode(": true")}else if(this.tokens.matches1(TokenType.braceL))this.tokens.replaceToken(""),this.rootTransformer.processBalancedCode(),this.tokens.replaceToken("");else break;this.tokens.appendCode(",")}return keyCode}processPropName(propName){propName.includes("-")?this.tokens.replaceToken(`'${propName}'`):this.tokens.copyToken()}processPropValue(){this.tokens.matches1(TokenType.braceL)?(this.tokens.replaceToken(""),this.rootTransformer.processBalancedCode(),this.tokens.replaceToken("")):this.tokens.matches1(TokenType.jsxTagStart)?this.processJSXTag():this.processStringPropValue()}processStringPropValue(){let token=this.tokens.currentToken(),valueCode=this.tokens.code.slice(token.start+1,token.end-1),replacementCode=formatJSXTextReplacement(valueCode),literalCode=formatJSXStringValueLiteral(valueCode);this.tokens.replaceToken(literalCode+replacementCode)}processAutomaticChildrenAndEndProps(jsxRole){jsxRole===JSXRole.StaticChildren?(this.tokens.appendCode(" children: ["),this.processChildren(!1),this.tokens.appendCode("]}")):(jsxRole===JSXRole.OneChild&&this.tokens.appendCode(" children: "),this.processChildren(!1),this.tokens.appendCode("}"))}processChildren(needsInitialComma){let needsComma=needsInitialComma;for(;;){if(this.tokens.matches2(TokenType.jsxTagStart,TokenType.slash))return;let didEmitElement=!1;if(this.tokens.matches1(TokenType.braceL))this.tokens.matches2(TokenType.braceL,TokenType.braceR)?(this.tokens.replaceToken(""),this.tokens.replaceToken("")):(this.tokens.replaceToken(needsComma?", ":""),this.rootTransformer.processBalancedCode(),this.tokens.replaceToken(""),didEmitElement=!0);else if(this.tokens.matches1(TokenType.jsxTagStart))this.tokens.appendCode(needsComma?", ":""),this.processJSXTag(),didEmitElement=!0;else if(this.tokens.matches1(TokenType.jsxText)||this.tokens.matches1(TokenType.jsxEmptyText))didEmitElement=this.processChildTextElement(needsComma);else throw new Error("Unexpected token when processing JSX children.");didEmitElement&&(needsComma=!0)}}processChildTextElement(needsComma){let token=this.tokens.currentToken(),valueCode=this.tokens.code.slice(token.start,token.end),replacementCode=formatJSXTextReplacement(valueCode),literalCode=formatJSXTextLiteral(valueCode);return literalCode==='""'?(this.tokens.replaceToken(replacementCode),!1):(this.tokens.replaceToken(`${needsComma?", ":""}${literalCode}${replacementCode}`),!0)}getDevSource(elementLocationCode){return`{fileName: ${this.getFilenameVarName()}, ${elementLocationCode}}`}getFilenameVarName(){return this.filenameVarName||(this.filenameVarName=this.nameManager.claimFreeName("_jsxFileName")),this.filenameVarName}};function startsWithLowerCase(s4){let firstChar=s4.charCodeAt(0);return firstChar>=charCodes.lowercaseA&&firstChar<=charCodes.lowercaseZ}function formatJSXTextLiteral(text){let result="",whitespace2="",isInInitialLineWhitespace=!1,seenNonWhitespace=!1;for(let i5=0;i5<text.length;i5++){let c6=text[i5];if(c6===" "||c6===" "||c6==="\r")isInInitialLineWhitespace||(whitespace2+=c6);else if(c6===`
|
|
819
811
|
`)whitespace2="",isInInitialLineWhitespace=!0;else{if(seenNonWhitespace&&isInInitialLineWhitespace&&(result+=" "),result+=whitespace2,whitespace2="",c6==="&"){let{entity,newI}=processEntity(text,i5+1);i5=newI-1,result+=entity}else result+=c6;seenNonWhitespace=!0,isInInitialLineWhitespace=!1}}return isInInitialLineWhitespace||(result+=whitespace2),JSON.stringify(result)}function formatJSXTextReplacement(text){let numNewlines=0,numSpaces=0;for(let c6 of text)c6===`
|
|
820
812
|
`?(numNewlines++,numSpaces=0):c6===" "&&numSpaces++;return`
|
|
@@ -947,9 +939,17 @@ ${namesToRegister.map(({variableName,uniqueLocalName})=>` reactHotLoader.regist
|
|
|
947
939
|
leaveModule(module);
|
|
948
940
|
})();`}process(){return!1}};var RESERVED_WORDS=new Set(["break","case","catch","class","const","continue","debugger","default","delete","do","else","export","extends","finally","for","function","if","import","in","instanceof","new","return","super","switch","this","throw","try","typeof","var","void","while","with","yield","enum","implements","interface","let","package","private","protected","public","static","await","false","null","true"]);function isIdentifier(name){if(name.length===0||!IS_IDENTIFIER_START[name.charCodeAt(0)])return!1;for(let i5=1;i5<name.length;i5++)if(!IS_IDENTIFIER_CHAR[name.charCodeAt(i5)])return!1;return!RESERVED_WORDS.has(name)}var TypeScriptTransformer=class extends Transformer{constructor(rootTransformer,tokens,isImportsTransformEnabled){super(),this.rootTransformer=rootTransformer,this.tokens=tokens,this.isImportsTransformEnabled=isImportsTransformEnabled}process(){return this.rootTransformer.processPossibleArrowParamEnd()||this.rootTransformer.processPossibleAsyncArrowWithTypeParams()||this.rootTransformer.processPossibleTypeRange()?!0:this.tokens.matches1(TokenType._public)||this.tokens.matches1(TokenType._protected)||this.tokens.matches1(TokenType._private)||this.tokens.matches1(TokenType._abstract)||this.tokens.matches1(TokenType._readonly)||this.tokens.matches1(TokenType._override)||this.tokens.matches1(TokenType.nonNullAssertion)?(this.tokens.removeInitialToken(),!0):this.tokens.matches1(TokenType._enum)||this.tokens.matches2(TokenType._const,TokenType._enum)?(this.processEnum(),!0):this.tokens.matches2(TokenType._export,TokenType._enum)||this.tokens.matches3(TokenType._export,TokenType._const,TokenType._enum)?(this.processEnum(!0),!0):!1}processEnum(isExport=!1){for(this.tokens.removeInitialToken();this.tokens.matches1(TokenType._const)||this.tokens.matches1(TokenType._enum);)this.tokens.removeToken();let enumName=this.tokens.identifierName();this.tokens.removeToken(),isExport&&!this.isImportsTransformEnabled&&this.tokens.appendCode("export "),this.tokens.appendCode(`var ${enumName}; (function (${enumName})`),this.tokens.copyExpectedToken(TokenType.braceL),this.processEnumBody(enumName),this.tokens.copyExpectedToken(TokenType.braceR),isExport&&this.isImportsTransformEnabled?this.tokens.appendCode(`)(${enumName} || (exports.${enumName} = ${enumName} = {}));`):this.tokens.appendCode(`)(${enumName} || (${enumName} = {}));`)}processEnumBody(enumName){let previousValueCode=null;for(;!this.tokens.matches1(TokenType.braceR);){let{nameStringCode,variableName}=this.extractEnumKeyInfo(this.tokens.currentToken());this.tokens.removeInitialToken(),this.tokens.matches3(TokenType.eq,TokenType.string,TokenType.comma)||this.tokens.matches3(TokenType.eq,TokenType.string,TokenType.braceR)?this.processStringLiteralEnumMember(enumName,nameStringCode,variableName):this.tokens.matches1(TokenType.eq)?this.processExplicitValueEnumMember(enumName,nameStringCode,variableName):this.processImplicitValueEnumMember(enumName,nameStringCode,variableName,previousValueCode),this.tokens.matches1(TokenType.comma)&&this.tokens.removeToken(),variableName!=null?previousValueCode=variableName:previousValueCode=`${enumName}[${nameStringCode}]`}}extractEnumKeyInfo(nameToken){if(nameToken.type===TokenType.name){let name=this.tokens.identifierNameForToken(nameToken);return{nameStringCode:`"${name}"`,variableName:isIdentifier(name)?name:null}}else if(nameToken.type===TokenType.string){let name=this.tokens.stringValueForToken(nameToken);return{nameStringCode:this.tokens.code.slice(nameToken.start,nameToken.end),variableName:isIdentifier(name)?name:null}}else throw new Error("Expected name or string at beginning of enum element.")}processStringLiteralEnumMember(enumName,nameStringCode,variableName){variableName!=null?(this.tokens.appendCode(`const ${variableName}`),this.tokens.copyToken(),this.tokens.copyToken(),this.tokens.appendCode(`; ${enumName}[${nameStringCode}] = ${variableName};`)):(this.tokens.appendCode(`${enumName}[${nameStringCode}]`),this.tokens.copyToken(),this.tokens.copyToken(),this.tokens.appendCode(";"))}processExplicitValueEnumMember(enumName,nameStringCode,variableName){let rhsEndIndex=this.tokens.currentToken().rhsEndIndex;if(rhsEndIndex==null)throw new Error("Expected rhsEndIndex on enum assign.");if(variableName!=null){for(this.tokens.appendCode(`const ${variableName}`),this.tokens.copyToken();this.tokens.currentIndex()<rhsEndIndex;)this.rootTransformer.processToken();this.tokens.appendCode(`; ${enumName}[${enumName}[${nameStringCode}] = ${variableName}] = ${nameStringCode};`)}else{for(this.tokens.appendCode(`${enumName}[${enumName}[${nameStringCode}]`),this.tokens.copyToken();this.tokens.currentIndex()<rhsEndIndex;)this.rootTransformer.processToken();this.tokens.appendCode(`] = ${nameStringCode};`)}}processImplicitValueEnumMember(enumName,nameStringCode,variableName,previousValueCode){let valueCode=previousValueCode!=null?`${previousValueCode} + 1`:"0";variableName!=null&&(this.tokens.appendCode(`const ${variableName} = ${valueCode}; `),valueCode=variableName),this.tokens.appendCode(`${enumName}[${enumName}[${nameStringCode}] = ${valueCode}] = ${nameStringCode};`)}};var RootTransformer=class _RootTransformer{__init(){this.transformers=[]}__init2(){this.generatedVariables=[]}constructor(sucraseContext,transforms,enableLegacyBabel5ModuleInterop,options){_RootTransformer.prototype.__init.call(this),_RootTransformer.prototype.__init2.call(this),this.nameManager=sucraseContext.nameManager,this.helperManager=sucraseContext.helperManager;let{tokenProcessor,importProcessor}=sucraseContext;this.tokens=tokenProcessor,this.isImportsTransformEnabled=transforms.includes("imports"),this.isReactHotLoaderTransformEnabled=transforms.includes("react-hot-loader"),this.disableESTransforms=!!options.disableESTransforms,options.disableESTransforms||(this.transformers.push(new OptionalChainingNullishTransformer(tokenProcessor,this.nameManager)),this.transformers.push(new NumericSeparatorTransformer(tokenProcessor)),this.transformers.push(new OptionalCatchBindingTransformer(tokenProcessor,this.nameManager))),transforms.includes("jsx")&&(options.jsxRuntime!=="preserve"&&this.transformers.push(new JSXTransformer(this,tokenProcessor,importProcessor,this.nameManager,options)),this.transformers.push(new ReactDisplayNameTransformer(this,tokenProcessor,importProcessor,options)));let reactHotLoaderTransformer=null;if(transforms.includes("react-hot-loader")){if(!options.filePath)throw new Error("filePath is required when using the react-hot-loader transform.");reactHotLoaderTransformer=new ReactHotLoaderTransformer(tokenProcessor,options.filePath),this.transformers.push(reactHotLoaderTransformer)}if(transforms.includes("imports")){if(importProcessor===null)throw new Error("Expected non-null importProcessor with imports transform enabled.");this.transformers.push(new CJSImportTransformer(this,tokenProcessor,importProcessor,this.nameManager,this.helperManager,reactHotLoaderTransformer,enableLegacyBabel5ModuleInterop,!!options.enableLegacyTypeScriptModuleInterop,transforms.includes("typescript"),transforms.includes("flow"),!!options.preserveDynamicImport,!!options.keepUnusedImports))}else this.transformers.push(new ESMImportTransformer(tokenProcessor,this.nameManager,this.helperManager,reactHotLoaderTransformer,transforms.includes("typescript"),transforms.includes("flow"),!!options.keepUnusedImports,options));transforms.includes("flow")&&this.transformers.push(new FlowTransformer(this,tokenProcessor,transforms.includes("imports"))),transforms.includes("typescript")&&this.transformers.push(new TypeScriptTransformer(this,tokenProcessor,transforms.includes("imports"))),transforms.includes("jest")&&this.transformers.push(new JestHoistTransformer(this,tokenProcessor,this.nameManager,importProcessor))}transform(){this.tokens.reset(),this.processBalancedCode();let prefix=this.isImportsTransformEnabled?'"use strict";':"";for(let transformer of this.transformers)prefix+=transformer.getPrefixCode();prefix+=this.helperManager.emitHelpers(),prefix+=this.generatedVariables.map(v5=>` var ${v5};`).join("");for(let transformer of this.transformers)prefix+=transformer.getHoistedCode();let suffix="";for(let transformer of this.transformers)suffix+=transformer.getSuffixCode();let result=this.tokens.finish(),{code}=result;if(code.startsWith("#!")){let newlineIndex=code.indexOf(`
|
|
949
941
|
`);return newlineIndex===-1&&(newlineIndex=code.length,code+=`
|
|
950
|
-
`),{code:code.slice(0,newlineIndex+1)+prefix+code.slice(newlineIndex+1)+suffix,mappings:this.shiftMappings(result.mappings,prefix.length)}}else return{code:prefix+code+suffix,mappings:this.shiftMappings(result.mappings,prefix.length)}}processBalancedCode(){let braceDepth=0,parenDepth=0;for(;!this.tokens.isAtEnd();){if(this.tokens.matches1(TokenType.braceL)||this.tokens.matches1(TokenType.dollarBraceL))braceDepth++;else if(this.tokens.matches1(TokenType.braceR)){if(braceDepth===0)return;braceDepth--}if(this.tokens.matches1(TokenType.parenL))parenDepth++;else if(this.tokens.matches1(TokenType.parenR)){if(parenDepth===0)return;parenDepth--}this.processToken()}}processToken(){if(this.tokens.matches1(TokenType._class)){this.processClass();return}for(let transformer of this.transformers)if(transformer.process())return;this.tokens.copyToken()}processNamedClass(){if(!this.tokens.matches2(TokenType._class,TokenType.name))throw new Error("Expected identifier for exported class name.");let name=this.tokens.identifierNameAtIndex(this.tokens.currentIndex()+1);return this.processClass(),name}processClass(){let classInfo=getClassInfo(this,this.tokens,this.nameManager,this.disableESTransforms),needsCommaExpression=(classInfo.headerInfo.isExpression||!classInfo.headerInfo.className)&&classInfo.staticInitializerNames.length+classInfo.instanceInitializerNames.length>0,className=classInfo.headerInfo.className;needsCommaExpression&&(className=this.nameManager.claimFreeName("_class"),this.generatedVariables.push(className),this.tokens.appendCode(` (${className} =`));let contextId=this.tokens.currentToken().contextId;if(contextId==null)throw new Error("Expected class to have a context ID.");for(this.tokens.copyExpectedToken(TokenType._class);!this.tokens.matchesContextIdAndLabel(TokenType.braceL,contextId);)this.processToken();this.processClassBody(classInfo,className);let staticInitializerStatements=classInfo.staticInitializerNames.map(name=>`${className}.${name}()`);needsCommaExpression?this.tokens.appendCode(`, ${staticInitializerStatements.map(s4=>`${s4}, `).join("")}${className})`):classInfo.staticInitializerNames.length>0&&this.tokens.appendCode(` ${staticInitializerStatements.map(s4=>`${s4};`).join(" ")}`)}processClassBody(classInfo,className){let{headerInfo,constructorInsertPos,constructorInitializerStatements,fields,instanceInitializerNames,rangesToRemove}=classInfo,fieldIndex=0,rangeToRemoveIndex=0,classContextId=this.tokens.currentToken().contextId;if(classContextId==null)throw new Error("Expected non-null context ID on class.");this.tokens.copyExpectedToken(TokenType.braceL),this.isReactHotLoaderTransformEnabled&&this.tokens.appendCode("__reactstandin__regenerateByEval(key, code) {this[key] = eval(code);}");let needsConstructorInit=constructorInitializerStatements.length+instanceInitializerNames.length>0;if(constructorInsertPos===null&&needsConstructorInit){let constructorInitializersCode=this.makeConstructorInitCode(constructorInitializerStatements,instanceInitializerNames,className);if(headerInfo.hasSuperclass){let argsName=this.nameManager.claimFreeName("args");this.tokens.appendCode(`constructor(...${argsName}) { super(...${argsName}); ${constructorInitializersCode}; }`)}else this.tokens.appendCode(`constructor() { ${constructorInitializersCode}; }`)}for(;!this.tokens.matchesContextIdAndLabel(TokenType.braceR,classContextId);)if(fieldIndex<fields.length&&this.tokens.currentIndex()===fields[fieldIndex].start){let needsCloseBrace=!1;for(this.tokens.matches1(TokenType.bracketL)?this.tokens.copyTokenWithPrefix(`${fields[fieldIndex].initializerName}() {this`):this.tokens.matches1(TokenType.string)||this.tokens.matches1(TokenType.num)?(this.tokens.copyTokenWithPrefix(`${fields[fieldIndex].initializerName}() {this[`),needsCloseBrace=!0):this.tokens.copyTokenWithPrefix(`${fields[fieldIndex].initializerName}() {this.`);this.tokens.currentIndex()<fields[fieldIndex].end;)needsCloseBrace&&this.tokens.currentIndex()===fields[fieldIndex].equalsIndex&&this.tokens.appendCode("]"),this.processToken();this.tokens.appendCode("}"),fieldIndex++}else if(rangeToRemoveIndex<rangesToRemove.length&&this.tokens.currentIndex()>=rangesToRemove[rangeToRemoveIndex].start){for(this.tokens.currentIndex()<rangesToRemove[rangeToRemoveIndex].end&&this.tokens.removeInitialToken();this.tokens.currentIndex()<rangesToRemove[rangeToRemoveIndex].end;)this.tokens.removeToken();rangeToRemoveIndex++}else this.tokens.currentIndex()===constructorInsertPos?(this.tokens.copyToken(),needsConstructorInit&&this.tokens.appendCode(`;${this.makeConstructorInitCode(constructorInitializerStatements,instanceInitializerNames,className)};`),this.processToken()):this.processToken();this.tokens.copyExpectedToken(TokenType.braceR)}makeConstructorInitCode(constructorInitializerStatements,instanceInitializerNames,className){return[...constructorInitializerStatements,...instanceInitializerNames.map(name=>`${className}.prototype.${name}.call(this)`)].join(";")}processPossibleArrowParamEnd(){if(this.tokens.matches2(TokenType.parenR,TokenType.colon)&&this.tokens.tokenAtRelativeIndex(1).isType){let nextNonTypeIndex=this.tokens.currentIndex()+1;for(;this.tokens.tokens[nextNonTypeIndex].isType;)nextNonTypeIndex++;if(this.tokens.matches1AtIndex(nextNonTypeIndex,TokenType.arrow)){for(this.tokens.removeInitialToken();this.tokens.currentIndex()<nextNonTypeIndex;)this.tokens.removeToken();return this.tokens.replaceTokenTrimmingLeftWhitespace(") =>"),!0}}return!1}processPossibleAsyncArrowWithTypeParams(){if(!this.tokens.matchesContextual(ContextualKeyword._async)&&!this.tokens.matches1(TokenType._async))return!1;let nextToken2=this.tokens.tokenAtRelativeIndex(1);if(nextToken2.type!==TokenType.lessThan||!nextToken2.isType)return!1;let nextNonTypeIndex=this.tokens.currentIndex()+1;for(;this.tokens.tokens[nextNonTypeIndex].isType;)nextNonTypeIndex++;if(this.tokens.matches1AtIndex(nextNonTypeIndex,TokenType.parenL)){for(this.tokens.replaceToken("async ("),this.tokens.removeInitialToken();this.tokens.currentIndex()<nextNonTypeIndex;)this.tokens.removeToken();return this.tokens.removeToken(),this.processBalancedCode(),this.processToken(),!0}return!1}processPossibleTypeRange(){if(this.tokens.currentToken().isType){for(this.tokens.removeInitialToken();this.tokens.currentToken().isType;)this.tokens.removeToken();return!0}return!1}shiftMappings(mappings,prefixLength){for(let i5=0;i5<mappings.length;i5++){let mapping=mappings[i5];mapping!==void 0&&(mappings[i5]=mapping+prefixLength)}return mappings}};var import_lines_and_columns=__toESM(require_build());function getTSImportedNames(tokens){let importedNames=new Set;for(let i5=0;i5<tokens.tokens.length;i5++)tokens.matches1AtIndex(i5,TokenType._import)&&!tokens.matches3AtIndex(i5,TokenType._import,TokenType.name,TokenType.eq)&&collectNamesForImport(tokens,i5,importedNames);return importedNames}function collectNamesForImport(tokens,index,importedNames){index++,!tokens.matches1AtIndex(index,TokenType.parenL)&&(tokens.matches1AtIndex(index,TokenType.name)&&(importedNames.add(tokens.identifierNameAtIndex(index)),index++,tokens.matches1AtIndex(index,TokenType.comma)&&index++),tokens.matches1AtIndex(index,TokenType.star)&&(index+=2,importedNames.add(tokens.identifierNameAtIndex(index)),index++),tokens.matches1AtIndex(index,TokenType.braceL)&&(index++,collectNamesForNamedImport(tokens,index,importedNames)))}function collectNamesForNamedImport(tokens,index,importedNames){for(;;){if(tokens.matches1AtIndex(index,TokenType.braceR))return;let specifierInfo=getImportExportSpecifierInfo(tokens,index);if(index=specifierInfo.endIndex,specifierInfo.isType||importedNames.add(specifierInfo.rightName),tokens.matches2AtIndex(index,TokenType.comma,TokenType.braceR))return;if(tokens.matches1AtIndex(index,TokenType.braceR))return;if(tokens.matches1AtIndex(index,TokenType.comma))index++;else throw new Error(`Unexpected token: ${JSON.stringify(tokens.tokens[index])}`)}}function transform6(code,options){validateOptions(options);try{let sucraseContext=getSucraseContext(code,options),transformerResult=new RootTransformer(sucraseContext,options.transforms,!!options.enableLegacyBabel5ModuleInterop,options).transform(),result={code:transformerResult.code};if(options.sourceMapOptions){if(!options.filePath)throw new Error("filePath must be specified when generating a source map.");result={...result,sourceMap:computeSourceMap(transformerResult,options.filePath,options.sourceMapOptions,code,sucraseContext.tokenProcessor.tokens)}}return result}catch(e6){throw options.filePath&&(e6.message=`Error transforming ${options.filePath}: ${e6.message}`),e6}}function getSucraseContext(code,options){let isJSXEnabled2=options.transforms.includes("jsx"),isTypeScriptEnabled2=options.transforms.includes("typescript"),isFlowEnabled2=options.transforms.includes("flow"),disableESTransforms=options.disableESTransforms===!0,file=parse4(code,isJSXEnabled2,isTypeScriptEnabled2,isFlowEnabled2),tokens=file.tokens,scopes=file.scopes,nameManager=new NameManager(code,tokens),helperManager=new HelperManager(nameManager),tokenProcessor=new TokenProcessor(code,tokens,isFlowEnabled2,disableESTransforms,helperManager),enableLegacyTypeScriptModuleInterop=!!options.enableLegacyTypeScriptModuleInterop,importProcessor=null;return options.transforms.includes("imports")?(importProcessor=new CJSImportProcessor(nameManager,tokenProcessor,enableLegacyTypeScriptModuleInterop,options,options.transforms.includes("typescript"),!!options.keepUnusedImports,helperManager),importProcessor.preprocessTokens(),identifyShadowedGlobals(tokenProcessor,scopes,importProcessor.getGlobalNames()),options.transforms.includes("typescript")&&!options.keepUnusedImports&&importProcessor.pruneTypeOnlyImports()):options.transforms.includes("typescript")&&!options.keepUnusedImports&&identifyShadowedGlobals(tokenProcessor,scopes,getTSImportedNames(tokenProcessor)),{tokenProcessor,scopes,nameManager,importProcessor,helperManager}}var TS_EXTENSIONS=new Set([".ts",".tsx",".mts",".cts"]),JSX_EXTENSIONS=new Set([".tsx",".jsx",".ts"]),TYPE_STAR_EXPORT_REGEX=/^\s*export\s+type\s+\*\s+(?:as\s+[\w$]+\s+)?from\s+['"][^'"]+['"]\s*;?\s*$/gim,stripTypeStarExports=code=>code.replace(TYPE_STAR_EXPORT_REGEX,""),stripQueryAndHash=filePath=>{let queryIndex=filePath.indexOf("?"),hashIndex=filePath.indexOf("#"),endIndex=filePath.length;return queryIndex!==-1&&hashIndex!==-1?endIndex=Math.min(queryIndex,hashIndex):queryIndex!==-1?endIndex=queryIndex:hashIndex!==-1&&(endIndex=hashIndex),filePath.slice(0,endIndex)},getExtension=filePath=>{let normalizedPath=stripQueryAndHash(filePath),lastDotIndex=normalizedPath.lastIndexOf(".");return lastDotIndex===-1||Math.max(normalizedPath.lastIndexOf("/"),normalizedPath.lastIndexOf("\\"))>lastDotIndex?"":normalizedPath.slice(lastDotIndex).toLowerCase()},getTransformsForFilePath=filePath=>{let extension=getExtension(filePath),transforms=["imports"];return TS_EXTENSIONS.has(extension)&&transforms.unshift("typescript"),JSX_EXTENSIONS.has(extension)&&transforms.push("jsx"),transforms},transformWithSucrase=(code,filePath)=>{let transforms=getTransformsForFilePath(filePath),sanitizedCode=stripTypeStarExports(code),{code:transformedCode}=transform6(sanitizedCode,{filePath,disableESTransforms:!0,production:!0,transforms});return transformedCode};var debug13=(0,import_debug22.default)("tsci:eval:import-local-file"),getFileExtension2=fsPath=>{let ext=fsPath.split(".").pop();return ext?ext.toLowerCase():""},getStaticFileLoader=(platform,fsPath)=>{let ext=getFileExtension2(fsPath);if(ext)return platform?.staticFileLoaderMap?.[ext]??platform?.staticFileLoaderMap?.[`.${ext}`]},normalizeStaticFileLoaderResult=result=>result&&typeof result=="object"&&result.__esModule?result:{__esModule:!0,default:result},importLocalFile=async(importName,ctx,depth=0)=>{debug13("importLocalFile called with:",{importName});let{fsMap,preSuppliedImports,importStack,currentlyImporting}=ctx,fsPath=resolveFilePathOrThrow(importName,fsMap,void 0,{tsConfig:ctx.tsConfig});if(debug13("fsPath:",fsPath),currentlyImporting.has(fsPath)){let cycleStartIndex=importStack.indexOf(fsPath),cyclePath=cycleStartIndex>=0?importStack.slice(cycleStartIndex).concat(fsPath):[...importStack,fsPath];throw new Error(`Circular dependency detected while importing "${fsPath}". The following import chain forms a cycle:
|
|
942
|
+
`),{code:code.slice(0,newlineIndex+1)+prefix+code.slice(newlineIndex+1)+suffix,mappings:this.shiftMappings(result.mappings,prefix.length)}}else return{code:prefix+code+suffix,mappings:this.shiftMappings(result.mappings,prefix.length)}}processBalancedCode(){let braceDepth=0,parenDepth=0;for(;!this.tokens.isAtEnd();){if(this.tokens.matches1(TokenType.braceL)||this.tokens.matches1(TokenType.dollarBraceL))braceDepth++;else if(this.tokens.matches1(TokenType.braceR)){if(braceDepth===0)return;braceDepth--}if(this.tokens.matches1(TokenType.parenL))parenDepth++;else if(this.tokens.matches1(TokenType.parenR)){if(parenDepth===0)return;parenDepth--}this.processToken()}}processToken(){if(this.tokens.matches1(TokenType._class)){this.processClass();return}for(let transformer of this.transformers)if(transformer.process())return;this.tokens.copyToken()}processNamedClass(){if(!this.tokens.matches2(TokenType._class,TokenType.name))throw new Error("Expected identifier for exported class name.");let name=this.tokens.identifierNameAtIndex(this.tokens.currentIndex()+1);return this.processClass(),name}processClass(){let classInfo=getClassInfo(this,this.tokens,this.nameManager,this.disableESTransforms),needsCommaExpression=(classInfo.headerInfo.isExpression||!classInfo.headerInfo.className)&&classInfo.staticInitializerNames.length+classInfo.instanceInitializerNames.length>0,className=classInfo.headerInfo.className;needsCommaExpression&&(className=this.nameManager.claimFreeName("_class"),this.generatedVariables.push(className),this.tokens.appendCode(` (${className} =`));let contextId=this.tokens.currentToken().contextId;if(contextId==null)throw new Error("Expected class to have a context ID.");for(this.tokens.copyExpectedToken(TokenType._class);!this.tokens.matchesContextIdAndLabel(TokenType.braceL,contextId);)this.processToken();this.processClassBody(classInfo,className);let staticInitializerStatements=classInfo.staticInitializerNames.map(name=>`${className}.${name}()`);needsCommaExpression?this.tokens.appendCode(`, ${staticInitializerStatements.map(s4=>`${s4}, `).join("")}${className})`):classInfo.staticInitializerNames.length>0&&this.tokens.appendCode(` ${staticInitializerStatements.map(s4=>`${s4};`).join(" ")}`)}processClassBody(classInfo,className){let{headerInfo,constructorInsertPos,constructorInitializerStatements,fields,instanceInitializerNames,rangesToRemove}=classInfo,fieldIndex=0,rangeToRemoveIndex=0,classContextId=this.tokens.currentToken().contextId;if(classContextId==null)throw new Error("Expected non-null context ID on class.");this.tokens.copyExpectedToken(TokenType.braceL),this.isReactHotLoaderTransformEnabled&&this.tokens.appendCode("__reactstandin__regenerateByEval(key, code) {this[key] = eval(code);}");let needsConstructorInit=constructorInitializerStatements.length+instanceInitializerNames.length>0;if(constructorInsertPos===null&&needsConstructorInit){let constructorInitializersCode=this.makeConstructorInitCode(constructorInitializerStatements,instanceInitializerNames,className);if(headerInfo.hasSuperclass){let argsName=this.nameManager.claimFreeName("args");this.tokens.appendCode(`constructor(...${argsName}) { super(...${argsName}); ${constructorInitializersCode}; }`)}else this.tokens.appendCode(`constructor() { ${constructorInitializersCode}; }`)}for(;!this.tokens.matchesContextIdAndLabel(TokenType.braceR,classContextId);)if(fieldIndex<fields.length&&this.tokens.currentIndex()===fields[fieldIndex].start){let needsCloseBrace=!1;for(this.tokens.matches1(TokenType.bracketL)?this.tokens.copyTokenWithPrefix(`${fields[fieldIndex].initializerName}() {this`):this.tokens.matches1(TokenType.string)||this.tokens.matches1(TokenType.num)?(this.tokens.copyTokenWithPrefix(`${fields[fieldIndex].initializerName}() {this[`),needsCloseBrace=!0):this.tokens.copyTokenWithPrefix(`${fields[fieldIndex].initializerName}() {this.`);this.tokens.currentIndex()<fields[fieldIndex].end;)needsCloseBrace&&this.tokens.currentIndex()===fields[fieldIndex].equalsIndex&&this.tokens.appendCode("]"),this.processToken();this.tokens.appendCode("}"),fieldIndex++}else if(rangeToRemoveIndex<rangesToRemove.length&&this.tokens.currentIndex()>=rangesToRemove[rangeToRemoveIndex].start){for(this.tokens.currentIndex()<rangesToRemove[rangeToRemoveIndex].end&&this.tokens.removeInitialToken();this.tokens.currentIndex()<rangesToRemove[rangeToRemoveIndex].end;)this.tokens.removeToken();rangeToRemoveIndex++}else this.tokens.currentIndex()===constructorInsertPos?(this.tokens.copyToken(),needsConstructorInit&&this.tokens.appendCode(`;${this.makeConstructorInitCode(constructorInitializerStatements,instanceInitializerNames,className)};`),this.processToken()):this.processToken();this.tokens.copyExpectedToken(TokenType.braceR)}makeConstructorInitCode(constructorInitializerStatements,instanceInitializerNames,className){return[...constructorInitializerStatements,...instanceInitializerNames.map(name=>`${className}.prototype.${name}.call(this)`)].join(";")}processPossibleArrowParamEnd(){if(this.tokens.matches2(TokenType.parenR,TokenType.colon)&&this.tokens.tokenAtRelativeIndex(1).isType){let nextNonTypeIndex=this.tokens.currentIndex()+1;for(;this.tokens.tokens[nextNonTypeIndex].isType;)nextNonTypeIndex++;if(this.tokens.matches1AtIndex(nextNonTypeIndex,TokenType.arrow)){for(this.tokens.removeInitialToken();this.tokens.currentIndex()<nextNonTypeIndex;)this.tokens.removeToken();return this.tokens.replaceTokenTrimmingLeftWhitespace(") =>"),!0}}return!1}processPossibleAsyncArrowWithTypeParams(){if(!this.tokens.matchesContextual(ContextualKeyword._async)&&!this.tokens.matches1(TokenType._async))return!1;let nextToken2=this.tokens.tokenAtRelativeIndex(1);if(nextToken2.type!==TokenType.lessThan||!nextToken2.isType)return!1;let nextNonTypeIndex=this.tokens.currentIndex()+1;for(;this.tokens.tokens[nextNonTypeIndex].isType;)nextNonTypeIndex++;if(this.tokens.matches1AtIndex(nextNonTypeIndex,TokenType.parenL)){for(this.tokens.replaceToken("async ("),this.tokens.removeInitialToken();this.tokens.currentIndex()<nextNonTypeIndex;)this.tokens.removeToken();return this.tokens.removeToken(),this.processBalancedCode(),this.processToken(),!0}return!1}processPossibleTypeRange(){if(this.tokens.currentToken().isType){for(this.tokens.removeInitialToken();this.tokens.currentToken().isType;)this.tokens.removeToken();return!0}return!1}shiftMappings(mappings,prefixLength){for(let i5=0;i5<mappings.length;i5++){let mapping=mappings[i5];mapping!==void 0&&(mappings[i5]=mapping+prefixLength)}return mappings}};var import_lines_and_columns=__toESM(require_build());function getTSImportedNames(tokens){let importedNames=new Set;for(let i5=0;i5<tokens.tokens.length;i5++)tokens.matches1AtIndex(i5,TokenType._import)&&!tokens.matches3AtIndex(i5,TokenType._import,TokenType.name,TokenType.eq)&&collectNamesForImport(tokens,i5,importedNames);return importedNames}function collectNamesForImport(tokens,index,importedNames){index++,!tokens.matches1AtIndex(index,TokenType.parenL)&&(tokens.matches1AtIndex(index,TokenType.name)&&(importedNames.add(tokens.identifierNameAtIndex(index)),index++,tokens.matches1AtIndex(index,TokenType.comma)&&index++),tokens.matches1AtIndex(index,TokenType.star)&&(index+=2,importedNames.add(tokens.identifierNameAtIndex(index)),index++),tokens.matches1AtIndex(index,TokenType.braceL)&&(index++,collectNamesForNamedImport(tokens,index,importedNames)))}function collectNamesForNamedImport(tokens,index,importedNames){for(;;){if(tokens.matches1AtIndex(index,TokenType.braceR))return;let specifierInfo=getImportExportSpecifierInfo(tokens,index);if(index=specifierInfo.endIndex,specifierInfo.isType||importedNames.add(specifierInfo.rightName),tokens.matches2AtIndex(index,TokenType.comma,TokenType.braceR))return;if(tokens.matches1AtIndex(index,TokenType.braceR))return;if(tokens.matches1AtIndex(index,TokenType.comma))index++;else throw new Error(`Unexpected token: ${JSON.stringify(tokens.tokens[index])}`)}}function transform6(code,options){validateOptions(options);try{let sucraseContext=getSucraseContext(code,options),transformerResult=new RootTransformer(sucraseContext,options.transforms,!!options.enableLegacyBabel5ModuleInterop,options).transform(),result={code:transformerResult.code};if(options.sourceMapOptions){if(!options.filePath)throw new Error("filePath must be specified when generating a source map.");result={...result,sourceMap:computeSourceMap(transformerResult,options.filePath,options.sourceMapOptions,code,sucraseContext.tokenProcessor.tokens)}}return result}catch(e6){throw options.filePath&&(e6.message=`Error transforming ${options.filePath}: ${e6.message}`),e6}}function getSucraseContext(code,options){let isJSXEnabled2=options.transforms.includes("jsx"),isTypeScriptEnabled2=options.transforms.includes("typescript"),isFlowEnabled2=options.transforms.includes("flow"),disableESTransforms=options.disableESTransforms===!0,file=parse4(code,isJSXEnabled2,isTypeScriptEnabled2,isFlowEnabled2),tokens=file.tokens,scopes=file.scopes,nameManager=new NameManager(code,tokens),helperManager=new HelperManager(nameManager),tokenProcessor=new TokenProcessor(code,tokens,isFlowEnabled2,disableESTransforms,helperManager),enableLegacyTypeScriptModuleInterop=!!options.enableLegacyTypeScriptModuleInterop,importProcessor=null;return options.transforms.includes("imports")?(importProcessor=new CJSImportProcessor(nameManager,tokenProcessor,enableLegacyTypeScriptModuleInterop,options,options.transforms.includes("typescript"),!!options.keepUnusedImports,helperManager),importProcessor.preprocessTokens(),identifyShadowedGlobals(tokenProcessor,scopes,importProcessor.getGlobalNames()),options.transforms.includes("typescript")&&!options.keepUnusedImports&&importProcessor.pruneTypeOnlyImports()):options.transforms.includes("typescript")&&!options.keepUnusedImports&&identifyShadowedGlobals(tokenProcessor,scopes,getTSImportedNames(tokenProcessor)),{tokenProcessor,scopes,nameManager,importProcessor,helperManager}}var TS_EXTENSIONS=new Set([".ts",".tsx",".mts",".cts"]),JSX_EXTENSIONS=new Set([".tsx",".jsx",".ts"]),TYPE_STAR_EXPORT_REGEX=/^\s*export\s+type\s+\*\s+(?:as\s+[\w$]+\s+)?from\s+['"][^'"]+['"]\s*;?\s*$/gim,stripTypeStarExports=code=>code.replace(TYPE_STAR_EXPORT_REGEX,""),stripQueryAndHash=filePath=>{let queryIndex=filePath.indexOf("?"),hashIndex=filePath.indexOf("#"),endIndex=filePath.length;return queryIndex!==-1&&hashIndex!==-1?endIndex=Math.min(queryIndex,hashIndex):queryIndex!==-1?endIndex=queryIndex:hashIndex!==-1&&(endIndex=hashIndex),filePath.slice(0,endIndex)},getExtension=filePath=>{let normalizedPath=stripQueryAndHash(filePath),lastDotIndex=normalizedPath.lastIndexOf(".");return lastDotIndex===-1||Math.max(normalizedPath.lastIndexOf("/"),normalizedPath.lastIndexOf("\\"))>lastDotIndex?"":normalizedPath.slice(lastDotIndex).toLowerCase()},getTransformsForFilePath=filePath=>{let extension=getExtension(filePath),transforms=["imports"];return TS_EXTENSIONS.has(extension)&&transforms.unshift("typescript"),JSX_EXTENSIONS.has(extension)&&transforms.push("jsx"),transforms},transformWithSucrase=(code,filePath)=>{let transforms=getTransformsForFilePath(filePath),sanitizedCode=stripTypeStarExports(code),{code:transformedCode}=transform6(sanitizedCode,{filePath,disableESTransforms:!0,production:!0,transforms});return transformedCode};var getImportsFromCode=code=>{let strippedCode=stripComments(code),importRegex=/(?:^|[;\n\r}])\s*import\s*(?:(?:[\w$]+\s*,\s*)?(?:\*\s*as\s+[\w$]+|\{[^}]+\}|[\w$]+)\s*from\s*)?['"]([^'"]+)['"]/gm,imports=[],match2;for(;(match2=importRegex.exec(strippedCode))!==null;){let fullMatch=match2[0];/\bimport\s+type\b/.test(fullMatch)||imports.push(match2[1])}let reExportRegex=/^\s*export\s+(?:type\s+)?(?:\*\s+as\s+[\w$]+|\*|\{[^}]+\})\s+from\s*['"](.+?)['"]/gm,reExportMatch;for(;(reExportMatch=reExportRegex.exec(strippedCode))!==null;){let fullMatch=reExportMatch[0];/^\s*export\s+type\b/.test(fullMatch)||imports.push(reExportMatch[1])}let requireRegex=/\brequire\s*\(\s*['"]([^'"]+)['"]\s*\)/g,requireMatch=requireRegex.exec(strippedCode);for(;requireMatch!==null;)imports.push(requireMatch[1]),requireMatch=requireRegex.exec(strippedCode);return imports};var getTypeExportsFromCode=code=>{let strippedCode=stripComments(code),typeExports=[],exportTypeRegex=/export\s+type\s+(\w+)\s*(?:=|<)/g,match2;for(;(match2=exportTypeRegex.exec(strippedCode))!==null;)typeExports.push(match2[1]);let exportInterfaceRegex=/export\s+interface\s+(\w+)/g;for(;(match2=exportInterfaceRegex.exec(strippedCode))!==null;)typeExports.push(match2[1]);return typeExports};var normalizePackageEntrypoint=entrypoint=>entrypoint.replace(/^\.\//,"");function getBrowserMappedEntrypoint(packageJson){if(!packageJson.browser||typeof packageJson.browser=="string")return null;let entryPoint=packageJson.module||packageJson.main||"index.js",browserEntrypoint=packageJson.browser[entryPoint];if(typeof browserEntrypoint=="string")return browserEntrypoint;let normalizedEntryPoint=normalizePackageEntrypoint(entryPoint),normalizedBrowserEntrypoint=packageJson.browser[`./${normalizedEntryPoint}`]??packageJson.browser[normalizedEntryPoint];return typeof normalizedBrowserEntrypoint=="string"?normalizedBrowserEntrypoint:null}function createContext(modulePath,fsMap,basePath){return{fsMap,extensions:[".js",".jsx",".ts",".tsx",".json"],basePath,modulePath}}function findPackageJson(nodeModulesPath,ctx){let packageJsonPath=`${nodeModulesPath}/package.json`;if(!ctx.fsMap[packageJsonPath])return null;try{return JSON.parse(ctx.fsMap[packageJsonPath])}catch{return null}}function tryResolveWithExtensions(path,ctx){if(ctx.fsMap[path])return path;for(let ext of ctx.extensions){let pathWithExt=path.replace(/\.js$|\.jsx$/,"")+ext;if(ctx.fsMap[pathWithExt])return pathWithExt}return null}function resolveExportPath(nodeModulesPath,exportPath,ctx){let fullExportPath=`${nodeModulesPath}/${exportPath.replace(/^\.\//,"")}`;return tryResolveWithExtensions(fullExportPath,ctx)}function resolveConditionalExport(exportValue){if(typeof exportValue=="string")return exportValue;let conditions=["import","default","require","node","browser"];for(let condition of conditions)if(exportValue[condition]){let conditionValue=exportValue[condition];if(typeof conditionValue=="string")return conditionValue;let resolved=resolveConditionalExport(conditionValue);if(resolved)return resolved}return null}function resolvePackageExports(nodeModulesPath,packageJson,remainingPath,ctx){if(!packageJson.exports)return null;let defaultExport=packageJson.exports["."];if(remainingPath===""&&defaultExport){let exportPath=resolveConditionalExport(defaultExport);if(exportPath){let resolved=resolveExportPath(nodeModulesPath,exportPath,ctx);if(resolved)return resolved}}let subpathExport=remainingPath?packageJson.exports[`./${remainingPath}`]:null;if(subpathExport){let exportPath=resolveConditionalExport(subpathExport);if(exportPath){let resolved=resolveExportPath(nodeModulesPath,exportPath,ctx);if(resolved)return resolved}}let importExport=packageJson.exports.import;if(remainingPath===""&&importExport!==void 0){let exportPath=resolveConditionalExport(importExport);if(exportPath){let resolved=resolveExportPath(nodeModulesPath,exportPath,ctx);if(resolved)return resolved}}return null}function resolvePackageEntryPoint(nodeModulesPath,packageJson,ctx){let entryPoint=normalizePackageEntrypoint(typeof packageJson.browser=="string"&&packageJson.browser||getBrowserMappedEntrypoint(packageJson)||packageJson.module||packageJson.main||"index.js"),fullPath=`${nodeModulesPath}/${entryPoint}`;return tryResolveWithExtensions(fullPath,ctx)}function resolveRemainingPath(nodeModulesPath,remainingPath,ctx){if(!remainingPath){for(let ext of ctx.extensions){let indexPath=`${nodeModulesPath}/index${ext}`;if(ctx.fsMap[indexPath])return indexPath}return null}let fullPath=`${nodeModulesPath}/${remainingPath}`,directMatch=tryResolveWithExtensions(fullPath,ctx);if(directMatch)return directMatch;for(let ext of ctx.extensions){let indexPath=`${fullPath}/index${ext}`;if(ctx.fsMap[indexPath])return indexPath}return null}function resolveNodeModuleInPath(searchPath,ctx){let moduleParts=ctx.modulePath.split("/"),scope=moduleParts[0].startsWith("@")?moduleParts.slice(0,2).join("/"):moduleParts[0],remainingPath=moduleParts.slice(scope.includes("/")?2:1).join("/"),nodeModulesPath=`${searchPath==="."?"":`${searchPath}/`}node_modules/${scope}`,packageJson=findPackageJson(nodeModulesPath,ctx);if(packageJson){let exportsResolution=resolvePackageExports(nodeModulesPath,packageJson,remainingPath,ctx);if(exportsResolution)return exportsResolution;let entryPointResolution=resolvePackageEntryPoint(nodeModulesPath,packageJson,ctx);if(entryPointResolution)return entryPointResolution}let remainingPathResolution=resolveRemainingPath(nodeModulesPath,remainingPath,ctx);if(remainingPathResolution)return remainingPathResolution;let parentPath=dirname(searchPath);return parentPath&&parentPath!==searchPath?resolveNodeModuleInPath(parentPath,ctx):null}function resolveNodeModule(modulePath,fsMap,basePath){let ctx=createContext(modulePath,fsMap,basePath);return resolveNodeModuleInPath(ctx.basePath,ctx)}var hasPreSuppliedImport=(preSuppliedImports,importName)=>Object.prototype.hasOwnProperty.call(preSuppliedImports,importName);function evalCompiledJs(compiledCode,preSuppliedImports,cwd){globalThis.__tscircuit_require=name=>{let resolvedFilePath=resolveFilePath(name,preSuppliedImports,cwd);!resolvedFilePath&&!name.startsWith(".")&&!name.startsWith("/")&&(resolvedFilePath=resolveNodeModule(name,preSuppliedImports,cwd||""));let hasResolvedFilePath=resolvedFilePath&&hasPreSuppliedImport(preSuppliedImports,resolvedFilePath);if(!hasPreSuppliedImport(preSuppliedImports,name)&&!hasResolvedFilePath)throw new Error(`Import "${name}" not found ${cwd?`in "${cwd}"`:""}`);let mod=hasPreSuppliedImport(preSuppliedImports,name)?preSuppliedImports[name]:preSuppliedImports[resolvedFilePath];if(mod.__esModule&&mod.default!==void 0){let modKeys=Object.keys(mod);if(modKeys.length===2&&modKeys.includes("__esModule")&&modKeys.includes("default"))return mod.default}if(mod.default&&typeof mod.default=="function"){let callableWrapper=(...args)=>mod.default(...args);return Object.assign(callableWrapper,mod),callableWrapper.__esModule=!0,callableWrapper}return new Proxy(mod,{get(target,prop){if(!(prop in target)){if(prop==="default")return target.default!==void 0?target.default:target.__esModule?void 0:typeof target=="function"||typeof target=="object"?target:void 0;if(prop==="__esModule")return!0;if(prop==="__typeOnlyExports__")return target.__typeOnlyExports__||[];let typeExports=target.__typeOnlyExports__||[],propName=String(prop);throw typeExports.includes(propName)?new Error(`"${propName}" is a type exported by "${name}" and cannot be imported as a value.
|
|
943
|
+
Use "export type { ${propName} }" instead of "export { ${propName} }"`):new Error(`"${propName}" is not exported by "${name}".
|
|
944
|
+
If "${propName}" is a type, use "export type { ${propName} }" instead of "export { ${propName} }"`)}return target[prop]}})};let functionBody=`
|
|
945
|
+
var exports = {};
|
|
946
|
+
var require = globalThis.__tscircuit_require;
|
|
947
|
+
var module = { exports };
|
|
948
|
+
var circuit = globalThis.__tscircuit_circuit;
|
|
949
|
+
${compiledCode};
|
|
950
|
+
return module;`.trim();return Function(functionBody).call(globalThis)}var debug13=(0,import_debug22.default)("tsci:eval:import-local-file"),getFileExtension2=fsPath=>{let ext=fsPath.split(".").pop();return ext?ext.toLowerCase():""},getStaticFileLoader=(platform,fsPath)=>{let ext=getFileExtension2(fsPath);if(ext)return platform?.staticFileLoaderMap?.[ext]??platform?.staticFileLoaderMap?.[`.${ext}`]},normalizeStaticFileLoaderResult=result=>result&&typeof result=="object"&&result.__esModule?result:{__esModule:!0,default:result},resolveStaticFileLoaderInput=async(fileContent,fsPath,platform)=>{let isStaticAssetMarker=fileContent==="__STATIC_ASSET__",isBlobUrl=fileContent.startsWith("blob:");if(!isStaticAssetMarker&&!isBlobUrl)return fileContent;let assetUrl=fileContent;if(isStaticAssetMarker){let projectBaseUrl=platform?.projectBaseUrl?.replace(/\/$/,"");if(!projectBaseUrl)return fileContent;let normalizedPath=fsPath.startsWith("./")?fsPath.slice(2):fsPath;assetUrl=`${projectBaseUrl}/${normalizedPath}`}let response=await(platform?.platformFetch??globalThis.fetch)(assetUrl);if(!response.ok)throw new Error(`Failed to fetch static file content from "${assetUrl}" (HTTP ${response.status})`);return response.arrayBuffer()},importLocalFile=async(importName,ctx,depth=0)=>{debug13("importLocalFile called with:",{importName});let{fsMap,preSuppliedImports,importStack,currentlyImporting}=ctx,fsPath=resolveFilePathOrThrow(importName,fsMap,void 0,{tsConfig:ctx.tsConfig});if(debug13("fsPath:",fsPath),currentlyImporting.has(fsPath)){let cycleStartIndex=importStack.indexOf(fsPath),cyclePath=cycleStartIndex>=0?importStack.slice(cycleStartIndex).concat(fsPath):[...importStack,fsPath];throw new Error(`Circular dependency detected while importing "${fsPath}". The following import chain forms a cycle:
|
|
951
951
|
|
|
952
|
-
${cyclePath.join(" -> ")}`)}if(!ctx.fsMap[fsPath])throw debug13("fsPath not found in fsMap:",fsPath),new Error(`File "${fsPath}" not found`);let fileContent=fsMap[fsPath];debug13("fileContent:",fileContent?.slice(0,100)),currentlyImporting.add(fsPath),importStack.push(fsPath);try{let staticFileLoader=getStaticFileLoader(ctx.circuit.platform,fsPath);if(staticFileLoader)try{preSuppliedImports[fsPath]=normalizeStaticFileLoaderResult(await staticFileLoader(
|
|
952
|
+
${cyclePath.join(" -> ")}`)}if(!ctx.fsMap[fsPath])throw debug13("fsPath not found in fsMap:",fsPath),new Error(`File "${fsPath}" not found`);let fileContent=fsMap[fsPath];debug13("fileContent:",fileContent?.slice(0,100)),currentlyImporting.add(fsPath),importStack.push(fsPath);try{let staticFileLoader=getStaticFileLoader(ctx.circuit.platform,fsPath);if(staticFileLoader)try{let loaderInput=await resolveStaticFileLoaderInput(fileContent,fsPath,ctx.circuit.platform);preSuppliedImports[fsPath]=normalizeStaticFileLoaderResult(await staticFileLoader(loaderInput))}catch(error2){let ext=getFileExtension2(fsPath);throw new Error(`Failed to load static file "${fsPath}" with platformConfig.staticFileLoaderMap["${ext}"]: ${error2.message}`)}else if(fsPath.endsWith(".json")){let jsonData=JSON.parse(fileContent);preSuppliedImports[fsPath]={__esModule:!0,default:jsonData}}else if(isStaticAssetPath2(fsPath)){let staticUrl;if(fileContent==="__STATIC_ASSET__")staticUrl=`${ctx.circuit.platform?.projectBaseUrl??""}/${fsPath.startsWith("./")?fsPath.slice(2):fsPath}`;else if(fileContent.startsWith("blob:"))staticUrl=`${fileContent}#ext=${fsPath.split(".").pop()}`;else{let blob=new Blob([fileContent],{type:fsPath.endsWith(".kicad_mod")?"text/plain":"application/octet-stream"}),ext=fsPath.split(".").pop()?.toLowerCase(),isStepFile=ext==="step"||ext==="stp",blobUrl=URL.createObjectURL(blob);staticUrl=isStepFile?`${blobUrl}#ext=${ext}`:blobUrl}preSuppliedImports[fsPath]={__esModule:!0,default:staticUrl}}else if(fsPath.endsWith(".tsx")||fsPath.endsWith(".ts")){let importNames=getImportsFromCode(fileContent);for(let importName2 of importNames)hasPreSuppliedImport(preSuppliedImports,importName2)||await importEvalPath(importName2,ctx,depth+1,{cwd:dirname(fsPath)});try{let transformedCode=transformWithSucrase(fileContent,fsPath);debug13("evalCompiledJs called with:",{code:transformedCode.slice(0,100),dirname:dirname(fsPath)});let typeExports=getTypeExportsFromCode(fileContent),importRunResult=evalCompiledJs(transformedCode,preSuppliedImports,dirname(fsPath));debug13("importRunResult:",{fsPath,importRunResult});let moduleExports=importRunResult.exports;typeExports.length>0&&(moduleExports.__typeOnlyExports__=typeExports),preSuppliedImports[fsPath]=moduleExports}catch(error2){throw new Error(`Eval compiled js error for "${importName}": ${error2.message}`)}}else if(fsPath.endsWith(".js")||fsPath.endsWith(".mjs")){let importNames=getImportsFromCode(fileContent);for(let importName2 of importNames)hasPreSuppliedImport(preSuppliedImports,importName2)||await importEvalPath(importName2,ctx,depth+1,{cwd:dirname(fsPath)});preSuppliedImports[fsPath]=evalCompiledJs(transformWithSucrase(fileContent,fsPath),preSuppliedImports,dirname(fsPath)).exports}else throw new Error(`Unsupported file extension "${fsPath.split(".").pop()}" for "${fsPath}"`)}finally{importStack.pop(),currentlyImporting.delete(fsPath)}};async function importSnippet(importName,ctx,depth=0){let{preSuppliedImports}=ctx,fullSnippetName=importName.replace("@tsci/","").replace(".","/"),fetchOptions={};ctx.tscircuitSessionToken&&(fetchOptions.headers={Authorization:`Bearer ${ctx.tscircuitSessionToken}`});let{cjs,error:error2}=await globalThis.fetch(`${ctx.cjsRegistryUrl}/${fullSnippetName}`,fetchOptions).then(async res2=>({cjs:await res2.text(),error:null})).catch(e6=>({error:e6,cjs:null}));if(error2){console.error("Error fetching import",importName,error2);return}if(cjs?.startsWith("{"))try{let jsonResponse=JSON.parse(cjs);if(jsonResponse.ok===!1&&jsonResponse.error)throw new Error(`"${importName}" has no files in dist, it may not be built`)}catch(e6){throw e6 instanceof Error&&e6.message.includes("has no files in dist")?e6:new Error(`Error parsing cjs response: ${e6}`)}let importNames=getImportsFromCode(cjs),staticAssetImports=[],otherImports=[];for(let subImportName of importNames)if(!hasPreSuppliedImport(preSuppliedImports,subImportName))if(subImportName.startsWith("./")&&isStaticAssetPath2(subImportName)){let assetPath=subImportName.slice(2),assetUrl=`${ctx.cjsRegistryUrl}/${importName}/${assetPath}`;staticAssetImports.push({subImportName,assetUrl})}else otherImports.push(subImportName);await Promise.all(staticAssetImports.map(async({subImportName,assetUrl})=>{try{let response=await globalThis.fetch(assetUrl,fetchOptions);if(!response.ok)throw new Error(`Failed to fetch asset: ${response.statusText}`);let blob=await response.blob(),extension=subImportName.split(".").pop()||"",blobUrl=`${URL.createObjectURL(blob)}#ext=${extension}`;preSuppliedImports[subImportName]={__esModule:!0,default:blobUrl}}catch(e6){console.error(`Error fetching static asset ${assetUrl}:`,e6),preSuppliedImports[subImportName]={__esModule:!0,default:assetUrl}}}));for(let subImportName of otherImports)hasPreSuppliedImport(preSuppliedImports,subImportName)||await importEvalPath(subImportName,ctx,depth+1);try{preSuppliedImports[importName]=evalCompiledJs(cjs,preSuppliedImports).exports}catch(e6){console.error("Error importing snippet",e6)}}var import_debug23=__toESM(require_browser(),1);function extractBasePackageName(importName){let basePackageName=importName;if(importName.startsWith("@")){let parts=importName.split("/");basePackageName=parts.length>=2?`${parts[0]}/${parts[1]}`:importName}else basePackageName=importName.split("/")[0];return basePackageName}function getNodeModulePackageRoot(cwd){if(!cwd)return null;let nodeModulesMarker="node_modules/",nodeModulesIndex=cwd.lastIndexOf(nodeModulesMarker);if(nodeModulesIndex===-1)return null;let packagePrefix=cwd.slice(0,nodeModulesIndex+nodeModulesMarker.length),packagePathParts=cwd.slice(nodeModulesIndex+nodeModulesMarker.length).split("/"),packageName=packagePathParts[0]?.startsWith("@")?packagePathParts.slice(0,2).join("/"):packagePathParts[0];return packageName?`${packagePrefix}${packageName}`:null}function isPackageDeclaredInManifest(packageName,packageJsonContent){if(!packageJsonContent)return null;try{let packageJson=JSON.parse(packageJsonContent),dependencies=packageJson.dependencies||{},devDependencies=packageJson.devDependencies||{},peerDependencies=packageJson.peerDependencies||{},basePackageName=extractBasePackageName(packageName);return basePackageName in dependencies||basePackageName in devDependencies||basePackageName in peerDependencies}catch{return!0}}function isPackageDeclaredInPackageJson(packageName,fsMap,opts={}){let packageRoot=getNodeModulePackageRoot(opts.cwd),packageManifestResult=packageRoot?isPackageDeclaredInManifest(packageName,fsMap[`${packageRoot}/package.json`]):null;if(packageManifestResult)return!0;let rootManifestResult=isPackageDeclaredInManifest(packageName,fsMap["package.json"]);return rootManifestResult===null&&packageManifestResult===null?!0:rootManifestResult===!0}function getNodeModuleDirectory(packageName,fsMap){let nodeModulePath=`node_modules/${extractBasePackageName(packageName)}`;return Object.keys(fsMap).some(path=>path.startsWith(nodeModulePath+"/")||path===nodeModulePath)?nodeModulePath:null}function getPackageJsonEntrypoint(packageName,fsMap){let packageJsonPath=`node_modules/${extractBasePackageName(packageName)}/package.json`,packageJsonContent=fsMap[packageJsonPath];if(!packageJsonContent)return null;try{let packageJson=JSON.parse(packageJsonContent);if(packageJson.browser&&typeof packageJson.browser=="object"){let entrypoint=packageJson.module||packageJson.main,normalizedEntrypoint=entrypoint?.replace(/^\.\//,""),browserEntrypoint=packageJson.browser[entrypoint]||packageJson.browser[`./${normalizedEntrypoint}`]||packageJson.browser[normalizedEntrypoint];if(typeof browserEntrypoint=="string")return browserEntrypoint}return typeof packageJson.browser=="string"&&packageJson.browser||packageJson.module||packageJson.main||null}catch{return null}}function isDistDirEmpty(packageName,fsMap){let distPath=`node_modules/${extractBasePackageName(packageName)}/dist`;return!Object.keys(fsMap).some(path=>path.startsWith(distPath+"/"))}var moduleExtensions=[".js",".jsx",".ts",".tsx",".json"],resolveEntrypointPath=(packageName,entrypoint,fsMap)=>{let basePackageName=extractBasePackageName(packageName),normalizedEntrypoint=normalizePackageEntrypoint(entrypoint),entrypointPath=`node_modules/${basePackageName}/${normalizedEntrypoint}`;if(fsMap[entrypointPath])return entrypointPath;for(let ext of moduleExtensions){let pathWithExt=entrypointPath.replace(/\.js$|\.jsx$/,"")+ext;if(fsMap[pathWithExt])return pathWithExt}return null};var debug14=(0,import_debug23.default)("tsci:eval:import-node-module"),importNodeModule=async(importName,ctx,depth=0,opts={})=>{let{preSuppliedImports,fsMap}=ctx;if(hasPreSuppliedImport(preSuppliedImports,importName))return;let hasPackageJson=!!fsMap["package.json"];if(hasPackageJson&&!isPackageDeclaredInPackageJson(importName,fsMap,opts))throw new Error(`Node module imported but not in package.json "${importName}"
|
|
953
953
|
|
|
954
954
|
${ctx.logger.stringifyLogs()}`);let nodeModuleDir=hasPackageJson?getNodeModuleDirectory(importName,fsMap):null,resolvedNodeModulePath=resolveNodeModule(importName,ctx.fsMap,opts.cwd||"");if(hasPackageJson&&resolvedNodeModulePath){if(!nodeModuleDir)throw new Error(`Node module "${importName}" has no files in the node_modules directory
|
|
955
955
|
|