dxf-json 0.0.41 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bundle.cjs CHANGED
@@ -1 +1,3 @@
1
- "use strict";var e,a,r,n,t,o,s,c,i,d,l,p,u,m,I,E,f,b,D,O,T,h,N,g,A,L,S,_,y,M,R,P,v,C,k,F,x,w,V,B,U,G,H,Y,W,j,X,K,z,Z,J,q,Q,$,ee,ea,er,en,et,eo,es,ec,ei,ed,el,ep,eu,em,eI,eE,ef,eb,eD,eO,eT,eh,eN,eg,eA,eL,eS,e_,ey,eM,eR,eP,ev,eC,ek,eF,ex,ew,eV,eB,eU,eG,eH,eY,eW,ej,eX=require("@fxts/core");function eK(e,a,r){return e.code===a&&(null==r||e.value===r)}let ez=0;function eZ(e){if(!e)throw TypeError("entity cannot be undefined or null");e.handle||(e.handle=ez++)}function eJ(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class eq{next(){if(!this.hasNext())return this._eof?console.warn("Cannot call 'next' after EOF group has been read"):console.warn("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer]),{code:0,value:"EOF"};let e=parseInt(this._data[this._pointer++],10),a=eQ(e,this._data[this._pointer++]),r={code:e,value:a};return eK(r,0,"EOF")&&(this._eof=!0),this.lastReadGroup=r,r}peek(){if(!this.hasNext()){if(this._eof)throw Error("Cannot call 'next' after EOF group has been read");throw Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer])}let e={code:parseInt(this._data[this._pointer]),value:0};return e.value=eQ(e.code,this._data[this._pointer+1]),e}rewind(e){e=e||1,this._pointer=this._pointer-2*e}hasNext(){return!this._eof&&!(this._pointer>this._data.length-2)}isEOF(){return this._eof}constructor(e){eJ(this,"_pointer",void 0),eJ(this,"_data",void 0),eJ(this,"_eof",void 0),eJ(this,"lastReadGroup",{code:0,value:0}),this._pointer=0,this._data=e,this._eof=!1}}function eQ(e,a){return e<=9?a:e>=10&&e<=59?parseFloat(a.trim()):e>=60&&e<=99?parseInt(a.trim()):e>=100&&e<=109?a:e>=110&&e<=149?parseFloat(a.trim()):e>=160&&e<=179?parseInt(a.trim()):e>=210&&e<=239?parseFloat(a.trim()):e>=270&&e<=289?parseInt(a.trim()):e>=290&&e<=299?function(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}(a.trim()):e>=300&&e<=369?a:e>=370&&e<=389?parseInt(a.trim()):e>=390&&e<=399?a:e>=400&&e<=409?parseInt(a.trim()):e>=410&&e<=419?a:e>=420&&e<=429?parseInt(a.trim()):e>=430&&e<=439?a:e>=440&&e<=459?parseInt(a.trim()):e>=460&&e<=469?parseFloat(a.trim()):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?a:e>=1010&&e<=1059?parseFloat(a.trim()):e>=1060&&e<=1071?parseInt(a.trim()):(console.log("WARNING: Group code does not have a defined type: %j",{code:e,value:a}),a)}function e$(e){let a={};e.rewind();let r=e.next(),n=r.code;if(a.x=r.value,(r=e.next()).code!==n+10)throw Error("Expected code for point value to be 20 but got "+r.code+".");return(a.y=r.value,(r=e.next()).code!==n+20)?e.rewind():a.z=r.value,a}const e0=Symbol();function e1(e,a){return(r,n,t)=>{let o=e.reduce((e,a)=>{a.pushContext&&e.push({});let r=e[e.length-1];for(let e of"number"==typeof a.code?[a.code]:a.code){let n=r[e]??(r[e]=[]);a.isMultiple&&n.length&&console.warn(`Snippet ${n.at(-1).name} for code(${e}) is shadowed by ${a.name}`),n.push(a)}return e},[{}]),s=!1,c=o.length-1;for(;!eK(r,0,"EOF");){let e=function(e,a,r){return e.find((e,n)=>n>=r&&e[a]?.length)}(o,r.code,c),a=e?.[r.code].at(-1);if(!e||!a){n.rewind();break}a.isMultiple||e[r.code].pop();let{name:i,parser:d,isMultiple:l}=a,p=d?.(r,n,t);if(p===e0){n.rewind();break}if(i){let[e,a]=function(e,a){let r=a.split("."),n=e;for(let e=0;e<r.length-1;++e){let a=r[e];Object.hasOwn(n,a)||(n[a]={}),n=n[a]}return[n,r.at(-1)]}(t,i);l?(Object.hasOwn(e,a)||(e[a]=[]),e[a].push(p)):e[a]=p}a.pushContext&&(c-=1),s=!0,r=n.next()}return a&&Object.setPrototypeOf(t,a),s}}function e4({value:e}){return e}function e2(e,a){return e$(a)}function e3({value:e}){return!!e}const e7=[{code:100,name:"subclassMarker",parser:e4},{code:330,name:"ownerObjectId",parser:e4},{code:102,parser(e,a){for(;!eK(e,0,"EOF")&&!eK(e,102,"}");)e=a.next()}},{code:5,name:"handle",parser:e4}],e5=e1([{code:310,name:"bmpPreview",parser:e4},{code:281,name:"scalability",parser:e4},{code:280,name:"explodability",parser:e4},{code:70,name:"insertionUnits",parser:e4},{code:340,name:"layoutObjects",parser:e4},{code:2,name:"name",parser:e4},{code:100,name:"subclassMarker",parser:e4},...e7]);(e=$||($={}))[e.BYBLOCK=0]="BYBLOCK",e[e.BYLAYER=256]="BYLAYER",(a=ee||(ee={}))[a.Rotated=0]="Rotated",a[a.Aligned=1]="Aligned",a[a.Angular=2]="Angular",a[a.Diameter=3]="Diameter",a[a.Radius=4]="Radius",a[a.Angular3Point=5]="Angular3Point",a[a.Ordinate=6]="Ordinate",a[a.ReferenceIsExclusive=32]="ReferenceIsExclusive",a[a.IsOrdinateXTypeFlag=64]="IsOrdinateXTypeFlag",a[a.IsCustomTextPositionFlag=128]="IsCustomTextPositionFlag",(r=ea||(ea={}))[r.TopLeft=1]="TopLeft",r[r.TopCenter=2]="TopCenter",r[r.TopRight=3]="TopRight",r[r.MiddleLeft=4]="MiddleLeft",r[r.MiddleCenter=5]="MiddleCenter",r[r.MiddleRight=6]="MiddleRight",r[r.BottomLeft=7]="BottomLeft",r[r.BottomCenter=8]="BottomCenter",r[r.BottomRight=9]="BottomRight",(n=er||(er={}))[n.AtLeast=1]="AtLeast",n[n.Exact=2]="Exact",(t=en||(en={}))[t.Center=0]="Center",t[t.Above=1]="Above",t[t.Outside=2]="Outside",t[t.JIS=3]="JIS",t[t.Below=4]="Below",(o=et||(et={}))[o.Feet=0]="Feet",o[o.None=1]="None",o[o.Inch=2]="Inch",o[o.FeetAndInch=3]="FeetAndInch",o[o.Leading=4]="Leading",o[o.Trailing=8]="Trailing",o[o.LeadingAndTrailing=12]="LeadingAndTrailing",(s=eo||(eo={}))[s.None=0]="None",s[s.Leading=1]="Leading",s[s.Trailing=2]="Trailing",s[s.LeadingAndTrailing=3]="LeadingAndTrailing",(c=es||(es={}))[c.Center=0]="Center",c[c.Left=1]="Left",c[c.Right=2]="Right",c[c.OverFirst=3]="OverFirst",c[c.OverSecond=4]="OverSecond",(i=ec||(ec={}))[i.Bottom=0]="Bottom",i[i.Center=1]="Center",i[i.Top=2]="Top",(d=ei||(ei={}))[d.PatternFill=0]="PatternFill",d[d.SolidFill=1]="SolidFill",(l=ed||(ed={}))[l.NonAssociative=0]="NonAssociative",l[l.Associative=1]="Associative",(p=el||(el={}))[p.Normal=0]="Normal",p[p.Outer=1]="Outer",p[p.Ignore=2]="Ignore",(u=ep||(ep={}))[u.UserDefined=0]="UserDefined",u[u.Predefined=1]="Predefined",u[u.Custom=2]="Custom",(m=eu||(eu={}))[m.NotAnnotated=0]="NotAnnotated",m[m.Annotated=1]="Annotated",(I=em||(em={}))[I.Solid=0]="Solid",I[I.Gradient=1]="Gradient",(E=eI||(eI={}))[E.TwoColor=0]="TwoColor",E[E.OneColor=1]="OneColor",(f=eE||(eE={}))[f.Default=0]="Default",f[f.External=1]="External",f[f.Polyline=2]="Polyline",f[f.Derived=4]="Derived",f[f.Textbox=8]="Textbox",f[f.Outermost=16]="Outermost",(b=ef||(ef={}))[b.Line=1]="Line",b[b.Circular=2]="Circular",b[b.Elliptic=3]="Elliptic",b[b.Spline=4]="Spline",(D=eb||(eb={}))[D.English=0]="English",D[D.Metric=1]="Metric",(O=eD||(eD={}))[O.Off=0]="Off",O[O.Solid=1]="Solid",O[O.Dashed=2]="Dashed",O[O.Dotted=3]="Dotted",O[O.ShotDash=4]="ShotDash",O[O.MediumDash=5]="MediumDash",O[O.LongDash=6]="LongDash",O[O.DoubleShortDash=7]="DoubleShortDash",O[O.DoubleMediumDash=8]="DoubleMediumDash",O[O.DoubleLongDash=9]="DoubleLongDash",O[O.DoubleMediumLongDash=10]="DoubleMediumLongDash",O[O.SparseDot=11]="SparseDot",(T=eO||(eO={}))[T.Standard=-3]="Standard",T[T.ByLayer=-2]="ByLayer",T[T.ByBlock=-1]="ByBlock",(h=eT||(eT={}))[h.PERSPECTIVE_MODE=1]="PERSPECTIVE_MODE",h[h.FRONT_CLIPPING=2]="FRONT_CLIPPING",h[h.BACK_CLIPPING=4]="BACK_CLIPPING",h[h.UCS_FOLLOW=8]="UCS_FOLLOW",h[h.FRONT_CLIP_NOT_AT_EYE=16]="FRONT_CLIP_NOT_AT_EYE",h[h.UCS_ICON_VISIBILITY=32]="UCS_ICON_VISIBILITY",h[h.UCS_ICON_AT_ORIGIN=64]="UCS_ICON_AT_ORIGIN",h[h.FAST_ZOOM=128]="FAST_ZOOM",h[h.SNAP_MODE=256]="SNAP_MODE",h[h.GRID_MODE=512]="GRID_MODE",h[h.ISOMETRIC_SNAP_STYLE=1024]="ISOMETRIC_SNAP_STYLE",h[h.HIDE_PLOT_MODE=2048]="HIDE_PLOT_MODE",h[h.K_ISO_PAIR_TOP=4096]="K_ISO_PAIR_TOP",h[h.K_ISO_PAIR_RIGHT=8192]="K_ISO_PAIR_RIGHT",h[h.VIEWPORT_ZOOM_LOCKING=16384]="VIEWPORT_ZOOM_LOCKING",h[h.UNUSED=32768]="UNUSED",h[h.NON_RECTANGULAR_CLIPPING=65536]="NON_RECTANGULAR_CLIPPING",h[h.VIEWPORT_OFF=131072]="VIEWPORT_OFF",h[h.GRID_BEYOND_DRAWING_LIMITS=262144]="GRID_BEYOND_DRAWING_LIMITS",h[h.ADAPTIVE_GRID_DISPLAY=524288]="ADAPTIVE_GRID_DISPLAY",h[h.SUBDIVISION_BELOW_SPACING=1048576]="SUBDIVISION_BELOW_SPACING",h[h.GRID_FOLLOWS_WORKPLANE=2097152]="GRID_FOLLOWS_WORKPLANE",(N=eh||(eh={}))[N.OPTIMIZED_2D=0]="OPTIMIZED_2D",N[N.WIREFRAME=1]="WIREFRAME",N[N.HIDDEN_LINE=2]="HIDDEN_LINE",N[N.FLAT_SHADED=3]="FLAT_SHADED",N[N.GOURAUD_SHADED=4]="GOURAUD_SHADED",N[N.FLAT_SHADED_WITH_WIREFRAME=5]="FLAT_SHADED_WITH_WIREFRAME",N[N.GOURAUD_SHADED_WITH_WIREFRAME=6]="GOURAUD_SHADED_WITH_WIREFRAME",(g=eN||(eN={}))[g.UCS_UNCHANGED=0]="UCS_UNCHANGED",g[g.HAS_OWN_UCS=1]="HAS_OWN_UCS",(A=eg||(eg={}))[A.NON_ORTHOGRAPHIC=0]="NON_ORTHOGRAPHIC",A[A.TOP=1]="TOP",A[A.BOTTOM=2]="BOTTOM",A[A.FRONT=3]="FRONT",A[A.BACK=4]="BACK",A[A.LEFT=5]="LEFT",A[A.RIGHT=6]="RIGHT",(L=eA||(eA={}))[L.AS_DISPLAYED=0]="AS_DISPLAYED",L[L.WIREFRAME=1]="WIREFRAME",L[L.HIDDEN=2]="HIDDEN",L[L.RENDERED=3]="RENDERED",(S=eL||(eL={}))[S.ONE_DISTANT_LIGHT=0]="ONE_DISTANT_LIGHT",S[S.TWO_DISTANT_LIGHTS=1]="TWO_DISTANT_LIGHTS";const e6=e1([...[{name:"DIMPOST",code:3},{name:"DIMAPOST",code:4},{name:"DIMBLK_OBSOLETE",code:5},{name:"DIMBLK1_OBSOLETE",code:6},{name:"DIMBLK2_OBSOLETE",code:7},{name:"DIMSCALE",code:40,defaultValue:1},{name:"DIMASZ",code:41,defaultValue:.25},{name:"DIMEXO",code:42,defaultValue:.625,defaultValueImperial:.0625},{name:"DIMDLI",code:43,defaultValue:3.75,defaultValueImperial:.38},{name:"DIMEXE",code:44,defaultValue:2.25,defaultValueImperial:.28},{name:"DIMRND",code:45,defaultValue:0},{name:"DIMDLE",code:46,defaultValue:0},{name:"DIMTP",code:47,defaultValue:0},{name:"DIMTM",code:48,defaultValue:0},{name:"DIMTXT",code:140,defaultValue:2.5,defaultValueImperial:.28},{name:"DIMCEN",code:141,defaultValue:2.5,defaultValueImperial:.09},{name:"DIMTSZ",code:142,defaultValue:0},{name:"DIMALTF",code:143,defaultValue:25.4},{name:"DIMLFAC",code:144,defaultValue:1},{name:"DIMTVP",code:145,defaultValue:0},{name:"DIMTFAC",code:146,defaultValue:1},{name:"DIMGAP",code:147,defaultValue:.625,defaultValueImperial:.09},{name:"DIMALTRND",code:148,defaultValue:0},{name:"DIMTOL",code:71,defaultValue:0,defaultValueImperial:1},{name:"DIMLIM",code:72,defaultValue:0},{name:"DIMTIH",code:73,defaultValue:0,defaultValueImperial:1},{name:"DIMTOH",code:74,defaultValue:0,defaultValueImperial:1},{name:"DIMSE1",code:75,defaultValue:0},{name:"DIMSE2",code:76,defaultValue:0},{name:"DIMTAD",code:77,defaultValue:en.Above,defaultValueImperial:en.Center},{name:"DIMZIN",code:78,defaultValue:et.Trailing,defaultValueImperial:et.Feet},{name:"DIMAZIN",code:79,defaultValue:eo.None},{name:"DIMALT",code:170,defaultValue:0},{name:"DIMALTD",code:171,defaultValue:3,defaultValueImperial:2},{name:"DIMTOFL",code:172,defaultValue:1,defaultValueImperial:0},{name:"DIMSAH",code:173,defaultValue:0},{name:"DIMTIX",code:174,defaultValue:0},{name:"DIMSOXD",code:175,defaultValue:0},{name:"DIMCLRD",code:176,defaultValue:0},{name:"DIMCLRE",code:177,defaultValue:0},{name:"DIMCLRT",code:178,defaultValue:0},{name:"DIMADEC",code:179},{name:"DIMUNIT",code:270},{name:"DIMDEC",code:271,defaultValue:2,defaultValueImperial:4},{name:"DIMTDEC",code:272,defaultValue:2,defaultValueImperial:4},{name:"DIMALTU",code:273,defaultValue:2},{name:"DIMALTTD",code:274,defaultValue:2,defaultValueImperial:4},{name:"DIMAUNIT",code:275,defaultValue:0},{name:"DIMFRAC",code:276,defaultValue:0},{name:"DIMLUNIT",code:277,defaultValue:2},{name:"DIMDSEP",code:278,defaultValue:",",defaultValueImperial:"."},{name:"DIMJUST",code:280,defaultValue:es.Center},{name:"DIMSD1",code:281,defaultValue:0},{name:"DIMSD2",code:282,defaultValue:0},{name:"DIMTOLJ",code:283,defaultValue:ec.Center},{name:"DIMTZIN",code:284,defaultValue:et.Trailing,defaultValueImperial:et.Feet},{name:"DIMALTZ",code:285,defaultValue:et.Trailing},{name:"DIMALTTZ",code:286,defaultValue:et.Trailing},{name:"DIMFIT",code:287},{name:"DIMUPT",code:288,defaultValue:0},{name:"DIMATFIT",code:289,defaultValue:3},{name:"DIMTXSTY",code:340},{name:"DIMLDRBLK",code:341},{name:"DIMBLK",code:342},{name:"DIMBLK1",code:343},{name:"DIMBLK2",code:344},{name:"DIMLWD",code:371,defaultValue:-2},{name:"DIMLWD",code:372,defaultValue:-2}].map(e=>({...e,parser:e4})),{code:70,name:"standardFlag",parser:e4},{code:2,name:"name",parser:e4},{code:100,name:"subclassMarker",parser:e4},{code:105,name:"handle",parser:e4},...e7.filter(e=>5!==e.code)]),e9=e1([{code:347,name:"materialObjectId",parser:e4},{code:390,name:"plotStyleNameObjectId",parser:e4},{code:370,name:"lineweight",parser:e4},{code:290,name:"isPlotting",parser:e3},{code:6,name:"lineType",parser:e4},{code:62,name:"colorIndex",parser:e4},{code:70,name:"standardFlag",parser:e4},{code:2,name:"name",parser:e4},{code:100,name:"subclassMarker",parser:e4},...e7]),e8=e1([{code:9,name:"text",parser:e4},{code:45,name:"offsetY",parser:e4},{code:44,name:"offsetX",parser:e4},{code:50,name:"rotation",parser:e4},{code:46,name:"scale",parser:e4},{code:340,name:"styleObjectId",parser:e4},{code:75,name:"shapeNumber",parser:e4},{code:74,name:"elementTypeFlag",parser:e4},{code:49,name:"elementLength",parser:e4}],{elementTypeFlag:0,elementLength:0}),ae={BLOCK_RECORD:e5,DIMSTYLE:e6,LAYER:e9,LTYPE:e1([{code:49,name:"pattern",parser(e,a){let r={};return e8(e,a,r),r},isMultiple:!0},{code:40,name:"totalPatternLength",parser:e4},{code:73,name:"numberOfLineTypes",parser:e4},{code:72,parser:e4},{code:3,name:"description",parser:e4},{code:70,name:"standardFlag",parser:e4},{code:2,name:"name",parser:e4},{code:100,name:"subclassMarker",parser:e4},...e7]),STYLE:e1([{code:1e3,name:"extendedFont",parser:e4},{code:1001},{code:4,name:"bigFont",parser:e4},{code:3,name:"font",parser:e4},{code:42,name:"lastHeight",parser:e4},{code:71,name:"textGenerationFlag",parser:e4},{code:50,name:"obliqueAngle",parser:e4},{code:41,name:"widthFactor",parser:e4},{code:40,name:"fixedTextHeight",parser:e4},{code:70,name:"standardFlag",parser:e4},{code:2,name:"name",parser:e4},{code:100,name:"subclassMarker",parser:e4},...e7]),VPORT:e1([{code:[63,421,431],name:"ambientColor",parser:e4},{code:142,name:"contrast",parser:e4},{code:141,name:"brightness",parser:e4},{code:282,name:"defaultLightingType",parser:e4},{code:292,name:"isDefaultLightingOn",parser:e3},{code:348,name:"visualStyleObjectId",parser:e4},{code:333,name:"shadePlotObjectId",parser:e4},{code:332,name:"backgroundObjectId",parser:e4},{code:61,name:"majorGridLines",parser:e4},{code:170,name:"shadePlotSetting",parser:e4},{code:146,name:"elevation",parser:e4},{code:79,name:"orthographicType",parser:e4},{code:112,name:"ucsYAxis",parser:e2},{code:111,name:"ucsXAxis",parser:e2},{code:110,name:"ucsOrigin",parser:e2},{code:74,name:"ucsIconSetting",parser:e4},{code:71,name:"viewMode",parser:e4},{code:281,name:"renderMode",parser:e4},{code:1,name:"styleSheet",parser:e4},{code:[331,441],name:"frozenLayers",parser:e4,isMultiple:!0},{code:72,name:"circleSides",parser:e4},{code:51,name:"viewTwistAngle",parser:e4},{code:50,name:"snapRotationAngle",parser:e4},{code:45,name:"viewHeight",parser:e4},{code:44,name:"backClippingPlane",parser:e4},{code:43,name:"frontClippingPlane",parser:e4},{code:42,name:"lensLength",parser:e4},{code:17,name:"viewTarget",parser:e2},{code:16,name:"viewDirectionFromTarget",parser:e2},{code:15,name:"gridSpacing",parser:e2},{code:14,name:"snapSpacing",parser:e2},{code:13,name:"snapBasePoint",parser:e2},{code:12,name:"center",parser:e2},{code:11,name:"upperRightCorner",parser:e2},{code:10,name:"lowerLeftCorner",parser:e2},{code:70,name:"standardFlag",parser:e4},{code:2,name:"name",parser:e4},{code:100,name:"subclassMarker",parser:e4},...e7])},aa=e1([{code:70,name:"maxNumberOfEntries",parser:e4},{code:100,name:"subclassMarker",parser:e4},{code:330,name:"ownerObjectId",parser:e4},{code:102},{code:360,isMultiple:!0},{code:102},{code:5,name:"handle",parser:e4},{code:2,name:"name",parser:e4}]);var ar=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215];function an(e,a){if(!eK(e,1001))throw Error("XData must starts with code 1001");let r={appName:e.value,value:[]};e=a.next();let n=[r.value];for(;!eK(e,0,"EOF")&&e.code>=1e3;){let r=n.at(-1);switch(e.code){case 1002:"{"===e.value?n.push([]):(n.pop(),n.at(-1)?.push(r));break;case 1e3:case 1004:case 1040:case 1070:case 1071:r.push({type:at(e.code),value:e.value});break;case 1003:r.push({name:"layer",type:at(e.code),value:e.value});break;case 1005:r.push({name:"handle",type:at(e.code),value:e.value});break;case 1010:r.push({type:at(e.code),value:e$(a)});break;case 1011:r.push({name:"worldSpacePosition",type:at(e.code),value:e$(a)});break;case 1012:r.push({name:"worldSpaceDisplacement",type:at(e.code),value:e$(a)});break;case 1013:r.push({name:"worldSpaceDirection",type:at(e.code),value:e$(a)});break;case 1041:r.push({name:"distance",type:at(e.code),value:e.value});break;case 1042:r.push({name:"scale",type:at(e.code),value:e.value})}e=a.next()}return a.rewind(),r}function at(e){switch(e){case 1e3:case 1003:case 1005:return"string";case 1004:return"hex";case 1040:case 1041:case 1042:return"real";case 1070:return"integer";case 1071:return"long";case 1010:case 1011:case 1012:case 1013:return"point";default:return""}}function ao(e,a,r){if(eK(a,102))return ac(a,r),!0;switch(a.code){case 0:e.type=a.value;break;case 5:e.handle=a.value;break;case 330:e.ownerDictionarySoftId?e.ownerBlockRecordSoftId=a.value:e.ownerDictionarySoftId=a.value;break;case 360:e.ownerdictionaryHardId=a.value;break;case 67:e.isInPaperSpace=!!a.value;break;case 8:e.layer=a.value;break;case 6:e.lineType=a.value;break;case 347:e.materialObjectHardId=a.value;break;case 62:e.colorIndex=a.value,e.color=ar[Math.abs(a.value)];break;case 370:e.lineweight=a.value;break;case 48:e.lineTypeScale=a.value;break;case 60:e.isVisible=!!a.value;break;case 92:e.proxyByte=a.value;break;case 310:e.proxyEntity=a.value;break;case 100:break;case 420:e.color=a.value;break;case 430:e.transparency=a.value;break;case 390:e.plotStyleHardId=a.value;break;case 284:e.shadowMode=a.value;break;case 1001:e.xdata=an(a,r);break;default:return!1}return!0}(_=eS||(eS={}))[_.CAST_AND_RECEIVE=0]="CAST_AND_RECEIVE",_[_.CAST=1]="CAST",_[_.RECEIVE=2]="RECEIVE",_[_.IGNORE=3]="IGNORE";const as=[{code:1001,name:"xdata",parser:an},{code:284,name:"shadowMode",parser:e4},{code:390,name:"plotStyleHardId",parser:e4},{code:440,name:"transparency",parser:e4},{code:430,name:"colorName",parser:e4},{code:420,name:"color",parser:e4},{code:310,name:"proxyEntity",parser:e4},{code:92,name:"proxyByte",parser:e4},{code:60,name:"isVisible",parser:e3},{code:48,name:"lineTypeScale",parser:e4},{code:370,name:"lineweight",parser:e4},{code:62,name:"colorIndex",parser(e,a,r){let n=e.value;return r.color=ar[Math.abs(n)],n}},{code:347,name:"materialObjectHardId",parser:e4},{code:6,name:"lineType",parser:e4},{code:8,name:"layer",parser:e4},{code:410,name:"layoutTabName",parser:e4},{code:67,name:"isInPaperSpace",parser:e3},{code:100},{code:330,name:"ownerBlockRecordSoftId",parser:e4},{code:102,parser:ac},{code:102,parser:ac},{code:102,parser:ac},{code:5,name:"handle",parser:e4}];function ac(e,a){for(e=a.next();!eK(e,102)&&!eK(e,0,"EOF");)e=a.next()}function ai(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}const ad={extrusionDirection:{x:0,y:0,z:1}},al=[{code:210,name:"extrusionDirection",parser:e2},{code:51,name:"endAngle",parser:e4},{code:50,name:"startAngle",parser:e4},{code:100,name:"subclassMarker",parser:e4},{code:40,name:"radius",parser:e4},{code:10,name:"center",parser:e2},{code:39,name:"thickness",parser:e4},{code:100},...as];class ap{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ai(this,"parser",e1(al,ad))}}function au(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ai(ap,"ForEntityName","ARC"),(y=e_||(e_={}))[y.NONE=0]="NONE",y[y.INVISIBLE=1]="INVISIBLE",y[y.CONSTANT=2]="CONSTANT",y[y.VERIFICATION_REQUIRED=4]="VERIFICATION_REQUIRED",y[y.PRESET=8]="PRESET",(M=ey||(ey={}))[M.MULTILINE=2]="MULTILINE",M[M.CONSTANT_MULTILINE=4]="CONSTANT_MULTILINE",(R=eM||(eM={}))[R.NONE=0]="NONE",R[R.MIRRORED_X=2]="MIRRORED_X",R[R.MIRRORED_Y=4]="MIRRORED_Y",(P=eR||(eR={}))[P.LEFT=0]="LEFT",P[P.CENTER=1]="CENTER",P[P.RIGHT=2]="RIGHT",P[P.ALIGNED=3]="ALIGNED",P[P.MIDDLE=4]="MIDDLE",P[P.FIT=5]="FIT",(v=eP||(eP={}))[v.BASELINE=0]="BASELINE",v[v.BOTTOM=1]="BOTTOM",v[v.MIDDLE=2]="MIDDLE",v[v.TOP=3]="TOP";const am={thickness:0,rotation:0,xScale:1,obliqueAngle:0,styleName:"STANDARD",generationFlag:0,halign:eR.LEFT,valign:eP.BASELINE,extrusionDirection:{x:0,y:0,z:1}},aI=[{code:73,name:"valign",parser:e4},{code:100},{code:210,name:"extrusionDirection",parser:e2},{code:11,name:"endPoint",parser:e2},{code:72,name:"valign",parser:e4},{code:72,name:"halign",parser:e4},{code:71,name:"generationFlag",parser:e4},{code:7,name:"styleName",parser:e4},{code:51,name:"obliqueAngle",parser:e4},{code:41,name:"xScale",parser:e4},{code:50,name:"rotation",parser:e4},{code:1,name:"text",parser:e4},{code:40,name:"textHeight",parser:e4},{code:10,name:"startPoint",parser:e2},{code:39,name:"thickness",parser:e4},{code:100,name:"subclassMarker",parser:e4},...as];class aE{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){au(this,"parser",e1(aI,am))}}function af(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}au(aE,"ForEntityName","TEXT");const ab={...am},aD=[{code:2},{code:40,name:"annotationScale",parser:e4},{code:10,name:"alignmentPoint",parser:e2},{code:340,name:"secondaryAttributesHardIds",isMultiple:!0,parser:e4},{code:70,name:"numberOfSecondaryAttributes",parser:e4},{code:70,name:"isReallyLocked",parser:e3},{code:70,name:"mtextFlag",parser:e4},{code:280,name:"isDuplicatedRecord",parser:e3},{code:100},{code:280,name:"isLocked",parser:e3},{code:74,name:"valign",parser:e4},{code:73},{code:70,name:"attributeFlag",parser:e4},{code:2,name:"tag",parser:e4},{code:3,name:"prompt",parser:e4},{code:280},{code:100,name:"subclassMarker",parser:e4},...aI.slice(2)];class aO{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){af(this,"parser",e1(aD,ab))}}function*aT(e,a=1/0,r=1){for(let n=e;n!==a;n+=r)yield n}function ah(e){return{x:e.x??0,y:e.y??0,z:e.z??0}}function aN(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}af(aO,"ForEntityName","ATTDEF"),(C=ev||(ev={}))[C.INVISIBLE=1]="INVISIBLE",C[C.CONSTANT=2]="CONSTANT",C[C.REQUIRE_VERIFICATION=4]="REQUIRE_VERIFICATION",C[C.PRESET=8]="PRESET",(k=eC||(eC={}))[k.LEFT_TO_RIGHT=1]="LEFT_TO_RIGHT",k[k.TOP_TO_BOTTOM=3]="TOP_TO_BOTTOM",k[k.BY_STYLE=5]="BY_STYLE";const ag={textStyle:"STANDARD",extrusionDirection:{x:0,y:0,z:1},rotation:0},aA=[{code:46,name:"annotationHeight",parser:e4},{code:101,parser(e,a){!function(e){e.rewind();let a=e.next();if(101!==a.code)throw Error("Bad call for skipEmbeddedObject()");do a=e.next();while(0!==a.code);e.rewind()}(a)}},{code:50,name:"columnHeight",parser:e4},{code:49,name:"columnGutter",parser:e4},{code:48,name:"columnWidth",parser:e4},{code:79,name:"columnAutoHeight",parser:e4},{code:78,name:"columnFlowReversed",parser:e4},{code:76,name:"columnCount",parser:e4},{code:75,name:"columnType",parser:e4},{code:441,name:"backgroundFillTransparency",parser:e4},{code:63,name:"backgroundFillColor",parser:e4},{code:45,name:"fillBoxScale",parser:e4},{code:[...aT(430,440)],name:"backgroundColor",parser:e4},{code:[...aT(420,430)],name:"backgroundColor",parser:e4},{code:90,name:"backgroundFill",parser:e4},{code:44,name:"lineSpacing",parser:e4},{code:73,name:"lineSpacingStyle",parser:e4},{code:50,name:"rotation",parser:e4},{code:43},{code:42},{code:11,name:"direction",parser:e2},{code:210,name:"extrusionDirection",parser:e2},{code:7,name:"styleName",parser:e4},{code:3,name:"text",parser:(e,a,r)=>(r.text??"")+e.value},{code:1,name:"text",parser:e4},{code:72,name:"drawingDirection",parser:e4},{code:71,name:"attachmentPoint",parser:e4},{code:41,name:"width",parser:e4},{code:40,name:"height",parser:e4},{code:10,name:"insertionPoint",parser:e2},{code:100,name:"subclassMarker",parser:e4},...as];class aL{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aN(this,"parser",e1(aA,ag))}}function aS(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aN(aL,"ForEntityName","MTEXT");const a_={thickness:0,rotation:0,scale:1,obliqueAngle:0,textStyle:"STANDARD",textGenerationFlag:0,horizontalJustification:0,verticalJustification:0,extrusionDirection:{x:0,y:0,z:1}},ay=[...aA.slice(aA.findIndex(({name:e})=>"columnType"===e),aA.findIndex(({name:e})=>"subclassMarker"===e)+1),{code:100},{code:0,parser(e){if(!eK(e,0,"MTEXT"))return e0}},{code:2,name:"definitionTag",parser:e4},{code:40,name:"annotationScale",parser:e4},{code:10,name:"alignmentPoint",parser:e2},{code:340,name:"secondaryAttributesHardId",parser:e4},{code:70,name:"numberOfSecondaryAttributes",parser:e4},{code:70,name:"isReallyLocked",parser:e3},{code:70,name:"mtextFlag",parser:e4},{code:280,name:"isDuplicatedEntriesKeep",parser:e3},{code:100},{code:280,name:"lockPositionFlag",parser:e3},{code:210,name:"extrusionDirection",parser:e2},{code:11,name:"alignmentPoint",parser:e2},{code:74,name:"verticalJustification",parser:e4},{code:72,name:"horizontalJustification",parser:e4},{code:71,name:"textGenerationFlag",parser:e4},{code:7,name:"textStyle",parser:e4},{code:51,name:"obliqueAngle",parser:e4},{code:41,name:"scale",parser:e4},{code:50,name:"rotation",parser:e4},{code:73},{code:70,name:"attributeFlag",parser:e4},{code:2,name:"tag",parser:e4},{code:280},{code:100,name:"subclassMarker",parser:e4},{code:1,name:"text",parser:e4},{code:40,name:"textHeight",parser:e4},{code:10,name:"startPoint",parser:e2},{code:39,name:"thickness",parser:e4},{code:100},...as];class aM{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aS(this,"parser",e1(ay,a_))}}function aR(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aS(aM,"ForEntityName","ATTRIB");const aP={thickness:0,extrusionDirection:{x:0,y:0,z:1}},av=[{code:210,name:"extrusionDirection",parser:e2},{code:40,name:"radius",parser:e4},{code:10,name:"center",parser:e2},{code:39,name:"thickness",parser:e4},{code:100,name:"subclassMarker",parser:e4},...as];class aC{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aR(this,"parser",e1(av,aP))}}aR(aC,"ForEntityName","CIRCLE");class ak{parseEntity(e,a){let r={};for(;!eK(a,0,"EOF");){if(0===a.code){e.rewind();break}!function(e,a,r){switch(a.code){case 100:e.subclassMarker=a.value;break;case 280:e.version=a.value;break;case 2:e.name=a.value;break;case 10:e.definitionPoint=e$(r);break;case 11:e.textPoint=e$(r);break;case 12:e.insertionPoint=e$(r);break;case 13:e.subDefinitionPoint1=e$(r);break;case 14:e.subDefinitionPoint2=e$(r);break;case 15:e.centerPoint=e$(r);break;case 16:e.arcPoint=e$(r);break;case 70:e.dimensionType=a.value;break;case 71:e.attachmentPoint=a.value;break;case 72:e.textLineSpacingStyle=a.value;break;case 40:e.leaderLength=a.value;break;case 41:e.textLineSpacingFactor=a.value;break;case 42:e.measurement=a.value;break;case 1:e.text=a.value;break;case 50:e.rotationAngle=a.value;break;case 52:e.obliqueAngle=a.value;break;case 53:e.textRotation=a.value;break;case 51:e.ocsRotation=a.value;break;case 210:e.extrusionDirection=e$(r);break;case 3:e.styleName=a.value;break;default:ao(e,a,r)}}(r,a,e),a=e.next()}return r}}function aF(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}x="DIMENSION",(F="ForEntityName")in ak?Object.defineProperty(ak,F,{value:x,enumerable:!0,configurable:!0,writable:!0}):ak[F]=x;const ax={extrusionDirection:{x:0,y:0,z:1}},aw=[{code:42,name:"endAngle",parser:e4},{code:41,name:"startAngle",parser:e4},{code:40,name:"axisRatio",parser:e4},{code:210,name:"extrusionDirection",parser:e2},{code:11,name:"majorAxisEndPoint",parser:e2},{code:10,name:"center",parser:e2},{code:100,name:"subclassMarker",parser:e4},...as];class aV{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aF(this,"parser",e1(aw,ax))}}function aB(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aF(aV,"ForEntityName","ELLIPSE");const aU={xScale:1,yScale:1,zScale:1,rotation:0,columnCount:0,rowCount:0,columnSpacing:0,rowSpacing:0,extrusionDirection:{x:0,y:0,z:1}},aG=[{code:210,name:"extrusionDirection",parser:e2},{code:45,name:"rowSpacing",parser:e4},{code:44,name:"columnSpacing",parser:e4},{code:71,name:"rowCount",parser:e4},{code:70,name:"columnCount",parser:e4},{code:50,name:"rotation",parser:e4},{code:43,name:"zScale",parser:e4},{code:42,name:"yScale",parser:e4},{code:41,name:"xScale",parser:e4},{code:10,name:"insertionPoint",parser:e2},{code:2,name:"name",parser:e4},{code:66,name:"isVariableAttributes",parser:e3},{code:100,name:"subclassMarker",parser:e4},...as];class aH{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aB(this,"parser",e1(aG,aU))}}function aY(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aB(aH,"ForEntityName","INSERT");const aW={isArrowheadEnabled:!0},aj=[{code:213,name:"offsetFromAnnotation",parser:e2},{code:212,name:"offsetFromBlock",parser:e2},{code:211,name:"horizontalDirection",parser:e2},{code:210,name:"normal",parser:e2},{code:340,name:"associatedAnnotation",parser:e4},{code:77,name:"byBlockColor",parser:e4},{code:10,name:"vertices",parser:e2,isMultiple:!0},{code:76,name:"numberOfVertices",parser:e4},{code:41,name:"textWidth",parser:e4},{code:40,name:"textHeight",parser:e4},{code:75,name:"isHooklineExists",parser:e3},{code:74,name:"isHooklineSameDirection",parser:e3},{code:73,name:"leaderCreationFlag",parser:e4},{code:72,name:"isSpline",parser:e3},{code:71,name:"isArrowheadEnabled",parser:e3},{code:3,name:"styleName",parser:e4},{code:100,name:"subclassMarker",parser:e4},...as];class aX{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aY(this,"parser",e1(aj,aW))}}function aK(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aY(aX,"ForEntityName","LEADER"),(w=ek||(ek={}))[w.TextAnnotation=0]="TextAnnotation",w[w.ToleranceAnnotation=1]="ToleranceAnnotation",w[w.BlockReferenceAnnotation=2]="BlockReferenceAnnotation",w[w.NoAnnotation=3]="NoAnnotation";const az={thickness:0,extrusionDirection:{x:0,y:0,z:1}},aZ=[{code:210,name:"extrusionDirection",parser:e2},{code:11,name:"endPoint",parser:e2},{code:10,name:"startPoint",parser:e2},{code:39,name:"thickness",parser:e4},{code:100,name:"subclassMarker",parser:e4},...as];class aJ{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aK(this,"parser",e1(aZ,az))}}aK(aJ,"ForEntityName","LINE"),(V=eF||(eF={}))[V.IS_CLOSED=1]="IS_CLOSED",V[V.PLINE_GEN=128]="PLINE_GEN";const aq={flag:0,elevation:0,thickness:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},aQ={bulge:0},a$=[{code:42,name:"bulge",parser:e4},{code:41,name:"endWidth",parser:e4},{code:40,name:"startWidth",parser:e4},{code:91,name:"id",parser:e4},{code:20,name:"y",parser:e4},{code:10,name:"x",parser:e4}],a0=[{code:210,name:"extrusionDirection",parser:e2},{code:10,name:"vertices",isMultiple:!0,parser(e,a){let r={};return e1(a$,aQ)(e,a,r),r}},{code:39,name:"thickness",parser:e4},{code:38,name:"elevation",parser:e4},{code:43,name:"constantWidth",parser:e4},{code:70,name:"flag",parser:e4},{code:90,name:"numberOfVertices",parser:e4},{code:100,name:"subclassMarker",parser:e4},...as];class a1{parseEntity(e,a){let r={};return e1(a0,aq)(a,e,r),r}}function a4(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}U="LWPOLYLINE",(B="ForEntityName")in a1?Object.defineProperty(a1,B,{value:U,enumerable:!0,configurable:!0,writable:!0}):a1[B]=U;const a2={thickness:0,extrusionDirection:{x:0,y:0,z:1},angle:0},a3=[{code:50,name:"angle",parser:e4},{code:210,name:"extrusionDirection",parser:e2},{code:39,name:"thickness",parser:e4},{code:10,name:"position",parser:e2},{code:100,name:"subclassMarker",parser:e4},...as];class a7{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){a4(this,"parser",e1(a3,a2))}}function a5(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}a4(a7,"ForEntityName","POINT"),(G=ex||(ex={}))[G.CLOSED_POLYLINE=1]="CLOSED_POLYLINE",G[G.CURVE_FIT=2]="CURVE_FIT",G[G.SPLINE_FIT=4]="SPLINE_FIT",G[G.POLYLINE_3D=8]="POLYLINE_3D",G[G.POLYGON_3D=16]="POLYGON_3D",G[G.CLOSED_POLYGON=32]="CLOSED_POLYGON",G[G.POLYFACE=64]="POLYFACE",G[G.CONTINUOUS=128]="CONTINUOUS",(H=ew||(ew={}))[H.NONE=0]="NONE",H[H.QUADRATIC=5]="QUADRATIC",H[H.CUBIC=6]="CUBIC",H[H.BEZIER=8]="BEZIER",(Y=eV||(eV={}))[Y.CREATED_BY_CURVE_FIT=1]="CREATED_BY_CURVE_FIT",Y[Y.TANGENT_DEFINED=2]="TANGENT_DEFINED",Y[Y.NOT_USED=4]="NOT_USED",Y[Y.CREATED_BY_SPLINE_FIT=8]="CREATED_BY_SPLINE_FIT",Y[Y.SPLINE_CONTROL_POINT=16]="SPLINE_CONTROL_POINT",Y[Y.FOR_POLYLINE=32]="FOR_POLYLINE",Y[Y.FOR_POLYGON=64]="FOR_POLYGON",Y[Y.POLYFACE=128]="POLYFACE";const a6={startWidth:0,endWidth:0,bulge:0},a9=[{code:91,name:"id",parser:e4},{code:[...aT(71,75)],name:"faces",isMultiple:!0,parser:e4},{code:50,name:"tangentDirection",parser:e4},{code:70,name:"flag",parser:e4},{code:42,name:"bulge",parser:e4},{code:41,name:"endWidth",parser:e4},{code:40,name:"startWidth",parser:e4},{code:30,name:"z",parser:e4},{code:20,name:"y",parser:e4},{code:10,name:"x",parser:e4},{code:100,name:"subclassMarker",parser:e4},{code:100},...as];class a8{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){a5(this,"parser",e1(a9,a6))}}function re(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}a5(a8,"ForEntityName","VERTEX");const ra={thickness:0,flag:0,startWidth:0,endWidth:0,meshMVertexCount:0,meshNVertexCount:0,surfaceMDensity:0,surfaceNDensity:0,smoothType:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rr=[{code:0,name:"vertices",isMultiple:!0,parser:(e,a)=>eK(e,0,"VERTEX")?(e=a.next(),new a8().parseEntity(a,e)):e0},{code:210,name:"extrusionDirection",parser:e2},{code:75,name:"smoothType",parser:e4},{code:74,name:"surfaceNDensity",parser:e4},{code:73,name:"surfaceMDensity",parser:e4},{code:72,name:"meshNVertexCount",parser:e4},{code:71,name:"meshMVertexCount",parser:e4},{code:41,name:"endWidth",parser:e4},{code:40,name:"startWidth",parser:e4},{code:70,name:"flag",parser:e4},{code:39,name:"thickness",parser:e4},{code:30,name:"elevation",parser:e4},{code:20},{code:10},{code:66},{code:100,name:"subclassMarker",parser:e4},...as];class rn{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){re(this,"parser",e1(rr,ra))}}function rt(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}re(rn,"ForEntityName","POLYLINE");const ro={vertices:[],backLineVertices:[]},rs=[{code:360,name:"geometrySettingHardId",parser:e4},{code:12,name:"backLineVertices",isMultiple:!0,parser:e2},{code:93,name:"numberOfBackLineVertices",parser:e4},{code:11,name:"vertices",isMultiple:!0,parser:e2},{code:92,name:"verticesCount",parser:e4},{code:[63,411],name:"indicatorColor",parser:e4},{code:70,name:"indicatorTransparency",parser:e4},{code:41,name:"bottomHeight",parser:e4},{code:40,name:"topHeight",parser:e4},{code:10,name:"verticalDirection",parser:e2},{code:1,name:"name",parser:e4},{code:91,name:"flag",parser:e4},{code:90,name:"state",parser:e4},{code:100,name:"subclassMarker",parser:e4},...as];class rc{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rt(this,"parser",e1(rs,ro))}}function ri(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rt(rc,"ForEntityName","SECTION");const rd={points:[],thickness:0,extrusionDirection:{x:0,y:0,z:1}},rl=[{code:210,name:"extrusionDirection",parser:e2},{code:39,name:"thickness",parser:e4},{code:[...aT(10,14)],name:"points",isMultiple:!0,parser:e2},{code:100,name:"subclassMarker",parser:e4},...as];class rp{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ri(this,"parser",e1(rl,rd))}}function ru(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ri(rp,"ForEntityName","SOLID"),(W=eB||(eB={}))[W.NONE=0]="NONE",W[W.CLOSED=1]="CLOSED",W[W.PERIODIC=2]="PERIODIC",W[W.RATIONAL=4]="RATIONAL",W[W.PLANAR=8]="PLANAR",W[W.LINEAR=16]="LINEAR";const rm={knotTolerance:1e-6,controlTolerance:1e-6,fitTolerance:1e-9,knotValues:[],controlPoints:[],fitPoints:[]},rI=[{code:11,name:"fitPoints",isMultiple:!0,parser:e2},{code:10,name:"controlPoints",isMultiple:!0,parser:e2},{code:41,name:"weights",isMultiple:!0,parser:e4},{code:40,name:"knots",isMultiple:!0,parser:e4},{code:13,name:"endTangent",parser:e2},{code:12,name:"startTangent",parser:e2},{code:44,name:"fitTolerance",parser:e4},{code:43,name:"controlTolerance",parser:e4},{code:42,name:"knotTolerance",parser:e4},{code:74,name:"numberOfFitPoints",parser:e4},{code:73,name:"numberOfControlPoints",parser:e4},{code:72,name:"numberOfKnots",parser:e4},{code:71,name:"degree",parser:e4},{code:70,name:"flag",parser:e4},{code:210,name:"normal",parser:e2},{code:100,name:"subclassMarker",parser:e4},...as];class rE{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ru(this,"parser",e1(rI,rm))}}ru(rE,"ForEntityName","SPLINE");const rf=[{code:330,name:"sourceBoundaryObjects",parser:e4,isMultiple:!0},{code:97,name:"numberOfSourceBoundaryObjects",parser:e4}],rb=[{code:11,name:"end",parser:e2},{code:10,name:"start",parser:e2}],rD=[{code:73,name:"isCCW",parser:e3},{code:51,name:"endAngle",parser:e4},{code:50,name:"startAngle",parser:e4},{code:40,name:"radius",parser:e4},{code:10,name:"center",parser:e2}],rO=[{code:73,name:"isCCW",parser:e3},{code:51,name:"endAngle",parser:e4},{code:50,name:"startAngle",parser:e4},{code:40,name:"lengthOfMinorAxis",parser:e4},{code:11,name:"end",parser:e2},{code:10,name:"center",parser:e2}],rT=[{code:13,name:"endTangent",parser:e2},{code:12,name:"startTangent",parser:e2},{code:11,name:"fitDatum",isMultiple:!0,parser:e2},{code:97,name:"numberOfFitData",parser:e4},{code:10,name:"controlPoints",isMultiple:!0,parser(e,a){let r={...e$(a),weight:1};return 42===(e=a.next()).code?r.weight=e.value:a.rewind(),r}},{code:40,name:"knots",isMultiple:!0,parser:e4},{code:96,name:"numberOfControlPoints",parser:e4},{code:95,name:"numberOfKnots",parser:e4},{code:74,name:"isPeriodic",parser:e3},{code:73,name:"splineFlag",parser:e4},{code:94,name:"degree",parser:e4}],rh={[ef.Line]:rb,[ef.Circular]:rD,[ef.Elliptic]:rO,[ef.Spline]:rT},rN=[...rf,{code:72,name:"edges",parser(e,a){let r={type:e.value},n=e1(rh[r.type]);if(!n)throw Error(`Invalid edge type ${r.type}`);return n(e=a.next(),a,r),r},isMultiple:!0},{code:93,name:"numberOfEdges",parser:e4}],rg=[...rf,{code:10,name:"vertices",parser(e,a){let r={...e$(a),bulge:0};return 42===(e=a.next()).code?r.bulge=e.value:a.rewind(),r},isMultiple:!0},{code:93,name:"numberOfVertices",parser:e4},{code:73,name:"isClosed",parser:e3},{code:72,name:"hasBulge",parser:e3}],rA=[{code:49,name:"dashLengths",parser:e4,isMultiple:!0},{code:79,name:"numberOfDashLengths",parser:e4},{code:45,name:"offset",parser:rL},{code:43,name:"base",parser:rL},{code:53,name:"angle",parser:e4}];function rL(e,a){let r=e.code+1,n={x:e.value,y:1};return(e=a.next()).code===r?n.y=e.value:a.rewind(),n}function rS(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}const r_={extrusionDirection:{x:0,y:0,z:1},gradientRotation:0,colorTint:0},ry=[{code:470},{code:463},{code:462,name:"colorTint",parser:e4},{code:461,name:"gradientDefinition",parser:e4},{code:460,name:"gradientRotation",parser:e4},{code:453,name:"numberOfColors",parser:e4},{code:452,name:"gradientColorFlag",parser:e4},{code:451},{code:450,name:"gradientFlag",parser:e4},{code:10,name:"seedPoints",parser:e2,isMultiple:!0},{code:99},{code:11,name:"offsetVector",parser:e2},{code:98,name:"numberOfSeedPoints",parser:e4},{code:47,name:"pixelSize",parser:e4},{code:53,name:"definitionLines",parser:function(e,a){let r={};return e1(rA)(e,a,r),r},isMultiple:!0},{code:78,name:"numberOfDefinitionLines",parser:e4},{code:77,name:"isDouble",parser:e3},{code:73,name:"isAnnotated",parser:e3},{code:41,name:"patternScale",parser:e4},{code:52,name:"patternAngle",parser:e4},{code:76,name:"patternType",parser:e4},{code:75,name:"hatchStyle",parser:e4},{code:92,name:"boundaryPaths",parser:function(e,a){let r={boundaryPathTypeFlag:e.value},n=r.boundaryPathTypeFlag&eE.Polyline;return(e=a.next(),n)?e1(rg)(e,a,r):e1(rN)(e,a,r),r},isMultiple:!0},{code:91,name:"numberOfBoundaryPaths",parser:e4},{code:71,name:"associativity",parser:e4},{code:63,name:"patternFillColor",parser:e4},{code:70,name:"solidFill",parser:e4},{code:2,name:"patternName",parser:e4},{code:210,name:"extrusionDirection",parser:e2},{code:10,name:"elevationPoint",parser:e2},{code:100,name:"subclassMarker",parser:e4,pushContext:!0},...as];class rM{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rS(this,"parser",e1(ry,r_))}}rS(rM,"ForEntityName","HATCH");class rR{parseEntity(e,a){let r={};for(;"EOF"!==a;){if(0===a.code){e.rewind();break}!function(e,a,r){if("EOF"===r)return!1;switch(r.code){case 0:return!1;case 100:e.subclassMarker=r.value;break;case 10:e.viewportCenter=ah(e$(a));break;case 40:e.width=r.value;break;case 41:e.height=r.value;break;case 68:e.status=r.value;break;case 69:e.viewportId=r.value;break;case 12:e.displayCenter=e$(a);break;case 13:e.snapBase=e$(a);break;case 14:e.snapSpacing=e$(a);break;case 15:e.gridSpacing=e$(a);break;case 16:e.viewDirection=ah(e$(a));break;case 17:e.targetPoint=ah(e$(a));break;case 42:e.perspectiveLensLength=r.value;break;case 43:e.frontClipZ=r.value;break;case 44:e.backClipZ=r.value;break;case 45:e.viewHeight=r.value;break;case 50:e.snapAngle=r.value;break;case 51:e.viewTwistAngle=r.value;break;case 72:e.circleZoomPercent=r.value;break;case 331:e.frozenLayerIds??(e.frozenLayerIds=[]),e.frozenLayerIds.push(r.value);break;case 90:e.statusBitFlags=r.value;break;case 340:e.clippingBoundaryId=r.value;break;case 1:e.sheetName=r.value;break;case 281:e.renderMode=r.value;break;case 71:e.ucsPerViewport=r.value;break;case 110:e.ucsOrigin=ah(e$(a));break;case 111:e.ucsXAxis=ah(e$(a));break;case 112:e.ucsYAxis=ah(e$(a));break;case 345:e.ucsId=r.value;break;case 346:e.ucsBaseId=r.value;break;case 79:e.orthographicType=r.value;break;case 146:e.elevation=r.value;break;case 170:e.shadePlotMode=r.value;break;case 61:e.majorGridFrequency=r.value;break;case 332:e.backgroundId=r.value;break;case 333:e.shadePlotId=r.value;break;case 348:e.visualStyleId=r.value;break;case 292:e.isDefaultLighting=!!r.value;break;case 282:e.defaultLightingType=r.value;break;case 141:e.brightness=r.value;break;case 142:e.contrast=r.value;break;case 63:case 421:case 431:e.ambientLightColor=r.value;break;case 361:e.sunId=r.value;break;case 335:case 343:case 344:case 91:e.softPointer=r.value}return!0}(r,e,a)&&ao(r,a,e),a=e.next()}return r}}X="VIEWPORT",(j="ForEntityName")in rR?Object.defineProperty(rR,j,{value:X,enumerable:!0,configurable:!0,writable:!0}):rR[j]=X;const rP=Object.fromEntries([ap,aO,aM,aC,ak,aV,aH,aX,aJ,a1,aL,a7,rn,rc,rp,rE,aE,rM,rR].map(e=>[e.ForEntityName,new e]));function rv(e,a){let r=[];for(;!eK(e,0,"EOF");){if(0===e.code){if("ENDBLK"===e.value||"ENDSEC"===e.value){a.rewind();break}let n=rP[e.value];if(n){let t=e.value;e=a.next();let o=n.parseEntity(a,e);o.type=t,eZ(o),r.push(o)}else console.warn(`Unsupported ENTITY type: ${e.value}`)}e=a.next()}return r}const rC=[{code:333,name:"shadePlotId",parser:e4},{code:149,name:"imageOriginY",parser:e4},{code:148,name:"imageOriginX",parser:e4},{code:147,name:"scaleFactor",parser:e4},{code:78,name:"shadePlotCustomDPI",parser:e4},{code:77,name:"shadePlotResolution",parser:e4},{code:76,name:"shadePlotMode",parser:e4},{code:75,name:"standardScaleType",parser:e4},{code:7,name:"currentStyleSheet",parser:e4},{code:74,name:"plotType",parser:e4},{code:73,name:"plotRotation",parser:e4},{code:72,name:"paperUnit",parser:e4},{code:70,name:"layoutFlag",parser:e4},{code:143,name:"printScaleDenominator",parser:e4},{code:142,name:"printScaleNominator",parser:e4},{code:141,name:"windowAreaYMax",parser:e4},{code:140,name:"windowAreaYMin",parser:e4},{code:49,name:"windowAreaXMax",parser:e4},{code:48,name:"windowAreaXMin",parser:e4},{code:47,name:"plotOriginY",parser:e4},{code:46,name:"plotOriginX",parser:e4},{code:45,name:"paperHeight",parser:e4},{code:44,name:"paperWidth",parser:e4},{code:43,name:"marginTop",parser:e4},{code:42,name:"marginRight",parser:e4},{code:41,name:"marginBottom",parser:e4},{code:40,name:"marginLeft",parser:e4},{code:6,name:"plotViewName",parser:e4},{code:4,name:"paperSize",parser:e4},{code:2,name:"configName",parser:e4},{code:1,name:"pageSetupName",parser:e4},{code:100,name:"subclassMarker",parser:e4}];(K=eU||(eU={}))[K.INCHES=0]="INCHES",K[K.MILLIMETERS=1]="MILLIMETERS",K[K.PIXELS=2]="PIXELS",(z=eG||(eG={}))[z.LAST_SCREEN_DISPLAY=0]="LAST_SCREEN_DISPLAY",z[z.DRAWING_EXTENTS=1]="DRAWING_EXTENTS",z[z.DRAWING_LIMITS=2]="DRAWING_LIMITS",z[z.VIEW_SPECIFIED=3]="VIEW_SPECIFIED",z[z.WINDOW_SPECIFIED=4]="WINDOW_SPECIFIED",z[z.LAYOUT_INFORMATION=5]="LAYOUT_INFORMATION",(Z=eH||(eH={}))[Z.AS_DISPLAYED=0]="AS_DISPLAYED",Z[Z.WIREFRAME=1]="WIREFRAME",Z[Z.HIDDEN=2]="HIDDEN",Z[Z.RENDERED=3]="RENDERED",(J=eY||(eY={}))[J.DRAFT=0]="DRAFT",J[J.PREVIEW=1]="PREVIEW",J[J.NORMAL=2]="NORMAL",J[J.PRESENTATION=3]="PRESENTATION",J[J.MAXIMUM=4]="MAXIMUM",J[J.CUSTOM=5]="CUSTOM";const rk=[{code:333,name:"shadePlotId",parser:e4},{code:346,name:"orthographicUcsId",parser:e4},{code:345,name:"namedUcsId",parser:e4},{code:331,name:"viewportId",parser:e4},{code:330,name:"paperSpaceTableId",parser:e4},{code:76,name:"orthographicType",parser:e4},{code:17,name:"ucsYAxis",parser:e2},{code:16,name:"ucsXAxis",parser:e2},{code:13,name:"ucsOrigin",parser:e2},{code:146,name:"elevation",parser:e4},{code:15,name:"maxExtent",parser:e2},{code:14,name:"minExtent",parser:e2},{code:12,name:"insertionBase",parser:e2},{code:11,name:"maxLimit",parser:e2},{code:10,name:"minLimit",parser:e2},{code:71,name:"tabOrder",parser:e4},{code:70,name:"controlFlag",parser:e4},{code:1,name:"layoutName",parser:e4},{code:100,name:"subclassMarker",parser:e4},...rC];(q=eW||(eW={}))[q.PSLTSCALE=1]="PSLTSCALE",q[q.LIMCHECK=2]="LIMCHECK";const rF=[{code:330,name:"ownerObjectId",parser:e4},{code:102},{code:360,name:"ownerDictionaryIdHard",parser:e4},{code:102},{code:102},{code:330,name:"ownerDictionaryIdSoft",parser:e4},{code:102},{code:102},{code:102},{code:5,name:"handle",parser:e4}],rx=[{code:3,name:"entries",parser:(e,a)=>{let r={name:e.value};return 350===(e=a.next()).code?r.objectId=e.value:a.rewind(),r},isMultiple:!0},{code:281,name:"recordCloneFlag",parser:e4},{code:280,name:"isHardOwned",parser:e3},{code:100,name:"subclassMarker",parser:e4}];function rw(e){return"AcDbDictionary"===e.subclassMarker}(Q=ej||(ej={}))[Q.NOT_APPLICABLE=0]="NOT_APPLICABLE",Q[Q.KEEP_EXISTING=1]="KEEP_EXISTING",Q[Q.USE_CLONE=2]="USE_CLONE",Q[Q.XREF_VALUE_NAME=3]="XREF_VALUE_NAME",Q[Q.VALUE_NAME=4]="VALUE_NAME",Q[Q.UNMANGLE_NAME=5]="UNMANGLE_NAME";const rV={LAYOUT:rk,PLOTSETTINGS:rC,DICTIONARY:rx};function rB(e){return"INSERT"===e.type||"DIMENSION"===e.type&&!!e.name}function rU(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class rG{constructor(){rU(this,"encoding","utf-8"),rU(this,"encodingFailureFatal",!1)}}class rH extends EventTarget{parseSync(e){let a=new eq(e.split(/\r\n|\r|\n/g));if(!a.hasNext())throw Error("Empty file");return this.parseAll(a)}parseStream(e){let a="",r=this;return new Promise((n,t)=>{e.on("data",e=>{a+=e}),e.on("end",()=>{try{let e=a.split(/\r\n|\r|\n/g),t=new eq(e);if(!t.hasNext())throw Error("Empty file");n(r.parseAll(t))}catch(e){t(e)}}),e.on("error",e=>{t(e)})})}async parseFromUrl(e,a){let r=await fetch(e,a);if(!r.body)return null;let n=r.body.getReader(),t="";for(;;){let{done:e,value:a}=await n.read();if(e){t+=this._decoder.decode(new ArrayBuffer(0),{stream:!1});break}t+=this._decoder.decode(a,{stream:!0})}return this.parseSync(t)}parseAll(e){let a={header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}},r=e.next();for(;!eK(r,0,"EOF");)eK(r,0,"SECTION")&&(eK(r=e.next(),2,"HEADER")?(r=e.next(),a.header=function(e,a){let r=null,n={};for(;!eK(e,0,"EOF")&&!eK(e,0,"ENDSEC");)9===e.code?r=e.value:10===e.code?n[r]=e$(a):n[r]=e.value,e=a.next();return n}(r,e)):eK(r,2,"BLOCKS")?(r=e.next(),a.blocks=function(e,a){let r={};for(;!eK(e,0,"EOF")&&!eK(e,0,"ENDSEC");){if(eK(e,0,"BLOCK")){let n=function(e,a){let r={};for(;!eK(e,0,"EOF");){if(eK(e,0,"ENDBLK")){for(e=a.next();!eK(e,0,"EOF");){if(eK(e,100,"AcDbBlockEnd"))return r;e=a.next()}break}switch(e.code){case 1:r.xrefPath=e.value;break;case 2:r.name=e.value;break;case 3:r.name2=e.value;break;case 5:r.handle=e.value;break;case 8:r.layer=e.value;break;case 10:r.position=e$(a);break;case 67:r.paperSpace=!!e.value&&1==e.value;break;case 70:0!==e.value&&(r.type=e.value);break;case 100:break;case 330:r.ownerHandle=e.value;break;case 0:r.entities=rv(e,a)}e=a.next()}return r}(e=a.next(),a);eZ(n),n.name&&(r[n.name]=n)}e=a.next()}return r}(r,e)):eK(r,2,"ENTITIES")?(r=e.next(),a.entities=rv(r,e)):eK(r,2,"TABLES")?(r=e.next(),a.tables=function(e,a){let r={};for(;!eK(e,0,"EOF")&&!eK(e,0,"ENDSEC");){if(eK(e,0,"TABLE")){e=a.next();let n={entries:[]};aa(e,a,n),r[n.name]=n}if(eK(e,0)&&!eK(e,0,"ENDTAB")){let n=e.value;e=a.next();let t=ae[n];if(!t){console.warn(`parseTable: Invalid table name '${n}'`),e=a.next();continue}let o={};t(e,a,o),r[n]?.entries.push(o)}e=a.next()}return r}(r,e)):eK(r,2,"OBJECTS")&&(r=e.next(),a.objects=function(e,a){let r=[];for(;0!==e.code||!["EOF","ENDSEC"].includes(e.value);){let n=e.value,t=rV[n];if(0===e.code&&t?.length){let o=e1([...rF,...t]),s={name:n};o(e=a.next(),a,s)?(r.push(s),e=a.peek()):e=a.next()}else e=a.next()}return{byName:function(e,a){let r={};for(let n of e){let e=a(n);null!=e&&(r[e]??(r[e]=[]),r[e].push(n))}return r}(r,({name:e})=>e),byTree:function(e){let a=Object.fromEntries(e.map(e=>[e.handle,e]));for(let r of e)(!rw(r)||"0"!==r.ownerDictionaryIdSoft)&&(r.ownerDictionaryIdSoft&&(r.ownerDictionarySoft=a[r.ownerDictionaryIdSoft]),r.ownerDictionaryIdHard&&(r.ownerDictionaryHard=a[r.ownerDictionaryIdHard]),r.ownerObjectId&&(r.ownerObject=a[r.ownerObjectId])),function(e,a){rw(e)&&e.entries&&(e.entries=Object.fromEntries(e.entries.map(({name:e,objectId:r})=>[e,a[r]])))}(r,a);return e[0]}(r)}}(r,e))),r=e.next();return function(e){let a=Object.entries(e.blocks),r={};for(let[e,n]of eX.filter(([e,a])=>a.entities?.some(rB),a))for(let a of n.entities??[])rB(a)&&(r[e]??(r[e]=[]),r[e].push(a.name));let n=eX.filter(rB,e.entities),t=(function({seeds:e,spanner:a,serializer:r,iterationLimit:n=1/0}){let t=new Set,o=0;return e.map(e=>{let s=[],c=[[e,r(e)]];for(;c.length&&o++<n;){let[e,n]=c.pop();if(!t.has(n))for(let o of(t.add(n),s.push(e),a(e)))c.push([o,r(o)])}return s}).filter(e=>e.length)})({seeds:[...eX.map(({name:e})=>e,n)],serializer:e=>e,spanner:e=>r[e]??[]}).flat();return{...e,blocks:Object.fromEntries(t.map(a=>[a,e.blocks[a]]))}}(a)}constructor(e=new rG){super(),rU(this,"_decoder",void 0),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal})}}module.exports=rH;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r,a,t,n,o,s,i,c,d,l,p,u,m,E,h,I,f,T,x,D,b,O,g,S,y,N,A,L,_,P,v,C,M,F,R,k,w,V,B,H,G,U,W,Y,j,z,X,K,Z,J,$,q,Q,ee,er,ea,et,en,eo,es,ei=require("@fxts/core");exports.BlockTypeFlag=void 0,(e=exports.BlockTypeFlag||(exports.BlockTypeFlag={}))[e.None=0]="None",e[e.Anonymous=1]="Anonymous",e[e.NonConstant=2]="NonConstant",e[e.Xref=4]="Xref",e[e.XrefOverlay=8]="XrefOverlay",e[e.ExternallyDependent=16]="ExternallyDependent",e[e.ResolvedOrDependent=32]="ResolvedOrDependent",e[e.ReferencedXref=64]="ReferencedXref",exports.ColorCode=void 0,(r=exports.ColorCode||(exports.ColorCode={}))[r.BYBLOCK=0]="BYBLOCK",r[r.BYLAYER=256]="BYLAYER",exports.DimensionType=void 0,(a=exports.DimensionType||(exports.DimensionType={}))[a.Rotated=0]="Rotated",a[a.Aligned=1]="Aligned",a[a.Angular=2]="Angular",a[a.Diameter=3]="Diameter",a[a.Radius=4]="Radius",a[a.Angular3Point=5]="Angular3Point",a[a.Ordinate=6]="Ordinate",a[a.ReferenceIsExclusive=32]="ReferenceIsExclusive",a[a.IsOrdinateXTypeFlag=64]="IsOrdinateXTypeFlag",a[a.IsCustomTextPositionFlag=128]="IsCustomTextPositionFlag",exports.AttachmentPoint=void 0,(t=exports.AttachmentPoint||(exports.AttachmentPoint={}))[t.TopLeft=1]="TopLeft",t[t.TopCenter=2]="TopCenter",t[t.TopRight=3]="TopRight",t[t.MiddleLeft=4]="MiddleLeft",t[t.MiddleCenter=5]="MiddleCenter",t[t.MiddleRight=6]="MiddleRight",t[t.BottomLeft=7]="BottomLeft",t[t.BottomCenter=8]="BottomCenter",t[t.BottomRight=9]="BottomRight",exports.DimensionTextLineSpacing=void 0,(n=exports.DimensionTextLineSpacing||(exports.DimensionTextLineSpacing={}))[n.AtLeast=1]="AtLeast",n[n.Exact=2]="Exact",exports.DimensionTextVertical=void 0,(o=exports.DimensionTextVertical||(exports.DimensionTextVertical={}))[o.Center=0]="Center",o[o.Above=1]="Above",o[o.Outside=2]="Outside",o[o.JIS=3]="JIS",o[o.Below=4]="Below",exports.DimensionZeroSuppression=void 0,(s=exports.DimensionZeroSuppression||(exports.DimensionZeroSuppression={}))[s.Feet=0]="Feet",s[s.None=1]="None",s[s.Inch=2]="Inch",s[s.FeetAndInch=3]="FeetAndInch",s[s.Leading=4]="Leading",s[s.Trailing=8]="Trailing",s[s.LeadingAndTrailing=12]="LeadingAndTrailing",exports.DimensionZeroSuppressionAngular=void 0,(i=exports.DimensionZeroSuppressionAngular||(exports.DimensionZeroSuppressionAngular={}))[i.None=0]="None",i[i.Leading=1]="Leading",i[i.Trailing=2]="Trailing",i[i.LeadingAndTrailing=3]="LeadingAndTrailing",exports.DimensionTextHorizontal=void 0,(c=exports.DimensionTextHorizontal||(exports.DimensionTextHorizontal={}))[c.Center=0]="Center",c[c.Left=1]="Left",c[c.Right=2]="Right",c[c.OverFirst=3]="OverFirst",c[c.OverSecond=4]="OverSecond",exports.DimensionToleranceTextVertical=void 0,(d=exports.DimensionToleranceTextVertical||(exports.DimensionToleranceTextVertical={}))[d.Bottom=0]="Bottom",d[d.Center=1]="Center",d[d.Top=2]="Top",exports.HatchSolidFill=void 0,(l=exports.HatchSolidFill||(exports.HatchSolidFill={}))[l.PatternFill=0]="PatternFill",l[l.SolidFill=1]="SolidFill",exports.HatchAssociativity=void 0,(p=exports.HatchAssociativity||(exports.HatchAssociativity={}))[p.NonAssociative=0]="NonAssociative",p[p.Associative=1]="Associative",exports.HatchStyle=void 0,(u=exports.HatchStyle||(exports.HatchStyle={}))[u.Normal=0]="Normal",u[u.Outer=1]="Outer",u[u.Ignore=2]="Ignore",exports.HatchPatternType=void 0,(m=exports.HatchPatternType||(exports.HatchPatternType={}))[m.UserDefined=0]="UserDefined",m[m.Predefined=1]="Predefined",m[m.Custom=2]="Custom",exports.HatchBoundaryAnnotation=void 0,(E=exports.HatchBoundaryAnnotation||(exports.HatchBoundaryAnnotation={}))[E.NotAnnotated=0]="NotAnnotated",E[E.Annotated=1]="Annotated",exports.HatchGradientFlag=void 0,(h=exports.HatchGradientFlag||(exports.HatchGradientFlag={}))[h.Solid=0]="Solid",h[h.Gradient=1]="Gradient",exports.HatchGradientColorFlag=void 0,(I=exports.HatchGradientColorFlag||(exports.HatchGradientColorFlag={}))[I.TwoColor=0]="TwoColor",I[I.OneColor=1]="OneColor",exports.BoundaryPathTypeFlag=void 0,(f=exports.BoundaryPathTypeFlag||(exports.BoundaryPathTypeFlag={}))[f.Default=0]="Default",f[f.External=1]="External",f[f.Polyline=2]="Polyline",f[f.Derived=4]="Derived",f[f.Textbox=8]="Textbox",f[f.Outermost=16]="Outermost",exports.BoundaryPathEdgeType=void 0,(T=exports.BoundaryPathEdgeType||(exports.BoundaryPathEdgeType={}))[T.Line=1]="Line",T[T.Circular=2]="Circular",T[T.Elliptic=3]="Elliptic",T[T.Spline=4]="Spline",exports.ObscuredLineTypes=void 0,(x=exports.ObscuredLineTypes||(exports.ObscuredLineTypes={}))[x.Off=0]="Off",x[x.Solid=1]="Solid",x[x.Dashed=2]="Dashed",x[x.Dotted=3]="Dotted",x[x.ShotDash=4]="ShotDash",x[x.MediumDash=5]="MediumDash",x[x.LongDash=6]="LongDash",x[x.DoubleShortDash=7]="DoubleShortDash",x[x.DoubleMediumDash=8]="DoubleMediumDash",x[x.DoubleLongDash=9]="DoubleLongDash",x[x.DoubleMediumLongDash=10]="DoubleMediumLongDash",x[x.SparseDot=11]="SparseDot";const ec={DRAGVS:"NULL",INTERFERECOLOR:1,INTERFEREOBJVS:"Conceptual",INTERFEREVPVS:"3d Wireframe",OBSLTYPE:exports.ObscuredLineTypes.Off,SHADEDIF:70};function ed(e,r,a){return e.code===r&&(null==a||e.value===a)}function el(e){let r={};e.rewind();let a=e.next(),t=a.code;if(r.x=a.value,(a=e.next()).code!==t+10)throw Error("Expected code for point value to be 20 but got "+a.code+".");return(r.y=a.value,(a=e.next()).code!==t+20)?e.rewind():r.z=a.value,r}exports.ReservedLineweight=void 0,(D=exports.ReservedLineweight||(exports.ReservedLineweight={}))[D.Standard=-3]="Standard",D[D.ByLayer=-2]="ByLayer",D[D.ByBlock=-1]="ByBlock",exports.Measurement=void 0,(b=exports.Measurement||(exports.Measurement={}))[b.English=0]="English",b[b.Metric=1]="Metric",exports.ViewportStatusFlag=void 0,(O=exports.ViewportStatusFlag||(exports.ViewportStatusFlag={}))[O.PERSPECTIVE_MODE=1]="PERSPECTIVE_MODE",O[O.FRONT_CLIPPING=2]="FRONT_CLIPPING",O[O.BACK_CLIPPING=4]="BACK_CLIPPING",O[O.UCS_FOLLOW=8]="UCS_FOLLOW",O[O.FRONT_CLIP_NOT_AT_EYE=16]="FRONT_CLIP_NOT_AT_EYE",O[O.UCS_ICON_VISIBILITY=32]="UCS_ICON_VISIBILITY",O[O.UCS_ICON_AT_ORIGIN=64]="UCS_ICON_AT_ORIGIN",O[O.FAST_ZOOM=128]="FAST_ZOOM",O[O.SNAP_MODE=256]="SNAP_MODE",O[O.GRID_MODE=512]="GRID_MODE",O[O.ISOMETRIC_SNAP_STYLE=1024]="ISOMETRIC_SNAP_STYLE",O[O.HIDE_PLOT_MODE=2048]="HIDE_PLOT_MODE",O[O.K_ISO_PAIR_TOP=4096]="K_ISO_PAIR_TOP",O[O.K_ISO_PAIR_RIGHT=8192]="K_ISO_PAIR_RIGHT",O[O.VIEWPORT_ZOOM_LOCKING=16384]="VIEWPORT_ZOOM_LOCKING",O[O.UNUSED=32768]="UNUSED",O[O.NON_RECTANGULAR_CLIPPING=65536]="NON_RECTANGULAR_CLIPPING",O[O.VIEWPORT_OFF=131072]="VIEWPORT_OFF",O[O.GRID_BEYOND_DRAWING_LIMITS=262144]="GRID_BEYOND_DRAWING_LIMITS",O[O.ADAPTIVE_GRID_DISPLAY=524288]="ADAPTIVE_GRID_DISPLAY",O[O.SUBDIVISION_BELOW_SPACING=1048576]="SUBDIVISION_BELOW_SPACING",O[O.GRID_FOLLOWS_WORKPLANE=2097152]="GRID_FOLLOWS_WORKPLANE",exports.RenderMode=void 0,(g=exports.RenderMode||(exports.RenderMode={}))[g.OPTIMIZED_2D=0]="OPTIMIZED_2D",g[g.WIREFRAME=1]="WIREFRAME",g[g.HIDDEN_LINE=2]="HIDDEN_LINE",g[g.FLAT_SHADED=3]="FLAT_SHADED",g[g.GOURAUD_SHADED=4]="GOURAUD_SHADED",g[g.FLAT_SHADED_WITH_WIREFRAME=5]="FLAT_SHADED_WITH_WIREFRAME",g[g.GOURAUD_SHADED_WITH_WIREFRAME=6]="GOURAUD_SHADED_WITH_WIREFRAME",exports.UCSPerViewport=void 0,(S=exports.UCSPerViewport||(exports.UCSPerViewport={}))[S.UCS_UNCHANGED=0]="UCS_UNCHANGED",S[S.HAS_OWN_UCS=1]="HAS_OWN_UCS",exports.OrthographicType=void 0,(y=exports.OrthographicType||(exports.OrthographicType={}))[y.NON_ORTHOGRAPHIC=0]="NON_ORTHOGRAPHIC",y[y.TOP=1]="TOP",y[y.BOTTOM=2]="BOTTOM",y[y.FRONT=3]="FRONT",y[y.BACK=4]="BACK",y[y.LEFT=5]="LEFT",y[y.RIGHT=6]="RIGHT",exports.ShadePlotMode=void 0,(N=exports.ShadePlotMode||(exports.ShadePlotMode={}))[N.AS_DISPLAYED=0]="AS_DISPLAYED",N[N.WIREFRAME=1]="WIREFRAME",N[N.HIDDEN=2]="HIDDEN",N[N.RENDERED=3]="RENDERED",exports.DefaultLightingType=void 0,(A=exports.DefaultLightingType||(exports.DefaultLightingType={}))[A.ONE_DISTANT_LIGHT=0]="ONE_DISTANT_LIGHT",A[A.TWO_DISTANT_LIGHTS=1]="TWO_DISTANT_LIGHTS";const ep=Symbol();function eu(e,r){return(a,t,n)=>{let o=e.reduce((e,r)=>{r.pushContext&&e.push({});let a=e[e.length-1];for(let e of"number"==typeof r.code?[r.code]:r.code){let t=a[e]??(a[e]=[]);r.isMultiple&&t.length&&console.warn(`Snippet ${t.at(-1).name} for code(${e}) is shadowed by ${r.name}`),t.push(r)}return e},[{}]),s=!1,i=o.length-1;for(;!ed(a,0,"EOF");){let e=function(e,r,a){return e.find((e,t)=>t>=a&&e[r]?.length)}(o,a.code,i),r=e?.[a.code].at(-1);if(!e||!r){t.rewind();break}r.isMultiple||e[a.code].pop();let{name:c,parser:d,isMultiple:l}=r,p=d?.(a,t,n);if(p===ep){t.rewind();break}if(c){let[e,r]=function(e,r){let a=r.split("."),t=e;for(let e=0;e<a.length-1;++e){let r=a[e];Object.hasOwn(t,r)||(t[r]={}),t=t[r]}return[t,a.at(-1)]}(n,c);l?(Object.hasOwn(e,r)||(e[r]=[]),e[r].push(p)):e[r]=p}r.pushContext&&(i-=1),s=!0,a=t.next()}return r&&Object.setPrototypeOf(n,r),s}}function em({value:e}){return e}function eE(e,r){return el(r)}function eh({value:e}){return!!e}var eI=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215];function ef(e,r){if(!ed(e,1001))throw Error("XData must starts with code 1001");let a={appName:e.value,value:[]};e=r.next();let t=[a.value];for(;!ed(e,0,"EOF")&&e.code>=1e3;){let a=t.at(-1);switch(e.code){case 1002:"{"===e.value?t.push([]):(t.pop(),t.at(-1)?.push(a));break;case 1e3:case 1004:case 1040:case 1070:case 1071:a.push({type:eT(e.code),value:e.value});break;case 1003:a.push({name:"layer",type:eT(e.code),value:e.value});break;case 1005:a.push({name:"handle",type:eT(e.code),value:e.value});break;case 1010:a.push({type:eT(e.code),value:el(r)});break;case 1011:a.push({name:"worldSpacePosition",type:eT(e.code),value:el(r)});break;case 1012:a.push({name:"worldSpaceDisplacement",type:eT(e.code),value:el(r)});break;case 1013:a.push({name:"worldSpaceDirection",type:eT(e.code),value:el(r)});break;case 1041:a.push({name:"distance",type:eT(e.code),value:e.value});break;case 1042:a.push({name:"scale",type:eT(e.code),value:e.value})}e=r.next()}return r.rewind(),a}function eT(e){switch(e){case 1e3:case 1003:case 1005:return"string";case 1004:return"hex";case 1040:case 1041:case 1042:return"real";case 1070:return"integer";case 1071:return"long";case 1010:case 1011:case 1012:case 1013:return"point";default:return""}}function ex(e,r,a){if(ed(r,102))return eg(r,a),!0;switch(r.code){case 0:e.type=r.value;break;case 5:e.handle=r.value;break;case 330:e.ownerDictionarySoftId?e.ownerBlockRecordSoftId=r.value:e.ownerDictionarySoftId=r.value;break;case 360:e.ownerdictionaryHardId=r.value;break;case 67:e.isInPaperSpace=!!r.value;break;case 8:e.layer=r.value;break;case 6:e.lineType=r.value;break;case 347:e.materialObjectHardId=r.value;break;case 62:e.colorIndex=r.value,e.color=eI[Math.abs(r.value)];break;case 370:e.lineweight=r.value;break;case 48:e.lineTypeScale=r.value;break;case 60:e.isVisible=!!r.value;break;case 92:e.proxyByte=r.value;break;case 310:e.proxyEntity=r.value;break;case 100:break;case 420:e.color=r.value;break;case 430:e.transparency=r.value;break;case 390:e.plotStyleHardId=r.value;break;case 284:e.shadowMode=r.value;break;case 1001:e.xdata=ef(r,a);break;default:return!1}return!0}let eD=0;function eb(e){if(!e)throw TypeError("entity cannot be undefined or null");e.handle||(e.handle=eD++)}exports.ShadowMode=void 0,(L=exports.ShadowMode||(exports.ShadowMode={}))[L.CAST_AND_RECEIVE=0]="CAST_AND_RECEIVE",L[L.CAST=1]="CAST",L[L.RECEIVE=2]="RECEIVE",L[L.IGNORE=3]="IGNORE";const eO=[{code:1001,name:"xdata",parser:ef},{code:284,name:"shadowMode",parser:em},{code:390,name:"plotStyleHardId",parser:em},{code:440,name:"transparency",parser:em},{code:430,name:"colorName",parser:em},{code:420,name:"color",parser:em},{code:310,name:"proxyEntity",parser:em},{code:92,name:"proxyByte",parser:em},{code:60,name:"isVisible",parser:eh},{code:48,name:"lineTypeScale",parser:em},{code:370,name:"lineweight",parser:em},{code:62,name:"colorIndex",parser(e,r,a){let t=e.value;return a.color=eI[Math.abs(t)],t}},{code:347,name:"materialObjectHardId",parser:em},{code:6,name:"lineType",parser:em},{code:8,name:"layer",parser:em},{code:410,name:"layoutTabName",parser:em},{code:67,name:"isInPaperSpace",parser:eh},{code:100},{code:330,name:"ownerBlockRecordSoftId",parser:em},{code:102,parser:eg},{code:102,parser:eg},{code:102,parser:eg},{code:5,name:"handle",parser:em}];function eg(e,r){for(e=r.next();!ed(e,102)&&!ed(e,0,"EOF");)e=r.next()}function eS(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}const ey={extrusionDirection:{x:0,y:0,z:1}},eN=[{code:210,name:"extrusionDirection",parser:eE},{code:51,name:"endAngle",parser:em},{code:50,name:"startAngle",parser:em},{code:100,name:"subclassMarker",parser:em},{code:40,name:"radius",parser:em},{code:10,name:"center",parser:eE},{code:39,name:"thickness",parser:em},{code:100},...eO];class eA{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eS(this,"parser",eu(eN,ey))}}function eL(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eS(eA,"ForEntityName","ARC"),exports.AttributeFlag=void 0,(_=exports.AttributeFlag||(exports.AttributeFlag={}))[_.NONE=0]="NONE",_[_.INVISIBLE=1]="INVISIBLE",_[_.CONSTANT=2]="CONSTANT",_[_.VERIFICATION_REQUIRED=4]="VERIFICATION_REQUIRED",_[_.PRESET=8]="PRESET",exports.AttDefMTextFlag=void 0,(P=exports.AttDefMTextFlag||(exports.AttDefMTextFlag={}))[P.MULTILINE=2]="MULTILINE",P[P.CONSTANT_MULTILINE=4]="CONSTANT_MULTILINE",exports.TextGenerationFlag=void 0,(v=exports.TextGenerationFlag||(exports.TextGenerationFlag={}))[v.NONE=0]="NONE",v[v.MIRRORED_X=2]="MIRRORED_X",v[v.MIRRORED_Y=4]="MIRRORED_Y",exports.TextHorizontalAlign=void 0,(C=exports.TextHorizontalAlign||(exports.TextHorizontalAlign={}))[C.LEFT=0]="LEFT",C[C.CENTER=1]="CENTER",C[C.RIGHT=2]="RIGHT",C[C.ALIGNED=3]="ALIGNED",C[C.MIDDLE=4]="MIDDLE",C[C.FIT=5]="FIT",exports.TextVerticalAlign=void 0,(M=exports.TextVerticalAlign||(exports.TextVerticalAlign={}))[M.BASELINE=0]="BASELINE",M[M.BOTTOM=1]="BOTTOM",M[M.MIDDLE=2]="MIDDLE",M[M.TOP=3]="TOP";const e_={thickness:0,rotation:0,xScale:1,obliqueAngle:0,styleName:"STANDARD",generationFlag:0,halign:exports.TextHorizontalAlign.LEFT,valign:exports.TextVerticalAlign.BASELINE,extrusionDirection:{x:0,y:0,z:1}},eP=[{code:73,name:"valign",parser:em},{code:100},{code:210,name:"extrusionDirection",parser:eE},{code:11,name:"endPoint",parser:eE},{code:72,name:"valign",parser:em},{code:72,name:"halign",parser:em},{code:71,name:"generationFlag",parser:em},{code:7,name:"styleName",parser:em},{code:51,name:"obliqueAngle",parser:em},{code:41,name:"xScale",parser:em},{code:50,name:"rotation",parser:em},{code:1,name:"text",parser:em},{code:40,name:"textHeight",parser:em},{code:10,name:"startPoint",parser:eE},{code:39,name:"thickness",parser:em},{code:100,name:"subclassMarker",parser:em},...eO];class ev{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eL(this,"parser",eu(eP,e_))}}function eC(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eL(ev,"ForEntityName","TEXT");const eM={...e_},eF=[{code:2},{code:40,name:"annotationScale",parser:em},{code:10,name:"alignmentPoint",parser:eE},{code:340,name:"secondaryAttributesHardIds",isMultiple:!0,parser:em},{code:70,name:"numberOfSecondaryAttributes",parser:em},{code:70,name:"isReallyLocked",parser:eh},{code:70,name:"mtextFlag",parser:em},{code:280,name:"isDuplicatedRecord",parser:eh},{code:100},{code:280,name:"isLocked",parser:eh},{code:74,name:"valign",parser:em},{code:73},{code:70,name:"attributeFlag",parser:em},{code:2,name:"tag",parser:em},{code:3,name:"prompt",parser:em},{code:280},{code:100,name:"subclassMarker",parser:em},...eP.slice(2)];class eR{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eC(this,"parser",eu(eF,eM))}}function ek(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}eC(eR,"ForEntityName","ATTDEF");const ew={thickness:0,extrusionDirection:{x:0,y:0,z:1}},eV=[{code:210,name:"extrusionDirection",parser:eE},{code:40,name:"radius",parser:em},{code:10,name:"center",parser:eE},{code:39,name:"thickness",parser:em},{code:100,name:"subclassMarker",parser:em},...eO];class eB{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){ek(this,"parser",eu(eV,ew))}}ek(eB,"ForEntityName","CIRCLE");class eH{parseEntity(e,r){let a={};for(;!ed(r,0,"EOF");){if(0===r.code){e.rewind();break}!function(e,r,a){switch(r.code){case 100:e.subclassMarker=r.value;break;case 280:e.version=r.value;break;case 2:e.name=r.value;break;case 10:e.definitionPoint=el(a);break;case 11:e.textPoint=el(a);break;case 12:e.insertionPoint=el(a);break;case 13:e.subDefinitionPoint1=el(a);break;case 14:e.subDefinitionPoint2=el(a);break;case 15:e.centerPoint=el(a);break;case 16:e.arcPoint=el(a);break;case 70:e.dimensionType=r.value;break;case 71:e.attachmentPoint=r.value;break;case 72:e.textLineSpacingStyle=r.value;break;case 40:e.leaderLength=r.value;break;case 41:e.textLineSpacingFactor=r.value;break;case 42:e.measurement=r.value;break;case 1:e.text=r.value;break;case 50:e.rotationAngle=r.value;break;case 52:e.obliqueAngle=r.value;break;case 53:e.textRotation=r.value;break;case 51:e.ocsRotation=r.value;break;case 210:e.extrusionDirection=el(a);break;case 3:e.styleName=r.value;break;default:ex(e,r,a)}}(a,r,e),r=e.next()}return a}}function eG(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}R="DIMENSION",(F="ForEntityName")in eH?Object.defineProperty(eH,F,{value:R,enumerable:!0,configurable:!0,writable:!0}):eH[F]=R;const eU={extrusionDirection:{x:0,y:0,z:1}},eW=[{code:42,name:"endAngle",parser:em},{code:41,name:"startAngle",parser:em},{code:40,name:"axisRatio",parser:em},{code:210,name:"extrusionDirection",parser:eE},{code:11,name:"majorAxisEndPoint",parser:eE},{code:10,name:"center",parser:eE},{code:100,name:"subclassMarker",parser:em},...eO];class eY{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){eG(this,"parser",eu(eW,eU))}}eG(eY,"ForEntityName","ELLIPSE");const ej=[{code:330,name:"sourceBoundaryObjects",parser:em,isMultiple:!0},{code:97,name:"numberOfSourceBoundaryObjects",parser:em}],ez=[{code:11,name:"end",parser:eE},{code:10,name:"start",parser:eE}],eX=[{code:73,name:"isCCW",parser:eh},{code:51,name:"endAngle",parser:em},{code:50,name:"startAngle",parser:em},{code:40,name:"radius",parser:em},{code:10,name:"center",parser:eE}],eK=[{code:73,name:"isCCW",parser:eh},{code:51,name:"endAngle",parser:em},{code:50,name:"startAngle",parser:em},{code:40,name:"lengthOfMinorAxis",parser:em},{code:11,name:"end",parser:eE},{code:10,name:"center",parser:eE}],eZ=[{code:13,name:"endTangent",parser:eE},{code:12,name:"startTangent",parser:eE},{code:11,name:"fitDatum",isMultiple:!0,parser:eE},{code:97,name:"numberOfFitData",parser:em},{code:10,name:"controlPoints",isMultiple:!0,parser(e,r){let a={...el(r),weight:1};return 42===(e=r.next()).code?a.weight=e.value:r.rewind(),a}},{code:40,name:"knots",isMultiple:!0,parser:em},{code:96,name:"numberOfControlPoints",parser:em},{code:95,name:"numberOfKnots",parser:em},{code:74,name:"isPeriodic",parser:eh},{code:73,name:"splineFlag",parser:em},{code:94,name:"degree",parser:em}],eJ={[exports.BoundaryPathEdgeType.Line]:ez,[exports.BoundaryPathEdgeType.Circular]:eX,[exports.BoundaryPathEdgeType.Elliptic]:eK,[exports.BoundaryPathEdgeType.Spline]:eZ},e$=[...ej,{code:72,name:"edges",parser(e,r){let a={type:e.value},t=eu(eJ[a.type]);if(!t)throw Error(`Invalid edge type ${a.type}`);return t(e=r.next(),r,a),a},isMultiple:!0},{code:93,name:"numberOfEdges",parser:em}],eq=[...ej,{code:10,name:"vertices",parser(e,r){let a={...el(r),bulge:0};return 42===(e=r.next()).code?a.bulge=e.value:r.rewind(),a},isMultiple:!0},{code:93,name:"numberOfVertices",parser:em},{code:73,name:"isClosed",parser:eh},{code:72,name:"hasBulge",parser:eh}],eQ=[{code:49,name:"dashLengths",parser:em,isMultiple:!0},{code:79,name:"numberOfDashLengths",parser:em},{code:45,name:"offset",parser:e0},{code:43,name:"base",parser:e0},{code:53,name:"angle",parser:em}];function e0(e,r){let a=e.code+1,t={x:e.value,y:1};return(e=r.next()).code===a?t.y=e.value:r.rewind(),t}function e1(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}const e4={extrusionDirection:{x:0,y:0,z:1},gradientRotation:0,colorTint:0},e2=[{code:470},{code:463},{code:462,name:"colorTint",parser:em},{code:461,name:"gradientDefinition",parser:em},{code:460,name:"gradientRotation",parser:em},{code:453,name:"numberOfColors",parser:em},{code:452,name:"gradientColorFlag",parser:em},{code:451},{code:450,name:"gradientFlag",parser:em},{code:10,name:"seedPoints",parser:eE,isMultiple:!0},{code:99},{code:11,name:"offsetVector",parser:eE},{code:98,name:"numberOfSeedPoints",parser:em},{code:47,name:"pixelSize",parser:em},{code:53,name:"definitionLines",parser:function(e,r){let a={};return eu(eQ)(e,r,a),a},isMultiple:!0},{code:78,name:"numberOfDefinitionLines",parser:em},{code:77,name:"isDouble",parser:eh},{code:73,name:"isAnnotated",parser:eh},{code:41,name:"patternScale",parser:em},{code:52,name:"patternAngle",parser:em},{code:76,name:"patternType",parser:em},{code:75,name:"hatchStyle",parser:em},{code:92,name:"boundaryPaths",parser:function(e,r){let a={boundaryPathTypeFlag:e.value},t=a.boundaryPathTypeFlag&exports.BoundaryPathTypeFlag.Polyline;return(e=r.next(),t)?eu(eq)(e,r,a):eu(e$)(e,r,a),a},isMultiple:!0},{code:91,name:"numberOfBoundaryPaths",parser:em},{code:71,name:"associativity",parser:em},{code:63,name:"patternFillColor",parser:em},{code:70,name:"solidFill",parser:em},{code:2,name:"patternName",parser:em},{code:210,name:"extrusionDirection",parser:eE},{code:10,name:"elevationPoint",parser:eE},{code:100,name:"subclassMarker",parser:em,pushContext:!0},...eO];class e3{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){e1(this,"parser",eu(e2,e4))}}function e7(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}e1(e3,"ForEntityName","HATCH");const e5={xScale:1,yScale:1,zScale:1,rotation:0,columnCount:0,rowCount:0,columnSpacing:0,rowSpacing:0,extrusionDirection:{x:0,y:0,z:1}},e6=[{code:210,name:"extrusionDirection",parser:eE},{code:45,name:"rowSpacing",parser:em},{code:44,name:"columnSpacing",parser:em},{code:71,name:"rowCount",parser:em},{code:70,name:"columnCount",parser:em},{code:50,name:"rotation",parser:em},{code:43,name:"zScale",parser:em},{code:42,name:"yScale",parser:em},{code:41,name:"xScale",parser:em},{code:10,name:"insertionPoint",parser:eE},{code:2,name:"name",parser:em},{code:66,name:"isVariableAttributes",parser:eh},{code:100,name:"subclassMarker",parser:em},...eO];class e9{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){e7(this,"parser",eu(e6,e5))}}function e8(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}e7(e9,"ForEntityName","INSERT");const re={isArrowheadEnabled:!0},rr=[{code:213,name:"offsetFromAnnotation",parser:eE},{code:212,name:"offsetFromBlock",parser:eE},{code:211,name:"horizontalDirection",parser:eE},{code:210,name:"normal",parser:eE},{code:340,name:"associatedAnnotation",parser:em},{code:77,name:"byBlockColor",parser:em},{code:10,name:"vertices",parser:eE,isMultiple:!0},{code:76,name:"numberOfVertices",parser:em},{code:41,name:"textWidth",parser:em},{code:40,name:"textHeight",parser:em},{code:75,name:"isHooklineExists",parser:eh},{code:74,name:"isHooklineSameDirection",parser:eh},{code:73,name:"leaderCreationFlag",parser:em},{code:72,name:"isSpline",parser:eh},{code:71,name:"isArrowheadEnabled",parser:eh},{code:3,name:"styleName",parser:em},{code:100,name:"subclassMarker",parser:em},...eO];class ra{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){e8(this,"parser",eu(rr,re))}}function rt(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}e8(ra,"ForEntityName","LEADER"),exports.LeaderCreationFlag=void 0,(k=exports.LeaderCreationFlag||(exports.LeaderCreationFlag={}))[k.TextAnnotation=0]="TextAnnotation",k[k.ToleranceAnnotation=1]="ToleranceAnnotation",k[k.BlockReferenceAnnotation=2]="BlockReferenceAnnotation",k[k.NoAnnotation=3]="NoAnnotation";const rn={thickness:0,extrusionDirection:{x:0,y:0,z:1}},ro=[{code:210,name:"extrusionDirection",parser:eE},{code:11,name:"endPoint",parser:eE},{code:10,name:"startPoint",parser:eE},{code:39,name:"thickness",parser:em},{code:100,name:"subclassMarker",parser:em},...eO];class rs{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rt(this,"parser",eu(ro,rn))}}rt(rs,"ForEntityName","LINE"),exports.LWPolylineFlag=void 0,(w=exports.LWPolylineFlag||(exports.LWPolylineFlag={}))[w.IS_CLOSED=1]="IS_CLOSED",w[w.PLINE_GEN=128]="PLINE_GEN";const ri={flag:0,elevation:0,thickness:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rc={bulge:0},rd=[{code:42,name:"bulge",parser:em},{code:41,name:"endWidth",parser:em},{code:40,name:"startWidth",parser:em},{code:91,name:"id",parser:em},{code:20,name:"y",parser:em},{code:10,name:"x",parser:em}],rl=[{code:210,name:"extrusionDirection",parser:eE},{code:10,name:"vertices",isMultiple:!0,parser(e,r){let a={};return eu(rd,rc)(e,r,a),a}},{code:39,name:"thickness",parser:em},{code:38,name:"elevation",parser:em},{code:43,name:"constantWidth",parser:em},{code:70,name:"flag",parser:em},{code:90,name:"numberOfVertices",parser:em},{code:100,name:"subclassMarker",parser:em},...eO];class rp{parseEntity(e,r){let a={};return eu(rl,ri)(r,e,a),a}}function ru({seeds:e,spanner:r,serializer:a,iterationLimit:t=1/0}){let n=new Set,o=0;return e.map(e=>{let s=[],i=[[e,a(e)]];for(;i.length&&o++<t;){let[e,t]=i.pop();if(!n.has(t))for(let o of(n.add(t),s.push(e),r(e)))i.push([o,a(o)])}return s}).filter(e=>e.length)}function rm(e,r){let a={};for(let t of e){let e=r(t);null!=e&&(a[e]??(a[e]=[]),a[e].push(t))}return a}function*rE(e,r=1/0,a=1){for(let t=e;t!==r;t+=a)yield t}function rh(e){return{x:e.x??0,y:e.y??0,z:e.z??0}}function rI(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}B="LWPOLYLINE",(V="ForEntityName")in rp?Object.defineProperty(rp,V,{value:B,enumerable:!0,configurable:!0,writable:!0}):rp[V]=B,exports.MTextDrawingDirection=void 0,(H=exports.MTextDrawingDirection||(exports.MTextDrawingDirection={}))[H.LEFT_TO_RIGHT=1]="LEFT_TO_RIGHT",H[H.TOP_TO_BOTTOM=3]="TOP_TO_BOTTOM",H[H.BY_STYLE=5]="BY_STYLE";const rf={textStyle:"STANDARD",extrusionDirection:{x:0,y:0,z:1},rotation:0},rT=[{code:46,name:"annotationHeight",parser:em},{code:101,parser(e,r){!function(e){e.rewind();let r=e.next();if(101!==r.code)throw Error("Bad call for skipEmbeddedObject()");do r=e.next();while(0!==r.code);e.rewind()}(r)}},{code:50,name:"columnHeight",parser:em},{code:49,name:"columnGutter",parser:em},{code:48,name:"columnWidth",parser:em},{code:79,name:"columnAutoHeight",parser:em},{code:78,name:"columnFlowReversed",parser:em},{code:76,name:"columnCount",parser:em},{code:75,name:"columnType",parser:em},{code:441,name:"backgroundFillTransparency",parser:em},{code:63,name:"backgroundFillColor",parser:em},{code:45,name:"fillBoxScale",parser:em},{code:[...rE(430,440)],name:"backgroundColor",parser:em},{code:[...rE(420,430)],name:"backgroundColor",parser:em},{code:90,name:"backgroundFill",parser:em},{code:44,name:"lineSpacing",parser:em},{code:73,name:"lineSpacingStyle",parser:em},{code:50,name:"rotation",parser:em},{code:43},{code:42},{code:11,name:"direction",parser:eE},{code:210,name:"extrusionDirection",parser:eE},{code:7,name:"styleName",parser:em},{code:3,name:"text",parser:(e,r,a)=>(a.text??"")+e.value},{code:1,name:"text",parser:em},{code:72,name:"drawingDirection",parser:em},{code:71,name:"attachmentPoint",parser:em},{code:41,name:"width",parser:em},{code:40,name:"height",parser:em},{code:10,name:"insertionPoint",parser:eE},{code:100,name:"subclassMarker",parser:em},...eO];class rx{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rI(this,"parser",eu(rT,rf))}}function rD(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rI(rx,"ForEntityName","MTEXT");const rb={thickness:0,extrusionDirection:{x:0,y:0,z:1},angle:0},rO=[{code:50,name:"angle",parser:em},{code:210,name:"extrusionDirection",parser:eE},{code:39,name:"thickness",parser:em},{code:10,name:"position",parser:eE},{code:100,name:"subclassMarker",parser:em},...eO];class rg{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rD(this,"parser",eu(rO,rb))}}function rS(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rD(rg,"ForEntityName","POINT"),exports.PolylineFlag=void 0,(G=exports.PolylineFlag||(exports.PolylineFlag={}))[G.CLOSED_POLYLINE=1]="CLOSED_POLYLINE",G[G.CURVE_FIT=2]="CURVE_FIT",G[G.SPLINE_FIT=4]="SPLINE_FIT",G[G.POLYLINE_3D=8]="POLYLINE_3D",G[G.POLYGON_3D=16]="POLYGON_3D",G[G.CLOSED_POLYGON=32]="CLOSED_POLYGON",G[G.POLYFACE=64]="POLYFACE",G[G.CONTINUOUS=128]="CONTINUOUS",exports.SmoothType=void 0,(U=exports.SmoothType||(exports.SmoothType={}))[U.NONE=0]="NONE",U[U.QUADRATIC=5]="QUADRATIC",U[U.CUBIC=6]="CUBIC",U[U.BEZIER=8]="BEZIER",exports.VertexFlag=void 0,(W=exports.VertexFlag||(exports.VertexFlag={}))[W.CREATED_BY_CURVE_FIT=1]="CREATED_BY_CURVE_FIT",W[W.TANGENT_DEFINED=2]="TANGENT_DEFINED",W[W.NOT_USED=4]="NOT_USED",W[W.CREATED_BY_SPLINE_FIT=8]="CREATED_BY_SPLINE_FIT",W[W.SPLINE_CONTROL_POINT=16]="SPLINE_CONTROL_POINT",W[W.FOR_POLYLINE=32]="FOR_POLYLINE",W[W.FOR_POLYGON=64]="FOR_POLYGON",W[W.POLYFACE=128]="POLYFACE";const ry={startWidth:0,endWidth:0,bulge:0},rN=[{code:91,name:"id",parser:em},{code:[...rE(71,75)],name:"faces",isMultiple:!0,parser:em},{code:50,name:"tangentDirection",parser:em},{code:70,name:"flag",parser:em},{code:42,name:"bulge",parser:em},{code:41,name:"endWidth",parser:em},{code:40,name:"startWidth",parser:em},{code:30,name:"z",parser:em},{code:20,name:"y",parser:em},{code:10,name:"x",parser:em},{code:100,name:"subclassMarker",parser:em},{code:100},...eO];class rA{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rS(this,"parser",eu(rN,ry))}}function rL(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rS(rA,"ForEntityName","VERTEX");const r_={thickness:0,flag:0,startWidth:0,endWidth:0,meshMVertexCount:0,meshNVertexCount:0,surfaceMDensity:0,surfaceNDensity:0,smoothType:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rP=[{code:0,name:"vertices",isMultiple:!0,parser:(e,r)=>ed(e,0,"VERTEX")?(e=r.next(),new rA().parseEntity(r,e)):ep},{code:210,name:"extrusionDirection",parser:eE},{code:75,name:"smoothType",parser:em},{code:74,name:"surfaceNDensity",parser:em},{code:73,name:"surfaceMDensity",parser:em},{code:72,name:"meshNVertexCount",parser:em},{code:71,name:"meshMVertexCount",parser:em},{code:41,name:"endWidth",parser:em},{code:40,name:"startWidth",parser:em},{code:70,name:"flag",parser:em},{code:39,name:"thickness",parser:em},{code:30,name:"elevation",parser:em},{code:20},{code:10},{code:66},{code:100,name:"subclassMarker",parser:em},...eO];class rv{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rL(this,"parser",eu(rP,r_))}}function rC(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rL(rv,"ForEntityName","POLYLINE");const rM={vertices:[],backLineVertices:[]},rF=[{code:360,name:"geometrySettingHardId",parser:em},{code:12,name:"backLineVertices",isMultiple:!0,parser:eE},{code:93,name:"numberOfBackLineVertices",parser:em},{code:11,name:"vertices",isMultiple:!0,parser:eE},{code:92,name:"verticesCount",parser:em},{code:[63,411],name:"indicatorColor",parser:em},{code:70,name:"indicatorTransparency",parser:em},{code:41,name:"bottomHeight",parser:em},{code:40,name:"topHeight",parser:em},{code:10,name:"verticalDirection",parser:eE},{code:1,name:"name",parser:em},{code:91,name:"flag",parser:em},{code:90,name:"state",parser:em},{code:100,name:"subclassMarker",parser:em},...eO];class rR{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rC(this,"parser",eu(rF,rM))}}function rk(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rC(rR,"ForEntityName","SECTION");const rw={points:[],thickness:0,extrusionDirection:{x:0,y:0,z:1}},rV=[{code:210,name:"extrusionDirection",parser:eE},{code:39,name:"thickness",parser:em},{code:[...rE(10,14)],name:"points",isMultiple:!0,parser:eE},{code:100,name:"subclassMarker",parser:em},...eO];class rB{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rk(this,"parser",eu(rV,rw))}}function rH(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}rk(rB,"ForEntityName","SOLID"),exports.SplineFlag=void 0,(Y=exports.SplineFlag||(exports.SplineFlag={}))[Y.NONE=0]="NONE",Y[Y.CLOSED=1]="CLOSED",Y[Y.PERIODIC=2]="PERIODIC",Y[Y.RATIONAL=4]="RATIONAL",Y[Y.PLANAR=8]="PLANAR",Y[Y.LINEAR=16]="LINEAR";const rG={knotTolerance:1e-6,controlTolerance:1e-6,fitTolerance:1e-9,knotValues:[],controlPoints:[],fitPoints:[]},rU=[{code:11,name:"fitPoints",isMultiple:!0,parser:eE},{code:10,name:"controlPoints",isMultiple:!0,parser:eE},{code:41,name:"weights",isMultiple:!0,parser:em},{code:40,name:"knots",isMultiple:!0,parser:em},{code:13,name:"endTangent",parser:eE},{code:12,name:"startTangent",parser:eE},{code:44,name:"fitTolerance",parser:em},{code:43,name:"controlTolerance",parser:em},{code:42,name:"knotTolerance",parser:em},{code:74,name:"numberOfFitPoints",parser:em},{code:73,name:"numberOfControlPoints",parser:em},{code:72,name:"numberOfKnots",parser:em},{code:71,name:"degree",parser:em},{code:70,name:"flag",parser:em},{code:210,name:"normal",parser:eE},{code:100,name:"subclassMarker",parser:em},...eO];class rW{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rH(this,"parser",eu(rU,rG))}}rH(rW,"ForEntityName","SPLINE");class rY{parseEntity(e,r){let a={};for(;"EOF"!==r;){if(0===r.code){e.rewind();break}!function(e,r,a){if("EOF"===a)return!1;switch(a.code){case 0:return!1;case 100:e.subclassMarker=a.value;break;case 10:e.viewportCenter=rh(el(r));break;case 40:e.width=a.value;break;case 41:e.height=a.value;break;case 68:e.status=a.value;break;case 69:e.viewportId=a.value;break;case 12:e.displayCenter=el(r);break;case 13:e.snapBase=el(r);break;case 14:e.snapSpacing=el(r);break;case 15:e.gridSpacing=el(r);break;case 16:e.viewDirection=rh(el(r));break;case 17:e.targetPoint=rh(el(r));break;case 42:e.perspectiveLensLength=a.value;break;case 43:e.frontClipZ=a.value;break;case 44:e.backClipZ=a.value;break;case 45:e.viewHeight=a.value;break;case 50:e.snapAngle=a.value;break;case 51:e.viewTwistAngle=a.value;break;case 72:e.circleZoomPercent=a.value;break;case 331:e.frozenLayerIds??(e.frozenLayerIds=[]),e.frozenLayerIds.push(a.value);break;case 90:e.statusBitFlags=a.value;break;case 340:e.clippingBoundaryId=a.value;break;case 1:e.sheetName=a.value;break;case 281:e.renderMode=a.value;break;case 71:e.ucsPerViewport=a.value;break;case 110:e.ucsOrigin=rh(el(r));break;case 111:e.ucsXAxis=rh(el(r));break;case 112:e.ucsYAxis=rh(el(r));break;case 345:e.ucsId=a.value;break;case 346:e.ucsBaseId=a.value;break;case 79:e.orthographicType=a.value;break;case 146:e.elevation=a.value;break;case 170:e.shadePlotMode=a.value;break;case 61:e.majorGridFrequency=a.value;break;case 332:e.backgroundId=a.value;break;case 333:e.shadePlotId=a.value;break;case 348:e.visualStyleId=a.value;break;case 292:e.isDefaultLighting=!!a.value;break;case 282:e.defaultLightingType=a.value;break;case 141:e.brightness=a.value;break;case 142:e.contrast=a.value;break;case 63:case 421:case 431:e.ambientLightColor=a.value;break;case 361:e.sunId=a.value;break;case 335:case 343:case 344:case 91:e.softPointer=a.value}return!0}(a,e,r)&&ex(a,r,e),r=e.next()}return a}}function rj(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}z="VIEWPORT",(j="ForEntityName")in rY?Object.defineProperty(rY,j,{value:z,enumerable:!0,configurable:!0,writable:!0}):rY[j]=z,(X=ee||(ee={}))[X.INVISIBLE=1]="INVISIBLE",X[X.CONSTANT=2]="CONSTANT",X[X.REQUIRE_VERIFICATION=4]="REQUIRE_VERIFICATION",X[X.PRESET=8]="PRESET";const rz={thickness:0,rotation:0,scale:1,obliqueAngle:0,textStyle:"STANDARD",textGenerationFlag:0,horizontalJustification:0,verticalJustification:0,extrusionDirection:{x:0,y:0,z:1}},rX=[...rT.slice(rT.findIndex(({name:e})=>"columnType"===e),rT.findIndex(({name:e})=>"subclassMarker"===e)+1),{code:100},{code:0,parser(e){if(!ed(e,0,"MTEXT"))return ep}},{code:2,name:"definitionTag",parser:em},{code:40,name:"annotationScale",parser:em},{code:10,name:"alignmentPoint",parser:eE},{code:340,name:"secondaryAttributesHardId",parser:em},{code:70,name:"numberOfSecondaryAttributes",parser:em},{code:70,name:"isReallyLocked",parser:eh},{code:70,name:"mtextFlag",parser:em},{code:280,name:"isDuplicatedEntriesKeep",parser:eh},{code:100},{code:280,name:"lockPositionFlag",parser:eh},{code:210,name:"extrusionDirection",parser:eE},{code:11,name:"alignmentPoint",parser:eE},{code:74,name:"verticalJustification",parser:em},{code:72,name:"horizontalJustification",parser:em},{code:71,name:"textGenerationFlag",parser:em},{code:7,name:"textStyle",parser:em},{code:51,name:"obliqueAngle",parser:em},{code:41,name:"scale",parser:em},{code:50,name:"rotation",parser:em},{code:73},{code:70,name:"attributeFlag",parser:em},{code:2,name:"tag",parser:em},{code:280},{code:100,name:"subclassMarker",parser:em},{code:1,name:"text",parser:em},{code:40,name:"textHeight",parser:em},{code:10,name:"startPoint",parser:eE},{code:39,name:"thickness",parser:em},{code:100},...eO];class rK{parseEntity(e,r){let a={};return this.parser(r,e,a),a}constructor(){rj(this,"parser",eu(rX,rz))}}rj(rK,"ForEntityName","ATTRIB");const rZ=Object.fromEntries([eA,eR,rK,eB,eH,eY,e9,ra,rs,rp,rx,rg,rv,rR,rB,rW,ev,e3,rY].map(e=>[e.ForEntityName,new e]));function rJ(e,r){let a=[];for(;!ed(e,0,"EOF");){if(0===e.code){if("ENDBLK"===e.value||"ENDSEC"===e.value){r.rewind();break}let t=rZ[e.value];if(t){let n=e.value;e=r.next();let o=t.parseEntity(r,e);o.type=n,eb(o),a.push(o)}else console.warn(`Unsupported ENTITY type: ${e.value}`)}e=r.next()}return a}function r$(e,r){let a={};for(;!ed(e,0,"EOF")&&!ed(e,0,"ENDSEC");){if(ed(e,0,"BLOCK")){let t=rq(e=r.next(),r);eb(t),t.name&&(a[t.name]=t)}e=r.next()}return a}function rq(e,r){let a={};for(;!ed(e,0,"EOF");){if(ed(e,0,"ENDBLK")){for(e=r.next();!ed(e,0,"EOF");){if(ed(e,100,"AcDbBlockEnd"))return a;e=r.next()}break}switch(e.code){case 1:a.xrefPath=e.value;break;case 2:a.name=e.value;break;case 3:a.name2=e.value;break;case 5:a.handle=e.value;break;case 8:a.layer=e.value;break;case 10:a.position=el(r);break;case 67:a.paperSpace=!!e.value&&1==e.value;break;case 70:0!==e.value&&(a.type=e.value);break;case 100:break;case 330:a.ownerHandle=e.value;break;case 0:a.entities=rJ(e,r)}e=r.next()}return a}function rQ(e,r){let a=null,t={};for(;!ed(e,0,"EOF")&&!ed(e,0,"ENDSEC");)9===e.code?a=e.value:10===e.code?t[a]=el(r):t[a]=e.value,e=r.next();return t}const r0=[{code:333,name:"shadePlotId",parser:em},{code:149,name:"imageOriginY",parser:em},{code:148,name:"imageOriginX",parser:em},{code:147,name:"scaleFactor",parser:em},{code:78,name:"shadePlotCustomDPI",parser:em},{code:77,name:"shadePlotResolution",parser:em},{code:76,name:"shadePlotMode",parser:em},{code:75,name:"standardScaleType",parser:em},{code:7,name:"currentStyleSheet",parser:em},{code:74,name:"plotType",parser:em},{code:73,name:"plotRotation",parser:em},{code:72,name:"paperUnit",parser:em},{code:70,name:"layoutFlag",parser:em},{code:143,name:"printScaleDenominator",parser:em},{code:142,name:"printScaleNominator",parser:em},{code:141,name:"windowAreaYMax",parser:em},{code:140,name:"windowAreaYMin",parser:em},{code:49,name:"windowAreaXMax",parser:em},{code:48,name:"windowAreaXMin",parser:em},{code:47,name:"plotOriginY",parser:em},{code:46,name:"plotOriginX",parser:em},{code:45,name:"paperHeight",parser:em},{code:44,name:"paperWidth",parser:em},{code:43,name:"marginTop",parser:em},{code:42,name:"marginRight",parser:em},{code:41,name:"marginBottom",parser:em},{code:40,name:"marginLeft",parser:em},{code:6,name:"plotViewName",parser:em},{code:4,name:"paperSize",parser:em},{code:2,name:"configName",parser:em},{code:1,name:"pageSetupName",parser:em},{code:100,name:"subclassMarker",parser:em}];(K=er||(er={}))[K.INCHES=0]="INCHES",K[K.MILLIMETERS=1]="MILLIMETERS",K[K.PIXELS=2]="PIXELS",(Z=ea||(ea={}))[Z.LAST_SCREEN_DISPLAY=0]="LAST_SCREEN_DISPLAY",Z[Z.DRAWING_EXTENTS=1]="DRAWING_EXTENTS",Z[Z.DRAWING_LIMITS=2]="DRAWING_LIMITS",Z[Z.VIEW_SPECIFIED=3]="VIEW_SPECIFIED",Z[Z.WINDOW_SPECIFIED=4]="WINDOW_SPECIFIED",Z[Z.LAYOUT_INFORMATION=5]="LAYOUT_INFORMATION",(J=et||(et={}))[J.AS_DISPLAYED=0]="AS_DISPLAYED",J[J.WIREFRAME=1]="WIREFRAME",J[J.HIDDEN=2]="HIDDEN",J[J.RENDERED=3]="RENDERED",($=en||(en={}))[$.DRAFT=0]="DRAFT",$[$.PREVIEW=1]="PREVIEW",$[$.NORMAL=2]="NORMAL",$[$.PRESENTATION=3]="PRESENTATION",$[$.MAXIMUM=4]="MAXIMUM",$[$.CUSTOM=5]="CUSTOM";const r1=[{code:333,name:"shadePlotId",parser:em},{code:346,name:"orthographicUcsId",parser:em},{code:345,name:"namedUcsId",parser:em},{code:331,name:"viewportId",parser:em},{code:330,name:"paperSpaceTableId",parser:em},{code:76,name:"orthographicType",parser:em},{code:17,name:"ucsYAxis",parser:eE},{code:16,name:"ucsXAxis",parser:eE},{code:13,name:"ucsOrigin",parser:eE},{code:146,name:"elevation",parser:em},{code:15,name:"maxExtent",parser:eE},{code:14,name:"minExtent",parser:eE},{code:12,name:"insertionBase",parser:eE},{code:11,name:"maxLimit",parser:eE},{code:10,name:"minLimit",parser:eE},{code:71,name:"tabOrder",parser:em},{code:70,name:"controlFlag",parser:em},{code:1,name:"layoutName",parser:em},{code:100,name:"subclassMarker",parser:em},...r0];(q=eo||(eo={}))[q.PSLTSCALE=1]="PSLTSCALE",q[q.LIMCHECK=2]="LIMCHECK";const r4=[{code:330,name:"ownerObjectId",parser:em},{code:102},{code:360,name:"ownerDictionaryIdHard",parser:em},{code:102},{code:102},{code:330,name:"ownerDictionaryIdSoft",parser:em},{code:102},{code:102},{code:102},{code:5,name:"handle",parser:em}],r2=[{code:3,name:"entries",parser:(e,r)=>{let a={name:e.value};return 350===(e=r.next()).code?a.objectId=e.value:r.rewind(),a},isMultiple:!0},{code:281,name:"recordCloneFlag",parser:em},{code:280,name:"isHardOwned",parser:eh},{code:100,name:"subclassMarker",parser:em}];function r3(e){return"AcDbDictionary"===e.subclassMarker}(Q=es||(es={}))[Q.NOT_APPLICABLE=0]="NOT_APPLICABLE",Q[Q.KEEP_EXISTING=1]="KEEP_EXISTING",Q[Q.USE_CLONE=2]="USE_CLONE",Q[Q.XREF_VALUE_NAME=3]="XREF_VALUE_NAME",Q[Q.VALUE_NAME=4]="VALUE_NAME",Q[Q.UNMANGLE_NAME=5]="UNMANGLE_NAME";const r7={LAYOUT:r1,PLOTSETTINGS:r0,DICTIONARY:r2};function r5(e,r){let a=[];for(;0!==e.code||!["EOF","ENDSEC"].includes(e.value);){let t=e.value,n=r7[t];if(0===e.code&&n?.length){let o=eu([...r4,...n]),s={name:t};o(e=r.next(),r,s)?(a.push(s),e=r.peek()):e=r.next()}else e=r.next()}return{byName:rm(a,({name:e})=>e),byTree:function(e){let r=Object.fromEntries(e.map(e=>[e.handle,e]));for(let a of e)(!r3(a)||"0"!==a.ownerDictionaryIdSoft)&&(a.ownerDictionaryIdSoft&&(a.ownerDictionarySoft=r[a.ownerDictionaryIdSoft]),a.ownerDictionaryIdHard&&(a.ownerDictionaryHard=r[a.ownerDictionaryIdHard]),a.ownerObjectId&&(a.ownerObject=r[a.ownerObjectId])),function(e,r){r3(e)&&e.entries&&(e.entries=Object.fromEntries(e.entries.map(({name:e,objectId:a})=>[e,r[a]])))}(a,r);return e[0]}(a)}}const r6=[{code:100,name:"subclassMarker",parser:em},{code:330,name:"ownerObjectId",parser:em},{code:102,parser(e,r){for(;!ed(e,0,"EOF")&&!ed(e,102,"}");)e=r.next()}},{code:5,name:"handle",parser:em}],r9=eu([{code:310,name:"bmpPreview",parser:em},{code:281,name:"scalability",parser:em},{code:280,name:"explodability",parser:em},{code:70,name:"insertionUnits",parser:em},{code:340,name:"layoutObjects",parser:em},{code:2,name:"name",parser:em},{code:100,name:"subclassMarker",parser:em},...r6]),r8=eu([...[{name:"DIMPOST",code:3},{name:"DIMAPOST",code:4},{name:"DIMBLK_OBSOLETE",code:5},{name:"DIMBLK1_OBSOLETE",code:6},{name:"DIMBLK2_OBSOLETE",code:7},{name:"DIMSCALE",code:40,defaultValue:1},{name:"DIMASZ",code:41,defaultValue:.25},{name:"DIMEXO",code:42,defaultValue:.625,defaultValueImperial:.0625},{name:"DIMDLI",code:43,defaultValue:3.75,defaultValueImperial:.38},{name:"DIMEXE",code:44,defaultValue:2.25,defaultValueImperial:.28},{name:"DIMRND",code:45,defaultValue:0},{name:"DIMDLE",code:46,defaultValue:0},{name:"DIMTP",code:47,defaultValue:0},{name:"DIMTM",code:48,defaultValue:0},{name:"DIMTXT",code:140,defaultValue:2.5,defaultValueImperial:.28},{name:"DIMCEN",code:141,defaultValue:2.5,defaultValueImperial:.09},{name:"DIMTSZ",code:142,defaultValue:0},{name:"DIMALTF",code:143,defaultValue:25.4},{name:"DIMLFAC",code:144,defaultValue:1},{name:"DIMTVP",code:145,defaultValue:0},{name:"DIMTFAC",code:146,defaultValue:1},{name:"DIMGAP",code:147,defaultValue:.625,defaultValueImperial:.09},{name:"DIMALTRND",code:148,defaultValue:0},{name:"DIMTOL",code:71,defaultValue:0,defaultValueImperial:1},{name:"DIMLIM",code:72,defaultValue:0},{name:"DIMTIH",code:73,defaultValue:0,defaultValueImperial:1},{name:"DIMTOH",code:74,defaultValue:0,defaultValueImperial:1},{name:"DIMSE1",code:75,defaultValue:0},{name:"DIMSE2",code:76,defaultValue:0},{name:"DIMTAD",code:77,defaultValue:exports.DimensionTextVertical.Above,defaultValueImperial:exports.DimensionTextVertical.Center},{name:"DIMZIN",code:78,defaultValue:exports.DimensionZeroSuppression.Trailing,defaultValueImperial:exports.DimensionZeroSuppression.Feet},{name:"DIMAZIN",code:79,defaultValue:exports.DimensionZeroSuppressionAngular.None},{name:"DIMALT",code:170,defaultValue:0},{name:"DIMALTD",code:171,defaultValue:3,defaultValueImperial:2},{name:"DIMTOFL",code:172,defaultValue:1,defaultValueImperial:0},{name:"DIMSAH",code:173,defaultValue:0},{name:"DIMTIX",code:174,defaultValue:0},{name:"DIMSOXD",code:175,defaultValue:0},{name:"DIMCLRD",code:176,defaultValue:0},{name:"DIMCLRE",code:177,defaultValue:0},{name:"DIMCLRT",code:178,defaultValue:0},{name:"DIMADEC",code:179},{name:"DIMUNIT",code:270},{name:"DIMDEC",code:271,defaultValue:2,defaultValueImperial:4},{name:"DIMTDEC",code:272,defaultValue:2,defaultValueImperial:4},{name:"DIMALTU",code:273,defaultValue:2},{name:"DIMALTTD",code:274,defaultValue:2,defaultValueImperial:4},{name:"DIMAUNIT",code:275,defaultValue:0},{name:"DIMFRAC",code:276,defaultValue:0},{name:"DIMLUNIT",code:277,defaultValue:2},{name:"DIMDSEP",code:278,defaultValue:",",defaultValueImperial:"."},{name:"DIMJUST",code:280,defaultValue:exports.DimensionTextHorizontal.Center},{name:"DIMSD1",code:281,defaultValue:0},{name:"DIMSD2",code:282,defaultValue:0},{name:"DIMTOLJ",code:283,defaultValue:exports.DimensionToleranceTextVertical.Center},{name:"DIMTZIN",code:284,defaultValue:exports.DimensionZeroSuppression.Trailing,defaultValueImperial:exports.DimensionZeroSuppression.Feet},{name:"DIMALTZ",code:285,defaultValue:exports.DimensionZeroSuppression.Trailing},{name:"DIMALTTZ",code:286,defaultValue:exports.DimensionZeroSuppression.Trailing},{name:"DIMFIT",code:287},{name:"DIMUPT",code:288,defaultValue:0},{name:"DIMATFIT",code:289,defaultValue:3},{name:"DIMTXSTY",code:340},{name:"DIMLDRBLK",code:341},{name:"DIMBLK",code:342},{name:"DIMBLK1",code:343},{name:"DIMBLK2",code:344},{name:"DIMLWD",code:371,defaultValue:-2},{name:"DIMLWD",code:372,defaultValue:-2}].map(e=>({...e,parser:em})),{code:70,name:"standardFlag",parser:em},{code:2,name:"name",parser:em},{code:100,name:"subclassMarker",parser:em},{code:105,name:"handle",parser:em},...r6.filter(e=>5!==e.code)]),ae=eu([{code:347,name:"materialObjectId",parser:em},{code:390,name:"plotStyleNameObjectId",parser:em},{code:370,name:"lineweight",parser:em},{code:290,name:"isPlotting",parser:eh},{code:6,name:"lineType",parser:em},{code:62,name:"colorIndex",parser:em},{code:70,name:"standardFlag",parser:em},{code:2,name:"name",parser:em},{code:100,name:"subclassMarker",parser:em},...r6]),ar=eu([{code:9,name:"text",parser:em},{code:45,name:"offsetY",parser:em},{code:44,name:"offsetX",parser:em},{code:50,name:"rotation",parser:em},{code:46,name:"scale",parser:em},{code:340,name:"styleObjectId",parser:em},{code:75,name:"shapeNumber",parser:em},{code:74,name:"elementTypeFlag",parser:em},{code:49,name:"elementLength",parser:em}],{elementTypeFlag:0,elementLength:0}),aa={BLOCK_RECORD:r9,DIMSTYLE:r8,LAYER:ae,LTYPE:eu([{code:49,name:"pattern",parser(e,r){let a={};return ar(e,r,a),a},isMultiple:!0},{code:40,name:"totalPatternLength",parser:em},{code:73,name:"numberOfLineTypes",parser:em},{code:72,parser:em},{code:3,name:"description",parser:em},{code:70,name:"standardFlag",parser:em},{code:2,name:"name",parser:em},{code:100,name:"subclassMarker",parser:em},...r6]),STYLE:eu([{code:1e3,name:"extendedFont",parser:em},{code:1001},{code:4,name:"bigFont",parser:em},{code:3,name:"font",parser:em},{code:42,name:"lastHeight",parser:em},{code:71,name:"textGenerationFlag",parser:em},{code:50,name:"obliqueAngle",parser:em},{code:41,name:"widthFactor",parser:em},{code:40,name:"fixedTextHeight",parser:em},{code:70,name:"standardFlag",parser:em},{code:2,name:"name",parser:em},{code:100,name:"subclassMarker",parser:em},...r6]),VPORT:eu([{code:[63,421,431],name:"ambientColor",parser:em},{code:142,name:"contrast",parser:em},{code:141,name:"brightness",parser:em},{code:282,name:"defaultLightingType",parser:em},{code:292,name:"isDefaultLightingOn",parser:eh},{code:348,name:"visualStyleObjectId",parser:em},{code:333,name:"shadePlotObjectId",parser:em},{code:332,name:"backgroundObjectId",parser:em},{code:61,name:"majorGridLines",parser:em},{code:170,name:"shadePlotSetting",parser:em},{code:146,name:"elevation",parser:em},{code:79,name:"orthographicType",parser:em},{code:112,name:"ucsYAxis",parser:eE},{code:111,name:"ucsXAxis",parser:eE},{code:110,name:"ucsOrigin",parser:eE},{code:74,name:"ucsIconSetting",parser:em},{code:71,name:"viewMode",parser:em},{code:281,name:"renderMode",parser:em},{code:1,name:"styleSheet",parser:em},{code:[331,441],name:"frozenLayers",parser:em,isMultiple:!0},{code:72,name:"circleSides",parser:em},{code:51,name:"viewTwistAngle",parser:em},{code:50,name:"snapRotationAngle",parser:em},{code:45,name:"viewHeight",parser:em},{code:44,name:"backClippingPlane",parser:em},{code:43,name:"frontClippingPlane",parser:em},{code:42,name:"lensLength",parser:em},{code:17,name:"viewTarget",parser:eE},{code:16,name:"viewDirectionFromTarget",parser:eE},{code:15,name:"gridSpacing",parser:eE},{code:14,name:"snapSpacing",parser:eE},{code:13,name:"snapBasePoint",parser:eE},{code:12,name:"center",parser:eE},{code:11,name:"upperRightCorner",parser:eE},{code:10,name:"lowerLeftCorner",parser:eE},{code:70,name:"standardFlag",parser:em},{code:2,name:"name",parser:em},{code:100,name:"subclassMarker",parser:em},...r6])},at=eu([{code:70,name:"maxNumberOfEntries",parser:em},{code:100,name:"subclassMarker",parser:em},{code:330,name:"ownerObjectId",parser:em},{code:102},{code:360,isMultiple:!0},{code:102},{code:5,name:"handle",parser:em},{code:2,name:"name",parser:em}]);function an(e,r){let a={};for(;!ed(e,0,"EOF")&&!ed(e,0,"ENDSEC");){if(ed(e,0,"TABLE")){e=r.next();let t={entries:[]};at(e,r,t),a[t.name]=t}if(ed(e,0)&&!ed(e,0,"ENDTAB")){let t=e.value;e=r.next();let n=aa[t];if(!n){console.warn(`parseTable: Invalid table name '${t}'`),e=r.next();continue}let o={};n(e,r,o),a[t]?.entries.push(o)}e=r.next()}return a}function ao(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class as{next(){if(!this.hasNext())return this._eof?console.warn("Cannot call 'next' after EOF group has been read"):console.warn("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer]),{code:0,value:"EOF"};let e=parseInt(this._data[this._pointer++],10),r=ai(e,this._data[this._pointer++]),a={code:e,value:r};return ed(a,0,"EOF")&&(this._eof=!0),this.lastReadGroup=a,a}peek(){if(!this.hasNext()){if(this._eof)throw Error("Cannot call 'next' after EOF group has been read");throw Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer])}let e={code:parseInt(this._data[this._pointer]),value:0};return e.value=ai(e.code,this._data[this._pointer+1]),e}rewind(e){e=e||1,this._pointer=this._pointer-2*e}hasNext(){return!this._eof&&!(this._pointer>this._data.length-2)}isEOF(){return this._eof}constructor(e){ao(this,"_pointer",void 0),ao(this,"_data",void 0),ao(this,"_eof",void 0),ao(this,"lastReadGroup",{code:0,value:0}),this._pointer=0,this._data=e,this._eof=!1}}function ai(e,r){return e<=9?r:e>=10&&e<=59?parseFloat(r.trim()):e>=60&&e<=99?parseInt(r.trim()):e>=100&&e<=109?r:e>=110&&e<=149?parseFloat(r.trim()):e>=160&&e<=179?parseInt(r.trim()):e>=210&&e<=239?parseFloat(r.trim()):e>=270&&e<=289?parseInt(r.trim()):e>=290&&e<=299?function(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}(r.trim()):e>=300&&e<=369?r:e>=370&&e<=389?parseInt(r.trim()):e>=390&&e<=399?r:e>=400&&e<=409?parseInt(r.trim()):e>=410&&e<=419?r:e>=420&&e<=429?parseInt(r.trim()):e>=430&&e<=439?r:e>=440&&e<=459?parseInt(r.trim()):e>=460&&e<=469?parseFloat(r.trim()):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?r:e>=1010&&e<=1059?parseFloat(r.trim()):e>=1060&&e<=1071?parseInt(r.trim()):(console.log("WARNING: Group code does not have a defined type: %j",{code:e,value:r}),r)}function ac(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class ad{parseStart(e){this.startCode=e.code}setPoint(e){if(this.code=e.code,this.value=e.value,this.startCode===this.code&&(this.x=this.value),this.startCode===this.code+10)this.y=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}if(this.startCode===this.code+20)this.z=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}}reset(){this.x=void 0,this.y=void 0,this.z=void 0}constructor(){ac(this,"point",{}),ac(this,"startCode",0),ac(this,"code",0),ac(this,"value",0),ac(this,"x",void 0),ac(this,"y",void 0),ac(this,"z",void 0)}}function al(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class ap{constructor(){al(this,"encoding","utf-8"),al(this,"encodingFailureFatal",!1)}}class au extends Error{constructor(e,r,a){let t=`[Line ${r}]: ${e}`;a?.cause&&(t+=`
2
+ Caused by ${a.cause.toString()}
3
+ ${a.cause.stack}`),super(t),al(this,"line",void 0),this.line=r}}class am extends EventTarget{Feed(e,r=!1){let a=this._decoder.decode(e??void 0,{stream:!r});this.FeedString(a,r)}FeedString(e,r=!1){if(this._finalChunkSeen)throw Error("Data fed after final chunk processed");r&&(this._finalChunkSeen=!0),this._curChunk+=e,this._ProcessCurChunk(),r&&this._Finalize()}_Finalize(){}async FeedFile(e,r){let a=e.byteLength;for(let t=0;t<a;t+=65536){r?.throwIfAborted();let n=Math.min(a-t,65536),o=await e.slice(t,t+n);this.Feed(o,t+n>=a)}}_ProcessCurChunk(){for(let e of this._ConsumeCurChunkLines())if(this._ProcessLine(e),this._curLineNum++,!this._eof&&"HEADER"===this._curSection){let e=this._curValue.value;9===this._curValue.code?this._currVarName=e:10===this._curValue.code?this._pointParser.parseStart(this._curValue):this._pointParser.startCode===this._curValue.code||this._pointParser.startCode+10===this._curValue.code||this._pointParser.startCode+20===this._curValue.code?e=this._pointParser.setPoint(this._curValue):this._currVarName&&(this.dxf.header[this._currVarName]=e)}}*_ConsumeCurChunkLines(){let e=0,r=this._curChunk.length;for(;e<r;){let a=this._curChunk.indexOf("\r",e),t=0;if(a>=0?(t=a+1)<r&&"\n"==this._curChunk.charAt(t)&&t++:(a=this._curChunk.indexOf("\n",e))>=0&&(t=a+1),a<0)break;yield this._curChunk.substring(e,a),e=t}0!=e&&(this._curChunk=this._curChunk.substring(e))}_ProcessLine(e){if(null===this._curGroupCode){let r=e.trim();this._curGroupCode=parseInt(r),isNaN(this._curGroupCode)&&this._Error("Bad group code: "+r);return}let r=new aE(this._curGroupCode,e);if(!ed(r,0,"EOF")){switch(r.value){case"SECTION":this._curSection="SECTION";break;case"HEADER":this._curSection="HEADER";break;case"BLOCKS":this._curSection="BLOCKS";break;case"ENTITIES":this._curSection="ENTITIES";break;case"TABLES":this._curSection="TABLES";break;case"OBJECTS":this._curSection="OBJECTS"}this._eof=!1}ed(r,0,"EOF")&&(this._eof=!0),this._curValue=r,this._curGroupCode=null}_Error(e,r=null){let a;throw r&&(a={cause:r}),new au(e,this._curLineNum,a)}constructor(e=new ap){super(),al(this,"dxf",{header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}}),al(this,"_decoder",void 0),al(this,"_pointParser",void 0),al(this,"_finalChunkSeen",!1),al(this,"_curChunk",""),al(this,"_curGroupCode",null),al(this,"_curLineNum",1),al(this,"_eof",!1),al(this,"_curValue",{code:0,value:0}),al(this,"_curSection",""),al(this,"_currVarName",""),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal}),this._pointParser=new ad}}class aE{constructor(e,r){al(this,"code",void 0),al(this,"value",void 0),this.code=e,this.value=ai(e,r)}}function ah(e){return"INSERT"===e.type||"DIMENSION"===e.type&&!!e.name}function aI(e,r,a){return r in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}class af{constructor(){aI(this,"encoding","utf-8"),aI(this,"encodingFailureFatal",!1)}}class aT extends EventTarget{parseSync(e){let r=new as(e.split(/\r\n|\r|\n/g));if(!r.hasNext())throw Error("Empty file");return this.parseAll(r)}parseStream(e){let r="",a=this;return new Promise((t,n)=>{e.on("data",e=>{r+=e}),e.on("end",()=>{try{let e=r.split(/\r\n|\r|\n/g),n=new as(e);if(!n.hasNext())throw Error("Empty file");t(a.parseAll(n))}catch(e){n(e)}}),e.on("error",e=>{n(e)})})}async parseFromUrl(e,r){let a=await fetch(e,r);if(!a.body)return null;let t=a.body.getReader(),n="";for(;;){let{done:e,value:r}=await t.read();if(e){n+=this._decoder.decode(new ArrayBuffer(0),{stream:!1});break}n+=this._decoder.decode(r,{stream:!0})}return this.parseSync(n)}parseAll(e){let r={header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}},a=e.next();for(;!ed(a,0,"EOF");)ed(a,0,"SECTION")&&(ed(a=e.next(),2,"HEADER")?(a=e.next(),r.header=rQ(a,e)):ed(a,2,"BLOCKS")?(a=e.next(),r.blocks=r$(a,e)):ed(a,2,"ENTITIES")?(a=e.next(),r.entities=rJ(a,e)):ed(a,2,"TABLES")?(a=e.next(),r.tables=an(a,e)):ed(a,2,"OBJECTS")&&(a=e.next(),r.objects=r5(a,e))),a=e.next();return function(e){let r=Object.entries(e.blocks),a={};for(let[e,t]of ei.filter(([e,r])=>r.entities?.some(ah),r))for(let r of t.entities??[])ah(r)&&(a[e]??(a[e]=[]),a[e].push(r.name));let t=ei.filter(ah,e.entities),n=ru({seeds:[...ei.map(({name:e})=>e,t)],serializer:e=>e,spanner:e=>a[e]??[]}).flat();return{...e,blocks:Object.fromEntries(n.map(r=>[r,e.blocks[r]]))}}(r)}constructor(e=new af){super(),aI(this,"_decoder",void 0),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal})}}exports.ArcEntityParser=eA,exports.AttDefEntityParser=eR,exports.CircleEntityParser=eB,exports.CommonEntitySnippets=eO,exports.DefaultDxfHeaderVariables=ec,exports.DefaultTextEntity=e_,exports.DxfParsingError=au,exports.DxfStreamParser=am,exports.DxfStreamParserOptions=ap,exports.EllipseEntityParser=eY,exports.HatchEntityParser=e3,exports.INDEXED_CHUNK_SIZE=65536,exports.InsertEntityParser=e9,exports.LWPolylineParser=rp,exports.LeaderEntityParser=ra,exports.LineEntityParser=rs,exports.MTextEntityParser=rx,exports.MTextEntityParserSnippets=rT,exports.PointEntityParser=rg,exports.PolylineParser=rv,exports.SPLINE_SUBDIVISION=4,exports.SectionEntityParser=rR,exports.SolidEntityParser=rB,exports.SplineEntityParser=rW,exports.TESSELLATION_ANGLE=Math.PI/24,exports.TextEntityParser=ev,exports.TextEntityParserSnippets=eP,exports.UndeterminedBlockColor=-1,exports.VertexParser=rA,exports.classify=rm,exports.default=aT,exports.ensureHandle=eb,exports.ensurePoint3D=rh,exports.flooding=ru,exports.generateIntegers=rE,exports.isMatched=ed,exports.parseBlock=rq,exports.parseBlocks=r$,exports.parseEntities=rJ,exports.parseHeader=rQ,exports.parseObjects=r5,exports.parseTables=an,exports.skipApplicationGroups=eg;
package/dist/bundle.mjs CHANGED
@@ -1 +1,3 @@
1
- import{filter as e,map as a}from"@fxts/core";function r(e,a,r){return e.code===a&&(null==r||e.value===r)}let n=0;function t(e){if(!e)throw TypeError("entity cannot be undefined or null");e.handle||(e.handle=n++)}function o(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class s{next(){if(!this.hasNext())return this._eof?console.warn("Cannot call 'next' after EOF group has been read"):console.warn("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer]),{code:0,value:"EOF"};let e=parseInt(this._data[this._pointer++],10),a=c(e,this._data[this._pointer++]),n={code:e,value:a};return r(n,0,"EOF")&&(this._eof=!0),this.lastReadGroup=n,n}peek(){if(!this.hasNext()){if(this._eof)throw Error("Cannot call 'next' after EOF group has been read");throw Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer])}let e={code:parseInt(this._data[this._pointer]),value:0};return e.value=c(e.code,this._data[this._pointer+1]),e}rewind(e){e=e||1,this._pointer=this._pointer-2*e}hasNext(){return!this._eof&&!(this._pointer>this._data.length-2)}isEOF(){return this._eof}constructor(e){o(this,"_pointer",void 0),o(this,"_data",void 0),o(this,"_eof",void 0),o(this,"lastReadGroup",{code:0,value:0}),this._pointer=0,this._data=e,this._eof=!1}}function c(e,a){return e<=9?a:e>=10&&e<=59?parseFloat(a.trim()):e>=60&&e<=99?parseInt(a.trim()):e>=100&&e<=109?a:e>=110&&e<=149?parseFloat(a.trim()):e>=160&&e<=179?parseInt(a.trim()):e>=210&&e<=239?parseFloat(a.trim()):e>=270&&e<=289?parseInt(a.trim()):e>=290&&e<=299?function(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}(a.trim()):e>=300&&e<=369?a:e>=370&&e<=389?parseInt(a.trim()):e>=390&&e<=399?a:e>=400&&e<=409?parseInt(a.trim()):e>=410&&e<=419?a:e>=420&&e<=429?parseInt(a.trim()):e>=430&&e<=439?a:e>=440&&e<=459?parseInt(a.trim()):e>=460&&e<=469?parseFloat(a.trim()):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?a:e>=1010&&e<=1059?parseFloat(a.trim()):e>=1060&&e<=1071?parseInt(a.trim()):(console.log("WARNING: Group code does not have a defined type: %j",{code:e,value:a}),a)}function i(e){let a={};e.rewind();let r=e.next(),n=r.code;if(a.x=r.value,(r=e.next()).code!==n+10)throw Error("Expected code for point value to be 20 but got "+r.code+".");return(a.y=r.value,(r=e.next()).code!==n+20)?e.rewind():a.z=r.value,a}let d=Symbol();function l(e,a){return(n,t,o)=>{let s=e.reduce((e,a)=>{a.pushContext&&e.push({});let r=e[e.length-1];for(let e of"number"==typeof a.code?[a.code]:a.code){let n=r[e]??(r[e]=[]);a.isMultiple&&n.length&&console.warn(`Snippet ${n.at(-1).name} for code(${e}) is shadowed by ${a.name}`),n.push(a)}return e},[{}]),c=!1,i=s.length-1;for(;!r(n,0,"EOF");){let e=function(e,a,r){return e.find((e,n)=>n>=r&&e[a]?.length)}(s,n.code,i),a=e?.[n.code].at(-1);if(!e||!a){t.rewind();break}a.isMultiple||e[n.code].pop();let{name:r,parser:l,isMultiple:p}=a,u=l?.(n,t,o);if(u===d){t.rewind();break}if(r){let[e,a]=function(e,a){let r=a.split("."),n=e;for(let e=0;e<r.length-1;++e){let a=r[e];Object.hasOwn(n,a)||(n[a]={}),n=n[a]}return[n,r.at(-1)]}(o,r);p?(Object.hasOwn(e,a)||(e[a]=[]),e[a].push(u)):e[a]=u}a.pushContext&&(i-=1),c=!0,n=t.next()}return a&&Object.setPrototypeOf(o,a),c}}function p({value:e}){return e}function u(e,a){return i(a)}function m({value:e}){return!!e}let I=[{code:100,name:"subclassMarker",parser:p},{code:330,name:"ownerObjectId",parser:p},{code:102,parser(e,a){for(;!r(e,0,"EOF")&&!r(e,102,"}");)e=a.next()}},{code:5,name:"handle",parser:p}],E=l([{code:310,name:"bmpPreview",parser:p},{code:281,name:"scalability",parser:p},{code:280,name:"explodability",parser:p},{code:70,name:"insertionUnits",parser:p},{code:340,name:"layoutObjects",parser:p},{code:2,name:"name",parser:p},{code:100,name:"subclassMarker",parser:p},...I]);(K=eT||(eT={}))[K.BYBLOCK=0]="BYBLOCK",K[K.BYLAYER=256]="BYLAYER",(z=eh||(eh={}))[z.Rotated=0]="Rotated",z[z.Aligned=1]="Aligned",z[z.Angular=2]="Angular",z[z.Diameter=3]="Diameter",z[z.Radius=4]="Radius",z[z.Angular3Point=5]="Angular3Point",z[z.Ordinate=6]="Ordinate",z[z.ReferenceIsExclusive=32]="ReferenceIsExclusive",z[z.IsOrdinateXTypeFlag=64]="IsOrdinateXTypeFlag",z[z.IsCustomTextPositionFlag=128]="IsCustomTextPositionFlag",(Z=eN||(eN={}))[Z.TopLeft=1]="TopLeft",Z[Z.TopCenter=2]="TopCenter",Z[Z.TopRight=3]="TopRight",Z[Z.MiddleLeft=4]="MiddleLeft",Z[Z.MiddleCenter=5]="MiddleCenter",Z[Z.MiddleRight=6]="MiddleRight",Z[Z.BottomLeft=7]="BottomLeft",Z[Z.BottomCenter=8]="BottomCenter",Z[Z.BottomRight=9]="BottomRight",(J=eg||(eg={}))[J.AtLeast=1]="AtLeast",J[J.Exact=2]="Exact",(q=eA||(eA={}))[q.Center=0]="Center",q[q.Above=1]="Above",q[q.Outside=2]="Outside",q[q.JIS=3]="JIS",q[q.Below=4]="Below",(Q=eL||(eL={}))[Q.Feet=0]="Feet",Q[Q.None=1]="None",Q[Q.Inch=2]="Inch",Q[Q.FeetAndInch=3]="FeetAndInch",Q[Q.Leading=4]="Leading",Q[Q.Trailing=8]="Trailing",Q[Q.LeadingAndTrailing=12]="LeadingAndTrailing",($=eS||(eS={}))[$.None=0]="None",$[$.Leading=1]="Leading",$[$.Trailing=2]="Trailing",$[$.LeadingAndTrailing=3]="LeadingAndTrailing",(ee=e_||(e_={}))[ee.Center=0]="Center",ee[ee.Left=1]="Left",ee[ee.Right=2]="Right",ee[ee.OverFirst=3]="OverFirst",ee[ee.OverSecond=4]="OverSecond",(ea=ey||(ey={}))[ea.Bottom=0]="Bottom",ea[ea.Center=1]="Center",ea[ea.Top=2]="Top",(er=eM||(eM={}))[er.PatternFill=0]="PatternFill",er[er.SolidFill=1]="SolidFill",(en=eR||(eR={}))[en.NonAssociative=0]="NonAssociative",en[en.Associative=1]="Associative",(et=eP||(eP={}))[et.Normal=0]="Normal",et[et.Outer=1]="Outer",et[et.Ignore=2]="Ignore",(eo=ev||(ev={}))[eo.UserDefined=0]="UserDefined",eo[eo.Predefined=1]="Predefined",eo[eo.Custom=2]="Custom",(es=eC||(eC={}))[es.NotAnnotated=0]="NotAnnotated",es[es.Annotated=1]="Annotated",(ec=ek||(ek={}))[ec.Solid=0]="Solid",ec[ec.Gradient=1]="Gradient",(ei=eF||(eF={}))[ei.TwoColor=0]="TwoColor",ei[ei.OneColor=1]="OneColor",(ed=ex||(ex={}))[ed.Default=0]="Default",ed[ed.External=1]="External",ed[ed.Polyline=2]="Polyline",ed[ed.Derived=4]="Derived",ed[ed.Textbox=8]="Textbox",ed[ed.Outermost=16]="Outermost",(el=ew||(ew={}))[el.Line=1]="Line",el[el.Circular=2]="Circular",el[el.Elliptic=3]="Elliptic",el[el.Spline=4]="Spline",(ep=eV||(eV={}))[ep.English=0]="English",ep[ep.Metric=1]="Metric",(eu=eB||(eB={}))[eu.Off=0]="Off",eu[eu.Solid=1]="Solid",eu[eu.Dashed=2]="Dashed",eu[eu.Dotted=3]="Dotted",eu[eu.ShotDash=4]="ShotDash",eu[eu.MediumDash=5]="MediumDash",eu[eu.LongDash=6]="LongDash",eu[eu.DoubleShortDash=7]="DoubleShortDash",eu[eu.DoubleMediumDash=8]="DoubleMediumDash",eu[eu.DoubleLongDash=9]="DoubleLongDash",eu[eu.DoubleMediumLongDash=10]="DoubleMediumLongDash",eu[eu.SparseDot=11]="SparseDot",(em=eU||(eU={}))[em.Standard=-3]="Standard",em[em.ByLayer=-2]="ByLayer",em[em.ByBlock=-1]="ByBlock",(eI=eG||(eG={}))[eI.PERSPECTIVE_MODE=1]="PERSPECTIVE_MODE",eI[eI.FRONT_CLIPPING=2]="FRONT_CLIPPING",eI[eI.BACK_CLIPPING=4]="BACK_CLIPPING",eI[eI.UCS_FOLLOW=8]="UCS_FOLLOW",eI[eI.FRONT_CLIP_NOT_AT_EYE=16]="FRONT_CLIP_NOT_AT_EYE",eI[eI.UCS_ICON_VISIBILITY=32]="UCS_ICON_VISIBILITY",eI[eI.UCS_ICON_AT_ORIGIN=64]="UCS_ICON_AT_ORIGIN",eI[eI.FAST_ZOOM=128]="FAST_ZOOM",eI[eI.SNAP_MODE=256]="SNAP_MODE",eI[eI.GRID_MODE=512]="GRID_MODE",eI[eI.ISOMETRIC_SNAP_STYLE=1024]="ISOMETRIC_SNAP_STYLE",eI[eI.HIDE_PLOT_MODE=2048]="HIDE_PLOT_MODE",eI[eI.K_ISO_PAIR_TOP=4096]="K_ISO_PAIR_TOP",eI[eI.K_ISO_PAIR_RIGHT=8192]="K_ISO_PAIR_RIGHT",eI[eI.VIEWPORT_ZOOM_LOCKING=16384]="VIEWPORT_ZOOM_LOCKING",eI[eI.UNUSED=32768]="UNUSED",eI[eI.NON_RECTANGULAR_CLIPPING=65536]="NON_RECTANGULAR_CLIPPING",eI[eI.VIEWPORT_OFF=131072]="VIEWPORT_OFF",eI[eI.GRID_BEYOND_DRAWING_LIMITS=262144]="GRID_BEYOND_DRAWING_LIMITS",eI[eI.ADAPTIVE_GRID_DISPLAY=524288]="ADAPTIVE_GRID_DISPLAY",eI[eI.SUBDIVISION_BELOW_SPACING=1048576]="SUBDIVISION_BELOW_SPACING",eI[eI.GRID_FOLLOWS_WORKPLANE=2097152]="GRID_FOLLOWS_WORKPLANE",(eE=eH||(eH={}))[eE.OPTIMIZED_2D=0]="OPTIMIZED_2D",eE[eE.WIREFRAME=1]="WIREFRAME",eE[eE.HIDDEN_LINE=2]="HIDDEN_LINE",eE[eE.FLAT_SHADED=3]="FLAT_SHADED",eE[eE.GOURAUD_SHADED=4]="GOURAUD_SHADED",eE[eE.FLAT_SHADED_WITH_WIREFRAME=5]="FLAT_SHADED_WITH_WIREFRAME",eE[eE.GOURAUD_SHADED_WITH_WIREFRAME=6]="GOURAUD_SHADED_WITH_WIREFRAME",(ef=eY||(eY={}))[ef.UCS_UNCHANGED=0]="UCS_UNCHANGED",ef[ef.HAS_OWN_UCS=1]="HAS_OWN_UCS",(eb=eW||(eW={}))[eb.NON_ORTHOGRAPHIC=0]="NON_ORTHOGRAPHIC",eb[eb.TOP=1]="TOP",eb[eb.BOTTOM=2]="BOTTOM",eb[eb.FRONT=3]="FRONT",eb[eb.BACK=4]="BACK",eb[eb.LEFT=5]="LEFT",eb[eb.RIGHT=6]="RIGHT",(eD=ej||(ej={}))[eD.AS_DISPLAYED=0]="AS_DISPLAYED",eD[eD.WIREFRAME=1]="WIREFRAME",eD[eD.HIDDEN=2]="HIDDEN",eD[eD.RENDERED=3]="RENDERED",(eO=eX||(eX={}))[eO.ONE_DISTANT_LIGHT=0]="ONE_DISTANT_LIGHT",eO[eO.TWO_DISTANT_LIGHTS=1]="TWO_DISTANT_LIGHTS";let f=l([...[{name:"DIMPOST",code:3},{name:"DIMAPOST",code:4},{name:"DIMBLK_OBSOLETE",code:5},{name:"DIMBLK1_OBSOLETE",code:6},{name:"DIMBLK2_OBSOLETE",code:7},{name:"DIMSCALE",code:40,defaultValue:1},{name:"DIMASZ",code:41,defaultValue:.25},{name:"DIMEXO",code:42,defaultValue:.625,defaultValueImperial:.0625},{name:"DIMDLI",code:43,defaultValue:3.75,defaultValueImperial:.38},{name:"DIMEXE",code:44,defaultValue:2.25,defaultValueImperial:.28},{name:"DIMRND",code:45,defaultValue:0},{name:"DIMDLE",code:46,defaultValue:0},{name:"DIMTP",code:47,defaultValue:0},{name:"DIMTM",code:48,defaultValue:0},{name:"DIMTXT",code:140,defaultValue:2.5,defaultValueImperial:.28},{name:"DIMCEN",code:141,defaultValue:2.5,defaultValueImperial:.09},{name:"DIMTSZ",code:142,defaultValue:0},{name:"DIMALTF",code:143,defaultValue:25.4},{name:"DIMLFAC",code:144,defaultValue:1},{name:"DIMTVP",code:145,defaultValue:0},{name:"DIMTFAC",code:146,defaultValue:1},{name:"DIMGAP",code:147,defaultValue:.625,defaultValueImperial:.09},{name:"DIMALTRND",code:148,defaultValue:0},{name:"DIMTOL",code:71,defaultValue:0,defaultValueImperial:1},{name:"DIMLIM",code:72,defaultValue:0},{name:"DIMTIH",code:73,defaultValue:0,defaultValueImperial:1},{name:"DIMTOH",code:74,defaultValue:0,defaultValueImperial:1},{name:"DIMSE1",code:75,defaultValue:0},{name:"DIMSE2",code:76,defaultValue:0},{name:"DIMTAD",code:77,defaultValue:eA.Above,defaultValueImperial:eA.Center},{name:"DIMZIN",code:78,defaultValue:eL.Trailing,defaultValueImperial:eL.Feet},{name:"DIMAZIN",code:79,defaultValue:eS.None},{name:"DIMALT",code:170,defaultValue:0},{name:"DIMALTD",code:171,defaultValue:3,defaultValueImperial:2},{name:"DIMTOFL",code:172,defaultValue:1,defaultValueImperial:0},{name:"DIMSAH",code:173,defaultValue:0},{name:"DIMTIX",code:174,defaultValue:0},{name:"DIMSOXD",code:175,defaultValue:0},{name:"DIMCLRD",code:176,defaultValue:0},{name:"DIMCLRE",code:177,defaultValue:0},{name:"DIMCLRT",code:178,defaultValue:0},{name:"DIMADEC",code:179},{name:"DIMUNIT",code:270},{name:"DIMDEC",code:271,defaultValue:2,defaultValueImperial:4},{name:"DIMTDEC",code:272,defaultValue:2,defaultValueImperial:4},{name:"DIMALTU",code:273,defaultValue:2},{name:"DIMALTTD",code:274,defaultValue:2,defaultValueImperial:4},{name:"DIMAUNIT",code:275,defaultValue:0},{name:"DIMFRAC",code:276,defaultValue:0},{name:"DIMLUNIT",code:277,defaultValue:2},{name:"DIMDSEP",code:278,defaultValue:",",defaultValueImperial:"."},{name:"DIMJUST",code:280,defaultValue:e_.Center},{name:"DIMSD1",code:281,defaultValue:0},{name:"DIMSD2",code:282,defaultValue:0},{name:"DIMTOLJ",code:283,defaultValue:ey.Center},{name:"DIMTZIN",code:284,defaultValue:eL.Trailing,defaultValueImperial:eL.Feet},{name:"DIMALTZ",code:285,defaultValue:eL.Trailing},{name:"DIMALTTZ",code:286,defaultValue:eL.Trailing},{name:"DIMFIT",code:287},{name:"DIMUPT",code:288,defaultValue:0},{name:"DIMATFIT",code:289,defaultValue:3},{name:"DIMTXSTY",code:340},{name:"DIMLDRBLK",code:341},{name:"DIMBLK",code:342},{name:"DIMBLK1",code:343},{name:"DIMBLK2",code:344},{name:"DIMLWD",code:371,defaultValue:-2},{name:"DIMLWD",code:372,defaultValue:-2}].map(e=>({...e,parser:p})),{code:70,name:"standardFlag",parser:p},{code:2,name:"name",parser:p},{code:100,name:"subclassMarker",parser:p},{code:105,name:"handle",parser:p},...I.filter(e=>5!==e.code)]),b=l([{code:347,name:"materialObjectId",parser:p},{code:390,name:"plotStyleNameObjectId",parser:p},{code:370,name:"lineweight",parser:p},{code:290,name:"isPlotting",parser:m},{code:6,name:"lineType",parser:p},{code:62,name:"colorIndex",parser:p},{code:70,name:"standardFlag",parser:p},{code:2,name:"name",parser:p},{code:100,name:"subclassMarker",parser:p},...I]),D=l([{code:9,name:"text",parser:p},{code:45,name:"offsetY",parser:p},{code:44,name:"offsetX",parser:p},{code:50,name:"rotation",parser:p},{code:46,name:"scale",parser:p},{code:340,name:"styleObjectId",parser:p},{code:75,name:"shapeNumber",parser:p},{code:74,name:"elementTypeFlag",parser:p},{code:49,name:"elementLength",parser:p}],{elementTypeFlag:0,elementLength:0}),O={BLOCK_RECORD:E,DIMSTYLE:f,LAYER:b,LTYPE:l([{code:49,name:"pattern",parser(e,a){let r={};return D(e,a,r),r},isMultiple:!0},{code:40,name:"totalPatternLength",parser:p},{code:73,name:"numberOfLineTypes",parser:p},{code:72,parser:p},{code:3,name:"description",parser:p},{code:70,name:"standardFlag",parser:p},{code:2,name:"name",parser:p},{code:100,name:"subclassMarker",parser:p},...I]),STYLE:l([{code:1e3,name:"extendedFont",parser:p},{code:1001},{code:4,name:"bigFont",parser:p},{code:3,name:"font",parser:p},{code:42,name:"lastHeight",parser:p},{code:71,name:"textGenerationFlag",parser:p},{code:50,name:"obliqueAngle",parser:p},{code:41,name:"widthFactor",parser:p},{code:40,name:"fixedTextHeight",parser:p},{code:70,name:"standardFlag",parser:p},{code:2,name:"name",parser:p},{code:100,name:"subclassMarker",parser:p},...I]),VPORT:l([{code:[63,421,431],name:"ambientColor",parser:p},{code:142,name:"contrast",parser:p},{code:141,name:"brightness",parser:p},{code:282,name:"defaultLightingType",parser:p},{code:292,name:"isDefaultLightingOn",parser:m},{code:348,name:"visualStyleObjectId",parser:p},{code:333,name:"shadePlotObjectId",parser:p},{code:332,name:"backgroundObjectId",parser:p},{code:61,name:"majorGridLines",parser:p},{code:170,name:"shadePlotSetting",parser:p},{code:146,name:"elevation",parser:p},{code:79,name:"orthographicType",parser:p},{code:112,name:"ucsYAxis",parser:u},{code:111,name:"ucsXAxis",parser:u},{code:110,name:"ucsOrigin",parser:u},{code:74,name:"ucsIconSetting",parser:p},{code:71,name:"viewMode",parser:p},{code:281,name:"renderMode",parser:p},{code:1,name:"styleSheet",parser:p},{code:[331,441],name:"frozenLayers",parser:p,isMultiple:!0},{code:72,name:"circleSides",parser:p},{code:51,name:"viewTwistAngle",parser:p},{code:50,name:"snapRotationAngle",parser:p},{code:45,name:"viewHeight",parser:p},{code:44,name:"backClippingPlane",parser:p},{code:43,name:"frontClippingPlane",parser:p},{code:42,name:"lensLength",parser:p},{code:17,name:"viewTarget",parser:u},{code:16,name:"viewDirectionFromTarget",parser:u},{code:15,name:"gridSpacing",parser:u},{code:14,name:"snapSpacing",parser:u},{code:13,name:"snapBasePoint",parser:u},{code:12,name:"center",parser:u},{code:11,name:"upperRightCorner",parser:u},{code:10,name:"lowerLeftCorner",parser:u},{code:70,name:"standardFlag",parser:p},{code:2,name:"name",parser:p},{code:100,name:"subclassMarker",parser:p},...I])},T=l([{code:70,name:"maxNumberOfEntries",parser:p},{code:100,name:"subclassMarker",parser:p},{code:330,name:"ownerObjectId",parser:p},{code:102},{code:360,isMultiple:!0},{code:102},{code:5,name:"handle",parser:p},{code:2,name:"name",parser:p}]);var h,N,g,A,L,S,_,y,M,R,P,v,C,k,F,x,w,V,B,U,G,H,Y,W,j,X,K,z,Z,J,q,Q,$,ee,ea,er,en,et,eo,es,ec,ei,ed,el,ep,eu,em,eI,eE,ef,eb,eD,eO,eT,eh,eN,eg,eA,eL,eS,e_,ey,eM,eR,eP,ev,eC,ek,eF,ex,ew,eV,eB,eU,eG,eH,eY,eW,ej,eX,eK,ez,eZ,eJ,eq,eQ,e$,e0,e1,e4,e2,e3,e7,e5,e6,e9,e8,ae,aa,ar,an=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215];function at(e,a){if(!r(e,1001))throw Error("XData must starts with code 1001");let n={appName:e.value,value:[]};e=a.next();let t=[n.value];for(;!r(e,0,"EOF")&&e.code>=1e3;){let r=t.at(-1);switch(e.code){case 1002:"{"===e.value?t.push([]):(t.pop(),t.at(-1)?.push(r));break;case 1e3:case 1004:case 1040:case 1070:case 1071:r.push({type:ao(e.code),value:e.value});break;case 1003:r.push({name:"layer",type:ao(e.code),value:e.value});break;case 1005:r.push({name:"handle",type:ao(e.code),value:e.value});break;case 1010:r.push({type:ao(e.code),value:i(a)});break;case 1011:r.push({name:"worldSpacePosition",type:ao(e.code),value:i(a)});break;case 1012:r.push({name:"worldSpaceDisplacement",type:ao(e.code),value:i(a)});break;case 1013:r.push({name:"worldSpaceDirection",type:ao(e.code),value:i(a)});break;case 1041:r.push({name:"distance",type:ao(e.code),value:e.value});break;case 1042:r.push({name:"scale",type:ao(e.code),value:e.value})}e=a.next()}return a.rewind(),n}function ao(e){switch(e){case 1e3:case 1003:case 1005:return"string";case 1004:return"hex";case 1040:case 1041:case 1042:return"real";case 1070:return"integer";case 1071:return"long";case 1010:case 1011:case 1012:case 1013:return"point";default:return""}}function as(e,a,n){if(r(a,102))return ai(a,n),!0;switch(a.code){case 0:e.type=a.value;break;case 5:e.handle=a.value;break;case 330:e.ownerDictionarySoftId?e.ownerBlockRecordSoftId=a.value:e.ownerDictionarySoftId=a.value;break;case 360:e.ownerdictionaryHardId=a.value;break;case 67:e.isInPaperSpace=!!a.value;break;case 8:e.layer=a.value;break;case 6:e.lineType=a.value;break;case 347:e.materialObjectHardId=a.value;break;case 62:e.colorIndex=a.value,e.color=an[Math.abs(a.value)];break;case 370:e.lineweight=a.value;break;case 48:e.lineTypeScale=a.value;break;case 60:e.isVisible=!!a.value;break;case 92:e.proxyByte=a.value;break;case 310:e.proxyEntity=a.value;break;case 100:break;case 420:e.color=a.value;break;case 430:e.transparency=a.value;break;case 390:e.plotStyleHardId=a.value;break;case 284:e.shadowMode=a.value;break;case 1001:e.xdata=at(a,n);break;default:return!1}return!0}(h=eK||(eK={}))[h.CAST_AND_RECEIVE=0]="CAST_AND_RECEIVE",h[h.CAST=1]="CAST",h[h.RECEIVE=2]="RECEIVE",h[h.IGNORE=3]="IGNORE";let ac=[{code:1001,name:"xdata",parser:at},{code:284,name:"shadowMode",parser:p},{code:390,name:"plotStyleHardId",parser:p},{code:440,name:"transparency",parser:p},{code:430,name:"colorName",parser:p},{code:420,name:"color",parser:p},{code:310,name:"proxyEntity",parser:p},{code:92,name:"proxyByte",parser:p},{code:60,name:"isVisible",parser:m},{code:48,name:"lineTypeScale",parser:p},{code:370,name:"lineweight",parser:p},{code:62,name:"colorIndex",parser(e,a,r){let n=e.value;return r.color=an[Math.abs(n)],n}},{code:347,name:"materialObjectHardId",parser:p},{code:6,name:"lineType",parser:p},{code:8,name:"layer",parser:p},{code:410,name:"layoutTabName",parser:p},{code:67,name:"isInPaperSpace",parser:m},{code:100},{code:330,name:"ownerBlockRecordSoftId",parser:p},{code:102,parser:ai},{code:102,parser:ai},{code:102,parser:ai},{code:5,name:"handle",parser:p}];function ai(e,a){for(e=a.next();!r(e,102)&&!r(e,0,"EOF");)e=a.next()}function ad(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}let al={extrusionDirection:{x:0,y:0,z:1}},ap=[{code:210,name:"extrusionDirection",parser:u},{code:51,name:"endAngle",parser:p},{code:50,name:"startAngle",parser:p},{code:100,name:"subclassMarker",parser:p},{code:40,name:"radius",parser:p},{code:10,name:"center",parser:u},{code:39,name:"thickness",parser:p},{code:100},...ac];class au{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ad(this,"parser",l(ap,al))}}function am(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ad(au,"ForEntityName","ARC"),(N=ez||(ez={}))[N.NONE=0]="NONE",N[N.INVISIBLE=1]="INVISIBLE",N[N.CONSTANT=2]="CONSTANT",N[N.VERIFICATION_REQUIRED=4]="VERIFICATION_REQUIRED",N[N.PRESET=8]="PRESET",(g=eZ||(eZ={}))[g.MULTILINE=2]="MULTILINE",g[g.CONSTANT_MULTILINE=4]="CONSTANT_MULTILINE",(A=eJ||(eJ={}))[A.NONE=0]="NONE",A[A.MIRRORED_X=2]="MIRRORED_X",A[A.MIRRORED_Y=4]="MIRRORED_Y",(L=eq||(eq={}))[L.LEFT=0]="LEFT",L[L.CENTER=1]="CENTER",L[L.RIGHT=2]="RIGHT",L[L.ALIGNED=3]="ALIGNED",L[L.MIDDLE=4]="MIDDLE",L[L.FIT=5]="FIT",(S=eQ||(eQ={}))[S.BASELINE=0]="BASELINE",S[S.BOTTOM=1]="BOTTOM",S[S.MIDDLE=2]="MIDDLE",S[S.TOP=3]="TOP";let aI={thickness:0,rotation:0,xScale:1,obliqueAngle:0,styleName:"STANDARD",generationFlag:0,halign:eq.LEFT,valign:eQ.BASELINE,extrusionDirection:{x:0,y:0,z:1}},aE=[{code:73,name:"valign",parser:p},{code:100},{code:210,name:"extrusionDirection",parser:u},{code:11,name:"endPoint",parser:u},{code:72,name:"valign",parser:p},{code:72,name:"halign",parser:p},{code:71,name:"generationFlag",parser:p},{code:7,name:"styleName",parser:p},{code:51,name:"obliqueAngle",parser:p},{code:41,name:"xScale",parser:p},{code:50,name:"rotation",parser:p},{code:1,name:"text",parser:p},{code:40,name:"textHeight",parser:p},{code:10,name:"startPoint",parser:u},{code:39,name:"thickness",parser:p},{code:100,name:"subclassMarker",parser:p},...ac];class af{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){am(this,"parser",l(aE,aI))}}function ab(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}am(af,"ForEntityName","TEXT");let aD={...aI},aO=[{code:2},{code:40,name:"annotationScale",parser:p},{code:10,name:"alignmentPoint",parser:u},{code:340,name:"secondaryAttributesHardIds",isMultiple:!0,parser:p},{code:70,name:"numberOfSecondaryAttributes",parser:p},{code:70,name:"isReallyLocked",parser:m},{code:70,name:"mtextFlag",parser:p},{code:280,name:"isDuplicatedRecord",parser:m},{code:100},{code:280,name:"isLocked",parser:m},{code:74,name:"valign",parser:p},{code:73},{code:70,name:"attributeFlag",parser:p},{code:2,name:"tag",parser:p},{code:3,name:"prompt",parser:p},{code:280},{code:100,name:"subclassMarker",parser:p},...aE.slice(2)];class aT{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ab(this,"parser",l(aO,aD))}}function*ah(e,a=1/0,r=1){for(let n=e;n!==a;n+=r)yield n}function aN(e){return{x:e.x??0,y:e.y??0,z:e.z??0}}function ag(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ab(aT,"ForEntityName","ATTDEF"),(_=e$||(e$={}))[_.INVISIBLE=1]="INVISIBLE",_[_.CONSTANT=2]="CONSTANT",_[_.REQUIRE_VERIFICATION=4]="REQUIRE_VERIFICATION",_[_.PRESET=8]="PRESET",(y=e0||(e0={}))[y.LEFT_TO_RIGHT=1]="LEFT_TO_RIGHT",y[y.TOP_TO_BOTTOM=3]="TOP_TO_BOTTOM",y[y.BY_STYLE=5]="BY_STYLE";let aA={textStyle:"STANDARD",extrusionDirection:{x:0,y:0,z:1},rotation:0},aL=[{code:46,name:"annotationHeight",parser:p},{code:101,parser(e,a){!function(e){e.rewind();let a=e.next();if(101!==a.code)throw Error("Bad call for skipEmbeddedObject()");do a=e.next();while(0!==a.code);e.rewind()}(a)}},{code:50,name:"columnHeight",parser:p},{code:49,name:"columnGutter",parser:p},{code:48,name:"columnWidth",parser:p},{code:79,name:"columnAutoHeight",parser:p},{code:78,name:"columnFlowReversed",parser:p},{code:76,name:"columnCount",parser:p},{code:75,name:"columnType",parser:p},{code:441,name:"backgroundFillTransparency",parser:p},{code:63,name:"backgroundFillColor",parser:p},{code:45,name:"fillBoxScale",parser:p},{code:[...ah(430,440)],name:"backgroundColor",parser:p},{code:[...ah(420,430)],name:"backgroundColor",parser:p},{code:90,name:"backgroundFill",parser:p},{code:44,name:"lineSpacing",parser:p},{code:73,name:"lineSpacingStyle",parser:p},{code:50,name:"rotation",parser:p},{code:43},{code:42},{code:11,name:"direction",parser:u},{code:210,name:"extrusionDirection",parser:u},{code:7,name:"styleName",parser:p},{code:3,name:"text",parser:(e,a,r)=>(r.text??"")+e.value},{code:1,name:"text",parser:p},{code:72,name:"drawingDirection",parser:p},{code:71,name:"attachmentPoint",parser:p},{code:41,name:"width",parser:p},{code:40,name:"height",parser:p},{code:10,name:"insertionPoint",parser:u},{code:100,name:"subclassMarker",parser:p},...ac];class aS{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ag(this,"parser",l(aL,aA))}}function a_(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ag(aS,"ForEntityName","MTEXT");let ay={thickness:0,rotation:0,scale:1,obliqueAngle:0,textStyle:"STANDARD",textGenerationFlag:0,horizontalJustification:0,verticalJustification:0,extrusionDirection:{x:0,y:0,z:1}},aM=[...aL.slice(aL.findIndex(({name:e})=>"columnType"===e),aL.findIndex(({name:e})=>"subclassMarker"===e)+1),{code:100},{code:0,parser(e){if(!r(e,0,"MTEXT"))return d}},{code:2,name:"definitionTag",parser:p},{code:40,name:"annotationScale",parser:p},{code:10,name:"alignmentPoint",parser:u},{code:340,name:"secondaryAttributesHardId",parser:p},{code:70,name:"numberOfSecondaryAttributes",parser:p},{code:70,name:"isReallyLocked",parser:m},{code:70,name:"mtextFlag",parser:p},{code:280,name:"isDuplicatedEntriesKeep",parser:m},{code:100},{code:280,name:"lockPositionFlag",parser:m},{code:210,name:"extrusionDirection",parser:u},{code:11,name:"alignmentPoint",parser:u},{code:74,name:"verticalJustification",parser:p},{code:72,name:"horizontalJustification",parser:p},{code:71,name:"textGenerationFlag",parser:p},{code:7,name:"textStyle",parser:p},{code:51,name:"obliqueAngle",parser:p},{code:41,name:"scale",parser:p},{code:50,name:"rotation",parser:p},{code:73},{code:70,name:"attributeFlag",parser:p},{code:2,name:"tag",parser:p},{code:280},{code:100,name:"subclassMarker",parser:p},{code:1,name:"text",parser:p},{code:40,name:"textHeight",parser:p},{code:10,name:"startPoint",parser:u},{code:39,name:"thickness",parser:p},{code:100},...ac];class aR{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){a_(this,"parser",l(aM,ay))}}function aP(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}a_(aR,"ForEntityName","ATTRIB");let av={thickness:0,extrusionDirection:{x:0,y:0,z:1}},aC=[{code:210,name:"extrusionDirection",parser:u},{code:40,name:"radius",parser:p},{code:10,name:"center",parser:u},{code:39,name:"thickness",parser:p},{code:100,name:"subclassMarker",parser:p},...ac];class ak{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aP(this,"parser",l(aC,av))}}aP(ak,"ForEntityName","CIRCLE");class aF{parseEntity(e,a){let n={};for(;!r(a,0,"EOF");){if(0===a.code){e.rewind();break}!function(e,a,r){switch(a.code){case 100:e.subclassMarker=a.value;break;case 280:e.version=a.value;break;case 2:e.name=a.value;break;case 10:e.definitionPoint=i(r);break;case 11:e.textPoint=i(r);break;case 12:e.insertionPoint=i(r);break;case 13:e.subDefinitionPoint1=i(r);break;case 14:e.subDefinitionPoint2=i(r);break;case 15:e.centerPoint=i(r);break;case 16:e.arcPoint=i(r);break;case 70:e.dimensionType=a.value;break;case 71:e.attachmentPoint=a.value;break;case 72:e.textLineSpacingStyle=a.value;break;case 40:e.leaderLength=a.value;break;case 41:e.textLineSpacingFactor=a.value;break;case 42:e.measurement=a.value;break;case 1:e.text=a.value;break;case 50:e.rotationAngle=a.value;break;case 52:e.obliqueAngle=a.value;break;case 53:e.textRotation=a.value;break;case 51:e.ocsRotation=a.value;break;case 210:e.extrusionDirection=i(r);break;case 3:e.styleName=a.value;break;default:as(e,a,r)}}(n,a,e),a=e.next()}return n}}function ax(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}R="DIMENSION",(M="ForEntityName")in aF?Object.defineProperty(aF,M,{value:R,enumerable:!0,configurable:!0,writable:!0}):aF[M]=R;let aw={extrusionDirection:{x:0,y:0,z:1}},aV=[{code:42,name:"endAngle",parser:p},{code:41,name:"startAngle",parser:p},{code:40,name:"axisRatio",parser:p},{code:210,name:"extrusionDirection",parser:u},{code:11,name:"majorAxisEndPoint",parser:u},{code:10,name:"center",parser:u},{code:100,name:"subclassMarker",parser:p},...ac];class aB{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ax(this,"parser",l(aV,aw))}}function aU(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ax(aB,"ForEntityName","ELLIPSE");let aG={xScale:1,yScale:1,zScale:1,rotation:0,columnCount:0,rowCount:0,columnSpacing:0,rowSpacing:0,extrusionDirection:{x:0,y:0,z:1}},aH=[{code:210,name:"extrusionDirection",parser:u},{code:45,name:"rowSpacing",parser:p},{code:44,name:"columnSpacing",parser:p},{code:71,name:"rowCount",parser:p},{code:70,name:"columnCount",parser:p},{code:50,name:"rotation",parser:p},{code:43,name:"zScale",parser:p},{code:42,name:"yScale",parser:p},{code:41,name:"xScale",parser:p},{code:10,name:"insertionPoint",parser:u},{code:2,name:"name",parser:p},{code:66,name:"isVariableAttributes",parser:m},{code:100,name:"subclassMarker",parser:p},...ac];class aY{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aU(this,"parser",l(aH,aG))}}function aW(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aU(aY,"ForEntityName","INSERT");let aj={isArrowheadEnabled:!0},aX=[{code:213,name:"offsetFromAnnotation",parser:u},{code:212,name:"offsetFromBlock",parser:u},{code:211,name:"horizontalDirection",parser:u},{code:210,name:"normal",parser:u},{code:340,name:"associatedAnnotation",parser:p},{code:77,name:"byBlockColor",parser:p},{code:10,name:"vertices",parser:u,isMultiple:!0},{code:76,name:"numberOfVertices",parser:p},{code:41,name:"textWidth",parser:p},{code:40,name:"textHeight",parser:p},{code:75,name:"isHooklineExists",parser:m},{code:74,name:"isHooklineSameDirection",parser:m},{code:73,name:"leaderCreationFlag",parser:p},{code:72,name:"isSpline",parser:m},{code:71,name:"isArrowheadEnabled",parser:m},{code:3,name:"styleName",parser:p},{code:100,name:"subclassMarker",parser:p},...ac];class aK{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aW(this,"parser",l(aX,aj))}}function az(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aW(aK,"ForEntityName","LEADER"),(P=e1||(e1={}))[P.TextAnnotation=0]="TextAnnotation",P[P.ToleranceAnnotation=1]="ToleranceAnnotation",P[P.BlockReferenceAnnotation=2]="BlockReferenceAnnotation",P[P.NoAnnotation=3]="NoAnnotation";let aZ={thickness:0,extrusionDirection:{x:0,y:0,z:1}},aJ=[{code:210,name:"extrusionDirection",parser:u},{code:11,name:"endPoint",parser:u},{code:10,name:"startPoint",parser:u},{code:39,name:"thickness",parser:p},{code:100,name:"subclassMarker",parser:p},...ac];class aq{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){az(this,"parser",l(aJ,aZ))}}az(aq,"ForEntityName","LINE"),(v=e4||(e4={}))[v.IS_CLOSED=1]="IS_CLOSED",v[v.PLINE_GEN=128]="PLINE_GEN";let aQ={flag:0,elevation:0,thickness:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},a$={bulge:0},a0=[{code:42,name:"bulge",parser:p},{code:41,name:"endWidth",parser:p},{code:40,name:"startWidth",parser:p},{code:91,name:"id",parser:p},{code:20,name:"y",parser:p},{code:10,name:"x",parser:p}],a1=[{code:210,name:"extrusionDirection",parser:u},{code:10,name:"vertices",isMultiple:!0,parser(e,a){let r={};return l(a0,a$)(e,a,r),r}},{code:39,name:"thickness",parser:p},{code:38,name:"elevation",parser:p},{code:43,name:"constantWidth",parser:p},{code:70,name:"flag",parser:p},{code:90,name:"numberOfVertices",parser:p},{code:100,name:"subclassMarker",parser:p},...ac];class a4{parseEntity(e,a){let r={};return l(a1,aQ)(a,e,r),r}}function a2(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}k="LWPOLYLINE",(C="ForEntityName")in a4?Object.defineProperty(a4,C,{value:k,enumerable:!0,configurable:!0,writable:!0}):a4[C]=k;let a3={thickness:0,extrusionDirection:{x:0,y:0,z:1},angle:0},a7=[{code:50,name:"angle",parser:p},{code:210,name:"extrusionDirection",parser:u},{code:39,name:"thickness",parser:p},{code:10,name:"position",parser:u},{code:100,name:"subclassMarker",parser:p},...ac];class a5{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){a2(this,"parser",l(a7,a3))}}function a6(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}a2(a5,"ForEntityName","POINT"),(F=e2||(e2={}))[F.CLOSED_POLYLINE=1]="CLOSED_POLYLINE",F[F.CURVE_FIT=2]="CURVE_FIT",F[F.SPLINE_FIT=4]="SPLINE_FIT",F[F.POLYLINE_3D=8]="POLYLINE_3D",F[F.POLYGON_3D=16]="POLYGON_3D",F[F.CLOSED_POLYGON=32]="CLOSED_POLYGON",F[F.POLYFACE=64]="POLYFACE",F[F.CONTINUOUS=128]="CONTINUOUS",(x=e3||(e3={}))[x.NONE=0]="NONE",x[x.QUADRATIC=5]="QUADRATIC",x[x.CUBIC=6]="CUBIC",x[x.BEZIER=8]="BEZIER",(w=e7||(e7={}))[w.CREATED_BY_CURVE_FIT=1]="CREATED_BY_CURVE_FIT",w[w.TANGENT_DEFINED=2]="TANGENT_DEFINED",w[w.NOT_USED=4]="NOT_USED",w[w.CREATED_BY_SPLINE_FIT=8]="CREATED_BY_SPLINE_FIT",w[w.SPLINE_CONTROL_POINT=16]="SPLINE_CONTROL_POINT",w[w.FOR_POLYLINE=32]="FOR_POLYLINE",w[w.FOR_POLYGON=64]="FOR_POLYGON",w[w.POLYFACE=128]="POLYFACE";let a9={startWidth:0,endWidth:0,bulge:0},a8=[{code:91,name:"id",parser:p},{code:[...ah(71,75)],name:"faces",isMultiple:!0,parser:p},{code:50,name:"tangentDirection",parser:p},{code:70,name:"flag",parser:p},{code:42,name:"bulge",parser:p},{code:41,name:"endWidth",parser:p},{code:40,name:"startWidth",parser:p},{code:30,name:"z",parser:p},{code:20,name:"y",parser:p},{code:10,name:"x",parser:p},{code:100,name:"subclassMarker",parser:p},{code:100},...ac];class re{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){a6(this,"parser",l(a8,a9))}}function ra(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}a6(re,"ForEntityName","VERTEX");let rr={thickness:0,flag:0,startWidth:0,endWidth:0,meshMVertexCount:0,meshNVertexCount:0,surfaceMDensity:0,surfaceNDensity:0,smoothType:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rn=[{code:0,name:"vertices",isMultiple:!0,parser:(e,a)=>r(e,0,"VERTEX")?(e=a.next(),new re().parseEntity(a,e)):d},{code:210,name:"extrusionDirection",parser:u},{code:75,name:"smoothType",parser:p},{code:74,name:"surfaceNDensity",parser:p},{code:73,name:"surfaceMDensity",parser:p},{code:72,name:"meshNVertexCount",parser:p},{code:71,name:"meshMVertexCount",parser:p},{code:41,name:"endWidth",parser:p},{code:40,name:"startWidth",parser:p},{code:70,name:"flag",parser:p},{code:39,name:"thickness",parser:p},{code:30,name:"elevation",parser:p},{code:20},{code:10},{code:66},{code:100,name:"subclassMarker",parser:p},...ac];class rt{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ra(this,"parser",l(rn,rr))}}function ro(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ra(rt,"ForEntityName","POLYLINE");let rs={vertices:[],backLineVertices:[]},rc=[{code:360,name:"geometrySettingHardId",parser:p},{code:12,name:"backLineVertices",isMultiple:!0,parser:u},{code:93,name:"numberOfBackLineVertices",parser:p},{code:11,name:"vertices",isMultiple:!0,parser:u},{code:92,name:"verticesCount",parser:p},{code:[63,411],name:"indicatorColor",parser:p},{code:70,name:"indicatorTransparency",parser:p},{code:41,name:"bottomHeight",parser:p},{code:40,name:"topHeight",parser:p},{code:10,name:"verticalDirection",parser:u},{code:1,name:"name",parser:p},{code:91,name:"flag",parser:p},{code:90,name:"state",parser:p},{code:100,name:"subclassMarker",parser:p},...ac];class ri{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ro(this,"parser",l(rc,rs))}}function rd(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ro(ri,"ForEntityName","SECTION");let rl={points:[],thickness:0,extrusionDirection:{x:0,y:0,z:1}},rp=[{code:210,name:"extrusionDirection",parser:u},{code:39,name:"thickness",parser:p},{code:[...ah(10,14)],name:"points",isMultiple:!0,parser:u},{code:100,name:"subclassMarker",parser:p},...ac];class ru{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rd(this,"parser",l(rp,rl))}}function rm(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rd(ru,"ForEntityName","SOLID"),(V=e5||(e5={}))[V.NONE=0]="NONE",V[V.CLOSED=1]="CLOSED",V[V.PERIODIC=2]="PERIODIC",V[V.RATIONAL=4]="RATIONAL",V[V.PLANAR=8]="PLANAR",V[V.LINEAR=16]="LINEAR";let rI={knotTolerance:1e-6,controlTolerance:1e-6,fitTolerance:1e-9,knotValues:[],controlPoints:[],fitPoints:[]},rE=[{code:11,name:"fitPoints",isMultiple:!0,parser:u},{code:10,name:"controlPoints",isMultiple:!0,parser:u},{code:41,name:"weights",isMultiple:!0,parser:p},{code:40,name:"knots",isMultiple:!0,parser:p},{code:13,name:"endTangent",parser:u},{code:12,name:"startTangent",parser:u},{code:44,name:"fitTolerance",parser:p},{code:43,name:"controlTolerance",parser:p},{code:42,name:"knotTolerance",parser:p},{code:74,name:"numberOfFitPoints",parser:p},{code:73,name:"numberOfControlPoints",parser:p},{code:72,name:"numberOfKnots",parser:p},{code:71,name:"degree",parser:p},{code:70,name:"flag",parser:p},{code:210,name:"normal",parser:u},{code:100,name:"subclassMarker",parser:p},...ac];class rf{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rm(this,"parser",l(rE,rI))}}rm(rf,"ForEntityName","SPLINE");let rb=[{code:330,name:"sourceBoundaryObjects",parser:p,isMultiple:!0},{code:97,name:"numberOfSourceBoundaryObjects",parser:p}],rD=[{code:11,name:"end",parser:u},{code:10,name:"start",parser:u}],rO=[{code:73,name:"isCCW",parser:m},{code:51,name:"endAngle",parser:p},{code:50,name:"startAngle",parser:p},{code:40,name:"radius",parser:p},{code:10,name:"center",parser:u}],rT=[{code:73,name:"isCCW",parser:m},{code:51,name:"endAngle",parser:p},{code:50,name:"startAngle",parser:p},{code:40,name:"lengthOfMinorAxis",parser:p},{code:11,name:"end",parser:u},{code:10,name:"center",parser:u}],rh=[{code:13,name:"endTangent",parser:u},{code:12,name:"startTangent",parser:u},{code:11,name:"fitDatum",isMultiple:!0,parser:u},{code:97,name:"numberOfFitData",parser:p},{code:10,name:"controlPoints",isMultiple:!0,parser(e,a){let r={...i(a),weight:1};return 42===(e=a.next()).code?r.weight=e.value:a.rewind(),r}},{code:40,name:"knots",isMultiple:!0,parser:p},{code:96,name:"numberOfControlPoints",parser:p},{code:95,name:"numberOfKnots",parser:p},{code:74,name:"isPeriodic",parser:m},{code:73,name:"splineFlag",parser:p},{code:94,name:"degree",parser:p}],rN={[ew.Line]:rD,[ew.Circular]:rO,[ew.Elliptic]:rT,[ew.Spline]:rh},rg=[...rb,{code:72,name:"edges",parser(e,a){let r={type:e.value},n=l(rN[r.type]);if(!n)throw Error(`Invalid edge type ${r.type}`);return n(e=a.next(),a,r),r},isMultiple:!0},{code:93,name:"numberOfEdges",parser:p}],rA=[...rb,{code:10,name:"vertices",parser(e,a){let r={...i(a),bulge:0};return 42===(e=a.next()).code?r.bulge=e.value:a.rewind(),r},isMultiple:!0},{code:93,name:"numberOfVertices",parser:p},{code:73,name:"isClosed",parser:m},{code:72,name:"hasBulge",parser:m}],rL=[{code:49,name:"dashLengths",parser:p,isMultiple:!0},{code:79,name:"numberOfDashLengths",parser:p},{code:45,name:"offset",parser:rS},{code:43,name:"base",parser:rS},{code:53,name:"angle",parser:p}];function rS(e,a){let r=e.code+1,n={x:e.value,y:1};return(e=a.next()).code===r?n.y=e.value:a.rewind(),n}function r_(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}let ry={extrusionDirection:{x:0,y:0,z:1},gradientRotation:0,colorTint:0},rM=[{code:470},{code:463},{code:462,name:"colorTint",parser:p},{code:461,name:"gradientDefinition",parser:p},{code:460,name:"gradientRotation",parser:p},{code:453,name:"numberOfColors",parser:p},{code:452,name:"gradientColorFlag",parser:p},{code:451},{code:450,name:"gradientFlag",parser:p},{code:10,name:"seedPoints",parser:u,isMultiple:!0},{code:99},{code:11,name:"offsetVector",parser:u},{code:98,name:"numberOfSeedPoints",parser:p},{code:47,name:"pixelSize",parser:p},{code:53,name:"definitionLines",parser:function(e,a){let r={};return l(rL)(e,a,r),r},isMultiple:!0},{code:78,name:"numberOfDefinitionLines",parser:p},{code:77,name:"isDouble",parser:m},{code:73,name:"isAnnotated",parser:m},{code:41,name:"patternScale",parser:p},{code:52,name:"patternAngle",parser:p},{code:76,name:"patternType",parser:p},{code:75,name:"hatchStyle",parser:p},{code:92,name:"boundaryPaths",parser:function(e,a){let r={boundaryPathTypeFlag:e.value},n=r.boundaryPathTypeFlag&ex.Polyline;return(e=a.next(),n)?l(rA)(e,a,r):l(rg)(e,a,r),r},isMultiple:!0},{code:91,name:"numberOfBoundaryPaths",parser:p},{code:71,name:"associativity",parser:p},{code:63,name:"patternFillColor",parser:p},{code:70,name:"solidFill",parser:p},{code:2,name:"patternName",parser:p},{code:210,name:"extrusionDirection",parser:u},{code:10,name:"elevationPoint",parser:u},{code:100,name:"subclassMarker",parser:p,pushContext:!0},...ac];class rR{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){r_(this,"parser",l(rM,ry))}}r_(rR,"ForEntityName","HATCH");class rP{parseEntity(e,a){let r={};for(;"EOF"!==a;){if(0===a.code){e.rewind();break}!function(e,a,r){if("EOF"===r)return!1;switch(r.code){case 0:return!1;case 100:e.subclassMarker=r.value;break;case 10:e.viewportCenter=aN(i(a));break;case 40:e.width=r.value;break;case 41:e.height=r.value;break;case 68:e.status=r.value;break;case 69:e.viewportId=r.value;break;case 12:e.displayCenter=i(a);break;case 13:e.snapBase=i(a);break;case 14:e.snapSpacing=i(a);break;case 15:e.gridSpacing=i(a);break;case 16:e.viewDirection=aN(i(a));break;case 17:e.targetPoint=aN(i(a));break;case 42:e.perspectiveLensLength=r.value;break;case 43:e.frontClipZ=r.value;break;case 44:e.backClipZ=r.value;break;case 45:e.viewHeight=r.value;break;case 50:e.snapAngle=r.value;break;case 51:e.viewTwistAngle=r.value;break;case 72:e.circleZoomPercent=r.value;break;case 331:e.frozenLayerIds??(e.frozenLayerIds=[]),e.frozenLayerIds.push(r.value);break;case 90:e.statusBitFlags=r.value;break;case 340:e.clippingBoundaryId=r.value;break;case 1:e.sheetName=r.value;break;case 281:e.renderMode=r.value;break;case 71:e.ucsPerViewport=r.value;break;case 110:e.ucsOrigin=aN(i(a));break;case 111:e.ucsXAxis=aN(i(a));break;case 112:e.ucsYAxis=aN(i(a));break;case 345:e.ucsId=r.value;break;case 346:e.ucsBaseId=r.value;break;case 79:e.orthographicType=r.value;break;case 146:e.elevation=r.value;break;case 170:e.shadePlotMode=r.value;break;case 61:e.majorGridFrequency=r.value;break;case 332:e.backgroundId=r.value;break;case 333:e.shadePlotId=r.value;break;case 348:e.visualStyleId=r.value;break;case 292:e.isDefaultLighting=!!r.value;break;case 282:e.defaultLightingType=r.value;break;case 141:e.brightness=r.value;break;case 142:e.contrast=r.value;break;case 63:case 421:case 431:e.ambientLightColor=r.value;break;case 361:e.sunId=r.value;break;case 335:case 343:case 344:case 91:e.softPointer=r.value}return!0}(r,e,a)&&as(r,a,e),a=e.next()}return r}}U="VIEWPORT",(B="ForEntityName")in rP?Object.defineProperty(rP,B,{value:U,enumerable:!0,configurable:!0,writable:!0}):rP[B]=U;let rv=Object.fromEntries([au,aT,aR,ak,aF,aB,aY,aK,aq,a4,aS,a5,rt,ri,ru,rf,af,rR,rP].map(e=>[e.ForEntityName,new e]));function rC(e,a){let n=[];for(;!r(e,0,"EOF");){if(0===e.code){if("ENDBLK"===e.value||"ENDSEC"===e.value){a.rewind();break}let r=rv[e.value];if(r){let o=e.value;e=a.next();let s=r.parseEntity(a,e);s.type=o,t(s),n.push(s)}else console.warn(`Unsupported ENTITY type: ${e.value}`)}e=a.next()}return n}let rk=[{code:333,name:"shadePlotId",parser:p},{code:149,name:"imageOriginY",parser:p},{code:148,name:"imageOriginX",parser:p},{code:147,name:"scaleFactor",parser:p},{code:78,name:"shadePlotCustomDPI",parser:p},{code:77,name:"shadePlotResolution",parser:p},{code:76,name:"shadePlotMode",parser:p},{code:75,name:"standardScaleType",parser:p},{code:7,name:"currentStyleSheet",parser:p},{code:74,name:"plotType",parser:p},{code:73,name:"plotRotation",parser:p},{code:72,name:"paperUnit",parser:p},{code:70,name:"layoutFlag",parser:p},{code:143,name:"printScaleDenominator",parser:p},{code:142,name:"printScaleNominator",parser:p},{code:141,name:"windowAreaYMax",parser:p},{code:140,name:"windowAreaYMin",parser:p},{code:49,name:"windowAreaXMax",parser:p},{code:48,name:"windowAreaXMin",parser:p},{code:47,name:"plotOriginY",parser:p},{code:46,name:"plotOriginX",parser:p},{code:45,name:"paperHeight",parser:p},{code:44,name:"paperWidth",parser:p},{code:43,name:"marginTop",parser:p},{code:42,name:"marginRight",parser:p},{code:41,name:"marginBottom",parser:p},{code:40,name:"marginLeft",parser:p},{code:6,name:"plotViewName",parser:p},{code:4,name:"paperSize",parser:p},{code:2,name:"configName",parser:p},{code:1,name:"pageSetupName",parser:p},{code:100,name:"subclassMarker",parser:p}];(G=e6||(e6={}))[G.INCHES=0]="INCHES",G[G.MILLIMETERS=1]="MILLIMETERS",G[G.PIXELS=2]="PIXELS",(H=e9||(e9={}))[H.LAST_SCREEN_DISPLAY=0]="LAST_SCREEN_DISPLAY",H[H.DRAWING_EXTENTS=1]="DRAWING_EXTENTS",H[H.DRAWING_LIMITS=2]="DRAWING_LIMITS",H[H.VIEW_SPECIFIED=3]="VIEW_SPECIFIED",H[H.WINDOW_SPECIFIED=4]="WINDOW_SPECIFIED",H[H.LAYOUT_INFORMATION=5]="LAYOUT_INFORMATION",(Y=e8||(e8={}))[Y.AS_DISPLAYED=0]="AS_DISPLAYED",Y[Y.WIREFRAME=1]="WIREFRAME",Y[Y.HIDDEN=2]="HIDDEN",Y[Y.RENDERED=3]="RENDERED",(W=ae||(ae={}))[W.DRAFT=0]="DRAFT",W[W.PREVIEW=1]="PREVIEW",W[W.NORMAL=2]="NORMAL",W[W.PRESENTATION=3]="PRESENTATION",W[W.MAXIMUM=4]="MAXIMUM",W[W.CUSTOM=5]="CUSTOM";let rF=[{code:333,name:"shadePlotId",parser:p},{code:346,name:"orthographicUcsId",parser:p},{code:345,name:"namedUcsId",parser:p},{code:331,name:"viewportId",parser:p},{code:330,name:"paperSpaceTableId",parser:p},{code:76,name:"orthographicType",parser:p},{code:17,name:"ucsYAxis",parser:u},{code:16,name:"ucsXAxis",parser:u},{code:13,name:"ucsOrigin",parser:u},{code:146,name:"elevation",parser:p},{code:15,name:"maxExtent",parser:u},{code:14,name:"minExtent",parser:u},{code:12,name:"insertionBase",parser:u},{code:11,name:"maxLimit",parser:u},{code:10,name:"minLimit",parser:u},{code:71,name:"tabOrder",parser:p},{code:70,name:"controlFlag",parser:p},{code:1,name:"layoutName",parser:p},{code:100,name:"subclassMarker",parser:p},...rk];(j=aa||(aa={}))[j.PSLTSCALE=1]="PSLTSCALE",j[j.LIMCHECK=2]="LIMCHECK";let rx=[{code:330,name:"ownerObjectId",parser:p},{code:102},{code:360,name:"ownerDictionaryIdHard",parser:p},{code:102},{code:102},{code:330,name:"ownerDictionaryIdSoft",parser:p},{code:102},{code:102},{code:102},{code:5,name:"handle",parser:p}],rw=[{code:3,name:"entries",parser:(e,a)=>{let r={name:e.value};return 350===(e=a.next()).code?r.objectId=e.value:a.rewind(),r},isMultiple:!0},{code:281,name:"recordCloneFlag",parser:p},{code:280,name:"isHardOwned",parser:m},{code:100,name:"subclassMarker",parser:p}];function rV(e){return"AcDbDictionary"===e.subclassMarker}(X=ar||(ar={}))[X.NOT_APPLICABLE=0]="NOT_APPLICABLE",X[X.KEEP_EXISTING=1]="KEEP_EXISTING",X[X.USE_CLONE=2]="USE_CLONE",X[X.XREF_VALUE_NAME=3]="XREF_VALUE_NAME",X[X.VALUE_NAME=4]="VALUE_NAME",X[X.UNMANGLE_NAME=5]="UNMANGLE_NAME";let rB={LAYOUT:rF,PLOTSETTINGS:rk,DICTIONARY:rw};function rU(e){return"INSERT"===e.type||"DIMENSION"===e.type&&!!e.name}function rG(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class rH{constructor(){rG(this,"encoding","utf-8"),rG(this,"encodingFailureFatal",!1)}}class rY extends EventTarget{parseSync(e){let a=new s(e.split(/\r\n|\r|\n/g));if(!a.hasNext())throw Error("Empty file");return this.parseAll(a)}parseStream(e){let a="",r=this;return new Promise((n,t)=>{e.on("data",e=>{a+=e}),e.on("end",()=>{try{let e=a.split(/\r\n|\r|\n/g),t=new s(e);if(!t.hasNext())throw Error("Empty file");n(r.parseAll(t))}catch(e){t(e)}}),e.on("error",e=>{t(e)})})}async parseFromUrl(e,a){let r=await fetch(e,a);if(!r.body)return null;let n=r.body.getReader(),t="";for(;;){let{done:e,value:a}=await n.read();if(e){t+=this._decoder.decode(new ArrayBuffer(0),{stream:!1});break}t+=this._decoder.decode(a,{stream:!0})}return this.parseSync(t)}parseAll(n){let o={header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}},s=n.next();for(;!r(s,0,"EOF");)r(s,0,"SECTION")&&(r(s=n.next(),2,"HEADER")?(s=n.next(),o.header=function(e,a){let n=null,t={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");)9===e.code?n=e.value:10===e.code?t[n]=i(a):t[n]=e.value,e=a.next();return t}(s,n)):r(s,2,"BLOCKS")?(s=n.next(),o.blocks=function(e,a){let n={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");){if(r(e,0,"BLOCK")){let o=function(e,a){let n={};for(;!r(e,0,"EOF");){if(r(e,0,"ENDBLK")){for(e=a.next();!r(e,0,"EOF");){if(r(e,100,"AcDbBlockEnd"))return n;e=a.next()}break}switch(e.code){case 1:n.xrefPath=e.value;break;case 2:n.name=e.value;break;case 3:n.name2=e.value;break;case 5:n.handle=e.value;break;case 8:n.layer=e.value;break;case 10:n.position=i(a);break;case 67:n.paperSpace=!!e.value&&1==e.value;break;case 70:0!==e.value&&(n.type=e.value);break;case 100:break;case 330:n.ownerHandle=e.value;break;case 0:n.entities=rC(e,a)}e=a.next()}return n}(e=a.next(),a);t(o),o.name&&(n[o.name]=o)}e=a.next()}return n}(s,n)):r(s,2,"ENTITIES")?(s=n.next(),o.entities=rC(s,n)):r(s,2,"TABLES")?(s=n.next(),o.tables=function(e,a){let n={};for(;!r(e,0,"EOF")&&!r(e,0,"ENDSEC");){if(r(e,0,"TABLE")){e=a.next();let r={entries:[]};T(e,a,r),n[r.name]=r}if(r(e,0)&&!r(e,0,"ENDTAB")){let r=e.value;e=a.next();let t=O[r];if(!t){console.warn(`parseTable: Invalid table name '${r}'`),e=a.next();continue}let o={};t(e,a,o),n[r]?.entries.push(o)}e=a.next()}return n}(s,n)):r(s,2,"OBJECTS")&&(s=n.next(),o.objects=function(e,a){let r=[];for(;0!==e.code||!["EOF","ENDSEC"].includes(e.value);){let n=e.value,t=rB[n];if(0===e.code&&t?.length){let o=l([...rx,...t]),s={name:n};o(e=a.next(),a,s)?(r.push(s),e=a.peek()):e=a.next()}else e=a.next()}return{byName:function(e,a){let r={};for(let n of e){let e=a(n);null!=e&&(r[e]??(r[e]=[]),r[e].push(n))}return r}(r,({name:e})=>e),byTree:function(e){let a=Object.fromEntries(e.map(e=>[e.handle,e]));for(let r of e)(!rV(r)||"0"!==r.ownerDictionaryIdSoft)&&(r.ownerDictionaryIdSoft&&(r.ownerDictionarySoft=a[r.ownerDictionaryIdSoft]),r.ownerDictionaryIdHard&&(r.ownerDictionaryHard=a[r.ownerDictionaryIdHard]),r.ownerObjectId&&(r.ownerObject=a[r.ownerObjectId])),function(e,a){rV(e)&&e.entries&&(e.entries=Object.fromEntries(e.entries.map(({name:e,objectId:r})=>[e,a[r]])))}(r,a);return e[0]}(r)}}(s,n))),s=n.next();return function(r){let n=Object.entries(r.blocks),t={};for(let[a,r]of e(([e,a])=>a.entities?.some(rU),n))for(let e of r.entities??[])rU(e)&&(t[a]??(t[a]=[]),t[a].push(e.name));let o=(function({seeds:e,spanner:a,serializer:r,iterationLimit:n=1/0}){let t=new Set,o=0;return e.map(e=>{let s=[],c=[[e,r(e)]];for(;c.length&&o++<n;){let[e,n]=c.pop();if(!t.has(n))for(let o of(t.add(n),s.push(e),a(e)))c.push([o,r(o)])}return s}).filter(e=>e.length)})({seeds:[...a(({name:e})=>e,e(rU,r.entities))],serializer:e=>e,spanner:e=>t[e]??[]}).flat();return{...r,blocks:Object.fromEntries(o.map(e=>[e,r.blocks[e]]))}}(o)}constructor(e=new rH){super(),rG(this,"_decoder",void 0),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal})}}export{rY as default};
1
+ import{filter as e,map as a}from"@fxts/core";(H=eE||(eE={}))[H.None=0]="None",H[H.Anonymous=1]="Anonymous",H[H.NonConstant=2]="NonConstant",H[H.Xref=4]="Xref",H[H.XrefOverlay=8]="XrefOverlay",H[H.ExternallyDependent=16]="ExternallyDependent",H[H.ResolvedOrDependent=32]="ResolvedOrDependent",H[H.ReferencedXref=64]="ReferencedXref",(G=eI||(eI={}))[G.BYBLOCK=0]="BYBLOCK",G[G.BYLAYER=256]="BYLAYER";let r=-1,t=4,n=Math.PI/24;(U=eh||(eh={}))[U.Rotated=0]="Rotated",U[U.Aligned=1]="Aligned",U[U.Angular=2]="Angular",U[U.Diameter=3]="Diameter",U[U.Radius=4]="Radius",U[U.Angular3Point=5]="Angular3Point",U[U.Ordinate=6]="Ordinate",U[U.ReferenceIsExclusive=32]="ReferenceIsExclusive",U[U.IsOrdinateXTypeFlag=64]="IsOrdinateXTypeFlag",U[U.IsCustomTextPositionFlag=128]="IsCustomTextPositionFlag",(Y=ef||(ef={}))[Y.TopLeft=1]="TopLeft",Y[Y.TopCenter=2]="TopCenter",Y[Y.TopRight=3]="TopRight",Y[Y.MiddleLeft=4]="MiddleLeft",Y[Y.MiddleCenter=5]="MiddleCenter",Y[Y.MiddleRight=6]="MiddleRight",Y[Y.BottomLeft=7]="BottomLeft",Y[Y.BottomCenter=8]="BottomCenter",Y[Y.BottomRight=9]="BottomRight",(W=eb||(eb={}))[W.AtLeast=1]="AtLeast",W[W.Exact=2]="Exact",(j=eT||(eT={}))[j.Center=0]="Center",j[j.Above=1]="Above",j[j.Outside=2]="Outside",j[j.JIS=3]="JIS",j[j.Below=4]="Below",(X=eD||(eD={}))[X.Feet=0]="Feet",X[X.None=1]="None",X[X.Inch=2]="Inch",X[X.FeetAndInch=3]="FeetAndInch",X[X.Leading=4]="Leading",X[X.Trailing=8]="Trailing",X[X.LeadingAndTrailing=12]="LeadingAndTrailing",(z=eO||(eO={}))[z.None=0]="None",z[z.Leading=1]="Leading",z[z.Trailing=2]="Trailing",z[z.LeadingAndTrailing=3]="LeadingAndTrailing",(K=eS||(eS={}))[K.Center=0]="Center",K[K.Left=1]="Left",K[K.Right=2]="Right",K[K.OverFirst=3]="OverFirst",K[K.OverSecond=4]="OverSecond",(Z=eN||(eN={}))[Z.Bottom=0]="Bottom",Z[Z.Center=1]="Center",Z[Z.Top=2]="Top",(J=eg||(eg={}))[J.PatternFill=0]="PatternFill",J[J.SolidFill=1]="SolidFill",($=e_||(e_={}))[$.NonAssociative=0]="NonAssociative",$[$.Associative=1]="Associative",(q=eL||(eL={}))[q.Normal=0]="Normal",q[q.Outer=1]="Outer",q[q.Ignore=2]="Ignore",(Q=eA||(eA={}))[Q.UserDefined=0]="UserDefined",Q[Q.Predefined=1]="Predefined",Q[Q.Custom=2]="Custom",(ee=ey||(ey={}))[ee.NotAnnotated=0]="NotAnnotated",ee[ee.Annotated=1]="Annotated",(ea=eP||(eP={}))[ea.Solid=0]="Solid",ea[ea.Gradient=1]="Gradient",(er=eC||(eC={}))[er.TwoColor=0]="TwoColor",er[er.OneColor=1]="OneColor",(et=eM||(eM={}))[et.Default=0]="Default",et[et.External=1]="External",et[et.Polyline=2]="Polyline",et[et.Derived=4]="Derived",et[et.Textbox=8]="Textbox",et[et.Outermost=16]="Outermost",(en=ev||(ev={}))[en.Line=1]="Line",en[en.Circular=2]="Circular",en[en.Elliptic=3]="Elliptic",en[en.Spline=4]="Spline",(eo=eR||(eR={}))[eo.Off=0]="Off",eo[eo.Solid=1]="Solid",eo[eo.Dashed=2]="Dashed",eo[eo.Dotted=3]="Dotted",eo[eo.ShotDash=4]="ShotDash",eo[eo.MediumDash=5]="MediumDash",eo[eo.LongDash=6]="LongDash",eo[eo.DoubleShortDash=7]="DoubleShortDash",eo[eo.DoubleMediumDash=8]="DoubleMediumDash",eo[eo.DoubleLongDash=9]="DoubleLongDash",eo[eo.DoubleMediumLongDash=10]="DoubleMediumLongDash",eo[eo.SparseDot=11]="SparseDot";let o={DRAGVS:"NULL",INTERFERECOLOR:1,INTERFEREOBJVS:"Conceptual",INTERFEREVPVS:"3d Wireframe",OBSLTYPE:eR.Off,SHADEDIF:70};(es=ek||(ek={}))[es.Standard=-3]="Standard",es[es.ByLayer=-2]="ByLayer",es[es.ByBlock=-1]="ByBlock",(ei=ex||(ex={}))[ei.English=0]="English",ei[ei.Metric=1]="Metric";let s=65536;function i(e,a,r){return e.code===a&&(null==r||e.value===r)}function c(e){let a={};e.rewind();let r=e.next(),t=r.code;if(a.x=r.value,(r=e.next()).code!==t+10)throw Error("Expected code for point value to be 20 but got "+r.code+".");return(a.y=r.value,(r=e.next()).code!==t+20)?e.rewind():a.z=r.value,a}(ec=eF||(eF={}))[ec.PERSPECTIVE_MODE=1]="PERSPECTIVE_MODE",ec[ec.FRONT_CLIPPING=2]="FRONT_CLIPPING",ec[ec.BACK_CLIPPING=4]="BACK_CLIPPING",ec[ec.UCS_FOLLOW=8]="UCS_FOLLOW",ec[ec.FRONT_CLIP_NOT_AT_EYE=16]="FRONT_CLIP_NOT_AT_EYE",ec[ec.UCS_ICON_VISIBILITY=32]="UCS_ICON_VISIBILITY",ec[ec.UCS_ICON_AT_ORIGIN=64]="UCS_ICON_AT_ORIGIN",ec[ec.FAST_ZOOM=128]="FAST_ZOOM",ec[ec.SNAP_MODE=256]="SNAP_MODE",ec[ec.GRID_MODE=512]="GRID_MODE",ec[ec.ISOMETRIC_SNAP_STYLE=1024]="ISOMETRIC_SNAP_STYLE",ec[ec.HIDE_PLOT_MODE=2048]="HIDE_PLOT_MODE",ec[ec.K_ISO_PAIR_TOP=4096]="K_ISO_PAIR_TOP",ec[ec.K_ISO_PAIR_RIGHT=8192]="K_ISO_PAIR_RIGHT",ec[ec.VIEWPORT_ZOOM_LOCKING=16384]="VIEWPORT_ZOOM_LOCKING",ec[ec.UNUSED=32768]="UNUSED",ec[ec.NON_RECTANGULAR_CLIPPING=65536]="NON_RECTANGULAR_CLIPPING",ec[ec.VIEWPORT_OFF=131072]="VIEWPORT_OFF",ec[ec.GRID_BEYOND_DRAWING_LIMITS=262144]="GRID_BEYOND_DRAWING_LIMITS",ec[ec.ADAPTIVE_GRID_DISPLAY=524288]="ADAPTIVE_GRID_DISPLAY",ec[ec.SUBDIVISION_BELOW_SPACING=1048576]="SUBDIVISION_BELOW_SPACING",ec[ec.GRID_FOLLOWS_WORKPLANE=2097152]="GRID_FOLLOWS_WORKPLANE",(el=ew||(ew={}))[el.OPTIMIZED_2D=0]="OPTIMIZED_2D",el[el.WIREFRAME=1]="WIREFRAME",el[el.HIDDEN_LINE=2]="HIDDEN_LINE",el[el.FLAT_SHADED=3]="FLAT_SHADED",el[el.GOURAUD_SHADED=4]="GOURAUD_SHADED",el[el.FLAT_SHADED_WITH_WIREFRAME=5]="FLAT_SHADED_WITH_WIREFRAME",el[el.GOURAUD_SHADED_WITH_WIREFRAME=6]="GOURAUD_SHADED_WITH_WIREFRAME",(ed=eV||(eV={}))[ed.UCS_UNCHANGED=0]="UCS_UNCHANGED",ed[ed.HAS_OWN_UCS=1]="HAS_OWN_UCS",(eu=eB||(eB={}))[eu.NON_ORTHOGRAPHIC=0]="NON_ORTHOGRAPHIC",eu[eu.TOP=1]="TOP",eu[eu.BOTTOM=2]="BOTTOM",eu[eu.FRONT=3]="FRONT",eu[eu.BACK=4]="BACK",eu[eu.LEFT=5]="LEFT",eu[eu.RIGHT=6]="RIGHT",(ep=eH||(eH={}))[ep.AS_DISPLAYED=0]="AS_DISPLAYED",ep[ep.WIREFRAME=1]="WIREFRAME",ep[ep.HIDDEN=2]="HIDDEN",ep[ep.RENDERED=3]="RENDERED",(em=eG||(eG={}))[em.ONE_DISTANT_LIGHT=0]="ONE_DISTANT_LIGHT",em[em.TWO_DISTANT_LIGHTS=1]="TWO_DISTANT_LIGHTS";let l=Symbol();function d(e,a){return(r,t,n)=>{let o=e.reduce((e,a)=>{a.pushContext&&e.push({});let r=e[e.length-1];for(let e of"number"==typeof a.code?[a.code]:a.code){let t=r[e]??(r[e]=[]);a.isMultiple&&t.length&&console.warn(`Snippet ${t.at(-1).name} for code(${e}) is shadowed by ${a.name}`),t.push(a)}return e},[{}]),s=!1,c=o.length-1;for(;!i(r,0,"EOF");){let e=function(e,a,r){return e.find((e,t)=>t>=r&&e[a]?.length)}(o,r.code,c),a=e?.[r.code].at(-1);if(!e||!a){t.rewind();break}a.isMultiple||e[r.code].pop();let{name:i,parser:d,isMultiple:u}=a,p=d?.(r,t,n);if(p===l){t.rewind();break}if(i){let[e,a]=function(e,a){let r=a.split("."),t=e;for(let e=0;e<r.length-1;++e){let a=r[e];Object.hasOwn(t,a)||(t[a]={}),t=t[a]}return[t,r.at(-1)]}(n,i);u?(Object.hasOwn(e,a)||(e[a]=[]),e[a].push(p)):e[a]=p}a.pushContext&&(c-=1),s=!0,r=t.next()}return a&&Object.setPrototypeOf(n,a),s}}function u({value:e}){return e}function p(e,a){return c(a)}function m({value:e}){return!!e}var E,I,h,f,b,T,D,O,S,N,g,_,L,A,y,P,C,M,v,R,k,x,F,w,V,B,H,G,U,Y,W,j,X,z,K,Z,J,$,q,Q,ee,ea,er,et,en,eo,es,ei,ec,el,ed,eu,ep,em,eE,eI,eh,ef,eb,eT,eD,eO,eS,eN,eg,e_,eL,eA,ey,eP,eC,eM,ev,eR,ek,ex,eF,ew,eV,eB,eH,eG,eU,eY,eW,ej,eX,ez,eK,eZ,eJ,e$,eq,eQ,e0,e1,e4,e2,e3,e7,e5,e6,e9=[0,16711680,16776960,65280,65535,255,16711935,16777215,8421504,12632256,16711680,16744319,13369344,13395558,10027008,10046540,8323072,8339263,4980736,4990502,16727808,16752511,13382400,13401958,10036736,10051404,8331008,8343359,4985600,4992806,16744192,16760703,13395456,13408614,10046464,10056268,8339200,8347455,4990464,4995366,16760576,16768895,13408512,13415014,10056192,10061132,8347392,8351551,4995328,4997670,16776960,16777087,13421568,13421670,10000384,10000460,8355584,8355647,5000192,5000230,12582656,14679935,10079232,11717734,7510016,8755276,6258432,7307071,3755008,4344870,8388352,12582783,6736896,10079334,5019648,7510092,4161280,6258495,2509824,3755046,4194048,10485631,3394560,8375398,2529280,6264908,2064128,5209919,1264640,3099686,65280,8388479,52224,6736998,38912,5019724,32512,4161343,19456,2509862,65343,8388511,52275,6737023,38950,5019743,32543,4161359,19475,2509871,65407,8388543,52326,6737049,38988,5019762,32575,4161375,19494,2509881,65471,8388575,52377,6737074,39026,5019781,32607,4161391,19513,2509890,65535,8388607,52428,6737100,39064,5019800,32639,4161407,19532,2509900,49151,8380415,39372,6730444,29336,5014936,24447,4157311,14668,2507340,32767,8372223,26316,6724044,19608,5010072,16255,4153215,9804,2505036,16383,8364031,13260,6717388,9880,5005208,8063,4149119,4940,2502476,255,8355839,204,6710988,152,5000344,127,4145023,76,2500172,4129023,10452991,3342540,8349388,2490520,6245528,2031743,5193599,1245260,3089996,8323327,12550143,6684876,10053324,4980888,7490712,4128895,6242175,2490444,3745356,12517631,14647295,10027212,11691724,7471256,8735896,6226047,7290751,3735628,4335180,16711935,16744447,13369548,13395660,9961624,9981080,8323199,8339327,4980812,4990540,16711871,16744415,13369497,13395634,9961586,9981061,8323167,8339311,4980793,4990530,16711807,16744383,13369446,13395609,9961548,9981042,8323135,8339295,4980774,4990521,16711743,16744351,13369395,13395583,9961510,9981023,8323103,8339279,4980755,4990511,3355443,5987163,8684676,11382189,14079702,16777215];function e8(e,a){if(!i(e,1001))throw Error("XData must starts with code 1001");let r={appName:e.value,value:[]};e=a.next();let t=[r.value];for(;!i(e,0,"EOF")&&e.code>=1e3;){let r=t.at(-1);switch(e.code){case 1002:"{"===e.value?t.push([]):(t.pop(),t.at(-1)?.push(r));break;case 1e3:case 1004:case 1040:case 1070:case 1071:r.push({type:ae(e.code),value:e.value});break;case 1003:r.push({name:"layer",type:ae(e.code),value:e.value});break;case 1005:r.push({name:"handle",type:ae(e.code),value:e.value});break;case 1010:r.push({type:ae(e.code),value:c(a)});break;case 1011:r.push({name:"worldSpacePosition",type:ae(e.code),value:c(a)});break;case 1012:r.push({name:"worldSpaceDisplacement",type:ae(e.code),value:c(a)});break;case 1013:r.push({name:"worldSpaceDirection",type:ae(e.code),value:c(a)});break;case 1041:r.push({name:"distance",type:ae(e.code),value:e.value});break;case 1042:r.push({name:"scale",type:ae(e.code),value:e.value})}e=a.next()}return a.rewind(),r}function ae(e){switch(e){case 1e3:case 1003:case 1005:return"string";case 1004:return"hex";case 1040:case 1041:case 1042:return"real";case 1070:return"integer";case 1071:return"long";case 1010:case 1011:case 1012:case 1013:return"point";default:return""}}function aa(e,a,r){if(i(a,102))return ao(a,r),!0;switch(a.code){case 0:e.type=a.value;break;case 5:e.handle=a.value;break;case 330:e.ownerDictionarySoftId?e.ownerBlockRecordSoftId=a.value:e.ownerDictionarySoftId=a.value;break;case 360:e.ownerdictionaryHardId=a.value;break;case 67:e.isInPaperSpace=!!a.value;break;case 8:e.layer=a.value;break;case 6:e.lineType=a.value;break;case 347:e.materialObjectHardId=a.value;break;case 62:e.colorIndex=a.value,e.color=e9[Math.abs(a.value)];break;case 370:e.lineweight=a.value;break;case 48:e.lineTypeScale=a.value;break;case 60:e.isVisible=!!a.value;break;case 92:e.proxyByte=a.value;break;case 310:e.proxyEntity=a.value;break;case 100:break;case 420:e.color=a.value;break;case 430:e.transparency=a.value;break;case 390:e.plotStyleHardId=a.value;break;case 284:e.shadowMode=a.value;break;case 1001:e.xdata=e8(a,r);break;default:return!1}return!0}let ar=0;function at(e){if(!e)throw TypeError("entity cannot be undefined or null");e.handle||(e.handle=ar++)}(E=eU||(eU={}))[E.CAST_AND_RECEIVE=0]="CAST_AND_RECEIVE",E[E.CAST=1]="CAST",E[E.RECEIVE=2]="RECEIVE",E[E.IGNORE=3]="IGNORE";let an=[{code:1001,name:"xdata",parser:e8},{code:284,name:"shadowMode",parser:u},{code:390,name:"plotStyleHardId",parser:u},{code:440,name:"transparency",parser:u},{code:430,name:"colorName",parser:u},{code:420,name:"color",parser:u},{code:310,name:"proxyEntity",parser:u},{code:92,name:"proxyByte",parser:u},{code:60,name:"isVisible",parser:m},{code:48,name:"lineTypeScale",parser:u},{code:370,name:"lineweight",parser:u},{code:62,name:"colorIndex",parser(e,a,r){let t=e.value;return r.color=e9[Math.abs(t)],t}},{code:347,name:"materialObjectHardId",parser:u},{code:6,name:"lineType",parser:u},{code:8,name:"layer",parser:u},{code:410,name:"layoutTabName",parser:u},{code:67,name:"isInPaperSpace",parser:m},{code:100},{code:330,name:"ownerBlockRecordSoftId",parser:u},{code:102,parser:ao},{code:102,parser:ao},{code:102,parser:ao},{code:5,name:"handle",parser:u}];function ao(e,a){for(e=a.next();!i(e,102)&&!i(e,0,"EOF");)e=a.next()}function as(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}let ai={extrusionDirection:{x:0,y:0,z:1}},ac=[{code:210,name:"extrusionDirection",parser:p},{code:51,name:"endAngle",parser:u},{code:50,name:"startAngle",parser:u},{code:100,name:"subclassMarker",parser:u},{code:40,name:"radius",parser:u},{code:10,name:"center",parser:p},{code:39,name:"thickness",parser:u},{code:100},...an];class al{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){as(this,"parser",d(ac,ai))}}function ad(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}as(al,"ForEntityName","ARC"),(I=eY||(eY={}))[I.NONE=0]="NONE",I[I.INVISIBLE=1]="INVISIBLE",I[I.CONSTANT=2]="CONSTANT",I[I.VERIFICATION_REQUIRED=4]="VERIFICATION_REQUIRED",I[I.PRESET=8]="PRESET",(h=eW||(eW={}))[h.MULTILINE=2]="MULTILINE",h[h.CONSTANT_MULTILINE=4]="CONSTANT_MULTILINE",(f=ej||(ej={}))[f.NONE=0]="NONE",f[f.MIRRORED_X=2]="MIRRORED_X",f[f.MIRRORED_Y=4]="MIRRORED_Y",(b=eX||(eX={}))[b.LEFT=0]="LEFT",b[b.CENTER=1]="CENTER",b[b.RIGHT=2]="RIGHT",b[b.ALIGNED=3]="ALIGNED",b[b.MIDDLE=4]="MIDDLE",b[b.FIT=5]="FIT",(T=ez||(ez={}))[T.BASELINE=0]="BASELINE",T[T.BOTTOM=1]="BOTTOM",T[T.MIDDLE=2]="MIDDLE",T[T.TOP=3]="TOP";let au={thickness:0,rotation:0,xScale:1,obliqueAngle:0,styleName:"STANDARD",generationFlag:0,halign:eX.LEFT,valign:ez.BASELINE,extrusionDirection:{x:0,y:0,z:1}},ap=[{code:73,name:"valign",parser:u},{code:100},{code:210,name:"extrusionDirection",parser:p},{code:11,name:"endPoint",parser:p},{code:72,name:"valign",parser:u},{code:72,name:"halign",parser:u},{code:71,name:"generationFlag",parser:u},{code:7,name:"styleName",parser:u},{code:51,name:"obliqueAngle",parser:u},{code:41,name:"xScale",parser:u},{code:50,name:"rotation",parser:u},{code:1,name:"text",parser:u},{code:40,name:"textHeight",parser:u},{code:10,name:"startPoint",parser:p},{code:39,name:"thickness",parser:u},{code:100,name:"subclassMarker",parser:u},...an];class am{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ad(this,"parser",d(ap,au))}}function aE(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}ad(am,"ForEntityName","TEXT");let aI={...au},ah=[{code:2},{code:40,name:"annotationScale",parser:u},{code:10,name:"alignmentPoint",parser:p},{code:340,name:"secondaryAttributesHardIds",isMultiple:!0,parser:u},{code:70,name:"numberOfSecondaryAttributes",parser:u},{code:70,name:"isReallyLocked",parser:m},{code:70,name:"mtextFlag",parser:u},{code:280,name:"isDuplicatedRecord",parser:m},{code:100},{code:280,name:"isLocked",parser:m},{code:74,name:"valign",parser:u},{code:73},{code:70,name:"attributeFlag",parser:u},{code:2,name:"tag",parser:u},{code:3,name:"prompt",parser:u},{code:280},{code:100,name:"subclassMarker",parser:u},...ap.slice(2)];class af{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aE(this,"parser",d(ah,aI))}}function ab(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aE(af,"ForEntityName","ATTDEF");let aT={thickness:0,extrusionDirection:{x:0,y:0,z:1}},aD=[{code:210,name:"extrusionDirection",parser:p},{code:40,name:"radius",parser:u},{code:10,name:"center",parser:p},{code:39,name:"thickness",parser:u},{code:100,name:"subclassMarker",parser:u},...an];class aO{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){ab(this,"parser",d(aD,aT))}}ab(aO,"ForEntityName","CIRCLE");class aS{parseEntity(e,a){let r={};for(;!i(a,0,"EOF");){if(0===a.code){e.rewind();break}!function(e,a,r){switch(a.code){case 100:e.subclassMarker=a.value;break;case 280:e.version=a.value;break;case 2:e.name=a.value;break;case 10:e.definitionPoint=c(r);break;case 11:e.textPoint=c(r);break;case 12:e.insertionPoint=c(r);break;case 13:e.subDefinitionPoint1=c(r);break;case 14:e.subDefinitionPoint2=c(r);break;case 15:e.centerPoint=c(r);break;case 16:e.arcPoint=c(r);break;case 70:e.dimensionType=a.value;break;case 71:e.attachmentPoint=a.value;break;case 72:e.textLineSpacingStyle=a.value;break;case 40:e.leaderLength=a.value;break;case 41:e.textLineSpacingFactor=a.value;break;case 42:e.measurement=a.value;break;case 1:e.text=a.value;break;case 50:e.rotationAngle=a.value;break;case 52:e.obliqueAngle=a.value;break;case 53:e.textRotation=a.value;break;case 51:e.ocsRotation=a.value;break;case 210:e.extrusionDirection=c(r);break;case 3:e.styleName=a.value;break;default:aa(e,a,r)}}(r,a,e),a=e.next()}return r}}function aN(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}O="DIMENSION",(D="ForEntityName")in aS?Object.defineProperty(aS,D,{value:O,enumerable:!0,configurable:!0,writable:!0}):aS[D]=O;let ag={extrusionDirection:{x:0,y:0,z:1}},a_=[{code:42,name:"endAngle",parser:u},{code:41,name:"startAngle",parser:u},{code:40,name:"axisRatio",parser:u},{code:210,name:"extrusionDirection",parser:p},{code:11,name:"majorAxisEndPoint",parser:p},{code:10,name:"center",parser:p},{code:100,name:"subclassMarker",parser:u},...an];class aL{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aN(this,"parser",d(a_,ag))}}aN(aL,"ForEntityName","ELLIPSE");let aA=[{code:330,name:"sourceBoundaryObjects",parser:u,isMultiple:!0},{code:97,name:"numberOfSourceBoundaryObjects",parser:u}],ay=[{code:11,name:"end",parser:p},{code:10,name:"start",parser:p}],aP=[{code:73,name:"isCCW",parser:m},{code:51,name:"endAngle",parser:u},{code:50,name:"startAngle",parser:u},{code:40,name:"radius",parser:u},{code:10,name:"center",parser:p}],aC=[{code:73,name:"isCCW",parser:m},{code:51,name:"endAngle",parser:u},{code:50,name:"startAngle",parser:u},{code:40,name:"lengthOfMinorAxis",parser:u},{code:11,name:"end",parser:p},{code:10,name:"center",parser:p}],aM=[{code:13,name:"endTangent",parser:p},{code:12,name:"startTangent",parser:p},{code:11,name:"fitDatum",isMultiple:!0,parser:p},{code:97,name:"numberOfFitData",parser:u},{code:10,name:"controlPoints",isMultiple:!0,parser(e,a){let r={...c(a),weight:1};return 42===(e=a.next()).code?r.weight=e.value:a.rewind(),r}},{code:40,name:"knots",isMultiple:!0,parser:u},{code:96,name:"numberOfControlPoints",parser:u},{code:95,name:"numberOfKnots",parser:u},{code:74,name:"isPeriodic",parser:m},{code:73,name:"splineFlag",parser:u},{code:94,name:"degree",parser:u}],av={[ev.Line]:ay,[ev.Circular]:aP,[ev.Elliptic]:aC,[ev.Spline]:aM},aR=[...aA,{code:72,name:"edges",parser(e,a){let r={type:e.value},t=d(av[r.type]);if(!t)throw Error(`Invalid edge type ${r.type}`);return t(e=a.next(),a,r),r},isMultiple:!0},{code:93,name:"numberOfEdges",parser:u}],ak=[...aA,{code:10,name:"vertices",parser(e,a){let r={...c(a),bulge:0};return 42===(e=a.next()).code?r.bulge=e.value:a.rewind(),r},isMultiple:!0},{code:93,name:"numberOfVertices",parser:u},{code:73,name:"isClosed",parser:m},{code:72,name:"hasBulge",parser:m}],ax=[{code:49,name:"dashLengths",parser:u,isMultiple:!0},{code:79,name:"numberOfDashLengths",parser:u},{code:45,name:"offset",parser:aF},{code:43,name:"base",parser:aF},{code:53,name:"angle",parser:u}];function aF(e,a){let r=e.code+1,t={x:e.value,y:1};return(e=a.next()).code===r?t.y=e.value:a.rewind(),t}function aw(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}let aV={extrusionDirection:{x:0,y:0,z:1},gradientRotation:0,colorTint:0},aB=[{code:470},{code:463},{code:462,name:"colorTint",parser:u},{code:461,name:"gradientDefinition",parser:u},{code:460,name:"gradientRotation",parser:u},{code:453,name:"numberOfColors",parser:u},{code:452,name:"gradientColorFlag",parser:u},{code:451},{code:450,name:"gradientFlag",parser:u},{code:10,name:"seedPoints",parser:p,isMultiple:!0},{code:99},{code:11,name:"offsetVector",parser:p},{code:98,name:"numberOfSeedPoints",parser:u},{code:47,name:"pixelSize",parser:u},{code:53,name:"definitionLines",parser:function(e,a){let r={};return d(ax)(e,a,r),r},isMultiple:!0},{code:78,name:"numberOfDefinitionLines",parser:u},{code:77,name:"isDouble",parser:m},{code:73,name:"isAnnotated",parser:m},{code:41,name:"patternScale",parser:u},{code:52,name:"patternAngle",parser:u},{code:76,name:"patternType",parser:u},{code:75,name:"hatchStyle",parser:u},{code:92,name:"boundaryPaths",parser:function(e,a){let r={boundaryPathTypeFlag:e.value},t=r.boundaryPathTypeFlag&eM.Polyline;return(e=a.next(),t)?d(ak)(e,a,r):d(aR)(e,a,r),r},isMultiple:!0},{code:91,name:"numberOfBoundaryPaths",parser:u},{code:71,name:"associativity",parser:u},{code:63,name:"patternFillColor",parser:u},{code:70,name:"solidFill",parser:u},{code:2,name:"patternName",parser:u},{code:210,name:"extrusionDirection",parser:p},{code:10,name:"elevationPoint",parser:p},{code:100,name:"subclassMarker",parser:u,pushContext:!0},...an];class aH{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aw(this,"parser",d(aB,aV))}}function aG(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aw(aH,"ForEntityName","HATCH");let aU={xScale:1,yScale:1,zScale:1,rotation:0,columnCount:0,rowCount:0,columnSpacing:0,rowSpacing:0,extrusionDirection:{x:0,y:0,z:1}},aY=[{code:210,name:"extrusionDirection",parser:p},{code:45,name:"rowSpacing",parser:u},{code:44,name:"columnSpacing",parser:u},{code:71,name:"rowCount",parser:u},{code:70,name:"columnCount",parser:u},{code:50,name:"rotation",parser:u},{code:43,name:"zScale",parser:u},{code:42,name:"yScale",parser:u},{code:41,name:"xScale",parser:u},{code:10,name:"insertionPoint",parser:p},{code:2,name:"name",parser:u},{code:66,name:"isVariableAttributes",parser:m},{code:100,name:"subclassMarker",parser:u},...an];class aW{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aG(this,"parser",d(aY,aU))}}function aj(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aG(aW,"ForEntityName","INSERT");let aX={isArrowheadEnabled:!0},az=[{code:213,name:"offsetFromAnnotation",parser:p},{code:212,name:"offsetFromBlock",parser:p},{code:211,name:"horizontalDirection",parser:p},{code:210,name:"normal",parser:p},{code:340,name:"associatedAnnotation",parser:u},{code:77,name:"byBlockColor",parser:u},{code:10,name:"vertices",parser:p,isMultiple:!0},{code:76,name:"numberOfVertices",parser:u},{code:41,name:"textWidth",parser:u},{code:40,name:"textHeight",parser:u},{code:75,name:"isHooklineExists",parser:m},{code:74,name:"isHooklineSameDirection",parser:m},{code:73,name:"leaderCreationFlag",parser:u},{code:72,name:"isSpline",parser:m},{code:71,name:"isArrowheadEnabled",parser:m},{code:3,name:"styleName",parser:u},{code:100,name:"subclassMarker",parser:u},...an];class aK{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aj(this,"parser",d(az,aX))}}function aZ(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}aj(aK,"ForEntityName","LEADER"),(S=eK||(eK={}))[S.TextAnnotation=0]="TextAnnotation",S[S.ToleranceAnnotation=1]="ToleranceAnnotation",S[S.BlockReferenceAnnotation=2]="BlockReferenceAnnotation",S[S.NoAnnotation=3]="NoAnnotation";let aJ={thickness:0,extrusionDirection:{x:0,y:0,z:1}},a$=[{code:210,name:"extrusionDirection",parser:p},{code:11,name:"endPoint",parser:p},{code:10,name:"startPoint",parser:p},{code:39,name:"thickness",parser:u},{code:100,name:"subclassMarker",parser:u},...an];class aq{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){aZ(this,"parser",d(a$,aJ))}}aZ(aq,"ForEntityName","LINE"),(N=eZ||(eZ={}))[N.IS_CLOSED=1]="IS_CLOSED",N[N.PLINE_GEN=128]="PLINE_GEN";let aQ={flag:0,elevation:0,thickness:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},a0={bulge:0},a1=[{code:42,name:"bulge",parser:u},{code:41,name:"endWidth",parser:u},{code:40,name:"startWidth",parser:u},{code:91,name:"id",parser:u},{code:20,name:"y",parser:u},{code:10,name:"x",parser:u}],a4=[{code:210,name:"extrusionDirection",parser:p},{code:10,name:"vertices",isMultiple:!0,parser(e,a){let r={};return d(a1,a0)(e,a,r),r}},{code:39,name:"thickness",parser:u},{code:38,name:"elevation",parser:u},{code:43,name:"constantWidth",parser:u},{code:70,name:"flag",parser:u},{code:90,name:"numberOfVertices",parser:u},{code:100,name:"subclassMarker",parser:u},...an];class a2{parseEntity(e,a){let r={};return d(a4,aQ)(a,e,r),r}}function a3({seeds:e,spanner:a,serializer:r,iterationLimit:t=1/0}){let n=new Set,o=0;return e.map(e=>{let s=[],i=[[e,r(e)]];for(;i.length&&o++<t;){let[e,t]=i.pop();if(!n.has(t))for(let o of(n.add(t),s.push(e),a(e)))i.push([o,r(o)])}return s}).filter(e=>e.length)}function a7(e,a){let r={};for(let t of e){let e=a(t);null!=e&&(r[e]??(r[e]=[]),r[e].push(t))}return r}function*a5(e,a=1/0,r=1){for(let t=e;t!==a;t+=r)yield t}function a6(e){return{x:e.x??0,y:e.y??0,z:e.z??0}}function a9(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}_="LWPOLYLINE",(g="ForEntityName")in a2?Object.defineProperty(a2,g,{value:_,enumerable:!0,configurable:!0,writable:!0}):a2[g]=_,(L=eJ||(eJ={}))[L.LEFT_TO_RIGHT=1]="LEFT_TO_RIGHT",L[L.TOP_TO_BOTTOM=3]="TOP_TO_BOTTOM",L[L.BY_STYLE=5]="BY_STYLE";let a8={textStyle:"STANDARD",extrusionDirection:{x:0,y:0,z:1},rotation:0},re=[{code:46,name:"annotationHeight",parser:u},{code:101,parser(e,a){!function(e){e.rewind();let a=e.next();if(101!==a.code)throw Error("Bad call for skipEmbeddedObject()");do a=e.next();while(0!==a.code);e.rewind()}(a)}},{code:50,name:"columnHeight",parser:u},{code:49,name:"columnGutter",parser:u},{code:48,name:"columnWidth",parser:u},{code:79,name:"columnAutoHeight",parser:u},{code:78,name:"columnFlowReversed",parser:u},{code:76,name:"columnCount",parser:u},{code:75,name:"columnType",parser:u},{code:441,name:"backgroundFillTransparency",parser:u},{code:63,name:"backgroundFillColor",parser:u},{code:45,name:"fillBoxScale",parser:u},{code:[...a5(430,440)],name:"backgroundColor",parser:u},{code:[...a5(420,430)],name:"backgroundColor",parser:u},{code:90,name:"backgroundFill",parser:u},{code:44,name:"lineSpacing",parser:u},{code:73,name:"lineSpacingStyle",parser:u},{code:50,name:"rotation",parser:u},{code:43},{code:42},{code:11,name:"direction",parser:p},{code:210,name:"extrusionDirection",parser:p},{code:7,name:"styleName",parser:u},{code:3,name:"text",parser:(e,a,r)=>(r.text??"")+e.value},{code:1,name:"text",parser:u},{code:72,name:"drawingDirection",parser:u},{code:71,name:"attachmentPoint",parser:u},{code:41,name:"width",parser:u},{code:40,name:"height",parser:u},{code:10,name:"insertionPoint",parser:p},{code:100,name:"subclassMarker",parser:u},...an];class ra{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){a9(this,"parser",d(re,a8))}}function rr(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}a9(ra,"ForEntityName","MTEXT");let rt={thickness:0,extrusionDirection:{x:0,y:0,z:1},angle:0},rn=[{code:50,name:"angle",parser:u},{code:210,name:"extrusionDirection",parser:p},{code:39,name:"thickness",parser:u},{code:10,name:"position",parser:p},{code:100,name:"subclassMarker",parser:u},...an];class ro{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rr(this,"parser",d(rn,rt))}}function rs(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rr(ro,"ForEntityName","POINT"),(A=e$||(e$={}))[A.CLOSED_POLYLINE=1]="CLOSED_POLYLINE",A[A.CURVE_FIT=2]="CURVE_FIT",A[A.SPLINE_FIT=4]="SPLINE_FIT",A[A.POLYLINE_3D=8]="POLYLINE_3D",A[A.POLYGON_3D=16]="POLYGON_3D",A[A.CLOSED_POLYGON=32]="CLOSED_POLYGON",A[A.POLYFACE=64]="POLYFACE",A[A.CONTINUOUS=128]="CONTINUOUS",(y=eq||(eq={}))[y.NONE=0]="NONE",y[y.QUADRATIC=5]="QUADRATIC",y[y.CUBIC=6]="CUBIC",y[y.BEZIER=8]="BEZIER",(P=eQ||(eQ={}))[P.CREATED_BY_CURVE_FIT=1]="CREATED_BY_CURVE_FIT",P[P.TANGENT_DEFINED=2]="TANGENT_DEFINED",P[P.NOT_USED=4]="NOT_USED",P[P.CREATED_BY_SPLINE_FIT=8]="CREATED_BY_SPLINE_FIT",P[P.SPLINE_CONTROL_POINT=16]="SPLINE_CONTROL_POINT",P[P.FOR_POLYLINE=32]="FOR_POLYLINE",P[P.FOR_POLYGON=64]="FOR_POLYGON",P[P.POLYFACE=128]="POLYFACE";let ri={startWidth:0,endWidth:0,bulge:0},rc=[{code:91,name:"id",parser:u},{code:[...a5(71,75)],name:"faces",isMultiple:!0,parser:u},{code:50,name:"tangentDirection",parser:u},{code:70,name:"flag",parser:u},{code:42,name:"bulge",parser:u},{code:41,name:"endWidth",parser:u},{code:40,name:"startWidth",parser:u},{code:30,name:"z",parser:u},{code:20,name:"y",parser:u},{code:10,name:"x",parser:u},{code:100,name:"subclassMarker",parser:u},{code:100},...an];class rl{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rs(this,"parser",d(rc,ri))}}function rd(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rs(rl,"ForEntityName","VERTEX");let ru={thickness:0,flag:0,startWidth:0,endWidth:0,meshMVertexCount:0,meshNVertexCount:0,surfaceMDensity:0,surfaceNDensity:0,smoothType:0,extrusionDirection:{x:0,y:0,z:1},vertices:[]},rp=[{code:0,name:"vertices",isMultiple:!0,parser:(e,a)=>i(e,0,"VERTEX")?(e=a.next(),new rl().parseEntity(a,e)):l},{code:210,name:"extrusionDirection",parser:p},{code:75,name:"smoothType",parser:u},{code:74,name:"surfaceNDensity",parser:u},{code:73,name:"surfaceMDensity",parser:u},{code:72,name:"meshNVertexCount",parser:u},{code:71,name:"meshMVertexCount",parser:u},{code:41,name:"endWidth",parser:u},{code:40,name:"startWidth",parser:u},{code:70,name:"flag",parser:u},{code:39,name:"thickness",parser:u},{code:30,name:"elevation",parser:u},{code:20},{code:10},{code:66},{code:100,name:"subclassMarker",parser:u},...an];class rm{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rd(this,"parser",d(rp,ru))}}function rE(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rd(rm,"ForEntityName","POLYLINE");let rI={vertices:[],backLineVertices:[]},rh=[{code:360,name:"geometrySettingHardId",parser:u},{code:12,name:"backLineVertices",isMultiple:!0,parser:p},{code:93,name:"numberOfBackLineVertices",parser:u},{code:11,name:"vertices",isMultiple:!0,parser:p},{code:92,name:"verticesCount",parser:u},{code:[63,411],name:"indicatorColor",parser:u},{code:70,name:"indicatorTransparency",parser:u},{code:41,name:"bottomHeight",parser:u},{code:40,name:"topHeight",parser:u},{code:10,name:"verticalDirection",parser:p},{code:1,name:"name",parser:u},{code:91,name:"flag",parser:u},{code:90,name:"state",parser:u},{code:100,name:"subclassMarker",parser:u},...an];class rf{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rE(this,"parser",d(rh,rI))}}function rb(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rE(rf,"ForEntityName","SECTION");let rT={points:[],thickness:0,extrusionDirection:{x:0,y:0,z:1}},rD=[{code:210,name:"extrusionDirection",parser:p},{code:39,name:"thickness",parser:u},{code:[...a5(10,14)],name:"points",isMultiple:!0,parser:p},{code:100,name:"subclassMarker",parser:u},...an];class rO{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rb(this,"parser",d(rD,rT))}}function rS(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}rb(rO,"ForEntityName","SOLID"),(C=e0||(e0={}))[C.NONE=0]="NONE",C[C.CLOSED=1]="CLOSED",C[C.PERIODIC=2]="PERIODIC",C[C.RATIONAL=4]="RATIONAL",C[C.PLANAR=8]="PLANAR",C[C.LINEAR=16]="LINEAR";let rN={knotTolerance:1e-6,controlTolerance:1e-6,fitTolerance:1e-9,knotValues:[],controlPoints:[],fitPoints:[]},rg=[{code:11,name:"fitPoints",isMultiple:!0,parser:p},{code:10,name:"controlPoints",isMultiple:!0,parser:p},{code:41,name:"weights",isMultiple:!0,parser:u},{code:40,name:"knots",isMultiple:!0,parser:u},{code:13,name:"endTangent",parser:p},{code:12,name:"startTangent",parser:p},{code:44,name:"fitTolerance",parser:u},{code:43,name:"controlTolerance",parser:u},{code:42,name:"knotTolerance",parser:u},{code:74,name:"numberOfFitPoints",parser:u},{code:73,name:"numberOfControlPoints",parser:u},{code:72,name:"numberOfKnots",parser:u},{code:71,name:"degree",parser:u},{code:70,name:"flag",parser:u},{code:210,name:"normal",parser:p},{code:100,name:"subclassMarker",parser:u},...an];class r_{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rS(this,"parser",d(rg,rN))}}rS(r_,"ForEntityName","SPLINE");class rL{parseEntity(e,a){let r={};for(;"EOF"!==a;){if(0===a.code){e.rewind();break}!function(e,a,r){if("EOF"===r)return!1;switch(r.code){case 0:return!1;case 100:e.subclassMarker=r.value;break;case 10:e.viewportCenter=a6(c(a));break;case 40:e.width=r.value;break;case 41:e.height=r.value;break;case 68:e.status=r.value;break;case 69:e.viewportId=r.value;break;case 12:e.displayCenter=c(a);break;case 13:e.snapBase=c(a);break;case 14:e.snapSpacing=c(a);break;case 15:e.gridSpacing=c(a);break;case 16:e.viewDirection=a6(c(a));break;case 17:e.targetPoint=a6(c(a));break;case 42:e.perspectiveLensLength=r.value;break;case 43:e.frontClipZ=r.value;break;case 44:e.backClipZ=r.value;break;case 45:e.viewHeight=r.value;break;case 50:e.snapAngle=r.value;break;case 51:e.viewTwistAngle=r.value;break;case 72:e.circleZoomPercent=r.value;break;case 331:e.frozenLayerIds??(e.frozenLayerIds=[]),e.frozenLayerIds.push(r.value);break;case 90:e.statusBitFlags=r.value;break;case 340:e.clippingBoundaryId=r.value;break;case 1:e.sheetName=r.value;break;case 281:e.renderMode=r.value;break;case 71:e.ucsPerViewport=r.value;break;case 110:e.ucsOrigin=a6(c(a));break;case 111:e.ucsXAxis=a6(c(a));break;case 112:e.ucsYAxis=a6(c(a));break;case 345:e.ucsId=r.value;break;case 346:e.ucsBaseId=r.value;break;case 79:e.orthographicType=r.value;break;case 146:e.elevation=r.value;break;case 170:e.shadePlotMode=r.value;break;case 61:e.majorGridFrequency=r.value;break;case 332:e.backgroundId=r.value;break;case 333:e.shadePlotId=r.value;break;case 348:e.visualStyleId=r.value;break;case 292:e.isDefaultLighting=!!r.value;break;case 282:e.defaultLightingType=r.value;break;case 141:e.brightness=r.value;break;case 142:e.contrast=r.value;break;case 63:case 421:case 431:e.ambientLightColor=r.value;break;case 361:e.sunId=r.value;break;case 335:case 343:case 344:case 91:e.softPointer=r.value}return!0}(r,e,a)&&aa(r,a,e),a=e.next()}return r}}function rA(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}v="VIEWPORT",(M="ForEntityName")in rL?Object.defineProperty(rL,M,{value:v,enumerable:!0,configurable:!0,writable:!0}):rL[M]=v,(R=e1||(e1={}))[R.INVISIBLE=1]="INVISIBLE",R[R.CONSTANT=2]="CONSTANT",R[R.REQUIRE_VERIFICATION=4]="REQUIRE_VERIFICATION",R[R.PRESET=8]="PRESET";let ry={thickness:0,rotation:0,scale:1,obliqueAngle:0,textStyle:"STANDARD",textGenerationFlag:0,horizontalJustification:0,verticalJustification:0,extrusionDirection:{x:0,y:0,z:1}},rP=[...re.slice(re.findIndex(({name:e})=>"columnType"===e),re.findIndex(({name:e})=>"subclassMarker"===e)+1),{code:100},{code:0,parser(e){if(!i(e,0,"MTEXT"))return l}},{code:2,name:"definitionTag",parser:u},{code:40,name:"annotationScale",parser:u},{code:10,name:"alignmentPoint",parser:p},{code:340,name:"secondaryAttributesHardId",parser:u},{code:70,name:"numberOfSecondaryAttributes",parser:u},{code:70,name:"isReallyLocked",parser:m},{code:70,name:"mtextFlag",parser:u},{code:280,name:"isDuplicatedEntriesKeep",parser:m},{code:100},{code:280,name:"lockPositionFlag",parser:m},{code:210,name:"extrusionDirection",parser:p},{code:11,name:"alignmentPoint",parser:p},{code:74,name:"verticalJustification",parser:u},{code:72,name:"horizontalJustification",parser:u},{code:71,name:"textGenerationFlag",parser:u},{code:7,name:"textStyle",parser:u},{code:51,name:"obliqueAngle",parser:u},{code:41,name:"scale",parser:u},{code:50,name:"rotation",parser:u},{code:73},{code:70,name:"attributeFlag",parser:u},{code:2,name:"tag",parser:u},{code:280},{code:100,name:"subclassMarker",parser:u},{code:1,name:"text",parser:u},{code:40,name:"textHeight",parser:u},{code:10,name:"startPoint",parser:p},{code:39,name:"thickness",parser:u},{code:100},...an];class rC{parseEntity(e,a){let r={};return this.parser(a,e,r),r}constructor(){rA(this,"parser",d(rP,ry))}}rA(rC,"ForEntityName","ATTRIB");let rM=Object.fromEntries([al,af,rC,aO,aS,aL,aW,aK,aq,a2,ra,ro,rm,rf,rO,r_,am,aH,rL].map(e=>[e.ForEntityName,new e]));function rv(e,a){let r=[];for(;!i(e,0,"EOF");){if(0===e.code){if("ENDBLK"===e.value||"ENDSEC"===e.value){a.rewind();break}let t=rM[e.value];if(t){let n=e.value;e=a.next();let o=t.parseEntity(a,e);o.type=n,at(o),r.push(o)}else console.warn(`Unsupported ENTITY type: ${e.value}`)}e=a.next()}return r}function rR(e,a){let r={};for(;!i(e,0,"EOF")&&!i(e,0,"ENDSEC");){if(i(e,0,"BLOCK")){let t=rk(e=a.next(),a);at(t),t.name&&(r[t.name]=t)}e=a.next()}return r}function rk(e,a){let r={};for(;!i(e,0,"EOF");){if(i(e,0,"ENDBLK")){for(e=a.next();!i(e,0,"EOF");){if(i(e,100,"AcDbBlockEnd"))return r;e=a.next()}break}switch(e.code){case 1:r.xrefPath=e.value;break;case 2:r.name=e.value;break;case 3:r.name2=e.value;break;case 5:r.handle=e.value;break;case 8:r.layer=e.value;break;case 10:r.position=c(a);break;case 67:r.paperSpace=!!e.value&&1==e.value;break;case 70:0!==e.value&&(r.type=e.value);break;case 100:break;case 330:r.ownerHandle=e.value;break;case 0:r.entities=rv(e,a)}e=a.next()}return r}function rx(e,a){let r=null,t={};for(;!i(e,0,"EOF")&&!i(e,0,"ENDSEC");)9===e.code?r=e.value:10===e.code?t[r]=c(a):t[r]=e.value,e=a.next();return t}let rF=[{code:333,name:"shadePlotId",parser:u},{code:149,name:"imageOriginY",parser:u},{code:148,name:"imageOriginX",parser:u},{code:147,name:"scaleFactor",parser:u},{code:78,name:"shadePlotCustomDPI",parser:u},{code:77,name:"shadePlotResolution",parser:u},{code:76,name:"shadePlotMode",parser:u},{code:75,name:"standardScaleType",parser:u},{code:7,name:"currentStyleSheet",parser:u},{code:74,name:"plotType",parser:u},{code:73,name:"plotRotation",parser:u},{code:72,name:"paperUnit",parser:u},{code:70,name:"layoutFlag",parser:u},{code:143,name:"printScaleDenominator",parser:u},{code:142,name:"printScaleNominator",parser:u},{code:141,name:"windowAreaYMax",parser:u},{code:140,name:"windowAreaYMin",parser:u},{code:49,name:"windowAreaXMax",parser:u},{code:48,name:"windowAreaXMin",parser:u},{code:47,name:"plotOriginY",parser:u},{code:46,name:"plotOriginX",parser:u},{code:45,name:"paperHeight",parser:u},{code:44,name:"paperWidth",parser:u},{code:43,name:"marginTop",parser:u},{code:42,name:"marginRight",parser:u},{code:41,name:"marginBottom",parser:u},{code:40,name:"marginLeft",parser:u},{code:6,name:"plotViewName",parser:u},{code:4,name:"paperSize",parser:u},{code:2,name:"configName",parser:u},{code:1,name:"pageSetupName",parser:u},{code:100,name:"subclassMarker",parser:u}];(k=e4||(e4={}))[k.INCHES=0]="INCHES",k[k.MILLIMETERS=1]="MILLIMETERS",k[k.PIXELS=2]="PIXELS",(x=e2||(e2={}))[x.LAST_SCREEN_DISPLAY=0]="LAST_SCREEN_DISPLAY",x[x.DRAWING_EXTENTS=1]="DRAWING_EXTENTS",x[x.DRAWING_LIMITS=2]="DRAWING_LIMITS",x[x.VIEW_SPECIFIED=3]="VIEW_SPECIFIED",x[x.WINDOW_SPECIFIED=4]="WINDOW_SPECIFIED",x[x.LAYOUT_INFORMATION=5]="LAYOUT_INFORMATION",(F=e3||(e3={}))[F.AS_DISPLAYED=0]="AS_DISPLAYED",F[F.WIREFRAME=1]="WIREFRAME",F[F.HIDDEN=2]="HIDDEN",F[F.RENDERED=3]="RENDERED",(w=e7||(e7={}))[w.DRAFT=0]="DRAFT",w[w.PREVIEW=1]="PREVIEW",w[w.NORMAL=2]="NORMAL",w[w.PRESENTATION=3]="PRESENTATION",w[w.MAXIMUM=4]="MAXIMUM",w[w.CUSTOM=5]="CUSTOM";let rw=[{code:333,name:"shadePlotId",parser:u},{code:346,name:"orthographicUcsId",parser:u},{code:345,name:"namedUcsId",parser:u},{code:331,name:"viewportId",parser:u},{code:330,name:"paperSpaceTableId",parser:u},{code:76,name:"orthographicType",parser:u},{code:17,name:"ucsYAxis",parser:p},{code:16,name:"ucsXAxis",parser:p},{code:13,name:"ucsOrigin",parser:p},{code:146,name:"elevation",parser:u},{code:15,name:"maxExtent",parser:p},{code:14,name:"minExtent",parser:p},{code:12,name:"insertionBase",parser:p},{code:11,name:"maxLimit",parser:p},{code:10,name:"minLimit",parser:p},{code:71,name:"tabOrder",parser:u},{code:70,name:"controlFlag",parser:u},{code:1,name:"layoutName",parser:u},{code:100,name:"subclassMarker",parser:u},...rF];(V=e5||(e5={}))[V.PSLTSCALE=1]="PSLTSCALE",V[V.LIMCHECK=2]="LIMCHECK";let rV=[{code:330,name:"ownerObjectId",parser:u},{code:102},{code:360,name:"ownerDictionaryIdHard",parser:u},{code:102},{code:102},{code:330,name:"ownerDictionaryIdSoft",parser:u},{code:102},{code:102},{code:102},{code:5,name:"handle",parser:u}],rB=[{code:3,name:"entries",parser:(e,a)=>{let r={name:e.value};return 350===(e=a.next()).code?r.objectId=e.value:a.rewind(),r},isMultiple:!0},{code:281,name:"recordCloneFlag",parser:u},{code:280,name:"isHardOwned",parser:m},{code:100,name:"subclassMarker",parser:u}];function rH(e){return"AcDbDictionary"===e.subclassMarker}(B=e6||(e6={}))[B.NOT_APPLICABLE=0]="NOT_APPLICABLE",B[B.KEEP_EXISTING=1]="KEEP_EXISTING",B[B.USE_CLONE=2]="USE_CLONE",B[B.XREF_VALUE_NAME=3]="XREF_VALUE_NAME",B[B.VALUE_NAME=4]="VALUE_NAME",B[B.UNMANGLE_NAME=5]="UNMANGLE_NAME";let rG={LAYOUT:rw,PLOTSETTINGS:rF,DICTIONARY:rB};function rU(e,a){let r=[];for(;0!==e.code||!["EOF","ENDSEC"].includes(e.value);){let t=e.value,n=rG[t];if(0===e.code&&n?.length){let o=d([...rV,...n]),s={name:t};o(e=a.next(),a,s)?(r.push(s),e=a.peek()):e=a.next()}else e=a.next()}return{byName:a7(r,({name:e})=>e),byTree:function(e){let a=Object.fromEntries(e.map(e=>[e.handle,e]));for(let r of e)(!rH(r)||"0"!==r.ownerDictionaryIdSoft)&&(r.ownerDictionaryIdSoft&&(r.ownerDictionarySoft=a[r.ownerDictionaryIdSoft]),r.ownerDictionaryIdHard&&(r.ownerDictionaryHard=a[r.ownerDictionaryIdHard]),r.ownerObjectId&&(r.ownerObject=a[r.ownerObjectId])),function(e,a){rH(e)&&e.entries&&(e.entries=Object.fromEntries(e.entries.map(({name:e,objectId:r})=>[e,a[r]])))}(r,a);return e[0]}(r)}}let rY=[{code:100,name:"subclassMarker",parser:u},{code:330,name:"ownerObjectId",parser:u},{code:102,parser(e,a){for(;!i(e,0,"EOF")&&!i(e,102,"}");)e=a.next()}},{code:5,name:"handle",parser:u}],rW=d([{code:310,name:"bmpPreview",parser:u},{code:281,name:"scalability",parser:u},{code:280,name:"explodability",parser:u},{code:70,name:"insertionUnits",parser:u},{code:340,name:"layoutObjects",parser:u},{code:2,name:"name",parser:u},{code:100,name:"subclassMarker",parser:u},...rY]),rj=d([...[{name:"DIMPOST",code:3},{name:"DIMAPOST",code:4},{name:"DIMBLK_OBSOLETE",code:5},{name:"DIMBLK1_OBSOLETE",code:6},{name:"DIMBLK2_OBSOLETE",code:7},{name:"DIMSCALE",code:40,defaultValue:1},{name:"DIMASZ",code:41,defaultValue:.25},{name:"DIMEXO",code:42,defaultValue:.625,defaultValueImperial:.0625},{name:"DIMDLI",code:43,defaultValue:3.75,defaultValueImperial:.38},{name:"DIMEXE",code:44,defaultValue:2.25,defaultValueImperial:.28},{name:"DIMRND",code:45,defaultValue:0},{name:"DIMDLE",code:46,defaultValue:0},{name:"DIMTP",code:47,defaultValue:0},{name:"DIMTM",code:48,defaultValue:0},{name:"DIMTXT",code:140,defaultValue:2.5,defaultValueImperial:.28},{name:"DIMCEN",code:141,defaultValue:2.5,defaultValueImperial:.09},{name:"DIMTSZ",code:142,defaultValue:0},{name:"DIMALTF",code:143,defaultValue:25.4},{name:"DIMLFAC",code:144,defaultValue:1},{name:"DIMTVP",code:145,defaultValue:0},{name:"DIMTFAC",code:146,defaultValue:1},{name:"DIMGAP",code:147,defaultValue:.625,defaultValueImperial:.09},{name:"DIMALTRND",code:148,defaultValue:0},{name:"DIMTOL",code:71,defaultValue:0,defaultValueImperial:1},{name:"DIMLIM",code:72,defaultValue:0},{name:"DIMTIH",code:73,defaultValue:0,defaultValueImperial:1},{name:"DIMTOH",code:74,defaultValue:0,defaultValueImperial:1},{name:"DIMSE1",code:75,defaultValue:0},{name:"DIMSE2",code:76,defaultValue:0},{name:"DIMTAD",code:77,defaultValue:eT.Above,defaultValueImperial:eT.Center},{name:"DIMZIN",code:78,defaultValue:eD.Trailing,defaultValueImperial:eD.Feet},{name:"DIMAZIN",code:79,defaultValue:eO.None},{name:"DIMALT",code:170,defaultValue:0},{name:"DIMALTD",code:171,defaultValue:3,defaultValueImperial:2},{name:"DIMTOFL",code:172,defaultValue:1,defaultValueImperial:0},{name:"DIMSAH",code:173,defaultValue:0},{name:"DIMTIX",code:174,defaultValue:0},{name:"DIMSOXD",code:175,defaultValue:0},{name:"DIMCLRD",code:176,defaultValue:0},{name:"DIMCLRE",code:177,defaultValue:0},{name:"DIMCLRT",code:178,defaultValue:0},{name:"DIMADEC",code:179},{name:"DIMUNIT",code:270},{name:"DIMDEC",code:271,defaultValue:2,defaultValueImperial:4},{name:"DIMTDEC",code:272,defaultValue:2,defaultValueImperial:4},{name:"DIMALTU",code:273,defaultValue:2},{name:"DIMALTTD",code:274,defaultValue:2,defaultValueImperial:4},{name:"DIMAUNIT",code:275,defaultValue:0},{name:"DIMFRAC",code:276,defaultValue:0},{name:"DIMLUNIT",code:277,defaultValue:2},{name:"DIMDSEP",code:278,defaultValue:",",defaultValueImperial:"."},{name:"DIMJUST",code:280,defaultValue:eS.Center},{name:"DIMSD1",code:281,defaultValue:0},{name:"DIMSD2",code:282,defaultValue:0},{name:"DIMTOLJ",code:283,defaultValue:eN.Center},{name:"DIMTZIN",code:284,defaultValue:eD.Trailing,defaultValueImperial:eD.Feet},{name:"DIMALTZ",code:285,defaultValue:eD.Trailing},{name:"DIMALTTZ",code:286,defaultValue:eD.Trailing},{name:"DIMFIT",code:287},{name:"DIMUPT",code:288,defaultValue:0},{name:"DIMATFIT",code:289,defaultValue:3},{name:"DIMTXSTY",code:340},{name:"DIMLDRBLK",code:341},{name:"DIMBLK",code:342},{name:"DIMBLK1",code:343},{name:"DIMBLK2",code:344},{name:"DIMLWD",code:371,defaultValue:-2},{name:"DIMLWD",code:372,defaultValue:-2}].map(e=>({...e,parser:u})),{code:70,name:"standardFlag",parser:u},{code:2,name:"name",parser:u},{code:100,name:"subclassMarker",parser:u},{code:105,name:"handle",parser:u},...rY.filter(e=>5!==e.code)]),rX=d([{code:347,name:"materialObjectId",parser:u},{code:390,name:"plotStyleNameObjectId",parser:u},{code:370,name:"lineweight",parser:u},{code:290,name:"isPlotting",parser:m},{code:6,name:"lineType",parser:u},{code:62,name:"colorIndex",parser:u},{code:70,name:"standardFlag",parser:u},{code:2,name:"name",parser:u},{code:100,name:"subclassMarker",parser:u},...rY]),rz=d([{code:9,name:"text",parser:u},{code:45,name:"offsetY",parser:u},{code:44,name:"offsetX",parser:u},{code:50,name:"rotation",parser:u},{code:46,name:"scale",parser:u},{code:340,name:"styleObjectId",parser:u},{code:75,name:"shapeNumber",parser:u},{code:74,name:"elementTypeFlag",parser:u},{code:49,name:"elementLength",parser:u}],{elementTypeFlag:0,elementLength:0}),rK={BLOCK_RECORD:rW,DIMSTYLE:rj,LAYER:rX,LTYPE:d([{code:49,name:"pattern",parser(e,a){let r={};return rz(e,a,r),r},isMultiple:!0},{code:40,name:"totalPatternLength",parser:u},{code:73,name:"numberOfLineTypes",parser:u},{code:72,parser:u},{code:3,name:"description",parser:u},{code:70,name:"standardFlag",parser:u},{code:2,name:"name",parser:u},{code:100,name:"subclassMarker",parser:u},...rY]),STYLE:d([{code:1e3,name:"extendedFont",parser:u},{code:1001},{code:4,name:"bigFont",parser:u},{code:3,name:"font",parser:u},{code:42,name:"lastHeight",parser:u},{code:71,name:"textGenerationFlag",parser:u},{code:50,name:"obliqueAngle",parser:u},{code:41,name:"widthFactor",parser:u},{code:40,name:"fixedTextHeight",parser:u},{code:70,name:"standardFlag",parser:u},{code:2,name:"name",parser:u},{code:100,name:"subclassMarker",parser:u},...rY]),VPORT:d([{code:[63,421,431],name:"ambientColor",parser:u},{code:142,name:"contrast",parser:u},{code:141,name:"brightness",parser:u},{code:282,name:"defaultLightingType",parser:u},{code:292,name:"isDefaultLightingOn",parser:m},{code:348,name:"visualStyleObjectId",parser:u},{code:333,name:"shadePlotObjectId",parser:u},{code:332,name:"backgroundObjectId",parser:u},{code:61,name:"majorGridLines",parser:u},{code:170,name:"shadePlotSetting",parser:u},{code:146,name:"elevation",parser:u},{code:79,name:"orthographicType",parser:u},{code:112,name:"ucsYAxis",parser:p},{code:111,name:"ucsXAxis",parser:p},{code:110,name:"ucsOrigin",parser:p},{code:74,name:"ucsIconSetting",parser:u},{code:71,name:"viewMode",parser:u},{code:281,name:"renderMode",parser:u},{code:1,name:"styleSheet",parser:u},{code:[331,441],name:"frozenLayers",parser:u,isMultiple:!0},{code:72,name:"circleSides",parser:u},{code:51,name:"viewTwistAngle",parser:u},{code:50,name:"snapRotationAngle",parser:u},{code:45,name:"viewHeight",parser:u},{code:44,name:"backClippingPlane",parser:u},{code:43,name:"frontClippingPlane",parser:u},{code:42,name:"lensLength",parser:u},{code:17,name:"viewTarget",parser:p},{code:16,name:"viewDirectionFromTarget",parser:p},{code:15,name:"gridSpacing",parser:p},{code:14,name:"snapSpacing",parser:p},{code:13,name:"snapBasePoint",parser:p},{code:12,name:"center",parser:p},{code:11,name:"upperRightCorner",parser:p},{code:10,name:"lowerLeftCorner",parser:p},{code:70,name:"standardFlag",parser:u},{code:2,name:"name",parser:u},{code:100,name:"subclassMarker",parser:u},...rY])},rZ=d([{code:70,name:"maxNumberOfEntries",parser:u},{code:100,name:"subclassMarker",parser:u},{code:330,name:"ownerObjectId",parser:u},{code:102},{code:360,isMultiple:!0},{code:102},{code:5,name:"handle",parser:u},{code:2,name:"name",parser:u}]);function rJ(e,a){let r={};for(;!i(e,0,"EOF")&&!i(e,0,"ENDSEC");){if(i(e,0,"TABLE")){e=a.next();let t={entries:[]};rZ(e,a,t),r[t.name]=t}if(i(e,0)&&!i(e,0,"ENDTAB")){let t=e.value;e=a.next();let n=rK[t];if(!n){console.warn(`parseTable: Invalid table name '${t}'`),e=a.next();continue}let o={};n(e,a,o),r[t]?.entries.push(o)}e=a.next()}return r}function r$(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class rq{next(){if(!this.hasNext())return this._eof?console.warn("Cannot call 'next' after EOF group has been read"):console.warn("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer]),{code:0,value:"EOF"};let e=parseInt(this._data[this._pointer++],10),a=rQ(e,this._data[this._pointer++]),r={code:e,value:a};return i(r,0,"EOF")&&(this._eof=!0),this.lastReadGroup=r,r}peek(){if(!this.hasNext()){if(this._eof)throw Error("Cannot call 'next' after EOF group has been read");throw Error("Unexpected end of input: EOF group not read before end of file. Ended on code "+this._data[this._pointer])}let e={code:parseInt(this._data[this._pointer]),value:0};return e.value=rQ(e.code,this._data[this._pointer+1]),e}rewind(e){e=e||1,this._pointer=this._pointer-2*e}hasNext(){return!this._eof&&!(this._pointer>this._data.length-2)}isEOF(){return this._eof}constructor(e){r$(this,"_pointer",void 0),r$(this,"_data",void 0),r$(this,"_eof",void 0),r$(this,"lastReadGroup",{code:0,value:0}),this._pointer=0,this._data=e,this._eof=!1}}function rQ(e,a){return e<=9?a:e>=10&&e<=59?parseFloat(a.trim()):e>=60&&e<=99?parseInt(a.trim()):e>=100&&e<=109?a:e>=110&&e<=149?parseFloat(a.trim()):e>=160&&e<=179?parseInt(a.trim()):e>=210&&e<=239?parseFloat(a.trim()):e>=270&&e<=289?parseInt(a.trim()):e>=290&&e<=299?function(e){if("0"===e)return!1;if("1"===e)return!0;throw TypeError("String '"+e+"' cannot be cast to Boolean type")}(a.trim()):e>=300&&e<=369?a:e>=370&&e<=389?parseInt(a.trim()):e>=390&&e<=399?a:e>=400&&e<=409?parseInt(a.trim()):e>=410&&e<=419?a:e>=420&&e<=429?parseInt(a.trim()):e>=430&&e<=439?a:e>=440&&e<=459?parseInt(a.trim()):e>=460&&e<=469?parseFloat(a.trim()):e>=470&&e<=481||999===e||e>=1e3&&e<=1009?a:e>=1010&&e<=1059?parseFloat(a.trim()):e>=1060&&e<=1071?parseInt(a.trim()):(console.log("WARNING: Group code does not have a defined type: %j",{code:e,value:a}),a)}function r0(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class r1{parseStart(e){this.startCode=e.code}setPoint(e){if(this.code=e.code,this.value=e.value,this.startCode===this.code&&(this.x=this.value),this.startCode===this.code+10)this.y=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}if(this.startCode===this.code+20)this.z=this.value;else{let e={x:this.x??0,y:this.y??0,z:this.z??0};return this.reset(),e}}reset(){this.x=void 0,this.y=void 0,this.z=void 0}constructor(){r0(this,"point",{}),r0(this,"startCode",0),r0(this,"code",0),r0(this,"value",0),r0(this,"x",void 0),r0(this,"y",void 0),r0(this,"z",void 0)}}function r4(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class r2{constructor(){r4(this,"encoding","utf-8"),r4(this,"encodingFailureFatal",!1)}}class r3 extends Error{constructor(e,a,r){let t=`[Line ${a}]: ${e}`;r?.cause&&(t+=`
2
+ Caused by ${r.cause.toString()}
3
+ ${r.cause.stack}`),super(t),r4(this,"line",void 0),this.line=a}}class r7 extends EventTarget{Feed(e,a=!1){let r=this._decoder.decode(e??void 0,{stream:!a});this.FeedString(r,a)}FeedString(e,a=!1){if(this._finalChunkSeen)throw Error("Data fed after final chunk processed");a&&(this._finalChunkSeen=!0),this._curChunk+=e,this._ProcessCurChunk(),a&&this._Finalize()}_Finalize(){}async FeedFile(e,a){let r=e.byteLength;for(let t=0;t<r;t+=65536){a?.throwIfAborted();let n=Math.min(r-t,65536),o=await e.slice(t,t+n);this.Feed(o,t+n>=r)}}_ProcessCurChunk(){for(let e of this._ConsumeCurChunkLines())if(this._ProcessLine(e),this._curLineNum++,!this._eof&&"HEADER"===this._curSection){let e=this._curValue.value;9===this._curValue.code?this._currVarName=e:10===this._curValue.code?this._pointParser.parseStart(this._curValue):this._pointParser.startCode===this._curValue.code||this._pointParser.startCode+10===this._curValue.code||this._pointParser.startCode+20===this._curValue.code?e=this._pointParser.setPoint(this._curValue):this._currVarName&&(this.dxf.header[this._currVarName]=e)}}*_ConsumeCurChunkLines(){let e=0,a=this._curChunk.length;for(;e<a;){let r=this._curChunk.indexOf("\r",e),t=0;if(r>=0?(t=r+1)<a&&"\n"==this._curChunk.charAt(t)&&t++:(r=this._curChunk.indexOf("\n",e))>=0&&(t=r+1),r<0)break;yield this._curChunk.substring(e,r),e=t}0!=e&&(this._curChunk=this._curChunk.substring(e))}_ProcessLine(e){if(null===this._curGroupCode){let a=e.trim();this._curGroupCode=parseInt(a),isNaN(this._curGroupCode)&&this._Error("Bad group code: "+a);return}let a=new r5(this._curGroupCode,e);if(!i(a,0,"EOF")){switch(a.value){case"SECTION":this._curSection="SECTION";break;case"HEADER":this._curSection="HEADER";break;case"BLOCKS":this._curSection="BLOCKS";break;case"ENTITIES":this._curSection="ENTITIES";break;case"TABLES":this._curSection="TABLES";break;case"OBJECTS":this._curSection="OBJECTS"}this._eof=!1}i(a,0,"EOF")&&(this._eof=!0),this._curValue=a,this._curGroupCode=null}_Error(e,a=null){let r;throw a&&(r={cause:a}),new r3(e,this._curLineNum,r)}constructor(e=new r2){super(),r4(this,"dxf",{header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}}),r4(this,"_decoder",void 0),r4(this,"_pointParser",void 0),r4(this,"_finalChunkSeen",!1),r4(this,"_curChunk",""),r4(this,"_curGroupCode",null),r4(this,"_curLineNum",1),r4(this,"_eof",!1),r4(this,"_curValue",{code:0,value:0}),r4(this,"_curSection",""),r4(this,"_currVarName",""),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal}),this._pointParser=new r1}}class r5{constructor(e,a){r4(this,"code",void 0),r4(this,"value",void 0),this.code=e,this.value=rQ(e,a)}}function r6(e){return"INSERT"===e.type||"DIMENSION"===e.type&&!!e.name}function r9(e,a,r){return a in e?Object.defineProperty(e,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[a]=r,e}class r8{constructor(){r9(this,"encoding","utf-8"),r9(this,"encodingFailureFatal",!1)}}class te extends EventTarget{parseSync(e){let a=new rq(e.split(/\r\n|\r|\n/g));if(!a.hasNext())throw Error("Empty file");return this.parseAll(a)}parseStream(e){let a="",r=this;return new Promise((t,n)=>{e.on("data",e=>{a+=e}),e.on("end",()=>{try{let e=a.split(/\r\n|\r|\n/g),n=new rq(e);if(!n.hasNext())throw Error("Empty file");t(r.parseAll(n))}catch(e){n(e)}}),e.on("error",e=>{n(e)})})}async parseFromUrl(e,a){let r=await fetch(e,a);if(!r.body)return null;let t=r.body.getReader(),n="";for(;;){let{done:e,value:a}=await t.read();if(e){n+=this._decoder.decode(new ArrayBuffer(0),{stream:!1});break}n+=this._decoder.decode(a,{stream:!0})}return this.parseSync(n)}parseAll(r){let t={header:{},blocks:{},entities:[],tables:{},objects:{byName:{},byTree:void 0}},n=r.next();for(;!i(n,0,"EOF");)i(n,0,"SECTION")&&(i(n=r.next(),2,"HEADER")?(n=r.next(),t.header=rx(n,r)):i(n,2,"BLOCKS")?(n=r.next(),t.blocks=rR(n,r)):i(n,2,"ENTITIES")?(n=r.next(),t.entities=rv(n,r)):i(n,2,"TABLES")?(n=r.next(),t.tables=rJ(n,r)):i(n,2,"OBJECTS")&&(n=r.next(),t.objects=rU(n,r))),n=r.next();return function(r){let t=Object.entries(r.blocks),n={};for(let[a,r]of e(([e,a])=>a.entities?.some(r6),t))for(let e of r.entities??[])r6(e)&&(n[a]??(n[a]=[]),n[a].push(e.name));let o=a3({seeds:[...a(({name:e})=>e,e(r6,r.entities))],serializer:e=>e,spanner:e=>n[e]??[]}).flat();return{...r,blocks:Object.fromEntries(o.map(e=>[e,r.blocks[e]]))}}(t)}constructor(e=new r8){super(),r9(this,"_decoder",void 0),this._decoder=new TextDecoder(e.encoding,{fatal:e.encodingFailureFatal})}}export{al as ArcEntityParser,af as AttDefEntityParser,eW as AttDefMTextFlag,ef as AttachmentPoint,eY as AttributeFlag,eE as BlockTypeFlag,ev as BoundaryPathEdgeType,eM as BoundaryPathTypeFlag,aO as CircleEntityParser,eI as ColorCode,an as CommonEntitySnippets,o as DefaultDxfHeaderVariables,eG as DefaultLightingType,au as DefaultTextEntity,eS as DimensionTextHorizontal,eb as DimensionTextLineSpacing,eT as DimensionTextVertical,eN as DimensionToleranceTextVertical,eh as DimensionType,eD as DimensionZeroSuppression,eO as DimensionZeroSuppressionAngular,r3 as DxfParsingError,r7 as DxfStreamParser,r2 as DxfStreamParserOptions,aL as EllipseEntityParser,e_ as HatchAssociativity,ey as HatchBoundaryAnnotation,aH as HatchEntityParser,eC as HatchGradientColorFlag,eP as HatchGradientFlag,eA as HatchPatternType,eg as HatchSolidFill,eL as HatchStyle,s as INDEXED_CHUNK_SIZE,aW as InsertEntityParser,eZ as LWPolylineFlag,a2 as LWPolylineParser,eK as LeaderCreationFlag,aK as LeaderEntityParser,aq as LineEntityParser,eJ as MTextDrawingDirection,ra as MTextEntityParser,re as MTextEntityParserSnippets,ex as Measurement,eR as ObscuredLineTypes,eB as OrthographicType,ro as PointEntityParser,e$ as PolylineFlag,rm as PolylineParser,ew as RenderMode,ek as ReservedLineweight,t as SPLINE_SUBDIVISION,rf as SectionEntityParser,eH as ShadePlotMode,eU as ShadowMode,eq as SmoothType,rO as SolidEntityParser,r_ as SplineEntityParser,e0 as SplineFlag,n as TESSELLATION_ANGLE,am as TextEntityParser,ap as TextEntityParserSnippets,ej as TextGenerationFlag,eX as TextHorizontalAlign,ez as TextVerticalAlign,eV as UCSPerViewport,r as UndeterminedBlockColor,eQ as VertexFlag,rl as VertexParser,eF as ViewportStatusFlag,a7 as classify,te as default,at as ensureHandle,a6 as ensurePoint3D,a3 as flooding,a5 as generateIntegers,i as isMatched,rk as parseBlock,rR as parseBlocks,rv as parseEntities,rx as parseHeader,rU as parseObjects,rJ as parseTables,ao as skipApplicationGroups};
@@ -1,9 +1,11 @@
1
- export * from './color';
2
- export * from './config';
3
- export * from './dimension';
4
- export * from './hatch';
5
- export * from './measurement';
6
- export * from './obscuredLineTypes';
7
- export * from './lineweight';
8
- export * from './scene';
9
- export * from './viewport';
1
+ export * from "./block";
2
+ export * from "./color";
3
+ export * from "./config";
4
+ export * from "./dimension";
5
+ export * from "./hatch";
6
+ export * from "./header";
7
+ export * from "./lineweight";
8
+ export * from "./measurement";
9
+ export * from "./obscuredLineTypes";
10
+ export * from "./scene";
11
+ export * from "./viewport";
package/dist/index.d.ts CHANGED
@@ -1,2 +1,7 @@
1
- import DxfParser from './parser/DxfParser';
1
+ export * from "./consts";
2
+ export * from "./parser";
3
+ export * from "./stream-parser";
4
+ export * from "./types";
5
+ export * from "./utils";
6
+ import { DxfParser } from "./parser/DxfParser";
2
7
  export default DxfParser;
@@ -1,5 +1,5 @@
1
- import type { ParsedDxf } from './types';
2
- import type { Readable } from 'readable-stream';
1
+ import type { ParsedDxf } from "./types";
2
+ import type { Readable } from "readable-stream";
3
3
  /** Options for {@link DxfParser} construction. */
4
4
  export declare class DxfParserOptions {
5
5
  /** Encoding label.
@@ -11,7 +11,7 @@ export declare class DxfParserOptions {
11
11
  */
12
12
  encodingFailureFatal: boolean;
13
13
  }
14
- export default class DxfParser extends EventTarget {
14
+ export declare class DxfParser extends EventTarget {
15
15
  private readonly _decoder;
16
16
  constructor(options?: DxfParserOptions);
17
17
  parseSync(dxfString: string): ParsedDxf;
@@ -1,6 +1,7 @@
1
- import type DxfArrayScanner from '../../DxfArrayScanner';
2
- import type { ScannerGroup } from '../../DxfArrayScanner';
3
- import type { HatchEntity } from './types';
1
+ export * from "./types";
2
+ import type DxfArrayScanner from "../../DxfArrayScanner";
3
+ import type { ScannerGroup } from "../../DxfArrayScanner";
4
+ import type { HatchEntity } from "./types";
4
5
  export declare class HatchEntityParser {
5
6
  static ForEntityName: string;
6
7
  private parser;
@@ -1,6 +1,8 @@
1
- import type DxfArrayScanner from '../DxfArrayScanner';
2
- import { ScannerGroup } from '../DxfArrayScanner';
3
- import { CommonDxfEntity } from './shared';
1
+ export * from "./types";
2
+ export * from "./shared";
3
+ import type DxfArrayScanner from "../DxfArrayScanner";
4
+ import { ScannerGroup } from "../DxfArrayScanner";
5
+ import { CommonDxfEntity } from "./shared";
4
6
  /**
5
7
  * Is called after the parser first reads the 0:ENTITIES group. The scanner
6
8
  * should be on the start of the first entity already.
@@ -0,0 +1,19 @@
1
+ export * from "./arc";
2
+ export * from "./attdef";
3
+ export * from "./circle";
4
+ export * from "./dimension";
5
+ export * from "./ellipse";
6
+ export * from "./hatch";
7
+ export * from "./insert";
8
+ export * from "./leader";
9
+ export * from "./line";
10
+ export * from "./lwpolyline";
11
+ export * from "./mtext";
12
+ export * from "./point";
13
+ export * from "./polyline";
14
+ export * from "./section";
15
+ export * from "./solid";
16
+ export * from "./spline";
17
+ export * from "./text";
18
+ export * from "./vertex";
19
+ export * from "./viewport";
@@ -0,0 +1,8 @@
1
+ export * from "./blocks";
2
+ export * from "./types";
3
+ export * from "./blocks";
4
+ export * from "./entities";
5
+ export * from "./header";
6
+ export * from "./objects";
7
+ export * from "./shared";
8
+ export * from "./tables";
@@ -11,5 +11,5 @@ export interface DXFParserSnippet {
11
11
  export type DXFParser = (curr: ScannerGroup, scanner: DxfArrayScanner, target: any) => boolean;
12
12
  export declare function createParser(snippets: DXFParserSnippet[], defaultObject?: any): DXFParser;
13
13
  export declare function Identity({ value }: ScannerGroup): any;
14
- export declare function PointParser(_: any, scanner: DxfArrayScanner): import("../../types").Point2D | import("../../types").Point3D;
14
+ export declare function PointParser(_: any, scanner: DxfArrayScanner): import("../..").Point2D | import("../..").Point3D;
15
15
  export declare function ToBoolean({ value }: ScannerGroup): boolean;
@@ -1,4 +1,4 @@
1
- import type { ParsedDxf } from '@src/parser/types';
1
+ import type { ParsedDxf } from "@src/parser/types";
2
2
  type ErrorOptions = {
3
3
  cause: Error;
4
4
  } | undefined;
@@ -17,7 +17,7 @@ export declare class DxfParsingError extends Error {
17
17
  readonly line: number;
18
18
  constructor(msg: string, line: number, options?: ErrorOptions);
19
19
  }
20
- export default class DxfStreamParser extends EventTarget {
20
+ export declare class DxfStreamParser extends EventTarget {
21
21
  dxf: ParsedDxf;
22
22
  private readonly _decoder;
23
23
  private readonly _pointParser;
@@ -0,0 +1 @@
1
+ export * from "./DxfStreamParser";
package/package.json CHANGED
@@ -1,64 +1,65 @@
1
1
  {
2
- "name": "dxf-json",
3
- "version": "0.0.41",
4
- "description": "perfect dxf parser",
5
- "type": "module",
6
- "main": "./dist/bundle.cjs",
7
- "module": "./dist/bundle.mjs",
8
- "exports": {
9
- "import": "./dist/bundle.mjs",
10
- "require": "./dist/bundle.cjs"
11
- },
12
- "types": "./dist/index.d.ts",
13
- "scripts": {
14
- "build": "tsc && rollup --config",
15
- "test": "jest --silent=false"
16
- },
17
- "repository": {
18
- "type": "git",
19
- "url": "git+https://github.com/dotoritos-kim/dxf-json.git"
20
- },
21
- "keywords": [
22
- "dxf",
23
- "cad",
24
- "dxf-json",
25
- "json",
26
- "type-safe-dxf",
27
- "type-safe",
28
- "typescript"
29
- ],
30
- "author": {
31
- "name": "kanghyune kim",
32
- "email": "wwponv158@gmail.com"
33
- },
34
- "publishConfig": {
35
- "registry": "https://registry.npmjs.org/"
36
- },
37
- "contributors": [
38
- "phryxia"
39
- ],
40
- "license": "GPL-3.0",
41
- "bugs": {
42
- "url": "https://github.com/dotoritos-kim/dxf-json/issues",
43
- "email": "wwponv158@gmail.com"
44
- },
45
- "homepage": "https://github.com/dotoritos-kim/dxf-json#readme",
46
- "dependencies": {
47
- "@fxts/core": "^0.23.0"
48
- },
49
- "devDependencies": {
50
- "@swc/core": "^1.3.107",
51
- "@types/jest": "^29.5.11",
52
- "@types/readable-stream": "^4.0.10",
53
- "@types/three": "^0.160.0",
54
- "jest": "^29.7.0",
55
- "resolve-typescript-plugin": "^2.0.1",
56
- "rollup": "^4.9.6",
57
- "rollup-plugin-swc3": "^0.11.0",
58
- "ts-jest": "^29.1.1",
59
- "typescript": "^5.3.3"
60
- },
61
- "files": [
62
- "dist"
63
- ]
2
+ "name": "dxf-json",
3
+ "version": "0.1.1",
4
+ "description": "perfect dxf parser",
5
+ "type": "module",
6
+ "main": "./dist/bundle.cjs",
7
+ "module": "./dist/bundle.mjs",
8
+ "exports": {
9
+ "import": "./dist/bundle.mjs",
10
+ "require": "./dist/bundle.cjs",
11
+ "types": "./dist/index.d.ts"
12
+ },
13
+ "types": "./dist/index.d.ts",
14
+ "scripts": {
15
+ "build": "tsc && rollup --config",
16
+ "test": "jest --silent=false"
17
+ },
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/dotoritos-kim/dxf-json.git"
21
+ },
22
+ "keywords": [
23
+ "dxf",
24
+ "cad",
25
+ "dxf-json",
26
+ "json",
27
+ "type-safe-dxf",
28
+ "type-safe",
29
+ "typescript"
30
+ ],
31
+ "author": {
32
+ "name": "kanghyune kim",
33
+ "email": "wwponv158@gmail.com"
34
+ },
35
+ "publishConfig": {
36
+ "registry": "https://registry.npmjs.org/"
37
+ },
38
+ "contributors": [
39
+ "phryxia"
40
+ ],
41
+ "license": "GPL-3.0",
42
+ "bugs": {
43
+ "url": "https://github.com/dotoritos-kim/dxf-json/issues",
44
+ "email": "wwponv158@gmail.com"
45
+ },
46
+ "homepage": "https://github.com/dotoritos-kim/dxf-json#readme",
47
+ "dependencies": {
48
+ "@fxts/core": "^1.0.1"
49
+ },
50
+ "devDependencies": {
51
+ "@swc/core": "^1.3.107",
52
+ "@types/jest": "^29.5.11",
53
+ "@types/readable-stream": "^4.0.10",
54
+ "@types/three": "^0.160.0",
55
+ "jest": "^29.7.0",
56
+ "resolve-typescript-plugin": "^2.0.1",
57
+ "rollup": "^4.9.6",
58
+ "rollup-plugin-swc3": "^0.11.0",
59
+ "ts-jest": "^29.1.1",
60
+ "typescript": "^5.3.3"
61
+ },
62
+ "files": [
63
+ "dist"
64
+ ]
64
65
  }