UNPKG

@mlightcad/libredwg-web

Version:

A DWG/DXF JavaScript parser based on libredwg

962 lines 9.18 MB
var __defProp = Object.defineProperty; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); const MODEL_SPACE = "*MODEL_SPACE"; const MODEL_SPACE_PREFIX = "*PAPER_SPACE"; const isModelSpace = (name) => { return name && name.toUpperCase() == MODEL_SPACE; }; const isPaperSpace = (name) => { return name && name.toUpperCase().startsWith(MODEL_SPACE_PREFIX); }; var DwgCodePage = /* @__PURE__ */ ((DwgCodePage2) => { DwgCodePage2[DwgCodePage2["CP_UTF8"] = 0] = "CP_UTF8"; DwgCodePage2[DwgCodePage2["CP_US_ASCII"] = 1] = "CP_US_ASCII"; DwgCodePage2[DwgCodePage2["CP_ISO_8859_1"] = 2] = "CP_ISO_8859_1"; DwgCodePage2[DwgCodePage2["CP_ISO_8859_2"] = 3] = "CP_ISO_8859_2"; DwgCodePage2[DwgCodePage2["CP_ISO_8859_3"] = 4] = "CP_ISO_8859_3"; DwgCodePage2[DwgCodePage2["CP_ISO_8859_4"] = 5] = "CP_ISO_8859_4"; DwgCodePage2[DwgCodePage2["CP_ISO_8859_5"] = 6] = "CP_ISO_8859_5"; DwgCodePage2[DwgCodePage2["CP_ISO_8859_6"] = 7] = "CP_ISO_8859_6"; DwgCodePage2[DwgCodePage2["CP_ISO_8859_7"] = 8] = "CP_ISO_8859_7"; DwgCodePage2[DwgCodePage2["CP_ISO_8859_8"] = 9] = "CP_ISO_8859_8"; DwgCodePage2[DwgCodePage2["CP_ISO_8859_9"] = 10] = "CP_ISO_8859_9"; DwgCodePage2[DwgCodePage2["CP_CP437"] = 11] = "CP_CP437"; DwgCodePage2[DwgCodePage2["CP_CP850"] = 12] = "CP_CP850"; DwgCodePage2[DwgCodePage2["CP_CP852"] = 13] = "CP_CP852"; DwgCodePage2[DwgCodePage2["CP_CP855"] = 14] = "CP_CP855"; DwgCodePage2[DwgCodePage2["CP_CP857"] = 15] = "CP_CP857"; DwgCodePage2[DwgCodePage2["CP_CP860"] = 16] = "CP_CP860"; DwgCodePage2[DwgCodePage2["CP_CP861"] = 17] = "CP_CP861"; DwgCodePage2[DwgCodePage2["CP_CP863"] = 18] = "CP_CP863"; DwgCodePage2[DwgCodePage2["CP_CP864"] = 19] = "CP_CP864"; DwgCodePage2[DwgCodePage2["CP_CP865"] = 20] = "CP_CP865"; DwgCodePage2[DwgCodePage2["CP_CP869"] = 21] = "CP_CP869"; DwgCodePage2[DwgCodePage2["CP_CP932"] = 22] = "CP_CP932"; DwgCodePage2[DwgCodePage2["CP_MACINTOSH"] = 23] = "CP_MACINTOSH"; DwgCodePage2[DwgCodePage2["CP_BIG5"] = 24] = "CP_BIG5"; DwgCodePage2[DwgCodePage2["CP_CP949"] = 25] = "CP_CP949"; DwgCodePage2[DwgCodePage2["CP_JOHAB"] = 26] = "CP_JOHAB"; DwgCodePage2[DwgCodePage2["CP_CP866"] = 27] = "CP_CP866"; DwgCodePage2[DwgCodePage2["CP_ANSI_1250"] = 28] = "CP_ANSI_1250"; DwgCodePage2[DwgCodePage2["CP_ANSI_1251"] = 29] = "CP_ANSI_1251"; DwgCodePage2[DwgCodePage2["CP_ANSI_1252"] = 30] = "CP_ANSI_1252"; DwgCodePage2[DwgCodePage2["CP_GB2312"] = 31] = "CP_GB2312"; DwgCodePage2[DwgCodePage2["CP_ANSI_1253"] = 32] = "CP_ANSI_1253"; DwgCodePage2[DwgCodePage2["CP_ANSI_1254"] = 33] = "CP_ANSI_1254"; DwgCodePage2[DwgCodePage2["CP_ANSI_1255"] = 34] = "CP_ANSI_1255"; DwgCodePage2[DwgCodePage2["CP_ANSI_1256"] = 35] = "CP_ANSI_1256"; DwgCodePage2[DwgCodePage2["CP_ANSI_1257"] = 36] = "CP_ANSI_1257"; DwgCodePage2[DwgCodePage2["CP_ANSI_874"] = 37] = "CP_ANSI_874"; DwgCodePage2[DwgCodePage2["CP_ANSI_932"] = 38] = "CP_ANSI_932"; DwgCodePage2[DwgCodePage2["CP_ANSI_936"] = 39] = "CP_ANSI_936"; DwgCodePage2[DwgCodePage2["CP_ANSI_949"] = 40] = "CP_ANSI_949"; DwgCodePage2[DwgCodePage2["CP_ANSI_950"] = 41] = "CP_ANSI_950"; DwgCodePage2[DwgCodePage2["CP_ANSI_1361"] = 42] = "CP_ANSI_1361"; DwgCodePage2[DwgCodePage2["CP_UTF16"] = 43] = "CP_UTF16"; DwgCodePage2[DwgCodePage2["CP_ANSI_1258"] = 44] = "CP_ANSI_1258"; DwgCodePage2[DwgCodePage2["CP_UNDEFINED"] = 255] = "CP_UNDEFINED"; return DwgCodePage2; })(DwgCodePage || {}); const encodings = [ "utf-8", // 0 "utf-8", // US ASCII "iso-8859-1", "iso-8859-2", "iso-8859-3", "iso-8859-4", "iso-8859-5", "iso-8859-6", "iso-8859-7", "iso-8859-8", "iso-8859-9", // 10 "utf-8", // DOS English "utf-8", // 12 DOS Latin-1 "utf-8", // DOS Central European "utf-8", // DOS Cyrillic "utf-8", // DOS Turkish "utf-8", // DOS Portoguese "utf-8", // DOS Icelandic "utf-8", // DOS Hebrew "utf-8", // DOS Arabic (IBM) "utf-8", // DOS Nordic "utf-8", // DOS Greek "shift-jis", // DOS Japanese (shiftjis) "macintosh", // 23 "big5", "utf-8", // Korean (Wansung + Johab) "utf-8", // Johab? "ibm866", // Russian "windows-1250", // Central + Eastern European "windows-1251", // Cyrillic "windows-1252", // Western European "gbk", // EUC-CN Chinese "windows-1253", // Greek "windows-1254", // Turkish "windows-1255", // Hebrew "windows-1256", // Arabic "windows-1257", // Baltic "windows-874", // Thai "shift-jis", // 38 Japanese (extended shiftjis, windows-31j) "gbk", // 39 Simplified Chinese "euc-kr", // 40 Korean Wansung "big5", // 41 Trad Chinese "utf-8", // 42 Korean Wansung "utf-16le", "windows-1258" // Vietnamese ]; const dwgCodePageToEncoding = (codepage) => { return encodings[codepage]; }; var DwgDimensionType = /* @__PURE__ */ ((DwgDimensionType2) => { DwgDimensionType2[DwgDimensionType2["Rotated"] = 0] = "Rotated"; DwgDimensionType2[DwgDimensionType2["Aligned"] = 1] = "Aligned"; DwgDimensionType2[DwgDimensionType2["Angular"] = 2] = "Angular"; DwgDimensionType2[DwgDimensionType2["Diameter"] = 3] = "Diameter"; DwgDimensionType2[DwgDimensionType2["Radius"] = 4] = "Radius"; DwgDimensionType2[DwgDimensionType2["Angular3Point"] = 5] = "Angular3Point"; DwgDimensionType2[DwgDimensionType2["Ordinate"] = 6] = "Ordinate"; DwgDimensionType2[DwgDimensionType2["ReferenceIsExclusive"] = 32] = "ReferenceIsExclusive"; DwgDimensionType2[DwgDimensionType2["IsOrdinateXTypeFlag"] = 64] = "IsOrdinateXTypeFlag"; DwgDimensionType2[DwgDimensionType2["IsCustomTextPositionFlag"] = 128] = "IsCustomTextPositionFlag"; return DwgDimensionType2; })(DwgDimensionType || {}); var DwgAttachmentPoint = /* @__PURE__ */ ((DwgAttachmentPoint2) => { DwgAttachmentPoint2[DwgAttachmentPoint2["TopLeft"] = 1] = "TopLeft"; DwgAttachmentPoint2[DwgAttachmentPoint2["TopCenter"] = 2] = "TopCenter"; DwgAttachmentPoint2[DwgAttachmentPoint2["TopRight"] = 3] = "TopRight"; DwgAttachmentPoint2[DwgAttachmentPoint2["MiddleLeft"] = 4] = "MiddleLeft"; DwgAttachmentPoint2[DwgAttachmentPoint2["MiddleCenter"] = 5] = "MiddleCenter"; DwgAttachmentPoint2[DwgAttachmentPoint2["MiddleRight"] = 6] = "MiddleRight"; DwgAttachmentPoint2[DwgAttachmentPoint2["BottomLeft"] = 7] = "BottomLeft"; DwgAttachmentPoint2[DwgAttachmentPoint2["BottomCenter"] = 8] = "BottomCenter"; DwgAttachmentPoint2[DwgAttachmentPoint2["BottomRight"] = 9] = "BottomRight"; return DwgAttachmentPoint2; })(DwgAttachmentPoint || {}); var DwgDimensionTextLineSpacing = /* @__PURE__ */ ((DwgDimensionTextLineSpacing2) => { DwgDimensionTextLineSpacing2[DwgDimensionTextLineSpacing2["AtLeast"] = 1] = "AtLeast"; DwgDimensionTextLineSpacing2[DwgDimensionTextLineSpacing2["Exact"] = 2] = "Exact"; return DwgDimensionTextLineSpacing2; })(DwgDimensionTextLineSpacing || {}); var DwgDimensionTextVertical = /* @__PURE__ */ ((DwgDimensionTextVertical2) => { DwgDimensionTextVertical2[DwgDimensionTextVertical2["Center"] = 0] = "Center"; DwgDimensionTextVertical2[DwgDimensionTextVertical2["Above"] = 1] = "Above"; DwgDimensionTextVertical2[DwgDimensionTextVertical2["Outside"] = 2] = "Outside"; DwgDimensionTextVertical2[DwgDimensionTextVertical2["JIS"] = 3] = "JIS"; DwgDimensionTextVertical2[DwgDimensionTextVertical2["Below"] = 4] = "Below"; return DwgDimensionTextVertical2; })(DwgDimensionTextVertical || {}); var DwgDimensionZeroSuppression = /* @__PURE__ */ ((DwgDimensionZeroSuppression2) => { DwgDimensionZeroSuppression2[DwgDimensionZeroSuppression2["Feet"] = 0] = "Feet"; DwgDimensionZeroSuppression2[DwgDimensionZeroSuppression2["None"] = 1] = "None"; DwgDimensionZeroSuppression2[DwgDimensionZeroSuppression2["Inch"] = 2] = "Inch"; DwgDimensionZeroSuppression2[DwgDimensionZeroSuppression2["FeetAndInch"] = 3] = "FeetAndInch"; DwgDimensionZeroSuppression2[DwgDimensionZeroSuppression2["Leading"] = 4] = "Leading"; DwgDimensionZeroSuppression2[DwgDimensionZeroSuppression2["Trailing"] = 8] = "Trailing"; DwgDimensionZeroSuppression2[DwgDimensionZeroSuppression2["LeadingAndTrailing"] = 12] = "LeadingAndTrailing"; return DwgDimensionZeroSuppression2; })(DwgDimensionZeroSuppression || {}); var DwgDimensionZeroSuppressionAngular = /* @__PURE__ */ ((DwgDimensionZeroSuppressionAngular2) => { DwgDimensionZeroSuppressionAngular2[DwgDimensionZeroSuppressionAngular2["None"] = 0] = "None"; DwgDimensionZeroSuppressionAngular2[DwgDimensionZeroSuppressionAngular2["Leading"] = 1] = "Leading"; DwgDimensionZeroSuppressionAngular2[DwgDimensionZeroSuppressionAngular2["Trailing"] = 2] = "Trailing"; DwgDimensionZeroSuppressionAngular2[DwgDimensionZeroSuppressionAngular2["LeadingAndTrailing"] = 3] = "LeadingAndTrailing"; return DwgDimensionZeroSuppressionAngular2; })(DwgDimensionZeroSuppressionAngular || {}); var DwgDimensionTextHorizontal = /* @__PURE__ */ ((DwgDimensionTextHorizontal2) => { DwgDimensionTextHorizontal2[DwgDimensionTextHorizontal2["Center"] = 0] = "Center"; DwgDimensionTextHorizontal2[DwgDimensionTextHorizontal2["Left"] = 1] = "Left"; DwgDimensionTextHorizontal2[DwgDimensionTextHorizontal2["Right"] = 2] = "Right"; DwgDimensionTextHorizontal2[DwgDimensionTextHorizontal2["OverFirst"] = 3] = "OverFirst"; DwgDimensionTextHorizontal2[DwgDimensionTextHorizontal2["OverSecond"] = 4] = "OverSecond"; return DwgDimensionTextHorizontal2; })(DwgDimensionTextHorizontal || {}); var DwgDimensionToleranceTextVertical = /* @__PURE__ */ ((DwgDimensionToleranceTextVertical2) => { DwgDimensionToleranceTextVertical2[DwgDimensionToleranceTextVertical2["Bottom"] = 0] = "Bottom"; DwgDimensionToleranceTextVertical2[DwgDimensionToleranceTextVertical2["Center"] = 1] = "Center"; DwgDimensionToleranceTextVertical2[DwgDimensionToleranceTextVertical2["Top"] = 2] = "Top"; return DwgDimensionToleranceTextVertical2; })(DwgDimensionToleranceTextVertical || {}); var DwgHatchSolidFill = /* @__PURE__ */ ((DwgHatchSolidFill2) => { DwgHatchSolidFill2[DwgHatchSolidFill2["PatternFill"] = 0] = "PatternFill"; DwgHatchSolidFill2[DwgHatchSolidFill2["SolidFill"] = 1] = "SolidFill"; return DwgHatchSolidFill2; })(DwgHatchSolidFill || {}); var DwgHatchAssociativity = /* @__PURE__ */ ((DwgHatchAssociativity2) => { DwgHatchAssociativity2[DwgHatchAssociativity2["NonAssociative"] = 0] = "NonAssociative"; DwgHatchAssociativity2[DwgHatchAssociativity2["Associative"] = 1] = "Associative"; return DwgHatchAssociativity2; })(DwgHatchAssociativity || {}); var DwgHatchStyle = /* @__PURE__ */ ((DwgHatchStyle2) => { DwgHatchStyle2[DwgHatchStyle2["Normal"] = 0] = "Normal"; DwgHatchStyle2[DwgHatchStyle2["Outer"] = 1] = "Outer"; DwgHatchStyle2[DwgHatchStyle2["Ignore"] = 2] = "Ignore"; return DwgHatchStyle2; })(DwgHatchStyle || {}); var DwgHatchPatternType = /* @__PURE__ */ ((DwgHatchPatternType2) => { DwgHatchPatternType2[DwgHatchPatternType2["UserDefined"] = 0] = "UserDefined"; DwgHatchPatternType2[DwgHatchPatternType2["Predefined"] = 1] = "Predefined"; DwgHatchPatternType2[DwgHatchPatternType2["Custom"] = 2] = "Custom"; return DwgHatchPatternType2; })(DwgHatchPatternType || {}); var DwgHatchBoundaryAnnotation = /* @__PURE__ */ ((DwgHatchBoundaryAnnotation2) => { DwgHatchBoundaryAnnotation2[DwgHatchBoundaryAnnotation2["NotAnnotated"] = 0] = "NotAnnotated"; DwgHatchBoundaryAnnotation2[DwgHatchBoundaryAnnotation2["Annotated"] = 1] = "Annotated"; return DwgHatchBoundaryAnnotation2; })(DwgHatchBoundaryAnnotation || {}); var DwgHatchGradientFlag = /* @__PURE__ */ ((DwgHatchGradientFlag2) => { DwgHatchGradientFlag2[DwgHatchGradientFlag2["Solid"] = 0] = "Solid"; DwgHatchGradientFlag2[DwgHatchGradientFlag2["Gradient"] = 1] = "Gradient"; return DwgHatchGradientFlag2; })(DwgHatchGradientFlag || {}); var DwgHatchGradientColorFlag = /* @__PURE__ */ ((DwgHatchGradientColorFlag2) => { DwgHatchGradientColorFlag2[DwgHatchGradientColorFlag2["TwoColor"] = 0] = "TwoColor"; DwgHatchGradientColorFlag2[DwgHatchGradientColorFlag2["OneColor"] = 1] = "OneColor"; return DwgHatchGradientColorFlag2; })(DwgHatchGradientColorFlag || {}); var DwgBoundaryPathTypeFlag = /* @__PURE__ */ ((DwgBoundaryPathTypeFlag2) => { DwgBoundaryPathTypeFlag2[DwgBoundaryPathTypeFlag2["Default"] = 0] = "Default"; DwgBoundaryPathTypeFlag2[DwgBoundaryPathTypeFlag2["External"] = 1] = "External"; DwgBoundaryPathTypeFlag2[DwgBoundaryPathTypeFlag2["Polyline"] = 2] = "Polyline"; DwgBoundaryPathTypeFlag2[DwgBoundaryPathTypeFlag2["Derived"] = 4] = "Derived"; DwgBoundaryPathTypeFlag2[DwgBoundaryPathTypeFlag2["Textbox"] = 8] = "Textbox"; DwgBoundaryPathTypeFlag2[DwgBoundaryPathTypeFlag2["Outermost"] = 16] = "Outermost"; return DwgBoundaryPathTypeFlag2; })(DwgBoundaryPathTypeFlag || {}); var DwgBoundaryPathEdgeType = /* @__PURE__ */ ((DwgBoundaryPathEdgeType2) => { DwgBoundaryPathEdgeType2[DwgBoundaryPathEdgeType2["Line"] = 1] = "Line"; DwgBoundaryPathEdgeType2[DwgBoundaryPathEdgeType2["Circular"] = 2] = "Circular"; DwgBoundaryPathEdgeType2[DwgBoundaryPathEdgeType2["Elliptic"] = 3] = "Elliptic"; DwgBoundaryPathEdgeType2[DwgBoundaryPathEdgeType2["Spline"] = 4] = "Spline"; return DwgBoundaryPathEdgeType2; })(DwgBoundaryPathEdgeType || {}); var DwgPolylineFlag = /* @__PURE__ */ ((DwgPolylineFlag2) => { DwgPolylineFlag2[DwgPolylineFlag2["CLOSED_POLYLINE"] = 1] = "CLOSED_POLYLINE"; DwgPolylineFlag2[DwgPolylineFlag2["CURVE_FIT"] = 2] = "CURVE_FIT"; DwgPolylineFlag2[DwgPolylineFlag2["SPLINE_FIT"] = 4] = "SPLINE_FIT"; DwgPolylineFlag2[DwgPolylineFlag2["POLYLINE_3D"] = 8] = "POLYLINE_3D"; DwgPolylineFlag2[DwgPolylineFlag2["POLYGON_3D"] = 16] = "POLYGON_3D"; DwgPolylineFlag2[DwgPolylineFlag2["CLOSED_POLYGON"] = 32] = "CLOSED_POLYGON"; DwgPolylineFlag2[DwgPolylineFlag2["POLYFACE"] = 64] = "POLYFACE"; DwgPolylineFlag2[DwgPolylineFlag2["CONTINUOUS"] = 128] = "CONTINUOUS"; return DwgPolylineFlag2; })(DwgPolylineFlag || {}); var DwgSmoothType = /* @__PURE__ */ ((DwgSmoothType2) => { DwgSmoothType2[DwgSmoothType2["NONE"] = 0] = "NONE"; DwgSmoothType2[DwgSmoothType2["QUADRATIC"] = 5] = "QUADRATIC"; DwgSmoothType2[DwgSmoothType2["CUBIC"] = 6] = "CUBIC"; DwgSmoothType2[DwgSmoothType2["BEZIER"] = 8] = "BEZIER"; return DwgSmoothType2; })(DwgSmoothType || {}); var DwgTextGenerationFlag = /* @__PURE__ */ ((DwgTextGenerationFlag2) => { DwgTextGenerationFlag2[DwgTextGenerationFlag2["NONE"] = 0] = "NONE"; DwgTextGenerationFlag2[DwgTextGenerationFlag2["MIRRORED_X"] = 2] = "MIRRORED_X"; DwgTextGenerationFlag2[DwgTextGenerationFlag2["MIRRORED_Y"] = 4] = "MIRRORED_Y"; return DwgTextGenerationFlag2; })(DwgTextGenerationFlag || {}); var DwgTextHorizontalAlign = /* @__PURE__ */ ((DwgTextHorizontalAlign2) => { DwgTextHorizontalAlign2[DwgTextHorizontalAlign2["LEFT"] = 0] = "LEFT"; DwgTextHorizontalAlign2[DwgTextHorizontalAlign2["CENTER"] = 1] = "CENTER"; DwgTextHorizontalAlign2[DwgTextHorizontalAlign2["RIGHT"] = 2] = "RIGHT"; DwgTextHorizontalAlign2[DwgTextHorizontalAlign2["ALIGNED"] = 3] = "ALIGNED"; DwgTextHorizontalAlign2[DwgTextHorizontalAlign2["MIDDLE"] = 4] = "MIDDLE"; DwgTextHorizontalAlign2[DwgTextHorizontalAlign2["FIT"] = 5] = "FIT"; return DwgTextHorizontalAlign2; })(DwgTextHorizontalAlign || {}); var DwgTextVerticalAlign = /* @__PURE__ */ ((DwgTextVerticalAlign2) => { DwgTextVerticalAlign2[DwgTextVerticalAlign2["BASELINE"] = 0] = "BASELINE"; DwgTextVerticalAlign2[DwgTextVerticalAlign2["BOTTOM"] = 1] = "BOTTOM"; DwgTextVerticalAlign2[DwgTextVerticalAlign2["MIDDLE"] = 2] = "MIDDLE"; DwgTextVerticalAlign2[DwgTextVerticalAlign2["TOP"] = 3] = "TOP"; return DwgTextVerticalAlign2; })(DwgTextVerticalAlign || {}); const HEADER_VARIABLES = Object.freeze([ "ACADMAINTVER", "ACADVER", "ANGBASE", "ANGDIR", "ATTMODE", "AUNITS", "AUPREC", "CECOLOR", "CELTSCALE", "CELTYPE", "CELWEIGHT", "CEPSNID", "CEPSNTYPE", "CHAMFERA", "CHAMFERB", "CHAMFERC", "CHAMFERD", "CLAYER", "CMLJUST", "CMLSCALE", "CMLSTYLE", "CSHADOW", "DIMADEC", "DIMALT", "DIMALTD", "DIMALTF", "DIMALTRND", "DIMALTTD", "DIMALTTZ", "DIMALTU", "DIMALTZ", "DIMAPOST", "DIMASO", "DIMASSOC", "DIMASZ", "DIMATFIT", "DIMAUNIT", "DIMAZIN", "DIMBLK", "DIMBLK1", "DIMBLK2", "DIMCEN", "DIMCLRD", "DIMCLRE", "DIMCLRT", "DIMDEC", "DIMDLE", "DIMDLI", "DIMDSEP", "DIMEXE", "DIMEXO", "DIMFAC", "DIMGAP", "DIMJUST", "DIMLDRBLK", "DIMLFAC", "DIMLIM", "DIMLUNIT", "DIMLWD", "DIMLWE", "DIMPOST", "DIMRND", "DIMSAH", "DIMSCALE", "DIMSD1", "DIMSD2", "DIMSE1", "DIMSE2", "DIMSHO", "DIMSOXD", "DIMSTYLE", "DIMTAD", "DIMTDEC", "DIMTFAC", "DIMTIH", "DIMTIX", "DIMTM", "DIMTMOVE", "DIMTOFL", "DIMTOH", "DIMTOL", "DIMTOLJ", "DIMTP", "DIMTSZ", "DIMTVP", "DIMTXSTY", "DIMTXT", "DIMTZIN", "DIMUPT", "DIMZIN", "DISPSILH", "DRAGVS", "DWGCODEPAGE", "ELEVATION", "ENDCAPS", "EXTMAX", "EXTMIN", "EXTNAMES", "FILLETRAD", "FILLMODE", "FINGERPRINTGUID", "HALOGAP", "HANDSEED", "HIDETEXT", "HYPERLINKBASE", "INDEXCTL", "INSBASE", "INSUNITS", "INTERFERECOLOR", "INTERFEREOBJVS", "INTERFEREVPVS", "INTERSECTIONCOLOR", "INTERSECTIONDISPLAY", "JOINSTYLE", "LIMCHECK", "LIMMAX", "LIMMIN", "LTSCALE", "LUNITS", "LUPREC", "LWDISPLAY", "MAXACTVP", "MEASUREMENT", "MENU", "MIRRTEXT", "OBSCOLOR", "OBSLTYPE", "ORTHOMODE", "PDMODE", "PDSIZE", "PELEVATION", "PEXTMAX", "PEXTMIN", "PINSBASE", "PLIMCHECK", "PLIMMAX", "PLIMMIN", "PLINEGEN", "PLINEWID", "PROJECTNAME", "PROXYGRAPHICS", "PSLTSCALE", "PSTYLEMODE", "PSVPSCALE", "PUCSBASE", "PUCSNAME", "PUCSORG", "PUCSORGBACK", "PUCSORGBOTTOM", "PUCSORGFRONT", "PUCSORGLEFT", "PUCSORGRIGHT", "PUCSORGTOP", "PUCSORTHOREF", "PUCSORTHOVIEW", "PUCSXDIR", "PUCSYDIR", "QTEXTMODE", "REGENMODE", "SHADEDGE", "SHADEDIF", "SHADOWPLANELOCATION", "SKETCHINC", "SKPOLY", "SORTENTS", "SPLINESEGS", "SPLINETYPE", "SURFTAB1", "SURFTAB2", "SURFTYPE", "SURFU", "SURFV", "TDCREATE", "TDINDWG", "TDUCREATE", "TDUPDATE", "TDUSRTIMER", "TDUUPDATE", "TEXTSIZE", "TEXTSTYLE", "THICKNESS", "TILEMODE", "TRACEWID", "TREEDEPTH", "UCSBASE", "UCSNAME", "UCSORG", "UCSORGBACK", "UCSORGBOTTOM", "UCSORGFRONT", "UCSORGLEFT", "UCSORGRIGHT", "UCSORGTOP", "UCSORTHOREF", "UCSORTHOVIEW", "UCSXDIR", "UCSYDIR", "UNITMODE", "USERI1", "USERI2", "USERI3", "USERI4", "USERI5", "USERR1", "USERR2", "USERR3", "USERR4", "USERR5", "USRTIMER", "VERSIONGUID", "VISRETAIN", "WORLDVIEW", "XCLIPFRAME", "XEDIT" ]); const dwgVersions = [ { type: "invalid", hdr: "INVALI", description: "No DWG", version: 0 }, { type: "r1.1", hdr: "MC0.0", description: "MicroCAD Release 1.1", version: 0 }, { type: "r1.2", hdr: "AC1.2", description: "AutoCAD Release 1.2", version: 0 }, { type: "r1.3", hdr: "AC1.3", description: "AutoCAD Release 1.3", version: 1 }, { type: "r1.4", hdr: "AC1.40", description: "AutoCAD Release 1.4", version: 2 }, { type: "r2.0b", hdr: "AC1.50", description: "AutoCAD 2.0 beta", version: 3 }, // not seen { type: "r2.0", hdr: "AC1.50", description: "AutoCAD Release 2.0", version: 4 }, { type: "r2.10", hdr: "AC2.10", description: "AutoCAD Release 2.10", version: 5 }, { type: "r2.21", hdr: "AC2.21", description: "AutoCAD Release 2.21", version: 6 }, { type: "r2.22", hdr: "AC2.22", description: "AutoCAD Release 2.22", version: 7 }, { type: "r2.4", hdr: "AC1001", description: "AutoCAD Release 2.4", version: 8 }, { type: "r2.5", hdr: "AC1002", description: "AutoCAD Release 2.5", version: 9 }, { type: "r2.6", hdr: "AC1003", description: "AutoCAD Release 2.6", version: 10 }, { type: "r9", hdr: "AC1004", description: "AutoCAD Release 9", version: 11 }, { type: "r9c1", hdr: "AC1005", description: "AutoCAD Release 9c1", version: 12 }, { type: "r10", hdr: "AC1006", description: "AutoCAD Release 10", version: 13 }, { type: "r11b1", hdr: "AC1007", description: "AutoCAD 11 beta 1", version: 14 }, { type: "r11b2", hdr: "AC1008", description: "AutoCAD 11 beta 2", version: 15 }, { type: "r11", hdr: "AC1009", description: "AutoCAD Release 11/12 (LT R1/R2)", version: 16 }, { type: "r13b1", hdr: "AC1010", description: "AutoCAD pre-R13 a", version: 17 }, { type: "r13b2", hdr: "AC1011", description: "AutoCAD pre-R13 b", version: 18 }, { type: "r13", hdr: "AC1012", description: "AutoCAD Release 13", version: 19 }, { type: "r13c3", hdr: "AC1013", description: "AutoCAD Release 13c3", version: 20 }, { type: "r14", hdr: "AC1014", description: "AutoCAD Release 14", version: 21 }, { type: "r2000b", hdr: "AC1500", description: "AutoCAD 2000 beta", version: 22 }, { type: "r2000", hdr: "AC1015", description: "AutoCAD Release 2000", version: 23 }, { type: "r2000i", hdr: "AC1016", description: "AutoCAD Release 2000i", version: 23 }, { type: "r2002", hdr: "AC1017", description: "AutoCAD Release 2002", version: 23 }, { type: "r2004a", hdr: "AC402a", description: "AutoCAD 2004 alpha a", version: 24 }, { type: "r2004b", hdr: "AC402b", description: "AutoCAD 2004 alpha b", version: 24 }, { type: "r2004c", hdr: "AC1018", description: "AutoCAD 2004 beta", version: 24 }, // (includes versions AC1019/0x19 and AC1020/0x1a) { type: "r2004", hdr: "AC1018", description: "AutoCAD Release 2004", version: 25 }, //{ type: "r2005", hdr: "AC1019", description: "AutoCAD 2005", version: 0x19 }, // not seen //{ type: "r2006", hdr: "AC1020", description: "AutoCAD 2006", version: 0x19 }, // not seen { type: "r2007a", hdr: "AC701a", description: "AutoCAD 2007 alpha", version: 26 }, { type: "r2007b", hdr: "AC1021", description: "AutoCAD 2007 beta", version: 26 }, { type: "r2007", hdr: "AC1021", description: "AutoCAD Release 2007", version: 27 }, //{ type: "r2008", hdr: "AC1022", description: "AutoCAD 2008", version: 0x1b }, // not seen //{ type: "r2009", hdr: "AC1023", description: "AutoCAD 2009", version: 0x1b }, // not seen { type: "r2010b", hdr: "AC1024", description: "AutoCAD 2010 beta", version: 28 }, { type: "r2010", hdr: "AC1024", description: "AutoCAD Release 2010", version: 29 }, //{ type: "r2011", hdr: "AC1025", description: "AutoCAD 2011", version: 0x1d }, // not seen //{ type: "r2012", hdr: "AC1026", description: "AutoCAD 2012", version: 0x1e }, // not seen { type: "r2013b", hdr: "AC1027", description: "AutoCAD 2013 beta", version: 30 }, { type: "r2013", hdr: "AC1027", description: "AutoCAD Release 2013", version: 31 }, //{ type: "r2014", hdr: "AC1028", description: "AutoCAD 2014", version: 0x1f }, // not seen //{ type: "r2015", hdr: "AC1029", description: "AutoCAD 2015", version: 0x1f }, // not seen //{ type: "r2016", hdr: "AC1030", description: "AutoCAD 2016", version: 0x1f }, // not seen //{ type: "r2017", hdr: "AC1031", description: "AutoCAD 2017", version: 0x20 }, // not seen { type: "r2018b", hdr: "AC1032", description: "AutoCAD 2018 beta", version: 32 }, { type: "r2018", hdr: "AC1032", description: "AutoCAD Release 2018", version: 33 }, //{ type: "r2019", "AC1033", description: "AutoCAD Release 2019", version: 0x22 }, // not seen //{ type: "r2020", "AC1034", description: "AutoCAD Release 2020", version: 0x23 }, // not seen //{ type: "r2021", "AC1035", description: "AutoCAD Release 2021", version: 0x23 }, // not seen { type: "r2022b", hdr: "AC103-4", description: "AutoCAD 2022 beta", version: 36 }, { type: "r>2022", hdr: "", description: "AutoCAD Release >2022", version: 0 } ]; var createModule = (() => { var _scriptName = import.meta.url; return async function(moduleArg = {}) { var moduleRtn; var Module = moduleArg; var readyPromiseResolve, readyPromiseReject; var readyPromise = new Promise((resolve, reject) => { readyPromiseResolve = resolve; readyPromiseReject = reject; }); var ENVIRONMENT_IS_WEB = typeof window == "object"; var ENVIRONMENT_IS_WORKER = typeof WorkerGlobalScope != "undefined"; var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string" && process.type != "renderer"; if (ENVIRONMENT_IS_NODE) { const { createRequire } = await import("module"); var require2 = createRequire(import.meta.url); } var moduleOverrides = Object.assign({}, Module); var thisProgram = "./this.program"; var scriptDirectory = ""; function locateFile(path) { if (Module["locateFile"]) { return Module["locateFile"](path, scriptDirectory); } return scriptDirectory + path; } var readAsync, readBinary; if (ENVIRONMENT_IS_NODE) { var fs = require2("fs"); var nodePath = require2("path"); if (!import.meta.url.startsWith("data:")) { scriptDirectory = nodePath.dirname(require2("url").fileURLToPath(import.meta.url)) + "/"; } readBinary = (filename) => { filename = isFileURI(filename) ? new URL(filename) : filename; var ret = fs.readFileSync(filename); return ret; }; readAsync = async (filename, binary = true) => { filename = isFileURI(filename) ? new URL(filename) : filename; var ret = fs.readFileSync(filename, binary ? void 0 : "utf8"); return ret; }; if (!Module["thisProgram"] && process.argv.length > 1) { thisProgram = process.argv[1].replace(/\\/g, "/"); } process.argv.slice(2); } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { if (ENVIRONMENT_IS_WORKER) { scriptDirectory = self.location.href; } else if (typeof document != "undefined" && document.currentScript) { scriptDirectory = document.currentScript.src; } if (_scriptName) { scriptDirectory = _scriptName; } if (scriptDirectory.startsWith("blob:")) { scriptDirectory = ""; } else { scriptDirectory = scriptDirectory.slice(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); } { if (ENVIRONMENT_IS_WORKER) { readBinary = (url) => { var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); xhr.responseType = "arraybuffer"; xhr.send(null); return new Uint8Array(xhr.response); }; } readAsync = async (url) => { if (isFileURI(url)) { return new Promise((resolve, reject) => { var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.responseType = "arraybuffer"; xhr.onload = () => { if (xhr.status == 200 || xhr.status == 0 && xhr.response) { resolve(xhr.response); return; } reject(xhr.status); }; xhr.onerror = reject; xhr.send(null); }); } var response = await fetch(url, { credentials: "same-origin" }); if (response.ok) { return response.arrayBuffer(); } throw new Error(response.status + " : " + response.url); }; } } else ; var out = Module["print"] || console.log.bind(console); var err = Module["printErr"] || console.error.bind(console); Object.assign(Module, moduleOverrides); moduleOverrides = null; if (Module["arguments"]) Module["arguments"]; if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; var wasmBinary = Module["wasmBinary"]; var wasmMemory; var ABORT = false; var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAP64, HEAPU64, HEAPF64; var isFileURI = (filename) => filename.startsWith("file://"); function updateMemoryViews() { var b = wasmMemory.buffer; Module["HEAP8"] = HEAP8 = new Int8Array(b); Module["HEAP16"] = HEAP16 = new Int16Array(b); Module["HEAPU8"] = HEAPU8 = new Uint8Array(b); Module["HEAPU16"] = HEAPU16 = new Uint16Array(b); Module["HEAP32"] = HEAP32 = new Int32Array(b); Module["HEAPU32"] = HEAPU32 = new Uint32Array(b); Module["HEAPF32"] = HEAPF32 = new Float32Array(b); Module["HEAPF64"] = HEAPF64 = new Float64Array(b); Module["HEAP64"] = HEAP64 = new BigInt64Array(b); Module["HEAPU64"] = HEAPU64 = new BigUint64Array(b); } function preRun() { if (Module["preRun"]) { if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; while (Module["preRun"].length) { addOnPreRun(Module["preRun"].shift()); } } callRuntimeCallbacks(onPreRuns); } function initRuntime() { if (!Module["noFSInit"] && !FS.initialized) FS.init(); wasmExports["__wasm_call_ctors"](); FS.ignorePermissions = false; } function postRun() { if (Module["postRun"]) { if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; while (Module["postRun"].length) { addOnPostRun(Module["postRun"].shift()); } } callRuntimeCallbacks(onPostRuns); } var runDependencies = 0; var dependenciesFulfilled = null; function addRunDependency(id) { var _a; runDependencies++; (_a = Module["monitorRunDependencies"]) == null ? void 0 : _a.call(Module, runDependencies); } function removeRunDependency(id) { var _a; runDependencies--; (_a = Module["monitorRunDependencies"]) == null ? void 0 : _a.call(Module, runDependencies); if (runDependencies == 0) { if (dependenciesFulfilled) { var callback = dependenciesFulfilled; dependenciesFulfilled = null; callback(); } } } function abort(what) { var _a; (_a = Module["onAbort"]) == null ? void 0 : _a.call(Module, what); what = "Aborted(" + what + ")"; err(what); ABORT = true; what += ". Build with -sASSERTIONS for more info."; var e = new WebAssembly.RuntimeError(what); readyPromiseReject(e); throw e; } var wasmBinaryFile; function findWasmBinary() { if (Module["locateFile"]) { return locateFile("libredwg-web.wasm"); } return new URL("data:application/wasm;base64,AGFzbQEAAAABvwRKYAF/AX9gBH9/f38Bf2ABfwBgAn9/AX9gAn9/AGADf39/AX9gA39/fwBgBn9/f39/fwF/YAR/f39/AGAFf39/f38Bf2AAAGABfwF8YAV/f39/fwBgBn9/f39/fwBgAX8BfmAIf39/f39/f38Bf2AHf39/f39/fwF/YAJ/fgF/YAV/fn5+fgBgAAF/YAR/f35/AX9gAn9/AXxgB39/f39/f38AYAV/f39/fgF/YAh/f39/f39/fwBgCn9/f39/f39/f38AYAJ/fgBgA39+fwF+YAR/fn5/AGAFf39+f38AYAN/f34Bf2ADf398AX9gAn9/AX5gA39/fwF8YAZ/fH9/f38Bf2ADf39/AX5gCn9/f39/f39/f38Bf2AEf39/fwF+YAx/f39/f39/f39/f38Bf2AFf39/f3wBf2AGf39/f35+AX9gC39/f39/f39/f39/AX9gB39/f39/fn4Bf2APf39/f39/f39/f39/f39/AGAEf39/fwF8YAV/f39/fwF8YA1/f39/f39/f39/f39/AGAFf39/fn4AYAABfGAEf35/fwF/YAJ+fwBgBX9/f35/AX9gA39/fABgBH9/f3wBf2ABfAF/YAJ/fAF8YAV/f35+fgF/YAR/f39+AX9gAX4Bf2ACf34BfmADf35+AGABfAF8YAABfmAEf39/fgF+YAJ8fwF8YAJ+fwF/YAR/fn5+AGADf39+AGAEfn5+fgF/YAN+fn4Bf2ACf3wAYAJ+fgF8YAJ+fgF9YAN/f38BfQL2CS8DZW52EV9lbXZhbF9uZXdfb2JqZWN0ABMDZW52El9lbXZhbF9uZXdfY3N0cmluZwAAA2VudhNfZW12YWxfc2V0X3Byb3BlcnR5AAYDZW52DV9lbXZhbF9kZWNyZWYAAgNlbnYRX2VtdmFsX3Rha2VfdmFsdWUAAwNlbnYRX2VtdmFsX2dldF9nbG9iYWwAAANlbnYYX2VtdmFsX2dldF9tZXRob2RfY2FsbGVyAAUDZW52C19lbXZhbF9jYWxsACwDZW52Fl9lbXZhbF9ydW5fZGVzdHJ1Y3RvcnMAAgNlbnYNX2VtdmFsX2luY3JlZgACA2VudhJfZW12YWxfY2FsbF9tZXRob2QALQNlbnYQX2VtdmFsX25ld19hcnJheQATA2VudhlfZW1iaW5kX3JlZ2lzdGVyX2Z1bmN0aW9uABgDZW52C19fY3hhX3Rocm93AAYDZW52FV9lbWJpbmRfcmVnaXN0ZXJfZW51bQAIA2VudhtfZW1iaW5kX3JlZ2lzdGVyX2VudW1fdmFsdWUABgNlbnYWX2VtYmluZF9yZWdpc3Rlcl9jbGFzcwAuA2Vudh9fZW1iaW5kX3JlZ2lzdGVyX2NsYXNzX3Byb3BlcnR5ABkDZW52DV9fYXNzZXJ0X2ZhaWwACANlbnYVX2VtYmluZF9yZWdpc3Rlcl92b2lkAAQDZW52FV9lbWJpbmRfcmVnaXN0ZXJfYm9vbAAIA2VudhhfZW1iaW5kX3JlZ2lzdGVyX2ludGVnZXIADANlbnYXX2VtYmluZF9yZWdpc3Rlcl9iaWdpbnQALwNlbnYWX2VtYmluZF9yZWdpc3Rlcl9mbG9hdAAGA2VudhtfZW1iaW5kX3JlZ2lzdGVyX3N0ZF9zdHJpbmcABANlbnYcX2VtYmluZF9yZWdpc3Rlcl9zdGRfd3N0cmluZwAGA2VudhZfZW1iaW5kX3JlZ2lzdGVyX2VtdmFsAAIDZW52HF9lbWJpbmRfcmVnaXN0ZXJfbWVtb3J5X3ZpZXcABgNlbnYTZW1zY3JpcHRlbl9kYXRlX25vdwAwA2VudhBfX3N5c2NhbGxfb3BlbmF0AAEDZW52EV9fc3lzY2FsbF9mY250bDY0AAUDZW52D19fc3lzY2FsbF9pb2N0bAAFFndhc2lfc25hcHNob3RfcHJldmlldzEIZmRfd3JpdGUAARZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxB2ZkX3JlYWQAARZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxCGZkX2Nsb3NlAAADZW52EV9fc3lzY2FsbF9mc3RhdDY0AAMDZW52EF9fc3lzY2FsbF9zdGF0NjQAAwNlbnYUX19zeXNjYWxsX25ld2ZzdGF0YXQAAQNlbnYRX19zeXNjYWxsX2xzdGF0NjQAAxZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxB2ZkX3NlZWsAMQNlbnYJX3R6c2V0X2pzAAgDZW52Cl9ta3RpbWVfanMADgNlbnYKX2dtdGltZV9qcwAyA2VudhZlbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwAAADZW52CV9hYm9ydF9qcwAKFndhc2lfc25hcHNob3RfcHJldmlldzERZW52aXJvbl9zaXplc19nZXQAAxZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxC2Vudmlyb25fZ2V0AAMD2AzWDAoGBgoEBAQEBAQEBgYGBgYGBgYGBgYGBgYGBgYGBgAAAAAEBAAEAAAAAAAAAAAABAAEAAAEAAQEBAQLCwAAAAAAAAAAAAAAAAAEAwUDEREDCgMKBQoDAwoKChUKCgUBHgAABggFBAQEBgYIAQkBCAoDBQEJBwEEBAAEBAQEBAQECgoEAAAEAAYFBQgDAwUFBgYLCwsLCwsLCwsLAAAAAAAAAwAAAAAAAAAAAAADAAAADg4AAwADAAADAwMFAAAGAgIAFBQDEQQAAAADCAAJBAMEBAMFAwUGBQYFFR8DBQMFDg4OAwMKAwEBAQUFBSAEMwcAAhU0AAEhNQQABAIAAgAAAAQAAAAADg4LAAAOCzYADgAIAjcLAwMDBQMDBAADAAMAAAAAAAAAAwADAwMDBAQFAwIGAwAAAAMDAwADAwMAAAAFAwMTBQUBBQUFCAk4AgkBCAMBBQQAAwABAwIBAwUAAwUFAgAAAAAAAAAAAAAAAAAAAAAAAAAAAwEBAwEDAQMBAwEDAQMBAwEDAQMBAAAAAAMDAwMDAwIDAwMDAwMDAwMDAwMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEEBQYQAQEBAQEDBQABBQYAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAADAwMDAwMDAwMDAAMDAwQEAzkeAwMAAwQEBQMDAxEABREDAAMUAAAAAAAAAAAAAAAAAwAUAxEDBQUFAwUDBQAAAgADBQ4OGgIABgQDAwkHCQwFAgMAAgIAAgAAAAIAAgIAAAAAAAAAAAACAgIAAAACAgACAgACAgAAAgAAAAICAAACAAACAgACAgIAAgICAgIAAgICAgICAgICAgACAgIAAgICAgICAgICAgICAAACAAAAAgACAAACAAAAAAACAAIAAgACAAAAAAICAAIAAAIAAAICAAIAAAIAAAIAAgIAAgACAAICAgACAAAAAgACAAIAAAACAgACAAICAgIAAgAAAAICAAIAAAACAgICAgAAAgACAgIAAgACAAIAAgIAAgICAgICAAICAgICAgIAAgIAAAICAgAAAAIAAgICAgIAAgICAgIAAgICAAAAAAIAAAAAAgIEAwI6OzwJAAIKPQk+AAIABhsFBQAGBgACAgQFAAUBBQgAAwkDAwMABgIAAAAAAQUFAQoLBQQFGwMDAwMAAwAJAAYABQUDAz8AAABACRAGAAhBDCIEBgEFGgBCHBIIIEMFBQADAwACAwQDABIcREUSRgQEHBISEkdICgIAAgAEBR0aCAUDBgYAAAADBQAAAwAFAAAAAAIDAwAAAgIDAgQFBgYAAwAFAAAABAAAAAQIBgQABAAABAUGAAAEAAMAAwMAHQMKAAIIAAIAAgACBAQEAAMDAAAEBAQEBQoDAwADAAMEBAQAAgQDAAMAAAAAAgEAIyMIAgkIBQkIBgUHAgAEBBADAwUEAwMAAgcABiQBCAclBwEHAQclBwwmSQchBwgHCBMFBQMCBwAQAwcDBiQHBwcHBwwmBwcHCAUAAAQDCQAAAwIACQgJBRYHFwkXJwUBFigJBQIJAAIJFgcXCRcnFigJBQQEDwMABwcHDQcNBwwJDw8DBwcHDQcNBwwJDxANBBADAAQEBAAEBBApBAYGABAMBAAEBAAAAwAEECkEEAQAAwwFAAQAAyoAGSsEBQcqGSsFBwUNDQADAwQAAgAGAwICAAACBAICAgIFAQEBAwUDBQMBBQkAAgMFAwUBBQkPCQkCDwUPCQkAAAkADw8JAA8PCQACAAIAAAQEBAQEBAQEAAIAAgQAAgACAAIAAgACAAIAAgACAAIAAgACAAICAAAABAAGAgYDBgYFAAAGAAAABgACBAAEAAAAAAICABgABgQYAAQFBQUDBggICAMIBQMIBgwNDAwMDQ0NAAACAgATBAcBcAHgBOAEBQcBAZ8CgIACBgkBfwFBsL37AAsHtQEJBm1lbW9yeQIAEV9fd2FzbV9jYWxsX2N0b3JzAC8GbWFsbG9jAIgJGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAARmcmVlAIkJDV9fZ2V0VHlwZU5hbWUAqggZX2Vtc2NyaXB0ZW5fc3RhY2tfcmVzdG9yZQCCDRdfZW1zY3JpcHRlbl9zdGFja19hbGxvYwCDDRxlbXNjcmlwdGVuX3N0YWNrX2dldF9jdXJyZW50AIQNCfsIAQBBAQvfBIABODmCAUFCQ0Q7PD0+P0A6RUZHSElKS0yEAU2EAU5QT1GFAVJTVFVWV1hZWltcXV5fYGFQYmNkZWZnaIkBaWqEAWtshAFtbm9wcXJzhAF0dU12d3iMAXmNAXp7jgF8fYwBfoANf4EBgwGGAYcBiAGKAYsBnwGPAZABoAGRAZcBmAGhAZkBogGaAaMBmwGcAaQBnQGeAaUBpgGpAasBrAGuAaoBrwGwAZUCsQGyAbMBtAG1AYIBtgGWArcBlwK4AZgCuQGZAroBuwGXArwBvQGaAr4BmwK/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4BnALfAeAB4QHiAeMB5AHlAeYB5wHoAYwB6QGNAeoB6wGfAewBmgLtAYQBggadAu4B7wHwAZ4C8QGeAvIB8wGOAfQBhQH1AZ8B9gH3AfgB+QGdApAGpAH6AYQBjgaEAY8G+wGfAvwB/QGZAv4B/wGAAqACoQKiAqMCpAKhAqICowKZAoECpQKCApkCgwKlAoQChQKWAoYChwKIAqYCiQKnAooCmQKLAqUCjAKZAo0CpQKOAo8CkAKRAowBkgKTApQC7ALtAoQGmwasCLQItQi2CLcI0AjaCPYI9wj6CIQJngmfCaEJogmjCaUJ0AjQCKYJqgmrCa0JrgmtCbsJvQm8Cb4J5wnoCeQJ6QneCd8J4QnqCesJ7AntCYcKiAqJCcIC7QumDKgMqwytDK8MsQyzDLUMtwy5DLsMvQy/DMEM5gvoC+wL+gv7C/wL/Qv+C/8L9guADIEMggzbC4YMhwyJDIsMjAzQCI4MjwyXDJgMmwycDJ0MnwyiDJkMmgzOCc8JngygDKMM3AGXCpcK7gvvC/AL8QvyC/ML9Av1C/YL9wv4C/kLlwqDDIMMhAywCLAIhQywCJcKkAyRDIQM0AjQCJIMkwyXCpAMkQyEDNAI0AiSDJMMlwqUDJUMhAzQCNAIlgyTDJcKlAyVDIQM0AjQCJYMkwzcAZcKmAqZCpoK3AGX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