@ohtaman/washi 0.5.0 → 0.6.0

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.
Files changed (86) hide show
  1. package/README.ja.md +55 -20
  2. package/README.md +55 -20
  3. package/README.zh-CN.md +55 -20
  4. package/THIRD_PARTY_LICENSES.md +3 -4
  5. package/dist/browser/_washi-node-only-BvRk9kiK.js +0 -0
  6. package/dist/browser/browser-runtime-TLCY0hkc.js +1793 -0
  7. package/dist/browser/highs-worker.js +1 -1
  8. package/dist/browser/highs.wasm +0 -0
  9. package/dist/browser/highs.wasm.LICENSE +1 -2
  10. package/dist/browser/loader-DewlSho8.js +643 -0
  11. package/dist/browser/solvers/glpk.js +1 -1
  12. package/dist/browser/solvers/glpk.min.js +1 -1
  13. package/dist/browser/solvers/z3.js +7 -1
  14. package/dist/browser/solvers/z3.min.js +1 -1
  15. package/dist/browser/washi.js +1096 -444
  16. package/dist/browser/washi.min.js +3 -4
  17. package/dist/lib/_washi-node-only-BvRk9kiK.js +0 -0
  18. package/dist/lib/highs-browser-runtime.js +2120 -4124
  19. package/dist/lib/highs-node-runtime.js +24 -1
  20. package/dist/lib/highs-runtime.js +2 -0
  21. package/dist/lib/highs-worker.js +1 -1
  22. package/dist/lib/highs.wasm +0 -0
  23. package/dist/lib/highs.wasm.LICENSE +1 -2
  24. package/dist/lib/loader-BZUQNvh4.js +649 -0
  25. package/dist/lib/{registry-BEfvpZW3.js → registry-C20sxTwm.js} +54 -41
  26. package/dist/lib/solvers/glpk.js +2 -2
  27. package/dist/lib/solvers/z3.js +1 -1
  28. package/dist/lib/washi.js +973 -305
  29. package/dist/types/decomposition/benders.d.ts +32 -0
  30. package/dist/types/decomposition/benders.d.ts.map +1 -0
  31. package/dist/types/decomposition/column-generation.d.ts +34 -0
  32. package/dist/types/decomposition/column-generation.d.ts.map +1 -0
  33. package/dist/types/decomposition/index.d.ts +4 -0
  34. package/dist/types/decomposition/index.d.ts.map +1 -0
  35. package/dist/types/decomposition/types.d.ts +230 -0
  36. package/dist/types/decomposition/types.d.ts.map +1 -0
  37. package/dist/types/index.d.ts +4 -3
  38. package/dist/types/index.d.ts.map +1 -1
  39. package/dist/types/modeler/boolean-expr.d.ts.map +1 -1
  40. package/dist/types/modeler/constraint.d.ts +11 -0
  41. package/dist/types/modeler/constraint.d.ts.map +1 -1
  42. package/dist/types/modeler/expression.d.ts +10 -0
  43. package/dist/types/modeler/expression.d.ts.map +1 -1
  44. package/dist/types/modeler/index.d.ts +2 -1
  45. package/dist/types/modeler/index.d.ts.map +1 -1
  46. package/dist/types/modeler/linearizer.d.ts +15 -0
  47. package/dist/types/modeler/linearizer.d.ts.map +1 -0
  48. package/dist/types/modeler/lp-writer.d.ts +3 -1
  49. package/dist/types/modeler/lp-writer.d.ts.map +1 -1
  50. package/dist/types/modeler/model.d.ts +147 -2
  51. package/dist/types/modeler/model.d.ts.map +1 -1
  52. package/dist/types/modeler/solvers/highs/browser-runtime.d.ts +2 -1
  53. package/dist/types/modeler/solvers/highs/browser-runtime.d.ts.map +1 -1
  54. package/dist/types/modeler/solvers/highs/driver.d.ts +232 -0
  55. package/dist/types/modeler/solvers/highs/driver.d.ts.map +1 -0
  56. package/dist/types/modeler/solvers/highs/index.d.ts +1 -0
  57. package/dist/types/modeler/solvers/highs/index.d.ts.map +1 -1
  58. package/dist/types/modeler/solvers/highs/loader.d.ts +4 -4
  59. package/dist/types/modeler/solvers/highs/loader.d.ts.map +1 -1
  60. package/dist/types/modeler/solvers/highs/node-runtime.d.ts +2 -1
  61. package/dist/types/modeler/solvers/highs/node-runtime.d.ts.map +1 -1
  62. package/dist/types/modeler/solvers/highs/solver.d.ts +1 -1
  63. package/dist/types/modeler/solvers/highs/solver.d.ts.map +1 -1
  64. package/dist/types/modeler/solvers/types.d.ts +2 -0
  65. package/dist/types/modeler/solvers/types.d.ts.map +1 -1
  66. package/dist/types/modeler/types.d.ts +27 -0
  67. package/dist/types/modeler/types.d.ts.map +1 -1
  68. package/docs/examples/index.md +4 -0
  69. package/docs/examples/traveling-salesperson.md +173 -0
  70. package/docs/examples/vehicle-routing.md +206 -0
  71. package/docs/getting-started/ai-agents.md +8 -4
  72. package/docs/guide/constraints.md +1 -1
  73. package/docs/guide/decomposition.md +399 -0
  74. package/docs/guide/unsat-core.md +10 -3
  75. package/docs/ja/getting-started/ai-agents.md +8 -4
  76. package/docs/solvers/custom-solver.md +1 -1
  77. package/docs/solvers/highs.md +25 -3
  78. package/docs/solvers/index.md +3 -3
  79. package/docs/zh/getting-started/ai-agents.md +8 -4
  80. package/llms-full.txt +831 -15
  81. package/llms.txt +9 -5
  82. package/package.json +17 -14
  83. package/skills/washi/SKILL.md +8 -8
  84. package/dist/browser/browser-runtime-D13gHOT5.js +0 -4189
  85. package/dist/browser/loader-CtaDHef_.js +0 -273
  86. package/dist/lib/loader-DmNC_UNk.js +0 -279
