barcode_pao_wasm 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +204 -0
- data/lib/barcode_pao_wasm/version.rb +5 -0
- data/lib/barcode_pao_wasm/wrapper.rb +404 -0
- data/lib/barcode_pao_wasm.rb +4 -0
- data/wasm/_barcode_runner.mjs +62 -0
- data/wasm/barcode.js +122 -0
- data/wasm/barcode.mjs +121 -0
- data/wasm/barcode.wasm +0 -0
- metadata +55 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: d822fba68496b91b002fb02811b8795941b69ea121891e55b68ec58faff32366
|
|
4
|
+
data.tar.gz: 9c30a8311a5cef345c8b52e642d8f46f87810d0cdcdb9b170ce8c04da0edc1f3
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: b7ef45b87a20b6c80960d5c8b4930658663f7ea79ee34185386ed1a971fd2160531520859eaea833de07e0a322564699fc30e2dafe74055b217247ed3d5ca19b
|
|
7
|
+
data.tar.gz: 83aa5cb2d608512028a728fdc192e92bee4dbc2a61ada96a0c0363ed475d4a107518c29aff0edc1cfece0b823f2e74d250f82933f1ed15852015fadd4f7e4fe3
|
data/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Pao
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# barcode_pao_wasm
|
|
2
|
+
|
|
3
|
+
クロスプラットフォーム バーコード生成ライブラリ for Ruby(WebAssembly版)
|
|
4
|
+
|
|
5
|
+
## 概要
|
|
6
|
+
|
|
7
|
+
`barcode_pao_wasm` は、WebAssembly(WASM)を使用してバーコードを生成するRuby gemです。Node.jsを介してWASMモジュールを実行するため、ネイティブコンパイルが不要でクロスプラットフォームで動作します。
|
|
8
|
+
|
|
9
|
+
## 必要条件
|
|
10
|
+
|
|
11
|
+
- Ruby 2.7以上
|
|
12
|
+
- **Node.js** (v14以上推奨)
|
|
13
|
+
|
|
14
|
+
Node.jsがシステムにインストールされている必要があります。
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Node.jsのインストール確認
|
|
18
|
+
node --version
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 対応バーコード(18種)
|
|
22
|
+
|
|
23
|
+
### 1次元バーコード(11種)
|
|
24
|
+
- **Code39** - 英数字対応の汎用バーコード
|
|
25
|
+
- **Code93** - Code39の拡張版
|
|
26
|
+
- **Code128** - 全ASCII文字対応の高密度バーコード
|
|
27
|
+
- **GS1-128** - 物流・流通向けバーコード(コンビニ収納代行対応)
|
|
28
|
+
- **NW-7 (Codabar)** - 血液銀行・宅配便向けバーコード
|
|
29
|
+
- **Matrix 2 of 5** - 工業用バーコード
|
|
30
|
+
- **NEC 2 of 5** - NECが開発した2 of 5系バーコード
|
|
31
|
+
- **JAN-8** - 日本の商品コード(8桁)
|
|
32
|
+
- **JAN-13** - 日本の商品コード(13桁)
|
|
33
|
+
- **UPC-A** - 北米の商品コード(12桁)
|
|
34
|
+
- **UPC-E** - UPC-Aの短縮版(8桁)
|
|
35
|
+
|
|
36
|
+
### GS1 DataBar(3種)
|
|
37
|
+
- **GS1 DataBar 14** - 標準型(オムニ/スタック対応)
|
|
38
|
+
- **GS1 DataBar Limited** - 限定型
|
|
39
|
+
- **GS1 DataBar Expanded** - 拡張型(スタック対応)
|
|
40
|
+
|
|
41
|
+
### 2次元バーコード(3種)
|
|
42
|
+
- **QRコード** - 日本発の2次元コード
|
|
43
|
+
- **DataMatrix** - 工業用途の2次元コード
|
|
44
|
+
- **PDF417** - 運転免許証等で使用される2次元コード
|
|
45
|
+
|
|
46
|
+
### 特殊バーコード(1種)
|
|
47
|
+
- **郵便カスタマバーコード** - 日本郵便の住所表示バーコード
|
|
48
|
+
|
|
49
|
+
## インストール
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
gem install barcode_pao_wasm
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
または Gemfile に追加:
|
|
56
|
+
|
|
57
|
+
```ruby
|
|
58
|
+
gem 'barcode_pao_wasm'
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 使用例
|
|
62
|
+
|
|
63
|
+
### QRコード生成
|
|
64
|
+
|
|
65
|
+
```ruby
|
|
66
|
+
require 'barcode_pao_wasm'
|
|
67
|
+
|
|
68
|
+
# QRコードインスタンスを作成
|
|
69
|
+
qr = BarcodePaoWasm::QRCode.new
|
|
70
|
+
|
|
71
|
+
# エラー訂正レベルを設定(L/M/Q/H)
|
|
72
|
+
qr.set_error_correction_level("H")
|
|
73
|
+
|
|
74
|
+
# Base64エンコードされた画像を取得
|
|
75
|
+
base64_image = qr.draw("https://example.com", 200)
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Code128バーコード生成
|
|
79
|
+
|
|
80
|
+
```ruby
|
|
81
|
+
require 'barcode_pao_wasm'
|
|
82
|
+
|
|
83
|
+
# Code128インスタンスを作成
|
|
84
|
+
code128 = BarcodePaoWasm::Code128.new
|
|
85
|
+
|
|
86
|
+
# テキスト表示を有効化
|
|
87
|
+
code128.set_show_text(true)
|
|
88
|
+
|
|
89
|
+
# 出力フォーマットをSVGに設定
|
|
90
|
+
code128.set_output_format("svg")
|
|
91
|
+
|
|
92
|
+
# バーコード生成
|
|
93
|
+
svg_data = code128.draw("ABC-12345", 300, 100)
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 色のカスタマイズ
|
|
97
|
+
|
|
98
|
+
```ruby
|
|
99
|
+
require 'barcode_pao_wasm'
|
|
100
|
+
|
|
101
|
+
code39 = BarcodePaoWasm::Code39.new
|
|
102
|
+
|
|
103
|
+
# 前景色(バーの色)をRGBAで設定
|
|
104
|
+
code39.set_foreground_color(0, 0, 128, 255) # 紺色
|
|
105
|
+
|
|
106
|
+
# 背景色をRGBAで設定
|
|
107
|
+
code39.set_background_color(255, 255, 200, 255) # 薄黄色
|
|
108
|
+
|
|
109
|
+
base64_image = code39.draw("12345", 200, 80)
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### GS1-128 コンビニ収納代行バーコード
|
|
113
|
+
|
|
114
|
+
```ruby
|
|
115
|
+
require 'barcode_pao_wasm'
|
|
116
|
+
|
|
117
|
+
gs1 = BarcodePaoWasm::GS1128.new
|
|
118
|
+
gs1.set_show_text(true)
|
|
119
|
+
|
|
120
|
+
# 標準料金代理収納用バーコード
|
|
121
|
+
convenience_code = "9101234567890123456789012345678901234567890123"
|
|
122
|
+
base64_image = gs1.draw(convenience_code, 400, 100)
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### 郵便カスタマバーコード
|
|
126
|
+
|
|
127
|
+
```ruby
|
|
128
|
+
require 'barcode_pao_wasm'
|
|
129
|
+
|
|
130
|
+
yubin = BarcodePaoWasm::YubinCustomer.new
|
|
131
|
+
|
|
132
|
+
# 郵便番号 + 住所表示番号
|
|
133
|
+
code = "1000001-1-2-3"
|
|
134
|
+
base64_image = yubin.draw(code, 50) # 高さのみ指定
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## API リファレンス
|
|
138
|
+
|
|
139
|
+
### 共通メソッド(全バーコードクラス)
|
|
140
|
+
|
|
141
|
+
| メソッド | 説明 |
|
|
142
|
+
|---------|------|
|
|
143
|
+
| `set_output_format(format)` | 出力フォーマットを設定("png", "jpg", "svg")|
|
|
144
|
+
| `set_foreground_color(r, g, b, a=255)` | 前景色(バーの色)を設定 |
|
|
145
|
+
| `set_background_color(r, g, b, a=255)` | 背景色を設定 |
|
|
146
|
+
| `draw(code, width, height)` | Base64エンコードされた画像を返す |
|
|
147
|
+
|
|
148
|
+
### 1次元バーコード固有メソッド
|
|
149
|
+
|
|
150
|
+
| メソッド | 説明 |
|
|
151
|
+
|---------|------|
|
|
152
|
+
| `set_show_text(show)` | バーコード下のテキスト表示 |
|
|
153
|
+
| `set_text_font_scale(scale)` | テキストのフォントサイズスケール |
|
|
154
|
+
| `set_text_gap(scale)` | バーとテキストの間隔 |
|
|
155
|
+
| `set_fit_width(fit)` | 幅に合わせてバーを調整 |
|
|
156
|
+
| `set_px_adjust_black(adjust)` | 黒バーのピクセル調整 |
|
|
157
|
+
| `set_px_adjust_white(adjust)` | 白バーのピクセル調整 |
|
|
158
|
+
|
|
159
|
+
### 2次元バーコード固有メソッド
|
|
160
|
+
|
|
161
|
+
| クラス | メソッド | 説明 |
|
|
162
|
+
|--------|---------|------|
|
|
163
|
+
| QRCode | `set_error_correction_level(level)` | エラー訂正レベル(L/M/Q/H)|
|
|
164
|
+
| QRCode | `set_version(version)` | バージョン(0=自動, 1-40)|
|
|
165
|
+
| QRCode | `set_encode_mode(mode)` | エンコードモード(NUMERIC/ALPHANUMERIC/BYTE/KANJI)|
|
|
166
|
+
| DataMatrix | `set_code_size(size)` | シンボルサイズ("AUTO", "10x10"など)|
|
|
167
|
+
| DataMatrix | `set_encode_scheme(scheme)` | エンコードスキーム(AUTO/ASCII/C40/TEXT/X12/EDIFACT/BASE256)|
|
|
168
|
+
| PDF417 | `set_error_level(level)` | エラー訂正レベル(-1=自動, 0-8)|
|
|
169
|
+
| PDF417 | `set_columns(columns)` | 列数 |
|
|
170
|
+
| PDF417 | `set_rows(rows)` | 行数 |
|
|
171
|
+
|
|
172
|
+
## 出力フォーマット
|
|
173
|
+
|
|
174
|
+
| フォーマット | 説明 |
|
|
175
|
+
|-------------|------|
|
|
176
|
+
| `png` | PNG画像(デフォルト)|
|
|
177
|
+
| `jpg` / `jpeg` | JPEG画像 |
|
|
178
|
+
| `svg` | SVGベクター画像 |
|
|
179
|
+
|
|
180
|
+
## トラブルシューティング
|
|
181
|
+
|
|
182
|
+
### Node.jsが見つからないエラー
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
WasmBarcodeError: Node.js is required for WASM barcode generation.
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Node.jsをインストールしてください:
|
|
189
|
+
- Windows: https://nodejs.org/ からインストーラをダウンロード
|
|
190
|
+
- macOS: `brew install node`
|
|
191
|
+
- Linux: `apt install nodejs` または `yum install nodejs`
|
|
192
|
+
|
|
193
|
+
### タイムアウトエラー
|
|
194
|
+
|
|
195
|
+
複雑なバーコード生成や大量データの場合に発生する可能性があります。
|
|
196
|
+
|
|
197
|
+
## ライセンス
|
|
198
|
+
|
|
199
|
+
MIT License
|
|
200
|
+
|
|
201
|
+
## 関連パッケージ
|
|
202
|
+
|
|
203
|
+
- [barcode-pao-wasm (Python)](https://pypi.org/project/barcode-pao-wasm/) - Python WASM版
|
|
204
|
+
- [barcode-pao-wasm (Rust)](https://crates.io/crates/barcode-pao-wasm) - Rust WASM版
|
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "json"
|
|
4
|
+
require "open3"
|
|
5
|
+
|
|
6
|
+
module BarcodePaoWasm
|
|
7
|
+
FORMAT_PNG = "png"
|
|
8
|
+
FORMAT_JPEG = "jpeg"
|
|
9
|
+
FORMAT_SVG = "svg"
|
|
10
|
+
|
|
11
|
+
class WasmBarcodeError < StandardError; end
|
|
12
|
+
|
|
13
|
+
NODE_SCRIPT = <<~'JS'
|
|
14
|
+
import Module from './barcode.mjs';
|
|
15
|
+
|
|
16
|
+
const args = JSON.parse(process.argv[2]);
|
|
17
|
+
const {className, method, methodArgs, settings} = args;
|
|
18
|
+
|
|
19
|
+
try {
|
|
20
|
+
const m = await Module();
|
|
21
|
+
const BarcodeClass = m[className];
|
|
22
|
+
if (!BarcodeClass) {
|
|
23
|
+
console.log(JSON.stringify({error: `Unknown class: ${className}`}));
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const instance = new BarcodeClass();
|
|
28
|
+
|
|
29
|
+
// Apply settings
|
|
30
|
+
if (settings.outputFormat) instance.setOutputFormat(settings.outputFormat);
|
|
31
|
+
if (settings.foregroundColor) {
|
|
32
|
+
const [r, g, b, a] = settings.foregroundColor;
|
|
33
|
+
instance.setForegroundColor(r, g, b, a);
|
|
34
|
+
}
|
|
35
|
+
if (settings.backgroundColor) {
|
|
36
|
+
const [r, g, b, a] = settings.backgroundColor;
|
|
37
|
+
instance.setBackgroundColor(r, g, b, a);
|
|
38
|
+
}
|
|
39
|
+
if (settings.showText !== undefined && instance.setShowText) instance.setShowText(settings.showText);
|
|
40
|
+
if (settings.fitWidth !== undefined && instance.setFitWidth) instance.setFitWidth(settings.fitWidth);
|
|
41
|
+
if (settings.pxAdjustBlack !== undefined && instance.setPxAdjustBlack) instance.setPxAdjustBlack(settings.pxAdjustBlack);
|
|
42
|
+
if (settings.pxAdjustWhite !== undefined && instance.setPxAdjustWhite) instance.setPxAdjustWhite(settings.pxAdjustWhite);
|
|
43
|
+
if (settings.textGap !== undefined && instance.setTextGap) instance.setTextGap(settings.textGap);
|
|
44
|
+
if (settings.textFontScale !== undefined && instance.setTextFontScale) instance.setTextFontScale(settings.textFontScale);
|
|
45
|
+
if (settings.textEvenSpacing !== undefined && instance.setTextEvenSpacing) instance.setTextEvenSpacing(settings.textEvenSpacing);
|
|
46
|
+
if (settings.showStartStop !== undefined && instance.setShowStartStop) instance.setShowStartStop(settings.showStartStop);
|
|
47
|
+
if (settings.codeMode !== undefined && instance.setCodeMode) instance.setCodeMode(settings.codeMode);
|
|
48
|
+
if (settings.extendedGuard !== undefined && instance.setExtendedGuard) instance.setExtendedGuard(settings.extendedGuard);
|
|
49
|
+
if (settings.symbolType !== undefined && instance.setSymbolType) instance.setSymbolType(settings.symbolType);
|
|
50
|
+
if (settings.noOfColumns !== undefined && instance.setNoOfColumns) instance.setNoOfColumns(settings.noOfColumns);
|
|
51
|
+
if (settings.stringEncoding !== undefined && instance.setStringEncoding) instance.setStringEncoding(settings.stringEncoding);
|
|
52
|
+
if (settings.errorCorrectionLevel !== undefined && instance.setErrorCorrectionLevel) instance.setErrorCorrectionLevel(settings.errorCorrectionLevel);
|
|
53
|
+
if (settings.version !== undefined && instance.setVersion) instance.setVersion(settings.version);
|
|
54
|
+
if (settings.encodeMode !== undefined && instance.setEncodeMode) instance.setEncodeMode(settings.encodeMode);
|
|
55
|
+
if (settings.codeSize !== undefined && instance.setCodeSize) instance.setCodeSize(settings.codeSize);
|
|
56
|
+
if (settings.encodeScheme !== undefined && instance.setEncodeScheme) instance.setEncodeScheme(settings.encodeScheme);
|
|
57
|
+
if (settings.errorLevel !== undefined && instance.setErrorLevel) instance.setErrorLevel(settings.errorLevel);
|
|
58
|
+
if (settings.columns !== undefined && instance.setColumns) instance.setColumns(settings.columns);
|
|
59
|
+
if (settings.rows !== undefined && instance.setRows) instance.setRows(settings.rows);
|
|
60
|
+
if (settings.aspectRatio !== undefined && instance.setAspectRatio) instance.setAspectRatio(settings.aspectRatio);
|
|
61
|
+
if (settings.yHeight !== undefined && instance.setYHeight) instance.setYHeight(settings.yHeight);
|
|
62
|
+
|
|
63
|
+
// Call the method
|
|
64
|
+
const func = instance[method];
|
|
65
|
+
if (!func) {
|
|
66
|
+
console.log(JSON.stringify({error: `Unknown method: ${method}`}));
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const result = func.apply(instance, methodArgs);
|
|
71
|
+
console.log(JSON.stringify({result: result}));
|
|
72
|
+
} catch (err) {
|
|
73
|
+
console.log(JSON.stringify({error: err.message || String(err)}));
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
JS
|
|
77
|
+
|
|
78
|
+
# --- Base class ---
|
|
79
|
+
class BarcodeWasmBase
|
|
80
|
+
@@node_path = nil
|
|
81
|
+
|
|
82
|
+
def initialize
|
|
83
|
+
@settings = {
|
|
84
|
+
"outputFormat" => "png",
|
|
85
|
+
"foregroundColor" => nil,
|
|
86
|
+
"backgroundColor" => nil
|
|
87
|
+
}
|
|
88
|
+
@wasm_dir = File.join(File.dirname(__FILE__), "..", "..", "wasm")
|
|
89
|
+
ensure_node_available
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def set_output_format(fmt)
|
|
93
|
+
@settings["outputFormat"] = fmt
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def set_foreground_color(r, g, b, a = 255)
|
|
97
|
+
@settings["foregroundColor"] = [r, g, b, a]
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def set_background_color(r, g, b, a = 255)
|
|
101
|
+
@settings["backgroundColor"] = [r, g, b, a]
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
private
|
|
105
|
+
|
|
106
|
+
def ensure_node_available
|
|
107
|
+
return if @@node_path
|
|
108
|
+
|
|
109
|
+
["node", "nodejs"].each do |cmd|
|
|
110
|
+
begin
|
|
111
|
+
stdout, status = Open3.capture2(cmd, "--version")
|
|
112
|
+
if status.success?
|
|
113
|
+
@@node_path = cmd
|
|
114
|
+
return
|
|
115
|
+
end
|
|
116
|
+
rescue Errno::ENOENT
|
|
117
|
+
next
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
raise WasmBarcodeError,
|
|
122
|
+
"Node.js is required for WASM barcode generation. " \
|
|
123
|
+
"Please install Node.js from https://nodejs.org/"
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
def call_wasm(method, *args)
|
|
127
|
+
# Write runner script if not exists
|
|
128
|
+
script_path = File.join(@wasm_dir, "_barcode_runner.mjs")
|
|
129
|
+
unless File.exist?(script_path)
|
|
130
|
+
File.write(script_path, NODE_SCRIPT)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
call_args = {
|
|
134
|
+
"className" => self.class::CLASS_NAME,
|
|
135
|
+
"method" => method,
|
|
136
|
+
"methodArgs" => args,
|
|
137
|
+
"settings" => @settings
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
stdout, stderr, status = Open3.capture3(
|
|
141
|
+
@@node_path, script_path, JSON.generate(call_args),
|
|
142
|
+
chdir: @wasm_dir
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
unless status.success?
|
|
146
|
+
error_msg = stderr.strip.empty? ? "Unknown error" : stderr.strip
|
|
147
|
+
unless stdout.strip.empty?
|
|
148
|
+
begin
|
|
149
|
+
error_data = JSON.parse(stdout.strip)
|
|
150
|
+
error_msg = error_data["error"] if error_data["error"]
|
|
151
|
+
rescue JSON::ParserError
|
|
152
|
+
# ignore
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
raise WasmBarcodeError, "WASM execution failed: #{error_msg}"
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
# Find JSON line in output
|
|
159
|
+
json_line = nil
|
|
160
|
+
stdout.strip.split("\n").each do |line|
|
|
161
|
+
line = line.strip
|
|
162
|
+
json_line = line if line.start_with?("{") && line.end_with?("}")
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
raise WasmBarcodeError, "No JSON response found in WASM output" unless json_line
|
|
166
|
+
|
|
167
|
+
begin
|
|
168
|
+
output = JSON.parse(json_line)
|
|
169
|
+
raise WasmBarcodeError, "WASM error: #{output['error']}" if output["error"]
|
|
170
|
+
output["result"] || ""
|
|
171
|
+
rescue JSON::ParserError
|
|
172
|
+
raise WasmBarcodeError, "Invalid JSON response from WASM"
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
# --- 1D base ---
|
|
178
|
+
class Barcode1DBase < BarcodeWasmBase
|
|
179
|
+
def set_show_text(show)
|
|
180
|
+
@settings["showText"] = show
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
def set_text_gap(scale)
|
|
184
|
+
@settings["textGap"] = scale
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
def set_text_font_scale(scale)
|
|
188
|
+
@settings["textFontScale"] = scale
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
def set_text_even_spacing(even)
|
|
192
|
+
@settings["textEvenSpacing"] = even
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
def set_fit_width(fit)
|
|
196
|
+
@settings["fitWidth"] = fit
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
def set_px_adjust_black(adjust)
|
|
200
|
+
@settings["pxAdjustBlack"] = adjust
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
def set_px_adjust_white(adjust)
|
|
204
|
+
@settings["pxAdjustWhite"] = adjust
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
def draw(code, width, height)
|
|
208
|
+
call_wasm("draw", code, width, height)
|
|
209
|
+
end
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
# --- 2D base ---
|
|
213
|
+
class Barcode2DBase < BarcodeWasmBase
|
|
214
|
+
def set_string_encoding(encoding)
|
|
215
|
+
@settings["stringEncoding"] = encoding
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
def set_fit_width(fit)
|
|
219
|
+
@settings["fitWidth"] = fit
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
def draw(code, size)
|
|
223
|
+
call_wasm("draw", code, size)
|
|
224
|
+
end
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
# --- 1D types ---
|
|
228
|
+
|
|
229
|
+
class Code39 < Barcode1DBase
|
|
230
|
+
CLASS_NAME = "Code39"
|
|
231
|
+
|
|
232
|
+
def set_show_start_stop(show)
|
|
233
|
+
@settings["showStartStop"] = show
|
|
234
|
+
end
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
class Code93 < Barcode1DBase
|
|
238
|
+
CLASS_NAME = "Code93"
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
class Code128 < Barcode1DBase
|
|
242
|
+
CLASS_NAME = "Code128"
|
|
243
|
+
|
|
244
|
+
def set_code_mode(mode)
|
|
245
|
+
@settings["codeMode"] = mode
|
|
246
|
+
end
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
class GS1128 < Barcode1DBase
|
|
250
|
+
CLASS_NAME = "GS1_128"
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
class NW7 < Barcode1DBase
|
|
254
|
+
CLASS_NAME = "NW7"
|
|
255
|
+
|
|
256
|
+
def set_show_start_stop(show)
|
|
257
|
+
@settings["showStartStop"] = show
|
|
258
|
+
end
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
class ITF < Barcode1DBase
|
|
262
|
+
CLASS_NAME = "ITF"
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
class Matrix2of5 < Barcode1DBase
|
|
266
|
+
CLASS_NAME = "Matrix2of5"
|
|
267
|
+
end
|
|
268
|
+
|
|
269
|
+
class NEC2of5 < Barcode1DBase
|
|
270
|
+
CLASS_NAME = "NEC2of5"
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
class JAN8 < Barcode1DBase
|
|
274
|
+
CLASS_NAME = "Jan8"
|
|
275
|
+
|
|
276
|
+
def set_extended_guard(ext)
|
|
277
|
+
@settings["extendedGuard"] = ext
|
|
278
|
+
end
|
|
279
|
+
end
|
|
280
|
+
|
|
281
|
+
class JAN13 < Barcode1DBase
|
|
282
|
+
CLASS_NAME = "Jan13"
|
|
283
|
+
|
|
284
|
+
def set_extended_guard(ext)
|
|
285
|
+
@settings["extendedGuard"] = ext
|
|
286
|
+
end
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
class UPCA < Barcode1DBase
|
|
290
|
+
CLASS_NAME = "UPC_A"
|
|
291
|
+
|
|
292
|
+
def set_extended_guard(ext)
|
|
293
|
+
@settings["extendedGuard"] = ext
|
|
294
|
+
end
|
|
295
|
+
end
|
|
296
|
+
|
|
297
|
+
class UPCE < Barcode1DBase
|
|
298
|
+
CLASS_NAME = "UPC_E"
|
|
299
|
+
|
|
300
|
+
def set_extended_guard(ext)
|
|
301
|
+
@settings["extendedGuard"] = ext
|
|
302
|
+
end
|
|
303
|
+
end
|
|
304
|
+
|
|
305
|
+
class GS1DataBar14 < Barcode1DBase
|
|
306
|
+
CLASS_NAME = "GS1DataBar14"
|
|
307
|
+
|
|
308
|
+
def set_symbol_type(type_str)
|
|
309
|
+
@settings["symbolType"] = type_str
|
|
310
|
+
end
|
|
311
|
+
end
|
|
312
|
+
|
|
313
|
+
class GS1DataBarLimited < Barcode1DBase
|
|
314
|
+
CLASS_NAME = "GS1DataBarLimited"
|
|
315
|
+
end
|
|
316
|
+
|
|
317
|
+
class GS1DataBarExpanded < Barcode1DBase
|
|
318
|
+
CLASS_NAME = "GS1DataBarExpanded"
|
|
319
|
+
|
|
320
|
+
def set_symbol_type(type_str)
|
|
321
|
+
@settings["symbolType"] = type_str
|
|
322
|
+
end
|
|
323
|
+
|
|
324
|
+
def set_no_of_columns(cols)
|
|
325
|
+
@settings["noOfColumns"] = cols
|
|
326
|
+
end
|
|
327
|
+
end
|
|
328
|
+
|
|
329
|
+
# --- Special ---
|
|
330
|
+
|
|
331
|
+
class YubinCustomer < BarcodeWasmBase
|
|
332
|
+
CLASS_NAME = "YubinCustomer"
|
|
333
|
+
|
|
334
|
+
def set_px_adjust_black(adjust)
|
|
335
|
+
@settings["pxAdjustBlack"] = adjust
|
|
336
|
+
end
|
|
337
|
+
|
|
338
|
+
def set_px_adjust_white(adjust)
|
|
339
|
+
@settings["pxAdjustWhite"] = adjust
|
|
340
|
+
end
|
|
341
|
+
|
|
342
|
+
def draw(code, height)
|
|
343
|
+
call_wasm("draw", code, height)
|
|
344
|
+
end
|
|
345
|
+
end
|
|
346
|
+
|
|
347
|
+
# --- 2D types ---
|
|
348
|
+
|
|
349
|
+
class QRCode < Barcode2DBase
|
|
350
|
+
CLASS_NAME = "QR"
|
|
351
|
+
|
|
352
|
+
def set_error_correction_level(level)
|
|
353
|
+
@settings["errorCorrectionLevel"] = level
|
|
354
|
+
end
|
|
355
|
+
|
|
356
|
+
def set_version(version)
|
|
357
|
+
@settings["version"] = version
|
|
358
|
+
end
|
|
359
|
+
|
|
360
|
+
def set_encode_mode(mode)
|
|
361
|
+
@settings["encodeMode"] = mode
|
|
362
|
+
end
|
|
363
|
+
end
|
|
364
|
+
|
|
365
|
+
class DataMatrix < Barcode2DBase
|
|
366
|
+
CLASS_NAME = "DataMatrix"
|
|
367
|
+
|
|
368
|
+
def set_code_size(size)
|
|
369
|
+
@settings["codeSize"] = size
|
|
370
|
+
end
|
|
371
|
+
|
|
372
|
+
def set_encode_scheme(scheme)
|
|
373
|
+
@settings["encodeScheme"] = scheme
|
|
374
|
+
end
|
|
375
|
+
end
|
|
376
|
+
|
|
377
|
+
class PDF417 < Barcode2DBase
|
|
378
|
+
CLASS_NAME = "PDF417"
|
|
379
|
+
|
|
380
|
+
def set_error_level(level)
|
|
381
|
+
@settings["errorLevel"] = level
|
|
382
|
+
end
|
|
383
|
+
|
|
384
|
+
def set_columns(cols)
|
|
385
|
+
@settings["columns"] = cols
|
|
386
|
+
end
|
|
387
|
+
|
|
388
|
+
def set_rows(rows)
|
|
389
|
+
@settings["rows"] = rows
|
|
390
|
+
end
|
|
391
|
+
|
|
392
|
+
def set_aspect_ratio(ratio)
|
|
393
|
+
@settings["aspectRatio"] = ratio.to_f
|
|
394
|
+
end
|
|
395
|
+
|
|
396
|
+
def set_y_height(y)
|
|
397
|
+
@settings["yHeight"] = y
|
|
398
|
+
end
|
|
399
|
+
|
|
400
|
+
def draw(code, width, height)
|
|
401
|
+
call_wasm("draw", code, width, height)
|
|
402
|
+
end
|
|
403
|
+
end
|
|
404
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import Module from './barcode.mjs';
|
|
2
|
+
|
|
3
|
+
const args = JSON.parse(process.argv[2]);
|
|
4
|
+
const {className, method, methodArgs, settings} = args;
|
|
5
|
+
|
|
6
|
+
try {
|
|
7
|
+
const m = await Module();
|
|
8
|
+
const BarcodeClass = m[className];
|
|
9
|
+
if (!BarcodeClass) {
|
|
10
|
+
console.log(JSON.stringify({error: `Unknown class: ${className}`}));
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const instance = new BarcodeClass();
|
|
15
|
+
|
|
16
|
+
// Apply settings
|
|
17
|
+
if (settings.outputFormat) instance.setOutputFormat(settings.outputFormat);
|
|
18
|
+
if (settings.foregroundColor) {
|
|
19
|
+
const [r, g, b, a] = settings.foregroundColor;
|
|
20
|
+
instance.setForegroundColor(r, g, b, a);
|
|
21
|
+
}
|
|
22
|
+
if (settings.backgroundColor) {
|
|
23
|
+
const [r, g, b, a] = settings.backgroundColor;
|
|
24
|
+
instance.setBackgroundColor(r, g, b, a);
|
|
25
|
+
}
|
|
26
|
+
if (settings.showText !== undefined && instance.setShowText) instance.setShowText(settings.showText);
|
|
27
|
+
if (settings.fitWidth !== undefined && instance.setFitWidth) instance.setFitWidth(settings.fitWidth);
|
|
28
|
+
if (settings.pxAdjustBlack !== undefined && instance.setPxAdjustBlack) instance.setPxAdjustBlack(settings.pxAdjustBlack);
|
|
29
|
+
if (settings.pxAdjustWhite !== undefined && instance.setPxAdjustWhite) instance.setPxAdjustWhite(settings.pxAdjustWhite);
|
|
30
|
+
if (settings.textGap !== undefined && instance.setTextGap) instance.setTextGap(settings.textGap);
|
|
31
|
+
if (settings.textFontScale !== undefined && instance.setTextFontScale) instance.setTextFontScale(settings.textFontScale);
|
|
32
|
+
if (settings.textEvenSpacing !== undefined && instance.setTextEvenSpacing) instance.setTextEvenSpacing(settings.textEvenSpacing);
|
|
33
|
+
if (settings.showStartStop !== undefined && instance.setShowStartStop) instance.setShowStartStop(settings.showStartStop);
|
|
34
|
+
if (settings.codeMode !== undefined && instance.setCodeMode) instance.setCodeMode(settings.codeMode);
|
|
35
|
+
if (settings.extendedGuard !== undefined && instance.setExtendedGuard) instance.setExtendedGuard(settings.extendedGuard);
|
|
36
|
+
if (settings.symbolType !== undefined && instance.setSymbolType) instance.setSymbolType(settings.symbolType);
|
|
37
|
+
if (settings.noOfColumns !== undefined && instance.setNoOfColumns) instance.setNoOfColumns(settings.noOfColumns);
|
|
38
|
+
if (settings.stringEncoding !== undefined && instance.setStringEncoding) instance.setStringEncoding(settings.stringEncoding);
|
|
39
|
+
if (settings.errorCorrectionLevel !== undefined && instance.setErrorCorrectionLevel) instance.setErrorCorrectionLevel(settings.errorCorrectionLevel);
|
|
40
|
+
if (settings.version !== undefined && instance.setVersion) instance.setVersion(settings.version);
|
|
41
|
+
if (settings.encodeMode !== undefined && instance.setEncodeMode) instance.setEncodeMode(settings.encodeMode);
|
|
42
|
+
if (settings.codeSize !== undefined && instance.setCodeSize) instance.setCodeSize(settings.codeSize);
|
|
43
|
+
if (settings.encodeScheme !== undefined && instance.setEncodeScheme) instance.setEncodeScheme(settings.encodeScheme);
|
|
44
|
+
if (settings.errorLevel !== undefined && instance.setErrorLevel) instance.setErrorLevel(settings.errorLevel);
|
|
45
|
+
if (settings.columns !== undefined && instance.setColumns) instance.setColumns(settings.columns);
|
|
46
|
+
if (settings.rows !== undefined && instance.setRows) instance.setRows(settings.rows);
|
|
47
|
+
if (settings.aspectRatio !== undefined && instance.setAspectRatio) instance.setAspectRatio(settings.aspectRatio);
|
|
48
|
+
if (settings.yHeight !== undefined && instance.setYHeight) instance.setYHeight(settings.yHeight);
|
|
49
|
+
|
|
50
|
+
// Call the method
|
|
51
|
+
const func = instance[method];
|
|
52
|
+
if (!func) {
|
|
53
|
+
console.log(JSON.stringify({error: `Unknown method: ${method}`}));
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const result = func.apply(instance, methodArgs);
|
|
58
|
+
console.log(JSON.stringify({result: result}));
|
|
59
|
+
} catch (err) {
|
|
60
|
+
console.log(JSON.stringify({error: err.message || String(err)}));
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
data/wasm/barcode.js
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
async function Module(moduleArg={}){var moduleRtn;var n=moduleArg,aa=!!globalThis.window,ba=!!globalThis.WorkerGlobalScope,ca=globalThis.process?.versions?.node&&"renderer"!=globalThis.process?.type;if(ca){const {createRequire:a}=await import("module");var require=a(import.meta.url)}var da="./this.program",fa=(a,b)=>{throw b;},ha=import.meta.url,ia="",ja,ka;
|
|
2
|
+
if(ca){var fs=require("fs");ha.startsWith("file:")&&(ia=require("path").dirname(require("url").fileURLToPath(ha))+"/");ka=a=>{a=la(a)?new URL(a):a;return fs.readFileSync(a)};ja=async a=>{a=la(a)?new URL(a):a;return fs.readFileSync(a,void 0)};1<process.argv.length&&(da=process.argv[1].replace(/\\/g,"/"));process.argv.slice(2);fa=(a,b)=>{process.exitCode=a;throw b;}}else if(aa||ba){try{ia=(new URL(".",ha)).href}catch{}ba&&(ka=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";
|
|
3
|
+
b.send(null);return new Uint8Array(b.response)});ja=async a=>{if(la(a))return new Promise((c,d)=>{var e=new XMLHttpRequest;e.open("GET",a,!0);e.responseType="arraybuffer";e.onload=()=>{200==e.status||0==e.status&&e.response?c(e.response):d(e.status)};e.onerror=d;e.send(null)});var b=await fetch(a,{credentials:"same-origin"});if(b.ok)return b.arrayBuffer();throw Error(b.status+" : "+b.url);}}
|
|
4
|
+
var ma=console.log.bind(console),p=console.error.bind(console),na,oa=!1,pa,la=a=>a.startsWith("file://"),qa,ra,u,v,sa,ta,w,y,ua,va,A,wa,xa=!1;function B(a){n.onAbort?.(a);a="Aborted("+a+")";p(a);oa=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");ra?.(a);throw a;}var ya;
|
|
5
|
+
async function za(a){if(!na)try{var b=await ja(a);return new Uint8Array(b)}catch{}if(a==ya&&na)a=new Uint8Array(na);else if(ka)a=ka(a);else throw"both async and sync fetching of the wasm failed";return a}async function Aa(a,b){try{var c=await za(a);return await WebAssembly.instantiate(c,b)}catch(d){p(`failed to asynchronously prepare wasm: ${d}`),B(d)}}
|
|
6
|
+
async function Ba(a){var b=ya;if(!na&&!la(b)&&!ca)try{var c=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,a)}catch(d){p(`wasm streaming compile failed: ${d}`),p("falling back to ArrayBuffer instantiation")}return Aa(b,a)}class Ca{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}var Da=a=>{for(;0<a.length;)a.shift()(n)},Ea=[],Fa=[],Ga=()=>{var a=n.preRun.shift();Fa.push(a)},Ha=!0,Ia=[],Ja=0,C=0;
|
|
7
|
+
class Ka{constructor(a){this.ac=a;this.Ta=a-24}}
|
|
8
|
+
var Na=a=>{var b=C;if(!b)return La(0),0;var c=new Ka(b);y[c.Ta+16>>2]=b;var d=y[c.Ta+4>>2];if(!d)return La(0),b;for(var e of a){if(0===e||e===d)break;if(Ma(e,d,c.Ta+16))return La(e),b}La(d);return b},D=()=>{var a=w[+Oa>>2];Oa+=4;return a},Pa=(a,b)=>{for(var c=0,d=a.length-1;0<=d;d--){var e=a[d];"."===e?a.splice(d,1):".."===e?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a},Qa=a=>{var b="/"===a.charAt(0),c="/"===a.slice(-1);(a=Pa(a.split("/").filter(d=>!!d),!b).join("/"))||
|
|
9
|
+
b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a},Ra=a=>{var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return".";b&&=b.slice(0,-1);return a+b},Sa=()=>{if(ca){var a=require("crypto");return b=>a.randomFillSync(b)}return b=>crypto.getRandomValues(b)},Ta=a=>{(Ta=Sa())(a)},Ua=(...a)=>{for(var b="",c=!1,d=a.length-1;-1<=d&&!c;d--){c=0<=d?a[d]:"/";if("string"!=typeof c)throw new TypeError("Arguments to path.resolve must be strings");if(!c)return"";
|
|
10
|
+
b=c+"/"+b;c="/"===c.charAt(0)}b=Pa(b.split("/").filter(e=>!!e),!c).join("/");return(c?"/":"")+b||"."},Va=new TextDecoder,Wa=(a,b,c,d)=>{c=b+c;if(d)return c;for(;a[b]&&!(b>=c);)++b;return b},Xa=a=>{var b=Wa(a,0);return Va.decode(a.buffer?a.subarray(0,b):new Uint8Array(a.slice(0,b)))},Ya=[],Za=a=>{for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},E=(a,b,c,d)=>{if(!(0<d))return 0;var e=c;d=c+d-1;for(var f=0;f<a.length;++f){var g=
|
|
11
|
+
a.codePointAt(f);if(127>=g){if(c>=d)break;b[c++]=g}else if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6;b[c++]=128|g&63}else if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12;b[c++]=128|g>>6&63;b[c++]=128|g&63}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63;b[c++]=128|g>>6&63;b[c++]=128|g&63;f++}}b[c]=0;return c-e},$a=a=>{var b=Array(Za(a)+1);a=E(a,b,0,b.length);b.length=a;return b},ab=[];function bb(a,b){ab[a]={input:[],output:[],nb:b};cb(a,db)}
|
|
12
|
+
var db={open(a){var b=ab[a.node.rdev];if(!b)throw new G(43);a.tty=b;a.seekable=!1},close(a){a.tty.nb.fsync(a.tty)},fsync(a){a.tty.nb.fsync(a.tty)},read(a,b,c,d){if(!a.tty||!a.tty.nb.bc)throw new G(60);for(var e=0,f=0;f<d;f++){try{var g=a.tty.nb.bc(a.tty)}catch(h){throw new G(29);}if(void 0===g&&0===e)throw new G(6);if(null===g||void 0===g)break;e++;b[c+f]=g}e&&(a.node.atime=Date.now());return e},write(a,b,c,d){if(!a.tty||!a.tty.nb.Qb)throw new G(60);try{for(var e=0;e<d;e++)a.tty.nb.Qb(a.tty,b[c+e])}catch(f){throw new G(29);
|
|
13
|
+
}d&&(a.node.mtime=a.node.ctime=Date.now());return e}},eb={bc(){a:{if(!Ya.length){var a=null;if(ca){var b=Buffer.alloc(256),c=0,d=process.stdin.fd;try{c=fs.readSync(d,b,0,256)}catch(e){if(e.toString().includes("EOF"))c=0;else throw e;}0<c&&(a=b.slice(0,c).toString("utf-8"))}else globalThis.window?.prompt&&(a=window.prompt("Input: "),null!==a&&(a+="\n"));if(!a){a=null;break a}Ya=$a(a)}a=Ya.shift()}return a},Qb(a,b){null===b||10===b?(ma(Xa(a.output)),a.output=[]):0!=b&&a.output.push(b)},fsync(a){0<a.output?.length&&
|
|
14
|
+
(ma(Xa(a.output)),a.output=[])},tc(){return{Mc:25856,Oc:5,Lc:191,Nc:35387,Kc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},uc(){return 0},vc(){return[24,80]}},fb={Qb(a,b){null===b||10===b?(p(Xa(a.output)),a.output=[]):0!=b&&a.output.push(b)},fsync(a){0<a.output?.length&&(p(Xa(a.output)),a.output=[])}},hb=a=>{a=65536*Math.ceil(a/65536);var b=gb(65536,a);b&&v.fill(0,b,b+a);return b},H={jb:null,mb(){return H.createNode(null,"/",16895,0)},createNode(a,b,c,d){if(24576===
|
|
15
|
+
(c&61440)||4096===(c&61440))throw new G(63);H.jb||(H.jb={dir:{node:{hb:H.Ua.hb,kb:H.Ua.kb,lookup:H.Ua.lookup,Eb:H.Ua.Eb,rename:H.Ua.rename,unlink:H.Ua.unlink,rmdir:H.Ua.rmdir,readdir:H.Ua.readdir,symlink:H.Ua.symlink},stream:{ib:H.Ra.ib}},file:{node:{hb:H.Ua.hb,kb:H.Ua.kb},stream:{ib:H.Ra.ib,read:H.Ra.read,write:H.Ra.write,xb:H.Ra.xb,Fb:H.Ra.Fb}},link:{node:{hb:H.Ua.hb,kb:H.Ua.kb,readlink:H.Ua.readlink},stream:{}},Xb:{node:{hb:H.Ua.hb,kb:H.Ua.kb},stream:ib}});c=jb(a,b,c,d);J(c.mode)?(c.Ua=H.jb.dir.node,
|
|
16
|
+
c.Ra=H.jb.dir.stream,c.Sa={}):32768===(c.mode&61440)?(c.Ua=H.jb.file.node,c.Ra=H.jb.file.stream,c.Xa=0,c.Sa=null):40960===(c.mode&61440)?(c.Ua=H.jb.link.node,c.Ra=H.jb.link.stream):8192===(c.mode&61440)&&(c.Ua=H.jb.Xb.node,c.Ra=H.jb.Xb.stream);c.atime=c.mtime=c.ctime=Date.now();a&&(a.Sa[b]=c,a.atime=a.mtime=a.ctime=c.atime);return c},Zc(a){return a.Sa?a.Sa.subarray?a.Sa.subarray(0,a.Xa):new Uint8Array(a.Sa):new Uint8Array(0)},Ua:{hb(a){var b={};b.dev=8192===(a.mode&61440)?a.id:1;b.ino=a.id;b.mode=
|
|
17
|
+
a.mode;b.nlink=1;b.uid=0;b.gid=0;b.rdev=a.rdev;J(a.mode)?b.size=4096:32768===(a.mode&61440)?b.size=a.Xa:40960===(a.mode&61440)?b.size=a.link.length:b.size=0;b.atime=new Date(a.atime);b.mtime=new Date(a.mtime);b.ctime=new Date(a.ctime);b.blksize=4096;b.blocks=Math.ceil(b.size/b.blksize);return b},kb(a,b){for(var c of["mode","atime","mtime","ctime"])null!=b[c]&&(a[c]=b[c]);void 0!==b.size&&(b=b.size,a.Xa!=b&&(0==b?(a.Sa=null,a.Xa=0):(c=a.Sa,a.Sa=new Uint8Array(b),c&&a.Sa.set(c.subarray(0,Math.min(b,
|
|
18
|
+
a.Xa))),a.Xa=b)))},lookup(){H.Jb||(H.Jb=new G(44),H.Jb.stack="<generic error, no stack>");throw H.Jb;},Eb(a,b,c,d){return H.createNode(a,b,c,d)},rename(a,b,c){try{var d=kb(b,c)}catch(f){}if(d){if(J(a.mode))for(var e in d.Sa)throw new G(55);lb(d)}delete a.parent.Sa[a.name];b.Sa[c]=a;a.name=c;b.ctime=b.mtime=a.parent.ctime=a.parent.mtime=Date.now()},unlink(a,b){delete a.Sa[b];a.ctime=a.mtime=Date.now()},rmdir(a,b){var c=kb(a,b),d;for(d in c.Sa)throw new G(55);delete a.Sa[b];a.ctime=a.mtime=Date.now()},
|
|
19
|
+
readdir(a){return[".","..",...Object.keys(a.Sa)]},symlink(a,b,c){a=H.createNode(a,b,41471,0);a.link=c;return a},readlink(a){if(40960!==(a.mode&61440))throw new G(28);return a.link}},Ra:{read(a,b,c,d,e){var f=a.node.Sa;if(e>=a.node.Xa)return 0;a=Math.min(a.node.Xa-e,d);if(8<a&&f.subarray)b.set(f.subarray(e,e+a),c);else for(d=0;d<a;d++)b[c+d]=f[e+d];return a},write(a,b,c,d,e,f){if(!d)return 0;a=a.node;a.mtime=a.ctime=Date.now();if(b.subarray&&(!a.Sa||a.Sa.subarray)){if(f)return a.Sa=b.subarray(c,c+
|
|
20
|
+
d),a.Xa=d;if(0===a.Xa&&0===e)return a.Sa=b.slice(c,c+d),a.Xa=d;if(e+d<=a.Xa)return a.Sa.set(b.subarray(c,c+d),e),d}f=e+d;var g=a.Sa?a.Sa.length:0;g>=f||(f=Math.max(f,g*(1048576>g?2:1.125)>>>0),0!=g&&(f=Math.max(f,256)),g=a.Sa,a.Sa=new Uint8Array(f),0<a.Xa&&a.Sa.set(g.subarray(0,a.Xa),0));if(a.Sa.subarray&&b.subarray)a.Sa.set(b.subarray(c,c+d),e);else for(f=0;f<d;f++)a.Sa[e+f]=b[c+f];a.Xa=Math.max(a.Xa,e+d);return d},ib(a,b,c){1===c?b+=a.position:2===c&&32768===(a.node.mode&61440)&&(b+=a.node.Xa);
|
|
21
|
+
if(0>b)throw new G(28);return b},xb(a,b,c,d,e){if(32768!==(a.node.mode&61440))throw new G(43);a=a.node.Sa;if(e&2||!a||a.buffer!==u.buffer){d=!0;e=hb(b);if(!e)throw new G(48);if(a){if(0<c||c+b<a.length)a.subarray?a=a.subarray(c,c+b):a=Array.prototype.slice.call(a,c,c+b);u.set(a,e)}}else d=!1,e=a.byteOffset;return{Ta:e,Vb:d}},Fb(a,b,c,d){H.Ra.write(a,b,0,d,c,!1);return 0}}},mb=(a,b)=>{var c=0;a&&(c|=365);b&&(c|=146);return c},nb=async a=>{a=await ja(a);return new Uint8Array(a)},ob=0,pb=null,qb=()=>
|
|
22
|
+
{ob--;n.monitorRunDependencies?.(ob);if(0==ob&&pb){var a=pb;pb=null;a()}},rb=()=>{ob++;n.monitorRunDependencies?.(ob)},sb=[],vb=async(a,b)=>{"undefined"!=typeof tb&&ub();for(var c of sb)if(c.canHandle(b))return c.handle(a,b);return a},wb=null,xb={},yb=[],zb=1,M=null,Ab=!1,Bb=!0,Cb={},G=class{name="ErrnoError";constructor(a){this.ab=a}},Db=class{lb={};node=null;get flags(){return this.lb.flags}set flags(a){this.lb.flags=a}get position(){return this.lb.position}set position(a){this.lb.position=a}},
|
|
23
|
+
Eb=class{Ua={};Ra={};yb=null;constructor(a,b,c,d){a||=this;this.parent=a;this.mb=a.mb;this.id=zb++;this.name=b;this.mode=c;this.rdev=d;this.atime=this.mtime=this.ctime=Date.now()}get read(){return 365===(this.mode&365)}set read(a){a?this.mode|=365:this.mode&=-366}get write(){return 146===(this.mode&146)}set write(a){a?this.mode|=146:this.mode&=-147}get xc(){return J(this.mode)}get wc(){return 8192===(this.mode&61440)}};
|
|
24
|
+
function Fb(a,b={}){if(!a)throw new G(44);b.Lb??(b.Lb=!0);"/"===a.charAt(0)||(a="//"+a);var c=0;a:for(;40>c;c++){a=a.split("/").filter(h=>!!h);for(var d=wb,e="/",f=0;f<a.length;f++){var g=f===a.length-1;if(g&&b.parent)break;if("."!==a[f])if(".."===a[f])if(e=Ra(e),d===d.parent){a=e+"/"+a.slice(f+1).join("/");c--;continue a}else d=d.parent;else{e=Qa(e+"/"+a[f]);try{d=kb(d,a[f])}catch(h){if(44===h?.ab&&g&&b.Ac)return{path:e};throw h;}!d.yb||g&&!b.Lb||(d=d.yb.root);if(40960===(d.mode&61440)&&(!g||b.Kb)){if(!d.Ua.readlink)throw new G(52);
|
|
25
|
+
d=d.Ua.readlink(d);"/"===d.charAt(0)||(d=Ra(e)+"/"+d);a=d+"/"+a.slice(f+1).join("/");continue a}}}return{path:e,node:d}}throw new G(32);}function Gb(a){for(var b;;){if(a===a.parent)return a=a.mb.dc,b?"/"!==a[a.length-1]?`${a}/${b}`:a+b:a;b=b?`${a.name}/${b}`:a.name;a=a.parent}}function Hb(a,b){for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%M.length}
|
|
26
|
+
function lb(a){var b=Hb(a.parent.id,a.name);if(M[b]===a)M[b]=a.ub;else for(b=M[b];b;){if(b.ub===a){b.ub=a.ub;break}b=b.ub}}function kb(a,b){var c=J(a.mode)?(c=Ib(a,"x"))?c:a.Ua.lookup?0:2:54;if(c)throw new G(c);for(c=M[Hb(a.id,b)];c;c=c.ub){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.Ua.lookup(a,b)}function jb(a,b,c,d){a=new Eb(a,b,c,d);b=Hb(a.parent.id,a.name);a.ub=M[b];return M[b]=a}function J(a){return 16384===(a&61440)}
|
|
27
|
+
function Jb(a){var b=["r","w","rw"][a&3];a&512&&(b+="w");return b}function Ib(a,b){if(Bb)return 0;if(!b.includes("r")||a.mode&292){if(b.includes("w")&&!(a.mode&146)||b.includes("x")&&!(a.mode&73))return 2}else return 2;return 0}function Kb(a,b){if(!J(a.mode))return 54;try{return kb(a,b),20}catch(c){}return Ib(a,"wx")}function N(a){a=yb[a];if(!a)throw new G(8);return a}
|
|
28
|
+
function Lb(a,b=-1){a=Object.assign(new Db,a);if(-1==b)a:{for(b=0;4096>=b;b++)if(!yb[b])break a;throw new G(33);}a.fd=b;return yb[b]=a}function Mb(a,b=-1){a=Lb(a,b);a.Ra?.Uc?.(a);return a}function Nb(a,b){var c=null?.Ra.kb,d=c?null:a;c??=a.Ua.kb;if(!c)throw new G(63);c(d,b)}var ib={open(a){a.Ra=xb[a.node.rdev].Ra;a.Ra.open?.(a)},ib(){throw new G(70);}};function cb(a,b){xb[a]={Ra:b}}
|
|
29
|
+
function Ob(a,b){var c="/"===b;if(c&&wb)throw new G(10);if(!c&&b){var d=Fb(b,{Lb:!1});b=d.path;d=d.node;if(d.yb)throw new G(10);if(!J(d.mode))throw new G(54);}b={type:a,gd:{},dc:b,zc:[]};a=a.mb(b);a.mb=b;b.root=a;c?wb=a:d&&(d.yb=b,d.mb&&d.mb.zc.push(b))}function Pb(a,b,c){var d=Fb(a,{parent:!0}).node;a=a&&a.match(/([^\/]+|\/)\/*$/)[1];if(!a)throw new G(28);if("."===a||".."===a)throw new G(20);var e=Kb(d,a);if(e)throw new G(e);if(!d.Ua.Eb)throw new G(63);return d.Ua.Eb(d,a,b,c)}
|
|
30
|
+
function Qb(a,b=438){return Pb(a,b&4095|32768,0)}function O(a){return Pb(a,16895,0)}function Rb(a,b,c){"undefined"==typeof c&&(c=b,b=438);return Pb(a,b|8192,c)}function Sb(a,b){if(!Ua(a))throw new G(44);var c=Fb(b,{parent:!0}).node;if(!c)throw new G(44);b=b&&b.match(/([^\/]+|\/)\/*$/)[1];var d=Kb(c,b);if(d)throw new G(d);if(!c.Ua.symlink)throw new G(63);c.Ua.symlink(c,b,a)}
|
|
31
|
+
function Tb(a){var b=Fb(a,{parent:!0}).node;if(!b)throw new G(44);a=a&&a.match(/([^\/]+|\/)\/*$/)[1];var c=kb(b,a);a:{try{var d=kb(b,a)}catch(f){d=f.ab;break a}var e=Ib(b,"wx");d=e?e:J(d.mode)?31:0}if(d)throw new G(d);if(!b.Ua.unlink)throw new G(63);if(c.yb)throw new G(10);b.Ua.unlink(b,a);lb(c)}function Ub(a,b){a="string"==typeof a?Fb(a,{Kb:!0}).node:a;Nb(a,{mode:b&4095|a.mode&-4096,ctime:Date.now(),Tc:void 0})}
|
|
32
|
+
function Vb(a,b,c=438){if(""===a)throw new G(44);if("string"==typeof b){var d={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[b];if("undefined"==typeof d)throw Error(`Unknown file open mode: ${b}`);b=d}c=b&64?c&4095|32768:0;if("object"==typeof a)d=a;else{var e=a.endsWith("/");a=Fb(a,{Kb:!(b&131072),Ac:!0});d=a.node;a=a.path}var f=!1;if(b&64)if(d){if(b&128)throw new G(20);}else{if(e)throw new G(31);d=Pb(a,c|511,0);f=!0}if(!d)throw new G(44);8192===(d.mode&61440)&&(b&=-513);if(b&65536&&!J(d.mode))throw new G(54);
|
|
33
|
+
if(!f&&(e=d?40960===(d.mode&61440)?32:J(d.mode)&&("r"!==Jb(b)||b&576)?31:Ib(d,Jb(b)):44))throw new G(e);if(b&512&&!f){e=d;e="string"==typeof e?Fb(e,{Kb:!0}).node:e;if(J(e.mode))throw new G(31);if(32768!==(e.mode&61440))throw new G(28);var g=Ib(e,"w");if(g)throw new G(g);Nb(e,{size:0,timestamp:Date.now()})}b&=-131713;e=Lb({node:d,path:Gb(d),flags:b,seekable:!0,position:0,Ra:d.Ra,Gc:[],error:!1});e.Ra.open&&e.Ra.open(e);f&&Ub(d,c&511);!n.logReadFiles||b&1||a in Cb||(Cb[a]=1);return e}
|
|
34
|
+
function Wb(a){if(null===a.fd)throw new G(8);a.Nb&&(a.Nb=null);try{a.Ra.close&&a.Ra.close(a)}catch(b){throw b;}finally{yb[a.fd]=null}a.fd=null}function Xb(a,b,c){if(null===a.fd)throw new G(8);if(!a.seekable||!a.Ra.ib)throw new G(70);if(0!=c&&1!=c&&2!=c)throw new G(28);a.position=a.Ra.ib(a,b,c);a.Gc=[]}
|
|
35
|
+
function Yb(a,b,c,d,e,f){if(0>d||0>e)throw new G(28);if(null===a.fd)throw new G(8);if(0===(a.flags&2097155))throw new G(8);if(J(a.node.mode))throw new G(31);if(!a.Ra.write)throw new G(28);a.seekable&&a.flags&1024&&Xb(a,0,2);var g="undefined"!=typeof e;if(!g)e=a.position;else if(!a.seekable)throw new G(70);b=a.Ra.write(a,b,c,d,e,f);g||(a.position+=b);return b}
|
|
36
|
+
function Zb(a,b){a="string"==typeof a?a:Gb(a);for(b=b.split("/").reverse();b.length;){var c=b.pop();if(c){var d=Qa(a+"/"+c);try{O(d)}catch(e){if(20!=e.ab)throw e;}a=d}}return d}function $b(a,b,c,d){a=Qa(("string"==typeof a?a:Gb(a))+"/"+b);return Qb(a,mb(c,d))}
|
|
37
|
+
function ac(a,b,c,d,e,f){var g=b;a&&(a="string"==typeof a?a:Gb(a),g=b?Qa(a+"/"+b):a);a=mb(d,e);g=Qb(g,a);if(c){if("string"==typeof c){b=Array(c.length);d=0;for(e=c.length;d<e;++d)b[d]=c.charCodeAt(d);c=b}Ub(g,a|146);b=Vb(g,577);Yb(b,c,0,c.length,0,f);Wb(b);Ub(g,a)}}
|
|
38
|
+
function P(a,b,c,d){a=Qa(("string"==typeof a?a:Gb(a))+"/"+b);b=mb(!!c,!!d);P.cc??(P.cc=64);var e=P.cc++<<8|0;cb(e,{open(f){f.seekable=!1},close(){d?.buffer?.length&&d(10)},read(f,g,h,k){for(var l=0,m=0;m<k;m++){try{var q=c()}catch(r){throw new G(29);}if(void 0===q&&0===l)throw new G(6);if(null===q||void 0===q)break;l++;g[h+m]=q}l&&(f.node.atime=Date.now());return l},write(f,g,h,k){for(var l=0;l<k;l++)try{d(g[h+l])}catch(m){throw new G(29);}k&&(f.node.mtime=f.node.ctime=Date.now());return l}});return Rb(a,
|
|
39
|
+
b,e)}function bc(a){if(!(a.wc||a.xc||a.link||a.Sa))if(globalThis.XMLHttpRequest)B("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.");else try{a.Sa=ka(a.url)}catch(b){throw new G(29);}}
|
|
40
|
+
function cc(a,b,c,d,e){function f(m,q,r,t,x){m=m.node.Sa;if(x>=m.length)return 0;t=Math.min(m.length-x,t);if(m.slice)for(var z=0;z<t;z++)q[r+z]=m[x+z];else for(z=0;z<t;z++)q[r+z]=m.get(x+z);return t}class g{Hb=!1;lb=[];Gb=void 0;Tb=0;Sb=0;get(m){if(!(m>this.length-1||0>m)){var q=m%this.chunkSize;return this.Gb(m/this.chunkSize|0)[q]}}jc(m){this.Gb=m}Ub(){var m=new XMLHttpRequest;m.open("HEAD",c,!1);m.send(null);200<=m.status&&300>m.status||304===m.status||B("Couldn't load "+c+". Status: "+m.status);
|
|
41
|
+
var q=Number(m.getResponseHeader("Content-length")),r,t=(r=m.getResponseHeader("Accept-Ranges"))&&"bytes"===r;m=(r=m.getResponseHeader("Content-Encoding"))&&"gzip"===r;var x=1048576;t||(x=q);var z=this;z.jc(I=>{var L=I*x,F=(I+1)*x-1;F=Math.min(F,q-1);if("undefined"==typeof z.lb[I]){var ea=z.lb;L>F&&B("invalid range ("+L+", "+F+") or no bytes requested!");F>q-1&&B("only "+q+" bytes available! programmer error!");var K=new XMLHttpRequest;K.open("GET",c,!1);q!==x&&K.setRequestHeader("Range","bytes="+
|
|
42
|
+
L+"-"+F);K.responseType="arraybuffer";K.overrideMimeType&&K.overrideMimeType("text/plain; charset=x-user-defined");K.send(null);200<=K.status&&300>K.status||304===K.status||B("Couldn't load "+c+". Status: "+K.status);L=void 0!==K.response?new Uint8Array(K.response||[]):$a(K.responseText||"");ea[I]=L}"undefined"==typeof z.lb[I]&&B("doXHR failed!");return z.lb[I]});if(m||!q)x=q=1,x=q=this.Gb(0).length,ma("LazyFiles on gzip forces download of the whole file when length is accessed");this.Tb=q;this.Sb=
|
|
43
|
+
x;this.Hb=!0}get length(){this.Hb||this.Ub();return this.Tb}get chunkSize(){this.Hb||this.Ub();return this.Sb}}if(globalThis.XMLHttpRequest){ba||B("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var h=new g;var k=void 0}else k=c,h=void 0;var l=$b(a,b,d,e);h?l.Sa=h:k&&(l.Sa=null,l.url=k);Object.defineProperties(l,{Xa:{get:function(){return this.Sa.length}}});a={};for(const [m,q]of Object.entries(l.Ra))a[m]=(...r)=>{bc(l);return q(...r)};
|
|
44
|
+
a.read=(m,q,r,t,x)=>{bc(l);return f(m,q,r,t,x)};a.xb=(m,q,r)=>{bc(l);var t=hb(q);if(!t)throw new G(48);f(m,u,t,q,r);return{Ta:t,Vb:!0}};l.Ra=a;return l}var Q={},R=(a,b,c)=>a?Va.decode(v.subarray(a,Wa(v,a,b,c))):"",Oa=void 0,S=a=>{for(var b="";;){var c=v[a++];if(!c)return b;b+=String.fromCharCode(c)}},dc={},ec={},fc={},T=class extends Error{constructor(a){super(a);this.name="BindingError"}},gc=a=>{throw new T(a);};
|
|
45
|
+
function hc(a,b,c={}){var d=b.name;if(!a)throw new T(`type "${d}" must have a positive integer typeid pointer`);if(ec.hasOwnProperty(a)){if(c.rc)return;throw new T(`Cannot register type '${d}' twice`);}ec[a]=b;delete fc[a];dc.hasOwnProperty(a)&&(b=dc[a],delete dc[a],b.forEach(e=>e()))}function U(a,b,c={}){return hc(a,b,c)}
|
|
46
|
+
var ic=(a,b,c)=>{switch(b){case 1:return c?d=>u[d]:d=>v[d];case 2:return c?d=>sa[d>>1]:d=>ta[d>>1];case 4:return c?d=>w[d>>2]:d=>y[d>>2];case 8:return c?d=>A[d>>3]:d=>wa[d>>3];default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},jc=a=>{throw new T(a.Qa.Wa.Va.name+" instance already deleted");},kc=!1,lc=()=>{},mc=a=>{if(!globalThis.FinalizationRegistry)return mc=b=>b,a;kc=new FinalizationRegistry(b=>{b=b.Qa;--b.count.value;0===b.count.value&&(b.Ya?b.eb.pb(b.Ya):b.Wa.Va.pb(b.Ta))});
|
|
47
|
+
mc=b=>{var c=b.Qa;c.Ya&&kc.register(b,{Qa:c},b);return b};lc=b=>{kc.unregister(b)};return mc(a)},nc=[];function oc(){}
|
|
48
|
+
var pc=(a,b)=>Object.defineProperty(b,"name",{value:a}),qc={},rc=(a,b,c)=>{if(void 0===a[b].cb){var d=a[b];a[b]=function(...e){if(!a[b].cb.hasOwnProperty(e.length))throw new T(`Function '${c}' called with an invalid number of arguments (${e.length}) - expects one of (${a[b].cb})!`);return a[b].cb[e.length].apply(this,e)};a[b].cb=[];a[b].cb[d.rb]=d}},sc=(a,b)=>{if(n.hasOwnProperty(a))throw new T(`Cannot register public name '${a}' twice`);n[a]=b;n[a].rb=void 0},tc=a=>{a=a.replace(/[^a-zA-Z0-9_]/g,
|
|
49
|
+
"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?`_${a}`:a};function uc(a,b,c,d,e,f,g,h){this.name=a;this.constructor=b;this.tb=c;this.pb=d;this.$a=e;this.oc=f;this.Ab=g;this.nc=h;this.Cc=[]}var vc=(a,b,c)=>{for(;b!==c;){if(!b.Ab)throw new T(`Expected null or instance of ${c.name}, got an instance of ${b.name}`);a=b.Ab(a);b=b.$a}return a},wc=a=>{if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a};
|
|
50
|
+
function xc(a,b){if(null===b){if(this.Pb)throw new T(`null is not a valid ${this.name}`);return 0}if(!b.Qa)throw new T(`Cannot pass "${wc(b)}" as a ${this.name}`);if(!b.Qa.Ta)throw new T(`Cannot pass deleted object as a pointer of type ${this.name}`);return vc(b.Qa.Ta,b.Qa.Wa.Va,this.Va)}
|
|
51
|
+
function yc(a,b){if(null===b){if(this.Pb)throw new T(`null is not a valid ${this.name}`);if(this.Db){var c=this.Dc();null!==a&&a.push(this.pb,c);return c}return 0}if(!b||!b.Qa)throw new T(`Cannot pass "${wc(b)}" as a ${this.name}`);if(!b.Qa.Ta)throw new T(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.Cb&&b.Qa.Wa.Cb)throw new T(`Cannot convert argument of type ${b.Qa.eb?b.Qa.eb.name:b.Qa.Wa.name} to parameter type ${this.name}`);c=vc(b.Qa.Ta,b.Qa.Wa.Va,this.Va);if(this.Db){if(void 0===
|
|
52
|
+
b.Qa.Ya)throw new T("Passing raw pointer to smart pointer is illegal");switch(this.Fc){case 0:if(b.Qa.eb===this)c=b.Qa.Ya;else throw new T(`Cannot convert argument of type ${b.Qa.eb?b.Qa.eb.name:b.Qa.Wa.name} to parameter type ${this.name}`);break;case 1:c=b.Qa.Ya;break;case 2:if(b.Qa.eb===this)c=b.Qa.Ya;else{var d=b.clone();c=this.Ec(c,zc(()=>d["delete"]()));null!==a&&a.push(this.pb,c)}break;default:throw new T("Unsupporting sharing policy");}}return c}
|
|
53
|
+
function Ac(a,b){if(null===b){if(this.Pb)throw new T(`null is not a valid ${this.name}`);return 0}if(!b.Qa)throw new T(`Cannot pass "${wc(b)}" as a ${this.name}`);if(!b.Qa.Ta)throw new T(`Cannot pass deleted object as a pointer of type ${this.name}`);if(b.Qa.Wa.Cb)throw new T(`Cannot convert argument of type ${b.Qa.Wa.name} to parameter type ${this.name}`);return vc(b.Qa.Ta,b.Qa.Wa.Va,this.Va)}function Bc(a){return this.Za(y[a>>2])}
|
|
54
|
+
var Cc=(a,b,c)=>{if(b===c)return a;if(void 0===c.$a)return null;a=Cc(a,b,c.$a);return null===a?null:c.nc(a)},Dc={},Ec=(a,b)=>{if(void 0===b)throw new T("ptr should not be undefined");for(;a.$a;)b=a.Ab(b),a=a.$a;return Dc[b]},Fc=class extends Error{constructor(a){super(a);this.name="InternalError"}},Gc=(a,b)=>{if(!b.Wa||!b.Ta)throw new Fc("makeClassHandle requires ptr and ptrType");if(!!b.eb!==!!b.Ya)throw new Fc("Both smartPtrType and smartPtr must be specified");b.count={value:1};return mc(Object.create(a,
|
|
55
|
+
{Qa:{value:b,writable:!0}}))};function Hc(a,b,c,d,e,f,g,h,k,l,m){this.name=a;this.Va=b;this.Pb=c;this.Cb=d;this.Db=e;this.Bc=f;this.Fc=g;this.fc=h;this.Dc=k;this.Ec=l;this.pb=m;e||void 0!==b.$a?this.gb=yc:(this.gb=d?xc:Ac,this.fb=null)}var Ic=(a,b)=>{if(!n.hasOwnProperty(a))throw new Fc("Replacing nonexistent public symbol");n[a]=b;n[a].rb=void 0},Jc=(a,b)=>{a=S(a);var c=V.get(b);if("function"!=typeof c)throw new T(`unknown function pointer with signature ${a}: ${b}`);return c};
|
|
56
|
+
class Kc extends Error{}
|
|
57
|
+
var Nc=a=>{a=Lc(a);var b=S(a);Mc(a);return b},Oc=(a,b)=>{function c(f){e[f]||ec[f]||(fc[f]?fc[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new Kc(`${a}: `+d.map(Nc).join([", "]));},Pc=(a,b,c)=>{function d(h){h=c(h);if(h.length!==a.length)throw new Fc("Mismatched type converter count");for(var k=0;k<a.length;++k)U(a[k],h[k])}a.forEach(h=>fc[h]=b);var e=Array(b.length),f=[],g=0;for(let [h,k]of b.entries())ec.hasOwnProperty(k)?e[h]=ec[k]:(f.push(k),dc.hasOwnProperty(k)||(dc[k]=
|
|
58
|
+
[]),dc[k].push(()=>{e[h]=ec[k];++g;g===f.length&&d(e)}));0===f.length&&d(e)},Qc=a=>{for(;a.length;){var b=a.pop();a.pop()(b)}};function Rc(a){for(var b=1;b<a.length;++b)if(null!==a[b]&&void 0===a[b].fb)return!0;return!1}
|
|
59
|
+
function Sc(a,b,c,d,e,f){var g=b.length;if(2>g)throw new T("argTypes array size mismatch! Must at least get return value and 'this' types!");var h=null!==b[1]&&null!==c,k=Rc(b);c=!b[0].yc;var l=b[0],m=b[1];d=[a,gc,d,e,Qc,l.Za.bind(l),m?.gb.bind(m)];for(e=2;e<g;++e)l=b[e],d.push(l.gb.bind(l));if(!k)for(e=h?1:2;e<b.length;++e)null!==b[e].fb&&d.push(b[e].fb);k=Rc(b);e=b.length-2;m=[];l=["fn"];h&&l.push("thisWired");for(g=0;g<e;++g)m.push(`arg${g}`),l.push(`arg${g}Wired`);m=m.join(",");l=l.join(",");
|
|
60
|
+
m=`return function (${m}) {\n`;k&&(m+="var destructors = [];\n");var q=k?"destructors":"null",r="humanName throwBindingError invoker fn runDestructors fromRetWire toClassParamWire".split(" ");h&&(m+=`var thisWired = toClassParamWire(${q}, this);\n`);for(g=0;g<e;++g){var t=`toArg${g}Wire`;m+=`var arg${g}Wired = ${t}(${q}, arg${g});\n`;r.push(t)}m+=(c||f?"var rv = ":"")+`invoker(${l});\n`;if(k)m+="runDestructors(destructors);\n";else for(g=h?1:2;g<b.length;++g)f=1===g?"thisWired":"arg"+(g-2)+"Wired",
|
|
61
|
+
null!==b[g].fb&&(m+=`${f}_dtor(${f});\n`,r.push(`${f}_dtor`));c&&(m+="var ret = fromRetWire(rv);\nreturn ret;\n");b=(new Function(r,m+"}\n"))(...d);return pc(a,b)}
|
|
62
|
+
var Tc=(a,b)=>{for(var c=[],d=0;d<a;d++)c.push(y[b+4*d>>2]);return c},Uc=a=>{a=a.trim();const b=a.indexOf("(");return-1===b?a:a.slice(0,b)},Vc=[],Wc=[0,1,,1,null,1,!0,1,!1,1],zc=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const b=Vc.pop()||Wc.length;Wc[b]=a;Wc[b+1]=1;return b}},Xc={name:"emscripten::val",Za:a=>{if(!a)throw new T(`Cannot use deleted val. handle = ${a}`);var b=Wc[a];9<a&&0===--Wc[a+1]&&(Wc[a]=void 0,Vc.push(a));return b},gb:(a,b)=>
|
|
63
|
+
zc(b),qb:Bc,fb:null},Yc=(a,b)=>{switch(b){case 4:return function(c){return this.Za(ua[c>>2])};case 8:return function(c){return this.Za(va[c>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},Zc=new TextDecoder("utf-16le"),$c=(a,b,c)=>{a>>=1;return Zc.decode(ta.subarray(a,Wa(ta,a,b/2,c)))},ad=(a,b,c)=>{c??=2147483647;if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e<c;++e)sa[b>>1]=a.charCodeAt(e),b+=2;sa[b>>1]=0;return b-d},bd=a=>2*a.length,cd=(a,b,c)=>{var d=
|
|
64
|
+
"";a>>=2;for(var e=0;!(e>=b/4);e++){var f=y[a+e];if(!f&&!c)break;d+=String.fromCodePoint(f)}return d},dd=(a,b,c)=>{c??=2147483647;if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e<a.length;++e){var f=a.codePointAt(e);65535<f&&e++;w[b>>2]=f;b+=4;if(b+4>c)break}w[b>>2]=0;return b-d},ed=a=>{for(var b=0,c=0;c<a.length;++c)65535<a.codePointAt(c)&&c++,b+=4;return b},gd=0,hd={},jd=a=>{pa=a;Ha||0<gd||(n.onExit?.(a),oa=!0);fa(a,new Ca(a))},kd=()=>{if(!(Ha||0<gd))try{var a=pa;pa=a;jd(a)}catch(b){b instanceof Ca||
|
|
65
|
+
"unwind"==b||fa(1,b)}},ld=a=>{if(!oa)try{a(),kd()}catch(b){b instanceof Ca||"unwind"==b||fa(1,b)}},md=[],nd=(a,b)=>{md.length=0;for(var c;c=v[a++];){var d=105!=c;d&=112!=c;b+=d&&b%8?4:0;md.push(112==c?y[b>>2]:106==c?A[b>>3]:105==c?w[b>>2]:va[b>>3]);b+=d?8:4}return md},xd=(a,b)=>{od=a;pd=b;if(qd)if(rd||=!0,0==a)sd=function(){setTimeout(td,Math.max(0,ud+b-performance.now())|0)};else if(1==a)sd=function(){vd(td)};else if(2==a){if(!wd)if(globalThis.setImmediate)wd=setImmediate;else{var c=[];addEventListener("message",
|
|
66
|
+
d=>{if("setimmediate"===d.data||"setimmediate"===d.data.target)d.stopPropagation(),c.shift()()},!0);wd=d=>{c.push(d);ba?(n.setImmediates??(n.setImmediates=[]),n.setImmediates.push(d),postMessage({target:"setimmediate"})):postMessage("setimmediate","*")}}sd=function(){wd(td)}}},Fd=a=>{function b(){return c<yd?(kd(),!1):!0}qd=a;var c=yd;rd=!1;td=function(){if(!oa)if(0<zd.length){var d=zd.shift();d.Yc(d.Ic);if(Ad){var e=Ad,f=0==e%1?e-1:Math.floor(e);Ad=d.Pc?f:(8*e+(f+.5))/9}n.setStatus&&(d=n.statusMessage||
|
|
67
|
+
"Please wait...",e=Ad??0,f=Bd.Vc??0,e?e<f?n.setStatus("{message} ({expected - remaining}/{expected})"):n.setStatus(d):n.setStatus(""));b()&&setTimeout(td,0)}else if(b())if(Cd=Cd+1|0,1==od&&1<pd&&0!=Cd%pd)sd();else{0==od&&(ud=performance.now());a:if(!oa){for(d of Dd)if(!1===d())break a;ld(a);for(e of Ed)e()}b()&&sd()}}},rd=!1,sd=null,yd=0,qd=null,od=0,pd=0,Cd=0,zd=[],Dd=[],Ed=[];function Gd(){sd=null;yd++}var Hd=0;
|
|
68
|
+
function vd(a){if(globalThis.requestAnimationFrame)requestAnimationFrame(a);else{var b=Date.now();if(0===Hd)Hd=b+1E3/60;else for(;b+2>=Hd;)Hd+=1E3/60;setTimeout(a,Math.max(Hd-b,0))}}var Bd={},ud,td,wd,Ad;function Id(a){var b=W.bb[a];b.target.removeEventListener(b.wb,b.Zb,b.hc);W.bb.splice(a,1)}function Jd(){if(navigator.userActivation?navigator.userActivation.isActive:W.Ob&&W.mc.kc){var a=W.ob;W.ob=[];for(var b of a)b.Rb(...b.Wb)}}
|
|
69
|
+
function Kd(a){if(!a.target)return-4;if(a.Ib)a.Zb=function(c){++W.Ob;W.mc=a;Jd();a.qc(c);Jd();--W.Ob},a.target.addEventListener(a.wb,a.Zb,a.hc),W.bb.push(a);else for(var b=0;b<W.bb.length;++b)W.bb[b].target==a.target&&W.bb[b].wb==a.wb&&Id(b--);return 0}
|
|
70
|
+
var W={Jc:0,Mb:0,ad:0,ed:0,sd:0,qd:0,Wc:0,Sc:0,hd:0,Rc:0,Xc:0,jd:0,rd:0,pd:0,kd(){for(;W.bb.length;)Id(W.bb.length-1);W.ob=[]},Ob:0,ob:[],Qc(a,b,c){function d(f,g){if(f.length!=g.length)return!1;for(var h in f)if(f[h]!=g[h])return!1;return!0}for(var e of W.ob)if(e.Rb==a&&d(e.Wb,c))return;W.ob.push({Rb:a,ec:b,Wb:c});W.ob.sort((f,g)=>f.ec<g.ec)},md(a){W.ob=W.ob.filter(b=>b.Rb!=a)},bb:[],ld:(a,b)=>{for(var c=0;c<W.bb.length;++c)W.bb[c].target!=a||b&&b!=W.bb[c].wb||Id(c--)},nd(a){var b,c;for([b,c]of W.bb.entries())if(c.target===
|
|
71
|
+
a.target&&c.$b===a.$b&&c.Ib===a.Ib&&c.ic===a.ic)return Id(b),0;return-5},$c(a){return a?a==window?"#window":a==screen?"#screen":a?.nodeName||"":""},fullscreenEnabled(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}},Ld=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0],Md=()=>{var a=2;a=2<a?R(a):a;return Ld[a]||("undefined"!=typeof document?document.querySelector(a):null)},Od=(a,b,c,d,e)=>{W.Mb||(W.Mb=Nd(1240));b={target:Md(),kc:!0,wb:e,$b:d,ic:a,
|
|
72
|
+
Ib:c,qc:(f=event)=>{var g=W.Mb,h=f.gamepad;va[g>>3]=h.timestamp;for(var k=0;k<h.axes.length;++k)va[g+8*k+16>>3]=h.axes[k];for(k=0;k<h.buttons.length;++k)va[g+8*k+528>>3]="object"==typeof h.buttons[k]?h.buttons[k].value:h.buttons[k];for(k=0;k<h.buttons.length;++k)u[g+k+1040]="object"==typeof h.buttons[k]?h.buttons[k].pressed:1==h.buttons[k];u[g+1104]=h.connected;w[g+1108>>2]=h.index;w[g+8>>2]=h.axes.length;w[g+12>>2]=h.buttons.length;E(h.id,v,g+1112,64);E(h.mapping,v,g+1176,64);V.get(c)(d,g,a)&&f.preventDefault()},
|
|
73
|
+
hc:b};return Kd(b)},Pd=()=>{try{if(navigator.getGamepads)return(W.bd=navigator.getGamepads())?0:-1}catch(a){navigator.getGamepads=null}return-1},Qd={},Sd=()=>{if(!Rd){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.language||"C").replace("-","_")+".UTF-8",_:da||"./this.program"},b;for(b in Qd)void 0===Qd[b]?delete a[b]:a[b]=Qd[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);Rd=c}return Rd},Rd,Ud=(a,b,c,d)=>{var e={string:l=>
|
|
74
|
+
{var m=0;if(null!==l&&void 0!==l&&0!==l){m=Za(l)+1;var q=Td(m);E(l,v,q,m);m=q}return m},array:l=>{var m=Td(l.length);u.set(l,m);return m}};a=n["_"+a];var f=[],g=0;if(d)for(var h=0;h<d.length;h++){var k=e[c[h]];k?(0===g&&(g=X()),f[h]=k(d[h])):f[h]=d[h]}c=a(...f);return c=function(l){0!==g&&Y(g);return"string"===b?R(l):"boolean"===b?!!l:l}(c)},Vd=a=>{setTimeout(()=>{ld(a)},1E4)},Wd=!1,Xd=[];
|
|
75
|
+
function ub(){function a(){Wd=document.pointerLockElement===n.canvas}if(!Yd){Yd=!0;sb.push({canHandle:function(c){return!n.noImageDecoding&&/\.(jpg|jpeg|png|bmp|webp)$/i.test(c)},handle:async function(c,d){var e=new Blob([c],{type:Zd(d)});e.size!==c.length&&(e=new Blob([(new Uint8Array(c)).buffer],{type:Zd(d)}));var f=URL.createObjectURL(e);return new Promise((g,h)=>{var k=new Image;k.onload=()=>{var l=document.createElement("canvas");l.width=k.width;l.height=k.height;l.getContext("2d").drawImage(k,
|
|
76
|
+
0,0);URL.revokeObjectURL(f);g(c)};k.onerror=()=>{p(`Image ${f} could not be decoded`);h()};k.src=f})}});sb.push({canHandle:function(c){return!n.noAudioDecoding&&c.slice(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:async function(c,d){return new Promise(e=>{function f(){g||(g=!0,e(c))}var g=!1,h=new Blob([c],{type:Zd(d)});h=URL.createObjectURL(h);var k=new Audio;k.addEventListener("canplaythrough",()=>f(k),!1);k.onerror=function(){if(!g){p(`warning: browser could not fully decode audio ${d}, trying slower base64 approach`);
|
|
77
|
+
for(var l="data:audio/x-"+d.slice(-3)+";base64,",m="",q=0,r=0,t=0;t<c.length;t++)for(q=q<<8|c[t],r+=8;6<=r;){var x=q>>r-6&63;r-=6;m+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[x]}2==r?(m+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(q&3)<<4],m+="=="):4==r&&(m+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(q&15)<<2],m+="=");k.src=l+m;f(k)}};k.src=h;Vd(()=>{f(k)})})}});var b=n.canvas;b&&(document.addEventListener("pointerlockchange",
|
|
78
|
+
a,!1),n.elementPointerLock&&b.addEventListener("click",c=>{!Wd&&n.canvas.requestPointerLock&&(n.canvas.requestPointerLock(),c.preventDefault())},!1))}}function Zd(a){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[a.slice(a.lastIndexOf(".")+1)]}var tb={},Yd;M=Array(4096);Ob(H,"/");O("/tmp");O("/home");O("/home/web_user");
|
|
79
|
+
(function(){O("/dev");cb(259,{read:()=>0,write:(d,e,f,g)=>g,ib:()=>0});Rb("/dev/null",259);bb(1280,eb);bb(1536,fb);Rb("/dev/tty",1280);Rb("/dev/tty1",1536);var a=new Uint8Array(1024),b=0,c=()=>{0===b&&(Ta(a),b=a.byteLength);return a[--b]};P("/dev","random",c);P("/dev","urandom",c);O("/dev/shm");O("/dev/shm/tmp")})();
|
|
80
|
+
(function(){O("/proc");var a=O("/proc/self");O("/proc/self/fd");Ob({mb(){var b=jb(a,"fd",16895,73);b.Ra={ib:H.Ra.ib};b.Ua={lookup(c,d){c=+d;var e=N(c);c={parent:null,mb:{dc:"fake"},Ua:{readlink:()=>e.path},id:c+1};return c.parent=c},readdir(){return Array.from(yb.entries()).filter(([,c])=>c).map(([c])=>c.toString())}};return b}},"/proc/self/fd")})();
|
|
81
|
+
(()=>{let a=oc.prototype;Object.assign(a,{isAliasOf:function(c){if(!(this instanceof oc&&c instanceof oc))return!1;var d=this.Qa.Wa.Va,e=this.Qa.Ta;c.Qa=c.Qa;var f=c.Qa.Wa.Va;for(c=c.Qa.Ta;d.$a;)e=d.Ab(e),d=d.$a;for(;f.$a;)c=f.Ab(c),f=f.$a;return d===f&&e===c},clone:function(){this.Qa.Ta||jc(this);if(this.Qa.zb)return this.Qa.count.value+=1,this;var c=mc,d=Object,e=d.create,f=Object.getPrototypeOf(this),g=this.Qa;c=c(e.call(d,f,{Qa:{value:{count:g.count,vb:g.vb,zb:g.zb,Ta:g.Ta,Wa:g.Wa,Ya:g.Ya,eb:g.eb}}}));
|
|
82
|
+
c.Qa.count.value+=1;c.Qa.vb=!1;return c},["delete"](){this.Qa.Ta||jc(this);if(this.Qa.vb&&!this.Qa.zb)throw new T("Object already scheduled for deletion");lc(this);var c=this.Qa;--c.count.value;0===c.count.value&&(c.Ya?c.eb.pb(c.Ya):c.Wa.Va.pb(c.Ta));this.Qa.zb||(this.Qa.Ya=void 0,this.Qa.Ta=void 0)},isDeleted:function(){return!this.Qa.Ta},deleteLater:function(){this.Qa.Ta||jc(this);if(this.Qa.vb&&!this.Qa.zb)throw new T("Object already scheduled for deletion");nc.push(this);this.Qa.vb=!0;return this}});
|
|
83
|
+
const b=Symbol.dispose;b&&(a[b]=a["delete"])})();
|
|
84
|
+
Object.assign(Hc.prototype,{pc(a){this.fc&&(a=this.fc(a));return a},Yb(a){this.pb?.(a)},qb:Bc,Za:function(a){function b(){return this.Db?Gc(this.Va.tb,{Wa:this.Bc,Ta:c,eb:this,Ya:a}):Gc(this.Va.tb,{Wa:this,Ta:a})}var c=this.pc(a);if(!c)return this.Yb(a),null;var d=Ec(this.Va,c);if(void 0!==d){if(0===d.Qa.count.value)return d.Qa.Ta=c,d.Qa.Ya=a,d.clone();d=d.clone();this.Yb(a);return d}d=this.Va.oc(c);d=qc[d];if(!d)return b.call(this);d=this.Cb?d.lc:d.pointerType;var e=Cc(c,this.Va,d.Va);return null===
|
|
85
|
+
e?b.call(this):this.Db?Gc(d.Va.tb,{Wa:d,Ta:e,eb:this,Ya:a}):Gc(d.Va.tb,{Wa:d,Ta:e})}});n.requestAnimationFrame=vd;n.pauseMainLoop=Gd;n.resumeMainLoop=function(){yd++;var a=od,b=pd,c=qd;qd=null;Fd(c);xd(a,b);sd()};n.preMainLoop&&Dd.push(n.preMainLoop);n.postMainLoop&&Ed.push(n.postMainLoop);n.noExitRuntime&&(Ha=n.noExitRuntime);n.preloadPlugins&&(sb=n.preloadPlugins);n.print&&(ma=n.print);n.printErr&&(p=n.printErr);n.wasmBinary&&(na=n.wasmBinary);n.thisProgram&&(da=n.thisProgram);
|
|
86
|
+
if(n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);0<n.preInit.length;)n.preInit.shift()();n.addRunDependency=rb;n.removeRunDependency=qb;n.cwrap=(a,b,c,d)=>{var e=!c||c.every(f=>"number"===f||"boolean"===f);return"string"!==b&&e&&!d?n["_"+a]:(...f)=>Ud(a,b,c,f)};
|
|
87
|
+
n.createContext=function(a,b,c,d){if(b&&n.ctx&&a==n.canvas)return n.ctx;var e;if(b){var f={antialias:!1,alpha:!1,cd:1};if(d)for(var g in d)f[g]=d[g];if("undefined"!=typeof GL&&(e=GL.createContext(a,f)))var h=GL.getContext(e).Hc}else h=a.getContext("2d");if(!h)return null;c&&(n.ctx=h,b&&GL.dd(e),Xd.forEach(k=>k()),ub());return h};
|
|
88
|
+
n.FS_preloadFile=async(a,b,c,d,e,f,g,h)=>{var k=b?Ua(Qa(a+"/"+b)):a,l=`cp ${k}`;rb(l);try{var m=c;"string"==typeof c&&(m=await nb(c));m=await vb(m,k);h?.();f||ac(a,b,m,d,e,g)}finally{qb(l)}};n.FS_unlink=(...a)=>Tb(...a);n.FS_createPath=(...a)=>Zb(...a);n.FS_createDevice=(...a)=>P(...a);n.FS_createDataFile=(...a)=>ac(...a);n.FS_createLazyFile=(...a)=>cc(...a);
|
|
89
|
+
var $d={764742:a=>{throw Error(R(a));},764781:a=>{throw Error(R(a));},764820:a=>{throw Error(R(a));},764859:a=>{throw Error(R(a));},764898:a=>{throw Error(R(a));},764937:a=>{throw Error(R(a));},764976:a=>{throw Error(R(a));},765015:a=>{throw Error(R(a));},765054:a=>{throw Error(R(a));},765093:a=>{throw Error(R(a));},765132:a=>{throw Error(R(a));},765171:a=>{throw Error(R(a));},765210:a=>{throw Error(R(a));},765249:a=>{throw Error(R(a));},765288:a=>{throw Error(R(a));},765327:a=>{throw Error(R(a));
|
|
90
|
+
},765366:a=>{throw Error(R(a));},765405:a=>{throw Error(R(a));},765444:a=>{throw Error(R(a));},765483:a=>{throw Error(R(a));},765522:a=>{throw Error(R(a));},765561:a=>{throw Error(R(a));},765600:a=>{throw Error(R(a));},765639:a=>{throw Error(R(a));},765678:a=>{throw Error(R(a));},765717:a=>{throw Error(R(a));},765756:a=>{throw Error(R(a));},765795:a=>{throw Error(R(a));},765834:a=>{throw Error(R(a));},765873:a=>{throw Error(R(a));},765912:a=>{throw Error(R(a));},765951:a=>{throw Error(R(a));},765990:a=>
|
|
91
|
+
{throw Error(R(a));},766029:a=>{throw Error(R(a));},766068:a=>{throw Error(R(a));},766107:a=>{throw Error(R(a));},766146:a=>{throw Error(R(a));},766185:a=>{throw Error(R(a));},766224:a=>{throw Error(R(a));},766263:a=>{throw Error(R(a));},766302:a=>{throw Error(R(a));},766341:a=>{a=R(a)+"\n\nAbort/Retry/Ignore/AlwaysIgnore? [ariA] :";a=window.prompt(a,"i");null===a&&(a="i");return 1===a.length?a.charCodeAt(0):-1}},Nd,Lc,Mc,gb,ae,Z,La,Y,Td,X,be,ce,Ma,de,ee,V,Fe={Z:(a,b)=>V.get(a)(b),l:a=>{var b=new Ka(a);
|
|
92
|
+
0==u[b.Ta+12]&&(u[b.Ta+12]=1,Ja--);u[b.Ta+13]=0;Ia.push(b);ce(a);return de(a)},x:()=>{Z(0,0);var a=Ia.pop();be(a.ac);C=0},a:()=>Na([]),f:a=>Na([a]),Q:()=>{var a=Ia.pop();a||B("no exception to throw");var b=a.ac;0==u[a.Ta+13]&&(Ia.push(a),u[a.Ta+13]=1,u[a.Ta+12]=0,Ja++);C=b;throw C;},r:(a,b,c)=>{var d=new Ka(a);y[d.Ta+16>>2]=0;y[d.Ta+4>>2]=b;y[d.Ta+8>>2]=c;C=a;Ja++;throw C;},ba:()=>Ja,g:a=>{C||=a;throw C;},J:function(a,b,c){Oa=c;try{var d=N(a);switch(b){case 0:var e=D();if(0>e)break;for(;yb[e];)e++;
|
|
93
|
+
return Mb(d,e).fd;case 1:case 2:return 0;case 3:return d.flags;case 4:return e=D(),d.flags|=e,0;case 12:return e=D(),sa[e+0>>1]=2,0;case 13:case 14:return 0}return-28}catch(f){if("undefined"==typeof Q||"ErrnoError"!==f.name)throw f;return-f.ab}},ja:function(a,b){try{var c=N(a),d=c.node,e=c.Ra.hb;a=e?c:d;e??=d.Ua.hb;if(!e)throw new G(63);var f=e(a);y[b>>2]=f.dev;y[b+4>>2]=f.mode;y[b+8>>2]=f.nlink;y[b+12>>2]=f.uid;y[b+16>>2]=f.gid;y[b+20>>2]=f.rdev;A[b+24>>3]=BigInt(f.size);w[b+32>>2]=4096;w[b+36>>
|
|
94
|
+
2]=f.blocks;var g=f.atime.getTime(),h=f.mtime.getTime(),k=f.ctime.getTime();A[b+40>>3]=BigInt(Math.floor(g/1E3));y[b+48>>2]=g%1E3*1E6;A[b+56>>3]=BigInt(Math.floor(h/1E3));y[b+64>>2]=h%1E3*1E6;A[b+72>>3]=BigInt(Math.floor(k/1E3));y[b+80>>2]=k%1E3*1E6;A[b+88>>3]=BigInt(f.ino);return 0}catch(l){if("undefined"==typeof Q||"ErrnoError"!==l.name)throw l;return-l.ab}},la:function(a,b,c){Oa=c;try{var d=N(a);switch(b){case 21509:return d.tty?0:-59;case 21505:if(!d.tty)return-59;if(d.tty.nb.tc){a=[3,28,127,
|
|
95
|
+
21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];var e=D();w[e>>2]=25856;w[e+4>>2]=5;w[e+8>>2]=191;w[e+12>>2]=35387;for(var f=0;32>f;f++)u[e+f+17]=a[f]||0}return 0;case 21510:case 21511:case 21512:return d.tty?0:-59;case 21506:case 21507:case 21508:if(!d.tty)return-59;if(d.tty.nb.uc)for(e=D(),a=[],f=0;32>f;f++)a.push(u[e+f+17]);return 0;case 21519:if(!d.tty)return-59;e=D();return w[e>>2]=0;case 21520:return d.tty?-28:-59;case 21537:case 21531:e=D();if(!d.Ra.sc)throw new G(59);return d.Ra.sc(d,
|
|
96
|
+
b,e);case 21523:if(!d.tty)return-59;d.tty.nb.vc&&(f=[24,80],e=D(),sa[e>>1]=f[0],sa[e+2>>1]=f[1]);return 0;case 21524:return d.tty?0:-59;case 21515:return d.tty?0:-59;default:return-28}}catch(g){if("undefined"==typeof Q||"ErrnoError"!==g.name)throw g;return-g.ab}},S:function(a,b,c,d){Oa=d;try{b=R(b);var e=b;if("/"===e.charAt(0))b=e;else{var f=-100===a?"/":N(a).path;if(0==e.length)throw new G(44);b=f+"/"+e}var g=d?D():0;return Vb(b,c,g).fd}catch(h){if("undefined"==typeof Q||"ErrnoError"!==h.name)throw h;
|
|
97
|
+
return-h.ab}},na:()=>B(""),U:(a,b,c,d,e)=>{b=S(b);d=0n===d;let f=g=>g;if(d){const g=8*c;f=h=>BigInt.asUintN(g,h);e=f(e)}U(a,{name:b,Za:f,gb:(g,h)=>{"number"==typeof h&&(h=BigInt(h));return h},qb:ic(b,c,!d),fb:null})},ya:(a,b,c,d)=>{b=S(b);U(a,{name:b,Za:function(e){return!!e},gb:function(e,f){return f?c:d},qb:function(e){return this.Za(v[e])},fb:null})},u:(a,b,c,d,e,f,g,h,k,l,m,q,r)=>{m=S(m);f=Jc(e,f);h&&=Jc(g,h);l&&=Jc(k,l);r=Jc(q,r);var t=tc(m);sc(t,function(){Oc(`Cannot construct ${m} due to unbound types`,
|
|
98
|
+
[d])});Pc([a,b,c],d?[d]:[],x=>{x=x[0];if(d){var z=x.Va;var I=z.tb}else I=oc.prototype;x=pc(m,function(...K){if(Object.getPrototypeOf(this)!==L)throw new T(`Use 'new' to construct ${m}`);if(void 0===F.sb)throw new T(`${m} has no accessible constructor`);var fd=F.sb[K.length];if(void 0===fd)throw new T(`Tried to invoke ctor of ${m} with invalid number of parameters (${K.length}) - expected (${Object.keys(F.sb).toString()}) parameters instead!`);return fd.apply(this,K)});var L=Object.create(I,{constructor:{value:x}});
|
|
99
|
+
x.prototype=L;var F=new uc(m,x,L,r,z,f,h,l);if(F.$a){var ea;(ea=F.$a).Bb??(ea.Bb=[]);F.$a.Bb.push(F)}z=new Hc(m,F,!0,!1,!1);ea=new Hc(m+"*",F,!1,!1,!1);I=new Hc(m+" const*",F,!1,!0,!1);qc[a]={pointerType:ea,lc:I};Ic(t,x);return[z,ea,I]})},C:(a,b,c,d,e,f,g,h)=>{var k=Tc(c,d);b=S(b);b=Uc(b);f=Jc(e,f);Pc([],[a],l=>{function m(){Oc(`Cannot call ${q} due to unbound types`,k)}l=l[0];var q=`${l.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);var r=l.Va.constructor;void 0===r[b]?(m.rb=c-1,r[b]=
|
|
100
|
+
m):(rc(r,b,q),r[b].cb[c-1]=m);Pc([],k,t=>{t=[t[0],null].concat(t.slice(1));t=Sc(q,t,null,f,g,h);void 0===r[b].cb?(t.rb=c-1,r[b]=t):r[b].cb[c-1]=t;if(l.Va.Bb)for(const x of l.Va.Bb)x.constructor.hasOwnProperty(b)||(x.constructor[b]=t);return[]});return[]})},v:(a,b,c,d,e,f)=>{var g=Tc(b,c);e=Jc(d,e);Pc([],[a],h=>{h=h[0];var k=`constructor ${h.name}`;void 0===h.Va.sb&&(h.Va.sb=[]);if(void 0!==h.Va.sb[b-1])throw new T(`Cannot register multiple constructors with identical number of parameters (${b-1}) for class '${h.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);
|
|
101
|
+
h.Va.sb[b-1]=()=>{Oc(`Cannot construct ${h.name} due to unbound types`,g)};Pc([],g,l=>{l.splice(1,0,null);h.Va.sb[b-1]=Sc(k,l,null,e,f);return[]});return[]})},m:(a,b,c,d,e,f,g,h,k)=>{var l=Tc(c,d);b=S(b);b=Uc(b);f=Jc(e,f);Pc([],[a],m=>{function q(){Oc(`Cannot call ${r} due to unbound types`,l)}m=m[0];var r=`${m.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);h&&m.Va.Cc.push(b);var t=m.Va.tb,x=t[b];void 0===x||void 0===x.cb&&x.className!==m.name&&x.rb===c-2?(q.rb=c-2,q.className=m.name,
|
|
102
|
+
t[b]=q):(rc(t,b,r),t[b].cb[c-2]=q);Pc([],l,z=>{z=Sc(r,z,m,f,g,k);void 0===t[b].cb?(z.rb=c-2,t[b]=z):t[b].cb[c-2]=z;return[]});return[]})},wa:a=>U(a,Xc),T:(a,b,c)=>{b=S(b);U(a,{name:b,Za:d=>d,gb:(d,e)=>e,qb:Yc(b,c),fb:null})},z:(a,b,c,d,e)=>{b=S(b);let f=h=>h;if(0===d){var g=32-8*c;f=h=>h<<g>>>g;e=f(e)}U(a,{name:b,Za:f,gb:(h,k)=>k,qb:ic(b,c,0!==d),fb:null})},w:(a,b,c)=>{function d(f){return new e(u.buffer,y[f+4>>2],y[f>>2])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,
|
|
103
|
+
Float32Array,Float64Array,BigInt64Array,BigUint64Array][b];c=S(c);U(a,{name:c,Za:d,qb:d},{rc:!0})},xa:(a,b)=>{b=S(b);U(a,{name:b,Za(c){var d=R(c+4,y[c>>2],!0);Mc(c);return d},gb(c,d){d instanceof ArrayBuffer&&(d=new Uint8Array(d));var e="string"==typeof d;if(!(e||ArrayBuffer.isView(d)&&1==d.BYTES_PER_ELEMENT))throw new T("Cannot pass non-string to std::string");var f=e?Za(d):d.length;var g=Nd(4+f+1),h=g+4;y[g>>2]=f;e?E(d,v,h,f+1):v.set(d,h);null!==c&&c.push(Mc,g);return g},qb:Bc,fb(c){Mc(c)}})},L:(a,
|
|
104
|
+
b,c)=>{c=S(c);if(2===b){var d=$c;var e=ad;var f=bd}else d=cd,e=dd,f=ed;U(a,{name:c,Za:g=>{var h=d(g+4,y[g>>2]*b,!0);Mc(g);return h},gb:(g,h)=>{if("string"!=typeof h)throw new T(`Cannot pass non-string to C++ string type ${c}`);var k=f(h),l=Nd(4+k+b);y[l>>2]=k/b;e(h,l+4,k+b);null!==g&&g.push(Mc,l);return l},qb:Bc,fb(g){Mc(g)}})},V:(a,b)=>{b=S(b);U(a,{yc:!0,name:b,Za:()=>{},gb:()=>{}})},va:a=>{do{var b=y[a>>2];a+=4;var c=y[a>>2];a+=4;var d=y[a>>2];a+=4;b=R(b);Zb("/",Ra(b));ac(b,null,u.subarray(d,d+
|
|
105
|
+
c),!0,!0,!0)}while(y[a>>2])},$:()=>{Ha=!1;gd=0},Y:()=>{throw Infinity;},da:function(a,b,c,d,e,f,g){e=-9007199254740992>e||9007199254740992<e?NaN:Number(e);try{var h=N(d);if(0!==(b&2)&&0===(c&2)&&2!==(h.flags&2097155))throw new G(2);if(1===(h.flags&2097155))throw new G(2);if(!h.Ra.xb)throw new G(43);if(!a)throw new G(28);var k=h.Ra.xb(h,a,e,b,c);var l=k.Ta;w[f>>2]=k.Vb;y[g>>2]=l;return 0}catch(m){if("undefined"==typeof Q||"ErrnoError"!==m.name)throw m;return-m.ab}},ea:function(a,b,c,d,e,f){f=-9007199254740992>
|
|
106
|
+
f||9007199254740992<f?NaN:Number(f);try{var g=N(e);if(c&2){c=f;if(32768!==(g.node.mode&61440))throw new G(43);if(!(d&2)){var h=v.slice(a,a+b);g.Ra.Fb&&g.Ra.Fb(g,h,c,b,d)}}}catch(k){if("undefined"==typeof Q||"ErrnoError"!==k.name)throw k;return-k.ab}},aa:(a,b)=>{hd[a]&&(clearTimeout(hd[a].id),delete hd[a]);if(!b)return 0;var c=setTimeout(()=>{delete hd[a];ld(()=>ae(a,performance.now()))},b);hd[a]={id:c,od:b};return 0},fa:(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();
|
|
107
|
+
e=(new Date(e,6,1)).getTimezoneOffset();y[a>>2]=60*Math.max(f,e);w[b>>2]=Number(f!=e);b=g=>{var h=Math.abs(g);return`UTC${0<=g?"-":"+"}${String(Math.floor(h/60)).padStart(2,"0")}${String(h%60).padStart(2,"0")}`};a=b(f);b=b(e);e<f?(E(a,v,c,17),E(b,v,d,17)):(E(a,v,d,17),E(b,v,c,17))},p:(a,b,c)=>{b=nd(b,c);return $d[a](...b)},sa:(a,b,c)=>{b=nd(b,c);return $d[a](...b)},ua:()=>{Gd();qd=null},ma:()=>Date.now(),ta:a=>{Ha=!1;gd=0;pa=a;jd(a)},I:()=>performance.now(),pa:()=>0,ca:()=>{B("OOM")},ra:(a,b,c)=>
|
|
108
|
+
Pd()?-1:Od(a,b,c,26,"gamepadconnected"),qa:(a,b,c)=>Pd()?-1:Od(a,b,c,27,"gamepaddisconnected"),oa:()=>{B("Please compile your program with async support in order to use asynchronous operations like emscripten_sleep")},ha:(a,b)=>{var c=0,d=0,e;for(e of Sd()){var f=b+c;y[a+d>>2]=f;c+=E(e,v,f,Infinity)+1;d+=4}return 0},ia:(a,b)=>{var c=Sd();y[a>>2]=c.length;a=0;for(var d of c)a+=Za(d)+1;y[b>>2]=a;return 0},K:function(a){try{var b=N(a);Wb(b);return 0}catch(c){if("undefined"==typeof Q||"ErrnoError"!==
|
|
109
|
+
c.name)throw c;return c.ab}},R:function(a,b,c,d){try{a:{var e=N(a);a=b;for(var f,g=b=0;g<c;g++){var h=y[a>>2],k=y[a+4>>2];a+=8;var l=e,m=h,q=k,r=f,t=u;if(0>q||0>r)throw new G(28);if(null===l.fd)throw new G(8);if(1===(l.flags&2097155))throw new G(8);if(J(l.node.mode))throw new G(31);if(!l.Ra.read)throw new G(28);var x="undefined"!=typeof r;if(!x)r=l.position;else if(!l.seekable)throw new G(70);var z=l.Ra.read(l,t,m,q,r);x||(l.position+=z);var I=z;if(0>I){var L=-1;break a}b+=I;if(I<k)break;"undefined"!=
|
|
110
|
+
typeof f&&(f+=I)}L=b}y[d>>2]=L;return 0}catch(F){if("undefined"==typeof Q||"ErrnoError"!==F.name)throw F;return F.ab}},ga:function(a,b,c,d){b=-9007199254740992>b||9007199254740992<b?NaN:Number(b);try{if(isNaN(b))return 61;var e=N(a);Xb(e,b,c);A[d>>3]=BigInt(e.position);e.Nb&&0===b&&0===c&&(e.Nb=null);return 0}catch(f){if("undefined"==typeof Q||"ErrnoError"!==f.name)throw f;return f.ab}},ka:function(a,b,c,d){try{a:{var e=N(a);a=b;for(var f,g=b=0;g<c;g++){var h=y[a>>2],k=y[a+4>>2];a+=8;var l=Yb(e,u,
|
|
111
|
+
h,k,f);if(0>l){var m=-1;break a}b+=l;if(l<k)break;"undefined"!=typeof f&&(f+=l)}m=b}y[d>>2]=m;return 0}catch(q){if("undefined"==typeof Q||"ErrnoError"!==q.name)throw q;return q.ab}},e:fe,E:ge,b:he,k:ie,i:je,W:ke,H:le,y:me,M:ne,G:oe,X:pe,O:qe,h:re,n:se,q:te,t:ue,P:ve,c:we,B:xe,d:ye,j:ze,N:Ae,s:Be,A:Ce,D:De,F:Ee,o:a=>a,_:jd};function we(a,b,c){var d=X();try{V.get(a)(b,c)}catch(e){Y(d);if(e!==e+0)throw e;Z(1,0)}}
|
|
112
|
+
function he(a,b,c){var d=X();try{return V.get(a)(b,c)}catch(e){Y(d);if(e!==e+0)throw e;Z(1,0)}}function ye(a,b,c,d){var e=X();try{V.get(a)(b,c,d)}catch(f){Y(e);if(f!==f+0)throw f;Z(1,0)}}function Be(a,b,c,d,e,f,g){var h=X();try{V.get(a)(b,c,d,e,f,g)}catch(k){Y(h);if(k!==k+0)throw k;Z(1,0)}}function fe(a,b){var c=X();try{return V.get(a)(b)}catch(d){Y(c);if(d!==d+0)throw d;Z(1,0)}}function ge(a,b,c){var d=X();try{return V.get(a)(b,c)}catch(e){Y(d);if(e!==e+0)throw e;Z(1,0)}}
|
|
113
|
+
function re(a){var b=X();try{V.get(a)()}catch(c){Y(b);if(c!==c+0)throw c;Z(1,0)}}function te(a,b,c,d,e,f,g){var h=X();try{V.get(a)(b,c,d,e,f,g)}catch(k){Y(h);if(k!==k+0)throw k;Z(1,0)}}function se(a,b){var c=X();try{V.get(a)(b)}catch(d){Y(c);if(d!==d+0)throw d;Z(1,0)}}function me(a,b,c,d,e,f,g){var h=X();try{return V.get(a)(b,c,d,e,f,g)}catch(k){Y(h);if(k!==k+0)throw k;Z(1,0)}}function ie(a,b,c,d){var e=X();try{return V.get(a)(b,c,d)}catch(f){Y(e);if(f!==f+0)throw f;Z(1,0)}}
|
|
114
|
+
function je(a,b,c,d,e){var f=X();try{return V.get(a)(b,c,d,e)}catch(g){Y(f);if(g!==g+0)throw g;Z(1,0)}}function ze(a,b,c,d,e){var f=X();try{V.get(a)(b,c,d,e)}catch(g){Y(f);if(g!==g+0)throw g;Z(1,0)}}function ue(a,b,c,d,e,f,g,h){var k=X();try{V.get(a)(b,c,d,e,f,g,h)}catch(l){Y(k);if(l!==l+0)throw l;Z(1,0)}}function ve(a,b,c,d){var e=X();try{V.get(a)(b,c,d)}catch(f){Y(e);if(f!==f+0)throw f;Z(1,0)}}function xe(a,b,c,d){var e=X();try{V.get(a)(b,c,d)}catch(f){Y(e);if(f!==f+0)throw f;Z(1,0)}}
|
|
115
|
+
function qe(a,b,c){var d=X();try{return V.get(a)(b,c)}catch(e){Y(d);if(e!==e+0)throw e;Z(1,0)}}function le(a,b,c,d,e,f){var g=X();try{return V.get(a)(b,c,d,e,f)}catch(h){Y(g);if(h!==h+0)throw h;Z(1,0)}}function Ae(a,b,c,d,e,f){var g=X();try{V.get(a)(b,c,d,e,f)}catch(h){Y(g);if(h!==h+0)throw h;Z(1,0)}}function pe(a,b,c,d,e,f){var g=X();try{return V.get(a)(b,c,d,e,f)}catch(h){Y(g);if(h!==h+0)throw h;Z(1,0)}}
|
|
116
|
+
function ke(a,b,c,d,e,f){var g=X();try{return V.get(a)(b,c,d,e,f)}catch(h){Y(g);if(h!==h+0)throw h;Z(1,0)}}function ne(a,b,c,d,e,f,g,h){var k=X();try{return V.get(a)(b,c,d,e,f,g,h)}catch(l){Y(k);if(l!==l+0)throw l;Z(1,0)}}function Ce(a,b,c,d,e,f,g,h){var k=X();try{V.get(a)(b,c,d,e,f,g,h)}catch(l){Y(k);if(l!==l+0)throw l;Z(1,0)}}function oe(a,b,c,d,e,f,g,h,k,l,m,q){var r=X();try{return V.get(a)(b,c,d,e,f,g,h,k,l,m,q)}catch(t){Y(r);if(t!==t+0)throw t;Z(1,0)}}
|
|
117
|
+
function De(a,b,c,d,e,f,g,h,k,l,m){var q=X();try{V.get(a)(b,c,d,e,f,g,h,k,l,m)}catch(r){Y(q);if(r!==r+0)throw r;Z(1,0)}}function Ee(a,b,c,d,e,f,g,h,k,l,m,q,r,t,x,z){var I=X();try{V.get(a)(b,c,d,e,f,g,h,k,l,m,q,r,t,x,z)}catch(L){Y(I);if(L!==L+0)throw L;Z(1,0)}}
|
|
118
|
+
function Ge(){function a(){n.calledRun=!0;if(!oa){xa=!0;if(!n.noFSInit&&!Ab){var b,c;Ab=!0;b??=n.stdin;c??=n.stdout;d??=n.stderr;b?P("/dev","stdin",b):Sb("/dev/tty","/dev/stdin");c?P("/dev","stdout",null,c):Sb("/dev/tty","/dev/stdout");d?P("/dev","stderr",null,d):Sb("/dev/tty1","/dev/stderr");Vb("/dev/stdin",0);Vb("/dev/stdout",1);Vb("/dev/stderr",1)}He.Aa();Bb=!1;qa?.(n);n.onRuntimeInitialized?.();if(n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;){var d=n.postRun.shift();
|
|
119
|
+
Ea.push(d)}Da(Ea)}}if(0<ob)pb=Ge;else{if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)Ga();Da(Fa);0<ob?pb=Ge:n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>n.setStatus(""),1);a()},1)):a()}}var He;
|
|
120
|
+
He=await (async function(){function a(c){c=He=c.exports;Nd=c.Ba;Lc=c.Ca;Mc=c.Da;gb=c.Fa;ae=c.Ga;Z=c.Ha;La=c.Ia;Y=c.Ja;Td=c.Ka;X=c.La;be=c.Ma;ce=c.Na;Ma=c.Oa;de=c.Pa;ee=c.za;V=c.Ea;c=ee.buffer;u=new Int8Array(c);sa=new Int16Array(c);v=new Uint8Array(c);ta=new Uint16Array(c);w=new Int32Array(c);y=new Uint32Array(c);ua=new Float32Array(c);va=new Float64Array(c);A=new BigInt64Array(c);wa=new BigUint64Array(c);return He}var b={a:Fe};if(n.instantiateWasm)return new Promise(c=>{n.instantiateWasm(b,
|
|
121
|
+
(d,e)=>{c(a(d,e))})});ya??=n.locateFile?n.locateFile?n.locateFile("barcode.wasm",ia):ia+"barcode.wasm":(new URL("barcode.wasm",import.meta.url)).href;return a((await Ba(b)).instance)}());Ge();xa?moduleRtn=n:moduleRtn=new Promise((a,b)=>{qa=a;ra=b});
|
|
122
|
+
;return moduleRtn}export default Module;
|
data/wasm/barcode.mjs
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
async function Module(moduleArg={}){var moduleRtn;var n=moduleArg,aa=!!globalThis.window,ba=!!globalThis.WorkerGlobalScope,ca=globalThis.process?.versions?.node&&"renderer"!=globalThis.process?.type;if(ca){const {createRequire:a}=await import("module");var require=a(import.meta.url)}var da="./this.program",fa=(a,b)=>{throw b;},ha=import.meta.url,ia="",ja,ka;
|
|
2
|
+
if(ca){var fs=require("fs");ha.startsWith("file:")&&(ia=require("path").dirname(require("url").fileURLToPath(ha))+"/");ka=a=>{a=la(a)?new URL(a):a;return fs.readFileSync(a)};ja=async a=>{a=la(a)?new URL(a):a;return fs.readFileSync(a,void 0)};1<process.argv.length&&(da=process.argv[1].replace(/\\/g,"/"));process.argv.slice(2);fa=(a,b)=>{process.exitCode=a;throw b;}}else if(aa||ba){try{ia=(new URL(".",ha)).href}catch{}ba&&(ka=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";
|
|
3
|
+
b.send(null);return new Uint8Array(b.response)});ja=async a=>{if(la(a))return new Promise((c,d)=>{var e=new XMLHttpRequest;e.open("GET",a,!0);e.responseType="arraybuffer";e.onload=()=>{200==e.status||0==e.status&&e.response?c(e.response):d(e.status)};e.onerror=d;e.send(null)});var b=await fetch(a,{credentials:"same-origin"});if(b.ok)return b.arrayBuffer();throw Error(b.status+" : "+b.url);}}
|
|
4
|
+
var ma=console.log.bind(console),p=console.error.bind(console),na,oa=!1,pa,la=a=>a.startsWith("file://"),qa,ra,u,v,sa,ta,w,y,ua,va,A,wa,xa=!1;function B(a){n.onAbort?.(a);a="Aborted("+a+")";p(a);oa=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");ra?.(a);throw a;}var ya;
|
|
5
|
+
async function za(a){if(!na)try{var b=await ja(a);return new Uint8Array(b)}catch{}if(a==ya&&na)a=new Uint8Array(na);else if(ka)a=ka(a);else throw"both async and sync fetching of the wasm failed";return a}async function Aa(a,b){try{var c=await za(a);return await WebAssembly.instantiate(c,b)}catch(d){p(`failed to asynchronously prepare wasm: ${d}`),B(d)}}
|
|
6
|
+
async function Ba(a){var b=ya;if(!na&&!la(b)&&!ca)try{var c=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,a)}catch(d){p(`wasm streaming compile failed: ${d}`),p("falling back to ArrayBuffer instantiation")}return Aa(b,a)}class Ca{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}var Da=a=>{for(;0<a.length;)a.shift()(n)},Ea=[],Fa=[],Ga=()=>{var a=n.preRun.shift();Fa.push(a)},Ha=!0,Ia=[],Ja=0,C=0;
|
|
7
|
+
class Ka{constructor(a){this.Zb=a;this.Ra=a-24}}
|
|
8
|
+
var Na=a=>{var b=C;if(!b)return La(0),0;var c=new Ka(b);y[c.Ra+16>>2]=b;var d=y[c.Ra+4>>2];if(!d)return La(0),b;for(var e of a){if(0===e||e===d)break;if(Ma(e,d,c.Ra+16))return La(e),b}La(d);return b},D=()=>{var a=w[+Oa>>2];Oa+=4;return a},Pa=(a,b)=>{for(var c=0,d=a.length-1;0<=d;d--){var e=a[d];"."===e?a.splice(d,1):".."===e?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a},Qa=a=>{var b="/"===a.charAt(0),c="/"===a.slice(-1);(a=Pa(a.split("/").filter(d=>!!d),!b).join("/"))||
|
|
9
|
+
b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a},Ra=a=>{var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return".";b&&=b.slice(0,-1);return a+b},Sa=()=>{if(ca){var a=require("crypto");return b=>a.randomFillSync(b)}return b=>crypto.getRandomValues(b)},Ta=a=>{(Ta=Sa())(a)},Ua=(...a)=>{for(var b="",c=!1,d=a.length-1;-1<=d&&!c;d--){c=0<=d?a[d]:"/";if("string"!=typeof c)throw new TypeError("Arguments to path.resolve must be strings");if(!c)return"";
|
|
10
|
+
b=c+"/"+b;c="/"===c.charAt(0)}b=Pa(b.split("/").filter(e=>!!e),!c).join("/");return(c?"/":"")+b||"."},Va=new TextDecoder,Wa=(a,b,c,d)=>{c=b+c;if(d)return c;for(;a[b]&&!(b>=c);)++b;return b},Xa=a=>{var b=Wa(a,0);return Va.decode(a.buffer?a.subarray(0,b):new Uint8Array(a.slice(0,b)))},Ya=[],Za=a=>{for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},E=(a,b,c,d)=>{if(!(0<d))return 0;var e=c;d=c+d-1;for(var f=0;f<a.length;++f){var g=
|
|
11
|
+
a.codePointAt(f);if(127>=g){if(c>=d)break;b[c++]=g}else if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6;b[c++]=128|g&63}else if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12;b[c++]=128|g>>6&63;b[c++]=128|g&63}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63;b[c++]=128|g>>6&63;b[c++]=128|g&63;f++}}b[c]=0;return c-e},$a=a=>{var b=Array(Za(a)+1);a=E(a,b,0,b.length);b.length=a;return b},ab=[];function bb(a,b){ab[a]={input:[],output:[],lb:b};cb(a,db)}
|
|
12
|
+
var db={open(a){var b=ab[a.node.rdev];if(!b)throw new G(43);a.tty=b;a.seekable=!1},close(a){a.tty.lb.fsync(a.tty)},fsync(a){a.tty.lb.fsync(a.tty)},read(a,b,c,d){if(!a.tty||!a.tty.lb.$b)throw new G(60);for(var e=0,f=0;f<d;f++){try{var g=a.tty.lb.$b(a.tty)}catch(h){throw new G(29);}if(void 0===g&&0===e)throw new G(6);if(null===g||void 0===g)break;e++;b[c+f]=g}e&&(a.node.atime=Date.now());return e},write(a,b,c,d){if(!a.tty||!a.tty.lb.Ob)throw new G(60);try{for(var e=0;e<d;e++)a.tty.lb.Ob(a.tty,b[c+e])}catch(f){throw new G(29);
|
|
13
|
+
}d&&(a.node.mtime=a.node.ctime=Date.now());return e}},eb={$b(){a:{if(!Ya.length){var a=null;if(ca){var b=Buffer.alloc(256),c=0,d=process.stdin.fd;try{c=fs.readSync(d,b,0,256)}catch(e){if(e.toString().includes("EOF"))c=0;else throw e;}0<c&&(a=b.slice(0,c).toString("utf-8"))}else globalThis.window?.prompt&&(a=window.prompt("Input: "),null!==a&&(a+="\n"));if(!a){a=null;break a}Ya=$a(a)}a=Ya.shift()}return a},Ob(a,b){null===b||10===b?(ma(Xa(a.output)),a.output=[]):0!=b&&a.output.push(b)},fsync(a){0<a.output?.length&&
|
|
14
|
+
(ma(Xa(a.output)),a.output=[])},rc(){return{Kc:25856,Mc:5,Jc:191,Lc:35387,Ic:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},sc(){return 0},tc(){return[24,80]}},fb={Ob(a,b){null===b||10===b?(p(Xa(a.output)),a.output=[]):0!=b&&a.output.push(b)},fsync(a){0<a.output?.length&&(p(Xa(a.output)),a.output=[])}},hb=a=>{a=65536*Math.ceil(a/65536);var b=gb(65536,a);b&&v.fill(0,b,b+a);return b},H={hb:null,kb(){return H.createNode(null,"/",16895,0)},createNode(a,b,c,d){if(24576===
|
|
15
|
+
(c&61440)||4096===(c&61440))throw new G(63);H.hb||(H.hb={dir:{node:{fb:H.Sa.fb,ib:H.Sa.ib,lookup:H.Sa.lookup,Cb:H.Sa.Cb,rename:H.Sa.rename,unlink:H.Sa.unlink,rmdir:H.Sa.rmdir,readdir:H.Sa.readdir,symlink:H.Sa.symlink},stream:{gb:H.Pa.gb}},file:{node:{fb:H.Sa.fb,ib:H.Sa.ib},stream:{gb:H.Pa.gb,read:H.Pa.read,write:H.Pa.write,vb:H.Pa.vb,Db:H.Pa.Db}},link:{node:{fb:H.Sa.fb,ib:H.Sa.ib,readlink:H.Sa.readlink},stream:{}},Vb:{node:{fb:H.Sa.fb,ib:H.Sa.ib},stream:ib}});c=jb(a,b,c,d);J(c.mode)?(c.Sa=H.hb.dir.node,
|
|
16
|
+
c.Pa=H.hb.dir.stream,c.Qa={}):32768===(c.mode&61440)?(c.Sa=H.hb.file.node,c.Pa=H.hb.file.stream,c.Va=0,c.Qa=null):40960===(c.mode&61440)?(c.Sa=H.hb.link.node,c.Pa=H.hb.link.stream):8192===(c.mode&61440)&&(c.Sa=H.hb.Vb.node,c.Pa=H.hb.Vb.stream);c.atime=c.mtime=c.ctime=Date.now();a&&(a.Qa[b]=c,a.atime=a.mtime=a.ctime=c.atime);return c},Xc(a){return a.Qa?a.Qa.subarray?a.Qa.subarray(0,a.Va):new Uint8Array(a.Qa):new Uint8Array(0)},Sa:{fb(a){var b={};b.dev=8192===(a.mode&61440)?a.id:1;b.ino=a.id;b.mode=
|
|
17
|
+
a.mode;b.nlink=1;b.uid=0;b.gid=0;b.rdev=a.rdev;J(a.mode)?b.size=4096:32768===(a.mode&61440)?b.size=a.Va:40960===(a.mode&61440)?b.size=a.link.length:b.size=0;b.atime=new Date(a.atime);b.mtime=new Date(a.mtime);b.ctime=new Date(a.ctime);b.blksize=4096;b.blocks=Math.ceil(b.size/b.blksize);return b},ib(a,b){for(var c of["mode","atime","mtime","ctime"])null!=b[c]&&(a[c]=b[c]);void 0!==b.size&&(b=b.size,a.Va!=b&&(0==b?(a.Qa=null,a.Va=0):(c=a.Qa,a.Qa=new Uint8Array(b),c&&a.Qa.set(c.subarray(0,Math.min(b,
|
|
18
|
+
a.Va))),a.Va=b)))},lookup(){H.Hb||(H.Hb=new G(44),H.Hb.stack="<generic error, no stack>");throw H.Hb;},Cb(a,b,c,d){return H.createNode(a,b,c,d)},rename(a,b,c){try{var d=kb(b,c)}catch(f){}if(d){if(J(a.mode))for(var e in d.Qa)throw new G(55);lb(d)}delete a.parent.Qa[a.name];b.Qa[c]=a;a.name=c;b.ctime=b.mtime=a.parent.ctime=a.parent.mtime=Date.now()},unlink(a,b){delete a.Qa[b];a.ctime=a.mtime=Date.now()},rmdir(a,b){var c=kb(a,b),d;for(d in c.Qa)throw new G(55);delete a.Qa[b];a.ctime=a.mtime=Date.now()},
|
|
19
|
+
readdir(a){return[".","..",...Object.keys(a.Qa)]},symlink(a,b,c){a=H.createNode(a,b,41471,0);a.link=c;return a},readlink(a){if(40960!==(a.mode&61440))throw new G(28);return a.link}},Pa:{read(a,b,c,d,e){var f=a.node.Qa;if(e>=a.node.Va)return 0;a=Math.min(a.node.Va-e,d);if(8<a&&f.subarray)b.set(f.subarray(e,e+a),c);else for(d=0;d<a;d++)b[c+d]=f[e+d];return a},write(a,b,c,d,e,f){if(!d)return 0;a=a.node;a.mtime=a.ctime=Date.now();if(b.subarray&&(!a.Qa||a.Qa.subarray)){if(f)return a.Qa=b.subarray(c,c+
|
|
20
|
+
d),a.Va=d;if(0===a.Va&&0===e)return a.Qa=b.slice(c,c+d),a.Va=d;if(e+d<=a.Va)return a.Qa.set(b.subarray(c,c+d),e),d}f=e+d;var g=a.Qa?a.Qa.length:0;g>=f||(f=Math.max(f,g*(1048576>g?2:1.125)>>>0),0!=g&&(f=Math.max(f,256)),g=a.Qa,a.Qa=new Uint8Array(f),0<a.Va&&a.Qa.set(g.subarray(0,a.Va),0));if(a.Qa.subarray&&b.subarray)a.Qa.set(b.subarray(c,c+d),e);else for(f=0;f<d;f++)a.Qa[e+f]=b[c+f];a.Va=Math.max(a.Va,e+d);return d},gb(a,b,c){1===c?b+=a.position:2===c&&32768===(a.node.mode&61440)&&(b+=a.node.Va);
|
|
21
|
+
if(0>b)throw new G(28);return b},vb(a,b,c,d,e){if(32768!==(a.node.mode&61440))throw new G(43);a=a.node.Qa;if(e&2||!a||a.buffer!==u.buffer){d=!0;e=hb(b);if(!e)throw new G(48);if(a){if(0<c||c+b<a.length)a.subarray?a=a.subarray(c,c+b):a=Array.prototype.slice.call(a,c,c+b);u.set(a,e)}}else d=!1,e=a.byteOffset;return{Ra:e,Tb:d}},Db(a,b,c,d){H.Pa.write(a,b,0,d,c,!1);return 0}}},mb=(a,b)=>{var c=0;a&&(c|=365);b&&(c|=146);return c},nb=async a=>{a=await ja(a);return new Uint8Array(a)},ob=0,pb=null,qb=()=>
|
|
22
|
+
{ob--;n.monitorRunDependencies?.(ob);if(0==ob&&pb){var a=pb;pb=null;a()}},rb=()=>{ob++;n.monitorRunDependencies?.(ob)},sb=[],vb=async(a,b)=>{"undefined"!=typeof tb&&ub();for(var c of sb)if(c.canHandle(b))return c.handle(a,b);return a},wb=null,xb={},yb=[],zb=1,M=null,Ab=!1,Bb=!0,Cb={},G=class{name="ErrnoError";constructor(a){this.Za=a}},Db=class{jb={};node=null;get flags(){return this.jb.flags}set flags(a){this.jb.flags=a}get position(){return this.jb.position}set position(a){this.jb.position=a}},
|
|
23
|
+
Eb=class{Sa={};Pa={};wb=null;constructor(a,b,c,d){a||=this;this.parent=a;this.kb=a.kb;this.id=zb++;this.name=b;this.mode=c;this.rdev=d;this.atime=this.mtime=this.ctime=Date.now()}get read(){return 365===(this.mode&365)}set read(a){a?this.mode|=365:this.mode&=-366}get write(){return 146===(this.mode&146)}set write(a){a?this.mode|=146:this.mode&=-147}get vc(){return J(this.mode)}get uc(){return 8192===(this.mode&61440)}};
|
|
24
|
+
function Fb(a,b={}){if(!a)throw new G(44);b.Jb??(b.Jb=!0);"/"===a.charAt(0)||(a="//"+a);var c=0;a:for(;40>c;c++){a=a.split("/").filter(h=>!!h);for(var d=wb,e="/",f=0;f<a.length;f++){var g=f===a.length-1;if(g&&b.parent)break;if("."!==a[f])if(".."===a[f])if(e=Ra(e),d===d.parent){a=e+"/"+a.slice(f+1).join("/");c--;continue a}else d=d.parent;else{e=Qa(e+"/"+a[f]);try{d=kb(d,a[f])}catch(h){if(44===h?.Za&&g&&b.yc)return{path:e};throw h;}!d.wb||g&&!b.Jb||(d=d.wb.root);if(40960===(d.mode&61440)&&(!g||b.Ib)){if(!d.Sa.readlink)throw new G(52);
|
|
25
|
+
d=d.Sa.readlink(d);"/"===d.charAt(0)||(d=Ra(e)+"/"+d);a=d+"/"+a.slice(f+1).join("/");continue a}}}return{path:e,node:d}}throw new G(32);}function Gb(a){for(var b;;){if(a===a.parent)return a=a.kb.bc,b?"/"!==a[a.length-1]?`${a}/${b}`:a+b:a;b=b?`${a.name}/${b}`:a.name;a=a.parent}}function Hb(a,b){for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%M.length}
|
|
26
|
+
function lb(a){var b=Hb(a.parent.id,a.name);if(M[b]===a)M[b]=a.sb;else for(b=M[b];b;){if(b.sb===a){b.sb=a.sb;break}b=b.sb}}function kb(a,b){var c=J(a.mode)?(c=Ib(a,"x"))?c:a.Sa.lookup?0:2:54;if(c)throw new G(c);for(c=M[Hb(a.id,b)];c;c=c.sb){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.Sa.lookup(a,b)}function jb(a,b,c,d){a=new Eb(a,b,c,d);b=Hb(a.parent.id,a.name);a.sb=M[b];return M[b]=a}function J(a){return 16384===(a&61440)}
|
|
27
|
+
function Jb(a){var b=["r","w","rw"][a&3];a&512&&(b+="w");return b}function Ib(a,b){if(Bb)return 0;if(!b.includes("r")||a.mode&292){if(b.includes("w")&&!(a.mode&146)||b.includes("x")&&!(a.mode&73))return 2}else return 2;return 0}function Kb(a,b){if(!J(a.mode))return 54;try{return kb(a,b),20}catch(c){}return Ib(a,"wx")}function N(a){a=yb[a];if(!a)throw new G(8);return a}
|
|
28
|
+
function Lb(a,b=-1){a=Object.assign(new Db,a);if(-1==b)a:{for(b=0;4096>=b;b++)if(!yb[b])break a;throw new G(33);}a.fd=b;return yb[b]=a}function Mb(a,b=-1){a=Lb(a,b);a.Pa?.Sc?.(a);return a}function Nb(a,b){var c=null?.Pa.ib,d=c?null:a;c??=a.Sa.ib;if(!c)throw new G(63);c(d,b)}var ib={open(a){a.Pa=xb[a.node.rdev].Pa;a.Pa.open?.(a)},gb(){throw new G(70);}};function cb(a,b){xb[a]={Pa:b}}
|
|
29
|
+
function Ob(a,b){var c="/"===b;if(c&&wb)throw new G(10);if(!c&&b){var d=Fb(b,{Jb:!1});b=d.path;d=d.node;if(d.wb)throw new G(10);if(!J(d.mode))throw new G(54);}b={type:a,dd:{},bc:b,xc:[]};a=a.kb(b);a.kb=b;b.root=a;c?wb=a:d&&(d.wb=b,d.kb&&d.kb.xc.push(b))}function Pb(a,b,c){var d=Fb(a,{parent:!0}).node;a=a&&a.match(/([^\/]+|\/)\/*$/)[1];if(!a)throw new G(28);if("."===a||".."===a)throw new G(20);var e=Kb(d,a);if(e)throw new G(e);if(!d.Sa.Cb)throw new G(63);return d.Sa.Cb(d,a,b,c)}
|
|
30
|
+
function Qb(a,b=438){return Pb(a,b&4095|32768,0)}function O(a){return Pb(a,16895,0)}function Rb(a,b,c){"undefined"==typeof c&&(c=b,b=438);return Pb(a,b|8192,c)}function Sb(a,b){if(!Ua(a))throw new G(44);var c=Fb(b,{parent:!0}).node;if(!c)throw new G(44);b=b&&b.match(/([^\/]+|\/)\/*$/)[1];var d=Kb(c,b);if(d)throw new G(d);if(!c.Sa.symlink)throw new G(63);c.Sa.symlink(c,b,a)}
|
|
31
|
+
function Tb(a){var b=Fb(a,{parent:!0}).node;if(!b)throw new G(44);a=a&&a.match(/([^\/]+|\/)\/*$/)[1];var c=kb(b,a);a:{try{var d=kb(b,a)}catch(f){d=f.Za;break a}var e=Ib(b,"wx");d=e?e:J(d.mode)?31:0}if(d)throw new G(d);if(!b.Sa.unlink)throw new G(63);if(c.wb)throw new G(10);b.Sa.unlink(b,a);lb(c)}function Ub(a,b){a="string"==typeof a?Fb(a,{Ib:!0}).node:a;Nb(a,{mode:b&4095|a.mode&-4096,ctime:Date.now(),Rc:void 0})}
|
|
32
|
+
function Vb(a,b,c=438){if(""===a)throw new G(44);if("string"==typeof b){var d={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[b];if("undefined"==typeof d)throw Error(`Unknown file open mode: ${b}`);b=d}c=b&64?c&4095|32768:0;if("object"==typeof a)d=a;else{var e=a.endsWith("/");a=Fb(a,{Ib:!(b&131072),yc:!0});d=a.node;a=a.path}var f=!1;if(b&64)if(d){if(b&128)throw new G(20);}else{if(e)throw new G(31);d=Pb(a,c|511,0);f=!0}if(!d)throw new G(44);8192===(d.mode&61440)&&(b&=-513);if(b&65536&&!J(d.mode))throw new G(54);
|
|
33
|
+
if(!f&&(e=d?40960===(d.mode&61440)?32:J(d.mode)&&("r"!==Jb(b)||b&576)?31:Ib(d,Jb(b)):44))throw new G(e);if(b&512&&!f){e=d;e="string"==typeof e?Fb(e,{Ib:!0}).node:e;if(J(e.mode))throw new G(31);if(32768!==(e.mode&61440))throw new G(28);var g=Ib(e,"w");if(g)throw new G(g);Nb(e,{size:0,timestamp:Date.now()})}b&=-131713;e=Lb({node:d,path:Gb(d),flags:b,seekable:!0,position:0,Pa:d.Pa,Ec:[],error:!1});e.Pa.open&&e.Pa.open(e);f&&Ub(d,c&511);!n.logReadFiles||b&1||a in Cb||(Cb[a]=1);return e}
|
|
34
|
+
function Wb(a){if(null===a.fd)throw new G(8);a.Lb&&(a.Lb=null);try{a.Pa.close&&a.Pa.close(a)}catch(b){throw b;}finally{yb[a.fd]=null}a.fd=null}function Xb(a,b,c){if(null===a.fd)throw new G(8);if(!a.seekable||!a.Pa.gb)throw new G(70);if(0!=c&&1!=c&&2!=c)throw new G(28);a.position=a.Pa.gb(a,b,c);a.Ec=[]}
|
|
35
|
+
function Yb(a,b,c,d,e,f){if(0>d||0>e)throw new G(28);if(null===a.fd)throw new G(8);if(0===(a.flags&2097155))throw new G(8);if(J(a.node.mode))throw new G(31);if(!a.Pa.write)throw new G(28);a.seekable&&a.flags&1024&&Xb(a,0,2);var g="undefined"!=typeof e;if(!g)e=a.position;else if(!a.seekable)throw new G(70);b=a.Pa.write(a,b,c,d,e,f);g||(a.position+=b);return b}
|
|
36
|
+
function Zb(a,b){a="string"==typeof a?a:Gb(a);for(b=b.split("/").reverse();b.length;){var c=b.pop();if(c){var d=Qa(a+"/"+c);try{O(d)}catch(e){if(20!=e.Za)throw e;}a=d}}return d}function $b(a,b,c,d){a=Qa(("string"==typeof a?a:Gb(a))+"/"+b);return Qb(a,mb(c,d))}
|
|
37
|
+
function ac(a,b,c,d,e,f){var g=b;a&&(a="string"==typeof a?a:Gb(a),g=b?Qa(a+"/"+b):a);a=mb(d,e);g=Qb(g,a);if(c){if("string"==typeof c){b=Array(c.length);d=0;for(e=c.length;d<e;++d)b[d]=c.charCodeAt(d);c=b}Ub(g,a|146);b=Vb(g,577);Yb(b,c,0,c.length,0,f);Wb(b);Ub(g,a)}}
|
|
38
|
+
function P(a,b,c,d){a=Qa(("string"==typeof a?a:Gb(a))+"/"+b);b=mb(!!c,!!d);P.ac??(P.ac=64);var e=P.ac++<<8|0;cb(e,{open(f){f.seekable=!1},close(){d?.buffer?.length&&d(10)},read(f,g,h,k){for(var l=0,m=0;m<k;m++){try{var q=c()}catch(r){throw new G(29);}if(void 0===q&&0===l)throw new G(6);if(null===q||void 0===q)break;l++;g[h+m]=q}l&&(f.node.atime=Date.now());return l},write(f,g,h,k){for(var l=0;l<k;l++)try{d(g[h+l])}catch(m){throw new G(29);}k&&(f.node.mtime=f.node.ctime=Date.now());return l}});return Rb(a,
|
|
39
|
+
b,e)}function bc(a){if(!(a.uc||a.vc||a.link||a.Qa))if(globalThis.XMLHttpRequest)B("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.");else try{a.Qa=ka(a.url)}catch(b){throw new G(29);}}
|
|
40
|
+
function cc(a,b,c,d,e){function f(m,q,r,t,x){m=m.node.Qa;if(x>=m.length)return 0;t=Math.min(m.length-x,t);if(m.slice)for(var z=0;z<t;z++)q[r+z]=m[x+z];else for(z=0;z<t;z++)q[r+z]=m.get(x+z);return t}class g{Fb=!1;jb=[];Eb=void 0;Rb=0;Qb=0;get(m){if(!(m>this.length-1||0>m)){var q=m%this.chunkSize;return this.Eb(m/this.chunkSize|0)[q]}}hc(m){this.Eb=m}Sb(){var m=new XMLHttpRequest;m.open("HEAD",c,!1);m.send(null);200<=m.status&&300>m.status||304===m.status||B("Couldn't load "+c+". Status: "+m.status);
|
|
41
|
+
var q=Number(m.getResponseHeader("Content-length")),r,t=(r=m.getResponseHeader("Accept-Ranges"))&&"bytes"===r;m=(r=m.getResponseHeader("Content-Encoding"))&&"gzip"===r;var x=1048576;t||(x=q);var z=this;z.hc(I=>{var L=I*x,F=(I+1)*x-1;F=Math.min(F,q-1);if("undefined"==typeof z.jb[I]){var ea=z.jb;L>F&&B("invalid range ("+L+", "+F+") or no bytes requested!");F>q-1&&B("only "+q+" bytes available! programmer error!");var K=new XMLHttpRequest;K.open("GET",c,!1);q!==x&&K.setRequestHeader("Range","bytes="+
|
|
42
|
+
L+"-"+F);K.responseType="arraybuffer";K.overrideMimeType&&K.overrideMimeType("text/plain; charset=x-user-defined");K.send(null);200<=K.status&&300>K.status||304===K.status||B("Couldn't load "+c+". Status: "+K.status);L=void 0!==K.response?new Uint8Array(K.response||[]):$a(K.responseText||"");ea[I]=L}"undefined"==typeof z.jb[I]&&B("doXHR failed!");return z.jb[I]});if(m||!q)x=q=1,x=q=this.Eb(0).length,ma("LazyFiles on gzip forces download of the whole file when length is accessed");this.Rb=q;this.Qb=
|
|
43
|
+
x;this.Fb=!0}get length(){this.Fb||this.Sb();return this.Rb}get chunkSize(){this.Fb||this.Sb();return this.Qb}}if(globalThis.XMLHttpRequest){ba||B("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var h=new g;var k=void 0}else k=c,h=void 0;var l=$b(a,b,d,e);h?l.Qa=h:k&&(l.Qa=null,l.url=k);Object.defineProperties(l,{Va:{get:function(){return this.Qa.length}}});a={};for(const [m,q]of Object.entries(l.Pa))a[m]=(...r)=>{bc(l);return q(...r)};
|
|
44
|
+
a.read=(m,q,r,t,x)=>{bc(l);return f(m,q,r,t,x)};a.vb=(m,q,r)=>{bc(l);var t=hb(q);if(!t)throw new G(48);f(m,u,t,q,r);return{Ra:t,Tb:!0}};l.Pa=a;return l}var Q={},R=(a,b,c)=>a?Va.decode(v.subarray(a,Wa(v,a,b,c))):"",Oa=void 0,S=a=>{for(var b="";;){var c=v[a++];if(!c)return b;b+=String.fromCharCode(c)}},dc={},ec={},fc={},T=class extends Error{constructor(a){super(a);this.name="BindingError"}},gc=a=>{throw new T(a);};
|
|
45
|
+
function hc(a,b,c={}){var d=b.name;if(!a)throw new T(`type "${d}" must have a positive integer typeid pointer`);if(ec.hasOwnProperty(a)){if(c.pc)return;throw new T(`Cannot register type '${d}' twice`);}ec[a]=b;delete fc[a];dc.hasOwnProperty(a)&&(b=dc[a],delete dc[a],b.forEach(e=>e()))}function U(a,b,c={}){return hc(a,b,c)}
|
|
46
|
+
var ic=(a,b,c)=>{switch(b){case 1:return c?d=>u[d]:d=>v[d];case 2:return c?d=>sa[d>>1]:d=>ta[d>>1];case 4:return c?d=>w[d>>2]:d=>y[d>>2];case 8:return c?d=>A[d>>3]:d=>wa[d>>3];default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},jc=a=>{throw new T(a.Oa.Ua.Ta.name+" instance already deleted");},kc=!1,lc=()=>{},mc=a=>{if(!globalThis.FinalizationRegistry)return mc=b=>b,a;kc=new FinalizationRegistry(b=>{b=b.Oa;--b.count.value;0===b.count.value&&(b.Wa?b.bb.nb(b.Wa):b.Ua.Ta.nb(b.Ra))});
|
|
47
|
+
mc=b=>{var c=b.Oa;c.Wa&&kc.register(b,{Oa:c},b);return b};lc=b=>{kc.unregister(b)};return mc(a)},nc=[];function oc(){}
|
|
48
|
+
var pc=(a,b)=>Object.defineProperty(b,"name",{value:a}),qc={},rc=(a,b,c)=>{if(void 0===a[b].ab){var d=a[b];a[b]=function(...e){if(!a[b].ab.hasOwnProperty(e.length))throw new T(`Function '${c}' called with an invalid number of arguments (${e.length}) - expects one of (${a[b].ab})!`);return a[b].ab[e.length].apply(this,e)};a[b].ab=[];a[b].ab[d.pb]=d}},sc=(a,b)=>{if(n.hasOwnProperty(a))throw new T(`Cannot register public name '${a}' twice`);n[a]=b;n[a].pb=void 0},tc=a=>{a=a.replace(/[^a-zA-Z0-9_]/g,
|
|
49
|
+
"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?`_${a}`:a};function uc(a,b,c,d,e,f,g,h){this.name=a;this.constructor=b;this.rb=c;this.nb=d;this.Ya=e;this.mc=f;this.yb=g;this.lc=h;this.Ac=[]}var vc=(a,b,c)=>{for(;b!==c;){if(!b.yb)throw new T(`Expected null or instance of ${c.name}, got an instance of ${b.name}`);a=b.yb(a);b=b.Ya}return a},wc=a=>{if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a};
|
|
50
|
+
function xc(a,b){if(null===b){if(this.Nb)throw new T(`null is not a valid ${this.name}`);return 0}if(!b.Oa)throw new T(`Cannot pass "${wc(b)}" as a ${this.name}`);if(!b.Oa.Ra)throw new T(`Cannot pass deleted object as a pointer of type ${this.name}`);return vc(b.Oa.Ra,b.Oa.Ua.Ta,this.Ta)}
|
|
51
|
+
function yc(a,b){if(null===b){if(this.Nb)throw new T(`null is not a valid ${this.name}`);if(this.Bb){var c=this.Bc();null!==a&&a.push(this.nb,c);return c}return 0}if(!b||!b.Oa)throw new T(`Cannot pass "${wc(b)}" as a ${this.name}`);if(!b.Oa.Ra)throw new T(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.Ab&&b.Oa.Ua.Ab)throw new T(`Cannot convert argument of type ${b.Oa.bb?b.Oa.bb.name:b.Oa.Ua.name} to parameter type ${this.name}`);c=vc(b.Oa.Ra,b.Oa.Ua.Ta,this.Ta);if(this.Bb){if(void 0===
|
|
52
|
+
b.Oa.Wa)throw new T("Passing raw pointer to smart pointer is illegal");switch(this.Dc){case 0:if(b.Oa.bb===this)c=b.Oa.Wa;else throw new T(`Cannot convert argument of type ${b.Oa.bb?b.Oa.bb.name:b.Oa.Ua.name} to parameter type ${this.name}`);break;case 1:c=b.Oa.Wa;break;case 2:if(b.Oa.bb===this)c=b.Oa.Wa;else{var d=b.clone();c=this.Cc(c,zc(()=>d["delete"]()));null!==a&&a.push(this.nb,c)}break;default:throw new T("Unsupporting sharing policy");}}return c}
|
|
53
|
+
function Ac(a,b){if(null===b){if(this.Nb)throw new T(`null is not a valid ${this.name}`);return 0}if(!b.Oa)throw new T(`Cannot pass "${wc(b)}" as a ${this.name}`);if(!b.Oa.Ra)throw new T(`Cannot pass deleted object as a pointer of type ${this.name}`);if(b.Oa.Ua.Ab)throw new T(`Cannot convert argument of type ${b.Oa.Ua.name} to parameter type ${this.name}`);return vc(b.Oa.Ra,b.Oa.Ua.Ta,this.Ta)}function Bc(a){return this.Xa(y[a>>2])}
|
|
54
|
+
var Cc=(a,b,c)=>{if(b===c)return a;if(void 0===c.Ya)return null;a=Cc(a,b,c.Ya);return null===a?null:c.lc(a)},Dc={},Ec=(a,b)=>{if(void 0===b)throw new T("ptr should not be undefined");for(;a.Ya;)b=a.yb(b),a=a.Ya;return Dc[b]},Fc=class extends Error{constructor(a){super(a);this.name="InternalError"}},Gc=(a,b)=>{if(!b.Ua||!b.Ra)throw new Fc("makeClassHandle requires ptr and ptrType");if(!!b.bb!==!!b.Wa)throw new Fc("Both smartPtrType and smartPtr must be specified");b.count={value:1};return mc(Object.create(a,
|
|
55
|
+
{Oa:{value:b,writable:!0}}))};function Hc(a,b,c,d,e,f,g,h,k,l,m){this.name=a;this.Ta=b;this.Nb=c;this.Ab=d;this.Bb=e;this.zc=f;this.Dc=g;this.dc=h;this.Bc=k;this.Cc=l;this.nb=m;e||void 0!==b.Ya?this.eb=yc:(this.eb=d?xc:Ac,this.cb=null)}var Ic=(a,b)=>{if(!n.hasOwnProperty(a))throw new Fc("Replacing nonexistent public symbol");n[a]=b;n[a].pb=void 0},Jc=(a,b)=>{a=S(a);var c=V.get(b);if("function"!=typeof c)throw new T(`unknown function pointer with signature ${a}: ${b}`);return c};
|
|
56
|
+
class Kc extends Error{}
|
|
57
|
+
var Nc=a=>{a=Lc(a);var b=S(a);Mc(a);return b},Oc=(a,b)=>{function c(f){e[f]||ec[f]||(fc[f]?fc[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new Kc(`${a}: `+d.map(Nc).join([", "]));},Pc=(a,b,c)=>{function d(h){h=c(h);if(h.length!==a.length)throw new Fc("Mismatched type converter count");for(var k=0;k<a.length;++k)U(a[k],h[k])}a.forEach(h=>fc[h]=b);var e=Array(b.length),f=[],g=0;for(let [h,k]of b.entries())ec.hasOwnProperty(k)?e[h]=ec[k]:(f.push(k),dc.hasOwnProperty(k)||(dc[k]=
|
|
58
|
+
[]),dc[k].push(()=>{e[h]=ec[k];++g;g===f.length&&d(e)}));0===f.length&&d(e)},Qc=a=>{for(;a.length;){var b=a.pop();a.pop()(b)}};function Rc(a){for(var b=1;b<a.length;++b)if(null!==a[b]&&void 0===a[b].cb)return!0;return!1}
|
|
59
|
+
function Sc(a,b,c,d,e,f){var g=b.length;if(2>g)throw new T("argTypes array size mismatch! Must at least get return value and 'this' types!");var h=null!==b[1]&&null!==c,k=Rc(b);c=!b[0].wc;var l=b[0],m=b[1];d=[a,gc,d,e,Qc,l.Xa.bind(l),m?.eb.bind(m)];for(e=2;e<g;++e)l=b[e],d.push(l.eb.bind(l));if(!k)for(e=h?1:2;e<b.length;++e)null!==b[e].cb&&d.push(b[e].cb);k=Rc(b);e=b.length-2;m=[];l=["fn"];h&&l.push("thisWired");for(g=0;g<e;++g)m.push(`arg${g}`),l.push(`arg${g}Wired`);m=m.join(",");l=l.join(",");
|
|
60
|
+
m=`return function (${m}) {\n`;k&&(m+="var destructors = [];\n");var q=k?"destructors":"null",r="humanName throwBindingError invoker fn runDestructors fromRetWire toClassParamWire".split(" ");h&&(m+=`var thisWired = toClassParamWire(${q}, this);\n`);for(g=0;g<e;++g){var t=`toArg${g}Wire`;m+=`var arg${g}Wired = ${t}(${q}, arg${g});\n`;r.push(t)}m+=(c||f?"var rv = ":"")+`invoker(${l});\n`;if(k)m+="runDestructors(destructors);\n";else for(g=h?1:2;g<b.length;++g)f=1===g?"thisWired":"arg"+(g-2)+"Wired",
|
|
61
|
+
null!==b[g].cb&&(m+=`${f}_dtor(${f});\n`,r.push(`${f}_dtor`));c&&(m+="var ret = fromRetWire(rv);\nreturn ret;\n");b=(new Function(r,m+"}\n"))(...d);return pc(a,b)}
|
|
62
|
+
var Tc=(a,b)=>{for(var c=[],d=0;d<a;d++)c.push(y[b+4*d>>2]);return c},Uc=a=>{a=a.trim();const b=a.indexOf("(");return-1===b?a:a.slice(0,b)},Vc=[],Wc=[0,1,,1,null,1,!0,1,!1,1],zc=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const b=Vc.pop()||Wc.length;Wc[b]=a;Wc[b+1]=1;return b}},Xc={name:"emscripten::val",Xa:a=>{if(!a)throw new T(`Cannot use deleted val. handle = ${a}`);var b=Wc[a];9<a&&0===--Wc[a+1]&&(Wc[a]=void 0,Vc.push(a));return b},eb:(a,b)=>
|
|
63
|
+
zc(b),ob:Bc,cb:null},Yc=(a,b)=>{switch(b){case 4:return function(c){return this.Xa(ua[c>>2])};case 8:return function(c){return this.Xa(va[c>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},Zc=new TextDecoder("utf-16le"),$c=(a,b,c)=>{a>>=1;return Zc.decode(ta.subarray(a,Wa(ta,a,b/2,c)))},ad=(a,b,c)=>{c??=2147483647;if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e<c;++e)sa[b>>1]=a.charCodeAt(e),b+=2;sa[b>>1]=0;return b-d},bd=a=>2*a.length,cd=(a,b,c)=>{var d=
|
|
64
|
+
"";a>>=2;for(var e=0;!(e>=b/4);e++){var f=y[a+e];if(!f&&!c)break;d+=String.fromCodePoint(f)}return d},dd=(a,b,c)=>{c??=2147483647;if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e<a.length;++e){var f=a.codePointAt(e);65535<f&&e++;w[b>>2]=f;b+=4;if(b+4>c)break}w[b>>2]=0;return b-d},ed=a=>{for(var b=0,c=0;c<a.length;++c)65535<a.codePointAt(c)&&c++,b+=4;return b},gd=0,hd={},jd=a=>{pa=a;Ha||0<gd||(n.onExit?.(a),oa=!0);fa(a,new Ca(a))},kd=()=>{if(!(Ha||0<gd))try{var a=pa;pa=a;jd(a)}catch(b){b instanceof Ca||
|
|
65
|
+
"unwind"==b||fa(1,b)}},ld=a=>{if(!oa)try{a(),kd()}catch(b){b instanceof Ca||"unwind"==b||fa(1,b)}},md=[],nd=(a,b)=>{md.length=0;for(var c;c=v[a++];){var d=105!=c;d&=112!=c;b+=d&&b%8?4:0;md.push(112==c?y[b>>2]:106==c?A[b>>3]:105==c?w[b>>2]:va[b>>3]);b+=d?8:4}return md},xd=(a,b)=>{od=a;pd=b;if(qd)if(rd||=!0,0==a)sd=function(){setTimeout(td,Math.max(0,ud+b-performance.now())|0)};else if(1==a)sd=function(){vd(td)};else if(2==a){if(!wd)if(globalThis.setImmediate)wd=setImmediate;else{var c=[];addEventListener("message",
|
|
66
|
+
d=>{if("setimmediate"===d.data||"setimmediate"===d.data.target)d.stopPropagation(),c.shift()()},!0);wd=d=>{c.push(d);ba?(n.setImmediates??(n.setImmediates=[]),n.setImmediates.push(d),postMessage({target:"setimmediate"})):postMessage("setimmediate","*")}}sd=function(){wd(td)}}},Fd=a=>{function b(){return c<yd?(kd(),!1):!0}qd=a;var c=yd;rd=!1;td=function(){if(!oa)if(0<zd.length){var d=zd.shift();d.Wc(d.Gc);if(Ad){var e=Ad,f=0==e%1?e-1:Math.floor(e);Ad=d.Nc?f:(8*e+(f+.5))/9}n.setStatus&&(d=n.statusMessage||
|
|
67
|
+
"Please wait...",e=Ad??0,f=Bd.Tc??0,e?e<f?n.setStatus("{message} ({expected - remaining}/{expected})"):n.setStatus(d):n.setStatus(""));b()&&setTimeout(td,0)}else if(b())if(Cd=Cd+1|0,1==od&&1<pd&&0!=Cd%pd)sd();else{0==od&&(ud=performance.now());a:if(!oa){for(d of Dd)if(!1===d())break a;ld(a);for(e of Ed)e()}b()&&sd()}}},rd=!1,sd=null,yd=0,qd=null,od=0,pd=0,Cd=0,zd=[],Dd=[],Ed=[];function Gd(){sd=null;yd++}var Hd=0;
|
|
68
|
+
function vd(a){if(globalThis.requestAnimationFrame)requestAnimationFrame(a);else{var b=Date.now();if(0===Hd)Hd=b+1E3/60;else for(;b+2>=Hd;)Hd+=1E3/60;setTimeout(a,Math.max(Hd-b,0))}}var Bd={},ud,td,wd,Ad;function Id(a){var b=W.$a[a];b.target.removeEventListener(b.ub,b.Xb,b.ec);W.$a.splice(a,1)}function Jd(){if(navigator.userActivation?navigator.userActivation.isActive:W.Mb&&W.kc.ic){var a=W.mb;W.mb=[];for(var b of a)b.Pb(...b.Ub)}}
|
|
69
|
+
function Kd(a){if(!a.target)return-4;if(a.Gb)a.Xb=function(c){++W.Mb;W.kc=a;Jd();a.oc(c);Jd();--W.Mb},a.target.addEventListener(a.ub,a.Xb,a.ec),W.$a.push(a);else for(var b=0;b<W.$a.length;++b)W.$a[b].target==a.target&&W.$a[b].ub==a.ub&&Id(b--);return 0}
|
|
70
|
+
var W={Hc:0,Kb:0,Zc:0,cd:0,qd:0,od:0,Uc:0,Qc:0,ed:0,Pc:0,Vc:0,gd:0,pd:0,nd:0,hd(){for(;W.$a.length;)Id(W.$a.length-1);W.mb=[]},Mb:0,mb:[],Oc(a,b,c){function d(f,g){if(f.length!=g.length)return!1;for(var h in f)if(f[h]!=g[h])return!1;return!0}for(var e of W.mb)if(e.Pb==a&&d(e.Ub,c))return;W.mb.push({Pb:a,cc:b,Ub:c});W.mb.sort((f,g)=>f.cc<g.cc)},kd(a){W.mb=W.mb.filter(b=>b.Pb!=a)},$a:[],jd:(a,b)=>{for(var c=0;c<W.$a.length;++c)W.$a[c].target!=a||b&&b!=W.$a[c].ub||Id(c--)},ld(a){var b,c;for([b,c]of W.$a.entries())if(c.target===
|
|
71
|
+
a.target&&c.Yb===a.Yb&&c.Gb===a.Gb&&c.fc===a.fc)return Id(b),0;return-5},Yc(a){return a?a==window?"#window":a==screen?"#screen":a?.nodeName||"":""},fullscreenEnabled(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}},Ld=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0],Md=()=>{var a=2;a=2<a?R(a):a;return Ld[a]||("undefined"!=typeof document?document.querySelector(a):null)},Od=(a,b,c,d,e)=>{W.Kb||(W.Kb=Nd(1240));b={target:Md(),ic:!0,ub:e,Yb:d,fc:a,
|
|
72
|
+
Gb:c,oc:(f=event)=>{var g=W.Kb,h=f.gamepad;va[g>>3]=h.timestamp;for(var k=0;k<h.axes.length;++k)va[g+8*k+16>>3]=h.axes[k];for(k=0;k<h.buttons.length;++k)va[g+8*k+528>>3]="object"==typeof h.buttons[k]?h.buttons[k].value:h.buttons[k];for(k=0;k<h.buttons.length;++k)u[g+k+1040]="object"==typeof h.buttons[k]?h.buttons[k].pressed:1==h.buttons[k];u[g+1104]=h.connected;w[g+1108>>2]=h.index;w[g+8>>2]=h.axes.length;w[g+12>>2]=h.buttons.length;E(h.id,v,g+1112,64);E(h.mapping,v,g+1176,64);V.get(c)(d,g,a)&&f.preventDefault()},
|
|
73
|
+
ec:b};return Kd(b)},Pd=()=>{try{if(navigator.getGamepads)return(W.$c=navigator.getGamepads())?0:-1}catch(a){navigator.getGamepads=null}return-1},Qd={},Sd=()=>{if(!Rd){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.language||"C").replace("-","_")+".UTF-8",_:da||"./this.program"},b;for(b in Qd)void 0===Qd[b]?delete a[b]:a[b]=Qd[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);Rd=c}return Rd},Rd,Ud=(a,b,c,d)=>{var e={string:l=>
|
|
74
|
+
{var m=0;if(null!==l&&void 0!==l&&0!==l){m=Za(l)+1;var q=Td(m);E(l,v,q,m);m=q}return m},array:l=>{var m=Td(l.length);u.set(l,m);return m}};a=n["_"+a];var f=[],g=0;if(d)for(var h=0;h<d.length;h++){var k=e[c[h]];k?(0===g&&(g=X()),f[h]=k(d[h])):f[h]=d[h]}c=a(...f);return c=function(l){0!==g&&Y(g);return"string"===b?R(l):"boolean"===b?!!l:l}(c)},Vd=a=>{setTimeout(()=>{ld(a)},1E4)},Wd=!1,Xd=[];
|
|
75
|
+
function ub(){function a(){Wd=document.pointerLockElement===n.canvas}if(!Yd){Yd=!0;sb.push({canHandle:function(c){return!n.noImageDecoding&&/\.(jpg|jpeg|png|bmp|webp)$/i.test(c)},handle:async function(c,d){var e=new Blob([c],{type:Zd(d)});e.size!==c.length&&(e=new Blob([(new Uint8Array(c)).buffer],{type:Zd(d)}));var f=URL.createObjectURL(e);return new Promise((g,h)=>{var k=new Image;k.onload=()=>{var l=document.createElement("canvas");l.width=k.width;l.height=k.height;l.getContext("2d").drawImage(k,
|
|
76
|
+
0,0);URL.revokeObjectURL(f);g(c)};k.onerror=()=>{p(`Image ${f} could not be decoded`);h()};k.src=f})}});sb.push({canHandle:function(c){return!n.noAudioDecoding&&c.slice(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:async function(c,d){return new Promise(e=>{function f(){g||(g=!0,e(c))}var g=!1,h=new Blob([c],{type:Zd(d)});h=URL.createObjectURL(h);var k=new Audio;k.addEventListener("canplaythrough",()=>f(k),!1);k.onerror=function(){if(!g){p(`warning: browser could not fully decode audio ${d}, trying slower base64 approach`);
|
|
77
|
+
for(var l="data:audio/x-"+d.slice(-3)+";base64,",m="",q=0,r=0,t=0;t<c.length;t++)for(q=q<<8|c[t],r+=8;6<=r;){var x=q>>r-6&63;r-=6;m+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[x]}2==r?(m+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(q&3)<<4],m+="=="):4==r&&(m+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(q&15)<<2],m+="=");k.src=l+m;f(k)}};k.src=h;Vd(()=>{f(k)})})}});var b=n.canvas;b&&(document.addEventListener("pointerlockchange",
|
|
78
|
+
a,!1),n.elementPointerLock&&b.addEventListener("click",c=>{!Wd&&n.canvas.requestPointerLock&&(n.canvas.requestPointerLock(),c.preventDefault())},!1))}}function Zd(a){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[a.slice(a.lastIndexOf(".")+1)]}var tb={},Yd;M=Array(4096);Ob(H,"/");O("/tmp");O("/home");O("/home/web_user");
|
|
79
|
+
(function(){O("/dev");cb(259,{read:()=>0,write:(d,e,f,g)=>g,gb:()=>0});Rb("/dev/null",259);bb(1280,eb);bb(1536,fb);Rb("/dev/tty",1280);Rb("/dev/tty1",1536);var a=new Uint8Array(1024),b=0,c=()=>{0===b&&(Ta(a),b=a.byteLength);return a[--b]};P("/dev","random",c);P("/dev","urandom",c);O("/dev/shm");O("/dev/shm/tmp")})();
|
|
80
|
+
(function(){O("/proc");var a=O("/proc/self");O("/proc/self/fd");Ob({kb(){var b=jb(a,"fd",16895,73);b.Pa={gb:H.Pa.gb};b.Sa={lookup(c,d){c=+d;var e=N(c);c={parent:null,kb:{bc:"fake"},Sa:{readlink:()=>e.path},id:c+1};return c.parent=c},readdir(){return Array.from(yb.entries()).filter(([,c])=>c).map(([c])=>c.toString())}};return b}},"/proc/self/fd")})();
|
|
81
|
+
(()=>{let a=oc.prototype;Object.assign(a,{isAliasOf:function(c){if(!(this instanceof oc&&c instanceof oc))return!1;var d=this.Oa.Ua.Ta,e=this.Oa.Ra;c.Oa=c.Oa;var f=c.Oa.Ua.Ta;for(c=c.Oa.Ra;d.Ya;)e=d.yb(e),d=d.Ya;for(;f.Ya;)c=f.yb(c),f=f.Ya;return d===f&&e===c},clone:function(){this.Oa.Ra||jc(this);if(this.Oa.xb)return this.Oa.count.value+=1,this;var c=mc,d=Object,e=d.create,f=Object.getPrototypeOf(this),g=this.Oa;c=c(e.call(d,f,{Oa:{value:{count:g.count,tb:g.tb,xb:g.xb,Ra:g.Ra,Ua:g.Ua,Wa:g.Wa,bb:g.bb}}}));
|
|
82
|
+
c.Oa.count.value+=1;c.Oa.tb=!1;return c},["delete"](){this.Oa.Ra||jc(this);if(this.Oa.tb&&!this.Oa.xb)throw new T("Object already scheduled for deletion");lc(this);var c=this.Oa;--c.count.value;0===c.count.value&&(c.Wa?c.bb.nb(c.Wa):c.Ua.Ta.nb(c.Ra));this.Oa.xb||(this.Oa.Wa=void 0,this.Oa.Ra=void 0)},isDeleted:function(){return!this.Oa.Ra},deleteLater:function(){this.Oa.Ra||jc(this);if(this.Oa.tb&&!this.Oa.xb)throw new T("Object already scheduled for deletion");nc.push(this);this.Oa.tb=!0;return this}});
|
|
83
|
+
const b=Symbol.dispose;b&&(a[b]=a["delete"])})();
|
|
84
|
+
Object.assign(Hc.prototype,{nc(a){this.dc&&(a=this.dc(a));return a},Wb(a){this.nb?.(a)},ob:Bc,Xa:function(a){function b(){return this.Bb?Gc(this.Ta.rb,{Ua:this.zc,Ra:c,bb:this,Wa:a}):Gc(this.Ta.rb,{Ua:this,Ra:a})}var c=this.nc(a);if(!c)return this.Wb(a),null;var d=Ec(this.Ta,c);if(void 0!==d){if(0===d.Oa.count.value)return d.Oa.Ra=c,d.Oa.Wa=a,d.clone();d=d.clone();this.Wb(a);return d}d=this.Ta.mc(c);d=qc[d];if(!d)return b.call(this);d=this.Ab?d.jc:d.pointerType;var e=Cc(c,this.Ta,d.Ta);return null===
|
|
85
|
+
e?b.call(this):this.Bb?Gc(d.Ta.rb,{Ua:d,Ra:e,bb:this,Wa:a}):Gc(d.Ta.rb,{Ua:d,Ra:e})}});n.requestAnimationFrame=vd;n.pauseMainLoop=Gd;n.resumeMainLoop=function(){yd++;var a=od,b=pd,c=qd;qd=null;Fd(c);xd(a,b);sd()};n.preMainLoop&&Dd.push(n.preMainLoop);n.postMainLoop&&Ed.push(n.postMainLoop);n.noExitRuntime&&(Ha=n.noExitRuntime);n.preloadPlugins&&(sb=n.preloadPlugins);n.print&&(ma=n.print);n.printErr&&(p=n.printErr);n.wasmBinary&&(na=n.wasmBinary);n.thisProgram&&(da=n.thisProgram);
|
|
86
|
+
if(n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);0<n.preInit.length;)n.preInit.shift()();n.addRunDependency=rb;n.removeRunDependency=qb;n.cwrap=(a,b,c,d)=>{var e=!c||c.every(f=>"number"===f||"boolean"===f);return"string"!==b&&e&&!d?n["_"+a]:(...f)=>Ud(a,b,c,f)};
|
|
87
|
+
n.createContext=function(a,b,c,d){if(b&&n.ctx&&a==n.canvas)return n.ctx;var e;if(b){var f={antialias:!1,alpha:!1,ad:1};if(d)for(var g in d)f[g]=d[g];if("undefined"!=typeof GL&&(e=GL.createContext(a,f)))var h=GL.getContext(e).Fc}else h=a.getContext("2d");if(!h)return null;c&&(n.ctx=h,b&&GL.bd(e),Xd.forEach(k=>k()),ub());return h};
|
|
88
|
+
n.FS_preloadFile=async(a,b,c,d,e,f,g,h)=>{var k=b?Ua(Qa(a+"/"+b)):a,l=`cp ${k}`;rb(l);try{var m=c;"string"==typeof c&&(m=await nb(c));m=await vb(m,k);h?.();f||ac(a,b,m,d,e,g)}finally{qb(l)}};n.FS_unlink=(...a)=>Tb(...a);n.FS_createPath=(...a)=>Zb(...a);n.FS_createDevice=(...a)=>P(...a);n.FS_createDataFile=(...a)=>ac(...a);n.FS_createLazyFile=(...a)=>cc(...a);
|
|
89
|
+
var $d={761078:a=>{throw Error(R(a));},761117:a=>{throw Error(R(a));},761156:a=>{throw Error(R(a));},761195:a=>{throw Error(R(a));},761234:a=>{throw Error(R(a));},761273:a=>{throw Error(R(a));},761312:a=>{throw Error(R(a));},761351:a=>{throw Error(R(a));},761390:a=>{throw Error(R(a));},761429:a=>{throw Error(R(a));},761468:a=>{throw Error(R(a));},761507:a=>{throw Error(R(a));},761546:a=>{throw Error(R(a));},761585:a=>{throw Error(R(a));},761624:a=>{throw Error(R(a));},761663:a=>{throw Error(R(a));
|
|
90
|
+
},761702:a=>{throw Error(R(a));},761741:a=>{throw Error(R(a));},761780:a=>{throw Error(R(a));},761819:a=>{throw Error(R(a));},761858:a=>{throw Error(R(a));},761897:a=>{throw Error(R(a));},761936:a=>{throw Error(R(a));},761975:a=>{throw Error(R(a));},762014:a=>{throw Error(R(a));},762053:a=>{throw Error(R(a));},762092:a=>{throw Error(R(a));},762131:a=>{throw Error(R(a));},762170:a=>{throw Error(R(a));},762209:a=>{throw Error(R(a));},762248:a=>{throw Error(R(a));},762287:a=>{throw Error(R(a));},762326:a=>
|
|
91
|
+
{throw Error(R(a));},762365:a=>{throw Error(R(a));},762404:a=>{throw Error(R(a));},762443:a=>{throw Error(R(a));},762482:a=>{throw Error(R(a));},762521:a=>{throw Error(R(a));},762560:a=>{throw Error(R(a));},762599:a=>{throw Error(R(a));},762638:a=>{throw Error(R(a));},762677:a=>{a=R(a)+"\n\nAbort/Retry/Ignore/AlwaysIgnore? [ariA] :";a=window.prompt(a,"i");null===a&&(a="i");return 1===a.length?a.charCodeAt(0):-1}},Nd,Lc,Mc,gb,ae,Z,La,Y,Td,X,be,ce,Ma,de,ee,V,De={X:(a,b)=>V.get(a)(b),l:a=>{var b=new Ka(a);
|
|
92
|
+
0==u[b.Ra+12]&&(u[b.Ra+12]=1,Ja--);u[b.Ra+13]=0;Ia.push(b);ce(a);return de(a)},x:()=>{Z(0,0);var a=Ia.pop();be(a.Zb);C=0},a:()=>Na([]),f:a=>Na([a]),O:()=>{var a=Ia.pop();a||B("no exception to throw");var b=a.Zb;0==u[a.Ra+13]&&(Ia.push(a),u[a.Ra+13]=1,u[a.Ra+12]=0,Ja++);C=b;throw C;},r:(a,b,c)=>{var d=new Ka(a);y[d.Ra+16>>2]=0;y[d.Ra+4>>2]=b;y[d.Ra+8>>2]=c;C=a;Ja++;throw C;},$:()=>Ja,g:a=>{C||=a;throw C;},I:function(a,b,c){Oa=c;try{var d=N(a);switch(b){case 0:var e=D();if(0>e)break;for(;yb[e];)e++;
|
|
93
|
+
return Mb(d,e).fd;case 1:case 2:return 0;case 3:return d.flags;case 4:return e=D(),d.flags|=e,0;case 12:return e=D(),sa[e+0>>1]=2,0;case 13:case 14:return 0}return-28}catch(f){if("undefined"==typeof Q||"ErrnoError"!==f.name)throw f;return-f.Za}},ha:function(a,b){try{var c=N(a),d=c.node,e=c.Pa.fb;a=e?c:d;e??=d.Sa.fb;if(!e)throw new G(63);var f=e(a);y[b>>2]=f.dev;y[b+4>>2]=f.mode;y[b+8>>2]=f.nlink;y[b+12>>2]=f.uid;y[b+16>>2]=f.gid;y[b+20>>2]=f.rdev;A[b+24>>3]=BigInt(f.size);w[b+32>>2]=4096;w[b+36>>
|
|
94
|
+
2]=f.blocks;var g=f.atime.getTime(),h=f.mtime.getTime(),k=f.ctime.getTime();A[b+40>>3]=BigInt(Math.floor(g/1E3));y[b+48>>2]=g%1E3*1E6;A[b+56>>3]=BigInt(Math.floor(h/1E3));y[b+64>>2]=h%1E3*1E6;A[b+72>>3]=BigInt(Math.floor(k/1E3));y[b+80>>2]=k%1E3*1E6;A[b+88>>3]=BigInt(f.ino);return 0}catch(l){if("undefined"==typeof Q||"ErrnoError"!==l.name)throw l;return-l.Za}},ja:function(a,b,c){Oa=c;try{var d=N(a);switch(b){case 21509:return d.tty?0:-59;case 21505:if(!d.tty)return-59;if(d.tty.lb.rc){a=[3,28,127,
|
|
95
|
+
21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];var e=D();w[e>>2]=25856;w[e+4>>2]=5;w[e+8>>2]=191;w[e+12>>2]=35387;for(var f=0;32>f;f++)u[e+f+17]=a[f]||0}return 0;case 21510:case 21511:case 21512:return d.tty?0:-59;case 21506:case 21507:case 21508:if(!d.tty)return-59;if(d.tty.lb.sc)for(e=D(),a=[],f=0;32>f;f++)a.push(u[e+f+17]);return 0;case 21519:if(!d.tty)return-59;e=D();return w[e>>2]=0;case 21520:return d.tty?-28:-59;case 21537:case 21531:e=D();if(!d.Pa.qc)throw new G(59);return d.Pa.qc(d,
|
|
96
|
+
b,e);case 21523:if(!d.tty)return-59;d.tty.lb.tc&&(f=[24,80],e=D(),sa[e>>1]=f[0],sa[e+2>>1]=f[1]);return 0;case 21524:return d.tty?0:-59;case 21515:return d.tty?0:-59;default:return-28}}catch(g){if("undefined"==typeof Q||"ErrnoError"!==g.name)throw g;return-g.Za}},Q:function(a,b,c,d){Oa=d;try{b=R(b);var e=b;if("/"===e.charAt(0))b=e;else{var f=-100===a?"/":N(a).path;if(0==e.length)throw new G(44);b=f+"/"+e}var g=d?D():0;return Vb(b,c,g).fd}catch(h){if("undefined"==typeof Q||"ErrnoError"!==h.name)throw h;
|
|
97
|
+
return-h.Za}},la:()=>B(""),S:(a,b,c,d,e)=>{b=S(b);d=0n===d;let f=g=>g;if(d){const g=8*c;f=h=>BigInt.asUintN(g,h);e=f(e)}U(a,{name:b,Xa:f,eb:(g,h)=>{"number"==typeof h&&(h=BigInt(h));return h},ob:ic(b,c,!d),cb:null})},wa:(a,b,c,d)=>{b=S(b);U(a,{name:b,Xa:function(e){return!!e},eb:function(e,f){return f?c:d},ob:function(e){return this.Xa(v[e])},cb:null})},u:(a,b,c,d,e,f,g,h,k,l,m,q,r)=>{m=S(m);f=Jc(e,f);h&&=Jc(g,h);l&&=Jc(k,l);r=Jc(q,r);var t=tc(m);sc(t,function(){Oc(`Cannot construct ${m} due to unbound types`,
|
|
98
|
+
[d])});Pc([a,b,c],d?[d]:[],x=>{x=x[0];if(d){var z=x.Ta;var I=z.rb}else I=oc.prototype;x=pc(m,function(...K){if(Object.getPrototypeOf(this)!==L)throw new T(`Use 'new' to construct ${m}`);if(void 0===F.qb)throw new T(`${m} has no accessible constructor`);var fd=F.qb[K.length];if(void 0===fd)throw new T(`Tried to invoke ctor of ${m} with invalid number of parameters (${K.length}) - expected (${Object.keys(F.qb).toString()}) parameters instead!`);return fd.apply(this,K)});var L=Object.create(I,{constructor:{value:x}});
|
|
99
|
+
x.prototype=L;var F=new uc(m,x,L,r,z,f,h,l);if(F.Ya){var ea;(ea=F.Ya).zb??(ea.zb=[]);F.Ya.zb.push(F)}z=new Hc(m,F,!0,!1,!1);ea=new Hc(m+"*",F,!1,!1,!1);I=new Hc(m+" const*",F,!1,!0,!1);qc[a]={pointerType:ea,jc:I};Ic(t,x);return[z,ea,I]})},C:(a,b,c,d,e,f,g,h)=>{var k=Tc(c,d);b=S(b);b=Uc(b);f=Jc(e,f);Pc([],[a],l=>{function m(){Oc(`Cannot call ${q} due to unbound types`,k)}l=l[0];var q=`${l.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);var r=l.Ta.constructor;void 0===r[b]?(m.pb=c-1,r[b]=
|
|
100
|
+
m):(rc(r,b,q),r[b].ab[c-1]=m);Pc([],k,t=>{t=[t[0],null].concat(t.slice(1));t=Sc(q,t,null,f,g,h);void 0===r[b].ab?(t.pb=c-1,r[b]=t):r[b].ab[c-1]=t;if(l.Ta.zb)for(const x of l.Ta.zb)x.constructor.hasOwnProperty(b)||(x.constructor[b]=t);return[]});return[]})},v:(a,b,c,d,e,f)=>{var g=Tc(b,c);e=Jc(d,e);Pc([],[a],h=>{h=h[0];var k=`constructor ${h.name}`;void 0===h.Ta.qb&&(h.Ta.qb=[]);if(void 0!==h.Ta.qb[b-1])throw new T(`Cannot register multiple constructors with identical number of parameters (${b-1}) for class '${h.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);
|
|
101
|
+
h.Ta.qb[b-1]=()=>{Oc(`Cannot construct ${h.name} due to unbound types`,g)};Pc([],g,l=>{l.splice(1,0,null);h.Ta.qb[b-1]=Sc(k,l,null,e,f);return[]});return[]})},m:(a,b,c,d,e,f,g,h,k)=>{var l=Tc(c,d);b=S(b);b=Uc(b);f=Jc(e,f);Pc([],[a],m=>{function q(){Oc(`Cannot call ${r} due to unbound types`,l)}m=m[0];var r=`${m.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);h&&m.Ta.Ac.push(b);var t=m.Ta.rb,x=t[b];void 0===x||void 0===x.ab&&x.className!==m.name&&x.pb===c-2?(q.pb=c-2,q.className=m.name,
|
|
102
|
+
t[b]=q):(rc(t,b,r),t[b].ab[c-2]=q);Pc([],l,z=>{z=Sc(r,z,m,f,g,k);void 0===t[b].ab?(z.pb=c-2,t[b]=z):t[b].ab[c-2]=z;return[]});return[]})},ua:a=>U(a,Xc),R:(a,b,c)=>{b=S(b);U(a,{name:b,Xa:d=>d,eb:(d,e)=>e,ob:Yc(b,c),cb:null})},z:(a,b,c,d,e)=>{b=S(b);let f=h=>h;if(0===d){var g=32-8*c;f=h=>h<<g>>>g;e=f(e)}U(a,{name:b,Xa:f,eb:(h,k)=>k,ob:ic(b,c,0!==d),cb:null})},w:(a,b,c)=>{function d(f){return new e(u.buffer,y[f+4>>2],y[f>>2])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,
|
|
103
|
+
Float32Array,Float64Array,BigInt64Array,BigUint64Array][b];c=S(c);U(a,{name:c,Xa:d,ob:d},{pc:!0})},va:(a,b)=>{b=S(b);U(a,{name:b,Xa(c){var d=R(c+4,y[c>>2],!0);Mc(c);return d},eb(c,d){d instanceof ArrayBuffer&&(d=new Uint8Array(d));var e="string"==typeof d;if(!(e||ArrayBuffer.isView(d)&&1==d.BYTES_PER_ELEMENT))throw new T("Cannot pass non-string to std::string");var f=e?Za(d):d.length;var g=Nd(4+f+1),h=g+4;y[g>>2]=f;e?E(d,v,h,f+1):v.set(d,h);null!==c&&c.push(Mc,g);return g},ob:Bc,cb(c){Mc(c)}})},K:(a,
|
|
104
|
+
b,c)=>{c=S(c);if(2===b){var d=$c;var e=ad;var f=bd}else d=cd,e=dd,f=ed;U(a,{name:c,Xa:g=>{var h=d(g+4,y[g>>2]*b,!0);Mc(g);return h},eb:(g,h)=>{if("string"!=typeof h)throw new T(`Cannot pass non-string to C++ string type ${c}`);var k=f(h),l=Nd(4+k+b);y[l>>2]=k/b;e(h,l+4,k+b);null!==g&&g.push(Mc,l);return l},ob:Bc,cb(g){Mc(g)}})},T:(a,b)=>{b=S(b);U(a,{wc:!0,name:b,Xa:()=>{},eb:()=>{}})},ta:a=>{do{var b=y[a>>2];a+=4;var c=y[a>>2];a+=4;var d=y[a>>2];a+=4;b=R(b);Zb("/",Ra(b));ac(b,null,u.subarray(d,d+
|
|
105
|
+
c),!0,!0,!0)}while(y[a>>2])},Z:()=>{Ha=!1;gd=0},W:()=>{throw Infinity;},ba:function(a,b,c,d,e,f,g){e=-9007199254740992>e||9007199254740992<e?NaN:Number(e);try{var h=N(d);if(0!==(b&2)&&0===(c&2)&&2!==(h.flags&2097155))throw new G(2);if(1===(h.flags&2097155))throw new G(2);if(!h.Pa.vb)throw new G(43);if(!a)throw new G(28);var k=h.Pa.vb(h,a,e,b,c);var l=k.Ra;w[f>>2]=k.Tb;y[g>>2]=l;return 0}catch(m){if("undefined"==typeof Q||"ErrnoError"!==m.name)throw m;return-m.Za}},ca:function(a,b,c,d,e,f){f=-9007199254740992>
|
|
106
|
+
f||9007199254740992<f?NaN:Number(f);try{var g=N(e);if(c&2){c=f;if(32768!==(g.node.mode&61440))throw new G(43);if(!(d&2)){var h=v.slice(a,a+b);g.Pa.Db&&g.Pa.Db(g,h,c,b,d)}}}catch(k){if("undefined"==typeof Q||"ErrnoError"!==k.name)throw k;return-k.Za}},_:(a,b)=>{hd[a]&&(clearTimeout(hd[a].id),delete hd[a]);if(!b)return 0;var c=setTimeout(()=>{delete hd[a];ld(()=>ae(a,performance.now()))},b);hd[a]={id:c,md:b};return 0},da:(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();
|
|
107
|
+
e=(new Date(e,6,1)).getTimezoneOffset();y[a>>2]=60*Math.max(f,e);w[b>>2]=Number(f!=e);b=g=>{var h=Math.abs(g);return`UTC${0<=g?"-":"+"}${String(Math.floor(h/60)).padStart(2,"0")}${String(h%60).padStart(2,"0")}`};a=b(f);b=b(e);e<f?(E(a,v,c,17),E(b,v,d,17)):(E(a,v,d,17),E(b,v,c,17))},p:(a,b,c)=>{b=nd(b,c);return $d[a](...b)},qa:(a,b,c)=>{b=nd(b,c);return $d[a](...b)},sa:()=>{Gd();qd=null},ka:()=>Date.now(),ra:a=>{Ha=!1;gd=0;pa=a;jd(a)},H:()=>performance.now(),na:()=>0,aa:()=>{B("OOM")},pa:(a,b,c)=>
|
|
108
|
+
Pd()?-1:Od(a,b,c,26,"gamepadconnected"),oa:(a,b,c)=>Pd()?-1:Od(a,b,c,27,"gamepaddisconnected"),ma:()=>{B("Please compile your program with async support in order to use asynchronous operations like emscripten_sleep")},fa:(a,b)=>{var c=0,d=0,e;for(e of Sd()){var f=b+c;y[a+d>>2]=f;c+=E(e,v,f,Infinity)+1;d+=4}return 0},ga:(a,b)=>{var c=Sd();y[a>>2]=c.length;a=0;for(var d of c)a+=Za(d)+1;y[b>>2]=a;return 0},J:function(a){try{var b=N(a);Wb(b);return 0}catch(c){if("undefined"==typeof Q||"ErrnoError"!==
|
|
109
|
+
c.name)throw c;return c.Za}},P:function(a,b,c,d){try{a:{var e=N(a);a=b;for(var f,g=b=0;g<c;g++){var h=y[a>>2],k=y[a+4>>2];a+=8;var l=e,m=h,q=k,r=f,t=u;if(0>q||0>r)throw new G(28);if(null===l.fd)throw new G(8);if(1===(l.flags&2097155))throw new G(8);if(J(l.node.mode))throw new G(31);if(!l.Pa.read)throw new G(28);var x="undefined"!=typeof r;if(!x)r=l.position;else if(!l.seekable)throw new G(70);var z=l.Pa.read(l,t,m,q,r);x||(l.position+=z);var I=z;if(0>I){var L=-1;break a}b+=I;if(I<k)break;"undefined"!=
|
|
110
|
+
typeof f&&(f+=I)}L=b}y[d>>2]=L;return 0}catch(F){if("undefined"==typeof Q||"ErrnoError"!==F.name)throw F;return F.Za}},ea:function(a,b,c,d){b=-9007199254740992>b||9007199254740992<b?NaN:Number(b);try{if(isNaN(b))return 61;var e=N(a);Xb(e,b,c);A[d>>3]=BigInt(e.position);e.Lb&&0===b&&0===c&&(e.Lb=null);return 0}catch(f){if("undefined"==typeof Q||"ErrnoError"!==f.name)throw f;return f.Za}},ia:function(a,b,c,d){try{a:{var e=N(a);a=b;for(var f,g=b=0;g<c;g++){var h=y[a>>2],k=y[a+4>>2];a+=8;var l=Yb(e,u,
|
|
111
|
+
h,k,f);if(0>l){var m=-1;break a}b+=l;if(l<k)break;"undefined"!=typeof f&&(f+=l)}m=b}y[d>>2]=m;return 0}catch(q){if("undefined"==typeof Q||"ErrnoError"!==q.name)throw q;return q.Za}},e:fe,b:ge,k:he,i:ie,V:je,G:ke,y:le,L:me,F:ne,U:oe,h:pe,n:qe,q:re,t:se,N:te,c:ue,B:ve,d:we,j:xe,M:ye,s:ze,A:Ae,D:Be,E:Ce,o:a=>a,Y:jd};function ue(a,b,c){var d=X();try{V.get(a)(b,c)}catch(e){Y(d);if(e!==e+0)throw e;Z(1,0)}}function ge(a,b,c){var d=X();try{return V.get(a)(b,c)}catch(e){Y(d);if(e!==e+0)throw e;Z(1,0)}}
|
|
112
|
+
function we(a,b,c,d){var e=X();try{V.get(a)(b,c,d)}catch(f){Y(e);if(f!==f+0)throw f;Z(1,0)}}function ze(a,b,c,d,e,f,g){var h=X();try{V.get(a)(b,c,d,e,f,g)}catch(k){Y(h);if(k!==k+0)throw k;Z(1,0)}}function fe(a,b){var c=X();try{return V.get(a)(b)}catch(d){Y(c);if(d!==d+0)throw d;Z(1,0)}}function pe(a){var b=X();try{V.get(a)()}catch(c){Y(b);if(c!==c+0)throw c;Z(1,0)}}function re(a,b,c,d,e,f,g){var h=X();try{V.get(a)(b,c,d,e,f,g)}catch(k){Y(h);if(k!==k+0)throw k;Z(1,0)}}
|
|
113
|
+
function qe(a,b){var c=X();try{V.get(a)(b)}catch(d){Y(c);if(d!==d+0)throw d;Z(1,0)}}function le(a,b,c,d,e,f,g){var h=X();try{return V.get(a)(b,c,d,e,f,g)}catch(k){Y(h);if(k!==k+0)throw k;Z(1,0)}}function he(a,b,c,d){var e=X();try{return V.get(a)(b,c,d)}catch(f){Y(e);if(f!==f+0)throw f;Z(1,0)}}function ie(a,b,c,d,e){var f=X();try{return V.get(a)(b,c,d,e)}catch(g){Y(f);if(g!==g+0)throw g;Z(1,0)}}function xe(a,b,c,d,e){var f=X();try{V.get(a)(b,c,d,e)}catch(g){Y(f);if(g!==g+0)throw g;Z(1,0)}}
|
|
114
|
+
function se(a,b,c,d,e,f,g,h){var k=X();try{V.get(a)(b,c,d,e,f,g,h)}catch(l){Y(k);if(l!==l+0)throw l;Z(1,0)}}function te(a,b,c,d){var e=X();try{V.get(a)(b,c,d)}catch(f){Y(e);if(f!==f+0)throw f;Z(1,0)}}function ve(a,b,c,d){var e=X();try{V.get(a)(b,c,d)}catch(f){Y(e);if(f!==f+0)throw f;Z(1,0)}}function ke(a,b,c,d,e,f){var g=X();try{return V.get(a)(b,c,d,e,f)}catch(h){Y(g);if(h!==h+0)throw h;Z(1,0)}}function ye(a,b,c,d,e,f){var g=X();try{V.get(a)(b,c,d,e,f)}catch(h){Y(g);if(h!==h+0)throw h;Z(1,0)}}
|
|
115
|
+
function je(a,b,c,d,e,f){var g=X();try{return V.get(a)(b,c,d,e,f)}catch(h){Y(g);if(h!==h+0)throw h;Z(1,0)}}function oe(a,b,c){var d=X();try{return V.get(a)(b,c)}catch(e){Y(d);if(e!==e+0)throw e;Z(1,0)}}function me(a,b,c,d,e,f,g,h){var k=X();try{return V.get(a)(b,c,d,e,f,g,h)}catch(l){Y(k);if(l!==l+0)throw l;Z(1,0)}}function Ae(a,b,c,d,e,f,g,h){var k=X();try{V.get(a)(b,c,d,e,f,g,h)}catch(l){Y(k);if(l!==l+0)throw l;Z(1,0)}}
|
|
116
|
+
function ne(a,b,c,d,e,f,g,h,k,l,m,q){var r=X();try{return V.get(a)(b,c,d,e,f,g,h,k,l,m,q)}catch(t){Y(r);if(t!==t+0)throw t;Z(1,0)}}function Be(a,b,c,d,e,f,g,h,k,l,m){var q=X();try{V.get(a)(b,c,d,e,f,g,h,k,l,m)}catch(r){Y(q);if(r!==r+0)throw r;Z(1,0)}}function Ce(a,b,c,d,e,f,g,h,k,l,m,q,r,t,x,z){var I=X();try{V.get(a)(b,c,d,e,f,g,h,k,l,m,q,r,t,x,z)}catch(L){Y(I);if(L!==L+0)throw L;Z(1,0)}}
|
|
117
|
+
function Ee(){function a(){n.calledRun=!0;if(!oa){xa=!0;if(!n.noFSInit&&!Ab){var b,c;Ab=!0;b??=n.stdin;c??=n.stdout;d??=n.stderr;b?P("/dev","stdin",b):Sb("/dev/tty","/dev/stdin");c?P("/dev","stdout",null,c):Sb("/dev/tty","/dev/stdout");d?P("/dev","stderr",null,d):Sb("/dev/tty1","/dev/stderr");Vb("/dev/stdin",0);Vb("/dev/stdout",1);Vb("/dev/stderr",1)}Fe.ya();Bb=!1;qa?.(n);n.onRuntimeInitialized?.();if(n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;){var d=n.postRun.shift();
|
|
118
|
+
Ea.push(d)}Da(Ea)}}if(0<ob)pb=Ee;else{if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)Ga();Da(Fa);0<ob?pb=Ee:n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>n.setStatus(""),1);a()},1)):a()}}var Fe;
|
|
119
|
+
Fe=await (async function(){function a(c){c=Fe=c.exports;Nd=c.za;Lc=c.Aa;Mc=c.Ba;gb=c.Da;ae=c.Ea;Z=c.Fa;La=c.Ga;Y=c.Ha;Td=c.Ia;X=c.Ja;be=c.Ka;ce=c.La;Ma=c.Ma;de=c.Na;ee=c.xa;V=c.Ca;c=ee.buffer;u=new Int8Array(c);sa=new Int16Array(c);v=new Uint8Array(c);ta=new Uint16Array(c);w=new Int32Array(c);y=new Uint32Array(c);ua=new Float32Array(c);va=new Float64Array(c);A=new BigInt64Array(c);wa=new BigUint64Array(c);return Fe}var b={a:De};if(n.instantiateWasm)return new Promise(c=>{n.instantiateWasm(b,
|
|
120
|
+
(d,e)=>{c(a(d,e))})});ya??=n.locateFile?n.locateFile?n.locateFile("barcode.wasm",ia):ia+"barcode.wasm":(new URL("barcode.wasm",import.meta.url)).href;return a((await Ba(b)).instance)}());Ee();xa?moduleRtn=n:moduleRtn=new Promise((a,b)=>{qa=a;ra=b});
|
|
121
|
+
;return moduleRtn}export default Module;
|
data/wasm/barcode.wasm
ADDED
|
Binary file
|
metadata
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: barcode_pao_wasm
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Pao
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies: []
|
|
12
|
+
description: 'Cross-platform barcode generation library using WebAssembly, supporting
|
|
13
|
+
18 barcode types: Code39, Code93, Code128, GS1-128, NW-7, ITF, Matrix 2of5, NEC
|
|
14
|
+
2of5, JAN-8, JAN-13, UPC-A, UPC-E, GS1 DataBar (Standard/Limited/Expanded), QR Code,
|
|
15
|
+
DataMatrix, PDF417, and Japan Post Customer Barcode. Output formats: PNG, JPEG,
|
|
16
|
+
SVG. Requires Node.js.'
|
|
17
|
+
email:
|
|
18
|
+
- info@pao.ac
|
|
19
|
+
executables: []
|
|
20
|
+
extensions: []
|
|
21
|
+
extra_rdoc_files: []
|
|
22
|
+
files:
|
|
23
|
+
- LICENSE
|
|
24
|
+
- README.md
|
|
25
|
+
- lib/barcode_pao_wasm.rb
|
|
26
|
+
- lib/barcode_pao_wasm/version.rb
|
|
27
|
+
- lib/barcode_pao_wasm/wrapper.rb
|
|
28
|
+
- wasm/_barcode_runner.mjs
|
|
29
|
+
- wasm/barcode.js
|
|
30
|
+
- wasm/barcode.mjs
|
|
31
|
+
- wasm/barcode.wasm
|
|
32
|
+
homepage: https://github.com/pao-ac/barcode-pao-wasm-ruby
|
|
33
|
+
licenses:
|
|
34
|
+
- MIT
|
|
35
|
+
metadata:
|
|
36
|
+
homepage_uri: https://github.com/pao-ac/barcode-pao-wasm-ruby
|
|
37
|
+
source_code_uri: https://github.com/pao-ac/barcode-pao-wasm-ruby
|
|
38
|
+
rdoc_options: []
|
|
39
|
+
require_paths:
|
|
40
|
+
- lib
|
|
41
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
42
|
+
requirements:
|
|
43
|
+
- - ">="
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: 2.7.0
|
|
46
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
47
|
+
requirements:
|
|
48
|
+
- - ">="
|
|
49
|
+
- !ruby/object:Gem::Version
|
|
50
|
+
version: '0'
|
|
51
|
+
requirements: []
|
|
52
|
+
rubygems_version: 3.6.9
|
|
53
|
+
specification_version: 4
|
|
54
|
+
summary: Cross-platform barcode generation library for Ruby (WASM version)
|
|
55
|
+
test_files: []
|