1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4371],{14371:(t,e,n)=>{n.d(e,{CH:()=>h,CadLoadError:()=>c,c8:()=>w,loadCadFile:()=>d,op:()=>A});var r=n(6255),a=n(56972),i=n(81794),o=n(16295);class c extends Error{constructor(t,e){super(null!=e?e:t),this.name="CadLoadError",this.code=t}}let l=null;async function u(){return l||(l=import(new URL("/cad/acad-ts.mjs",window.location.origin).href)).catch(()=>{l=null}),l}function s(){return new Promise(t=>setTimeout(t,0))}function f(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}async function g(t,e){let a=[];t.DxfWriter.writeToStream({write:t=>void a.push(t)},e,!1);let i=new(await n.e(6300).then(n.bind(n,16300))).default().parseSync(a.join(""));if(!i||"object"!=typeof i)throw new c("parse");return(0,r.V_)(i)}async function d(t,e){let n;null==e||e("reading");let r=new Uint8Array(await t.arrayBuffer());if(r.length<16)throw new c("empty");let i=(0,a.Cj)(r),o="dwg"===i.format;if(null===i.format)throw new c("unknown");if(o&&!(0,a.WT)(i.version))throw new c("oldDwg");null==e||e("parsing"),await s();let l=await u();try{n=o?l.DwgReader.readFromStream(f(r)):l.DxfReader.readFromStream(r)}catch(t){throw new c("parse",t instanceof Error?t.message:void 0)}if(!n)throw new c("parse");null==e||e("building"),await s();let d=await g(l,n);if(!d.prims.length)throw new c("noGeometry");return{scene:d,format:o?"dwg":"dxf",versionLabel:i.versionLabel,doc:n}}async function A(t){return g(await u(),t)}async function w(t,e,r){let a=new(await Promise.all([n.e(1029),n.e(7496)]).then(n.t.bind(n,7496,23))).default;a.file(e,t,{date:(0,i._)(r)});let c=await a.generateAsync({type:"uint8array"});return(0,o.zP)(c,r)}function C(t){return/[^\x00-\x7F]/.test(t)}async function h(t,e){let n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=await u();try{n="dwg"===e?a.DwgWriter.writeToBuffer(t):new TextEncoder().encode((function(t,e){let n=[];return t.DxfWriter.writeToStream({write:t=>void n.push(t)},e,!1),n.join("")})(a,t).replace(/(\$DWGCODEPAGE\s*[\r\n]+\s*3\s*[\r\n]+\s*)[A-Za-z0-9_-]+/,"$1UTF8"))}catch(t){throw new c("save",t instanceof Error?t.message:void 0)}let i=r.filter(C);if(0===i.length)return{bytes:n,lost:[]};try{var o,l,s;let t="dwg"===e?a.DwgReader.readFromStream(f(n)):a.DxfReader.readFromStream(n),r=new Set;for(let e of null!=(o=t.blockRecords)?o:[])for(let t of null!=(l=e.entities)?l:[])for(let e of("string"==typeof t.value&&r.add(t.value),null!=(s=t.attributes)?s:[]))"string"==typeof e.value&&r.add(e.value);return{bytes:n,lost:i.filter(t=>!r.has(t))}}catch(t){return{bytes:n,lost:[]}}}},16295:(t,e,n)=>{n.d(e,{zP:()=>a});let r=BigInt(116444736e5);function a(t,e){if(t.length<22)return t;let n=new DataView(t.buffer,t.byteOffset,t.byteLength),a=function(t){let e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=Math.max(0,t.length-22-65535);for(let r=t.length-22;r>=n;r--)if(0x6054b50===e.getUint32(r,!0))return r;return -1}(t);if(a<0)return t;let i=n.getUint16(a+10,!0);if(i<1)return t;let o=n.getUint32(a+12,!0),c=n.getUint32(a+16,!0);if(0===c||c+o>t.length)return t;let l=[],u=c;for(let e=0;e<i;e++){if(u+46>c+o||0x2014b50!==n.getUint32(u,!0))return t;let e=n.getUint16(u+28,!0),r=n.getUint16(u+30,!0),a=n.getUint16(u+32,!0),i=n.getUint32(u+42,!0),s=46+e+r+a;if(u+s>c+o||i>=c||0x4034b50!==n.getUint32(i,!0))return t;l.push({cd:u,cdLen:s,cdInsert:u+46+e+r,local:i}),u+=s}let s=[...l].sort((t,e)=>t.local-e.local),f=function(t){let e=new Uint8Array(36),n=new DataView(e.buffer),a=(BigInt(Math.round(t.getTime()))+r)*BigInt(1e4);return n.setUint16(0,10,!0),n.setUint16(2,32,!0),n.setUint32(4,0,!0),n.setUint16(8,1,!0),n.setUint16(10,24,!0),n.setBigUint64(12,a,!0),n.setBigUint64(20,a,!0),n.setBigUint64(28,a,!0),e}(e),g=f.length,d=new Uint8Array(t.length+g*i*2),A=new DataView(d.buffer),w=0,C=t=>{d.set(t,w),w+=t.length},h=new Map;for(let e=0;e<s.length;e++){let r=s[e];h.set(r.local,w);let a=n.getUint16(r.local+26,!0),i=n.getUint16(r.local+28,!0),o=r.local+30+a+i,l=e+1<s.length?s[e+1].local:c;if(o>l)return t;let u=w;C(t.subarray(r.local,o)),C(f),A.setUint16(u+28,i+g,!0),C(t.subarray(o,l))}let y=w;for(let e of l){var m;let r=w;C(t.subarray(e.cd,e.cdInsert)),C(f),C(t.subarray(e.cdInsert,e.cd+e.cdLen));let a=n.getUint16(e.cd+30,!0);A.setUint16(r+30,a+g,!0),A.setUint32(r+42,null!=(m=h.get(e.local))?m:0,!0)}let D=w-y,p=w;return C(t.subarray(a)),A.setUint32(p+12,D,!0),A.setUint32(p+16,y,!0),d.subarray(0,w)}},56972:(t,e,n)=>{n.d(e,{Cj:()=>c,LT:()=>l,WT:()=>i});let r={"MC0.0":"AutoCAD 1.0","AC1.2":"AutoCAD 1.2","AC1.4":"AutoCAD 1.4","AC1.50":"AutoCAD 2.0","AC2.10":"AutoCAD 2.10",AC1002:"AutoCAD 2.5",AC1003:"AutoCAD 2.6",AC1004:"AutoCAD R9",AC1006:"AutoCAD R10",AC1009:"AutoCAD R11/R12",AC1012:"AutoCAD R13",AC1014:"AutoCAD R14",AC1015:"AutoCAD 2000~2002",AC1018:"AutoCAD 2004~2006",AC1021:"AutoCAD 2007~2009",AC1024:"AutoCAD 2010~2012",AC1027:"AutoCAD 2013~2017",AC1032:"AutoCAD 2018 ì´í"},a=new Set(["AC1012","AC1014","AC1015","AC1018","AC1021","AC1024","AC1027","AC1032"]);function i(t){return!!(!t||a.has(t))||!(t in r)}function o(t,e){let n="",r=Math.min(e,t.length);for(let e=0;e<r;e++)n+=String.fromCharCode(t[e]);return n}function c(t){if(t.length<16)return{format:null};let e=o(t,6);if(e.startsWith("AC10")||e.startsWith("AC1.")||e.startsWith("AC2.")||"MC0.0"===e)return{format:"dwg",version:e,versionLabel:r[e]};if(o(t,22).startsWith("AutoCAD Binary DXF"))return{format:"dxfBinary"};let n=o(t,2048);return n.includes("SECTION")&&/(^|[\r\n])\s*0\s*[\r\n]/.test(n)?{format:"dxf"}:{format:null}}function l(t){return t.replace(/\.[^.]+$/,"")||"drawing"}},81794:(t,e,n)=>{function r(t,e,n){if(e<1||e>12||n<1||n>31||t<1900||t>2999)return!1;let r=new Date(Date.UTC(t,e-1,n));return r.getUTCFullYear()===t&&r.getUTCMonth()===e-1&&r.getUTCDate()===n}function a(t){let e=/^(\d{4})-(\d{2})-(\d{2})$/.exec(t.trim());if(!e)return null;let[n,a,i]=[Number(e[1]),Number(e[2]),Number(e[3])];return r(n,a,i)?new Date(n,a-1,i,12,0,0,0):null}function i(t){return new Date(t.getTime()-6e4*t.getTimezoneOffset())}function o(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate(),12,0,0,0)}function c(t){return String(t).padStart(2,"0")}function l(t,e,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:new Date,a=n.getFullYear(),i=c(n.getMonth()+1),o=c(n.getDate()),l=c(n.getHours()),u=c(n.getMinutes());if("windows"===t){let t="'".concat(e.replace(/'/g,"''"),"'");return"$f = Get-Item ".concat(t,"\n$d = Get-Date '").concat(a,"-").concat(i,"-").concat(o," ").concat(l,":").concat(u,"'\n$f.CreationTime = $d\n$f.LastWriteTime = $d")}let s='"'.concat(e.replace(/(["\\$`])/g,"\\$1"),'"'),f="".concat(a).concat(i).c
1oncat(o).concat(l).concat(u),g=["touch -t ".concat(f," ").concat(s)];return"mac"===t&&n.getTime()>r.getTime()&&g.push('SetFile -d "'.concat(i,"/").concat(o,"/").concat(a," ").concat(l,":").concat(u,':00" ').concat(s)),"mac"===t&&g.push(function(t,e){let n=Math.floor(new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),0,0).getTime()/1e3);return'python3 -c "'.concat("import ctypes,ctypes.util,struct,sys;l=ctypes.CDLL(ctypes.util.find_library('c'));A=type('A',(ctypes.Structure,),{'_fields_':[('b',ctypes.c_ushort),('r',ctypes.c_uint16),('c',ctypes.c_uint),('v',ctypes.c_uint),('d',ctypes.c_uint),('f',ctypes.c_uint),('k',ctypes.c_uint)]})(5,0,0x10000000,0,0,0,0);"+"t=struct.pack('<qq',".concat(n,",0);")+"sys.exit(l.setattrlist(sys.argv[1].encode(),ctypes.byref(A),ctypes.create_string_buffer(t,16),16,0))",'" ').concat(t)}(s,n)),g.join("\n")}n.d(e,{OE:()=>l,_:()=>i,nL:()=>o,qI:()=>a,xc:()=>r})}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.