@@ -1,4189 +0,0 @@
1
- //#region \0rolldown/runtime.js
2
- var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescriptor, r = Object.getOwnPropertyNames, i = Object.getPrototypeOf, a = Object.prototype.hasOwnProperty, o = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), s = (e, i, o, s) => {
3
- if (i && typeof i == "object" || typeof i == "function") for (var c = r(i), l = 0, u = c.length, d; l < u; l++) d = c[l], !a.call(e, d) && d !== o && t(e, d, {
4
- get: ((e) => i[e]).bind(null, d),
5
- enumerable: !(s = n(i, d)) || s.enumerable
6
- });
7
- return e;
8
- }, c = (/* @__PURE__ */ ((n, r, o) => (o = n == null ? {} : e(i(n)), s(r || !n || !n.__esModule || !a.call(n, "default") ? t(o, "default", {
9
- value: n,
10
- enumerable: !0
11
- }) : o, n)))((/* @__PURE__ */ o(((e, t) => {
12
- var n = (() => {
13
- var e = globalThis.document?.currentScript?.src;
14
- return async function(t = {}) {
15
- var n = t, r = !!globalThis.window, i = !!globalThis.WorkerGlobalScope;
16
- let a = n.print, o = n.printErr;
17
- n.print = (e) => {
18
- a && a(e);
19
- }, n.printErr = (e) => {
20
- o && o(e);
21
- };
22
- var s = "./this.program", c = (e, t) => {
23
- throw t;
24
- };
25
- i && (e = self.location.href);
26
- var l = "";
27
- function u(e) {
28
- return n.locateFile ? n.locateFile(e, l) : l + e;
29
- }
30
- var d, f;
31
- if (r || i) {
32
- try {
33
- l = new URL(".", e).href;
34
- } catch {}
35
- i && (f = (e) => {
36
- var t = new XMLHttpRequest();
37
- return t.open("GET", e, !1), t.responseType = "arraybuffer", t.send(null), new Uint8Array(t.response);
38
- }), d = async (e) => {
39
- if (v(e)) return new Promise((t, n) => {
40
- var r = new XMLHttpRequest();
41
- r.open("GET", e, !0), r.responseType = "arraybuffer", r.onload = () => {
42
- if (r.status == 200 || r.status == 0 && r.response) {
43
- t(r.response);
44
- return;
45
- }
46
- n(r.status);
47
- }, r.onerror = n, r.send(null);
48
- });
49
- var t = await fetch(e, { credentials: "same-origin" });
50
- if (t.ok) return t.arrayBuffer();
51
- throw Error(t.status + " : " + t.url);
52
- };
53
- }
54
- var p = console.log.bind(console), m = console.error.bind(console), h, g = !1, _, v = (e) => e.startsWith("file://");
55
- function y() {
56
- return Zt.buffer;
57
- }
58
- function b() {
59
- if (!I?.buffer?.resizable) {
60
- var e = y();
61
- I = new Int8Array(e), N = new Int16Array(e), re = new Uint8Array(e), te = new Uint16Array(e), P = new Int32Array(e), z = new Uint32Array(e), L = new Float32Array(e), R = new Float64Array(e), F = new BigInt64Array(e), ne = new BigUint64Array(e);
62
- }
63
- }
64
- function x() {
65
- var e = n.preRun;
66
- e && (typeof e == "function" && (e = [e]), B.push(...e)), ie(B);
67
- }
68
- function S() {
69
- !n.noFSInit && !Q.initialized && Q.init(), Y.init(), nn.v(), Q.ignorePermissions = !1;
70
- }
71
- function C() {
72
- var e = n.postRun;
73
- e && (typeof e == "function" && (e = [e]), ae.push(...e)), ie(ae);
74
- }
75
- function w(e) {
76
- throw n.onAbort?.(e), e = `Aborted(${e})`, m(e), g = !0, e += ". Build with -sASSERTIONS for more info.", new WebAssembly.RuntimeError(e);
77
- }
78
- var T;
79
- function E() {
80
- return u("highs.wasm");
81
- }
82
- function ee(e) {
83
- if (f) return f(e);
84
- throw "both async and sync fetching of the wasm failed";
85
- }
86
- async function D(e) {
87
- if (!h) try {
88
- var t = await d(e);
89
- return new Uint8Array(t);
90
- } catch {}
91
- return ee(e);
92
- }
93
- async function O(e, t) {
94
- try {
95
- var n = await D(e);
96
- return await WebAssembly.instantiate(n, t);
97
- } catch (e) {
98
- m(`failed to asynchronously prepare wasm: ${e}`), w(e);
99
- }
100
- }
101
- async function k(e, t, n) {
102
- if (!e && !v(t)) try {
103
- var r = fetch(t, { credentials: "same-origin" });
104
- return await WebAssembly.instantiateStreaming(r, n);
105
- } catch (e) {
106
- m(`wasm streaming compile failed: ${e}`), m("falling back to ArrayBuffer instantiation");
107
- }
108
- return O(t, n);
109
- }
110
- function A() {
111
- return { a: en };
112
- }
113
- async function j() {
114
- function e(e) {
115
- return nn = e.exports, $t(nn), b(), nn;
116
- }
117
- function t(t) {
118
- return e(t.instance);
119
- }
120
- var r = A(), i = n.instantiateWasm;
121
- return i ? new Promise((t) => {
122
- i(r, (n) => t(e(n)));
123
- }) : (T ??= E(), t(await k(h, T, r)));
124
- }
125
- class M {
126
- name = "ExitStatus";
127
- constructor(e) {
128
- this.message = `Program terminated with exit(${e})`, this.status = e;
129
- }
130
- }
131
- var N, P, F, I, L, R, te, z, ne, re, ie = (e) => {
132
- for (; e.length > 0;) e.shift()(n);
133
- }, ae = [], B = [], V = !0, H = (e) => Jt(e), oe = () => Xt();
134
- class se {
135
- constructor(e) {
136
- this.excPtr = e, this.ptr = e - 24;
137
- }
138
- set_type(e) {
139
- z[this.ptr + 4 >> 2] = e;
140
- }
141
- get_type() {
142
- return z[this.ptr + 4 >> 2];
143
- }
144
- set_destructor(e) {
145
- z[this.ptr + 8 >> 2] = e;
146
- }
147
- get_destructor() {
148
- return z[this.ptr + 8 >> 2];
149
- }
150
- set_caught(e) {
151
- e = +!!e, I[this.ptr + 12] = e;
152
- }
153
- get_caught() {
154
- return I[this.ptr + 12] != 0;
155
- }
156
- set_rethrown(e) {
157
- e = +!!e, I[this.ptr + 13] = e;
158
- }
159
- get_rethrown() {
160
- return I[this.ptr + 13] != 0;
161
- }
162
- init(e, t) {
163
- this.set_adjusted_ptr(0), this.set_type(e), this.set_destructor(t);
164
- }
165
- set_adjusted_ptr(e) {
166
- z[this.ptr + 16 >> 2] = e;
167
- }
168
- get_adjusted_ptr() {
169
- return z[this.ptr + 16 >> 2];
170
- }
171
- }
172
- var ce = 0, le = (e, t, n) => {
173
- new se(e).init(t, n), ce++, w();
174
- }, U = () => {
175
- var e = P[$.varargs >> 2];
176
- return $.varargs += 4, e;
177
- }, W = U, G = {
178
- isAbs: (e) => e.charAt(0) === "/",
179
- splitPath: (e) => /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),
180
- normalizeArray: (e, t) => {
181
- for (var n = 0, r = e.length - 1; r >= 0; r--) {
182
- var i = e[r];
183
- i === "." ? e.splice(r, 1) : i === ".." ? (e.splice(r, 1), n++) : n && (e.splice(r, 1), n--);
184
- }
185
- if (t) for (; n; n--) e.unshift("..");
186
- return e;
187
- },
188
- normalize: (e) => {
189
- var t = G.isAbs(e), n = e.slice(-1) === "/";
190
- return e = G.normalizeArray(e.split("/").filter((e) => !!e), !t).join("/"), !e && !t && (e = "."), e && n && (e += "/"), (t ? "/" : "") + e;
191
- },
192
- dirname: (e) => {
193
- var t = G.splitPath(e), n = t[0], r = t[1];
194
- return !n && !r ? "." : (r &&= r.slice(0, -1), n + r);
195
- },
196
- basename: (e) => e && e.match(/([^\/]+|\/)\/*$/)[1],
197
- join: (...e) => G.normalize(e.join("/")),
198
- join2: (e, t) => G.normalize(e + "/" + t)
199
- }, ue = () => (e) => (crypto.getRandomValues(e), 0), de = (e) => (de = ue())(e), K = {
200
- resolve: (...e) => {
201
- for (var t = "", n = !1, r = e.length - 1; r >= -1 && !n; r--) {
202
- var i = r >= 0 ? e[r] : Q.cwd();
203
- if (typeof i != "string") throw TypeError("Arguments to path.resolve must be strings");
204
- if (!i) return "";
205
- t = i + "/" + t, n = G.isAbs(i);
206
- }
207
- return t = G.normalizeArray(t.split("/").filter((e) => !!e), !n).join("/"), (n ? "/" : "") + t || ".";
208
- },
209
- relative: (e, t) => {
210
- e = K.resolve(e).slice(1), t = K.resolve(t).slice(1);
211
- function n(e) {
212
- for (var t = 0; t < e.length && e[t] === ""; t++);
213
- for (var n = e.length - 1; n >= 0 && e[n] === ""; n--);
214
- return t > n ? [] : e.slice(t, n - t + 1);
215
- }
216
- for (var r = n(e.split("/")), i = n(t.split("/")), a = Math.min(r.length, i.length), o = a, s = 0; s < a; s++) if (r[s] !== i[s]) {
217
- o = s;
218
- break;
219
- }
220
- for (var c = [], s = o; s < r.length; s++) c.push("..");
221
- return c = c.concat(i.slice(o)), c.join("/");
222
- }
223
- }, q = globalThis.TextDecoder && new TextDecoder(), fe = (e, t, n, r) => {
224
- var i = t + n;
225
- if (r) return i;
226
- for (; e[t] && !(t >= i);) ++t;
227
- return t;
228
- }, pe = (e, t = 0, n, r) => {
229
- var i = fe(e, t, n, r);
230
- if (i - t > 16 && e.buffer && q) return q.decode(e.subarray(t, i));
231
- for (var a = ""; t < i;) {
232
- var o = e[t++];
233
- if (!(o & 128)) {
234
- a += String.fromCharCode(o);
235
- continue;
236
- }
237
- var s = e[t++] & 63;
238
- if ((o & 224) == 192) {
239
- a += String.fromCharCode((o & 31) << 6 | s);
240
- continue;
241
- }
242
- var c = e[t++] & 63;
243
- if (o = (o & 240) == 224 ? (o & 15) << 12 | s << 6 | c : (o & 7) << 18 | s << 12 | c << 6 | e[t++] & 63, o < 65536) a += String.fromCharCode(o);
244
- else {
245
- var l = o - 65536;
246
- a += String.fromCharCode(55296 | l >> 10, 56320 | l & 1023);
247
- }
248
- }
249
- return a;
250
- }, me = [], he = (e) => {
251
- for (var t = 0, n = 0; n < e.length; ++n) {
252
- var r = e.charCodeAt(n);
253
- r <= 127 ? t++ : r <= 2047 ? t += 2 : r >= 55296 && r <= 57343 ? (t += 4, ++n) : t += 3;
254
- }
255
- return t;
256
- }, ge = (e, t, n, r) => {
257
- if (!(r > 0)) return 0;
258
- for (var i = n, a = n + r - 1, o = 0; o < e.length; ++o) {
259
- var s = e.codePointAt(o);
260
- if (s <= 127) {
261
- if (n >= a) break;
262
- t[n++] = s;
263
- } else if (s <= 2047) {
264
- if (n + 1 >= a) break;
265
- t[n++] = 192 | s >> 6, t[n++] = 128 | s & 63;
266
- } else if (s <= 65535) {
267
- if (n + 2 >= a) break;
268
- t[n++] = 224 | s >> 12, t[n++] = 128 | s >> 6 & 63, t[n++] = 128 | s & 63;
269
- } else {
270
- if (n + 3 >= a) break;
271
- t[n++] = 240 | s >> 18, t[n++] = 128 | s >> 12 & 63, t[n++] = 128 | s >> 6 & 63, t[n++] = 128 | s & 63, o++;
272
- }
273
- }
274
- return t[n] = 0, n - i;
275
- }, J = (e, t, n) => {
276
- var r = n > 0 ? n : he(e) + 1, i = Array(r), a = ge(e, i, 0, i.length);
277
- return t && (i.length = a), i;
278
- }, _e = () => {
279
- if (!me.length) {
280
- var e = null;
281
- if (globalThis.window?.prompt && (e = window.prompt("Input: "), e !== null && (e += "\n")), !e) return null;
282
- me = J(e, !0);
283
- }
284
- return me.shift();
285
- }, Y = {
286
- ttys: [],
287
- init() {},
288
- shutdown() {},
289
- register(e, t) {
290
- Y.ttys[e] = {
291
- input: [],
292
- output: [],
293
- ops: t
294
- }, Q.registerDevice(e, Y.stream_ops);
295
- },
296
- stream_ops: {
297
- open(e) {
298
- var t = Y.ttys[e.node.rdev];
299
- if (!t) throw new Q.ErrnoError(43);
300
- e.tty = t, e.seekable = !1;
301
- },
302
- close(e) {
303
- e.tty.ops.fsync(e.tty);
304
- },
305
- fsync(e) {
306
- e.tty.ops.fsync(e.tty);
307
- },
308
- read(e, t, n, r, i) {
309
- if (!e.tty || !e.tty.ops.get_char) throw new Q.ErrnoError(60);
310
- for (var a = 0, o = 0; o < r; o++) {
311
- var s;
312
- try {
313
- s = e.tty.ops.get_char(e.tty);
314
- } catch {
315
- throw new Q.ErrnoError(29);
316
- }
317
- if (s === void 0 && a === 0) throw new Q.ErrnoError(6);
318
- if (s == null) break;
319
- a++, t[n + o] = s;
320
- }
321
- return a && (e.node.atime = Date.now()), a;
322
- },
323
- write(e, t, n, r, i) {
324
- if (!e.tty || !e.tty.ops.put_char) throw new Q.ErrnoError(60);
325
- try {
326
- for (var a = 0; a < r; a++) e.tty.ops.put_char(e.tty, t[n + a]);
327
- } catch {
328
- throw new Q.ErrnoError(29);
329
- }
330
- return r && (e.node.mtime = e.node.ctime = Date.now()), a;
331
- }
332
- },
333
- default_tty_ops: {
334
- get_char(e) {
335
- return _e();
336
- },
337
- put_char(e, t) {
338
- t === null || t === 10 ? (p(pe(e.output)), e.output = []) : t != 0 && e.output.push(t);
339
- },
340
- fsync(e) {
341
- e.output?.length > 0 && (p(pe(e.output)), e.output = []);
342
- },
343
- ioctl_tcgets(e) {
344
- return {
345
- c_iflag: 25856,
346
- c_oflag: 5,
347
- c_cflag: 191,
348
- c_lflag: 35387,
349
- c_cc: [
350
- 3,
351
- 28,
352
- 127,
353
- 21,
354
- 4,
355
- 0,
356
- 1,
357
- 0,
358
- 17,
359
- 19,
360
- 26,
361
- 0,
362
- 18,
363
- 15,
364
- 23,
365
- 22,
366
- 0,
367
- 0,
368
- 0,
369
- 0,
370
- 0,
371
- 0,
372
- 0,
373
- 0,
374
- 0,
375
- 0,
376
- 0,
377
- 0,
378
- 0,
379
- 0,
380
- 0,
381
- 0
382
- ]
383
- };
384
- },
385
- ioctl_tcsets(e, t, n) {
386
- return 0;
387
- },
388
- ioctl_tiocgwinsz(e) {
389
- return [24, 80];
390
- }
391
- },
392
- default_tty1_ops: {
393
- put_char(e, t) {
394
- t === null || t === 10 ? (m(pe(e.output)), e.output = []) : t != 0 && e.output.push(t);
395
- },
396
- fsync(e) {
397
- e.output?.length > 0 && (m(pe(e.output)), e.output = []);
398
- }
399
- }
400
- }, ve = (e) => {
401
- w();
402
- }, X = {
403
- ops_table: null,
404
- mount(e) {
405
- return X.createNode(null, "/", 16895, 0);
406
- },
407
- createNode(e, t, n, r) {
408
- if (Q.isBlkdev(n) || Q.isFIFO(n)) throw new Q.ErrnoError(63);
409
- X.ops_table ||= {
410
- dir: {
411
- node: {
412
- getattr: X.node_ops.getattr,
413
- setattr: X.node_ops.setattr,
414
- lookup: X.node_ops.lookup,
415
- mknod: X.node_ops.mknod,
416
- rename: X.node_ops.rename,
417
- unlink: X.node_ops.unlink,
418
- rmdir: X.node_ops.rmdir,
419
- readdir: X.node_ops.readdir,
420
- symlink: X.node_ops.symlink
421
- },
422
- stream: { llseek: X.stream_ops.llseek }
423
- },
424
- file: {
425
- node: {
426
- getattr: X.node_ops.getattr,
427
- setattr: X.node_ops.setattr
428
- },
429
- stream: {
430
- llseek: X.stream_ops.llseek,
431
- read: X.stream_ops.read,
432
- write: X.stream_ops.write,
433
- mmap: X.stream_ops.mmap,
434
- msync: X.stream_ops.msync
435
- }
436
- },
437
- link: {
438
- node: {
439
- getattr: X.node_ops.getattr,
440
- setattr: X.node_ops.setattr,
441
- readlink: X.node_ops.readlink
442
- },
443
- stream: {}
444
- },
445
- chrdev: {
446
- node: {
447
- getattr: X.node_ops.getattr,
448
- setattr: X.node_ops.setattr
449
- },
450
- stream: Q.chrdev_stream_ops
451
- }
452
- };
453
- var i = Q.createNode(e, t, n, r);
454
- return Q.isDir(i.mode) ? (i.node_ops = X.ops_table.dir.node, i.stream_ops = X.ops_table.dir.stream, i.contents = {}) : Q.isFile(i.mode) ? (i.node_ops = X.ops_table.file.node, i.stream_ops = X.ops_table.file.stream, i.usedBytes = 0, i.contents = X.emptyFileContents ??= /* @__PURE__ */ new Uint8Array()) : Q.isLink(i.mode) ? (i.node_ops = X.ops_table.link.node, i.stream_ops = X.ops_table.link.stream) : Q.isChrdev(i.mode) && (i.node_ops = X.ops_table.chrdev.node, i.stream_ops = X.ops_table.chrdev.stream), i.atime = i.mtime = i.ctime = Date.now(), e && (e.contents[t] = i, e.atime = e.mtime = e.ctime = i.atime), i;
455
- },
456
- getFileDataAsTypedArray(e) {
457
- return e.contents.subarray(0, e.usedBytes);
458
- },
459
- expandFileStorage(e, t) {
460
- var n = e.contents.length;
461
- if (!(n >= t)) {
462
- t = Math.max(t, n * (n < 1048576 ? 2 : 1.125) >>> 0), n && (t = Math.max(t, 256));
463
- var r = X.getFileDataAsTypedArray(e);
464
- e.contents = new Uint8Array(t), e.contents.set(r);
465
- }
466
- },
467
- resizeFileStorage(e, t) {
468
- if (e.usedBytes != t) {
469
- var n = e.contents;
470
- e.contents = new Uint8Array(t), e.contents.set(n.subarray(0, Math.min(t, e.usedBytes))), e.usedBytes = t;
471
- }
472
- },
473
- node_ops: {
474
- getattr(e) {
475
- var t = {};
476
- return t.dev = Q.isChrdev(e.mode) ? e.id : 1, t.ino = e.id, t.mode = e.mode, t.nlink = 1, t.uid = 0, t.gid = 0, t.rdev = e.rdev, t.size = Q.isDir(e.mode) ? 4096 : Q.isFile(e.mode) ? e.usedBytes : Q.isLink(e.mode) ? e.link.length : 0, t.atime = new Date(e.atime), t.mtime = new Date(e.mtime), t.ctime = new Date(e.ctime), t.blksize = 4096, t.blocks = Math.ceil(t.size / t.blksize), t;
477
- },
478
- setattr(e, t) {
479
- for (let n of [
480
- "mode",
481
- "atime",
482
- "mtime",
483
- "ctime"
484
- ]) t[n] != null && (e[n] = t[n]);
485
- t.size !== void 0 && X.resizeFileStorage(e, t.size);
486
- },
487
- lookup(e, t) {
488
- throw X.doesNotExistError || (X.doesNotExistError = new Q.ErrnoError(44), X.doesNotExistError.stack = "<generic error, no stack>"), X.doesNotExistError;
489
- },
490
- mknod(e, t, n, r) {
491
- return X.createNode(e, t, n, r);
492
- },
493
- rename(e, t, n) {
494
- var r;
495
- try {
496
- r = Q.lookupNode(t, n);
497
- } catch {}
498
- if (r) {
499
- if (Q.isDir(e.mode)) for (var i in r.contents) throw new Q.ErrnoError(55);
500
- Q.hashRemoveNode(r);
501
- }
502
- delete e.parent.contents[e.name], t.contents[n] = e, e.name = n, t.ctime = t.mtime = e.parent.ctime = e.parent.mtime = Date.now();
503
- },
504
- unlink(e, t) {
505
- delete e.contents[t], e.ctime = e.mtime = Date.now();
506
- },
507
- rmdir(e, t) {
508
- for (var n in Q.lookupNode(e, t).contents) throw new Q.ErrnoError(55);
509
- delete e.contents[t], e.ctime = e.mtime = Date.now();
510
- },
511
- readdir(e) {
512
- return [
513
- ".",
514
- "..",
515
- ...Object.keys(e.contents)
516
- ];
517
- },
518
- symlink(e, t, n) {
519
- var r = X.createNode(e, t, 41471, 0);
520
- return r.link = n, r;
521
- },
522
- readlink(e) {
523
- if (!Q.isLink(e.mode)) throw new Q.ErrnoError(28);
524
- return e.link;
525
- }
526
- },
527
- stream_ops: {
528
- read(e, t, n, r, i) {
529
- var a = e.node.contents;
530
- if (i >= e.node.usedBytes) return 0;
531
- var o = Math.min(e.node.usedBytes - i, r);
532
- return t.set(a.subarray(i, i + o), n), o;
533
- },
534
- write(e, t, n, r, i, a) {
535
- if (t.buffer === I.buffer && (a = !1), !r) return 0;
536
- var o = e.node;
537
- return o.mtime = o.ctime = Date.now(), a ? (o.contents = t.subarray(n, n + r), o.usedBytes = r) : o.usedBytes === 0 && i === 0 ? (o.contents = t.slice(n, n + r), o.usedBytes = r) : (X.expandFileStorage(o, i + r), o.contents.set(t.subarray(n, n + r), i), o.usedBytes = Math.max(o.usedBytes, i + r)), r;
538
- },
539
- llseek(e, t, n) {
540
- var r = t;
541
- if (n === 1 ? r += e.position : n === 2 && Q.isFile(e.node.mode) && (r += e.node.usedBytes), r < 0) throw new Q.ErrnoError(28);
542
- return r;
543
- },
544
- mmap(e, t, n, r, i) {
545
- if (!Q.isFile(e.node.mode)) throw new Q.ErrnoError(43);
546
- var a, o, s = e.node.contents;
547
- if (!(i & 2) && s.buffer === I.buffer) o = !1, a = s.byteOffset;
548
- else {
549
- if (o = !0, a = ve(t), !a) throw new Q.ErrnoError(48);
550
- s && ((n > 0 || n + t < s.length) && (s = s.subarray ? s.subarray(n, n + t) : Array.prototype.slice.call(s, n, n + t)), I.set(s, a));
551
- }
552
- return {
553
- ptr: a,
554
- allocated: o
555
- };
556
- },
557
- msync(e, t, n, r, i) {
558
- return X.stream_ops.write(e, t, 0, r, n, !1), 0;
559
- }
560
- }
561
- }, ye = (e) => {
562
- if (typeof e != "string") return e;
563
- var t = {
564
- r: 0,
565
- "r+": 2,
566
- w: 577,
567
- "w+": 578,
568
- a: 1089,
569
- "a+": 1090
570
- }[e];
571
- if (t === void 0) throw Error(`Unknown file open mode: ${e}`);
572
- return t;
573
- }, be = (e) => (typeof e == "string" && (e = J(e, !0)), e.subarray || (e = new Uint8Array(e)), e), xe = (e, t) => {
574
- var n = 0;
575
- return e && (n |= 365), t && (n |= 146), n;
576
- }, Se = async (e) => {
577
- var t = await d(e);
578
- return new Uint8Array(t);
579
- }, Ce = (...e) => Q.createDataFile(...e), we = (e) => e, Z = null, Te = async () => Z, Ee = 0, De = null, Oe = (e) => {
580
- Ee--, n.monitorRunDependencies?.(Ee), Ee || De();
581
- }, ke = (e) => {
582
- Ee || (Z = new Promise((e) => De = e)), Ee++, n.monitorRunDependencies?.(Ee);
583
- }, Ae = [], je = async (e, t) => {
584
- typeof Browser < "u" && Browser.init();
585
- for (var n of Ae) if (n.canHandle(t)) return n.handle(e, t);
586
- return e;
587
- }, Me = async (e, t, n, r, i, a, o, s) => {
588
- var c = t ? K.resolve(G.join2(e, t)) : e, l = we(`cp ${c}`);
589
- ke(l);
590
- try {
591
- var u = n;
592
- typeof n == "string" && (u = await Se(n)), u = await je(u, c), s?.(), a || Ce(e, t, u, r, i, o);
593
- } finally {
594
- Oe(l);
595
- }
596
- }, Ne = (e, t, n, r, i, a, o, s, c, l) => {
597
- Me(e, t, n, r, i, s, c, l).then(a).catch(o);
598
- }, Q = {
599
- root: null,
600
- mounts: [],
601
- devices: {},
602
- streams: [],
603
- nextInode: 1,
604
- nameTable: null,
605
- currentPath: "/",
606
- initialized: !1,
607
- ignorePermissions: !0,
608
- filesystems: null,
609
- syncFSRequests: 0,
610
- ErrnoError: class {
611
- name = "ErrnoError";
612
- constructor(e) {
613
- this.errno = e;
614
- }
615
- },
616
- FSStream: class {
617
- shared = {};
618
- get object() {
619
- return this.node;
620
- }
621
- set object(e) {
622
- this.node = e;
623
- }
624
- get isRead() {
625
- return (this.flags & 2097155) != 1;
626
- }
627
- get isWrite() {
628
- return !!(this.flags & 2097155);
629
- }
630
- get isAppend() {
631
- return this.flags & 1024;
632
- }
633
- get flags() {
634
- return this.shared.flags;
635
- }
636
- set flags(e) {
637
- this.shared.flags = e;
638
- }
639
- get position() {
640
- return this.shared.position;
641
- }
642
- set position(e) {
643
- this.shared.position = e;
644
- }
645
- },
646
- FSNode: class {
647
- node_ops = {};
648
- stream_ops = {};
649
- readMode = 365;
650
- writeMode = 146;
651
- mounted = null;
652
- constructor(e, t, n, r) {
653
- e ||= this, this.parent = e, this.mount = e.mount, this.id = Q.nextInode++, this.name = t, this.mode = n, this.rdev = r, this.atime = this.mtime = this.ctime = Date.now();
654
- }
655
- get read() {
656
- return (this.mode & this.readMode) === this.readMode;
657
- }
658
- set read(e) {
659
- e ? this.mode |= this.readMode : this.mode &= ~this.readMode;
660
- }
661
- get write() {
662
- return (this.mode & this.writeMode) === this.writeMode;
663
- }
664
- set write(e) {
665
- e ? this.mode |= this.writeMode : this.mode &= ~this.writeMode;
666
- }
667
- get isFolder() {
668
- return Q.isDir(this.mode);
669
- }
670
- get isDevice() {
671
- return Q.isChrdev(this.mode);
672
- }
673
- addListener(e, t = !1) {
674
- var n = {
675
- cb: e,
676
- exclusive: t
677
- }, r = this.listeners ??= /* @__PURE__ */ new Set();
678
- return r.add(n), {
679
- listeners: r,
680
- entry: n
681
- };
682
- }
683
- notifyListeners(e) {
684
- if (this.listeners) {
685
- var t;
686
- for (var n of this.listeners) n.exclusive ? (t ||= []).push(n) : n.cb(e);
687
- if (t) {
688
- var r = (this.exclTurn || 0) % t.length;
689
- this.exclTurn = r + 1, t[r].cb(e);
690
- }
691
- }
692
- }
693
- },
694
- lookupPath(e, t = {}) {
695
- if (!e) throw new Q.ErrnoError(44);
696
- t.follow_mount ??= !0, G.isAbs(e) || (e = Q.cwd() + "/" + e);
697
- linkloop: for (var n = 0; n < 40; n++) {
698
- for (var r = e.split("/").filter((e) => !!e), i = Q.root, a = "/", o = 0; o < r.length; o++) {
699
- var s = o === r.length - 1;
700
- if (s && t.parent) break;
701
- if (r[o] !== ".") {
702
- if (r[o] === "..") {
703
- if (a = G.dirname(a), Q.isRoot(i)) {
704
- e = a + "/" + r.slice(o + 1).join("/"), n--;
705
- continue linkloop;
706
- }
707
- i = i.parent;
708
- continue;
709
- }
710
- a = G.join2(a, r[o]);
711
- try {
712
- i = Q.lookupNode(i, r[o]);
713
- } catch (e) {
714
- if (e?.errno === 44 && s && t.noent_okay) return { path: a };
715
- throw e;
716
- }
717
- if (Q.isMountpoint(i) && (!s || t.follow_mount) && (i = i.mounted.root), Q.isLink(i.mode) && (!s || t.follow)) {
718
- if (!i.node_ops.readlink) throw new Q.ErrnoError(52);
719
- var c = i.node_ops.readlink(i);
720
- G.isAbs(c) || (c = G.dirname(a) + "/" + c), e = c + "/" + r.slice(o + 1).join("/");
721
- continue linkloop;
722
- }
723
- }
724
- }
725
- return {
726
- path: a,
727
- node: i
728
- };
729
- }
730
- throw new Q.ErrnoError(32);
731
- },
732
- getPath(e) {
733
- for (var t;;) {
734
- if (Q.isRoot(e)) {
735
- var n = e.mount.mountpoint;
736
- return t ? n[n.length - 1] === "/" ? n + t : `${n}/${t}` : n;
737
- }
738
- t = t ? `${e.name}/${t}` : e.name, e = e.parent;
739
- }
740
- },
741
- hashName(e, t) {
742
- for (var n = 0, r = 0; r < t.length; r++) n = (n << 5) - n + t.charCodeAt(r) | 0;
743
- return (e + n >>> 0) % Q.nameTable.length;
744
- },
745
- hashAddNode(e) {
746
- var t = Q.hashName(e.parent.id, e.name);
747
- e.name_next = Q.nameTable[t], Q.nameTable[t] = e;
748
- },
749
- hashRemoveNode(e) {
750
- var t = Q.hashName(e.parent.id, e.name);
751
- if (Q.nameTable[t] === e) Q.nameTable[t] = e.name_next;
752
- else for (var n = Q.nameTable[t]; n;) {
753
- if (n.name_next === e) {
754
- n.name_next = e.name_next;
755
- break;
756
- }
757
- n = n.name_next;
758
- }
759
- },
760
- lookupNode(e, t) {
761
- var n = Q.mayLookup(e);
762
- if (n) throw new Q.ErrnoError(n);
763
- for (var r = Q.hashName(e.id, t), i = Q.nameTable[r]; i; i = i.name_next) {
764
- var a = i.name;
765
- if (i.parent.id === e.id && a === t) return i;
766
- }
767
- return Q.lookup(e, t);
768
- },
769
- createNode(e, t, n, r) {
770
- var i = new Q.FSNode(e, t, n, r);
771
- return Q.hashAddNode(i), i;
772
- },
773
- destroyNode(e) {
774
- Q.hashRemoveNode(e);
775
- },
776
- isRoot(e) {
777
- return e === e.parent;
778
- },
779
- isMountpoint(e) {
780
- return !!e.mounted;
781
- },
782
- isFile(e) {
783
- return (e & 61440) == 32768;
784
- },
785
- isDir(e) {
786
- return (e & 61440) == 16384;
787
- },
788
- isLink(e) {
789
- return (e & 61440) == 40960;
790
- },
791
- isChrdev(e) {
792
- return (e & 61440) == 8192;
793
- },
794
- isBlkdev(e) {
795
- return (e & 61440) == 24576;
796
- },
797
- isFIFO(e) {
798
- return (e & 61440) == 4096;
799
- },
800
- isSocket(e) {
801
- return (e & 49152) == 49152;
802
- },
803
- flagsToPermissionString(e) {
804
- var t = [
805
- "r",
806
- "w",
807
- "rw"
808
- ][e & 3];
809
- return e & 512 && (t += "w"), t;
810
- },
811
- nodePermissions(e, t) {
812
- return Q.ignorePermissions ? 0 : t.includes("r") && !(e.mode & 292) || t.includes("w") && !(e.mode & 146) || t.includes("x") && !(e.mode & 73) ? 2 : 0;
813
- },
814
- mayLookup(e) {
815
- return Q.isDir(e.mode) ? Q.nodePermissions(e, "x") || (e.node_ops.lookup ? 0 : 2) : 54;
816
- },
817
- mayCreate(e, t) {
818
- if (!Q.isDir(e.mode)) return 54;
819
- try {
820
- return Q.lookupNode(e, t), 20;
821
- } catch {}
822
- return Q.nodePermissions(e, "wx");
823
- },
824
- mayDelete(e, t, n) {
825
- var r;
826
- try {
827
- r = Q.lookupNode(e, t);
828
- } catch (e) {
829
- return e.errno;
830
- }
831
- var i = Q.nodePermissions(e, "wx");
832
- if (i) return i;
833
- if (n) {
834
- if (!Q.isDir(r.mode)) return 54;
835
- if (Q.isRoot(r) || Q.getPath(r) === Q.cwd()) return 10;
836
- } else if (Q.isDir(r.mode)) return 31;
837
- return 0;
838
- },
839
- mayOpen(e, t) {
840
- if (!e) return 44;
841
- if (Q.isLink(e.mode)) return 32;
842
- var n = Q.flagsToPermissionString(t);
843
- return Q.isDir(e.mode) && (n !== "r" || t & 576) ? 31 : Q.nodePermissions(e, n);
844
- },
845
- checkOpExists(e, t) {
846
- if (!e) throw new Q.ErrnoError(t);
847
- return e;
848
- },
849
- MAX_OPEN_FDS: 4096,
850
- nextfd() {
851
- for (var e = 0; e <= Q.MAX_OPEN_FDS; e++) if (!Q.streams[e]) return e;
852
- throw new Q.ErrnoError(33);
853
- },
854
- getStreamChecked(e) {
855
- var t = Q.getStream(e);
856
- if (!t) throw new Q.ErrnoError(8);
857
- return t;
858
- },
859
- getStream: (e) => Q.streams[e],
860
- createStream(e, t = -1) {
861
- return e = Object.assign(new Q.FSStream(), e), t == -1 && (t = Q.nextfd()), e.fd = t, Q.streams[t] = e, e;
862
- },
863
- closeStream(e) {
864
- Q.streams[e] = null;
865
- },
866
- dupStream(e, t = -1) {
867
- var n = Q.createStream(e, t);
868
- return n.stream_ops?.dup?.(n), n;
869
- },
870
- doSetAttr(e, t, n) {
871
- var r = e?.stream_ops.setattr, i = r ? e : t;
872
- r ??= t.node_ops.setattr, Q.checkOpExists(r, 63);
873
- try {
874
- r(i, n);
875
- } catch (e) {
876
- throw e instanceof RangeError ? new Q.ErrnoError(22) : e;
877
- }
878
- },
879
- chrdev_stream_ops: {
880
- open(e) {
881
- e.stream_ops = Q.getDevice(e.node.rdev).stream_ops, e.stream_ops.open?.(e);
882
- },
883
- llseek() {
884
- throw new Q.ErrnoError(70);
885
- }
886
- },
887
- major: (e) => e >> 8,
888
- minor: (e) => e & 255,
889
- makedev: (e, t) => e << 8 | t,
890
- registerDevice(e, t) {
891
- Q.devices[e] = { stream_ops: t };
892
- },
893
- getDevice: (e) => Q.devices[e],
894
- getMounts(e) {
895
- for (var t = [], n = [e]; n.length;) {
896
- var r = n.pop();
897
- t.push(r), n.push(...r.mounts);
898
- }
899
- return t;
900
- },
901
- syncfs(e, t) {
902
- typeof e == "function" && (t = e, e = !1), Q.syncFSRequests++, Q.syncFSRequests > 1 && m(`warning: ${Q.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);
903
- var n = Q.getMounts(Q.root.mount), r = 0;
904
- function i(e) {
905
- return Q.syncFSRequests--, t(e);
906
- }
907
- function a(e) {
908
- if (e) return a.errored ? void 0 : (a.errored = !0, i(e));
909
- ++r >= n.length && i(null);
910
- }
911
- for (var o of n) o.type.syncfs ? o.type.syncfs(o, e, a) : a(null);
912
- },
913
- mount(e, t, n) {
914
- var r = n === "/", i = !n, a;
915
- if (r && Q.root) throw new Q.ErrnoError(10);
916
- if (!r && !i) {
917
- var o = Q.lookupPath(n, { follow_mount: !1 });
918
- if (n = o.path, a = o.node, Q.isMountpoint(a)) throw new Q.ErrnoError(10);
919
- if (!Q.isDir(a.mode)) throw new Q.ErrnoError(54);
920
- }
921
- var s = {
922
- type: e,
923
- opts: t,
924
- mountpoint: n,
925
- mounts: []
926
- }, c = e.mount(s);
927
- return c.mount = s, s.root = c, r ? Q.root = c : a && (a.mounted = s, a.mount && a.mount.mounts.push(s)), c;
928
- },
929
- unmount(e) {
930
- var t = Q.lookupPath(e, { follow_mount: !1 });
931
- if (!Q.isMountpoint(t.node)) throw new Q.ErrnoError(28);
932
- var n = t.node, r = n.mounted, i = Q.getMounts(r);
933
- for (var [a, o] of Object.entries(Q.nameTable)) for (; o;) {
934
- var s = o.name_next;
935
- i.includes(o.mount) && Q.destroyNode(o), o = s;
936
- }
937
- n.mounted = null;
938
- var c = n.mount.mounts.indexOf(r);
939
- n.mount.mounts.splice(c, 1);
940
- },
941
- lookup(e, t) {
942
- return e.node_ops.lookup(e, t);
943
- },
944
- mknod(e, t, n) {
945
- var r = Q.lookupPath(e, { parent: !0 }).node, i = G.basename(e);
946
- if (!i) throw new Q.ErrnoError(28);
947
- if (i === "." || i === "..") throw new Q.ErrnoError(20);
948
- var a = Q.mayCreate(r, i);
949
- if (a) throw new Q.ErrnoError(a);
950
- if (!r.node_ops.mknod) throw new Q.ErrnoError(63);
951
- return r.node_ops.mknod(r, i, t, n);
952
- },
953
- statfs(e) {
954
- return Q.statfsNode(Q.lookupPath(e, { follow: !0 }).node);
955
- },
956
- statfsStream(e) {
957
- return Q.statfsNode(e.node);
958
- },
959
- statfsNode(e) {
960
- var t = {
961
- bsize: 4096,
962
- frsize: 4096,
963
- blocks: 1e6,
964
- bfree: 5e5,
965
- bavail: 5e5,
966
- files: Q.nextInode,
967
- ffree: Q.nextInode - 1,
968
- fsid: 42,
969
- flags: 2,
970
- namelen: 255
971
- };
972
- return e.node_ops.statfs && Object.assign(t, e.node_ops.statfs(e.mount.opts.root)), t;
973
- },
974
- create(e, t = 438) {
975
- return t &= 4095, t |= 32768, Q.mknod(e, t, 0);
976
- },
977
- mkdir(e, t = 511) {
978
- return t &= 1023, t |= 16384, Q.mknod(e, t, 0);
979
- },
980
- mkdirTree(e, t) {
981
- var n = e.split("/"), r = "";
982
- for (var i of n) if (i) {
983
- (r || G.isAbs(e)) && (r += "/"), r += i;
984
- try {
985
- Q.mkdir(r, t);
986
- } catch (e) {
987
- if (e.errno != 20) throw e;
988
- }
989
- }
990
- },
991
- mkdev(e, t, n) {
992
- return n === void 0 && (n = t, t = 438), t |= 8192, Q.mknod(e, t, n);
993
- },
994
- symlink(e, t) {
995
- if (!K.resolve(e)) throw new Q.ErrnoError(44);
996
- var n = Q.lookupPath(t, { parent: !0 }).node;
997
- if (!n) throw new Q.ErrnoError(44);
998
- var r = G.basename(t), i = Q.mayCreate(n, r);
999
- if (i) throw new Q.ErrnoError(i);
1000
- if (!n.node_ops.symlink) throw new Q.ErrnoError(63);
1001
- return n.node_ops.symlink(n, r, e);
1002
- },
1003
- link(e, t, n) {
1004
- var r = Q.lookupPath(t, { parent: !0 }).node;
1005
- if (!r) throw new Q.ErrnoError(44);
1006
- var i = G.basename(t), a = Q.mayCreate(r, i);
1007
- if (a) throw new Q.ErrnoError(a);
1008
- if (!r.node_ops.link) throw new Q.ErrnoError(34);
1009
- return r.node_ops.link(r, i, e, n);
1010
- },
1011
- rename(e, t) {
1012
- var n = G.dirname(e), r = G.dirname(t), i = G.basename(e), a = G.basename(t), o = Q.lookupPath(e, { parent: !0 }), s = o.node, c;
1013
- if (o = Q.lookupPath(t, { parent: !0 }), c = o.node, !s || !c) throw new Q.ErrnoError(44);
1014
- if (s.mount !== c.mount) throw new Q.ErrnoError(75);
1015
- var l = Q.lookupNode(s, i), u = K.relative(e, r);
1016
- if (u.charAt(0) !== ".") throw new Q.ErrnoError(28);
1017
- if (u = K.relative(t, n), u.charAt(0) !== ".") throw new Q.ErrnoError(55);
1018
- var d;
1019
- try {
1020
- d = Q.lookupNode(c, a);
1021
- } catch {}
1022
- if (l !== d) {
1023
- var f = Q.isDir(l.mode), p = Q.mayDelete(s, i, f);
1024
- if (p || (p = d ? Q.mayDelete(c, a, f) : Q.mayCreate(c, a), p)) throw new Q.ErrnoError(p);
1025
- if (!s.node_ops.rename) throw new Q.ErrnoError(63);
1026
- if (Q.isMountpoint(l) || d && Q.isMountpoint(d)) throw new Q.ErrnoError(10);
1027
- if (c !== s && (p = Q.nodePermissions(s, "w"), p)) throw new Q.ErrnoError(p);
1028
- Q.hashRemoveNode(l);
1029
- try {
1030
- s.node_ops.rename(l, c, a), l.parent = c;
1031
- } catch (e) {
1032
- throw e;
1033
- } finally {
1034
- Q.hashAddNode(l);
1035
- }
1036
- }
1037
- },
1038
- rmdir(e) {
1039
- var t = Q.lookupPath(e, { parent: !0 }).node, n = G.basename(e), r = Q.lookupNode(t, n), i = Q.mayDelete(t, n, !0);
1040
- if (i) throw new Q.ErrnoError(i);
1041
- if (!t.node_ops.rmdir) throw new Q.ErrnoError(63);
1042
- if (Q.isMountpoint(r)) throw new Q.ErrnoError(10);
1043
- t.node_ops.rmdir(t, n), Q.destroyNode(r);
1044
- },
1045
- readdir(e) {
1046
- var t = Q.lookupPath(e, { follow: !0 }).node;
1047
- return Q.checkOpExists(t.node_ops.readdir, 54)(t);
1048
- },
1049
- unlink(e) {
1050
- var t = Q.lookupPath(e, { parent: !0 }).node;
1051
- if (!t) throw new Q.ErrnoError(44);
1052
- var n = G.basename(e), r = Q.lookupNode(t, n), i = Q.mayDelete(t, n, !1);
1053
- if (i) throw new Q.ErrnoError(i);
1054
- if (!t.node_ops.unlink) throw new Q.ErrnoError(63);
1055
- if (Q.isMountpoint(r)) throw new Q.ErrnoError(10);
1056
- t.node_ops.unlink(t, n), Q.destroyNode(r);
1057
- },
1058
- readlink(e) {
1059
- var t = Q.lookupPath(e).node;
1060
- if (!t) throw new Q.ErrnoError(44);
1061
- if (!t.node_ops.readlink) throw new Q.ErrnoError(28);
1062
- return t.node_ops.readlink(t);
1063
- },
1064
- stat(e, t) {
1065
- var n = Q.lookupPath(e, { follow: !t }).node;
1066
- return Q.checkOpExists(n.node_ops.getattr, 63)(n);
1067
- },
1068
- fstat(e) {
1069
- var t = Q.getStreamChecked(e), n = t.node, r = t.stream_ops.getattr, i = r ? t : n;
1070
- return r ??= n.node_ops.getattr, Q.checkOpExists(r, 63), r(i);
1071
- },
1072
- lstat(e) {
1073
- return Q.stat(e, !0);
1074
- },
1075
- doChmod(e, t, n, r) {
1076
- Q.doSetAttr(e, t, {
1077
- mode: n & 4095 | t.mode & -4096,
1078
- ctime: Date.now(),
1079
- dontFollow: r
1080
- });
1081
- },
1082
- chmod(e, t, n) {
1083
- var r = typeof e == "string" ? Q.lookupPath(e, { follow: !n }).node : e;
1084
- Q.doChmod(null, r, t, n);
1085
- },
1086
- lchmod(e, t) {
1087
- Q.chmod(e, t, !0);
1088
- },
1089
- fchmod(e, t) {
1090
- var n = Q.getStreamChecked(e);
1091
- Q.doChmod(n, n.node, t, !1);
1092
- },
1093
- doChown(e, t, n) {
1094
- Q.doSetAttr(e, t, {
1095
- timestamp: Date.now(),
1096
- dontFollow: n
1097
- });
1098
- },
1099
- chown(e, t, n, r) {
1100
- var i = typeof e == "string" ? Q.lookupPath(e, { follow: !r }).node : e;
1101
- Q.doChown(null, i, r);
1102
- },
1103
- lchown(e, t, n) {
1104
- Q.chown(e, t, n, !0);
1105
- },
1106
- fchown(e, t, n) {
1107
- var r = Q.getStreamChecked(e);
1108
- Q.doChown(r, r.node, !1);
1109
- },
1110
- doTruncate(e, t, n) {
1111
- if (Q.isDir(t.mode)) throw new Q.ErrnoError(31);
1112
- if (!Q.isFile(t.mode)) throw new Q.ErrnoError(28);
1113
- var r = Q.nodePermissions(t, "w");
1114
- if (r) throw new Q.ErrnoError(r);
1115
- Q.doSetAttr(e, t, {
1116
- size: n,
1117
- timestamp: Date.now()
1118
- });
1119
- },
1120
- truncate(e, t) {
1121
- if (t < 0) throw new Q.ErrnoError(28);
1122
- var n = typeof e == "string" ? Q.lookupPath(e, { follow: !0 }).node : e;
1123
- Q.doTruncate(null, n, t);
1124
- },
1125
- ftruncate(e, t) {
1126
- var n = Q.getStreamChecked(e);
1127
- if (t < 0 || !(n.flags & 2097155)) throw new Q.ErrnoError(28);
1128
- Q.doTruncate(n, n.node, t);
1129
- },
1130
- utime(e, t, n, r) {
1131
- var i = Q.lookupPath(e, { follow: !r });
1132
- Q.doSetAttr(null, i.node, {
1133
- atime: t,
1134
- mtime: n,
1135
- dontFollow: r
1136
- });
1137
- },
1138
- open(e, t, n = 438) {
1139
- if (e === "") throw new Q.ErrnoError(44);
1140
- t = ye(t), n = t & 64 ? n & 4095 | 32768 : 0;
1141
- var r, i;
1142
- if (typeof e == "object") r = e;
1143
- else {
1144
- i = e.endsWith("/");
1145
- var a = Q.lookupPath(e, {
1146
- follow: !(t & 131072),
1147
- noent_okay: !0
1148
- });
1149
- r = a.node, e = a.path;
1150
- }
1151
- var o = !1;
1152
- if (t & 64) {
1153
- if (r) {
1154
- if (t & 128) throw new Q.ErrnoError(20);
1155
- } else if (i) throw new Q.ErrnoError(31);
1156
- else r = Q.mknod(e, n | 511, 0), o = !0;
1157
- }
1158
- if (!r) throw new Q.ErrnoError(44);
1159
- if (Q.isChrdev(r.mode) && (t &= -513), t & 65536 && !Q.isDir(r.mode)) throw new Q.ErrnoError(54);
1160
- if (!o) {
1161
- var s = Q.mayOpen(r, t);
1162
- if (s) throw new Q.ErrnoError(s);
1163
- }
1164
- t & 512 && !o && Q.truncate(r, 0), t &= -131713;
1165
- var c = Q.createStream({
1166
- node: r,
1167
- path: Q.getPath(r),
1168
- flags: t,
1169
- seekable: !0,
1170
- position: 0,
1171
- stream_ops: r.stream_ops,
1172
- ungotten: [],
1173
- error: !1
1174
- });
1175
- return c.stream_ops.open && c.stream_ops.open(c), o && Q.chmod(r, n & 511), c;
1176
- },
1177
- close(e) {
1178
- if (Q.isClosed(e)) throw new Q.ErrnoError(8);
1179
- e.getdents &&= null, e.node?.notifyListeners(32);
1180
- try {
1181
- e.stream_ops.close && e.stream_ops.close(e);
1182
- } catch (e) {
1183
- throw e;
1184
- } finally {
1185
- Q.closeStream(e.fd);
1186
- }
1187
- e.fd = null;
1188
- },
1189
- isClosed(e) {
1190
- return e.fd === null;
1191
- },
1192
- llseek(e, t, n) {
1193
- if (Q.isClosed(e)) throw new Q.ErrnoError(8);
1194
- if (!e.seekable || !e.stream_ops.llseek) throw new Q.ErrnoError(70);
1195
- if (n != 0 && n != 1 && n != 2) throw new Q.ErrnoError(28);
1196
- return e.position = e.stream_ops.llseek(e, t, n), e.ungotten = [], e.position;
1197
- },
1198
- read(e, t, n, r, i) {
1199
- if (r < 0 || i < 0) throw new Q.ErrnoError(28);
1200
- if (Q.isClosed(e) || (e.flags & 2097155) == 1) throw new Q.ErrnoError(8);
1201
- if (Q.isDir(e.node.mode)) throw new Q.ErrnoError(31);
1202
- if (!e.stream_ops.read) throw new Q.ErrnoError(28);
1203
- var a = i !== void 0;
1204
- if (!a) i = e.position;
1205
- else if (!e.seekable) throw new Q.ErrnoError(70);
1206
- var o = e.stream_ops.read(e, t, n, r, i);
1207
- return a || (e.position += o), o;
1208
- },
1209
- write(e, t, n, r, i, a) {
1210
- if (r < 0 || i < 0) throw new Q.ErrnoError(28);
1211
- if (Q.isClosed(e) || !(e.flags & 2097155)) throw new Q.ErrnoError(8);
1212
- if (Q.isDir(e.node.mode)) throw new Q.ErrnoError(31);
1213
- if (!e.stream_ops.write) throw new Q.ErrnoError(28);
1214
- e.seekable && e.flags & 1024 && Q.llseek(e, 0, 2);
1215
- var o = i !== void 0;
1216
- if (!o) i = e.position;
1217
- else if (!e.seekable) throw new Q.ErrnoError(70);
1218
- var s = e.stream_ops.write(e, t, n, r, i, a);
1219
- return o || (e.position += s), s;
1220
- },
1221
- mmap(e, t, n, r, i) {
1222
- if (r & 2 && !(i & 2) && (e.flags & 2097155) != 2 || (e.flags & 2097155) == 1) throw new Q.ErrnoError(2);
1223
- if (!e.stream_ops.mmap) throw new Q.ErrnoError(43);
1224
- if (!t) throw new Q.ErrnoError(28);
1225
- return e.stream_ops.mmap(e, t, n, r, i);
1226
- },
1227
- msync(e, t, n, r, i) {
1228
- return e.stream_ops.msync ? e.stream_ops.msync(e, t, n, r, i) : 0;
1229
- },
1230
- ioctl(e, t, n) {
1231
- if (!e.stream_ops.ioctl) throw new Q.ErrnoError(59);
1232
- return e.stream_ops.ioctl(e, t, n);
1233
- },
1234
- readFile(e, t = {}) {
1235
- t.flags = t.flags ?? 0, t.encoding = t.encoding ?? "binary", t.encoding !== "utf8" && t.encoding !== "binary" && w(`Invalid encoding type "${t.encoding}"`);
1236
- var n = Q.open(e, t.flags), r = Q.stat(e).size, i = new Uint8Array(r);
1237
- return Q.read(n, i, 0, r, 0), t.encoding === "utf8" && (i = pe(i)), Q.close(n), i;
1238
- },
1239
- writeFile(e, t, n = {}) {
1240
- n.flags = n.flags ?? 577;
1241
- var r = Q.open(e, n.flags, n.mode);
1242
- t = be(t), Q.write(r, t, 0, t.byteLength, void 0, n.canOwn), Q.close(r);
1243
- },
1244
- cwd: () => Q.currentPath,
1245
- chdir(e) {
1246
- var t = Q.lookupPath(e, { follow: !0 });
1247
- if (t.node === null) throw new Q.ErrnoError(44);
1248
- if (!Q.isDir(t.node.mode)) throw new Q.ErrnoError(54);
1249
- var n = Q.nodePermissions(t.node, "x");
1250
- if (n) throw new Q.ErrnoError(n);
1251
- Q.currentPath = t.path;
1252
- },
1253
- createDefaultDirectories() {
1254
- Q.mkdir("/tmp"), Q.mkdir("/home"), Q.mkdir("/home/web_user");
1255
- },
1256
- createDefaultDevices() {
1257
- Q.mkdir("/dev"), Q.registerDevice(Q.makedev(1, 3), {
1258
- read: () => 0,
1259
- write: (e, t, n, r, i) => r,
1260
- llseek: () => 0
1261
- }), Q.mkdev("/dev/null", Q.makedev(1, 3)), Y.register(Q.makedev(5, 0), Y.default_tty_ops), Y.register(Q.makedev(6, 0), Y.default_tty1_ops), Q.mkdev("/dev/tty", Q.makedev(5, 0)), Q.mkdev("/dev/tty1", Q.makedev(6, 0));
1262
- var e = /* @__PURE__ */ new Uint8Array(1024), t = 0, n = () => (t === 0 && (de(e), t = e.byteLength), e[--t]);
1263
- Q.createDevice("/dev", "random", n), Q.createDevice("/dev", "urandom", n), Q.mkdir("/dev/shm"), Q.mkdir("/dev/shm/tmp");
1264
- },
1265
- createSpecialDirectories() {
1266
- Q.mkdir("/proc");
1267
- var e = Q.mkdir("/proc/self");
1268
- Q.mkdir("/proc/self/fd"), Q.mount({ mount() {
1269
- var t = Q.createNode(e, "fd", 16895, 73);
1270
- return t.stream_ops = { llseek: X.stream_ops.llseek }, t.node_ops = {
1271
- lookup(e, t) {
1272
- var n = +t, r = Q.getStreamChecked(n), i = {
1273
- parent: null,
1274
- mount: { mountpoint: "fake" },
1275
- node_ops: { readlink: () => r.path },
1276
- id: n + 1
1277
- };
1278
- return i.parent = i, i;
1279
- },
1280
- readdir() {
1281
- return Array.from(Q.streams.entries()).filter(([e, t]) => t).map(([e, t]) => e.toString());
1282
- }
1283
- }, t;
1284
- } }, {}, "/proc/self/fd");
1285
- },
1286
- createStandardStreams(e, t, n) {
1287
- e ? Q.createDevice("/dev", "stdin", e) : Q.symlink("/dev/tty", "/dev/stdin"), t ? Q.createDevice("/dev", "stdout", null, t) : Q.symlink("/dev/tty", "/dev/stdout"), n ? Q.createDevice("/dev", "stderr", null, n) : Q.symlink("/dev/tty1", "/dev/stderr"), Q.open("/dev/stdin", 0), Q.open("/dev/stdout", 1), Q.open("/dev/stderr", 1);
1288
- },
1289
- staticInit() {
1290
- Q.nameTable = Array(4096), Q.mount(X, {}, "/"), Q.createDefaultDirectories(), Q.createDefaultDevices(), Q.createSpecialDirectories(), Q.filesystems = { MEMFS: X };
1291
- },
1292
- init(e, t, r) {
1293
- Q.initialized = !0, e ??= n.stdin, t ??= n.stdout, r ??= n.stderr, Q.createStandardStreams(e, t, r);
1294
- },
1295
- quit() {
1296
- Q.initialized = !1;
1297
- for (var e of Q.streams) e && Q.close(e);
1298
- },
1299
- findObject(e, t) {
1300
- var n = Q.analyzePath(e, t);
1301
- return n.exists ? n.object : null;
1302
- },
1303
- analyzePath(e, t) {
1304
- try {
1305
- var n = Q.lookupPath(e, { follow: !t });
1306
- e = n.path;
1307
- } catch {}
1308
- var r = {
1309
- isRoot: !1,
1310
- exists: !1,
1311
- error: 0,
1312
- name: null,
1313
- path: null,
1314
- object: null,
1315
- parentExists: !1,
1316
- parentPath: null,
1317
- parentObject: null
1318
- };
1319
- try {
1320
- var n = Q.lookupPath(e, { parent: !0 });
1321
- r.parentExists = !0, r.parentPath = n.path, r.parentObject = n.node, r.name = G.basename(e), n = Q.lookupPath(e, { follow: !t }), r.exists = !0, r.path = n.path, r.object = n.node, r.name = n.node.name, r.isRoot = n.path === "/";
1322
- } catch (e) {
1323
- r.error = e.errno;
1324
- }
1325
- return r;
1326
- },
1327
- createPath(e, t, n, r) {
1328
- e = typeof e == "string" ? e : Q.getPath(e);
1329
- for (var i = t.split("/").reverse(); i.length;) {
1330
- var a = i.pop();
1331
- if (a) {
1332
- var o = G.join2(e, a);
1333
- try {
1334
- Q.mkdir(o);
1335
- } catch (e) {
1336
- if (e.errno != 20) throw e;
1337
- }
1338
- e = o;
1339
- }
1340
- }
1341
- return o;
1342
- },
1343
- createFile(e, t, n, r, i) {
1344
- var a = G.join2(typeof e == "string" ? e : Q.getPath(e), t), o = xe(r, i);
1345
- return Q.create(a, o);
1346
- },
1347
- createDataFile(e, t, n, r, i, a) {
1348
- var o = t;
1349
- e && (e = typeof e == "string" ? e : Q.getPath(e), o = t ? G.join2(e, t) : e);
1350
- var s = xe(r, i), c = Q.create(o, s);
1351
- if (n) {
1352
- n = be(n), Q.chmod(c, s | 146);
1353
- var l = Q.open(c, 577);
1354
- Q.write(l, n, 0, n.length, 0, a), Q.close(l), Q.chmod(c, s);
1355
- }
1356
- },
1357
- createDevice(e, t, n, r) {
1358
- var i = G.join2(typeof e == "string" ? e : Q.getPath(e), t), a = xe(!!n, !!r);
1359
- Q.createDevice.major ??= 64;
1360
- var o = Q.makedev(Q.createDevice.major++, 0);
1361
- return Q.registerDevice(o, {
1362
- open(e) {
1363
- e.seekable = !1;
1364
- },
1365
- close(e) {
1366
- r?.buffer?.length && r(10);
1367
- },
1368
- read(e, t, r, i, a) {
1369
- for (var o = 0, s = 0; s < i; s++) {
1370
- var c;
1371
- try {
1372
- c = n();
1373
- } catch {
1374
- throw new Q.ErrnoError(29);
1375
- }
1376
- if (c === void 0 && o === 0) throw new Q.ErrnoError(6);
1377
- if (c == null) break;
1378
- o++, t[r + s] = c;
1379
- }
1380
- return o && (e.node.atime = Date.now()), o;
1381
- },
1382
- write(e, t, n, i, a) {
1383
- for (var o = 0; o < i; o++) try {
1384
- r(t[n + o]);
1385
- } catch {
1386
- throw new Q.ErrnoError(29);
1387
- }
1388
- return i && (e.node.mtime = e.node.ctime = Date.now()), o;
1389
- }
1390
- }), Q.mkdev(i, a, o);
1391
- },
1392
- forceLoadFile(e) {
1393
- if (e.isDevice || e.isFolder || e.link || e.contents) return !0;
1394
- if (globalThis.XMLHttpRequest) w("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");
1395
- else try {
1396
- e.contents = f(e.url);
1397
- } catch {
1398
- throw new Q.ErrnoError(29);
1399
- }
1400
- },
1401
- createLazyFile(e, t, n, r, a) {
1402
- class o {
1403
- lengthKnown = !1;
1404
- chunks = [];
1405
- get(e) {
1406
- if (!(e > this.length - 1 || e < 0)) {
1407
- var t = e % this.chunkSize, n = e / this.chunkSize | 0;
1408
- return this.getter(n)[t];
1409
- }
1410
- }
1411
- setDataGetter(e) {
1412
- this.getter = e;
1413
- }
1414
- cacheLength() {
1415
- var e = new XMLHttpRequest();
1416
- e.open("HEAD", n, !1), e.send(null), e.status >= 200 && e.status < 300 || e.status === 304 || w("Couldn't load " + n + ". Status: " + e.status);
1417
- var t = Number(e.getResponseHeader("Content-length")), r, i = (r = e.getResponseHeader("Accept-Ranges")) && r === "bytes", a = (r = e.getResponseHeader("Content-Encoding")) && r === "gzip", o = 1048576;
1418
- i || (o = t);
1419
- var s = (e, r) => {
1420
- e > r && w(`invalid range (${e}, ${r}) or no bytes requested!`), r > t - 1 && w(`only ${t} bytes available! programmer error!`);
1421
- var i = new XMLHttpRequest();
1422
- return i.open("GET", n, !1), t !== o && i.setRequestHeader("Range", "bytes=" + e + "-" + r), i.responseType = "arraybuffer", i.overrideMimeType && i.overrideMimeType("text/plain; charset=x-user-defined"), i.send(null), i.status >= 200 && i.status < 300 || i.status === 304 || w("Couldn't load " + n + ". Status: " + i.status), i.response === void 0 ? J(i.responseText ?? "", !0) : new Uint8Array(i.response || []);
1423
- }, c = this;
1424
- c.setDataGetter((e) => {
1425
- var n = e * o, r = (e + 1) * o - 1;
1426
- return r = Math.min(r, t - 1), c.chunks[e] === void 0 && (c.chunks[e] = s(n, r)), c.chunks[e] === void 0 && w("doXHR failed!"), c.chunks[e];
1427
- }), (a || !t) && (o = t = 1, t = this.getter(0).length, o = t, p("LazyFiles on gzip forces download of the whole file when length is accessed")), this._length = t, this._chunkSize = o, this.lengthKnown = !0;
1428
- }
1429
- get length() {
1430
- return this.lengthKnown || this.cacheLength(), this._length;
1431
- }
1432
- get chunkSize() {
1433
- return this.lengthKnown || this.cacheLength(), this._chunkSize;
1434
- }
1435
- }
1436
- if (globalThis.XMLHttpRequest) {
1437
- i || w("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");
1438
- var s = {
1439
- isDevice: !1,
1440
- contents: new o()
1441
- };
1442
- } else var s = {
1443
- isDevice: !1,
1444
- url: n
1445
- };
1446
- var c = Q.createFile(e, t, s, r, a);
1447
- s.contents ? c.contents = s.contents : s.url && (c.contents = null, c.url = s.url), Object.defineProperties(c, { usedBytes: { get: function() {
1448
- return this.contents.length;
1449
- } } });
1450
- var l = {};
1451
- for (let [e, t] of Object.entries(c.stream_ops)) l[e] = (...e) => (Q.forceLoadFile(c), t(...e));
1452
- function u(e, t, n, r, i) {
1453
- var a = e.node.contents;
1454
- if (i >= a.length) return 0;
1455
- var o = Math.min(a.length - i, r);
1456
- if (a.slice) for (var s = 0; s < o; s++) t[n + s] = a[i + s];
1457
- else for (var s = 0; s < o; s++) t[n + s] = a.get(i + s);
1458
- return o;
1459
- }
1460
- return l.read = (e, t, n, r, i) => (Q.forceLoadFile(c), u(e, t, n, r, i)), l.mmap = (e, t, n, r, i) => {
1461
- Q.forceLoadFile(c);
1462
- var a = ve(t);
1463
- if (!a) throw new Q.ErrnoError(48);
1464
- return u(e, I, a, t, n), {
1465
- ptr: a,
1466
- allocated: !0
1467
- };
1468
- }, c.stream_ops = l, c;
1469
- }
1470
- }, Pe = (e, t, n) => e ? pe(re, e, t, n) : "", $ = {
1471
- currentUmask: 18,
1472
- calculateAt(e, t, n) {
1473
- if (G.isAbs(t)) return t;
1474
- var r = e === -100 ? Q.cwd() : $.getStreamFromFD(e).path;
1475
- if (t.length == 0) {
1476
- if (!n) throw new Q.ErrnoError(44);
1477
- return r;
1478
- }
1479
- return r + "/" + t;
1480
- },
1481
- writeStat(e, t) {
1482
- z[e >> 2] = t.dev, z[e + 4 >> 2] = t.mode, z[e + 8 >> 2] = t.nlink, z[e + 12 >> 2] = t.uid, z[e + 16 >> 2] = t.gid, z[e + 20 >> 2] = t.rdev, F[e + 24 >> 3] = BigInt(t.size), P[e + 32 >> 2] = 4096, P[e + 36 >> 2] = t.blocks;
1483
- var n = t.atime.getTime(), r = t.mtime.getTime(), i = t.ctime.getTime();
1484
- return F[e + 40 >> 3] = BigInt(Math.floor(n / 1e3)), z[e + 48 >> 2] = n % 1e3 * 1e3 * 1e3, F[e + 56 >> 3] = BigInt(Math.floor(r / 1e3)), z[e + 64 >> 2] = r % 1e3 * 1e3 * 1e3, F[e + 72 >> 3] = BigInt(Math.floor(i / 1e3)), z[e + 80 >> 2] = i % 1e3 * 1e3 * 1e3, F[e + 88 >> 3] = BigInt(t.ino), 0;
1485
- },
1486
- writeStatFs(e, t) {
1487
- z[e + 4 >> 2] = t.bsize, z[e + 60 >> 2] = t.bsize, F[e + 8 >> 3] = BigInt(t.blocks), F[e + 16 >> 3] = BigInt(t.bfree), F[e + 24 >> 3] = BigInt(t.bavail), F[e + 32 >> 3] = BigInt(t.files), F[e + 40 >> 3] = BigInt(t.ffree), z[e + 48 >> 2] = t.fsid, z[e + 64 >> 2] = t.flags, z[e + 56 >> 2] = t.namelen;
1488
- },
1489
- doMsync(e, t, n, r, i) {
1490
- if (!Q.isFile(t.node.mode)) throw new Q.ErrnoError(43);
1491
- if (r & 2) return 0;
1492
- var a = re.subarray(e, e + n);
1493
- Q.msync(t, a, i, n, r);
1494
- },
1495
- getStreamFromFD(e) {
1496
- return Q.getStreamChecked(e);
1497
- },
1498
- varargs: void 0,
1499
- getStr(e) {
1500
- return Pe(e);
1501
- }
1502
- };
1503
- function Fe(e, t, n) {
1504
- $.varargs = n;
1505
- try {
1506
- var r = $.getStreamFromFD(e);
1507
- switch (t) {
1508
- case 0:
1509
- var i = U();
1510
- if (i < 0) return -28;
1511
- for (; Q.streams[i];) i++;
1512
- return Q.dupStream(r, i).fd;
1513
- case 1:
1514
- case 2: return 0;
1515
- case 3: return r.flags;
1516
- case 4:
1517
- var i = U(), a = 289792;
1518
- return r.flags = r.flags & ~a | i & a, 0;
1519
- case 12:
1520
- var i = W(), o = 0;
1521
- return N[i + o >> 1] = 2, 0;
1522
- case 13:
1523
- case 14: return 0;
1524
- }
1525
- return -28;
1526
- } catch (e) {
1527
- if (Q === void 0 || e.name !== "ErrnoError") throw e;
1528
- return -e.errno;
1529
- }
1530
- }
1531
- function Ie(e, t, n) {
1532
- $.varargs = n;
1533
- try {
1534
- var r = $.getStreamFromFD(e);
1535
- switch (t) {
1536
- case 21509: return r.tty ? 0 : -59;
1537
- case 21505:
1538
- if (!r.tty) return -59;
1539
- if (r.tty.ops.ioctl_tcgets) {
1540
- var i = r.tty.ops.ioctl_tcgets(r), a = W();
1541
- P[a >> 2] = i.c_iflag || 0, P[a + 4 >> 2] = i.c_oflag || 0, P[a + 8 >> 2] = i.c_cflag || 0, P[a + 12 >> 2] = i.c_lflag || 0;
1542
- for (var o = 0; o < 32; o++) I[a + o + 17] = i.c_cc[o] || 0;
1543
- return 0;
1544
- }
1545
- return 0;
1546
- case 21510:
1547
- case 21511:
1548
- case 21512: return r.tty ? 0 : -59;
1549
- case 21506:
1550
- case 21507:
1551
- case 21508:
1552
- if (!r.tty) return -59;
1553
- if (r.tty.ops.ioctl_tcsets) {
1554
- for (var a = W(), s = P[a >> 2], c = P[a + 4 >> 2], l = P[a + 8 >> 2], u = P[a + 12 >> 2], d = [], o = 0; o < 32; o++) d.push(I[a + o + 17]);
1555
- return r.tty.ops.ioctl_tcsets(r.tty, t, {
1556
- c_iflag: s,
1557
- c_oflag: c,
1558
- c_cflag: l,
1559
- c_lflag: u,
1560
- c_cc: d
1561
- });
1562
- }
1563
- return 0;
1564
- case 21519:
1565
- if (!r.tty) return -59;
1566
- var a = W();
1567
- return P[a >> 2] = 0, 0;
1568
- case 21520: return r.tty ? -28 : -59;
1569
- case 21537:
1570
- case 21531:
1571
- var a = W();
1572
- return Q.ioctl(r, t, a);
1573
- case 21523:
1574
- if (!r.tty) return -59;
1575
- if (r.tty.ops.ioctl_tiocgwinsz) {
1576
- var f = r.tty.ops.ioctl_tiocgwinsz(r.tty), a = W();
1577
- N[a >> 1] = f[0], N[a + 2 >> 1] = f[1];
1578
- }
1579
- return 0;
1580
- case 21524: return r.tty ? 0 : -59;
1581
- case 21515: return r.tty ? 0 : -59;
1582
- default: return -28;
1583
- }
1584
- } catch (e) {
1585
- if (Q === void 0 || e.name !== "ErrnoError") throw e;
1586
- return -e.errno;
1587
- }
1588
- }
1589
- function Le(e, t, n, r) {
1590
- $.varargs = r;
1591
- try {
1592
- t = $.getStr(t), t = $.calculateAt(e, t);
1593
- var i = r ? U() : 0;
1594
- return n & 64 && (i &= ~$.currentUmask), Q.open(t, n, i).fd;
1595
- } catch (e) {
1596
- if (Q === void 0 || e.name !== "ErrnoError") throw e;
1597
- return -e.errno;
1598
- }
1599
- }
1600
- var Re = () => w(""), ze = 0, Be = () => {
1601
- V = !1, ze = 0;
1602
- }, Ve = {}, He = (e) => {
1603
- if (e instanceof M || e == "unwind") return _;
1604
- c(1, e);
1605
- }, Ue = () => V || ze > 0, We = (e) => {
1606
- _ = e, Ue() || (n.onExit?.(e), g = !0), c(e, new M(e));
1607
- }, Ge = (e, t) => {
1608
- _ = e, We(e);
1609
- }, Ke = () => {
1610
- if (!Ue()) try {
1611
- Ge(_);
1612
- } catch (e) {
1613
- He(e);
1614
- }
1615
- }, qe = (e) => {
1616
- if (!g) try {
1617
- return e();
1618
- } catch (e) {
1619
- He(e);
1620
- } finally {
1621
- Ke();
1622
- }
1623
- }, Je = () => performance.now(), Ye = (e, t) => (Ve[e] && (clearTimeout(Ve[e].id), delete Ve[e]), t && (Ve[e] = {
1624
- id: setTimeout(() => {
1625
- delete Ve[e], qe(() => qt(e, Je()));
1626
- }, t),
1627
- timeout_ms: t
1628
- }), 0), Xe = (e, t, n) => ge(e, re, t, n), Ze = (e, t, n, r) => {
1629
- var i = (/* @__PURE__ */ new Date()).getFullYear(), a = new Date(i, 0, 1), o = new Date(i, 6, 1), s = a.getTimezoneOffset(), c = o.getTimezoneOffset(), l = Math.max(s, c);
1630
- z[e >> 2] = l * 60, P[t >> 2] = Number(s != c);
1631
- var u = (e) => {
1632
- var t = e >= 0 ? "-" : "+", n = Math.abs(e);
1633
- return `UTC${t}${String(Math.floor(n / 60)).padStart(2, "0")}${String(n % 60).padStart(2, "0")}`;
1634
- }, d = u(s), f = u(c);
1635
- c < s ? (Xe(d, n, 17), Xe(f, r, 17)) : (Xe(d, r, 17), Xe(f, n, 17));
1636
- }, Qe = () => Date.now(), $e = 1, et = (e) => e >= 0 && e <= 3, tt = 9007199254740992, nt = -9007199254740992, rt = (e) => e < nt || e > tt ? NaN : Number(e);
1637
- function it(e, t, n) {
1638
- if (t = rt(t), !et(e)) return 28;
1639
- var r;
1640
- if (e === 0) r = Qe();
1641
- else if ($e) r = Je();
1642
- else return 52;
1643
- var i = Math.round(r * 1e3 * 1e3);
1644
- return F[n >> 3] = BigInt(i), 0;
1645
- }
1646
- var at = () => 2147483648, ot = (e, t) => Math.ceil(e / t) * t, st = (e) => {
1647
- var t = (e - Zt.buffer.byteLength + 65535) / 65536 | 0;
1648
- try {
1649
- return Zt.grow(t), b(), 1;
1650
- } catch {}
1651
- }, ct = (e) => {
1652
- var t = re.length;
1653
- e >>>= 0;
1654
- var n = at();
1655
- if (e > n) return !1;
1656
- for (var r = 1; r <= 4; r *= 2) {
1657
- var i = t * (1 + .2 / r);
1658
- if (i = Math.min(i, e + 100663296), st(Math.min(n, ot(Math.max(e, i), 65536)))) return !0;
1659
- }
1660
- return !1;
1661
- }, lt = {}, ut = () => s, dt = () => {
1662
- if (!dt.strings) {
1663
- var e = {
1664
- USER: "web_user",
1665
- LOGNAME: "web_user",
1666
- PATH: "/",
1667
- PWD: "/",
1668
- HOME: "/home/web_user",
1669
- LANG: (globalThis.navigator?.language ?? "C").replace("-", "_") + ".UTF-8",
1670
- _: ut()
1671
- };
1672
- for (var t in lt) lt[t] === void 0 ? delete e[t] : e[t] = lt[t];
1673
- var n = [];
1674
- for (var t in e) n.push(`${t}=${e[t]}`);
1675
- dt.strings = n;
1676
- }
1677
- return dt.strings;
1678
- }, ft = (e, t) => {
1679
- var n = 0, r = 0;
1680
- for (var i of dt()) {
1681
- var a = t + n;
1682
- z[e + r >> 2] = a, n += Xe(i, a, Infinity) + 1, r += 4;
1683
- }
1684
- return 0;
1685
- }, pt = (e, t) => {
1686
- var n = dt();
1687
- z[e >> 2] = n.length;
1688
- var r = 0;
1689
- for (var i of n) r += he(i) + 1;
1690
- return z[t >> 2] = r, 0;
1691
- };
1692
- function mt(e) {
1693
- try {
1694
- var t = $.getStreamFromFD(e);
1695
- return Q.close(t), 0;
1696
- } catch (e) {
1697
- if (Q === void 0 || e.name !== "ErrnoError") throw e;
1698
- return e.errno;
1699
- }
1700
- }
1701
- var ht = (e, t, n, r) => {
1702
- for (var i = 0, a = 0; a < n; a++) {
1703
- var o = z[t >> 2], s = z[t + 4 >> 2];
1704
- t += 8;
1705
- try {
1706
- var c = Q.read(e, I, o, s, r);
1707
- } catch (e) {
1708
- if (i > 0 && e instanceof Q.ErrnoError && (e.errno == 6 || e.errno == 6)) break;
1709
- throw e;
1710
- }
1711
- if (c < 0) return -1;
1712
- if (i += c, c < s) break;
1713
- r !== void 0 && (r += c);
1714
- }
1715
- return i;
1716
- };
1717
- function gt(e, t, n, r) {
1718
- try {
1719
- var i = ht($.getStreamFromFD(e), t, n);
1720
- return z[r >> 2] = i, 0;
1721
- } catch (e) {
1722
- if (Q === void 0 || e.name !== "ErrnoError") throw e;
1723
- return e.errno;
1724
- }
1725
- }
1726
- function _t(e, t, n, r) {
1727
- t = rt(t);
1728
- try {
1729
- if (isNaN(t)) return 22;
1730
- var i = $.getStreamFromFD(e);
1731
- return Q.llseek(i, t, n), F[r >> 3] = BigInt(i.position), i.getdents && t === 0 && n === 0 && (i.getdents = null), 0;
1732
- } catch (e) {
1733
- if (Q === void 0 || e.name !== "ErrnoError") throw e;
1734
- return e.errno;
1735
- }
1736
- }
1737
- var vt = (e, t, n, r) => {
1738
- if (n == 1) return Q.write(e, I, z[t >> 2], z[t + 4 >> 2], r);
1739
- for (var i = 0, a = 0, o = t; a < n; a++, o += 8) i += z[o + 4 >> 2];
1740
- for (var s = new Uint8Array(i), c = 0, a = 0; a < n; a++, t += 8) {
1741
- var l = z[t >> 2], u = z[t + 4 >> 2];
1742
- s.set(re.subarray(l, l + u), c), c += u;
1743
- }
1744
- return Q.write(e, s, 0, i, r);
1745
- };
1746
- function yt(e, t, n, r) {
1747
- try {
1748
- var i = vt($.getStreamFromFD(e), t, n);
1749
- return z[r >> 2] = i, 0;
1750
- } catch (e) {
1751
- if (Q === void 0 || e.name !== "ErrnoError") throw e;
1752
- return e.errno;
1753
- }
1754
- }
1755
- var bt = (e) => n["_" + e], xt = (e, t) => {
1756
- I.set(e, t);
1757
- }, St = (e) => Yt(e), Ct = (e) => {
1758
- var t = he(e) + 1, n = St(t);
1759
- return Xe(e, n, t), n;
1760
- }, wt = (e, t, n, r, i) => {
1761
- var a = {
1762
- string: (e) => {
1763
- var t = 0;
1764
- return e != null && e !== 0 && (t = Ct(e)), t;
1765
- },
1766
- array: (e) => {
1767
- var t = St(e.length);
1768
- return xt(e, t), t;
1769
- }
1770
- };
1771
- function o(e) {
1772
- return t === "string" ? Pe(e) : t === "boolean" ? !!e : e;
1773
- }
1774
- var s = bt(e), c = [], l = 0;
1775
- if (r) for (var u = 0; u < r.length; u++) {
1776
- var d = a[n[u]];
1777
- d ? (l === 0 && (l = oe()), c[u] = d(r[u])) : c[u] = r[u];
1778
- }
1779
- var f = s(...c);
1780
- function p(e) {
1781
- return l !== 0 && H(l), o(e);
1782
- }
1783
- return f = p(f), f;
1784
- }, Tt = (e, t, n, r) => {
1785
- var i = !n || n.every((e) => e === "number" || e === "boolean");
1786
- return t !== "string" && i && !r ? bt(e) : (...i) => wt(e, t, n, i, r);
1787
- }, Et = [], Dt = (e) => {
1788
- var t = Et[e];
1789
- return t || (Et[e] = t = Qt.get(e)), t;
1790
- }, Ot = (e, t) => {
1791
- if (kt) for (var n = e; n < e + t; n++) {
1792
- var r = Dt(n);
1793
- r && kt.set(r, n);
1794
- }
1795
- }, kt, At = (e) => (kt || (kt = /* @__PURE__ */ new WeakMap(), Ot(0, Qt.length)), kt.get(e) || 0), jt = [], Mt = () => jt.length ? jt.pop() : Qt.grow(1), Nt = (e, t) => {
1796
- Qt.set(e, t), Et[e] = Qt.get(e);
1797
- }, Pt = (e) => {
1798
- let t = e.length;
1799
- return [
1800
- t % 128 | 128,
1801
- t >> 7,
1802
- ...e
1803
- ];
1804
- }, Ft = {
1805
- i: 127,
1806
- p: 127,
1807
- j: 126,
1808
- f: 125,
1809
- d: 124,
1810
- e: 111
1811
- }, It = (e) => Pt(Array.from(e, (e) => Ft[e])), Lt = (e, t) => {
1812
- var n = Uint8Array.of(0, 97, 115, 109, 1, 0, 0, 0, 1, ...Pt([
1813
- 1,
1814
- 96,
1815
- ...It(t.slice(1)),
1816
- ...It(t[0] === "v" ? "" : t[0])
1817
- ]), 2, 7, 1, 1, 101, 1, 102, 0, 0, 7, 5, 1, 1, 102, 0, 0), r = new WebAssembly.Module(n);
1818
- return new WebAssembly.Instance(r, { e: { f: e } }).exports.f;
1819
- }, Rt = (e, t) => {
1820
- var n = At(e);
1821
- if (n) return n;
1822
- var r = Mt();
1823
- try {
1824
- Nt(r, e);
1825
- } catch (n) {
1826
- if (!(n instanceof TypeError)) throw n;
1827
- Nt(r, Lt(e, t));
1828
- }
1829
- return kt.set(e, r), r;
1830
- }, zt = (e) => {
1831
- kt.delete(Dt(e)), Nt(e, null), jt.push(e);
1832
- };
1833
- Q.createPreloadedFile = Ne, Q.preloadFile = Me, Q.staticInit(), n.noExitRuntime && (V = n.noExitRuntime), n.print && (p = n.print), n.printErr && (m = n.printErr), n.arguments && n.arguments, n.thisProgram && (s = n.thisProgram);
1834
- var Bt = n.preInit;
1835
- if (Bt) for (typeof Bt == "function" && (n.preInit = Bt = [Bt]); Bt.length > 0;) Bt.shift()();
1836
- n.cwrap = Tt, n.addFunction = Rt, n.removeFunction = zt, n.UTF8ToString = Pe;
1837
- var Vt, Ht, Ut, Wt, Gt, Kt, qt, Jt, Yt, Xt, Zt, Qt;
1838
- function $t(e) {
1839
- n._Highs_js_getColName = e.w, n._Highs_js_getRowName = e.x, n._Highs_js_getPresolvedColName = e.y, n._Highs_js_getPresolvedRowName = e.z, n._Highs_js_setCallback = e.A, n._Highs_js_getCallbackMipSolutionSize = e.B, n._Highs_lpCall = e.C, n._Highs_mipCall = e.D, n._Highs_qpCall = e.E, Vt = n._Highs_create = e.F, Ht = n._Highs_destroy = e.G, n._Highs_version = e.H, n._Highs_versionMajor = e.I, n._Highs_versionMinor = e.J, n._Highs_versionPatch = e.K, n._Highs_githash = e.L, n._Highs_presolve = e.M, Ut = n._Highs_run = e.N, n._Highs_postsolve = e.O, n._Highs_readModel = e.P, n._Highs_writeModel = e.Q, n._Highs_writePresolvedModel = e.R, n._Highs_writeSolution = e.S, n._Highs_writeSolutionPretty = e.T, n._Highs_passLp = e.U, n._Highs_passMip = e.V, n._Highs_passModel = e.W, n._Highs_passHessian = e.X, n._Highs_passLinearObjectives = e.Y, n._Highs_clearLinearObjectives = e.Z, n._Highs_getNumCol = e._, n._Highs_addLinearObjective = e.$, n._Highs_passRowName = e.aa, n._Highs_passColName = e.ba, n._Highs_passModelName = e.ca, n._Highs_readOptions = e.da, n._Highs_clear = e.ea, n._Highs_clearModel = e.fa, n._Highs_clearSolver = e.ga, n._Highs_releaseMemory = e.ha, n._Highs_setBoolOptionValue = e.ia, n._Highs_setIntOptionValue = e.ja, n._Highs_setDoubleOptionValue = e.ka, n._Highs_setStringOptionValue = e.la, n._Highs_getNumOptions = e.ma, n._Highs_getOptionName = e.na, n._Highs_getBoolOptionValue = e.oa, n._Highs_getBoolOptionValues = e.pa, n._Highs_getIntOptionValue = e.qa, n._Highs_getIntOptionValues = e.ra, n._Highs_getDoubleOptionValue = e.sa, n._Highs_getDoubleOptionValues = e.ta, n._Highs_getStringOptionValue = e.ua, n._Highs_getStringOptionValues = e.va, n._Highs_getOptionType = e.wa, n._Highs_resetOptions = e.xa, n._Highs_writeOptions = e.ya, n._Highs_writeOptionsDeviations = e.za, n._Highs_getIntInfoValue = e.Aa, n._Highs_getDoubleInfoValue = e.Ba, n._Highs_getInt64InfoValue = e.Ca, n._Highs_getInfoType = e.Da, n._Highs_getSolution = e.Ea, n._Highs_getBasis = e.Fa, Wt = n._Highs_getModelStatus = e.Ga, n._Highs_getDualRay = e.Ha, n._Highs_getDualUnboundednessDirection = e.Ia, n._Highs_getPrimalRay = e.Ja, n._Highs_getObjectiveValue = e.Ka, n._Highs_getBasicVariables = e.La, n._Highs_getBasisInverseRow = e.Ma, n._Highs_getBasisInverseCol = e.Na, n._Highs_getBasisSolve = e.Oa, n._Highs_getBasisTransposeSolve = e.Pa, n._Highs_getReducedRow = e.Qa, n._Highs_getReducedColumn = e.Ra, n._Highs_setBasis = e.Sa, n._Highs_getNumRow = e.Ta, n._Highs_setLogicalBasis = e.Ua, n._Highs_setSolution = e.Va, n._Highs_setSparseSolution = e.Wa, n._Highs_setCallback = e.Xa, n._Highs_startCallback = e.Ya, n._Highs_stopCallback = e.Za, n._Highs_getRunTime = e._a, n._Highs_zeroAllClocks = e.$a, n._Highs_addCol = e.ab, n._Highs_addCols = e.bb, n._Highs_addVar = e.cb, n._Highs_addVars = e.db, n._Highs_addRow = e.eb, n._Highs_addRows = e.fb, n._Highs_ensureColwise = e.gb, n._Highs_ensureRowwise = e.hb, n._Highs_changeObjectiveSense = e.ib, n._Highs_changeObjectiveOffset = e.jb, n._Highs_changeColIntegrality = e.kb, n._Highs_changeColsIntegralityByRange = e.lb, n._Highs_changeColsIntegralityBySet = e.mb, n._Highs_changeColsIntegralityByMask = e.nb, n._Highs_clearIntegrality = e.ob, n._Highs_changeColCost = e.pb, n._Highs_changeColsCostByRange = e.qb, n._Highs_changeColsCostBySet = e.rb, n._Highs_changeColsCostByMask = e.sb, n._Highs_changeColBounds = e.tb, n._Highs_changeColsBoundsByRange = e.ub, n._Highs_changeColsBoundsBySet = e.vb, n._Highs_changeColsBoundsByMask = e.wb, n._Highs_changeRowBounds = e.xb, n._Highs_changeRowsBoundsByRange = e.yb, n._Highs_changeRowsBoundsBySet = e.zb, n._Highs_changeRowsBoundsByMask = e.Ab, n._Highs_changeCoeff = e.Bb, n._Highs_getObjectiveSense = e.Cb, n._Highs_getObjectiveOffset = e.Db, n._Highs_getColsByRange = e.Eb, n._Highs_getColsBySet = e.Fb, n._Highs_getColsByMask = e.Gb, n._Highs_getRowsByRange = e.Hb, n._Highs_getRowsBySet = e.Ib, n._Highs_getRowsByMask = e.Jb, n._Highs_getRowName = e.Kb, n._Highs_getRowByName = e.Lb, n._Highs_getColName = e.Mb, n._Highs_getColByName = e.Nb, n._Highs_getColIntegrality = e.Ob, n._Highs_deleteColsByRange = e.Pb, n._Highs_deleteColsBySet = e.Qb, n._Highs_deleteColsByMask = e.Rb, n._Highs_deleteRowsByRange = e.Sb, n._Highs_deleteRowsBySet = e.Tb, n._Highs_deleteRowsByMask = e.Ub, n._Highs_scaleCol = e.Vb, n._Highs_scaleRow = e.Wb, n._Highs_getInfinity = e.Xb, n._Highs_getSizeofHighsInt = e.Yb, n._Highs_getNumNz = e.Zb, n._Highs_getHessianNumNz = e._b, n._Highs_getPresolvedNumCol = e.$b, n._Highs_getPresolvedNumRow = e.ac, n._Highs_getPresolvedNumNz = e.bc, n._Highs_getModel = e.cc, n._Highs_getLp = e.dc, n._Highs_getFixedLp = e.ec, n._Highs_getPresolvedLp = e.fc, n._Highs_getPresolvedColName = e.gc, n._Highs_getPresolvedRowName = e.hc, n._Highs_getIis = e.ic, n._Highs_getIisLp = e.jc, n._Highs_crossover = e.kc, n._Highs_getRanging = e.lc, n._Highs_feasibilityRelaxation = e.mc, n._Highs_getCallbackDataOutItem = e.nc, n._Highs_setCallbackSolution = e.oc, n._Highs_setCallbackSparseSolution = e.pc, n._Highs_repairCallbackSolution = e.qc, n._Highs_call = e.rc, Gt = n._free = e.tc, Kt = n._malloc = e.uc, qt = e.vc, Jt = e.wc, Yt = e.xc, Xt = e.yc, Zt = e.u, Qt = e.sc;
1840
- }
1841
- var en = {
1842
- a: le,
1843
- e: Fe,
1844
- h: Ie,
1845
- i: Le,
1846
- k: Re,
1847
- s: Be,
1848
- l: Ye,
1849
- m: Ze,
1850
- p: it,
1851
- j: Qe,
1852
- c: Je,
1853
- q: ct,
1854
- n: ft,
1855
- o: pt,
1856
- b: Ge,
1857
- d: mt,
1858
- g: gt,
1859
- t: _t,
1860
- f: yt,
1861
- r: We
1862
- };
1863
- async function tn() {
1864
- x(), Ee && await Te();
1865
- var e = n.setStatus;
1866
- e && (e("Running..."), await new Promise((e) => setTimeout(e, 1)), setTimeout(e, 1, "")), !g && (S(), n.onRuntimeInitialized?.(), C());
1867
- }
1868
- var nn = await j();
1869
- await tn();
1870
- let rn = 0;
1871
- n.Highs_readModel = n.cwrap("Highs_readModel", "number", ["number", "string"]);
1872
- let an = n.cwrap("Highs_setIntOptionValue", "number", [
1873
- "number",
1874
- "string",
1875
- "number"
1876
- ]), on = n.cwrap("Highs_setDoubleOptionValue", "number", [
1877
- "number",
1878
- "string",
1879
- "number"
1880
- ]), sn = n.cwrap("Highs_setStringOptionValue", "number", [
1881
- "number",
1882
- "string",
1883
- "string"
1884
- ]), cn = n.cwrap("Highs_setBoolOptionValue", "number", [
1885
- "number",
1886
- "string",
1887
- "number"
1888
- ]), ln = n.cwrap("Highs_getOptionType", "number", [
1889
- "number",
1890
- "string",
1891
- "number"
1892
- ]), un = n.cwrap("Highs_getNumCol", "number", ["number"]), dn = n.cwrap("Highs_getNumRow", "number", ["number"]), fn = n.cwrap("Highs_getObjectiveValue", "number", ["number"]), pn = n.cwrap("Highs_getInfinity", "number", []), mn = n.cwrap("Highs_getSolution", "number", [
1893
- "number",
1894
- "number",
1895
- "number",
1896
- "number",
1897
- "number"
1898
- ]), hn = n.cwrap("Highs_getBasis", "number", [
1899
- "number",
1900
- "number",
1901
- "number"
1902
- ]), gn = n.cwrap("Highs_getColsByRange", "number", [
1903
- "number",
1904
- "number",
1905
- "number",
1906
- "number",
1907
- "number",
1908
- "number",
1909
- "number",
1910
- "number",
1911
- "number",
1912
- "number",
1913
- "number"
1914
- ]), _n = n.cwrap("Highs_getRowsByRange", "number", [
1915
- "number",
1916
- "number",
1917
- "number",
1918
- "number",
1919
- "number",
1920
- "number",
1921
- "number",
1922
- "number",
1923
- "number",
1924
- "number"
1925
- ]), vn = n.cwrap("Highs_getColIntegrality", "number", [
1926
- "number",
1927
- "number",
1928
- "number"
1929
- ]), yn = n.cwrap("Highs_js_getColName", "number", [
1930
- "number",
1931
- "number",
1932
- "number",
1933
- "number",
1934
- "number"
1935
- ]), bn = n.cwrap("Highs_js_getRowName", "number", [
1936
- "number",
1937
- "number",
1938
- "number",
1939
- "number",
1940
- "number"
1941
- ]), xn = {
1942
- 0: "Not Set",
1943
- 1: "Load error",
1944
- 2: "Model error",
1945
- 3: "Presolve error",
1946
- 4: "Solve error",
1947
- 5: "Postsolve error",
1948
- 6: "Empty",
1949
- 7: "Optimal",
1950
- 8: "Infeasible",
1951
- 9: "Primal infeasible or unbounded",
1952
- 10: "Unbounded",
1953
- 11: "Bound on objective reached",
1954
- 12: "Target for objective reached",
1955
- 13: "Time limit reached",
1956
- 14: "Iteration limit reached",
1957
- 15: "Unknown"
1958
- };
1959
- var Vt, Ut, Ht, Wt, Q;
1960
- let Sn = {
1961
- 0: "LB",
1962
- 1: "BS",
1963
- 2: "UB",
1964
- 3: "FX"
1965
- };
1966
- function Cn(e, t, n) {
1967
- return e === 3 || e === 2 && t === n ? "FX" : Sn[e] || "";
1968
- }
1969
- let wn = /* @__PURE__ */ new Set([
1970
- "Not Set",
1971
- "Load error",
1972
- "Model error",
1973
- "Presolve error",
1974
- "Solve error",
1975
- "Postsolve error",
1976
- "Empty",
1977
- "Infeasible",
1978
- "Unknown"
1979
- ]);
1980
- n.solve = function(e, t) {
1981
- let r = `highs-model-${++rn}.lp`, i, a = [];
1982
- function o(e) {
1983
- let t = Kt(e);
1984
- if (!t) throw Error("malloc failed");
1985
- return a.push(t), t;
1986
- }
1987
- function s(e, t) {
1988
- let n = o(Int32Array.BYTES_PER_ELEMENT), r = yn(e, t, 0, 0, n);
1989
- if (r !== 0 && r !== 1) return "";
1990
- let i = P[n >> 2];
1991
- if (i <= 0) return "";
1992
- let s = Kt(i);
1993
- return a.push(s), r = yn(e, t, s, i, n), r !== 0 && r !== 1 ? "" : Pe(s);
1994
- }
1995
- function c(e, t) {
1996
- let n = o(Int32Array.BYTES_PER_ELEMENT), r = bn(e, t, 0, 0, n);
1997
- if (r !== 0 && r !== 1) return "";
1998
- let i = P[n >> 2];
1999
- if (i <= 0) return "";
2000
- let s = Kt(i);
2001
- return a.push(s), r = bn(e, t, s, i, n), r !== 0 && r !== 1 ? "" : Pe(s);
2002
- }
2003
- try {
2004
- if (Q.writeFile(r, e), i = Vt(), !i) throw Error("Unable to create the HiGHS solver");
2005
- En(() => n.Highs_readModel(i, r), "read LP model (see http://web.mit.edu/lpsolve/doc/CPLEX-format.htm)");
2006
- let a = t || {};
2007
- for (let e in a) {
2008
- let t = a[e], n = typeof t, r;
2009
- if (n === "number") r = Tn;
2010
- else if (n === "boolean") r = cn;
2011
- else if (n === "string") r = sn;
2012
- else throw Error(`Unsupported option value type ${t} for '${e}'`);
2013
- En(() => r(i, e, t), `set option '${e}'`);
2014
- }
2015
- En(() => Ut(i), "solve the problem");
2016
- let l = Wt(i), u = xn[l] || "Unknown";
2017
- if (u === "Empty") return {
2018
- Columns: {},
2019
- Rows: [],
2020
- ObjectiveValue: 0,
2021
- Status: "Empty"
2022
- };
2023
- let d = un(i), f = dn(i), p = pn(), m = fn(i);
2024
- Math.abs(m) >= p * .5 && (m = m > 0 ? Infinity : -Infinity);
2025
- let h = d > 0 ? o(d * Float64Array.BYTES_PER_ELEMENT) : 0, g = d > 0 ? o(d * Float64Array.BYTES_PER_ELEMENT) : 0, _ = f > 0 ? o(f * Float64Array.BYTES_PER_ELEMENT) : 0, v = f > 0 ? o(f * Float64Array.BYTES_PER_ELEMENT) : 0;
2026
- En(() => mn(i, h, g, _, v), "get solution");
2027
- let y = d > 0 ? o(d * Int32Array.BYTES_PER_ELEMENT) : 0, b = f > 0 ? o(f * Int32Array.BYTES_PER_ELEMENT) : 0, x = !1, S = hn(i, y, b);
2028
- (S === 0 || S === 1) && (x = !0);
2029
- let C = o(Int32Array.BYTES_PER_ELEMENT), w = d > 0 ? o(d * Float64Array.BYTES_PER_ELEMENT) : 0, T = d > 0 ? o(d * Float64Array.BYTES_PER_ELEMENT) : 0, E = d > 0 ? o(d * Float64Array.BYTES_PER_ELEMENT) : 0;
2030
- gn(i, 0, d - 1, C, w, T, E, 0, 0, 0, 0);
2031
- let ee = o(Int32Array.BYTES_PER_ELEMENT), D = f > 0 ? o(f * Float64Array.BYTES_PER_ELEMENT) : 0, O = f > 0 ? o(f * Float64Array.BYTES_PER_ELEMENT) : 0;
2032
- _n(i, 0, f - 1, ee, D, O, 0, 0, 0, 0);
2033
- let k = o(Int32Array.BYTES_PER_ELEMENT), A = !wn.has(u), j = !1;
2034
- for (let e = 0; e < d && !j; e++) vn(i, e, k), P[k >> 2] !== 0 && (j = !0);
2035
- let M = {};
2036
- for (let e = 0; e < d; e++) {
2037
- let t = {
2038
- Index: e,
2039
- Lower: R[(T >> 3) + e],
2040
- Upper: R[(E >> 3) + e]
2041
- };
2042
- if (vn(i, e, k), t.Type = P[k >> 2] === 1 ? "Integer" : "Continuous", A && (t.Primal = R[(h >> 3) + e]), x && A && !j) {
2043
- let n = P[(y >> 2) + e];
2044
- t.Status = Cn(n, t.Lower, t.Upper), t.Dual = R[(g >> 3) + e];
2045
- }
2046
- t.Name = s(i, e), M[t.Name] = t;
2047
- }
2048
- let N = [];
2049
- for (let e = 0; e < f; e++) {
2050
- let t = {
2051
- Index: e,
2052
- Name: c(i, e),
2053
- Lower: R[(D >> 3) + e],
2054
- Upper: R[(O >> 3) + e]
2055
- };
2056
- if (A && (t.Primal = R[(_ >> 3) + e]), x && A && !j) {
2057
- let n = P[(b >> 2) + e];
2058
- t.Status = Cn(n, t.Lower, t.Upper), t.Dual = R[(v >> 3) + e];
2059
- }
2060
- N.push(t);
2061
- }
2062
- return {
2063
- Status: u,
2064
- ObjectiveValue: m,
2065
- Columns: M,
2066
- Rows: N
2067
- };
2068
- } finally {
2069
- i && Ht(i);
2070
- try {
2071
- Q.unlink(r);
2072
- } catch {}
2073
- for (let e = a.length - 1; e >= 0; e--) try {
2074
- Gt(a[e]);
2075
- } catch {}
2076
- }
2077
- };
2078
- function Tn(e, t, n) {
2079
- let r = Kt(Int32Array.BYTES_PER_ELEMENT);
2080
- if (!r) return -1;
2081
- try {
2082
- let i = ln(e, t, r);
2083
- if (i !== 0 && i !== 1) return i;
2084
- let a = P[r >> 2];
2085
- return a === 1 ? !Number.isSafeInteger(n) || n < -2147483648 || n > 2147483647 ? -1 : an(e, t, n) : a === 2 ? on(e, t, n) : -1;
2086
- } finally {
2087
- Gt(r);
2088
- }
2089
- }
2090
- function En(e, t) {
2091
- let n;
2092
- try {
2093
- n = e();
2094
- } catch (e) {
2095
- n = e;
2096
- }
2097
- if (n !== 0 && n !== 1) throw Error("Unable to " + t + ". HiGHS error " + n);
2098
- }
2099
- var Dn = this && this.__classPrivateFieldSet || function(e, t, n, r, i) {
2100
- if (r === "m") throw TypeError("Private method is not writable");
2101
- if (r === "a" && !i) throw TypeError("Private accessor was defined without a setter");
2102
- if (typeof t == "function" ? e !== t || !i : !t.has(e)) throw TypeError("Cannot write private member to an object whose class did not declare it");
2103
- return r === "a" ? i.call(e, n) : i ? i.value = n : t.set(e, n), n;
2104
- }, On = this && this.__classPrivateFieldGet || function(e, t, n, r) {
2105
- if (n === "a" && !r) throw TypeError("Private accessor was defined without a getter");
2106
- if (typeof t == "function" ? e !== t || !r : !t.has(e)) throw TypeError("Cannot read private member from an object whose class did not declare it");
2107
- return n === "m" ? r : n === "a" ? r.call(e) : r ? r.value : t.get(e);
2108
- };
2109
- return (function(e) {
2110
- var t, n;
2111
- let r = {
2112
- csc: 1,
2113
- csr: 2
2114
- }, i = {
2115
- triangular: 1,
2116
- square: 2
2117
- }, a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), c = 1, l = 1, u = 0;
2118
- class d extends Error {
2119
- constructor(e, t) {
2120
- super(e), this.status = -1, this.name = "HighsError", this.operation = t;
2121
- }
2122
- }
2123
- class f extends d {
2124
- constructor() {
2125
- super("Cannot use this HiGHS model after disposal; create a new model or keep the work inside highs.withModel()", "dispose"), this.name = "HighsDisposedError";
2126
- }
2127
- }
2128
- class p extends d {
2129
- constructor(e) {
2130
- super(e, "validate"), this.name = "HighsValidationError";
2131
- }
2132
- }
2133
- class m extends d {
2134
- constructor() {
2135
- super("Only callback control methods may be called while HiGHS is executing a callback", "callback"), this.name = "HighsReentrancyError";
2136
- }
2137
- }
2138
- class h extends d {
2139
- constructor(e) {
2140
- super("Option '" + e + "' is not supported by the single-threaded data-only API", "setOptionValue"), this.name = "HighsUnsupportedOptionError", this.option = e;
2141
- }
2142
- }
2143
- function g(t, n, r) {
2144
- let i = t + ":" + n + ":" + r.join(","), a = s.get(i);
2145
- if (!a) {
2146
- let c = e.cwrap(t, n, r);
2147
- a = function(...e) {
2148
- let t = c.apply(null, e), n = o.get(e[0]);
2149
- return n && n._throwCallbackError(), t;
2150
- }, s.set(i, a);
2151
- }
2152
- return a;
2153
- }
2154
- function _(e, t, n = "number") {
2155
- return g(e, n, Array(t).fill("number"));
2156
- }
2157
- function v(e, t, n, r = "number") {
2158
- return g(e, r, Array(t || 0).fill("number").concat(["string"], Array(n || 0).fill("number")));
2159
- }
2160
- function y() {
2161
- return re;
2162
- }
2163
- function b() {
2164
- return P;
2165
- }
2166
- function x() {
2167
- return R;
2168
- }
2169
- function S(e) {
2170
- return e ? Pe(e) : "";
2171
- }
2172
- function C(e) {
2173
- return new p(e);
2174
- }
2175
- function w() {
2176
- return new f();
2177
- }
2178
- function T(e) {
2179
- return new d(e + " failed with HiGHS status -1", e);
2180
- }
2181
- function E(e) {
2182
- return new h(e);
2183
- }
2184
- function ee() {
2185
- return new m();
2186
- }
2187
- function D(e) {
2188
- return { status: e };
2189
- }
2190
- function O(e, t) {
2191
- return e === -1 ? { status: e } : {
2192
- status: e,
2193
- value: t
2194
- };
2195
- }
2196
- function k(e, t) {
2197
- if (e === -1) throw T(t);
2198
- return {
2199
- status: e,
2200
- warnings: e === 1 ? [t + " completed with a HiGHS warning"] : []
2201
- };
2202
- }
2203
- function A(e, t, n = 0) {
2204
- if (!Number.isSafeInteger(e) || e < (n || 0) || e > 2147483647) throw C(t + " must be a 32-bit non-negative integer");
2205
- return e;
2206
- }
2207
- function j(e, t) {
2208
- if (!Number.isSafeInteger(e) || e < -2147483648 || e > 2147483647) throw C(t + " must be a signed 32-bit integer");
2209
- return e;
2210
- }
2211
- function M(e, t) {
2212
- if (e == null || typeof e.length != "number") throw C(t + " must be an array or typed array");
2213
- return e;
2214
- }
2215
- function N(e, t, n) {
2216
- if (M(e, n), e.length !== t) throw C(n + " must contain " + t + " values; got " + e.length);
2217
- return e;
2218
- }
2219
- function F(e, t) {
2220
- if (typeof e != "number" || Number.isNaN(e)) throw C(t + " must be a number");
2221
- return e;
2222
- }
2223
- function I(e, t, n) {
2224
- N(e, t, n);
2225
- for (let t = 0; t < e.length; t++) F(e[t], n + "[" + t + "]");
2226
- return e;
2227
- }
2228
- function L(e, t, n, r) {
2229
- t == null ? M(e, n) : N(e, t, n);
2230
- for (let t = 0; t < e.length; t++) {
2231
- let i = e[t];
2232
- if (A(i, n + "[" + t + "]", 0), r != null && i >= r) throw C(n + "[" + t + "] is outside the model");
2233
- }
2234
- return e;
2235
- }
2236
- function te(e, t, n, r) {
2237
- if (!e || e.format !== "csc" && e.format !== "csr") throw C(r + ".format must be 'csc' or 'csr'");
2238
- if (e.numRows !== t || e.numCols !== n) throw C(r + " dimensions do not match the model");
2239
- let i = e.format === "csc" ? n : t;
2240
- if (L(e.starts, i + 1, r + ".starts"), e.starts[0] !== 0) throw C(r + ".starts must begin with zero");
2241
- for (let t = 1; t < e.starts.length; t++) if (e.starts[t] < e.starts[t - 1]) throw C(r + ".starts must be monotonic");
2242
- let a = e.starts[i];
2243
- return L(e.indices, a, r + ".indices", e.format === "csc" ? t : n), I(e.values, a, r + ".values"), a;
2244
- }
2245
- function z(e, t, n) {
2246
- if (!e || !(e.format in i)) throw C(n + ".format must be 'triangular' or 'square'");
2247
- if (e.dimension !== t) throw C(n + ".dimension must equal numCols");
2248
- if (L(e.starts, t + 1, n + ".starts"), e.starts[0] !== 0) throw C(n + ".starts must begin with zero");
2249
- for (let t = 1; t < e.starts.length; t++) if (e.starts[t] < e.starts[t - 1]) throw C(n + ".starts must be monotonic");
2250
- let r = e.starts[t];
2251
- return L(e.indices, r, n + ".indices", t), I(e.values, r, n + ".values"), r;
2252
- }
2253
- function ne(e) {
2254
- if (!e || typeof e != "object") throw C("model must be an object");
2255
- let t = A(e.numCols, "numCols", 0), n = A(e.numRows, "numRows", 0);
2256
- I(e.colCost, t, "colCost"), I(e.colLower, t, "colLower"), I(e.colUpper, t, "colUpper"), I(e.rowLower, n, "rowLower"), I(e.rowUpper, n, "rowUpper");
2257
- let r = te(e.matrix, n, t, "matrix");
2258
- if (e.integrality != null) {
2259
- L(e.integrality, t, "integrality");
2260
- for (let n = 0; n < t; n++) if (e.integrality[n] > 4) throw C("integrality values must be between 0 and 4");
2261
- }
2262
- let i = e.hessian ? z(e.hessian, t, "hessian") : 0, a = e.sense == null ? 1 : e.sense;
2263
- if (a !== 1 && a !== -1) throw C("sense must be 1 (minimize) or -1 (maximize)");
2264
- if (F(e.offset == null ? 0 : e.offset, "offset"), e.modelName != null && typeof e.modelName != "string") throw C("modelName must be a string");
2265
- for (let [r, i, a] of [[
2266
- e.colNames,
2267
- t,
2268
- "colNames"
2269
- ], [
2270
- e.rowNames,
2271
- n,
2272
- "rowNames"
2273
- ]]) if (r != null) {
2274
- N(r, i, a);
2275
- for (let e = 0; e < r.length; e++) if (typeof r[e] != "string") throw C(a + "[" + e + "] must be a string");
2276
- }
2277
- return {
2278
- numCols: t,
2279
- numRows: n,
2280
- numNonzeros: r,
2281
- hessianNonzeros: i,
2282
- sense: a
2283
- };
2284
- }
2285
- function ie(e, t, n) {
2286
- if (!e || typeof e != "object") throw C(n + " must be an object");
2287
- F(e.weight, n + ".weight"), F(e.offset, n + ".offset"), I(e.coefficients, t, n + ".coefficients"), F(e.absoluteTolerance, n + ".absoluteTolerance"), F(e.relativeTolerance, n + ".relativeTolerance"), j(e.priority, n + ".priority");
2288
- }
2289
- class ae {
2290
- constructor() {
2291
- this.pointers = [];
2292
- }
2293
- bytes(e) {
2294
- A(e, "allocation size", 0);
2295
- let t = Kt(Math.max(1, e));
2296
- if (!t) throw RangeError("Unable to allocate WebAssembly memory");
2297
- return this.pointers.push(t), t;
2298
- }
2299
- ints(e) {
2300
- let t = this.bytes(e.length * 4);
2301
- return b().set(e, t >> 2), t;
2302
- }
2303
- doubles(e) {
2304
- let t = this.bytes(e.length * 8);
2305
- return x().set(e, t >> 3), t;
2306
- }
2307
- pack(e) {
2308
- let t = [], n = 0;
2309
- for (let r of e) {
2310
- let e = r.type === "f64" ? 8 : 4;
2311
- n = Math.ceil(n / e) * e, t.push(n), n += r.values.length * e;
2312
- }
2313
- let r = this.bytes(n);
2314
- return e.forEach((e, n) => {
2315
- let i = r + t[n];
2316
- e.type === "f64" ? x().set(e.values, i >> 3) : b().set(e.values, i >> 2);
2317
- }), t.map((e) => r + e);
2318
- }
2319
- outInts(e) {
2320
- let t = this.bytes(e * 4);
2321
- return b().fill(0, t >> 2, (t >> 2) + e), t;
2322
- }
2323
- outDoubles(e) {
2324
- let t = this.bytes(e * 8);
2325
- return x().fill(0, t >> 3, (t >> 3) + e), t;
2326
- }
2327
- free() {
2328
- for (let e = this.pointers.length - 1; e >= 0; e--) Gt(this.pointers[e]);
2329
- this.pointers.length = 0;
2330
- }
2331
- }
2332
- function B(e) {
2333
- let t = new ae();
2334
- try {
2335
- return e(t);
2336
- } finally {
2337
- t.free();
2338
- }
2339
- }
2340
- function V(e, t) {
2341
- return b().slice(e >> 2, (e >> 2) + t);
2342
- }
2343
- function H(e, t) {
2344
- return x().slice(e >> 3, (e >> 3) + t);
2345
- }
2346
- function oe(e) {
2347
- return new BigInt64Array(y().buffer, e, 1)[0];
2348
- }
2349
- function se(e) {
2350
- return "/tmp/highs-js-" + l++ + "." + e;
2351
- }
2352
- function ce(e, t) {
2353
- if (!e || e.format !== "lp" && e.format !== "mps") throw C("format must be 'lp' or 'mps'");
2354
- if (!(typeof e.data == "string" || ArrayBuffer.isView(e.data))) throw C("model data must be a string or Uint8Array");
2355
- let n = se(e.format);
2356
- try {
2357
- return Q.writeFile(n, e.data), t(n);
2358
- } finally {
2359
- try {
2360
- Q.unlink(n);
2361
- } catch {}
2362
- }
2363
- }
2364
- function le(e, t, n) {
2365
- if (typeof e != "string") throw C("data must be a string");
2366
- let r = se(t);
2367
- try {
2368
- return Q.writeFile(r, e), n(r);
2369
- } finally {
2370
- try {
2371
- Q.unlink(r);
2372
- } catch {}
2373
- }
2374
- }
2375
- function U(e, t, n) {
2376
- let r = se(e);
2377
- try {
2378
- let e = n(r);
2379
- return e === -1 ? O(e) : O(e, Q.readFile(r, t === "utf8" ? { encoding: "utf8" } : void 0));
2380
- } finally {
2381
- try {
2382
- Q.unlink(r);
2383
- } catch {}
2384
- }
2385
- }
2386
- function W(e) {
2387
- return /thread|parallel|concurr/i.test(e) || /(^|_)(log_file|read_.*_file|write_.*_file|solution_file|.*_file)$/.test(e) || /^write_.*_to_file$/.test(e);
2388
- }
2389
- function G(e) {
2390
- if (typeof e != "string" || !e) throw C("option name is required");
2391
- if (W(e)) throw E(e);
2392
- }
2393
- function ue(e) {
2394
- if (typeof e != "string" || !e) throw C("option name is required");
2395
- return !W(e);
2396
- }
2397
- function de(e) {
2398
- if (typeof e != "string") throw C("option data must be a string");
2399
- for (let t of e.split(/\r?\n/)) {
2400
- let e = /^\s*([A-Za-z][A-Za-z0-9_]*)\b/.exec(t);
2401
- e && !t.trimStart().startsWith("#") && G(e[1]);
2402
- }
2403
- }
2404
- function K(e, t, n, r) {
2405
- if (!e || typeof e != "object") throw C(r + " selection must be tagged");
2406
- if (e.kind === "range") {
2407
- let n = A(e.from, r + ".from", 0), i = A(e.to, r + ".to", 0);
2408
- if (i < n || i >= t) throw C(r + " range is outside the model");
2409
- return {
2410
- suffix: "ByRange",
2411
- prefix: [n, i],
2412
- count: i - n + 1
2413
- };
2414
- }
2415
- if (e.kind === "set") {
2416
- L(e.indices, null, r + ".indices", t);
2417
- for (let t = 1; t < e.indices.length; t++) if (e.indices[t] <= e.indices[t - 1]) throw C(r + " set indices must increase strictly");
2418
- return {
2419
- suffix: "BySet",
2420
- prefix: [e.indices.length, n.ints(e.indices)],
2421
- count: e.indices.length
2422
- };
2423
- }
2424
- if (e.kind === "mask") {
2425
- N(e.mask, t, r + ".mask");
2426
- let i = new Int32Array(t), a = 0;
2427
- for (let n = 0; n < t; n++) {
2428
- if (e.mask[n] !== !1 && e.mask[n] !== !0 && e.mask[n] !== 0 && e.mask[n] !== 1) throw C(r + ".mask values must be boolean, 0, or 1");
2429
- i[n] = +!!e.mask[n], a += i[n];
2430
- }
2431
- return {
2432
- suffix: "ByMask",
2433
- prefix: [n.ints(i)],
2434
- count: a
2435
- };
2436
- }
2437
- throw C(r + ".kind must be 'range', 'set', or 'mask'");
2438
- }
2439
- function q(e) {
2440
- return {
2441
- numCols: _("Highs_getNumCol", 1)(e),
2442
- numRows: _("Highs_getNumRow", 1)(e),
2443
- numNonzeros: _("Highs_getNumNz", 1)(e),
2444
- hessianNonzeros: _("Highs_getHessianNumNz", 1)(e)
2445
- };
2446
- }
2447
- function fe(e) {
2448
- return {
2449
- numCols: _("Highs_getPresolvedNumCol", 1)(e),
2450
- numRows: _("Highs_getPresolvedNumRow", 1)(e),
2451
- numNonzeros: _("Highs_getPresolvedNumNz", 1)(e)
2452
- };
2453
- }
2454
- class pe {
2455
- constructor(e) {
2456
- t.set(this, void 0), n.set(this, void 0), this._callbackNumCols = 0, Dn(this, t, e, "f"), Dn(this, n, !1, "f"), this._callbackDepth = 0, this._callbackId = 0, this._callbackError = void 0, this._callbackErrorPending = !1, o.set(e, this);
2457
- }
2458
- get disposed() {
2459
- return On(this, n, "f");
2460
- }
2461
- _require(e = !1) {
2462
- if (On(this, n, "f")) throw w();
2463
- if (this._callbackDepth && !e) throw ee();
2464
- return On(this, t, "f");
2465
- }
2466
- _rememberCallbackError(e) {
2467
- this._callbackErrorPending ||= (this._callbackError = e, !0);
2468
- }
2469
- _throwCallbackError() {
2470
- if (!this._callbackErrorPending) return;
2471
- let e = this._callbackError;
2472
- throw this._callbackError = void 0, this._callbackErrorPending = !1, e;
2473
- }
2474
- clear() {
2475
- return this._simple("Highs_clear");
2476
- }
2477
- clearSolver() {
2478
- return this._simple("Highs_clearSolver");
2479
- }
2480
- presolve() {
2481
- return this._simple("Highs_presolve");
2482
- }
2483
- getRunTime() {
2484
- return _("Highs_getRunTime", 1)(this._require(!1));
2485
- }
2486
- readModel(e) {
2487
- let t = this._require(!1);
2488
- return D(ce(e, function(e) {
2489
- return v("Highs_readModel", 1, 0)(t, e);
2490
- }));
2491
- }
2492
- exportPresolvedModel(e) {
2493
- let t = this._require(!1);
2494
- if (e !== "lp" && e !== "mps") throw C("format must be 'lp' or 'mps'");
2495
- return U(e, e === "lp" ? "utf8" : void 0, function(e) {
2496
- return v("Highs_writePresolvedModel", 1, 0)(t, e);
2497
- });
2498
- }
2499
- passModel(e) {
2500
- let t = this._require(!1), n = B(function(n) {
2501
- let r = he(e, n);
2502
- return _("Highs_passModel", 21).apply(null, [t].concat(r.values));
2503
- }), r = n === -1 ? n : ge(t, e);
2504
- return D(n === -1 || r === -1 ? -1 : Math.max(n, r));
2505
- }
2506
- passMip(e) {
2507
- let t = this._require(!1), n = B(function(n) {
2508
- let i = ne(e), a = e.matrix;
2509
- if (!e.integrality) throw C("passMip requires an integrality vector");
2510
- let o = me(e, n, !0);
2511
- return _("Highs_passMip", 16)(t, i.numCols, i.numRows, i.numNonzeros, r[a.format], i.sense, e.offset == null ? 0 : e.offset, ...o);
2512
- }), i = n === -1 ? n : ge(t, e);
2513
- return D(n === -1 || i === -1 ? -1 : Math.max(n, i));
2514
- }
2515
- passHessian(e) {
2516
- let t = this._require(!1), n = q(t).numCols;
2517
- return D(B(function(r) {
2518
- let a = z(e, n, "hessian");
2519
- return _("Highs_passHessian", 7)(t, n, a, i[e.format], r.ints(Array.prototype.slice.call(e.starts, 0, -1)), r.ints(e.indices), r.doubles(e.values));
2520
- }));
2521
- }
2522
- addLinearObjective(e) {
2523
- let t = this._require(!1), n = q(t).numCols;
2524
- return ie(e, n, "objective"), D(B(function(n) {
2525
- return _("Highs_addLinearObjective", 7)(t, e.weight, e.offset, n.doubles(e.coefficients), e.absoluteTolerance, e.relativeTolerance, j(e.priority, "priority"));
2526
- }));
2527
- }
2528
- passRowName(e, t) {
2529
- let n = this._require(!1);
2530
- if (A(e, "row", 0), typeof t != "string") throw C("name must be a string");
2531
- return D(v("Highs_passRowName", 2, 0)(n, e, t));
2532
- }
2533
- passModelName(e) {
2534
- if (typeof e != "string") throw C("name must be a string");
2535
- return D(v("Highs_passModelName", 1, 0)(this._require(!1), e));
2536
- }
2537
- getOptionType(e) {
2538
- let t = this._require(!1);
2539
- return ue(e) ? B(function(n) {
2540
- let r = n.outInts(1);
2541
- return O(v("Highs_getOptionType", 1, 1)(t, e, r), [
2542
- "boolean",
2543
- "integer",
2544
- "double",
2545
- "string"
2546
- ][b()[r >> 2]]);
2547
- }) : O(-1);
2548
- }
2549
- resetOptions() {
2550
- return this._simple("Highs_resetOptions");
2551
- }
2552
- exportOptions(e) {
2553
- let t = this._require(!1), n = U("options", "utf8", function(n) {
2554
- return v(e ? "Highs_writeOptionsDeviations" : "Highs_writeOptions", 1, 0)(t, n);
2555
- });
2556
- return n.status !== -1 && (n.value = n.value.split(/\r?\n/).filter(function(e) {
2557
- let t = /^\s*([A-Za-z][A-Za-z0-9_]*)\b/.exec(e);
2558
- return !t || !W(t[1]);
2559
- }).join("\n")), n;
2560
- }
2561
- getOptionName(e) {
2562
- let t = this._require(!1);
2563
- return A(e, "option index", 0), B(function(n) {
2564
- let r = n.outInts(1), i = _("Highs_getOptionName", 3)(t, e, r), a = b()[r >> 2] >>> 0;
2565
- if (!a) return O(i, "");
2566
- try {
2567
- return O(i, S(a));
2568
- } finally {
2569
- Gt(a);
2570
- }
2571
- });
2572
- }
2573
- getInfoType(e) {
2574
- let t = this._require(!1);
2575
- if (typeof e != "string" || !e) throw C("info name is required");
2576
- return B(function(n) {
2577
- let r = n.outInts(1), i = v("Highs_getInfoType", 1, 1)(t, e, r), a = b()[r >> 2];
2578
- return O(i, a === -1 ? "int64" : a === 1 ? "integer" : a === 2 ? "double" : void 0);
2579
- });
2580
- }
2581
- getDimensions() {
2582
- return q(this._require(!1));
2583
- }
2584
- getInfinity() {
2585
- return _("Highs_getInfinity", 1)(this._require(!1));
2586
- }
2587
- getModelStatus() {
2588
- return _("Highs_getModelStatus", 1)(this._require(!1));
2589
- }
2590
- getSolution() {
2591
- let e = this._require(!1), t = this.getModelStatus();
2592
- if (t === 0 || t === 6) throw new d("The model has not been solved", "getSolution");
2593
- let n = q(e);
2594
- return B(function(t) {
2595
- let r = t.outDoubles(n.numCols), i = t.outDoubles(n.numCols), a = t.outDoubles(n.numRows), o = t.outDoubles(n.numRows);
2596
- return O(_("Highs_getSolution", 5)(e, r, i, a, o), {
2597
- colValue: H(r, n.numCols),
2598
- rowValue: H(a, n.numRows),
2599
- colDual: H(i, n.numCols),
2600
- rowDual: H(o, n.numRows)
2601
- });
2602
- });
2603
- }
2604
- setSolution(e) {
2605
- let t = this._require(!1), n = q(t);
2606
- return D(B(function(r) {
2607
- function i(e, t, n) {
2608
- return e == null ? 0 : (I(e, t, n), r.doubles(e));
2609
- }
2610
- return _("Highs_setSolution", 5)(t, i(e.colValue, n.numCols, "colValue"), i(e.rowValue, n.numRows, "rowValue"), i(e.colDual, n.numCols, "colDual"), i(e.rowDual, n.numRows, "rowDual"));
2611
- }));
2612
- }
2613
- setBasis(e) {
2614
- let t = this._require(!1), n = q(t);
2615
- if (!e) throw C("basis is required");
2616
- return L(e.colStatus, n.numCols, "colStatus"), L(e.rowStatus, n.numRows, "rowStatus"), D(B(function(n) {
2617
- return _("Highs_setBasis", 3)(t, n.ints(e.colStatus), n.ints(e.rowStatus));
2618
- }));
2619
- }
2620
- postsolve(e) {
2621
- let t = this._require(!1), n = fe(t);
2622
- if (!e || e.colValue == null) throw C("postsolve requires colValue");
2623
- return I(e.colValue, n.numCols, "colValue"), e.colDual != null && I(e.colDual, n.numCols, "colDual"), e.rowDual != null && I(e.rowDual, n.numRows, "rowDual"), D(B(function(n) {
2624
- return _("Highs_postsolve", 4)(t, n.doubles(e.colValue), e.colDual ? n.doubles(e.colDual) : 0, e.rowDual ? n.doubles(e.rowDual) : 0);
2625
- }));
2626
- }
2627
- getObjectiveOffset() {
2628
- let e = this._require(!1);
2629
- return B(function(t) {
2630
- let n = t.outDoubles(1);
2631
- return O(_("Highs_getObjectiveOffset", 2)(e, n), x()[n >> 3]);
2632
- });
2633
- }
2634
- getModel(e) {
2635
- return J(this, "Highs_getModel", e, !0);
2636
- }
2637
- getPresolvedLp(e) {
2638
- return J(this, "Highs_getPresolvedLp", e, !1);
2639
- }
2640
- getFixedLp(e) {
2641
- let t = J(this, "Highs_getFixedLp", e, !1);
2642
- return t.status !== -1 && t.value && t.value.integrality.fill(0), t;
2643
- }
2644
- ensureRowwise() {
2645
- return this._simple("Highs_ensureRowwise");
2646
- }
2647
- addVars(e, t) {
2648
- let n = this._require(!1);
2649
- return M(e, "lower"), I(t, e.length, "upper"), I(e, e.length, "lower"), D(B(function(r) {
2650
- return _("Highs_addVars", 4)(n, e.length, r.doubles(e), r.doubles(t));
2651
- }));
2652
- }
2653
- addCol(e, t, n, r) {
2654
- let i = this._require(!1);
2655
- return F(e, "cost"), F(t, "lower"), F(n, "upper"), _e(r, q(i).numRows), D(B(function(a) {
2656
- return _("Highs_addCol", 7)(i, e, t, n, r.indices.length, a.ints(r.indices), a.doubles(r.values));
2657
- }));
2658
- }
2659
- addCols(e) {
2660
- let t = this._require(!1), n = q(t).numRows;
2661
- if (!e || !e.matrix) throw C("column data and matrix are required");
2662
- let r = e.cost.length;
2663
- if (I(e.cost, r, "cost"), I(e.lower, r, "lower"), I(e.upper, r, "upper"), e.matrix.format !== "csc") throw C("addCols requires a csc matrix");
2664
- let i = te(e.matrix, n, r, "matrix");
2665
- return D(B(function(n) {
2666
- return _("Highs_addCols", 9)(t, r, n.doubles(e.cost), n.doubles(e.lower), n.doubles(e.upper), i, n.ints(Array.prototype.slice.call(e.matrix.starts, 0, -1)), n.ints(e.matrix.indices), n.doubles(e.matrix.values));
2667
- }));
2668
- }
2669
- changeObjectiveSense(e) {
2670
- if (e !== 1 && e !== -1) throw C("sense must be 1 or -1");
2671
- return D(_("Highs_changeObjectiveSense", 2)(this._require(!1), e));
2672
- }
2673
- changeColIntegrality(e, t) {
2674
- if (A(e, "column", 0), A(t, "integrality", 0), t > 4) throw C("integrality must be between 0 and 4");
2675
- return D(_("Highs_changeColIntegrality", 3)(this._require(!1), e, t));
2676
- }
2677
- changeColCost(e, t) {
2678
- return A(e, "column", 0), F(t, "cost"), D(_("Highs_changeColCost", 3)(this._require(!1), e, t));
2679
- }
2680
- changeRowBounds(e, t, n) {
2681
- return A(e, "row", 0), F(t, "lower"), F(n, "upper"), D(_("Highs_changeRowBounds", 4)(this._require(!1), e, t, n));
2682
- }
2683
- changeColsIntegrality(e, t) {
2684
- let n = q(this._require(!1)).numCols;
2685
- return Y(this, "changeColsIntegrality", e, [], [t], n, "columns");
2686
- }
2687
- changeColsBounds(e, t, n) {
2688
- let r = q(this._require(!1)).numCols;
2689
- return Y(this, "changeColsBounds", e, [t, n], [], r, "columns");
2690
- }
2691
- deleteCols(e) {
2692
- return ve(this, "Cols", e, q(this._require(!1)).numCols);
2693
- }
2694
- scaleCol(e, t) {
2695
- return A(e, "column", 0), F(t, "factor"), D(_("Highs_scaleCol", 3)(this._require(!1), e, t));
2696
- }
2697
- getCols(e) {
2698
- return X(this, "Cols", e);
2699
- }
2700
- getColName(e) {
2701
- return ye(this, "Highs_js_getColName", e);
2702
- }
2703
- getPresolvedColName(e) {
2704
- return ye(this, "Highs_js_getPresolvedColName", e);
2705
- }
2706
- getColByName(e) {
2707
- return be(this, "Col", e);
2708
- }
2709
- getColIntegrality(e) {
2710
- let t = this._require(!1);
2711
- return A(e, "column", 0), B(function(n) {
2712
- let r = n.outInts(1);
2713
- return O(_("Highs_getColIntegrality", 3)(t, e, r), b()[r >> 2]);
2714
- });
2715
- }
2716
- getPrimalRay() {
2717
- return xe(this, "Highs_getPrimalRay", q(this._require(!1)).numCols);
2718
- }
2719
- getDualUnboundednessDirection() {
2720
- return xe(this, "Highs_getDualUnboundednessDirection", q(this._require(!1)).numCols);
2721
- }
2722
- getBasisInverseRow(e, t) {
2723
- return Se(this, "Highs_getBasisInverseRow", e, q(this._require(!1)).numRows, t);
2724
- }
2725
- getBasisSolve(e, t) {
2726
- return Ce(this, "Highs_getBasisSolve", e, t);
2727
- }
2728
- getReducedRow(e, t) {
2729
- let n = this._require(!1), r = q(n);
2730
- return A(e, "row", 0), B(function(i) {
2731
- let a = i.outDoubles(r.numCols), o = i.outInts(1), s = i.outInts(r.numCols), c = _("Highs_getReducedRow", 5)(n, e, a, o, s), l = { values: H(a, r.numCols) };
2732
- return t && (l.nonzeroIndices = V(s, b()[o >> 2])), O(c, l);
2733
- });
2734
- }
2735
- crossover(e) {
2736
- let t = this._require(!1), n = q(t);
2737
- if (!e || e.colValue == null) throw C("crossover requires colValue");
2738
- if (I(e.colValue, n.numCols, "colValue"), e.colDual == null != (e.rowDual == null)) throw C("colDual and rowDual must be supplied together");
2739
- return e.colDual && I(e.colDual, n.numCols, "colDual"), e.rowDual && I(e.rowDual, n.numRows, "rowDual"), D(B(function(r) {
2740
- return _("Highs_crossover", 6)(t, n.numCols, n.numRows, r.doubles(e.colValue), e.colDual ? r.doubles(e.colDual) : 0, e.rowDual ? r.doubles(e.rowDual) : 0);
2741
- }));
2742
- }
2743
- getRanging() {
2744
- let e = this._require(!1), t = q(e);
2745
- return B(function(n) {
2746
- let r = we(n, t.numCols), i = we(n, t.numCols), a = we(n, t.numCols), o = we(n, t.numCols), s = we(n, t.numRows), c = we(n, t.numRows), l = [
2747
- r,
2748
- i,
2749
- a,
2750
- o,
2751
- s,
2752
- c
2753
- ], u = [e];
2754
- return l.forEach(function(e) {
2755
- u.push(e.valuePointer, e.objectivePointer, e.inPointer, e.outPointer);
2756
- }), O(_("Highs_getRanging", u.length).apply(null, u), {
2757
- colCostUp: r.detach(),
2758
- colCostDown: i.detach(),
2759
- colBoundUp: a.detach(),
2760
- colBoundDown: o.detach(),
2761
- rowBoundUp: s.detach(),
2762
- rowBoundDown: c.detach()
2763
- });
2764
- });
2765
- }
2766
- setCallback(e) {
2767
- let t = this._require(!1);
2768
- if (e != null && typeof e != "function") throw C("callback must be a function or undefined");
2769
- let n = this._callbackId;
2770
- if (!e) {
2771
- let e = _("Highs_js_setCallback", 3)(t, 0, 0);
2772
- return e !== -1 && (n && a.delete(n), this._callbackId = 0), D(e);
2773
- }
2774
- let r = c++;
2775
- a.set(r, {
2776
- raw: this,
2777
- callback: e
2778
- });
2779
- let i = _("Highs_js_setCallback", 3)(t, Oe(), r);
2780
- return i === -1 ? a.delete(r) : (n && a.delete(n), this._callbackId = r), D(i);
2781
- }
2782
- startCallback(e) {
2783
- return ke(e), D(_("Highs_startCallback", 2)(this._require(!1), e));
2784
- }
2785
- dispose() {
2786
- if (On(this, n, "f")) return;
2787
- let e = this._require(!1);
2788
- this._callbackId && a.delete(this._callbackId), o.delete(e), _("Highs_destroy", 1, null)(e), Dn(this, t, 0, "f"), Dn(this, n, !0, "f");
2789
- }
2790
- _simple(e) {
2791
- return D(_(e, 1)(this._require(!1)));
2792
- }
2793
- clearModel() {
2794
- return this._simple("Highs_clearModel");
2795
- }
2796
- releaseMemory() {
2797
- return this._simple("Highs_releaseMemory");
2798
- }
2799
- zeroAllClocks() {
2800
- return this._simple("Highs_zeroAllClocks");
2801
- }
2802
- run() {
2803
- let e = this._require(!1);
2804
- return this._callbackNumCols = q(e).numCols, D(_("Highs_run", 1)(e));
2805
- }
2806
- exportModel(e) {
2807
- let t = this._require(!1);
2808
- if (e !== "lp" && e !== "mps") throw C("format must be 'lp' or 'mps'");
2809
- return U(e, e === "lp" ? "utf8" : void 0, function(e) {
2810
- return v("Highs_writeModel", 1, 0)(t, e);
2811
- });
2812
- }
2813
- exportSolution(e) {
2814
- let t = this._require(!1);
2815
- return U("sol", "utf8", function(n) {
2816
- return v(e ? "Highs_writeSolutionPretty" : "Highs_writeSolution", 1, 0)(t, n);
2817
- });
2818
- }
2819
- passLp(e) {
2820
- let t = this._require(!1), n = B(function(n) {
2821
- let i = ne(e), a = e.matrix, o = me(e, n, !1);
2822
- return _("Highs_passLp", 15)(t, i.numCols, i.numRows, i.numNonzeros, r[a.format], i.sense, e.offset == null ? 0 : e.offset, ...o);
2823
- }), i = n === -1 ? n : ge(t, e);
2824
- return D(n === -1 || i === -1 ? -1 : Math.max(n, i));
2825
- }
2826
- passLinearObjectives(e) {
2827
- let t = this._require(!1), n = q(t).numCols;
2828
- return M(e, "objectives"), D(B(function(r) {
2829
- let i = e.length, a = new Float64Array(i), o = new Float64Array(i), s = new Float64Array(i * n), c = new Float64Array(i), l = new Float64Array(i), u = new Int32Array(i);
2830
- for (let t = 0; t < i; t++) {
2831
- let r = e[t];
2832
- ie(r, n, "objectives[" + t + "]"), a[t] = r.weight, o[t] = r.offset, s.set(r.coefficients, t * n), c[t] = r.absoluteTolerance, l[t] = r.relativeTolerance, u[t] = j(r.priority, "objectives[" + t + "].priority");
2833
- }
2834
- return _("Highs_passLinearObjectives", 8)(t, i, r.doubles(a), r.doubles(o), r.doubles(s), r.doubles(c), r.doubles(l), r.ints(u));
2835
- }));
2836
- }
2837
- clearLinearObjectives() {
2838
- return this._simple("Highs_clearLinearObjectives");
2839
- }
2840
- passColName(e, t) {
2841
- let n = this._require(!1);
2842
- if (A(e, "column", 0), typeof t != "string") throw C("name must be a string");
2843
- return D(v("Highs_passColName", 2, 0)(n, e, t));
2844
- }
2845
- setOptionValue(e, t) {
2846
- let n = this._require(!1);
2847
- if (!ue(e)) return D(-1);
2848
- let r = typeof t, i;
2849
- if (r === "boolean") i = v("Highs_setBoolOptionValue", 1, 1)(n, e, +!!t);
2850
- else if (r === "string") i = g("Highs_setStringOptionValue", "number", [
2851
- "number",
2852
- "string",
2853
- "string"
2854
- ])(n, e, t);
2855
- else if (r === "number") {
2856
- if (!Number.isFinite(t)) throw C("numeric option values must be finite");
2857
- Number.isSafeInteger(t) && t >= -2147483648 && t <= 2147483647 ? (i = v("Highs_setIntOptionValue", 1, 1)(n, e, t), i === -1 && (i = v("Highs_setDoubleOptionValue", 1, 1)(n, e, t))) : i = v("Highs_setDoubleOptionValue", 1, 1)(n, e, t);
2858
- } else throw C("option values must be boolean, number, or string");
2859
- return D(i);
2860
- }
2861
- getOptionValue(e) {
2862
- let t = this._require(!1);
2863
- if (!ue(e)) return O(-1);
2864
- let n = this.getOptionType(e);
2865
- return n.status === -1 ? O(-1) : B(function(r) {
2866
- if (n.value === "string") {
2867
- let n = r.bytes(512);
2868
- return O(v("Highs_getStringOptionValue", 1, 1)(t, e, n), S(n));
2869
- }
2870
- if (n.value === "double") {
2871
- let n = r.outDoubles(1);
2872
- return O(v("Highs_getDoubleOptionValue", 1, 1)(t, e, n), x()[n >> 3]);
2873
- }
2874
- let i = r.outInts(1), a = v(n.value === "boolean" ? "Highs_getBoolOptionValue" : "Highs_getIntOptionValue", 1, 1)(t, e, i), o = b()[i >> 2];
2875
- return O(a, n.value === "boolean" ? !!o : o);
2876
- });
2877
- }
2878
- readOptions(e) {
2879
- let t = this._require(!1);
2880
- if (typeof e != "string") throw C("option data must be a string");
2881
- for (let t of e.split(/\r?\n/)) {
2882
- let e = /^\s*([A-Za-z][A-Za-z0-9_]*)\b/.exec(t);
2883
- if (e && !t.trimStart().startsWith("#") && !ue(e[1])) return D(-1);
2884
- }
2885
- return D(le(e, "options", function(e) {
2886
- return v("Highs_readOptions", 1, 0)(t, e);
2887
- }));
2888
- }
2889
- getNumOptions() {
2890
- return _("Highs_getNumOptions", 1)(this._require(!1));
2891
- }
2892
- getOptionValues(e) {
2893
- let t = this._require(!1);
2894
- if (!ue(e)) return O(-1);
2895
- let n = this.getOptionType(e);
2896
- return n.status === -1 ? O(-1) : B(function(r) {
2897
- let i = n.value;
2898
- if (i === "boolean") {
2899
- let n = r.outInts(1), a = r.outInts(1);
2900
- return O(v("Highs_getBoolOptionValues", 1, 2)(t, e, n, a), {
2901
- name: e,
2902
- type: i,
2903
- current: !!b()[n >> 2],
2904
- default: !!b()[a >> 2]
2905
- });
2906
- }
2907
- if (i === "integer") {
2908
- let n = r.outInts(1), a = r.outInts(1), o = r.outInts(1), s = r.outInts(1);
2909
- return O(v("Highs_getIntOptionValues", 1, 4)(t, e, n, a, o, s), {
2910
- name: e,
2911
- type: i,
2912
- current: b()[n >> 2],
2913
- default: b()[s >> 2],
2914
- minimum: b()[a >> 2],
2915
- maximum: b()[o >> 2]
2916
- });
2917
- }
2918
- if (i === "double") {
2919
- let n = r.outDoubles(1), a = r.outDoubles(1), o = r.outDoubles(1), s = r.outDoubles(1);
2920
- return O(v("Highs_getDoubleOptionValues", 1, 4)(t, e, n, a, o, s), {
2921
- name: e,
2922
- type: i,
2923
- current: x()[n >> 3],
2924
- default: x()[s >> 3],
2925
- minimum: x()[a >> 3],
2926
- maximum: x()[o >> 3]
2927
- });
2928
- }
2929
- let a = r.bytes(512), o = r.bytes(512);
2930
- return O(v("Highs_getStringOptionValues", 1, 2)(t, e, a, o), {
2931
- name: e,
2932
- type: i,
2933
- current: S(a),
2934
- default: S(o)
2935
- });
2936
- });
2937
- }
2938
- getInfoValue(e) {
2939
- let t = this._require(!1), n = this.getInfoType(e);
2940
- return n.status === -1 ? O(-1) : B(function(r) {
2941
- if (n.value === "double") {
2942
- let n = r.outDoubles(1);
2943
- return O(v("Highs_getDoubleInfoValue", 1, 1)(t, e, n), x()[n >> 3]);
2944
- }
2945
- if (n.value === "int64") {
2946
- let n = r.bytes(8);
2947
- return O(v("Highs_getInt64InfoValue", 1, 1)(t, e, n), oe(n));
2948
- }
2949
- let i = r.outInts(1);
2950
- return O(v("Highs_getIntInfoValue", 1, 1)(t, e, i), b()[i >> 2]);
2951
- });
2952
- }
2953
- getPresolvedDimensions() {
2954
- return fe(this._require(!1));
2955
- }
2956
- getSizeofHighsInt() {
2957
- return _("Highs_getSizeofHighsInt", 1)(this._require(!1));
2958
- }
2959
- getObjectiveValue() {
2960
- return _("Highs_getObjectiveValue", 1)(this._require(!1));
2961
- }
2962
- getBasis() {
2963
- let e = this._require(!1), t = this.getModelStatus();
2964
- if (t === 0 || t === 6) throw new d("The model has not been solved", "getBasis");
2965
- let n = q(e);
2966
- return B(function(t) {
2967
- let r = t.outInts(n.numCols), i = t.outInts(n.numRows);
2968
- return O(_("Highs_getBasis", 3)(e, r, i), {
2969
- colStatus: V(r, n.numCols),
2970
- rowStatus: V(i, n.numRows)
2971
- });
2972
- });
2973
- }
2974
- setSparseSolution(e) {
2975
- let t = this._require(!1);
2976
- if (!e) throw C("solution is required");
2977
- let n = e.indices.length;
2978
- return L(e.indices, null, "indices", q(t).numCols), I(e.values, n, "values"), D(B(function(r) {
2979
- return _("Highs_setSparseSolution", 4)(t, n, r.ints(e.indices), r.doubles(e.values));
2980
- }));
2981
- }
2982
- setLogicalBasis() {
2983
- return this._simple("Highs_setLogicalBasis");
2984
- }
2985
- getObjectiveSense() {
2986
- let e = this._require(!1);
2987
- return B(function(t) {
2988
- let n = t.outInts(1);
2989
- return O(_("Highs_getObjectiveSense", 2)(e, n), b()[n >> 2]);
2990
- });
2991
- }
2992
- getLp(e) {
2993
- return J(this, "Highs_getLp", e, !1);
2994
- }
2995
- getIisLp(e) {
2996
- return J(this, "Highs_getIisLp", e, !1);
2997
- }
2998
- ensureColwise() {
2999
- return this._simple("Highs_ensureColwise");
3000
- }
3001
- addVar(e, t) {
3002
- return F(e, "lower"), F(t, "upper"), D(_("Highs_addVar", 3)(this._require(!1), e, t));
3003
- }
3004
- addRow(e, t, n) {
3005
- let r = this._require(!1);
3006
- return F(e, "lower"), F(t, "upper"), _e(n, q(r).numCols), D(B(function(i) {
3007
- return _("Highs_addRow", 6)(r, e, t, n.indices.length, i.ints(n.indices), i.doubles(n.values));
3008
- }));
3009
- }
3010
- addRows(e) {
3011
- let t = this._require(!1), n = q(t).numCols;
3012
- if (!e || !e.matrix) throw C("row data and matrix are required");
3013
- let r = e.lower.length;
3014
- if (I(e.lower, r, "lower"), I(e.upper, r, "upper"), e.matrix.format !== "csr") throw C("addRows requires a csr matrix");
3015
- let i = te(e.matrix, r, n, "matrix");
3016
- return D(B(function(n) {
3017
- return _("Highs_addRows", 8)(t, r, n.doubles(e.lower), n.doubles(e.upper), i, n.ints(Array.prototype.slice.call(e.matrix.starts, 0, -1)), n.ints(e.matrix.indices), n.doubles(e.matrix.values));
3018
- }));
3019
- }
3020
- changeObjectiveOffset(e) {
3021
- return F(e, "offset"), D(_("Highs_changeObjectiveOffset", 2)(this._require(!1), e));
3022
- }
3023
- clearIntegrality() {
3024
- return this._simple("Highs_clearIntegrality");
3025
- }
3026
- changeColBounds(e, t, n) {
3027
- return A(e, "column", 0), F(t, "lower"), F(n, "upper"), D(_("Highs_changeColBounds", 4)(this._require(!1), e, t, n));
3028
- }
3029
- changeCoeff(e, t, n) {
3030
- return A(e, "row", 0), A(t, "column", 0), F(n, "value"), D(_("Highs_changeCoeff", 4)(this._require(!1), e, t, n));
3031
- }
3032
- changeColsCost(e, t) {
3033
- let n = q(this._require(!1)).numCols;
3034
- return Y(this, "changeColsCost", e, [t], [], n, "columns");
3035
- }
3036
- changeRowsBounds(e, t, n) {
3037
- let r = q(this._require(!1)).numRows;
3038
- return Y(this, "changeRowsBounds", e, [t, n], [], r, "rows");
3039
- }
3040
- deleteRows(e) {
3041
- return ve(this, "Rows", e, q(this._require(!1)).numRows);
3042
- }
3043
- scaleRow(e, t) {
3044
- return A(e, "row", 0), F(t, "factor"), D(_("Highs_scaleRow", 3)(this._require(!1), e, t));
3045
- }
3046
- getRows(e) {
3047
- return X(this, "Rows", e);
3048
- }
3049
- getRowName(e) {
3050
- return ye(this, "Highs_js_getRowName", e);
3051
- }
3052
- getPresolvedRowName(e) {
3053
- return ye(this, "Highs_js_getPresolvedRowName", e);
3054
- }
3055
- getRowByName(e) {
3056
- return be(this, "Row", e);
3057
- }
3058
- getDualRay() {
3059
- return xe(this, "Highs_getDualRay", q(this._require(!1)).numRows);
3060
- }
3061
- getBasicVariables() {
3062
- let e = this._require(!1), t = q(e).numRows;
3063
- return B(function(n) {
3064
- let r = n.outInts(t);
3065
- return O(_("Highs_getBasicVariables", 2)(e, r), V(r, t));
3066
- });
3067
- }
3068
- getBasisInverseCol(e, t) {
3069
- return Se(this, "Highs_getBasisInverseCol", e, q(this._require(!1)).numRows, t);
3070
- }
3071
- getBasisTransposeSolve(e, t) {
3072
- return Ce(this, "Highs_getBasisTransposeSolve", e, t);
3073
- }
3074
- getReducedColumn(e, t) {
3075
- return Se(this, "Highs_getReducedColumn", e, q(this._require(!1)).numRows, t);
3076
- }
3077
- feasibilityRelaxation(e) {
3078
- let t = this._require(!1), n = q(t);
3079
- if (!e) throw C("relaxation input is required");
3080
- return F(e.globalLowerPenalty, "globalLowerPenalty"), F(e.globalUpperPenalty, "globalUpperPenalty"), F(e.globalRowPenalty, "globalRowPenalty"), D(B(function(r) {
3081
- function i(e, t, n) {
3082
- return e == null ? 0 : (I(e, t, n), r.doubles(e));
3083
- }
3084
- return _("Highs_feasibilityRelaxation", 7)(t, e.globalLowerPenalty, e.globalUpperPenalty, e.globalRowPenalty, i(e.localLowerPenalty, n.numCols, "localLowerPenalty"), i(e.localUpperPenalty, n.numCols, "localUpperPenalty"), i(e.localRowPenalty, n.numRows, "localRowPenalty"));
3085
- }));
3086
- }
3087
- getIis() {
3088
- let e = this._require(!1), t = q(e);
3089
- return B(function(n) {
3090
- let r = n.outInts(1), i = n.outInts(1), a = n.outInts(t.numCols), o = n.outInts(t.numRows), s = n.outInts(t.numCols), c = n.outInts(t.numRows), l = n.outInts(t.numCols), u = n.outInts(t.numRows), d = _("Highs_getIis", 9)(e, r, i, a, o, s, c, l, u);
3091
- if (d === -1) return O(d);
3092
- let f = b()[r >> 2], p = b()[i >> 2];
3093
- if (f < 0 || f > t.numCols || p < 0 || p > t.numRows) throw RangeError("HiGHS returned invalid IIS dimensions");
3094
- return O(d, {
3095
- colIndex: V(a, f),
3096
- rowIndex: V(o, p),
3097
- colBound: V(s, f),
3098
- rowBound: V(c, p),
3099
- colStatus: V(l, t.numCols),
3100
- rowStatus: V(u, t.numRows)
3101
- });
3102
- });
3103
- }
3104
- stopCallback(e) {
3105
- return ke(e), D(_("Highs_stopCallback", 2)(this._require(!1), e));
3106
- }
3107
- }
3108
- t = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakMap();
3109
- function me(e, t, n) {
3110
- let r = e.matrix;
3111
- return t.pack([
3112
- {
3113
- type: "f64",
3114
- values: e.colCost
3115
- },
3116
- {
3117
- type: "f64",
3118
- values: e.colLower
3119
- },
3120
- {
3121
- type: "f64",
3122
- values: e.colUpper
3123
- },
3124
- {
3125
- type: "f64",
3126
- values: e.rowLower
3127
- },
3128
- {
3129
- type: "f64",
3130
- values: e.rowUpper
3131
- },
3132
- {
3133
- type: "i32",
3134
- values: Array.prototype.slice.call(r.starts, 0, -1)
3135
- },
3136
- {
3137
- type: "i32",
3138
- values: r.indices
3139
- },
3140
- {
3141
- type: "f64",
3142
- values: r.values
3143
- },
3144
- ...n ? [{
3145
- type: "i32",
3146
- values: e.integrality
3147
- }] : []
3148
- ]);
3149
- }
3150
- function he(e, t) {
3151
- let n = ne(e), a = e.matrix, o = e.hessian, s = t.pack([
3152
- {
3153
- type: "f64",
3154
- values: e.colCost
3155
- },
3156
- {
3157
- type: "f64",
3158
- values: e.colLower
3159
- },
3160
- {
3161
- type: "f64",
3162
- values: e.colUpper
3163
- },
3164
- {
3165
- type: "f64",
3166
- values: e.rowLower
3167
- },
3168
- {
3169
- type: "f64",
3170
- values: e.rowUpper
3171
- },
3172
- {
3173
- type: "i32",
3174
- values: Array.prototype.slice.call(a.starts, 0, -1)
3175
- },
3176
- {
3177
- type: "i32",
3178
- values: a.indices
3179
- },
3180
- {
3181
- type: "f64",
3182
- values: a.values
3183
- },
3184
- ...o ? [
3185
- {
3186
- type: "i32",
3187
- values: Array.prototype.slice.call(o.starts, 0, -1)
3188
- },
3189
- {
3190
- type: "i32",
3191
- values: o.indices
3192
- },
3193
- {
3194
- type: "f64",
3195
- values: o.values
3196
- }
3197
- ] : [],
3198
- ...e.integrality ? [{
3199
- type: "i32",
3200
- values: e.integrality
3201
- }] : []
3202
- ]), c = 0, l = s[c++], u = s[c++], d = s[c++], f = s[c++], p = s[c++], m = s[c++], h = s[c++], g = s[c++], _ = o ? s[c++] : 0, v = o ? s[c++] : 0, y = o ? s[c++] : 0, b = e.integrality ? s[c] : 0;
3203
- return {
3204
- shape: n,
3205
- values: [
3206
- n.numCols,
3207
- n.numRows,
3208
- n.numNonzeros,
3209
- n.hessianNonzeros,
3210
- r[a.format],
3211
- o ? i[o.format] : 1,
3212
- n.sense,
3213
- e.offset == null ? 0 : e.offset,
3214
- l,
3215
- u,
3216
- d,
3217
- f,
3218
- p,
3219
- m,
3220
- h,
3221
- g,
3222
- _,
3223
- v,
3224
- y,
3225
- b
3226
- ]
3227
- };
3228
- }
3229
- function ge(e, t) {
3230
- let n = 0;
3231
- if (t.modelName != null && (n = Math.max(n, v("Highs_passModelName", 1, 0)(e, String(t.modelName)))), t.colNames != null) {
3232
- N(t.colNames, t.numCols, "colNames");
3233
- for (let r = 0; r < t.colNames.length; r++) {
3234
- let i = v("Highs_passColName", 2, 0)(e, r, String(t.colNames[r]));
3235
- if (i === -1) return i;
3236
- n = Math.max(n, i);
3237
- }
3238
- }
3239
- if (t.rowNames != null) {
3240
- N(t.rowNames, t.numRows, "rowNames");
3241
- for (let r = 0; r < t.rowNames.length; r++) {
3242
- let i = v("Highs_passRowName", 2, 0)(e, r, String(t.rowNames[r]));
3243
- if (i === -1) return i;
3244
- n = Math.max(n, i);
3245
- }
3246
- }
3247
- return n;
3248
- }
3249
- function J(e, t, n, i) {
3250
- let a = e._require(!1), o = t !== "Highs_getFixedLp", s = n ?? "csc";
3251
- if (!(s in r)) throw C("format must be 'csc' or 'csr'");
3252
- let c = t === "Highs_getModel" || t === "Highs_getLp" ? q(a) : t === "Highs_getPresolvedLp" ? fe(a) : t === "Highs_getFixedLp" ? q(a) : void 0;
3253
- return B(function(e) {
3254
- let n = e.outInts(1), l = e.outInts(1), u = e.outInts(1), d = i ? e.outInts(1) : 0, f = e.outInts(1), p = e.outDoubles(1), m = i ? 21 : o ? 16 : 15, h = 0, g = c?.numCols ?? 0, v = c?.numRows ?? 0, y = c?.numNonzeros ?? 0, S = i ? c?.hessianNonzeros ?? 0 : 0;
3255
- if (!c) {
3256
- let e = i ? [
3257
- a,
3258
- r[s],
3259
- 1,
3260
- n,
3261
- l,
3262
- u,
3263
- d,
3264
- f,
3265
- p
3266
- ] : [
3267
- a,
3268
- r[s],
3269
- n,
3270
- l,
3271
- u,
3272
- f,
3273
- p
3274
- ], c = i ? Array(12).fill(0) : Array(o ? 9 : 8).fill(0);
3275
- if (h = _(t, m).apply(null, e.concat(c)), h === -1) return O(h);
3276
- g = b()[n >> 2], v = b()[l >> 2], y = b()[u >> 2], S = i ? b()[d >> 2] : 0;
3277
- }
3278
- let C = s === "csc" ? g : v, w = e.outDoubles(g), T = e.outDoubles(g), E = e.outDoubles(g), ee = e.outDoubles(v), D = e.outDoubles(v), k = e.outInts(C), A = e.outInts(y), j = e.outDoubles(y), M = o ? e.outInts(g) : 0, N = i ? e.outInts(g) : 0, P = i ? e.outInts(S) : 0, F = i ? e.outDoubles(S) : 0, I = i ? [
3279
- a,
3280
- r[s],
3281
- 1,
3282
- n,
3283
- l,
3284
- u,
3285
- d,
3286
- f,
3287
- p,
3288
- w,
3289
- T,
3290
- E,
3291
- ee,
3292
- D,
3293
- k,
3294
- A,
3295
- j,
3296
- N,
3297
- P,
3298
- F,
3299
- M
3300
- ] : [
3301
- a,
3302
- r[s],
3303
- n,
3304
- l,
3305
- u,
3306
- f,
3307
- p,
3308
- w,
3309
- T,
3310
- E,
3311
- ee,
3312
- D,
3313
- k,
3314
- A,
3315
- j
3316
- ].concat(o ? [M] : []);
3317
- if (h = _(t, m).apply(null, I), h === -1) return O(h);
3318
- let L = new Int32Array(C + 1);
3319
- L.set(V(k, C)), L[C] = y;
3320
- let R = {
3321
- numCols: g,
3322
- numRows: v,
3323
- sense: b()[f >> 2],
3324
- offset: x()[p >> 3],
3325
- colCost: H(w, g),
3326
- colLower: H(T, g),
3327
- colUpper: H(E, g),
3328
- rowLower: H(ee, v),
3329
- rowUpper: H(D, v),
3330
- matrix: {
3331
- format: s,
3332
- numRows: v,
3333
- numCols: g,
3334
- starts: L,
3335
- indices: V(A, y),
3336
- values: H(j, y)
3337
- },
3338
- integrality: o ? V(M, g) : new Int32Array(g)
3339
- };
3340
- if (i && S) {
3341
- let e = new Int32Array(g + 1);
3342
- e.set(V(N, g)), e[g] = S, R.hessian = {
3343
- format: "triangular",
3344
- dimension: g,
3345
- starts: e,
3346
- indices: V(P, S),
3347
- values: H(F, S)
3348
- };
3349
- }
3350
- return O(h, R);
3351
- });
3352
- }
3353
- function _e(e, t) {
3354
- if (!e) throw C("entries are required");
3355
- L(e.indices, null, "entries.indices", t), I(e.values, e.indices.length, "entries.values");
3356
- }
3357
- function Y(e, t, n, r, i, a, o) {
3358
- let s = e._require(!1);
3359
- return D(B(function(e) {
3360
- let c = K(n, a, e, o), l = c.suffix === "ByMask" ? a : c.count, u = r.map(function(t, n) {
3361
- return I(t, l, o + " values " + n), e.doubles(t);
3362
- }), d = i.map(function(t, n) {
3363
- return L(t, l, o + " integer values " + n), e.ints(t);
3364
- }), f = [s].concat(c.prefix, u, d);
3365
- return _("Highs_" + t + c.suffix, f.length).apply(null, f);
3366
- }));
3367
- }
3368
- function ve(e, t, n, r) {
3369
- let i = e._require(!1);
3370
- return D(B(function(e) {
3371
- let a = K(n, r, e, t.toLowerCase()), o = [i].concat(a.prefix);
3372
- return _("Highs_delete" + t + a.suffix, o.length).apply(null, o);
3373
- }));
3374
- }
3375
- function X(e, t, n) {
3376
- let r = e._require(!1), i = q(r), a = t === "Cols", o = a ? i.numCols : i.numRows;
3377
- return B(function(e) {
3378
- let s = K(n, o, e, t.toLowerCase()), c = e.outInts(1), l = e.outInts(1), u = a ? 3 : 2, d = [r].concat(s.prefix, [c], Array(u).fill(0), [
3379
- l,
3380
- 0,
3381
- 0,
3382
- 0
3383
- ]), f = "Highs_get" + t + s.suffix, p = _(f, d.length).apply(null, d);
3384
- if (p === -1) return O(p);
3385
- let m = b()[c >> 2], h = b()[l >> 2], g = a ? e.outDoubles(m) : 0, v = e.outDoubles(m), y = e.outDoubles(m), x = e.outInts(m), S = e.outInts(h), C = e.outDoubles(h), w = [r].concat(s.prefix, [c], a ? [
3386
- g,
3387
- v,
3388
- y
3389
- ] : [v, y], [
3390
- l,
3391
- x,
3392
- S,
3393
- C
3394
- ]);
3395
- if (p = _(f, w.length).apply(null, w), p === -1) return O(p);
3396
- let T = new Int32Array(m + 1);
3397
- T.set(V(x, m)), T[m] = h;
3398
- let E = {
3399
- format: a ? "csc" : "csr",
3400
- numRows: a ? i.numRows : m,
3401
- numCols: a ? m : i.numCols,
3402
- starts: T,
3403
- indices: V(S, h),
3404
- values: H(C, h)
3405
- };
3406
- return O(p, a ? {
3407
- count: m,
3408
- cost: H(g, m),
3409
- lower: H(v, m),
3410
- upper: H(y, m),
3411
- matrix: E
3412
- } : {
3413
- count: m,
3414
- lower: H(v, m),
3415
- upper: H(y, m),
3416
- matrix: E
3417
- });
3418
- });
3419
- }
3420
- function ye(e, t, n) {
3421
- let r = e._require(!1);
3422
- return A(n, "index", 0), B(function(e) {
3423
- let i = e.outInts(1), a = _(t, 5)(r, n, 0, 0, i);
3424
- if (a === -1) return O(a);
3425
- let o = b()[i >> 2];
3426
- if (o <= 0) return O(a, "");
3427
- let s = e.bytes(o);
3428
- return a = _(t, 5)(r, n, s, o, i), O(a, S(s));
3429
- });
3430
- }
3431
- function be(e, t, n) {
3432
- let r = e._require(!1);
3433
- if (typeof n != "string") throw C("name must be a string");
3434
- return B(function(e) {
3435
- let i = e.outInts(1);
3436
- return O(v("Highs_get" + t + "ByName", 1, 1)(r, n, i), b()[i >> 2]);
3437
- });
3438
- }
3439
- function xe(e, t, n) {
3440
- let r = e._require(!1);
3441
- return B(function(e) {
3442
- let i = e.outInts(1), a = e.outDoubles(n);
3443
- return O(_(t, 3)(r, i, a), b()[i >> 2] ? { values: H(a, n) } : void 0);
3444
- });
3445
- }
3446
- function Se(e, t, n, r, i) {
3447
- let a = e._require(!1);
3448
- return B(function(e) {
3449
- let o = e.outDoubles(r), s = e.outInts(1), c = e.outInts(r);
3450
- if (n == null) throw C("an index is required");
3451
- A(n, "index", 0);
3452
- let l = [
3453
- a,
3454
- n,
3455
- o,
3456
- s,
3457
- c
3458
- ], u = _(t, l.length).apply(null, l), d = { values: H(o, r) };
3459
- return i && (d.nonzeroIndices = V(c, b()[s >> 2])), O(u, d);
3460
- });
3461
- }
3462
- function Ce(e, t, n, r) {
3463
- let i = e._require(!1), a = q(i).numRows;
3464
- return I(n, a, "rhs"), B(function(e) {
3465
- let o = e.outDoubles(a), s = e.outInts(1), c = e.outInts(a), l = _(t, 5)(i, e.doubles(n), o, s, c), u = { values: H(o, a) };
3466
- return r && (u.nonzeroIndices = V(c, b()[s >> 2])), O(l, u);
3467
- });
3468
- }
3469
- function we(e, t) {
3470
- return {
3471
- valuePointer: e.outDoubles(t),
3472
- objectivePointer: e.outDoubles(t),
3473
- inPointer: e.outInts(t),
3474
- outPointer: e.outInts(t),
3475
- detach: function() {
3476
- return {
3477
- value: H(this.valuePointer, t),
3478
- objective: H(this.objectivePointer, t),
3479
- inVariable: V(this.inPointer, t),
3480
- outVariable: V(this.outPointer, t)
3481
- };
3482
- }
3483
- };
3484
- }
3485
- function Z(e, t) {
3486
- return v("Highs_getCallbackDataOutItem", 1, 0)(e, t);
3487
- }
3488
- function Te(e, t, n) {
3489
- let r = Z(e, t);
3490
- if (r) return n === "double" ? x()[r >> 3] : n === "int64" ? oe(r) : b()[r >> 2];
3491
- }
3492
- let Ee = [
3493
- ["running_time", "double"],
3494
- ["objective_function_value", "double"],
3495
- ["mip_node_count", "int64"],
3496
- ["mip_total_lp_iterations", "int64"],
3497
- ["mip_primal_bound", "double"],
3498
- ["mip_dual_bound", "double"],
3499
- ["mip_gap", "double"]
3500
- ];
3501
- function De(e, t, n, r, i) {
3502
- let o = a.get(i);
3503
- if (!o) return;
3504
- let s = o.raw, c = o.callback, l = !0;
3505
- function u() {
3506
- if (!l) throw C("callback controls expire when the callback returns");
3507
- }
3508
- s._callbackDepth += 1;
3509
- try {
3510
- let i = { numCols: s._callbackNumCols }, a = {};
3511
- if ((e === 0 ? [["log_type", "int"]] : e === 1 ? [["simplex_iteration_count", "int"]] : e === 2 ? [["ipm_iteration_count", "int"]] : e >= 3 && e <= 9 ? Ee : []).forEach(function(e) {
3512
- let t = Te(n, e[0], e[1]);
3513
- t !== void 0 && (a[e[0]] = t);
3514
- }), e === 3 || e === 4) {
3515
- let e = Z(n, "mip_solution"), t = _("Highs_js_getCallbackMipSolutionSize", 1)(n);
3516
- if (t < 0) throw RangeError("HiGHS returned an invalid MIP solution size");
3517
- if (e) a.mip_solution = H(e, t);
3518
- else if (t) throw RangeError("HiGHS returned a null MIP solution");
3519
- }
3520
- if (e === 7) {
3521
- let e = Te(n, "cutpool_num_cut", "int"), t = Te(n, "cutpool_num_nz", "int"), r = Te(n, "cutpool_num_col", "int");
3522
- if (typeof e == "number" && typeof t == "number" && typeof r == "number" && e >= 0 && t >= 0) {
3523
- let i = Z(n, "cutpool_start"), o = Z(n, "cutpool_index"), s = Z(n, "cutpool_value"), c = Z(n, "cutpool_lower"), l = Z(n, "cutpool_upper");
3524
- i && o && s && c && l && (a.cut_pool = {
3525
- numCols: r,
3526
- numCuts: e,
3527
- starts: V(i, e + 1),
3528
- indices: V(o, t),
3529
- values: H(s, t),
3530
- lower: H(c, e),
3531
- upper: H(l, e)
3532
- });
3533
- }
3534
- }
3535
- let o = {
3536
- type: e,
3537
- message: S(t),
3538
- data: a
3539
- };
3540
- e === 9 ? (o.setSolution = function(e) {
3541
- u();
3542
- try {
3543
- return e && e.indices ? (L(e.indices, null, "indices", i.numCols), I(e.values, e.indices.length, "values"), D(B(function(t) {
3544
- return _("Highs_setCallbackSparseSolution", 4)(r, e.indices.length, t.ints(e.indices), t.doubles(e.values));
3545
- }))) : (I(e, i.numCols, "solution"), D(B(function(t) {
3546
- return _("Highs_setCallbackSolution", 3)(r, i.numCols, t.doubles(e));
3547
- })));
3548
- } catch (e) {
3549
- return s._rememberCallbackError(e), D(-1);
3550
- }
3551
- }, o.repairSolution = function() {
3552
- return u(), D(_("Highs_repairCallbackSolution", 1)(r));
3553
- }) : (e === 1 || e === 2 || e === 6) && (o.interrupt = function() {
3554
- u(), b()[r >> 2] = 1;
3555
- });
3556
- let l = c(o);
3557
- if (l && (typeof l == "object" || typeof l == "function") && typeof l.then == "function") throw Promise.resolve(l).catch(function() {}), C("callbacks must be synchronous and return undefined");
3558
- } catch (t) {
3559
- s._rememberCallbackError(t), (e === 1 || e === 2 || e === 6) && r && (b()[r >> 2] = 1);
3560
- } finally {
3561
- l = !1, --s._callbackDepth;
3562
- }
3563
- }
3564
- function Oe() {
3565
- return u ||= Rt(De, "viiiii"), u;
3566
- }
3567
- function ke(e) {
3568
- if (A(e, "callback type", 0), e === 8 || e > 9) throw C("callback type must be one of 0..7 or 9");
3569
- }
3570
- function Ae(e, t, n = void 0) {
3571
- if (e.status === -1) throw T(t);
3572
- return n && n._setLast(e.status, t), e.value;
3573
- }
3574
- class je {
3575
- constructor(e) {
3576
- this.raw = e, this.lastCall = {
3577
- status: 0,
3578
- warnings: []
3579
- }, this.options = new Me(this), this.info = new Ne(this);
3580
- }
3581
- get disposed() {
3582
- return this.raw.disposed;
3583
- }
3584
- _setLast(e, t) {
3585
- return this.lastCall = k(e, t), this.lastCall;
3586
- }
3587
- _value(e, t = []) {
3588
- return Ae(this.raw[e].apply(this.raw, t || []), e, this);
3589
- }
3590
- exportModel(e) {
3591
- return this._value("exportModel", [e]);
3592
- }
3593
- exportSolution(e) {
3594
- return this._value("exportSolution", [e]);
3595
- }
3596
- getPresolvedDimensions() {
3597
- return this.raw.getPresolvedDimensions();
3598
- }
3599
- getModelStatus() {
3600
- return this.raw.getModelStatus();
3601
- }
3602
- setSolution(e) {
3603
- if (e == null) throw C("solution is required");
3604
- return this._status(e.indices ? "setSparseSolution" : "setSolution", [e]);
3605
- }
3606
- setLogicalBasis() {
3607
- return this._status("setLogicalBasis");
3608
- }
3609
- dispose() {
3610
- this.raw.dispose();
3611
- }
3612
- _status(e, t = []) {
3613
- let n = this.raw[e].apply(this.raw, t || []);
3614
- return this._setLast(n.status, e);
3615
- }
3616
- exportPresolvedModel(e) {
3617
- return this._value("exportPresolvedModel", [e]);
3618
- }
3619
- getDimensions() {
3620
- return this.raw.getDimensions();
3621
- }
3622
- getRunTime() {
3623
- return this.raw.getRunTime();
3624
- }
3625
- getObjectiveValue() {
3626
- return this.raw.getObjectiveValue();
3627
- }
3628
- getObjectiveSense() {
3629
- return this._value("getObjectiveSense");
3630
- }
3631
- getObjectiveOffset() {
3632
- return this._value("getObjectiveOffset");
3633
- }
3634
- setBasis(e) {
3635
- return e == null ? this._status("setLogicalBasis") : this._status("setBasis", [e]);
3636
- }
3637
- run(e) {
3638
- let t = this.raw, n = [], r = !1;
3639
- try {
3640
- if (e && Object.keys(e).length) {
3641
- if (t._callbackId) throw C("run callbacks cannot replace a callback registered through model.raw");
3642
- if (t.setCallback(function(t) {
3643
- let n = e[t.type];
3644
- if (n) return n(t);
3645
- }).status === -1) throw T("setCallback");
3646
- r = !0, Object.keys(e).forEach(function(e) {
3647
- let r = Number(e);
3648
- if (ke(r), t.startCallback(r).status === -1) throw T("startCallback");
3649
- n.push(r);
3650
- });
3651
- }
3652
- let i = t.run(), a = this._setLast(i.status, "run");
3653
- return {
3654
- status: a.status,
3655
- warnings: a.warnings,
3656
- modelStatus: t.getModelStatus()
3657
- };
3658
- } finally {
3659
- try {
3660
- for (let e = 0; e < n.length; e++) t.stopCallback(n[e]);
3661
- } finally {
3662
- r && t.setCallback(void 0);
3663
- }
3664
- }
3665
- }
3666
- clear(...e) {
3667
- return this._status("clear", e);
3668
- }
3669
- clearModel(...e) {
3670
- return this._status("clearModel", e);
3671
- }
3672
- clearSolver(...e) {
3673
- return this._status("clearSolver", e);
3674
- }
3675
- releaseMemory(...e) {
3676
- return this._status("releaseMemory", e);
3677
- }
3678
- readModel(...e) {
3679
- return this._status("readModel", e);
3680
- }
3681
- passModel(...e) {
3682
- return this._status("passModel", e);
3683
- }
3684
- passHessian(...e) {
3685
- return this._status("passHessian", e);
3686
- }
3687
- passLinearObjectives(...e) {
3688
- return this._status("passLinearObjectives", e);
3689
- }
3690
- addLinearObjective(...e) {
3691
- return this._status("addLinearObjective", e);
3692
- }
3693
- clearLinearObjectives(...e) {
3694
- return this._status("clearLinearObjectives", e);
3695
- }
3696
- presolve(...e) {
3697
- return this._status("presolve", e);
3698
- }
3699
- postsolve(...e) {
3700
- return this._status("postsolve", e);
3701
- }
3702
- zeroAllClocks(...e) {
3703
- return this._status("zeroAllClocks", e);
3704
- }
3705
- addVar(...e) {
3706
- return this._status("addVar", e);
3707
- }
3708
- addVars(...e) {
3709
- return this._status("addVars", e);
3710
- }
3711
- addCol(...e) {
3712
- return this._status("addCol", e);
3713
- }
3714
- addCols(...e) {
3715
- return this._status("addCols", e);
3716
- }
3717
- addRow(...e) {
3718
- return this._status("addRow", e);
3719
- }
3720
- addRows(...e) {
3721
- return this._status("addRows", e);
3722
- }
3723
- ensureColwise(...e) {
3724
- return this._status("ensureColwise", e);
3725
- }
3726
- ensureRowwise(...e) {
3727
- return this._status("ensureRowwise", e);
3728
- }
3729
- changeObjectiveSense(...e) {
3730
- return this._status("changeObjectiveSense", e);
3731
- }
3732
- changeObjectiveOffset(...e) {
3733
- return this._status("changeObjectiveOffset", e);
3734
- }
3735
- changeColIntegrality(...e) {
3736
- return this._status("changeColIntegrality", e);
3737
- }
3738
- changeColsIntegrality(...e) {
3739
- return this._status("changeColsIntegrality", e);
3740
- }
3741
- clearIntegrality(...e) {
3742
- return this._status("clearIntegrality", e);
3743
- }
3744
- changeColCost(...e) {
3745
- return this._status("changeColCost", e);
3746
- }
3747
- changeColsCost(...e) {
3748
- return this._status("changeColsCost", e);
3749
- }
3750
- changeColBounds(...e) {
3751
- return this._status("changeColBounds", e);
3752
- }
3753
- changeColsBounds(...e) {
3754
- return this._status("changeColsBounds", e);
3755
- }
3756
- changeRowBounds(...e) {
3757
- return this._status("changeRowBounds", e);
3758
- }
3759
- changeRowsBounds(...e) {
3760
- return this._status("changeRowsBounds", e);
3761
- }
3762
- deleteCols(...e) {
3763
- return this._status("deleteCols", e);
3764
- }
3765
- deleteRows(...e) {
3766
- return this._status("deleteRows", e);
3767
- }
3768
- scaleCol(...e) {
3769
- return this._status("scaleCol", e);
3770
- }
3771
- scaleRow(...e) {
3772
- return this._status("scaleRow", e);
3773
- }
3774
- passColName(...e) {
3775
- return this._status("passColName", e);
3776
- }
3777
- passRowName(...e) {
3778
- return this._status("passRowName", e);
3779
- }
3780
- passModelName(...e) {
3781
- return this._status("passModelName", e);
3782
- }
3783
- crossover(...e) {
3784
- return this._status("crossover", e);
3785
- }
3786
- feasibilityRelaxation(...e) {
3787
- return this._status("feasibilityRelaxation", e);
3788
- }
3789
- changeCoefficient(...e) {
3790
- return this._status("changeCoeff", e);
3791
- }
3792
- getSolution(...e) {
3793
- return this._value("getSolution", e);
3794
- }
3795
- getBasis(...e) {
3796
- return this._value("getBasis", e);
3797
- }
3798
- getPrimalRay(...e) {
3799
- return this._value("getPrimalRay", e);
3800
- }
3801
- getDualRay(...e) {
3802
- return this._value("getDualRay", e);
3803
- }
3804
- getDualUnboundednessDirection(...e) {
3805
- return this._value("getDualUnboundednessDirection", e);
3806
- }
3807
- getModel(...e) {
3808
- return this._value("getModel", e);
3809
- }
3810
- getLp(...e) {
3811
- return this._value("getLp", e);
3812
- }
3813
- getPresolvedLp(...e) {
3814
- return this._value("getPresolvedLp", e);
3815
- }
3816
- getIisLp(...e) {
3817
- return this._value("getIisLp", e);
3818
- }
3819
- getFixedLp(...e) {
3820
- return this._value("getFixedLp", e);
3821
- }
3822
- getCols(...e) {
3823
- return this._value("getCols", e);
3824
- }
3825
- getRows(...e) {
3826
- return this._value("getRows", e);
3827
- }
3828
- getColName(...e) {
3829
- return this._value("getColName", e);
3830
- }
3831
- getRowName(...e) {
3832
- return this._value("getRowName", e);
3833
- }
3834
- getPresolvedColName(...e) {
3835
- return this._value("getPresolvedColName", e);
3836
- }
3837
- getPresolvedRowName(...e) {
3838
- return this._value("getPresolvedRowName", e);
3839
- }
3840
- getColByName(...e) {
3841
- return this._value("getColByName", e);
3842
- }
3843
- getRowByName(...e) {
3844
- return this._value("getRowByName", e);
3845
- }
3846
- getColIntegrality(...e) {
3847
- return this._value("getColIntegrality", e);
3848
- }
3849
- getBasicVariables(...e) {
3850
- return this._value("getBasicVariables", e);
3851
- }
3852
- getBasisInverseRow(...e) {
3853
- return this._value("getBasisInverseRow", e);
3854
- }
3855
- getBasisInverseCol(...e) {
3856
- return this._value("getBasisInverseCol", e);
3857
- }
3858
- getBasisSolve(...e) {
3859
- return this._value("getBasisSolve", e);
3860
- }
3861
- getBasisTransposeSolve(...e) {
3862
- return this._value("getBasisTransposeSolve", e);
3863
- }
3864
- getReducedRow(...e) {
3865
- return this._value("getReducedRow", e);
3866
- }
3867
- getReducedColumn(...e) {
3868
- return this._value("getReducedColumn", e);
3869
- }
3870
- getRanging(...e) {
3871
- return this._value("getRanging", e);
3872
- }
3873
- getIis(...e) {
3874
- return this._value("getIis", e);
3875
- }
3876
- }
3877
- class Me {
3878
- constructor(e) {
3879
- this._model = e;
3880
- }
3881
- set(e, t) {
3882
- if (typeof e == "object" && e) {
3883
- Object.keys(e).forEach(G);
3884
- let t = 0;
3885
- return Object.keys(e).forEach(function(n) {
3886
- let r = this._model.raw.setOptionValue(n, e[n]);
3887
- if (r.status === -1) throw T("setOptionValue");
3888
- t = Math.max(t, r.status);
3889
- }.bind(this)), this._model._setLast(t, "setOptionValue");
3890
- }
3891
- return G(e), this._model._status("setOptionValue", [e, t]);
3892
- }
3893
- describe(e) {
3894
- return G(e), this._model._value("getOptionValues", [e]);
3895
- }
3896
- reset() {
3897
- return this._model._status("resetOptions");
3898
- }
3899
- export(e) {
3900
- return this._model._value("exportOptions", [e]);
3901
- }
3902
- get(e) {
3903
- return G(e), this._model._value("getOptionValue", [e]);
3904
- }
3905
- names() {
3906
- let e = this._model.raw.getNumOptions(), t = [];
3907
- for (let n = 0; n < e; n++) {
3908
- let e = this._model.raw.getOptionName(n);
3909
- if (e.status === -1) throw T("getOptionName");
3910
- W(e.value) || t.push(e.value);
3911
- }
3912
- return t;
3913
- }
3914
- read(e) {
3915
- return de(e), this._model._status("readOptions", [e]);
3916
- }
3917
- }
3918
- class Ne {
3919
- constructor(e) {
3920
- this._model = e;
3921
- }
3922
- get(e) {
3923
- return this._model._value("getInfoValue", [e]);
3924
- }
3925
- type(e) {
3926
- return this._model._value("getInfoType", [e]);
3927
- }
3928
- }
3929
- function $() {
3930
- let e = _("Highs_create", 0)();
3931
- if (!e) throw Error("Highs_create failed");
3932
- let t = Ie(new pe(e));
3933
- return v("Highs_setIntOptionValue", 1, 1)(e, "threads", 1), g("Highs_setStringOptionValue", "number", [
3934
- "number",
3935
- "string",
3936
- "string"
3937
- ])(e, "parallel", "off"), t;
3938
- }
3939
- function Fe(e) {
3940
- let t = Ie(new je($()));
3941
- try {
3942
- return e && (e.format === "lp" || e.format === "mps" ? t.readModel(e) : t.passModel(e)), t;
3943
- } catch (e) {
3944
- throw t.dispose(), e;
3945
- }
3946
- }
3947
- function Ie(e) {
3948
- let t = Symbol.dispose;
3949
- return t !== void 0 && Object.defineProperty(e, t, {
3950
- configurable: !0,
3951
- writable: !0,
3952
- value: e.dispose
3953
- }), e;
3954
- }
3955
- function Le(e) {
3956
- return e !== null && (typeof e == "object" || typeof e == "function") && typeof e.then == "function";
3957
- }
3958
- function Re(e, t = void 0) {
3959
- let n = typeof e != "function", r = n ? e : void 0, i = n ? t : e;
3960
- if (typeof i != "function") throw C("withModel requires a callback");
3961
- let a = Fe(r);
3962
- try {
3963
- let e = i(a);
3964
- return Le(e) ? Promise.resolve(e).finally(function() {
3965
- a.dispose();
3966
- }) : (a.dispose(), e);
3967
- } catch (e) {
3968
- throw a.dispose(), e;
3969
- }
3970
- }
3971
- function ze(e, t) {
3972
- let n = ne(t);
3973
- return B(function(a) {
3974
- let o = t.matrix, s = e === "Highs_mipCall", c = a.outDoubles(n.numCols), l = s ? 0 : a.outDoubles(n.numCols), u = a.outDoubles(n.numRows), d = s ? 0 : a.outDoubles(n.numRows), f = s ? 0 : a.outInts(n.numCols), p = s ? 0 : a.outInts(n.numRows), m = a.outInts(1), h = me(t, a, s), g = [
3975
- n.numCols,
3976
- n.numRows,
3977
- n.numNonzeros,
3978
- r[o.format],
3979
- n.sense,
3980
- t.offset == null ? 0 : t.offset,
3981
- ...h.slice(0, 8)
3982
- ], v;
3983
- if (e === "Highs_mipCall") {
3984
- if (!t.integrality) throw C("mipCall requires integrality");
3985
- v = g.concat([
3986
- h[8],
3987
- c,
3988
- u,
3989
- m
3990
- ]);
3991
- } else if (e === "Highs_qpCall") {
3992
- if (!t.hessian) throw C("qpCall requires hessian");
3993
- let e = t.hessian;
3994
- v = g.slice(0, 3).concat([
3995
- n.hessianNonzeros,
3996
- r[o.format],
3997
- i[e.format],
3998
- n.sense,
3999
- t.offset == null ? 0 : t.offset,
4000
- ...h.slice(0, 8),
4001
- a.ints(Array.prototype.slice.call(e.starts, 0, -1)),
4002
- a.ints(e.indices),
4003
- a.doubles(e.values),
4004
- c,
4005
- l,
4006
- u,
4007
- d,
4008
- f,
4009
- p,
4010
- m
4011
- ]);
4012
- } else v = g.concat([
4013
- c,
4014
- l,
4015
- u,
4016
- d,
4017
- f,
4018
- p,
4019
- m
4020
- ]);
4021
- let y = _(e, v.length).apply(null, v);
4022
- return s ? O(y, {
4023
- modelStatus: b()[m >> 2],
4024
- solution: {
4025
- colValue: H(c, n.numCols),
4026
- rowValue: H(u, n.numRows)
4027
- }
4028
- }) : O(y, {
4029
- modelStatus: b()[m >> 2],
4030
- solution: {
4031
- colValue: H(c, n.numCols),
4032
- rowValue: H(u, n.numRows),
4033
- colDual: H(l, n.numCols),
4034
- rowDual: H(d, n.numRows)
4035
- },
4036
- basis: {
4037
- colStatus: V(f, n.numCols),
4038
- rowStatus: V(p, n.numRows)
4039
- }
4040
- });
4041
- });
4042
- }
4043
- let Be = Object.freeze({
4044
- major: _("Highs_versionMajor", 0)(),
4045
- minor: _("Highs_versionMinor", 0)(),
4046
- patch: _("Highs_versionPatch", 0)(),
4047
- string: g("Highs_version", "string", [])(),
4048
- gitHash: g("Highs_githash", "string", [])()
4049
- }), Ve = Object.freeze({
4050
- status: Object.freeze({
4051
- error: -1,
4052
- ok: 0,
4053
- warning: 1
4054
- }),
4055
- variableType: Object.freeze({
4056
- continuous: 0,
4057
- integer: 1,
4058
- semiContinuous: 2,
4059
- semiInteger: 3,
4060
- implicitInteger: 4
4061
- }),
4062
- objectiveSense: Object.freeze({
4063
- minimize: 1,
4064
- maximize: -1
4065
- }),
4066
- matrixFormat: Object.freeze({
4067
- columnWise: 1,
4068
- rowWise: 2
4069
- }),
4070
- hessianFormat: Object.freeze({
4071
- triangular: 1,
4072
- square: 2
4073
- }),
4074
- optionType: Object.freeze({
4075
- boolean: 0,
4076
- integer: 1,
4077
- double: 2,
4078
- string: 3
4079
- }),
4080
- infoType: Object.freeze({
4081
- int64: -1,
4082
- integer: 1,
4083
- double: 2
4084
- }),
4085
- solutionStatus: Object.freeze({
4086
- none: 0,
4087
- infeasible: 1,
4088
- feasible: 2
4089
- }),
4090
- basisValidity: Object.freeze({
4091
- invalid: 0,
4092
- valid: 1
4093
- }),
4094
- basisStatus: Object.freeze({
4095
- lower: 0,
4096
- basic: 1,
4097
- upper: 2,
4098
- zero: 3,
4099
- nonbasic: 4
4100
- }),
4101
- callbackType: Object.freeze({
4102
- logging: 0,
4103
- simplexInterrupt: 1,
4104
- ipmInterrupt: 2,
4105
- mipSolution: 3,
4106
- mipImprovingSolution: 4,
4107
- mipLogging: 5,
4108
- mipInterrupt: 6,
4109
- mipCutPool: 7,
4110
- mipUserSolution: 9
4111
- }),
4112
- presolveStatus: Object.freeze({
4113
- notPresolved: -1,
4114
- notReduced: 0,
4115
- infeasible: 1,
4116
- unboundedOrInfeasible: 2,
4117
- reduced: 3,
4118
- reducedToEmpty: 4,
4119
- timeout: 5,
4120
- nullError: 6,
4121
- optionsError: 7,
4122
- outOfMemory: 8
4123
- }),
4124
- modelStatus: Object.freeze({
4125
- notSet: 0,
4126
- loadError: 1,
4127
- modelError: 2,
4128
- presolveError: 3,
4129
- solveError: 4,
4130
- postsolveError: 5,
4131
- empty: 6,
4132
- optimal: 7,
4133
- infeasible: 8,
4134
- unboundedOrInfeasible: 9,
4135
- unbounded: 10,
4136
- objectiveBound: 11,
4137
- objectiveTarget: 12,
4138
- timeLimit: 13,
4139
- iterationLimit: 14,
4140
- unknown: 15,
4141
- solutionLimit: 16,
4142
- interrupted: 17
4143
- }),
4144
- iis: Object.freeze({
4145
- strategyLight: 0,
4146
- strategyRowPriority: 6,
4147
- strategyColPriority: 14,
4148
- boundFree: 1,
4149
- boundLower: 2,
4150
- boundUpper: 3,
4151
- boundBoxed: 4,
4152
- notInConflict: -1,
4153
- maybeInConflict: 0,
4154
- inConflict: 1
4155
- })
4156
- }), He = $(), Ue = He.getInfinity(), We = He.getSizeofHighsInt();
4157
- if (He.dispose(), We !== 4) throw Error("This highs-js runtime requires a 32-bit HighsInt build; received " + We * 8 + " bits");
4158
- e.version = Be, e.infinity = Ue, e.intBytes = We, e.intBits = We * 8, Object.defineProperty(e, "memoryBytes", {
4159
- enumerable: !0,
4160
- get: function() {
4161
- return y().buffer.byteLength;
4162
- }
4163
- }), e.constants = Ve, e.errors = Object.freeze({
4164
- HighsError: d,
4165
- HighsDisposedError: f,
4166
- HighsValidationError: p,
4167
- HighsReentrancyError: m,
4168
- HighsUnsupportedOptionError: h
4169
- }), e.createModel = Fe, e.withModel = Re, e.raw = Object.freeze({
4170
- version: function() {
4171
- return Be;
4172
- },
4173
- lpCall: function(e) {
4174
- return ze("Highs_lpCall", e);
4175
- },
4176
- mipCall: function(e) {
4177
- return ze("Highs_mipCall", e);
4178
- },
4179
- qpCall: function(e) {
4180
- return ze("Highs_qpCall", e);
4181
- },
4182
- createModel: $
4183
- });
4184
- })(n), n;
4185
- };
4186
- })();
4187
- typeof e == "object" && typeof t == "object" ? (t.exports = n, t.exports.default = n) : typeof define == "function" && define.amd && define([], () => n);
4188
- })))(), 1)).default;
4189
- export { c as default };