diff --git a/.vscode/launch.json b/.vscode/launch.json index c6672df1..e0ed7920 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -8,7 +8,7 @@ "name": "Flutter debug", "type": "dart", "request": "launch", - "program": "lib/main.dart", + "program": "lib/audio_data/audio_data.dart", "flutterMode": "debug", "cwd": "${workspaceFolder}/example" }, diff --git a/.vscode/tasks.json b/.vscode/tasks.json index ff106026..9ba06cf4 100755 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -9,7 +9,7 @@ }, { "label": "compile linux debug", - "command": "cd ${workspaceFolder}/example; flutter build linux -t lib/main.dart --debug", + "command": "cd ${workspaceFolder}/example; flutter build linux -t lib/test.dart --debug", "type": "shell" }, { @@ -29,7 +29,7 @@ }, { "label": "compile web wasm release", - "command": "cd ${workspaceFolder}/example; flutter run -d chrome --web-renderer canvaskit --web-browser-flag '--disable-web-security' -t lib/buffer_stream/websocket.dart --release", + "command": "cd ${workspaceFolder}/example; flutter run -d chrome --wasm --web-browser-flag '--disable-web-security' -t lib/audio_data/audio_data.dart --release", "type": "shell" }, { diff --git a/CHANGELOG.md b/CHANGELOG.md index 94563efe..447e06fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ### 3.0.0-pre.0 () -- fix: clicks and pops when changing waveform frequency #156 +- fix: clicks and pops when changing waveform frequency #156. +- added `Limiter` and `Compressor` filters (see `example/lib/filters/`). - added BufferStream #148. Now it's possible to add audio data and listen to them. It provides a customizable buffering length which automatycally pauses the playing handle if there is not enough data, for example when receiving audio data from the web. It also provides a callback that allows you to know when the buffering is started and stopped. The audio data can of of the following formats: - `s8` signed 8 bit - `s16le` signed 16 bit little endian @@ -9,6 +10,9 @@ - `opus` Opus codec compressed audio with Ogg container. Usefull for streaming from the Web (ie using OpenAI APIs). - fixed Web Worker initialization non fatal error that could occur on Web. - fixed sound distortion using single pitchShift filter and changing relative play speed #154. +- fixed the use of `LoadMode.disk` on the Web platform which in some cases caused the `allInstancesFinished` event to not be emitted. +- improved performance on Web, MacOS and iOS. +- get wave and FFT sample is now simpler and faster. - To avoid future incompatibilities when using other WASM compiled plugins, it is now necessary to add a new script to `index.html`: ``` diff --git a/README.md b/README.md index 49a9ffc7..322fba2c 100755 --- a/README.md +++ b/README.md @@ -121,7 +121,7 @@ For more simple examples, check out the [example/project](https://github.com/aln | Example | Description | |-----------------|-------------| |*lib/main.dart* |Very simple example where to start from. | -|*lib/audio_data/audio_data.dart* |Simple exmple to show how to use the `AudioData` to visualize audio. | +|*lib/audio_data/audio_data.dart* |Simple example to show how to use the `AudioData` to visualize audio. | |*lib/buffer_stream/generate.dart* |Example of how to generate PCM audio inside an `Isolate` and play them. | |*lib/buffer_stream/websocket.dart* |Shows how to use BufferStream with a websocket to get PCM and Opus audio data. | |*lib/filters/compressor.dart* |Shows the use of the compressor filter. | diff --git a/example/example.md b/example/example.md deleted file mode 100644 index d70e3c8d..00000000 --- a/example/example.md +++ /dev/null @@ -1,119 +0,0 @@ -```dart -import 'dart:async'; - -import 'package:file_picker/file_picker.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_soloud/flutter_soloud.dart'; - -void main() { - runApp(const MyApp()); -} - -class MyApp extends StatelessWidget { - const MyApp({super.key}); - @override - Widget build(BuildContext context) { - return const MaterialApp( - home: HelloFlutterSoLoud(), - ); - } -} - -/// Simple usecase of flutter_soloud plugin -class HelloFlutterSoLoud extends StatefulWidget { - const HelloFlutterSoLoud({super.key}); - - @override - State createState() => _HelloFlutterSoLoudState(); -} - -class _HelloFlutterSoLoudState extends State { - SoundProps? currentSound; - - @override - void dispose() { - SoLoud().stopIsolate(); - SoLoud().stopCapture(); - super.dispose(); - } - - @override - Widget build(BuildContext context) { - return Scaffold( - body: Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: [ - /// pick audio file - ElevatedButton( - onPressed: () async { - final paths = (await FilePicker.platform.pickFiles( - type: FileType.custom, - allowedExtensions: ['mp3', 'wav', 'ogg', 'flac'], - onFileLoading: print, - dialogTitle: 'Pick audio file', - )) - ?.files; - if (paths != null) { - unawaited(play(paths.first.path!)); - } - }, - child: const Text('pick audio'), - ), - Column( - children: [ - /// start the capture - ElevatedButton( - onPressed: () async { - final a = SoLoud().initCapture(); - final b = SoLoud().startCapture(); - if (mounted && - a == CaptureErrors.captureNoError && - b == CaptureErrors.captureNoError) { - setState(() {}); - } - }, - child: const Text('start mic'), - ), - /// at this point, look at [hello_flutter.dar] to see - /// how to read and manage frequencies or wave audio samples - ], - ), - ], - ), - ), - ); - } - - /// play file - Future play(String file) async { - /// Start audio engine if not already - if (!SoLoud().isIsolateRunning()) { - await SoLoud().startIsolate().then((value) { - if (value == PlayerErrors.noError) { - debugPrint('isolate started'); - } else { - debugPrint('isolate starting error: $value'); - return; - } - }); - } - - /// stop any previous sound loaded - if (currentSound != null) { - if (await SoLoud().disposeSound(currentSound!) != - PlayerErrors.noError) return; - } - - /// load the audio file - final newSound = await SoloudTools.loadFromFile(file); - if (newSound == null) return; - currentSound = newSound; - - /// play it - final playRet = await SoLoud().play(currentSound!); - if (playRet.error != PlayerErrors.noError) return; - currentSound = playRet.sound; - } -} -``` \ No newline at end of file diff --git a/example/lib/audio_data/audio_data.dart b/example/lib/audio_data/audio_data.dart index 8fa74b66..573a58a3 100644 --- a/example/lib/audio_data/audio_data.dart +++ b/example/lib/audio_data/audio_data.dart @@ -68,7 +68,9 @@ class _HelloFlutterSoLoudState extends State { @override void initState() { super.initState(); - SoLoud.instance.loadAsset('assets/audio/8_bit_mentality.mp3').then((value) { + SoLoud.instance + .loadAsset('assets/audio/8_bit_mentality.mp3', mode: LoadMode.disk) + .then((value) { currentSound = value; SoLoud.instance.play(currentSound!, looping: true, volume: 0.5); if (context.mounted) setState(() {}); diff --git a/example/lib/audio_data/data_widget.dart b/example/lib/audio_data/data_widget.dart index 680507eb..b0b0e8c9 100644 --- a/example/lib/audio_data/data_widget.dart +++ b/example/lib/audio_data/data_widget.dart @@ -16,9 +16,8 @@ class AudioDataWidgetState extends State /// Set [AudioData] to use a `linear` data kind. This is the way to get both /// wave and FFT data. - final AudioData audioData = AudioData( - GetSamplesKind.linear, - ); + final AudioData audioData = AudioData(GetSamplesKind.linear); + @override void initState() { super.initState(); @@ -87,14 +86,15 @@ class WavePainter extends CustomPainter { ..strokeWidth = barWidth * 0.8 ..color = Colors.yellowAccent; + final samples = audioData.getAudioData(); + + double waveHeight; + double fftHeight; + for (var i = 0; i < 256; i++) { - late final double waveHeight; - late final double fftHeight; try { - final double waveData; - final double fftData; - waveData = audioData.getLinearWave(SampleLinear(i)); - fftData = audioData.getLinearFft(SampleLinear(i)); + final fftData = samples[i]; + final waveData = samples[i + 256]; waveHeight = size.height * waveData * 0.5; fftHeight = size.height * fftData / 2; } on Exception { diff --git a/example/lib/filters/pitchshift.dart b/example/lib/filters/pitchshift.dart index 99670881..370f92c9 100644 --- a/example/lib/filters/pitchshift.dart +++ b/example/lib/filters/pitchshift.dart @@ -32,7 +32,7 @@ import 'package:logging/logging.dart'; /// Use the filter globally or attached to the sound. Filters for single sounds /// are not supported in the Web platform. -const bool useGlobalFilter = true; +const bool useGlobalFilter = false; void main() async { // The `flutter_soloud` package logs everything @@ -136,6 +136,7 @@ class _PitchShiftState extends State { Text('time stretching: ${ts.toStringAsFixed(2)}'), Expanded( child: Slider.adaptive( + min: 0.35, max: 5, value: ts, onChanged: (value) { diff --git a/example/tests/tests.dart b/example/tests/tests.dart index 7eab54cf..2ba5ce79 100644 --- a/example/tests/tests.dart +++ b/example/tests/tests.dart @@ -302,8 +302,10 @@ Future testAllInstancesFinished() async { final explosion = await SoLoud.instance.loadAsset('assets/audio/explosion.mp3'); - final song = - await SoLoud.instance.loadAsset('assets/audio/8_bit_mentality.mp3'); + final song = await SoLoud.instance.loadAsset( + 'assets/audio/8_bit_mentality.mp3', + mode: LoadMode.disk, + ); // Set up unloading. var explosionDisposed = false; diff --git a/lib/flutter_soloud.dart b/lib/flutter_soloud.dart index 0e648a6c..96f9f1be 100644 --- a/lib/flutter_soloud.dart +++ b/lib/flutter_soloud.dart @@ -3,7 +3,6 @@ library; export 'src/audio_source.dart'; export 'src/bindings/audio_data.dart'; -export 'src/bindings/audio_data_extensions.dart'; export 'src/enums.dart' hide PlayerErrors, PlayerStateNotification; export 'src/exceptions/exceptions.dart'; export 'src/filter_params.dart'; diff --git a/lib/src/bindings/audio_data.dart b/lib/src/bindings/audio_data.dart index ac730749..97a457cf 100644 --- a/lib/src/bindings/audio_data.dart +++ b/lib/src/bindings/audio_data.dart @@ -1,4 +1,4 @@ -import 'package:flutter_soloud/src/bindings/audio_data_extensions.dart'; +import 'package:flutter/foundation.dart'; import 'package:flutter_soloud/src/bindings/audio_data_ffi.dart' if (dart.library.js_interop) 'audio_data_web.dart'; import 'package:flutter_soloud/src/bindings/soloud_controller.dart'; @@ -9,24 +9,21 @@ import 'package:meta/meta.dart'; /// The way the audio data should be acquired. /// /// Every time [AudioData.updateSamples] is called it is possible to query the -/// acquired new audio data using [AudioData.getLinearFft], -/// [AudioData.getLinearWave], [AudioData.getTexture] or [AudioData.getWave]. +/// acquired new audio data using [AudioData.getAudioData]. The latter method +/// returns a [Float32List] containing the audio data in the way specified by +/// [GetSamplesKind] enum. enum GetSamplesKind { + /// Get the 256 float of wave audio data. + wave, + /// Get data in a linear manner: the first 256 floats are audio FFI values, /// the other 256 are audio wave samples. - /// To get the audio data use [AudioData.getLinearFft] or - /// [AudioData.getLinearWave]. linear, /// Get data in a 2D way. The resulting data will be a matrix of 256 /// [linear] rows. Each time the [AudioData.updateSamples] method is called, /// the last row is discarded and the new one will be the first. - /// To get the audio data use [AudioData.getTexture]. texture, - - /// Get the 256 float of wave audio data. - /// To get the audio data use [AudioData.getWave]. - wave, } /// Class to manage audio samples. @@ -35,13 +32,13 @@ enum GetSamplesKind { /// player. You can achieve this by calling /// `SoLoud.instance.setVisualizationEnabled(true);`. /// -/// Audio samples can be get from the player or from the microphone, and -/// in a texture matrix or a linear array way. +/// Audio samples can be get from the player in three ways. See [GetSamplesKind] +/// for more information. /// /// IMPORTANT: remember to call [dispose] method when there is no more need /// to acquire audio. /// -/// After calling [updateSamples] it's possible to call the proper getter +/// After calling [updateSamples] it's possible to call [AudioData.getAudioData] /// to have back the audio samples. For example, using a "Ticker" /// in a Widget that needs the audio data to be displayed: /// ```dart @@ -54,7 +51,7 @@ enum GetSamplesKind { /// @override /// void initState() { /// super.initState(); -/// audioData = AudioData(GetSamplesFrom.player, GetSamplesKind.linear); +/// audioData = AudioData(GetSamplesKind.linear); /// ticker = createTicker(_tick); /// ticker.start(); /// } @@ -71,8 +68,8 @@ enum GetSamplesKind { /// try { /// audioData.updateSamples(); /// setState(() {}); -/// } on Exception { -/// debugPrint('Player not initialized or visualization is not enabled!'); +/// } on Exception catch (e) { +/// debugPrint('$e'); /// } /// } /// } @@ -80,25 +77,25 @@ enum GetSamplesKind { /// Then in your "build" method, you can read the audio data: /// ```dart /// try { -/// /// Use [getTexture] if you have inizialized [AudioData] -/// /// with [GetSamplesKind.texture] -/// ffiData = audioData.getLinearFft(i); -/// waveData = audioData.getLinearWave(i); -/// } on Exception { -/// ffiData = 0; -/// waveData = 0; +/// /// Since we are used [GetSamplesKind.linear], `samples` will contain +/// /// 512 floats: the first 256 are FFT values, the other 256 are wave values +/// final samples = audioData.getAudioData(); +/// Float32List ffiData = samples.sublist(0, 256); +/// Float32List waveData = samples.sublist(256, 512); +/// /// Do something with `ffiData` and `waveData` +/// } on Exception catch (e) { +/// debugPrint('$e'); /// } /// ``` /// /// To smooth FFT values use [SoLoud.setFftSmoothing]. -@experimental class AudioData { /// Initialize the way the audio data should be acquired. AudioData( this._getSamplesKind, ) : ctrl = AudioDataCtrl() { _init(); - ctrl.allocSamples(); + ctrl.allocSamples(this); } void _init() { @@ -127,8 +124,8 @@ class AudioData { /// do [GetSamplesKind] checks on every calls. late void Function(AudioData) _updateCallback; - /// Update the content of samples memory to be get with [getWave], - /// [getLinearFft], [getLinearWave] or [getTexture]. + /// Update the content of samples memory to be read later + /// using [getAudioData]. /// /// Throws [SoLoudNotInitializedException] if the engine is not initialized. /// Throws [SoLoudVisualizationNotEnabledException] if the visualization @@ -155,65 +152,23 @@ class AudioData { ctrl.dispose(_getSamplesKind); } - /// Get the wave data at offset [offset]. - /// - /// Use this method to get data when using [GetSamplesKind.wave]. - /// The data is composed of 256 floats. - double getWave(SampleWave offset) { - if (_getSamplesKind != GetSamplesKind.wave) { - return 0; - } - - if (!SoLoudController().soLoudFFI.getVisualizationEnabled()) { - throw const SoLoudVisualizationNotEnabledException(); - } - return ctrl.getWave(offset); - } - - /// Get the FFT audio data at offset [offset]. - /// - /// Use this method to get FFT data when using [GetSamplesKind.linear]. - /// The data is composed of 256 floats. - double getLinearFft(SampleLinear offset) { - if (_getSamplesKind != GetSamplesKind.linear) { - return 0; - } - - if (!SoLoudController().soLoudFFI.getVisualizationEnabled()) { - throw const SoLoudVisualizationNotEnabledException(); - } - return ctrl.getLinearFft(offset); - } - - /// Get the wave audio data at offset [offset]. + /// Get audio data data. /// - /// Use this method to get wave data when using [GetSamplesKind.linear]. - /// The data is composed of 256 floats. - double getLinearWave(SampleLinear offset) { - if (_getSamplesKind != GetSamplesKind.linear) { - return 0; - } - + /// Depending on the [GetSamplesKind] used to initialize [AudioData], + /// the returned data will be a [Float32List]. See [GetSamplesKind] for + /// more information. + Float32List getAudioData() { if (!SoLoudController().soLoudFFI.getVisualizationEnabled()) { throw const SoLoudVisualizationNotEnabledException(); } - return ctrl.getLinearWave(offset); - } - /// Get the audio data at row [row] and column [column]. - /// Use this method to get data when using [GetSamplesKind.texture]. - /// This matrix represents 256 rows. Each rows is represented by 256 floats - /// of FFT data and 256 floats of wave data. - /// Each time the [AudioData.updateSamples] method is called, - /// the last row is discarded and the new one will be the first. - double getTexture(SampleRow row, SampleColumn column) { - if (_getSamplesKind != GetSamplesKind.texture) { - return 0; - } - - if (!SoLoudController().soLoudFFI.getVisualizationEnabled()) { - throw const SoLoudVisualizationNotEnabledException(); + switch (_getSamplesKind) { + case GetSamplesKind.wave: + return ctrl.getWave(); + case GetSamplesKind.linear: + return ctrl.getFftAndWave(); + case GetSamplesKind.texture: + return ctrl.get2DTexture(); } - return ctrl.getTexture(row, column); } } diff --git a/lib/src/bindings/audio_data_extensions.dart b/lib/src/bindings/audio_data_extensions.dart deleted file mode 100644 index c30a835a..00000000 --- a/lib/src/bindings/audio_data_extensions.dart +++ /dev/null @@ -1,110 +0,0 @@ -/// The extension type for the `AudioData.get2D` method which accepts -/// the [value] value in 0~255 range. -extension type SampleRow._(int value) { - /// Constructs a valid row with [value]. - SampleRow(this.value) - : assert(value >= 0 && value <= 255, 'row must in 0~255 included range.'); - - /// Operator "*", clamp the resulting value. - SampleRow operator *(int other) { - final result = (other * value).clamp(0, 255); - return SampleRow(result); - } - - /// Operator "+", clamp the resulting value. - SampleRow operator +(int other) { - final result = (other + value).clamp(0, 255); - return SampleRow(result); - } - - /// Operator "-", clamp the resulting value. - SampleRow operator -(int other) { - final result = (other - value).clamp(0, 255); - return SampleRow(result); - } -} - -/// The extension type for the `AudioData.get2D` method which accepts -/// the [value] value in 0~511 range. -extension type SampleColumn._(int value) { - /// Constructs a valid column with [value]. - SampleColumn(this.value) - : assert(value >= 0 && value <= 511, 'row must in 0~511 included range.'); - - /// Operator "*", clamp the resulting value. - SampleColumn operator *(int other) { - final result = (other * value).clamp(0, 511); - return SampleColumn(result); - } - - /// Operator "+", clamp the resulting value. - SampleColumn operator +(int other) { - final result = (other + value).clamp(0, 511); - return SampleColumn(result); - } - - /// Operator "-", clamp the resulting value. - SampleColumn operator -(int other) { - final result = (other - value).clamp(0, 511); - return SampleColumn(result); - } -} - -/// The extension type for the `AudioData.getLinearFft` and -/// `AudioData.getLinearWave` method which accept -/// the [value] value in 0~255 range. -extension type SampleLinear._(int value) { - /// Constructs a valid offset with [value]. - SampleLinear(this.value) - : assert( - value >= 0 && value <= 255, - 'offset must in 0~255 included range.', - ); - - /// Operator "*", clamp the resulting value. - SampleLinear operator *(int other) { - final result = (other * value).clamp(0, 255); - return SampleLinear(result); - } - - /// Operator "+", clamp the resulting value. - SampleLinear operator +(int other) { - final result = (other + value).clamp(0, 255); - return SampleLinear(result); - } - - /// Operator "-", clamp the resulting value. - SampleLinear operator -(int other) { - final result = (other - value).clamp(0, 255); - return SampleLinear(result); - } -} - -/// The extension type for the `AudioData.getWave` -/// method which accepts the [value] value in 0~255 range. -extension type SampleWave._(int value) { - /// Constructs a valid offset with [value]. - SampleWave(this.value) - : assert( - value >= 0 && value <= 255, - 'offset must in 0~255 included range.', - ); - - /// Operator "*", clamp the resulting value. - SampleWave operator *(int other) { - final result = (other * value).clamp(0, 255); - return SampleWave(result); - } - - /// Operator "+", clamp the resulting value. - SampleWave operator +(int other) { - final result = (other + value).clamp(0, 255); - return SampleWave(result); - } - - /// Operator "-", clamp the resulting value. - SampleWave operator -(int other) { - final result = (other - value).clamp(0, 255); - return SampleWave(result); - } -} diff --git a/lib/src/bindings/audio_data_ffi.dart b/lib/src/bindings/audio_data_ffi.dart index fd1c8741..f37769c8 100644 --- a/lib/src/bindings/audio_data_ffi.dart +++ b/lib/src/bindings/audio_data_ffi.dart @@ -3,8 +3,8 @@ import 'dart:ffi'; import 'package:ffi/ffi.dart' show calloc; +import 'package:flutter/foundation.dart'; import 'package:flutter_soloud/src/bindings/audio_data.dart'; -import 'package:flutter_soloud/src/bindings/audio_data_extensions.dart'; import 'package:flutter_soloud/src/bindings/soloud_controller.dart'; import 'package:flutter_soloud/src/enums.dart'; @@ -25,13 +25,13 @@ class AudioDataCtrl { final void Function(AudioData) waveCallback = SoLoudController().soLoudFFI.getWave; - final PlayerErrors Function(AudioData) texture2DCallback = - SoLoudController().soLoudFFI.getAudioTexture2D; - final void Function(AudioData) textureCallback = SoLoudController().soLoudFFI.getAudioTexture; - void allocSamples() { + final PlayerErrors Function(AudioData) texture2DCallback = + SoLoudController().soLoudFFI.getAudioTexture2D; + + void allocSamples(AudioData audioData) { samples2D = calloc(); samples1D = calloc(512 * 4); samplesWave = calloc(); @@ -45,27 +45,33 @@ class AudioDataCtrl { if (samples2D != nullptr) calloc.free(samples2D); } - double getWave(SampleWave offset) { + Float32List getWave() { final val = Pointer.fromAddress(samplesWave.value.address); - if (val == nullptr) return 0; - return val[offset.value]; - } - - double getLinearFft(SampleLinear offset) { - return samples1D[offset.value]; + if (val == nullptr) return Float32List(0); + return Float32List.view( + val.cast().asTypedList(256 * 4).buffer, + 0, + 256, + ); } - double getLinearWave(SampleLinear offset) { - return samples1D[offset.value + 256]; + Float32List getFftAndWave() { + final val = Pointer.fromAddress(samples1D.address); + if (val == nullptr) return Float32List(0); + return Float32List.view( + val.cast().asTypedList(512 * 4).buffer, + 0, + 512, + ); } - double getTexture( - SampleRow row, - SampleColumn column, - ) { - const stride = 512; - final val = samples2D.value; - if (val == nullptr) return 0; - return val[stride * row.value + column.value]; + Float32List get2DTexture() { + final val = Pointer.fromAddress(samples1D.address); + if (val == nullptr) return Float32List(0); + return Float32List.view( + val.cast().asTypedList(512 * 256 * 4).buffer, + 0, + 512 * 256, + ); } } diff --git a/lib/src/bindings/audio_data_web.dart b/lib/src/bindings/audio_data_web.dart index 0e8fe3f9..ca9f719a 100644 --- a/lib/src/bindings/audio_data_web.dart +++ b/lib/src/bindings/audio_data_web.dart @@ -1,7 +1,9 @@ // ignore_for_file: public_member_api_docs +import 'dart:js_interop'; +import 'dart:typed_data'; + import 'package:flutter_soloud/src/bindings/audio_data.dart'; -import 'package:flutter_soloud/src/bindings/audio_data_extensions.dart'; import 'package:flutter_soloud/src/bindings/js_extension.dart'; import 'package:flutter_soloud/src/bindings/soloud_controller.dart'; @@ -9,6 +11,8 @@ class AudioDataCtrl { late final int _samplesPtr; int get samplesPtr => _samplesPtr; + late int _samplePtrPtr; + final void Function(AudioData) waveCallback = SoLoudController().soLoudFFI.getWave; @@ -18,11 +22,23 @@ class AudioDataCtrl { final void Function(AudioData) textureCallback = SoLoudController().soLoudFFI.getAudioTexture; - void allocSamples() { + void allocSamples(AudioData audioData) { /// This is the max amount of memory [_samplePtr] may need. This number - /// is needed when acquiring data with [getTexture] which is a matrix of + /// is needed when acquiring data with [get2DTexture] which is a matrix of /// 256 rows and 512 columns of floats (4 bytes each). _samplesPtr = wasmMalloc(512 * 256 * 4); + + /// Initialize the pointer to the pointer of the samples. This can be done + /// only after calling once the get* method. + if (audioData.getSamplesKind == GetSamplesKind.wave) { + SoLoudController().soLoudFFI.getWave(audioData); + _samplePtrPtr = wasmGetI32Value(_samplesPtr, '*'); + } + + if (audioData.getSamplesKind == GetSamplesKind.texture) { + SoLoudController().soLoudFFI.getAudioTexture2D(audioData); + _samplePtrPtr = wasmGetI32Value(_samplesPtr, '*'); + } } void dispose( @@ -33,29 +49,19 @@ class AudioDataCtrl { } } - double getWave(SampleWave offset) { - final samplePtr = wasmGetI32Value(_samplesPtr, '*'); - final data = wasmGetF32Value(samplePtr + offset.value * 4, 'float'); - return data; - } - - double getLinearFft(SampleLinear offset) { - final data = wasmGetF32Value(_samplesPtr + offset.value * 4, 'float'); - return data; + Float32List getWave() { + // final samplesPtrPtr = wasmGetI32Value(_samplesPtr, '*'); + // Convert the JSArrayBuffer to a Dart Float32List + return wasmHeapU8Buffer.toDart.asFloat32List(_samplePtrPtr, 256); } - double getLinearWave(SampleLinear offset) { - final data = - wasmGetF32Value(_samplesPtr + offset.value * 4 + 256 * 4, 'float'); - return data; + Float32List getFftAndWave() { + // Convert the JSArrayBuffer to a Dart Float32List + return wasmHeapU8Buffer.toDart.asFloat32List(_samplesPtr, 512); } - double getTexture( - SampleRow row, - SampleColumn column, - ) { - // final offset = samplesPtr + ((row.value * 256 + column.value) * 4); - // final data = wasmGetF32Value(offset, 'float'); - return wasmGetTextureValue(row.value, column.value); + Float32List get2DTexture() { + // Convert the JSArrayBuffer to a Dart Float32List + return wasmHeapU8Buffer.toDart.asFloat32List(_samplePtrPtr, 512 * 256); } } diff --git a/lib/src/bindings/bindings_player_web.dart b/lib/src/bindings/bindings_player_web.dart index b2ee2bbf..93fc8341 100644 --- a/lib/src/bindings/bindings_player_web.dart +++ b/lib/src/bindings/bindings_player_web.dart @@ -63,6 +63,13 @@ class FlutterSoLoudWeb extends FlutterSoLoud { ); voiceEndedEventController.add(decodedMap['value'] as int); } + case Map(): + if (event['message'] == 'voiceEndedCallback') { + _log.finest( + () => 'VOICE ENDED EVENT handle: ${event['value']}\n', + ); + voiceEndedEventController.add(event['value'] as int); + } } }, ); @@ -403,7 +410,11 @@ class FlutterSoLoudWeb extends FlutterSoLoud { @override void disposeSound(SoundHash soundHash) { - return wasmDisposeSound(soundHash.hash); + try { + wasmDisposeSound(soundHash.hash); + } catch (e) { + _log.warning('disposeSound() error: $e'); + } } @override diff --git a/lib/src/bindings/js_extension.dart b/lib/src/bindings/js_extension.dart index 51745d8a..3e0a758f 100644 --- a/lib/src/bindings/js_extension.dart +++ b/lib/src/bindings/js_extension.dart @@ -18,6 +18,12 @@ external int wasmGetI32Value(int ptrAddress, String type); @JS('Module_soloud.getValue') external double wasmGetF32Value(int ptrAddress, String type); +@JS('Module_soloud.HEAPU8.buffer') +external JSArrayBuffer get wasmHeapU8Buffer; + +@JS('Module_soloud.HEAPF32') +external JSFloat32Array get wasmHeapF32Buffer; + @JS('Module_soloud.UTF8ToString') external String wasmUtf8ToString(int ptrAddress); diff --git a/lib/src/soloud.dart b/lib/src/soloud.dart index 7ecf6284..a25e149b 100644 --- a/lib/src/soloud.dart +++ b/lib/src/soloud.dart @@ -605,7 +605,10 @@ interface class SoLoud { } /// Load a new sound to be played once or multiple times later, from - /// a buffer. + /// a buffer. While [loadFile] decompresses the audio file and loads it + /// into memory, [loadMem] loads the audio data directly from the + /// compressed file. The compressed data could be read from memory + /// [LoadMode.memory] or from disk [LoadMode.disk]. /// /// Provide a [path] of the file to be used as a reference to distinguis /// this [buffer]. @@ -621,8 +624,9 @@ interface class SoLoud { /// from the given file when needed (more CPU, less memory allocated). /// See the [seek] note problem when using [LoadMode.disk]. /// The default is [LoadMode.memory]. - /// IMPORTANT: [LoadMode.memory] used the on web platform could cause UI - /// freeze problems. + /// IMPORTANT: on Web [LoadMode.disk] is is overridden to [LoadMode.memory]. + /// This could cause UI freeze problems for long duration audio files so + /// it is recommended to load them when the app starts. /// /// This is the only choice to load a file when using this plugin on the web /// because browsers cannot read directly files from the loal storage. diff --git a/src/active_sound.h b/src/active_sound.h index 8bb3f13f..026e9b94 100644 --- a/src/active_sound.h +++ b/src/active_sound.h @@ -1,7 +1,7 @@ #ifndef ACTIVE_SOUND_H #define ACTIVE_SOUND_H -#include "filters/filters.h" +#include "filters/filters_fwd.h" #include "enums.h" #include "soloud.h" @@ -9,7 +9,6 @@ #include #include -class Filters; #define MAX_DOUBLE 1.7976931348623157e+308 struct ActiveHandle diff --git a/src/active_sound_fwd.h b/src/active_sound_fwd.h new file mode 100644 index 00000000..3dd3c537 --- /dev/null +++ b/src/active_sound_fwd.h @@ -0,0 +1,6 @@ +#ifndef ACTIVE_SOUND_FWD_H +#define ACTIVE_SOUND_FWD_H + +struct ActiveSound; + +#endif // ACTIVE_SOUND_FWD_H diff --git a/src/bindings.cpp b/src/bindings.cpp index 16e94258..5a50ac9f 100644 --- a/src/bindings.cpp +++ b/src/bindings.cpp @@ -56,7 +56,7 @@ extern "C" { // Create a new Worker from the URI var workerUri = "assets/packages/flutter_soloud/web/worker.dart.js"; - console.log("EM_ASM creating web worker!"); + console.log("EM_ASM creating Web Worker!"); Module_soloud.wasmWorker = new Worker(workerUri); } else @@ -72,13 +72,13 @@ extern "C" EM_ASM({ if (Module_soloud.wasmWorker) { + // Send the message + Module_soloud.wasmWorker.postMessage({ + message : UTF8ToString($0), + value : $1, + }); console.log("EM_ASM posting message " + UTF8ToString($0) + " with value " + $1); - // Send the message - Module_soloud.wasmWorker.postMessage(JSON.stringify({ - "message" : UTF8ToString($0), - "value" : $1 - })); } else { @@ -98,6 +98,8 @@ extern "C" /// and comes from the audio thread (so on the web, from a different web worker). FFI_PLUGIN_EXPORT void voiceEndedCallback(unsigned int *handle) { + player->removeHandle(*handle); + #ifdef __EMSCRIPTEN__ // Calling JavaScript from C/C++ // https://emscripten.org/docs/porting/connecting_cpp_and_javascript/Interacting-with-code.html#interacting-with-code-call-javascript-from-native @@ -105,9 +107,9 @@ extern "C" sendToWorker("voiceEndedCallback", *handle); #endif + // The `dartVoiceEndedCallback` is not set on Web. if (dartVoiceEndedCallback == nullptr) return; - player->removeHandle(*handle); // [n] pointer must be deleted on Dart. unsigned int *n = (unsigned int *)malloc(sizeof(unsigned int *)); *n = *handle; @@ -698,7 +700,15 @@ extern "C" return; std::lock_guard guard_init(init_deinit_mutex); std::lock_guard guard_load(loadMutex); - player.get()->disposeSound(soundHash); + try { + player.get()->disposeSound(soundHash); + } + catch (const std::exception& e) { + printf("Error in disposeSound: %s\n", e.what()); + } + catch (...) { + printf("Unknown error in disposeSound\n"); + } } /// Dispose all sounds already loaded @@ -1142,7 +1152,7 @@ extern "C" /// /// [handle] the group handle to check. /// Return true if [handle] is a group handle. - FFI_PLUGIN_EXPORT bool isVoiceGroup(unsigned int handle) + FFI_PLUGIN_EXPORT int isVoiceGroup(unsigned int handle) { if (player.get() == nullptr || !player.get()->isInited()) return false; @@ -1155,7 +1165,7 @@ extern "C" /// /// [handle] group handle to check. /// Return true if the group handle doesn't have any voices. - FFI_PLUGIN_EXPORT bool isVoiceGroupEmpty(unsigned int handle) + FFI_PLUGIN_EXPORT int isVoiceGroupEmpty(unsigned int handle) { if (player.get() == nullptr || !player.get()->isInited()) return false; diff --git a/src/filters/filters.cpp b/src/filters/filters.cpp index f075b10c..4dba346b 100644 --- a/src/filters/filters.cpp +++ b/src/filters/filters.cpp @@ -1,4 +1,5 @@ #include "filters.h" +#include "../active_sound.h" // Add this include for complete type definition #include #include @@ -23,8 +24,6 @@ Filters::Filters(SoLoud::Soloud *soloud, ActiveSound *sound) : mSoloud(soloud), mSound(sound) {} -Filters::~Filters() {} - int Filters::isFilterActive(FilterType filter) { for (int i = 0; i < filters.size(); i++) @@ -177,44 +176,44 @@ PlayerErrors Filters::addFilter(FilterType filterType) if (isFilterActive(filterType) >= 0) return filterAlreadyAdded; - std::unique_ptr newFilter; + SoLoud::Filter* newFilter = nullptr; switch (filterType) { case BiquadResonantFilter: - newFilter = std::make_unique(); + newFilter = new SoLoud::BiquadResonantFilter(); break; case EqFilter: - newFilter = std::make_unique(); + newFilter = new SoLoud::EqFilter(); break; case EchoFilter: - newFilter = std::make_unique(); + newFilter = new SoLoud::EchoFilter(); break; case LofiFilter: - newFilter = std::make_unique(); + newFilter = new SoLoud::LofiFilter(); break; case FlangerFilter: - newFilter = std::make_unique(); + newFilter = new SoLoud::FlangerFilter(); break; case BassboostFilter: - newFilter = std::make_unique(); + newFilter = new SoLoud::BassboostFilter(); break; case WaveShaperFilter: - newFilter = std::make_unique(); + newFilter = new SoLoud::WaveShaperFilter(); break; case RobotizeFilter: - newFilter = std::make_unique(); + newFilter = new SoLoud::RobotizeFilter(); break; case FreeverbFilter: - newFilter = std::make_unique(); + newFilter = new SoLoud::FreeverbFilter(); break; case PitchShiftFilter: - newFilter = std::make_unique(); + newFilter = new PitchShift(); break; case LimiterFilter: - newFilter = std::make_unique(); + newFilter = new Limiter(); break; case CompressorFilter: - newFilter = std::make_unique(mSoloud->mSamplerate); + newFilter = new Compressor(mSoloud->mSamplerate); break; default: return filterNotFound; @@ -222,14 +221,15 @@ PlayerErrors Filters::addFilter(FilterType filterType) if (mSound == nullptr) { - mSoloud->setGlobalFilter(filtersSize, newFilter.get()); + mSoloud->setGlobalFilter(filtersSize, newFilter); } else { - mSound->sound.get()->setFilter(filtersSize, newFilter.get()); + mSound->sound.get()->setFilter(filtersSize, newFilter); } - std::unique_ptr nfo = std::make_unique(filterType, std::move(newFilter)); + // Create FilterObject taking ownership of raw pointer + std::unique_ptr nfo = std::make_unique(filterType, newFilter); filters.push_back(std::move(nfo)); return noError; diff --git a/src/filters/filters.h b/src/filters/filters.h index 87ffb372..92f4295f 100644 --- a/src/filters/filters.h +++ b/src/filters/filters.h @@ -1,7 +1,9 @@ #ifndef FILTERS_H #define FILTERS_H -#include "../active_sound.h" +#include "../active_sound_fwd.h" +#include "filters_fwd.h" +#include "enums.h" #include "soloud.h" #include "soloud_filter.h" @@ -10,15 +12,13 @@ #include #include -struct ActiveSound; - struct FilterObject { FilterType type; std::unique_ptr filter; - FilterObject(FilterType t, std::unique_ptr f) - : type(t), filter(std::move(f)) {} + FilterObject(FilterType t, SoLoud::Filter* f) + : type(t), filter(f) {} bool operator==(FilterType const &i) { @@ -26,15 +26,15 @@ struct FilterObject } }; -/// Class to manage global filters. +/// Class to manage filters. class Filters { - /// Setting the global filter to NULL will clear the global filter. + /// Setting the filter to NULL will clear the filter. /// The default maximum number of global filters active is 4, but this /// can be changed in a global constant in soloud.h (and rebuilding SoLoud). public: Filters(SoLoud::Soloud *soloud, ActiveSound *sound); - ~Filters(); + ~Filters() {} int isFilterActive(FilterType filter); @@ -67,7 +67,7 @@ class Filters SoLoud::Soloud *mSoloud; /// The sound to manage filters for. If null the filters are managed globally. - ActiveSound *mSound; + const ActiveSound *mSound; std::vector> filters; }; diff --git a/src/filters/filters_fwd.h b/src/filters/filters_fwd.h new file mode 100644 index 00000000..55732874 --- /dev/null +++ b/src/filters/filters_fwd.h @@ -0,0 +1,9 @@ +#ifndef FILTERS_FWD_H +#define FILTERS_FWD_H + +#include "enums.h" + +class Filters; +struct FilterObject; + +#endif // FILTERS_FWD_H diff --git a/src/player.cpp b/src/player.cpp index 77c4cdb8..b2c61963 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -16,6 +16,12 @@ #include #endif +#ifdef __EMSCRIPTEN__ +#define __WEB__ 1 +#else +#define __WEB__ 0 +#endif + Player::Player() : mInited(false), mFilters(&soloud, nullptr) {} Player::~Player() @@ -222,7 +228,7 @@ PlayerErrors Player::loadFile( *hash = 0; unsigned int newHash = (int32_t)std::hash{}(completeFileName) & 0x7fffffff; - /// check if the sound has been already loaded + /// check if the sound has already been loaded auto const s = findByHash(newHash); if (s != nullptr) @@ -231,23 +237,24 @@ PlayerErrors Player::loadFile( return fileAlreadyLoaded; } - auto sound = std::make_unique(); - - sound->completeFileName = std::string(completeFileName); - sound->soundHash = newHash; + std::unique_ptr newSound = std::make_unique(); + newSound.get()->completeFileName = std::string(completeFileName); + *hash = newHash; + newSound.get()->soundHash = newHash; SoLoud::result result; - if (loadIntoMem) + // This function is never called when running on the Web, but [__WEB__] is checked for consistency with [loadMem]. + if (loadIntoMem || __WEB__) { - sound->sound = std::make_unique(); - sound->soundType = TYPE_WAV; - result = static_cast(sound->sound.get())->load(completeFileName.c_str()); + newSound.get()->sound = std::make_unique(); + newSound.get()->soundType = TYPE_WAV; + result = static_cast(newSound.get()->sound.get())->load(completeFileName.c_str()); } else { - sound->sound = std::make_unique(); - sound->soundType = TYPE_WAVSTREAM; - result = static_cast(sound->sound.get())->load(completeFileName.c_str()); + newSound.get()->sound = std::make_unique(); + newSound.get()->soundType = TYPE_WAVSTREAM; + result = static_cast(newSound.get()->sound.get())->load(completeFileName.c_str()); } if (result != SoLoud::SO_NO_ERROR) @@ -257,8 +264,8 @@ PlayerErrors Player::loadFile( else { *hash = newHash; - sound->filters = std::make_unique(&soloud, sound.get()); - sounds.push_back(std::move(sound)); + newSound.get()->filters = std::make_unique(&soloud, newSound.get()); + sounds.push_back(std::move(newSound)); } return (PlayerErrors)result; @@ -277,7 +284,7 @@ PlayerErrors Player::loadMem( hash = 0; unsigned int newHash = (int32_t)std::hash{}(uniqueName) & 0x7fffffff; - /// check if the sound has been already loaded + /// check if the sound has already been loaded auto const s = findByHash(newHash); if (s != nullptr) @@ -286,12 +293,12 @@ PlayerErrors Player::loadMem( return fileAlreadyLoaded; } - std::unique_ptr newSound = std::make_unique(); + auto newSound = std::make_unique(); newSound.get()->completeFileName = std::string(uniqueName); hash = newHash; newSound.get()->soundHash = newHash; SoLoud::result result; - if (loadIntoMem) + if (loadIntoMem || __WEB__) { newSound.get()->sound = std::make_unique(); newSound.get()->soundType = TYPE_WAV; @@ -329,7 +336,7 @@ PlayerErrors Player::setBufferStream( hash = dist(g); - std::unique_ptr newSound = std::make_unique(); + auto newSound = std::make_unique(); newSound.get()->completeFileName = ""; newSound.get()->soundHash = hash; @@ -526,15 +533,12 @@ void Player::stop(unsigned int handle) void Player::removeHandle(unsigned int handle) { - const std::lock_guard guard(remove_handle_mutex); - // for (auto &sound : sounds) - // sound->handle.erase(std::remove_if( - // sound->handle.begin(), sound->handle.end(), - // [handle](SoLoud::handle &f) - // { return f == handle; })); bool e = true; - for (int i = 0; i < sounds.size(); ++i) - for (int n = 0; n < sounds[i]->handle.size(); ++n) + int i = 0; + while (sounds.size() > i && e) + { + int n = 0; + while (n < sounds[i]->handle.size() && e) { if (sounds[i]->handle[n].handle == handle) { @@ -542,29 +546,48 @@ void Player::removeHandle(unsigned int handle) e = false; break; } - if (e) - break; + ++n; } + ++i; + } } -void Player::disposeSound(unsigned int soundHash) -{ - ActiveSound *sound = findByHash(soundHash); +void Player::disposeSound(unsigned int soundHash) { + if (sounds.empty()) { + return; + } - if (sound == nullptr) - return; + auto it = std::find_if(sounds.begin(), sounds.end(), + [soundHash](const std::unique_ptr& sound) { + return sound->soundHash == soundHash; + }); - sound->sound.get()->stop(); - // remove the sound from the list - sounds.erase(std::remove_if(sounds.begin(), sounds.end(), - [soundHash](std::unique_ptr &f) - { return f.get()->soundHash == soundHash; })); + if (it != sounds.end()) + { + // Free filters + if (it->get()->filters) { + Filters *f = it->get()->filters.release(); + if (f != nullptr) { + // TODO: deleting "f" when running on Web will crash with segmentation fault. + // This could be a bug in WebAssembly I can't figure out. Even if I don't delete + // there shouldn't be a memory leak as the filters are destroyed with the sound. + // This beahviour can be tested by running "testAllInstancesFinished" in tests.dart. + // delete f; + } + it->get()->filters.reset(); + } + + sounds.erase(it); + } } void Player::disposeAllSound() { soloud.stopAll(); - sounds.clear(); + while (sounds.size() > 0) + { + disposeSound(sounds[0]->soundHash); + } } bool Player::getLooping(unsigned int handle) diff --git a/web/compile_wasm.sh b/web/compile_wasm.sh index 5bc7a54f..85658df1 100755 --- a/web/compile_wasm.sh +++ b/web/compile_wasm.sh @@ -65,7 +65,7 @@ SOURCES=( ../src/audiobuffer/*.cpp ) - # Now compile everything together +# Now compile everything together em++ -O3 \ -I ../src/soloud/include \ -I ../src/soloud/src \ @@ -79,11 +79,12 @@ em++ -O3 \ "$OGG_DIR/src/.libs/libogg.a" \ -D WITH_MINIAUDIO \ -msimd128 -msse3 \ + -std=c++17 \ -s "EXPORTED_RUNTIME_METHODS=['ccall','cwrap','setValue','getValue']" \ -s "EXPORTED_FUNCTIONS=['_free', '_malloc', '_memcpy', '_memset']" \ -s NO_EXIT_RUNTIME=1 \ -s SAFE_HEAP=1 \ - -s STACK_SIZE=5242880 \ + -s STACK_SIZE=4194304 \ -s ALLOW_MEMORY_GROWTH=1 \ -s INITIAL_MEMORY=67108864 \ -s MAXIMUM_MEMORY=2147483648 \ @@ -91,5 +92,5 @@ em++ -O3 \ -s EXPORT_NAME="'Module_soloud'" \ -o ../web/libflutter_soloud_plugin.js - echo - echo "Build completed successfully" +echo +echo "Build completed successfully" diff --git a/web/libflutter_soloud_plugin.js b/web/libflutter_soloud_plugin.js index 23a0c905..f1b28833 100644 --- a/web/libflutter_soloud_plugin.js +++ b/web/libflutter_soloud_plugin.js @@ -6,7 +6,7 @@ var Module_soloud = (() => { function(moduleArg = {}) { var moduleRtn; -var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope!="undefined";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&process.type!="renderer";if(ENVIRONMENT_IS_NODE){}var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);var ret=fs.readFileSync(filename);return ret};readAsync=(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return new Promise((resolve,reject)=>{fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)reject(err);else resolve(binary?data.buffer:data)})})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}return fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))})}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];var wasmBinary=Module["wasmBinary"];function getSafeHeapType(bytes,isFloat){switch(bytes){case 1:return"i8";case 2:return"i16";case 4:return isFloat?"float":"i32";case 8:return isFloat?"double":"i64";default:abort(`getSafeHeapType() invalid bytes=${bytes}`)}}function SAFE_HEAP_STORE(dest,value,bytes,isFloat){if(dest<=0)abort(`segmentation fault storing ${bytes} bytes to address ${dest}`);if(dest%bytes!==0)abort(`alignment error storing to address ${dest}, which was expected to be aligned to a multiple of ${bytes}`);if(runtimeInitialized){var brk=_sbrk(0);if(dest+bytes>brk)abort(`segmentation fault, exceeded the top of the available dynamic heap when storing ${bytes} bytes to address ${dest}. DYNAMICTOP=${brk}`);if(brk<_emscripten_stack_get_base())abort(`brk >= _emscripten_stack_get_base() (brk=${brk}, _emscripten_stack_get_base()=${_emscripten_stack_get_base()})`);if(brk>wasmMemory.buffer.byteLength)abort(`brk <= wasmMemory.buffer.byteLength (brk=${brk}, wasmMemory.buffer.byteLength=${wasmMemory.buffer.byteLength})`)}setValue_safe(dest,value,getSafeHeapType(bytes,isFloat));return value}function SAFE_HEAP_STORE_D(dest,value,bytes){return SAFE_HEAP_STORE(dest,value,bytes,true)}function SAFE_HEAP_LOAD(dest,bytes,unsigned,isFloat){if(dest<=0)abort(`segmentation fault loading ${bytes} bytes from address ${dest}`);if(dest%bytes!==0)abort(`alignment error loading from address ${dest}, which was expected to be aligned to a multiple of ${bytes}`);if(runtimeInitialized){var brk=_sbrk(0);if(dest+bytes>brk)abort(`segmentation fault, exceeded the top of the available dynamic heap when loading ${bytes} bytes from address ${dest}. DYNAMICTOP=${brk}`);if(brk<_emscripten_stack_get_base())abort(`brk >= _emscripten_stack_get_base() (brk=${brk}, _emscripten_stack_get_base()=${_emscripten_stack_get_base()})`);if(brk>wasmMemory.buffer.byteLength)abort(`brk <= wasmMemory.buffer.byteLength (brk=${brk}, wasmMemory.buffer.byteLength=${wasmMemory.buffer.byteLength})`)}var type=getSafeHeapType(bytes,isFloat);var ret=getValue_safe(dest,type);if(unsigned)ret=unSign(ret,parseInt(type.substr(1),10));return ret}function SAFE_HEAP_LOAD_D(dest,bytes,unsigned){return SAFE_HEAP_LOAD(dest,bytes,unsigned,true)}function segfault(){abort("segmentation fault")}function alignfault(){abort("alignment fault")}var wasmMemory;var ABORT=false;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");function findWasmBinary(){var f="libflutter_soloud_plugin.wasm";if(!isDataURI(f)){return locateFile(f)}return f}var wasmBinaryFile;function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary){return readAsync(binaryFile).then(response=>new Uint8Array(response),()=>getBinarySync(binaryFile))}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){return{a:wasmImports}}function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["t"];updateMemoryViews();addOnInit(wasmExports["u"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}wasmBinaryFile??=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;var ASM_CONSTS={141068:($0,$1,$2,$3,$4)=>{if(typeof window==="undefined"||(window.AudioContext||window.webkitAudioContext)===undefined){return 0}if(typeof window.miniaudio==="undefined"){window.miniaudio={referenceCount:0};window.miniaudio.device_type={};window.miniaudio.device_type.playback=$0;window.miniaudio.device_type.capture=$1;window.miniaudio.device_type.duplex=$2;window.miniaudio.device_state={};window.miniaudio.device_state.stopped=$3;window.miniaudio.device_state.started=$4;let miniaudio=window.miniaudio;miniaudio.devices=[];miniaudio.track_device=function(device){for(var iDevice=0;iDevice0){if(miniaudio.devices[miniaudio.devices.length-1]==null){miniaudio.devices.pop()}else{break}}};miniaudio.untrack_device=function(device){for(var iDevice=0;iDevice{_ma_device__on_notification_unlocked(device.pDevice)},error=>{console.error("Failed to resume audiocontext",error)})}}miniaudio.unlock_event_types.map(function(event_type){document.removeEventListener(event_type,miniaudio.unlock,true)})};miniaudio.unlock_event_types.map(function(event_type){document.addEventListener(event_type,miniaudio.unlock,true)})}window.miniaudio.referenceCount+=1;return 1},143246:()=>{if(typeof window.miniaudio!=="undefined"){miniaudio.unlock_event_types.map(function(event_type){document.removeEventListener(event_type,miniaudio.unlock,true)});window.miniaudio.referenceCount-=1;if(window.miniaudio.referenceCount===0){delete window.miniaudio}}},143536:()=>navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined,143640:()=>{try{var temp=new(window.AudioContext||window.webkitAudioContext);var sampleRate=temp.sampleRate;temp.close();return sampleRate}catch(e){return 0}},143811:($0,$1,$2,$3,$4,$5)=>{var deviceType=$0;var channels=$1;var sampleRate=$2;var bufferSize=$3;var pIntermediaryBuffer=$4;var pDevice=$5;if(typeof window.miniaudio==="undefined"){return-1}var device={};var audioContextOptions={};if(deviceType==window.miniaudio.device_type.playback&&sampleRate!=0){audioContextOptions.sampleRate=sampleRate}device.webaudio=new(window.AudioContext||window.webkitAudioContext)(audioContextOptions);device.webaudio.suspend();device.state=window.miniaudio.device_state.stopped;var channelCountIn=0;var channelCountOut=channels;if(deviceType!=window.miniaudio.device_type.playback){channelCountIn=channels}device.scriptNode=device.webaudio.createScriptProcessor(bufferSize,channelCountIn,channelCountOut);device.scriptNode.onaudioprocess=function(e){if(device.intermediaryBufferView==null||device.intermediaryBufferView.length==0){device.intermediaryBufferView=new Float32Array(HEAPF32.buffer,pIntermediaryBuffer,bufferSize*channels)}if(deviceType==window.miniaudio.device_type.capture||deviceType==window.miniaudio.device_type.duplex){for(var iChannel=0;iChannelwindow.miniaudio.get_device_by_index($0).webaudio.sampleRate,146761:$0=>{var device=window.miniaudio.get_device_by_index($0);if(device.scriptNode!==undefined){device.scriptNode.onaudioprocess=function(e){};device.scriptNode.disconnect();device.scriptNode=undefined}if(device.streamNode!==undefined){device.streamNode.disconnect();device.streamNode=undefined}device.webaudio.close();device.webaudio=undefined;device.pDevice=undefined},147161:$0=>{window.miniaudio.untrack_device_by_index($0)},147211:$0=>{var device=window.miniaudio.get_device_by_index($0);device.webaudio.resume();device.state=window.miniaudio.device_state.started},147350:$0=>{var device=window.miniaudio.get_device_by_index($0);device.webaudio.suspend();device.state=window.miniaudio.device_state.stopped},147490:()=>{if(!Module_soloud.wasmWorker){var workerUri="assets/packages/flutter_soloud/web/worker.dart.js";console.log("EM_ASM creating web worker!");Module_soloud.wasmWorker=new Worker(workerUri)}else{console.log("EM_ASM web worker already created!")}},147752:($0,$1)=>{if(Module_soloud.wasmWorker){console.log("EM_ASM posting message "+UTF8ToString($0)+" with value "+$1);Module_soloud.wasmWorker.postMessage(JSON.stringify({message:UTF8ToString($0),value:$1}))}else{console.error("Worker not found.")}},148018:($0,$1,$2,$3)=>{var functionName="dartOnBufferingCallback_"+$3;if(typeof window[functionName]==="function"){var buffering=$0==1?true:false;window[functionName](buffering,$1,$2)}else{console.log("EM_ASM 'dartOnBufferingCallback_$hash' not found.")}},148282:($0,$1,$2,$3)=>{var functionName="dartOnBufferingCallback_"+$3;if(typeof window[functionName]==="function"){var buffering=$0==1?true:false;window[functionName](buffering,$1,$2)}else{console.log("EM_ASM 'dartOnBufferingCallback_$hash' not found.")}}};class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return SAFE_HEAP_LOAD(ptr,1,0);case"i8":return SAFE_HEAP_LOAD(ptr,1,0);case"i16":return SAFE_HEAP_LOAD((ptr>>1)*2,2,0);case"i32":return SAFE_HEAP_LOAD((ptr>>2)*4,4,0);case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return SAFE_HEAP_LOAD_D((ptr>>2)*4,4,0);case"double":return SAFE_HEAP_LOAD_D((ptr>>3)*8,8,0);case"*":return SAFE_HEAP_LOAD((ptr>>2)*4,4,1);default:abort(`invalid type for getValue: ${type}`)}}function getValue_safe(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return HEAP8[ptr];case"i8":return HEAP8[ptr];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=Module["noExitRuntime"]||true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":SAFE_HEAP_STORE(ptr,value,1);break;case"i8":SAFE_HEAP_STORE(ptr,value,1);break;case"i16":SAFE_HEAP_STORE((ptr>>1)*2,value,2);break;case"i32":SAFE_HEAP_STORE((ptr>>2)*4,value,4);break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":SAFE_HEAP_STORE_D((ptr>>2)*4,value,4);break;case"double":SAFE_HEAP_STORE_D((ptr>>3)*8,value,8);break;case"*":SAFE_HEAP_STORE((ptr>>2)*4,value,4);break;default:abort(`invalid type for setValue: ${type}`)}}function setValue_safe(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr]=value;break;case"i8":HEAP8[ptr]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var unSign=(value,bits)=>{if(value>=0){return value}return bits<=32?2*Math.abs(1<{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){SAFE_HEAP_STORE((this.ptr+4>>2)*4,type,4)}get_type(){return SAFE_HEAP_LOAD((this.ptr+4>>2)*4,4,1)}set_destructor(destructor){SAFE_HEAP_STORE((this.ptr+8>>2)*4,destructor,4)}get_destructor(){return SAFE_HEAP_LOAD((this.ptr+8>>2)*4,4,1)}set_caught(caught){caught=caught?1:0;SAFE_HEAP_STORE(this.ptr+12,caught,1)}get_caught(){return SAFE_HEAP_LOAD(this.ptr+12,1,0)!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;SAFE_HEAP_STORE(this.ptr+13,rethrown,1)}get_rethrown(){return SAFE_HEAP_LOAD(this.ptr+13,1,0)!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){SAFE_HEAP_STORE((this.ptr+16>>2)*4,adjustedPtr,4)}get_adjusted_ptr(){return SAFE_HEAP_LOAD((this.ptr+16>>2)*4,4,1)}}var exceptionLast=0;var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var syscallGetVarargI=()=>{var ret=SAFE_HEAP_LOAD((+SYSCALLS.varargs>>2)*4,4,0);SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[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]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{abort()};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url).then(arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},err=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},filesystems:null,syncFSRequests:0,readFiles:{},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;iFS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);SAFE_HEAP_STORE((buf>>2)*4,stat.dev,4);SAFE_HEAP_STORE((buf+4>>2)*4,stat.mode,4);SAFE_HEAP_STORE((buf+8>>2)*4,stat.nlink,4);SAFE_HEAP_STORE((buf+12>>2)*4,stat.uid,4);SAFE_HEAP_STORE((buf+16>>2)*4,stat.gid,4);SAFE_HEAP_STORE((buf+20>>2)*4,stat.rdev,4);tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+24>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+28>>2)*4,tempI64[1],4);SAFE_HEAP_STORE((buf+32>>2)*4,4096,4);SAFE_HEAP_STORE((buf+36>>2)*4,stat.blocks,4);var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+40>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+44>>2)*4,tempI64[1],4);SAFE_HEAP_STORE((buf+48>>2)*4,atime%1e3*1e3*1e3,4);tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+56>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+60>>2)*4,tempI64[1],4);SAFE_HEAP_STORE((buf+64>>2)*4,mtime%1e3*1e3*1e3,4);tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+72>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+76>>2)*4,tempI64[1],4);SAFE_HEAP_STORE((buf+80>>2)*4,ctime%1e3*1e3*1e3,4);tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+88>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+92>>2)*4,tempI64[1],4);return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;SAFE_HEAP_STORE((arg+offset>>1)*2,2,2);return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();SAFE_HEAP_STORE((argp>>2)*4,termios.c_iflag||0,4);SAFE_HEAP_STORE((argp+4>>2)*4,termios.c_oflag||0,4);SAFE_HEAP_STORE((argp+8>>2)*4,termios.c_cflag||0,4);SAFE_HEAP_STORE((argp+12>>2)*4,termios.c_lflag||0,4);for(var i=0;i<32;i++){SAFE_HEAP_STORE(argp+i+17,termios.c_cc[i]||0,1)}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=SAFE_HEAP_LOAD((argp>>2)*4,4,0);var c_oflag=SAFE_HEAP_LOAD((argp+4>>2)*4,4,0);var c_cflag=SAFE_HEAP_LOAD((argp+8>>2)*4,4,0);var c_lflag=SAFE_HEAP_LOAD((argp+12>>2)*4,4,0);var c_cc=[];for(var i=0;i<32;i++){c_cc.push(SAFE_HEAP_LOAD(argp+i+17,1,0))}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();SAFE_HEAP_STORE((argp>>2)*4,0,4);return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();SAFE_HEAP_STORE((argp>>1)*2,winsize[0],2);SAFE_HEAP_STORE((argp+2>>1)*2,winsize[1],2)}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __abort_js=()=>{abort("")};var __emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);SAFE_HEAP_STORE((timezone>>2)*4,stdTimezoneOffset*60,4);SAFE_HEAP_STORE((daylight>>2)*4,Number(winterOffset!=summerOffset),4);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset{readEmAsmArgsArray.length=0;var ch;while(ch=SAFE_HEAP_LOAD(sigPtr++,1,1)){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?SAFE_HEAP_LOAD((buf>>2)*4,4,1):ch==105?SAFE_HEAP_LOAD((buf>>2)*4,4,0):SAFE_HEAP_LOAD_D((buf>>3)*8,8,0));buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;SAFE_HEAP_STORE((__environ+i*4>>2)*4,ptr,4);stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();SAFE_HEAP_STORE((penviron_count>>2)*4,strings.length,4);var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);SAFE_HEAP_STORE((penviron_buf_size>>2)*4,bufSize,4);return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2)*4,4,1);var len=SAFE_HEAP_LOAD((iov+4>>2)*4,4,1);iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2)*4,num,4);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((newOffset>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((newOffset+4>>2)*4,tempI64[1],4);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2)*4,4,1);var len=SAFE_HEAP_LOAD((iov+4>>2)*4,4,1);iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2)*4,num,4);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _random_get(buffer,size){try{randomFill(HEAPU8.subarray(buffer,buffer+size));return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack="";var wasmImports={a:___assert_fail,e:___cxa_throw,g:___syscall_fcntl64,j:___syscall_ioctl,k:___syscall_openat,m:__abort_js,l:__emscripten_memcpy_js,p:__tzset_js,c:alignfault,d:_emscripten_asm_const_int,s:_emscripten_resize_heap,q:_environ_get,r:_environ_sizes_get,h:_fd_close,i:_fd_read,n:_fd_seek,f:_fd_write,o:_random_get,b:segfault};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["u"])();var _memset=Module["_memset"]=(a0,a1,a2)=>(_memset=Module["_memset"]=wasmExports["w"])(a0,a1,a2);var _memcpy=Module["_memcpy"]=(a0,a1,a2)=>(_memcpy=Module["_memcpy"]=wasmExports["x"])(a0,a1,a2);var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["y"])(a0);var _free=Module["_free"]=a0=>(_free=Module["_free"]=wasmExports["z"])(a0);var _ma_device__on_notification_unlocked=Module["_ma_device__on_notification_unlocked"]=a0=>(_ma_device__on_notification_unlocked=Module["_ma_device__on_notification_unlocked"]=wasmExports["A"])(a0);var _ma_malloc_emscripten=Module["_ma_malloc_emscripten"]=(a0,a1)=>(_ma_malloc_emscripten=Module["_ma_malloc_emscripten"]=wasmExports["B"])(a0,a1);var _ma_free_emscripten=Module["_ma_free_emscripten"]=(a0,a1)=>(_ma_free_emscripten=Module["_ma_free_emscripten"]=wasmExports["C"])(a0,a1);var _ma_device_process_pcm_frames_capture__webaudio=Module["_ma_device_process_pcm_frames_capture__webaudio"]=(a0,a1,a2)=>(_ma_device_process_pcm_frames_capture__webaudio=Module["_ma_device_process_pcm_frames_capture__webaudio"]=wasmExports["D"])(a0,a1,a2);var _ma_device_process_pcm_frames_playback__webaudio=Module["_ma_device_process_pcm_frames_playback__webaudio"]=(a0,a1,a2)=>(_ma_device_process_pcm_frames_playback__webaudio=Module["_ma_device_process_pcm_frames_playback__webaudio"]=wasmExports["E"])(a0,a1,a2);var _createWorkerInWasm=Module["_createWorkerInWasm"]=()=>(_createWorkerInWasm=Module["_createWorkerInWasm"]=wasmExports["F"])();var _sendToWorker=Module["_sendToWorker"]=(a0,a1)=>(_sendToWorker=Module["_sendToWorker"]=wasmExports["G"])(a0,a1);var _nativeFree=Module["_nativeFree"]=a0=>(_nativeFree=Module["_nativeFree"]=wasmExports["H"])(a0);var _voiceEndedCallback=Module["_voiceEndedCallback"]=a0=>(_voiceEndedCallback=Module["_voiceEndedCallback"]=wasmExports["I"])(a0);var _setDartEventCallback=Module["_setDartEventCallback"]=(a0,a1,a2)=>(_setDartEventCallback=Module["_setDartEventCallback"]=wasmExports["J"])(a0,a1,a2);var _areOpusOggLibsAvailable=Module["_areOpusOggLibsAvailable"]=()=>(_areOpusOggLibsAvailable=Module["_areOpusOggLibsAvailable"]=wasmExports["K"])();var _initEngine=Module["_initEngine"]=(a0,a1,a2,a3)=>(_initEngine=Module["_initEngine"]=wasmExports["L"])(a0,a1,a2,a3);var _changeDevice=Module["_changeDevice"]=a0=>(_changeDevice=Module["_changeDevice"]=wasmExports["M"])(a0);var _listPlaybackDevices=Module["_listPlaybackDevices"]=(a0,a1,a2,a3)=>(_listPlaybackDevices=Module["_listPlaybackDevices"]=wasmExports["N"])(a0,a1,a2,a3);var _freeListPlaybackDevices=Module["_freeListPlaybackDevices"]=(a0,a1,a2,a3)=>(_freeListPlaybackDevices=Module["_freeListPlaybackDevices"]=wasmExports["O"])(a0,a1,a2,a3);var _dispose=Module["_dispose"]=()=>(_dispose=Module["_dispose"]=wasmExports["P"])();var _isInited=Module["_isInited"]=()=>(_isInited=Module["_isInited"]=wasmExports["Q"])();var _loadFile=Module["_loadFile"]=(a0,a1)=>(_loadFile=Module["_loadFile"]=wasmExports["R"])(a0,a1);var _loadMem=Module["_loadMem"]=(a0,a1,a2,a3,a4)=>(_loadMem=Module["_loadMem"]=wasmExports["S"])(a0,a1,a2,a3,a4);var _setBufferStream=Module["_setBufferStream"]=(a0,a1,a2,a3,a4,a5,a6)=>(_setBufferStream=Module["_setBufferStream"]=wasmExports["T"])(a0,a1,a2,a3,a4,a5,a6);var _addAudioDataStream=Module["_addAudioDataStream"]=(a0,a1,a2)=>(_addAudioDataStream=Module["_addAudioDataStream"]=wasmExports["U"])(a0,a1,a2);var _setDataIsEnded=Module["_setDataIsEnded"]=a0=>(_setDataIsEnded=Module["_setDataIsEnded"]=wasmExports["V"])(a0);var _getBufferSize=Module["_getBufferSize"]=(a0,a1)=>(_getBufferSize=Module["_getBufferSize"]=wasmExports["W"])(a0,a1);var _loadWaveform=Module["_loadWaveform"]=(a0,a1,a2,a3,a4)=>(_loadWaveform=Module["_loadWaveform"]=wasmExports["X"])(a0,a1,a2,a3,a4);var _setWaveformScale=Module["_setWaveformScale"]=(a0,a1)=>(_setWaveformScale=Module["_setWaveformScale"]=wasmExports["Y"])(a0,a1);var _setWaveformDetune=Module["_setWaveformDetune"]=(a0,a1)=>(_setWaveformDetune=Module["_setWaveformDetune"]=wasmExports["Z"])(a0,a1);var _setWaveformFreq=Module["_setWaveformFreq"]=(a0,a1)=>(_setWaveformFreq=Module["_setWaveformFreq"]=wasmExports["_"])(a0,a1);var _setSuperWave=Module["_setSuperWave"]=(a0,a1)=>(_setSuperWave=Module["_setSuperWave"]=wasmExports["$"])(a0,a1);var _setWaveform=Module["_setWaveform"]=(a0,a1)=>(_setWaveform=Module["_setWaveform"]=wasmExports["aa"])(a0,a1);var _speechText=Module["_speechText"]=(a0,a1)=>(_speechText=Module["_speechText"]=wasmExports["ba"])(a0,a1);var _pauseSwitch=Module["_pauseSwitch"]=a0=>(_pauseSwitch=Module["_pauseSwitch"]=wasmExports["ca"])(a0);var _setPause=Module["_setPause"]=(a0,a1)=>(_setPause=Module["_setPause"]=wasmExports["da"])(a0,a1);var _getPause=Module["_getPause"]=a0=>(_getPause=Module["_getPause"]=wasmExports["ea"])(a0);var _setRelativePlaySpeed=Module["_setRelativePlaySpeed"]=(a0,a1)=>(_setRelativePlaySpeed=Module["_setRelativePlaySpeed"]=wasmExports["fa"])(a0,a1);var _getRelativePlaySpeed=Module["_getRelativePlaySpeed"]=a0=>(_getRelativePlaySpeed=Module["_getRelativePlaySpeed"]=wasmExports["ga"])(a0);var _play=Module["_play"]=(a0,a1,a2,a3,a4,a5,a6)=>(_play=Module["_play"]=wasmExports["ha"])(a0,a1,a2,a3,a4,a5,a6);var _stop=Module["_stop"]=a0=>(_stop=Module["_stop"]=wasmExports["ia"])(a0);var _disposeSound=Module["_disposeSound"]=a0=>(_disposeSound=Module["_disposeSound"]=wasmExports["ja"])(a0);var _disposeAllSound=Module["_disposeAllSound"]=()=>(_disposeAllSound=Module["_disposeAllSound"]=wasmExports["ka"])();var _getLooping=Module["_getLooping"]=a0=>(_getLooping=Module["_getLooping"]=wasmExports["la"])(a0);var _setLooping=Module["_setLooping"]=(a0,a1)=>(_setLooping=Module["_setLooping"]=wasmExports["ma"])(a0,a1);var _getLoopPoint=Module["_getLoopPoint"]=a0=>(_getLoopPoint=Module["_getLoopPoint"]=wasmExports["na"])(a0);var _setLoopPoint=Module["_setLoopPoint"]=(a0,a1)=>(_setLoopPoint=Module["_setLoopPoint"]=wasmExports["oa"])(a0,a1);var _setVisualizationEnabled=Module["_setVisualizationEnabled"]=a0=>(_setVisualizationEnabled=Module["_setVisualizationEnabled"]=wasmExports["pa"])(a0);var _getVisualizationEnabled=Module["_getVisualizationEnabled"]=()=>(_getVisualizationEnabled=Module["_getVisualizationEnabled"]=wasmExports["qa"])();var _getFft=Module["_getFft"]=a0=>(_getFft=Module["_getFft"]=wasmExports["ra"])(a0);var _getWave=Module["_getWave"]=a0=>(_getWave=Module["_getWave"]=wasmExports["sa"])(a0);var _setFftSmoothing=Module["_setFftSmoothing"]=a0=>(_setFftSmoothing=Module["_setFftSmoothing"]=wasmExports["ta"])(a0);var _getAudioTexture=Module["_getAudioTexture"]=a0=>(_getAudioTexture=Module["_getAudioTexture"]=wasmExports["ua"])(a0);var _getAudioTexture2D=Module["_getAudioTexture2D"]=a0=>(_getAudioTexture2D=Module["_getAudioTexture2D"]=wasmExports["va"])(a0);var _getTextureValue=Module["_getTextureValue"]=(a0,a1)=>(_getTextureValue=Module["_getTextureValue"]=wasmExports["wa"])(a0,a1);var _getLength=Module["_getLength"]=a0=>(_getLength=Module["_getLength"]=wasmExports["xa"])(a0);var _seek=Module["_seek"]=(a0,a1)=>(_seek=Module["_seek"]=wasmExports["ya"])(a0,a1);var _getPosition=Module["_getPosition"]=a0=>(_getPosition=Module["_getPosition"]=wasmExports["za"])(a0);var _getGlobalVolume=Module["_getGlobalVolume"]=()=>(_getGlobalVolume=Module["_getGlobalVolume"]=wasmExports["Aa"])();var _setGlobalVolume=Module["_setGlobalVolume"]=a0=>(_setGlobalVolume=Module["_setGlobalVolume"]=wasmExports["Ba"])(a0);var _getVolume=Module["_getVolume"]=a0=>(_getVolume=Module["_getVolume"]=wasmExports["Ca"])(a0);var _setVolume=Module["_setVolume"]=(a0,a1)=>(_setVolume=Module["_setVolume"]=wasmExports["Da"])(a0,a1);var _getPan=Module["_getPan"]=a0=>(_getPan=Module["_getPan"]=wasmExports["Ea"])(a0);var _setPan=Module["_setPan"]=(a0,a1)=>(_setPan=Module["_setPan"]=wasmExports["Fa"])(a0,a1);var _setPanAbsolute=Module["_setPanAbsolute"]=(a0,a1,a2)=>(_setPanAbsolute=Module["_setPanAbsolute"]=wasmExports["Ga"])(a0,a1,a2);var _getIsValidVoiceHandle=Module["_getIsValidVoiceHandle"]=a0=>(_getIsValidVoiceHandle=Module["_getIsValidVoiceHandle"]=wasmExports["Ha"])(a0);var _getActiveVoiceCount=Module["_getActiveVoiceCount"]=()=>(_getActiveVoiceCount=Module["_getActiveVoiceCount"]=wasmExports["Ia"])();var _countAudioSource=Module["_countAudioSource"]=a0=>(_countAudioSource=Module["_countAudioSource"]=wasmExports["Ja"])(a0);var _getVoiceCount=Module["_getVoiceCount"]=()=>(_getVoiceCount=Module["_getVoiceCount"]=wasmExports["Ka"])();var _getProtectVoice=Module["_getProtectVoice"]=a0=>(_getProtectVoice=Module["_getProtectVoice"]=wasmExports["La"])(a0);var _setProtectVoice=Module["_setProtectVoice"]=(a0,a1)=>(_setProtectVoice=Module["_setProtectVoice"]=wasmExports["Ma"])(a0,a1);var _setInaudibleBehavior=Module["_setInaudibleBehavior"]=(a0,a1,a2)=>(_setInaudibleBehavior=Module["_setInaudibleBehavior"]=wasmExports["Na"])(a0,a1,a2);var _getMaxActiveVoiceCount=Module["_getMaxActiveVoiceCount"]=()=>(_getMaxActiveVoiceCount=Module["_getMaxActiveVoiceCount"]=wasmExports["Oa"])();var _setMaxActiveVoiceCount=Module["_setMaxActiveVoiceCount"]=a0=>(_setMaxActiveVoiceCount=Module["_setMaxActiveVoiceCount"]=wasmExports["Pa"])(a0);var _createVoiceGroup=Module["_createVoiceGroup"]=()=>(_createVoiceGroup=Module["_createVoiceGroup"]=wasmExports["Qa"])();var _destroyVoiceGroup=Module["_destroyVoiceGroup"]=a0=>(_destroyVoiceGroup=Module["_destroyVoiceGroup"]=wasmExports["Ra"])(a0);var _addVoiceToGroup=Module["_addVoiceToGroup"]=(a0,a1)=>(_addVoiceToGroup=Module["_addVoiceToGroup"]=wasmExports["Sa"])(a0,a1);var _isVoiceGroup=Module["_isVoiceGroup"]=a0=>(_isVoiceGroup=Module["_isVoiceGroup"]=wasmExports["Ta"])(a0);var _isVoiceGroupEmpty=Module["_isVoiceGroupEmpty"]=a0=>(_isVoiceGroupEmpty=Module["_isVoiceGroupEmpty"]=wasmExports["Ua"])(a0);var _fadeGlobalVolume=Module["_fadeGlobalVolume"]=(a0,a1)=>(_fadeGlobalVolume=Module["_fadeGlobalVolume"]=wasmExports["Va"])(a0,a1);var _fadeVolume=Module["_fadeVolume"]=(a0,a1,a2)=>(_fadeVolume=Module["_fadeVolume"]=wasmExports["Wa"])(a0,a1,a2);var _fadePan=Module["_fadePan"]=(a0,a1,a2)=>(_fadePan=Module["_fadePan"]=wasmExports["Xa"])(a0,a1,a2);var _fadeRelativePlaySpeed=Module["_fadeRelativePlaySpeed"]=(a0,a1,a2)=>(_fadeRelativePlaySpeed=Module["_fadeRelativePlaySpeed"]=wasmExports["Ya"])(a0,a1,a2);var _schedulePause=Module["_schedulePause"]=(a0,a1)=>(_schedulePause=Module["_schedulePause"]=wasmExports["Za"])(a0,a1);var _scheduleStop=Module["_scheduleStop"]=(a0,a1)=>(_scheduleStop=Module["_scheduleStop"]=wasmExports["_a"])(a0,a1);var _oscillateVolume=Module["_oscillateVolume"]=(a0,a1,a2,a3)=>(_oscillateVolume=Module["_oscillateVolume"]=wasmExports["$a"])(a0,a1,a2,a3);var _oscillatePan=Module["_oscillatePan"]=(a0,a1,a2,a3)=>(_oscillatePan=Module["_oscillatePan"]=wasmExports["ab"])(a0,a1,a2,a3);var _oscillateRelativePlaySpeed=Module["_oscillateRelativePlaySpeed"]=(a0,a1,a2,a3)=>(_oscillateRelativePlaySpeed=Module["_oscillateRelativePlaySpeed"]=wasmExports["bb"])(a0,a1,a2,a3);var _oscillateGlobalVolume=Module["_oscillateGlobalVolume"]=(a0,a1,a2)=>(_oscillateGlobalVolume=Module["_oscillateGlobalVolume"]=wasmExports["cb"])(a0,a1,a2);var _isFilterActive=Module["_isFilterActive"]=(a0,a1,a2)=>(_isFilterActive=Module["_isFilterActive"]=wasmExports["db"])(a0,a1,a2);var _getFilterParamNames=Module["_getFilterParamNames"]=(a0,a1,a2)=>(_getFilterParamNames=Module["_getFilterParamNames"]=wasmExports["eb"])(a0,a1,a2);var _addFilter=Module["_addFilter"]=(a0,a1)=>(_addFilter=Module["_addFilter"]=wasmExports["fb"])(a0,a1);var _removeFilter=Module["_removeFilter"]=(a0,a1)=>(_removeFilter=Module["_removeFilter"]=wasmExports["gb"])(a0,a1);var _setFilterParams=Module["_setFilterParams"]=(a0,a1,a2,a3)=>(_setFilterParams=Module["_setFilterParams"]=wasmExports["hb"])(a0,a1,a2,a3);var _getFilterParams=Module["_getFilterParams"]=(a0,a1,a2,a3)=>(_getFilterParams=Module["_getFilterParams"]=wasmExports["ib"])(a0,a1,a2,a3);var _fadeFilterParameter=Module["_fadeFilterParameter"]=(a0,a1,a2,a3,a4)=>(_fadeFilterParameter=Module["_fadeFilterParameter"]=wasmExports["jb"])(a0,a1,a2,a3,a4);var _oscillateFilterParameter=Module["_oscillateFilterParameter"]=(a0,a1,a2,a3,a4,a5)=>(_oscillateFilterParameter=Module["_oscillateFilterParameter"]=wasmExports["kb"])(a0,a1,a2,a3,a4,a5);var _play3d=Module["_play3d"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)=>(_play3d=Module["_play3d"]=wasmExports["lb"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);var _set3dSoundSpeed=Module["_set3dSoundSpeed"]=a0=>(_set3dSoundSpeed=Module["_set3dSoundSpeed"]=wasmExports["mb"])(a0);var _get3dSoundSpeed=Module["_get3dSoundSpeed"]=()=>(_get3dSoundSpeed=Module["_get3dSoundSpeed"]=wasmExports["nb"])();var _set3dListenerParameters=Module["_set3dListenerParameters"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)=>(_set3dListenerParameters=Module["_set3dListenerParameters"]=wasmExports["ob"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);var _set3dListenerPosition=Module["_set3dListenerPosition"]=(a0,a1,a2)=>(_set3dListenerPosition=Module["_set3dListenerPosition"]=wasmExports["pb"])(a0,a1,a2);var _set3dListenerAt=Module["_set3dListenerAt"]=(a0,a1,a2)=>(_set3dListenerAt=Module["_set3dListenerAt"]=wasmExports["qb"])(a0,a1,a2);var _set3dListenerUp=Module["_set3dListenerUp"]=(a0,a1,a2)=>(_set3dListenerUp=Module["_set3dListenerUp"]=wasmExports["rb"])(a0,a1,a2);var _set3dListenerVelocity=Module["_set3dListenerVelocity"]=(a0,a1,a2)=>(_set3dListenerVelocity=Module["_set3dListenerVelocity"]=wasmExports["sb"])(a0,a1,a2);var _set3dSourceParameters=Module["_set3dSourceParameters"]=(a0,a1,a2,a3,a4,a5,a6)=>(_set3dSourceParameters=Module["_set3dSourceParameters"]=wasmExports["tb"])(a0,a1,a2,a3,a4,a5,a6);var _set3dSourcePosition=Module["_set3dSourcePosition"]=(a0,a1,a2,a3)=>(_set3dSourcePosition=Module["_set3dSourcePosition"]=wasmExports["ub"])(a0,a1,a2,a3);var _set3dSourceVelocity=Module["_set3dSourceVelocity"]=(a0,a1,a2,a3)=>(_set3dSourceVelocity=Module["_set3dSourceVelocity"]=wasmExports["vb"])(a0,a1,a2,a3);var _set3dSourceMinMaxDistance=Module["_set3dSourceMinMaxDistance"]=(a0,a1,a2)=>(_set3dSourceMinMaxDistance=Module["_set3dSourceMinMaxDistance"]=wasmExports["wb"])(a0,a1,a2);var _set3dSourceAttenuation=Module["_set3dSourceAttenuation"]=(a0,a1,a2)=>(_set3dSourceAttenuation=Module["_set3dSourceAttenuation"]=wasmExports["xb"])(a0,a1,a2);var _set3dSourceDopplerFactor=Module["_set3dSourceDopplerFactor"]=(a0,a1)=>(_set3dSourceDopplerFactor=Module["_set3dSourceDopplerFactor"]=wasmExports["yb"])(a0,a1);var _readSamplesFromFile=Module["_readSamplesFromFile"]=(a0,a1,a2,a3,a4,a5)=>(_readSamplesFromFile=Module["_readSamplesFromFile"]=wasmExports["zb"])(a0,a1,a2,a3,a4,a5);var _readSamplesFromMem=Module["_readSamplesFromMem"]=(a0,a1,a2,a3,a4,a5,a6)=>(_readSamplesFromMem=Module["_readSamplesFromMem"]=wasmExports["Ab"])(a0,a1,a2,a3,a4,a5,a6);var _sbrk=a0=>(_sbrk=wasmExports["Bb"])(a0);var _emscripten_stack_get_base=()=>(_emscripten_stack_get_base=wasmExports["Cb"])();var __emscripten_stack_restore=a0=>(__emscripten_stack_restore=wasmExports["Db"])(a0);var __emscripten_stack_alloc=a0=>(__emscripten_stack_alloc=wasmExports["Eb"])(a0);var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports["Fb"])();Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["setValue"]=setValue;Module["getValue"]=getValue;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();moduleRtn=readyPromise; +var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope!="undefined";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&process.type!="renderer";if(ENVIRONMENT_IS_NODE){}var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);var ret=fs.readFileSync(filename);return ret};readAsync=(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return new Promise((resolve,reject)=>{fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)reject(err);else resolve(binary?data.buffer:data)})})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}return fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))})}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];var wasmBinary=Module["wasmBinary"];function getSafeHeapType(bytes,isFloat){switch(bytes){case 1:return"i8";case 2:return"i16";case 4:return isFloat?"float":"i32";case 8:return isFloat?"double":"i64";default:abort(`getSafeHeapType() invalid bytes=${bytes}`)}}function SAFE_HEAP_STORE(dest,value,bytes,isFloat){if(dest<=0)abort(`segmentation fault storing ${bytes} bytes to address ${dest}`);if(dest%bytes!==0)abort(`alignment error storing to address ${dest}, which was expected to be aligned to a multiple of ${bytes}`);if(runtimeInitialized){var brk=_sbrk(0);if(dest+bytes>brk)abort(`segmentation fault, exceeded the top of the available dynamic heap when storing ${bytes} bytes to address ${dest}. DYNAMICTOP=${brk}`);if(brk<_emscripten_stack_get_base())abort(`brk >= _emscripten_stack_get_base() (brk=${brk}, _emscripten_stack_get_base()=${_emscripten_stack_get_base()})`);if(brk>wasmMemory.buffer.byteLength)abort(`brk <= wasmMemory.buffer.byteLength (brk=${brk}, wasmMemory.buffer.byteLength=${wasmMemory.buffer.byteLength})`)}setValue_safe(dest,value,getSafeHeapType(bytes,isFloat));return value}function SAFE_HEAP_STORE_D(dest,value,bytes){return SAFE_HEAP_STORE(dest,value,bytes,true)}function SAFE_HEAP_LOAD(dest,bytes,unsigned,isFloat){if(dest<=0)abort(`segmentation fault loading ${bytes} bytes from address ${dest}`);if(dest%bytes!==0)abort(`alignment error loading from address ${dest}, which was expected to be aligned to a multiple of ${bytes}`);if(runtimeInitialized){var brk=_sbrk(0);if(dest+bytes>brk)abort(`segmentation fault, exceeded the top of the available dynamic heap when loading ${bytes} bytes from address ${dest}. DYNAMICTOP=${brk}`);if(brk<_emscripten_stack_get_base())abort(`brk >= _emscripten_stack_get_base() (brk=${brk}, _emscripten_stack_get_base()=${_emscripten_stack_get_base()})`);if(brk>wasmMemory.buffer.byteLength)abort(`brk <= wasmMemory.buffer.byteLength (brk=${brk}, wasmMemory.buffer.byteLength=${wasmMemory.buffer.byteLength})`)}var type=getSafeHeapType(bytes,isFloat);var ret=getValue_safe(dest,type);if(unsigned)ret=unSign(ret,parseInt(type.substr(1),10));return ret}function SAFE_HEAP_LOAD_D(dest,bytes,unsigned){return SAFE_HEAP_LOAD(dest,bytes,unsigned,true)}function segfault(){abort("segmentation fault")}function alignfault(){abort("alignment fault")}var wasmMemory;var ABORT=false;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");function findWasmBinary(){var f="libflutter_soloud_plugin.wasm";if(!isDataURI(f)){return locateFile(f)}return f}var wasmBinaryFile;function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary){return readAsync(binaryFile).then(response=>new Uint8Array(response),()=>getBinarySync(binaryFile))}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){return{a:wasmImports}}function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["t"];updateMemoryViews();addOnInit(wasmExports["u"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}wasmBinaryFile??=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;var ASM_CONSTS={140572:($0,$1,$2,$3,$4)=>{if(typeof window==="undefined"||(window.AudioContext||window.webkitAudioContext)===undefined){return 0}if(typeof window.miniaudio==="undefined"){window.miniaudio={referenceCount:0};window.miniaudio.device_type={};window.miniaudio.device_type.playback=$0;window.miniaudio.device_type.capture=$1;window.miniaudio.device_type.duplex=$2;window.miniaudio.device_state={};window.miniaudio.device_state.stopped=$3;window.miniaudio.device_state.started=$4;let miniaudio=window.miniaudio;miniaudio.devices=[];miniaudio.track_device=function(device){for(var iDevice=0;iDevice0){if(miniaudio.devices[miniaudio.devices.length-1]==null){miniaudio.devices.pop()}else{break}}};miniaudio.untrack_device=function(device){for(var iDevice=0;iDevice{_ma_device__on_notification_unlocked(device.pDevice)},error=>{console.error("Failed to resume audiocontext",error)})}}miniaudio.unlock_event_types.map(function(event_type){document.removeEventListener(event_type,miniaudio.unlock,true)})};miniaudio.unlock_event_types.map(function(event_type){document.addEventListener(event_type,miniaudio.unlock,true)})}window.miniaudio.referenceCount+=1;return 1},142750:()=>{if(typeof window.miniaudio!=="undefined"){miniaudio.unlock_event_types.map(function(event_type){document.removeEventListener(event_type,miniaudio.unlock,true)});window.miniaudio.referenceCount-=1;if(window.miniaudio.referenceCount===0){delete window.miniaudio}}},143040:()=>navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined,143144:()=>{try{var temp=new(window.AudioContext||window.webkitAudioContext);var sampleRate=temp.sampleRate;temp.close();return sampleRate}catch(e){return 0}},143315:($0,$1,$2,$3,$4,$5)=>{var deviceType=$0;var channels=$1;var sampleRate=$2;var bufferSize=$3;var pIntermediaryBuffer=$4;var pDevice=$5;if(typeof window.miniaudio==="undefined"){return-1}var device={};var audioContextOptions={};if(deviceType==window.miniaudio.device_type.playback&&sampleRate!=0){audioContextOptions.sampleRate=sampleRate}device.webaudio=new(window.AudioContext||window.webkitAudioContext)(audioContextOptions);device.webaudio.suspend();device.state=window.miniaudio.device_state.stopped;var channelCountIn=0;var channelCountOut=channels;if(deviceType!=window.miniaudio.device_type.playback){channelCountIn=channels}device.scriptNode=device.webaudio.createScriptProcessor(bufferSize,channelCountIn,channelCountOut);device.scriptNode.onaudioprocess=function(e){if(device.intermediaryBufferView==null||device.intermediaryBufferView.length==0){device.intermediaryBufferView=new Float32Array(HEAPF32.buffer,pIntermediaryBuffer,bufferSize*channels)}if(deviceType==window.miniaudio.device_type.capture||deviceType==window.miniaudio.device_type.duplex){for(var iChannel=0;iChannelwindow.miniaudio.get_device_by_index($0).webaudio.sampleRate,146265:$0=>{var device=window.miniaudio.get_device_by_index($0);if(device.scriptNode!==undefined){device.scriptNode.onaudioprocess=function(e){};device.scriptNode.disconnect();device.scriptNode=undefined}if(device.streamNode!==undefined){device.streamNode.disconnect();device.streamNode=undefined}device.webaudio.close();device.webaudio=undefined;device.pDevice=undefined},146665:$0=>{window.miniaudio.untrack_device_by_index($0)},146715:$0=>{var device=window.miniaudio.get_device_by_index($0);device.webaudio.resume();device.state=window.miniaudio.device_state.started},146854:$0=>{var device=window.miniaudio.get_device_by_index($0);device.webaudio.suspend();device.state=window.miniaudio.device_state.stopped},146994:()=>{if(!Module_soloud.wasmWorker){var workerUri="assets/packages/flutter_soloud/web/worker.dart.js";console.log("EM_ASM creating Web Worker!");Module_soloud.wasmWorker=new Worker(workerUri)}else{console.log("EM_ASM web worker already created!")}},147256:($0,$1)=>{if(Module_soloud.wasmWorker){Module_soloud.wasmWorker.postMessage({message:UTF8ToString($0),value:$1});console.log("EM_ASM posting message "+UTF8ToString($0)+" with value "+$1)}else{console.error("Worker not found.")}},147503:($0,$1,$2,$3)=>{var functionName="dartOnBufferingCallback_"+$3;if(typeof window[functionName]==="function"){var buffering=$0==1?true:false;window[functionName](buffering,$1,$2)}else{console.log("EM_ASM 'dartOnBufferingCallback_$hash' not found.")}},147767:($0,$1,$2,$3)=>{var functionName="dartOnBufferingCallback_"+$3;if(typeof window[functionName]==="function"){var buffering=$0==1?true:false;window[functionName](buffering,$1,$2)}else{console.log("EM_ASM 'dartOnBufferingCallback_$hash' not found.")}}};class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return SAFE_HEAP_LOAD(ptr,1,0);case"i8":return SAFE_HEAP_LOAD(ptr,1,0);case"i16":return SAFE_HEAP_LOAD((ptr>>1)*2,2,0);case"i32":return SAFE_HEAP_LOAD((ptr>>2)*4,4,0);case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return SAFE_HEAP_LOAD_D((ptr>>2)*4,4,0);case"double":return SAFE_HEAP_LOAD_D((ptr>>3)*8,8,0);case"*":return SAFE_HEAP_LOAD((ptr>>2)*4,4,1);default:abort(`invalid type for getValue: ${type}`)}}function getValue_safe(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return HEAP8[ptr];case"i8":return HEAP8[ptr];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=Module["noExitRuntime"]||true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":SAFE_HEAP_STORE(ptr,value,1);break;case"i8":SAFE_HEAP_STORE(ptr,value,1);break;case"i16":SAFE_HEAP_STORE((ptr>>1)*2,value,2);break;case"i32":SAFE_HEAP_STORE((ptr>>2)*4,value,4);break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":SAFE_HEAP_STORE_D((ptr>>2)*4,value,4);break;case"double":SAFE_HEAP_STORE_D((ptr>>3)*8,value,8);break;case"*":SAFE_HEAP_STORE((ptr>>2)*4,value,4);break;default:abort(`invalid type for setValue: ${type}`)}}function setValue_safe(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr]=value;break;case"i8":HEAP8[ptr]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var unSign=(value,bits)=>{if(value>=0){return value}return bits<=32?2*Math.abs(1<{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){SAFE_HEAP_STORE((this.ptr+4>>2)*4,type,4)}get_type(){return SAFE_HEAP_LOAD((this.ptr+4>>2)*4,4,1)}set_destructor(destructor){SAFE_HEAP_STORE((this.ptr+8>>2)*4,destructor,4)}get_destructor(){return SAFE_HEAP_LOAD((this.ptr+8>>2)*4,4,1)}set_caught(caught){caught=caught?1:0;SAFE_HEAP_STORE(this.ptr+12,caught,1)}get_caught(){return SAFE_HEAP_LOAD(this.ptr+12,1,0)!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;SAFE_HEAP_STORE(this.ptr+13,rethrown,1)}get_rethrown(){return SAFE_HEAP_LOAD(this.ptr+13,1,0)!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){SAFE_HEAP_STORE((this.ptr+16>>2)*4,adjustedPtr,4)}get_adjusted_ptr(){return SAFE_HEAP_LOAD((this.ptr+16>>2)*4,4,1)}}var exceptionLast=0;var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};var syscallGetVarargI=()=>{var ret=SAFE_HEAP_LOAD((+SYSCALLS.varargs>>2)*4,4,0);SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[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]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{abort()};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url).then(arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},err=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},filesystems:null,syncFSRequests:0,readFiles:{},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;iFS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS}},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);SAFE_HEAP_STORE((buf>>2)*4,stat.dev,4);SAFE_HEAP_STORE((buf+4>>2)*4,stat.mode,4);SAFE_HEAP_STORE((buf+8>>2)*4,stat.nlink,4);SAFE_HEAP_STORE((buf+12>>2)*4,stat.uid,4);SAFE_HEAP_STORE((buf+16>>2)*4,stat.gid,4);SAFE_HEAP_STORE((buf+20>>2)*4,stat.rdev,4);tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+24>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+28>>2)*4,tempI64[1],4);SAFE_HEAP_STORE((buf+32>>2)*4,4096,4);SAFE_HEAP_STORE((buf+36>>2)*4,stat.blocks,4);var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+40>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+44>>2)*4,tempI64[1],4);SAFE_HEAP_STORE((buf+48>>2)*4,atime%1e3*1e3*1e3,4);tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+56>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+60>>2)*4,tempI64[1],4);SAFE_HEAP_STORE((buf+64>>2)*4,mtime%1e3*1e3*1e3,4);tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+72>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+76>>2)*4,tempI64[1],4);SAFE_HEAP_STORE((buf+80>>2)*4,ctime%1e3*1e3*1e3,4);tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((buf+88>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((buf+92>>2)*4,tempI64[1],4);return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;SAFE_HEAP_STORE((arg+offset>>1)*2,2,2);return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();SAFE_HEAP_STORE((argp>>2)*4,termios.c_iflag||0,4);SAFE_HEAP_STORE((argp+4>>2)*4,termios.c_oflag||0,4);SAFE_HEAP_STORE((argp+8>>2)*4,termios.c_cflag||0,4);SAFE_HEAP_STORE((argp+12>>2)*4,termios.c_lflag||0,4);for(var i=0;i<32;i++){SAFE_HEAP_STORE(argp+i+17,termios.c_cc[i]||0,1)}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=SAFE_HEAP_LOAD((argp>>2)*4,4,0);var c_oflag=SAFE_HEAP_LOAD((argp+4>>2)*4,4,0);var c_cflag=SAFE_HEAP_LOAD((argp+8>>2)*4,4,0);var c_lflag=SAFE_HEAP_LOAD((argp+12>>2)*4,4,0);var c_cc=[];for(var i=0;i<32;i++){c_cc.push(SAFE_HEAP_LOAD(argp+i+17,1,0))}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();SAFE_HEAP_STORE((argp>>2)*4,0,4);return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();SAFE_HEAP_STORE((argp>>1)*2,winsize[0],2);SAFE_HEAP_STORE((argp+2>>1)*2,winsize[1],2)}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __abort_js=()=>{abort("")};var __emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);SAFE_HEAP_STORE((timezone>>2)*4,stdTimezoneOffset*60,4);SAFE_HEAP_STORE((daylight>>2)*4,Number(winterOffset!=summerOffset),4);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset{readEmAsmArgsArray.length=0;var ch;while(ch=SAFE_HEAP_LOAD(sigPtr++,1,1)){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?SAFE_HEAP_LOAD((buf>>2)*4,4,1):ch==105?SAFE_HEAP_LOAD((buf>>2)*4,4,0):SAFE_HEAP_LOAD_D((buf>>3)*8,8,0));buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;SAFE_HEAP_STORE((__environ+i*4>>2)*4,ptr,4);stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();SAFE_HEAP_STORE((penviron_count>>2)*4,strings.length,4);var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);SAFE_HEAP_STORE((penviron_buf_size>>2)*4,bufSize,4);return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2)*4,4,1);var len=SAFE_HEAP_LOAD((iov+4>>2)*4,4,1);iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2)*4,num,4);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],SAFE_HEAP_STORE((newOffset>>2)*4,tempI64[0],4),SAFE_HEAP_STORE((newOffset+4>>2)*4,tempI64[1],4);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2)*4,4,1);var len=SAFE_HEAP_LOAD((iov+4>>2)*4,4,1);iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2)*4,num,4);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _random_get(buffer,size){try{randomFill(HEAPU8.subarray(buffer,buffer+size));return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack="";var wasmImports={a:___assert_fail,e:___cxa_throw,g:___syscall_fcntl64,j:___syscall_ioctl,k:___syscall_openat,m:__abort_js,l:__emscripten_memcpy_js,p:__tzset_js,c:alignfault,d:_emscripten_asm_const_int,s:_emscripten_resize_heap,q:_environ_get,r:_environ_sizes_get,h:_fd_close,i:_fd_read,n:_fd_seek,f:_fd_write,o:_random_get,b:segfault};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["u"])();var _memset=Module["_memset"]=(a0,a1,a2)=>(_memset=Module["_memset"]=wasmExports["w"])(a0,a1,a2);var _memcpy=Module["_memcpy"]=(a0,a1,a2)=>(_memcpy=Module["_memcpy"]=wasmExports["x"])(a0,a1,a2);var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["y"])(a0);var _free=Module["_free"]=a0=>(_free=Module["_free"]=wasmExports["z"])(a0);var _ma_device__on_notification_unlocked=Module["_ma_device__on_notification_unlocked"]=a0=>(_ma_device__on_notification_unlocked=Module["_ma_device__on_notification_unlocked"]=wasmExports["A"])(a0);var _ma_malloc_emscripten=Module["_ma_malloc_emscripten"]=(a0,a1)=>(_ma_malloc_emscripten=Module["_ma_malloc_emscripten"]=wasmExports["B"])(a0,a1);var _ma_free_emscripten=Module["_ma_free_emscripten"]=(a0,a1)=>(_ma_free_emscripten=Module["_ma_free_emscripten"]=wasmExports["C"])(a0,a1);var _ma_device_process_pcm_frames_capture__webaudio=Module["_ma_device_process_pcm_frames_capture__webaudio"]=(a0,a1,a2)=>(_ma_device_process_pcm_frames_capture__webaudio=Module["_ma_device_process_pcm_frames_capture__webaudio"]=wasmExports["D"])(a0,a1,a2);var _ma_device_process_pcm_frames_playback__webaudio=Module["_ma_device_process_pcm_frames_playback__webaudio"]=(a0,a1,a2)=>(_ma_device_process_pcm_frames_playback__webaudio=Module["_ma_device_process_pcm_frames_playback__webaudio"]=wasmExports["E"])(a0,a1,a2);var _createWorkerInWasm=Module["_createWorkerInWasm"]=()=>(_createWorkerInWasm=Module["_createWorkerInWasm"]=wasmExports["F"])();var _sendToWorker=Module["_sendToWorker"]=(a0,a1)=>(_sendToWorker=Module["_sendToWorker"]=wasmExports["G"])(a0,a1);var _nativeFree=Module["_nativeFree"]=a0=>(_nativeFree=Module["_nativeFree"]=wasmExports["H"])(a0);var _voiceEndedCallback=Module["_voiceEndedCallback"]=a0=>(_voiceEndedCallback=Module["_voiceEndedCallback"]=wasmExports["I"])(a0);var _setDartEventCallback=Module["_setDartEventCallback"]=(a0,a1,a2)=>(_setDartEventCallback=Module["_setDartEventCallback"]=wasmExports["J"])(a0,a1,a2);var _areOpusOggLibsAvailable=Module["_areOpusOggLibsAvailable"]=()=>(_areOpusOggLibsAvailable=Module["_areOpusOggLibsAvailable"]=wasmExports["K"])();var _initEngine=Module["_initEngine"]=(a0,a1,a2,a3)=>(_initEngine=Module["_initEngine"]=wasmExports["L"])(a0,a1,a2,a3);var _changeDevice=Module["_changeDevice"]=a0=>(_changeDevice=Module["_changeDevice"]=wasmExports["M"])(a0);var _listPlaybackDevices=Module["_listPlaybackDevices"]=(a0,a1,a2,a3)=>(_listPlaybackDevices=Module["_listPlaybackDevices"]=wasmExports["N"])(a0,a1,a2,a3);var _freeListPlaybackDevices=Module["_freeListPlaybackDevices"]=(a0,a1,a2,a3)=>(_freeListPlaybackDevices=Module["_freeListPlaybackDevices"]=wasmExports["O"])(a0,a1,a2,a3);var _dispose=Module["_dispose"]=()=>(_dispose=Module["_dispose"]=wasmExports["P"])();var _isInited=Module["_isInited"]=()=>(_isInited=Module["_isInited"]=wasmExports["Q"])();var _loadFile=Module["_loadFile"]=(a0,a1)=>(_loadFile=Module["_loadFile"]=wasmExports["R"])(a0,a1);var _loadMem=Module["_loadMem"]=(a0,a1,a2,a3,a4)=>(_loadMem=Module["_loadMem"]=wasmExports["S"])(a0,a1,a2,a3,a4);var _setBufferStream=Module["_setBufferStream"]=(a0,a1,a2,a3,a4,a5,a6)=>(_setBufferStream=Module["_setBufferStream"]=wasmExports["T"])(a0,a1,a2,a3,a4,a5,a6);var _addAudioDataStream=Module["_addAudioDataStream"]=(a0,a1,a2)=>(_addAudioDataStream=Module["_addAudioDataStream"]=wasmExports["U"])(a0,a1,a2);var _setDataIsEnded=Module["_setDataIsEnded"]=a0=>(_setDataIsEnded=Module["_setDataIsEnded"]=wasmExports["V"])(a0);var _getBufferSize=Module["_getBufferSize"]=(a0,a1)=>(_getBufferSize=Module["_getBufferSize"]=wasmExports["W"])(a0,a1);var _loadWaveform=Module["_loadWaveform"]=(a0,a1,a2,a3,a4)=>(_loadWaveform=Module["_loadWaveform"]=wasmExports["X"])(a0,a1,a2,a3,a4);var _setWaveformScale=Module["_setWaveformScale"]=(a0,a1)=>(_setWaveformScale=Module["_setWaveformScale"]=wasmExports["Y"])(a0,a1);var _setWaveformDetune=Module["_setWaveformDetune"]=(a0,a1)=>(_setWaveformDetune=Module["_setWaveformDetune"]=wasmExports["Z"])(a0,a1);var _setWaveformFreq=Module["_setWaveformFreq"]=(a0,a1)=>(_setWaveformFreq=Module["_setWaveformFreq"]=wasmExports["_"])(a0,a1);var _setSuperWave=Module["_setSuperWave"]=(a0,a1)=>(_setSuperWave=Module["_setSuperWave"]=wasmExports["$"])(a0,a1);var _setWaveform=Module["_setWaveform"]=(a0,a1)=>(_setWaveform=Module["_setWaveform"]=wasmExports["aa"])(a0,a1);var _speechText=Module["_speechText"]=(a0,a1)=>(_speechText=Module["_speechText"]=wasmExports["ba"])(a0,a1);var _pauseSwitch=Module["_pauseSwitch"]=a0=>(_pauseSwitch=Module["_pauseSwitch"]=wasmExports["ca"])(a0);var _setPause=Module["_setPause"]=(a0,a1)=>(_setPause=Module["_setPause"]=wasmExports["da"])(a0,a1);var _getPause=Module["_getPause"]=a0=>(_getPause=Module["_getPause"]=wasmExports["ea"])(a0);var _setRelativePlaySpeed=Module["_setRelativePlaySpeed"]=(a0,a1)=>(_setRelativePlaySpeed=Module["_setRelativePlaySpeed"]=wasmExports["fa"])(a0,a1);var _getRelativePlaySpeed=Module["_getRelativePlaySpeed"]=a0=>(_getRelativePlaySpeed=Module["_getRelativePlaySpeed"]=wasmExports["ga"])(a0);var _play=Module["_play"]=(a0,a1,a2,a3,a4,a5,a6)=>(_play=Module["_play"]=wasmExports["ha"])(a0,a1,a2,a3,a4,a5,a6);var _stop=Module["_stop"]=a0=>(_stop=Module["_stop"]=wasmExports["ia"])(a0);var _disposeSound=Module["_disposeSound"]=a0=>(_disposeSound=Module["_disposeSound"]=wasmExports["ja"])(a0);var _disposeAllSound=Module["_disposeAllSound"]=()=>(_disposeAllSound=Module["_disposeAllSound"]=wasmExports["ka"])();var _getLooping=Module["_getLooping"]=a0=>(_getLooping=Module["_getLooping"]=wasmExports["la"])(a0);var _setLooping=Module["_setLooping"]=(a0,a1)=>(_setLooping=Module["_setLooping"]=wasmExports["ma"])(a0,a1);var _getLoopPoint=Module["_getLoopPoint"]=a0=>(_getLoopPoint=Module["_getLoopPoint"]=wasmExports["na"])(a0);var _setLoopPoint=Module["_setLoopPoint"]=(a0,a1)=>(_setLoopPoint=Module["_setLoopPoint"]=wasmExports["oa"])(a0,a1);var _setVisualizationEnabled=Module["_setVisualizationEnabled"]=a0=>(_setVisualizationEnabled=Module["_setVisualizationEnabled"]=wasmExports["pa"])(a0);var _getVisualizationEnabled=Module["_getVisualizationEnabled"]=()=>(_getVisualizationEnabled=Module["_getVisualizationEnabled"]=wasmExports["qa"])();var _getFft=Module["_getFft"]=a0=>(_getFft=Module["_getFft"]=wasmExports["ra"])(a0);var _getWave=Module["_getWave"]=a0=>(_getWave=Module["_getWave"]=wasmExports["sa"])(a0);var _setFftSmoothing=Module["_setFftSmoothing"]=a0=>(_setFftSmoothing=Module["_setFftSmoothing"]=wasmExports["ta"])(a0);var _getAudioTexture=Module["_getAudioTexture"]=a0=>(_getAudioTexture=Module["_getAudioTexture"]=wasmExports["ua"])(a0);var _getAudioTexture2D=Module["_getAudioTexture2D"]=a0=>(_getAudioTexture2D=Module["_getAudioTexture2D"]=wasmExports["va"])(a0);var _getTextureValue=Module["_getTextureValue"]=(a0,a1)=>(_getTextureValue=Module["_getTextureValue"]=wasmExports["wa"])(a0,a1);var _getLength=Module["_getLength"]=a0=>(_getLength=Module["_getLength"]=wasmExports["xa"])(a0);var _seek=Module["_seek"]=(a0,a1)=>(_seek=Module["_seek"]=wasmExports["ya"])(a0,a1);var _getPosition=Module["_getPosition"]=a0=>(_getPosition=Module["_getPosition"]=wasmExports["za"])(a0);var _getGlobalVolume=Module["_getGlobalVolume"]=()=>(_getGlobalVolume=Module["_getGlobalVolume"]=wasmExports["Aa"])();var _setGlobalVolume=Module["_setGlobalVolume"]=a0=>(_setGlobalVolume=Module["_setGlobalVolume"]=wasmExports["Ba"])(a0);var _getVolume=Module["_getVolume"]=a0=>(_getVolume=Module["_getVolume"]=wasmExports["Ca"])(a0);var _setVolume=Module["_setVolume"]=(a0,a1)=>(_setVolume=Module["_setVolume"]=wasmExports["Da"])(a0,a1);var _getPan=Module["_getPan"]=a0=>(_getPan=Module["_getPan"]=wasmExports["Ea"])(a0);var _setPan=Module["_setPan"]=(a0,a1)=>(_setPan=Module["_setPan"]=wasmExports["Fa"])(a0,a1);var _setPanAbsolute=Module["_setPanAbsolute"]=(a0,a1,a2)=>(_setPanAbsolute=Module["_setPanAbsolute"]=wasmExports["Ga"])(a0,a1,a2);var _getIsValidVoiceHandle=Module["_getIsValidVoiceHandle"]=a0=>(_getIsValidVoiceHandle=Module["_getIsValidVoiceHandle"]=wasmExports["Ha"])(a0);var _getActiveVoiceCount=Module["_getActiveVoiceCount"]=()=>(_getActiveVoiceCount=Module["_getActiveVoiceCount"]=wasmExports["Ia"])();var _countAudioSource=Module["_countAudioSource"]=a0=>(_countAudioSource=Module["_countAudioSource"]=wasmExports["Ja"])(a0);var _getVoiceCount=Module["_getVoiceCount"]=()=>(_getVoiceCount=Module["_getVoiceCount"]=wasmExports["Ka"])();var _getProtectVoice=Module["_getProtectVoice"]=a0=>(_getProtectVoice=Module["_getProtectVoice"]=wasmExports["La"])(a0);var _setProtectVoice=Module["_setProtectVoice"]=(a0,a1)=>(_setProtectVoice=Module["_setProtectVoice"]=wasmExports["Ma"])(a0,a1);var _setInaudibleBehavior=Module["_setInaudibleBehavior"]=(a0,a1,a2)=>(_setInaudibleBehavior=Module["_setInaudibleBehavior"]=wasmExports["Na"])(a0,a1,a2);var _getMaxActiveVoiceCount=Module["_getMaxActiveVoiceCount"]=()=>(_getMaxActiveVoiceCount=Module["_getMaxActiveVoiceCount"]=wasmExports["Oa"])();var _setMaxActiveVoiceCount=Module["_setMaxActiveVoiceCount"]=a0=>(_setMaxActiveVoiceCount=Module["_setMaxActiveVoiceCount"]=wasmExports["Pa"])(a0);var _createVoiceGroup=Module["_createVoiceGroup"]=()=>(_createVoiceGroup=Module["_createVoiceGroup"]=wasmExports["Qa"])();var _destroyVoiceGroup=Module["_destroyVoiceGroup"]=a0=>(_destroyVoiceGroup=Module["_destroyVoiceGroup"]=wasmExports["Ra"])(a0);var _addVoiceToGroup=Module["_addVoiceToGroup"]=(a0,a1)=>(_addVoiceToGroup=Module["_addVoiceToGroup"]=wasmExports["Sa"])(a0,a1);var _isVoiceGroup=Module["_isVoiceGroup"]=a0=>(_isVoiceGroup=Module["_isVoiceGroup"]=wasmExports["Ta"])(a0);var _isVoiceGroupEmpty=Module["_isVoiceGroupEmpty"]=a0=>(_isVoiceGroupEmpty=Module["_isVoiceGroupEmpty"]=wasmExports["Ua"])(a0);var _fadeGlobalVolume=Module["_fadeGlobalVolume"]=(a0,a1)=>(_fadeGlobalVolume=Module["_fadeGlobalVolume"]=wasmExports["Va"])(a0,a1);var _fadeVolume=Module["_fadeVolume"]=(a0,a1,a2)=>(_fadeVolume=Module["_fadeVolume"]=wasmExports["Wa"])(a0,a1,a2);var _fadePan=Module["_fadePan"]=(a0,a1,a2)=>(_fadePan=Module["_fadePan"]=wasmExports["Xa"])(a0,a1,a2);var _fadeRelativePlaySpeed=Module["_fadeRelativePlaySpeed"]=(a0,a1,a2)=>(_fadeRelativePlaySpeed=Module["_fadeRelativePlaySpeed"]=wasmExports["Ya"])(a0,a1,a2);var _schedulePause=Module["_schedulePause"]=(a0,a1)=>(_schedulePause=Module["_schedulePause"]=wasmExports["Za"])(a0,a1);var _scheduleStop=Module["_scheduleStop"]=(a0,a1)=>(_scheduleStop=Module["_scheduleStop"]=wasmExports["_a"])(a0,a1);var _oscillateVolume=Module["_oscillateVolume"]=(a0,a1,a2,a3)=>(_oscillateVolume=Module["_oscillateVolume"]=wasmExports["$a"])(a0,a1,a2,a3);var _oscillatePan=Module["_oscillatePan"]=(a0,a1,a2,a3)=>(_oscillatePan=Module["_oscillatePan"]=wasmExports["ab"])(a0,a1,a2,a3);var _oscillateRelativePlaySpeed=Module["_oscillateRelativePlaySpeed"]=(a0,a1,a2,a3)=>(_oscillateRelativePlaySpeed=Module["_oscillateRelativePlaySpeed"]=wasmExports["bb"])(a0,a1,a2,a3);var _oscillateGlobalVolume=Module["_oscillateGlobalVolume"]=(a0,a1,a2)=>(_oscillateGlobalVolume=Module["_oscillateGlobalVolume"]=wasmExports["cb"])(a0,a1,a2);var _isFilterActive=Module["_isFilterActive"]=(a0,a1,a2)=>(_isFilterActive=Module["_isFilterActive"]=wasmExports["db"])(a0,a1,a2);var _getFilterParamNames=Module["_getFilterParamNames"]=(a0,a1,a2)=>(_getFilterParamNames=Module["_getFilterParamNames"]=wasmExports["eb"])(a0,a1,a2);var _addFilter=Module["_addFilter"]=(a0,a1)=>(_addFilter=Module["_addFilter"]=wasmExports["fb"])(a0,a1);var _removeFilter=Module["_removeFilter"]=(a0,a1)=>(_removeFilter=Module["_removeFilter"]=wasmExports["gb"])(a0,a1);var _setFilterParams=Module["_setFilterParams"]=(a0,a1,a2,a3)=>(_setFilterParams=Module["_setFilterParams"]=wasmExports["hb"])(a0,a1,a2,a3);var _getFilterParams=Module["_getFilterParams"]=(a0,a1,a2,a3)=>(_getFilterParams=Module["_getFilterParams"]=wasmExports["ib"])(a0,a1,a2,a3);var _fadeFilterParameter=Module["_fadeFilterParameter"]=(a0,a1,a2,a3,a4)=>(_fadeFilterParameter=Module["_fadeFilterParameter"]=wasmExports["jb"])(a0,a1,a2,a3,a4);var _oscillateFilterParameter=Module["_oscillateFilterParameter"]=(a0,a1,a2,a3,a4,a5)=>(_oscillateFilterParameter=Module["_oscillateFilterParameter"]=wasmExports["kb"])(a0,a1,a2,a3,a4,a5);var _play3d=Module["_play3d"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)=>(_play3d=Module["_play3d"]=wasmExports["lb"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);var _set3dSoundSpeed=Module["_set3dSoundSpeed"]=a0=>(_set3dSoundSpeed=Module["_set3dSoundSpeed"]=wasmExports["mb"])(a0);var _get3dSoundSpeed=Module["_get3dSoundSpeed"]=()=>(_get3dSoundSpeed=Module["_get3dSoundSpeed"]=wasmExports["nb"])();var _set3dListenerParameters=Module["_set3dListenerParameters"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)=>(_set3dListenerParameters=Module["_set3dListenerParameters"]=wasmExports["ob"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);var _set3dListenerPosition=Module["_set3dListenerPosition"]=(a0,a1,a2)=>(_set3dListenerPosition=Module["_set3dListenerPosition"]=wasmExports["pb"])(a0,a1,a2);var _set3dListenerAt=Module["_set3dListenerAt"]=(a0,a1,a2)=>(_set3dListenerAt=Module["_set3dListenerAt"]=wasmExports["qb"])(a0,a1,a2);var _set3dListenerUp=Module["_set3dListenerUp"]=(a0,a1,a2)=>(_set3dListenerUp=Module["_set3dListenerUp"]=wasmExports["rb"])(a0,a1,a2);var _set3dListenerVelocity=Module["_set3dListenerVelocity"]=(a0,a1,a2)=>(_set3dListenerVelocity=Module["_set3dListenerVelocity"]=wasmExports["sb"])(a0,a1,a2);var _set3dSourceParameters=Module["_set3dSourceParameters"]=(a0,a1,a2,a3,a4,a5,a6)=>(_set3dSourceParameters=Module["_set3dSourceParameters"]=wasmExports["tb"])(a0,a1,a2,a3,a4,a5,a6);var _set3dSourcePosition=Module["_set3dSourcePosition"]=(a0,a1,a2,a3)=>(_set3dSourcePosition=Module["_set3dSourcePosition"]=wasmExports["ub"])(a0,a1,a2,a3);var _set3dSourceVelocity=Module["_set3dSourceVelocity"]=(a0,a1,a2,a3)=>(_set3dSourceVelocity=Module["_set3dSourceVelocity"]=wasmExports["vb"])(a0,a1,a2,a3);var _set3dSourceMinMaxDistance=Module["_set3dSourceMinMaxDistance"]=(a0,a1,a2)=>(_set3dSourceMinMaxDistance=Module["_set3dSourceMinMaxDistance"]=wasmExports["wb"])(a0,a1,a2);var _set3dSourceAttenuation=Module["_set3dSourceAttenuation"]=(a0,a1,a2)=>(_set3dSourceAttenuation=Module["_set3dSourceAttenuation"]=wasmExports["xb"])(a0,a1,a2);var _set3dSourceDopplerFactor=Module["_set3dSourceDopplerFactor"]=(a0,a1)=>(_set3dSourceDopplerFactor=Module["_set3dSourceDopplerFactor"]=wasmExports["yb"])(a0,a1);var _readSamplesFromFile=Module["_readSamplesFromFile"]=(a0,a1,a2,a3,a4,a5)=>(_readSamplesFromFile=Module["_readSamplesFromFile"]=wasmExports["zb"])(a0,a1,a2,a3,a4,a5);var _readSamplesFromMem=Module["_readSamplesFromMem"]=(a0,a1,a2,a3,a4,a5,a6)=>(_readSamplesFromMem=Module["_readSamplesFromMem"]=wasmExports["Ab"])(a0,a1,a2,a3,a4,a5,a6);var _sbrk=a0=>(_sbrk=wasmExports["Bb"])(a0);var _emscripten_stack_get_base=()=>(_emscripten_stack_get_base=wasmExports["Cb"])();var __emscripten_stack_restore=a0=>(__emscripten_stack_restore=wasmExports["Db"])(a0);var __emscripten_stack_alloc=a0=>(__emscripten_stack_alloc=wasmExports["Eb"])(a0);var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports["Fb"])();Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["setValue"]=setValue;Module["getValue"]=getValue;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();moduleRtn=readyPromise; return moduleRtn; diff --git a/web/libflutter_soloud_plugin.wasm b/web/libflutter_soloud_plugin.wasm index 47da7921..e75db95e 100755 Binary files a/web/libflutter_soloud_plugin.wasm and b/web/libflutter_soloud_plugin.wasm differ diff --git a/web/worker.dart b/web/worker.dart index 037d73e5..816dbb2a 100644 --- a/web/worker.dart +++ b/web/worker.dart @@ -1,7 +1,6 @@ // ignore_for_file: document_ignores import 'dart:async'; -import 'dart:convert' show jsonDecode; import 'dart:js_interop'; import 'dart:js_interop_unsafe'; @@ -27,8 +26,7 @@ Stream callbackToStream( final controller = StreamController.broadcast(sync: true); void eventFunction(JSAny event) { - final jsEvent = event.jsify; - controller.add(unwrapValue(jsEvent as J)); + controller.add(unwrapValue(event as J)); } object.setProperty( @@ -59,20 +57,12 @@ class Worker { void main() async { // print('Worker created.\n'); final worker = Worker(); + // ignore: unnecessary_lambdas worker.onReceive().listen((data) { - // print('Dart worker: ' - // 'onMessage received $data with type of ${data.runtimeType}\n'); + // ignore: avoid_print + // print('Dart worker: onMessage received $data ' + // 'with type of ${data.runtimeType}\n'); - if (data is String) { - try { - final parseMap = jsonDecode(data) as Map; - // ignore: avoid_print - print('Received $data PARSED TO $parseMap\n'); - worker.sendMessage(data); - } on Exception catch (_) { - // ignore: avoid_print - print("Received data from WASM worker but it's not a String!\n"); - } - } + worker.sendMessage(data); }); } diff --git a/web/worker.dart.js b/web/worker.dart.js index 232ccf35..d809333d 100644 --- a/web/worker.dart.js +++ b/web/worker.dart.js @@ -22,17 +22,17 @@ a[c]=function(){if(a[b]===s){a[b]=d()}a[c]=function(){return this[b]} return a[b]}}function lazyFinal(a,b,c,d){var s=a a[b]=s a[c]=function(){if(a[b]===s){var r=d() -if(a[b]!==s){A.hh(b)}a[b]=r}var q=a[b] +if(a[b]!==s){A.h3(b)}a[b]=r}var q=a[b] a[c]=function(){return q} return q}}function makeConstList(a){a.$flags=7 return a}function convertToFastObject(a){function t(){}t.prototype=a new t() return a}function convertAllToFastObject(a){for(var s=0;s").u(d).i("aj<1,2>")) -return new A.X(a,b,c.i("@<0>").u(d).i("X<1,2>"))}, -as:function as(a){this.a=a}, +ev(a,b,c,d){if(t.V.b(a))return new A.ag(a,b,c.i("@<0>").u(d).i("ag<1,2>")) +return new A.U(a,b,c.i("@<0>").u(d).i("U<1,2>"))}, +ap:function ap(a){this.a=a}, e:function e(){}, -D:function D(){}, -a3:function a3(a,b,c){var _=this +N:function N(){}, +a0:function a0(a,b,c){var _=this _.a=a _.b=b _.c=0 _.d=null _.$ti=c}, -X:function X(a,b,c){this.a=a +U:function U(a,b,c){this.a=a this.b=b this.$ti=c}, -aj:function aj(a,b,c){this.a=a +ag:function ag(a,b,c){this.a=a this.b=b this.$ti=c}, -be:function be(a,b,c){var _=this +b7:function b7(a,b,c){var _=this _.a=null _.b=a _.c=b _.$ti=c}, -F:function F(a,b,c){this.a=a +D:function D(a,b,c){this.a=a this.b=b this.$ti=c}, -al:function al(){}, -eg(a){var s=v.mangledGlobalNames[a] +ai:function ai(){}, +e3(a){var s=v.mangledGlobalNames[a] if(s!=null)return s return"minified:"+a}, -hQ(a,b){var s +hC(a,b){var s if(b!=null){s=b.x if(s!=null)return s}return t.p.b(a)}, o(a){var s @@ -172,53 +169,53 @@ if(typeof a=="string")return a if(typeof a=="number"){if(a!==0)return""+a}else if(!0===a)return"true" else if(!1===a)return"false" else if(a==null)return"null" -s=J.b0(a) +s=J.aV(a) return s}, -aA(a){var s,r=$.dv -if(r==null)r=$.dv=Symbol("identityHashCode") +av(a){var s,r=$.dj +if(r==null)r=$.dj=Symbol("identityHashCode") s=a[r] if(s==null){s=Math.random()*0x3fffffff|0 a[r]=s}return s}, -c1(a){return A.eK(a)}, -eK(a){var s,r,q,p -if(a instanceof A.d)return A.u(A.ag(a),null) -s=J.a0(a) -if(s===B.o||s===B.t||t.o.b(a)){r=B.c(a) +bR(a){return A.ew(a)}, +ew(a){var s,r,q,p +if(a instanceof A.d)return A.t(A.Z(a),null) +s=J.af(a) +if(s===B.n||s===B.r||t.o.b(a)){r=B.c(a) if(r!=="Object"&&r!=="")return r q=a.constructor if(typeof q=="function"){p=q.name -if(typeof p=="string"&&p!=="Object"&&p!=="")return p}}return A.u(A.ag(a),null)}, -eM(a){if(typeof a=="number"||A.cK(a))return J.b0(a) +if(typeof p=="string"&&p!=="Object"&&p!=="")return p}}return A.t(A.Z(a),null)}, +ey(a){if(typeof a=="number"||A.cy(a))return J.aV(a) if(typeof a=="string")return JSON.stringify(a) -if(a instanceof A.W)return a.h(0) -return"Instance of '"+A.c1(a)+"'"}, -eL(a){var s=a.$thrownJsError +if(a instanceof A.T)return a.h(0) +return"Instance of '"+A.bR(a)+"'"}, +ex(a){var s=a.$thrownJsError if(s==null)return null -return A.L(s)}, -B(a,b){if(a==null)J.cX(a) -throw A.b(A.e6(a,b))}, -e6(a,b){var s,r="index" -if(!A.dX(b))return new A.C(!0,b,r,null) -s=J.cX(a) -if(b<0||b>=s)return A.dt(b,s,a,r) -return new A.aB(null,null,!0,b,r,"Value not in range")}, -b(a){return A.ea(new Error(),a)}, -ea(a,b){var s -if(b==null)b=new A.H() +return A.J(s)}, +C(a,b){if(a==null)J.cL(a) +throw A.b(A.dV(a,b))}, +dV(a,b){var s,r="index" +if(!A.dM(b))return new A.A(!0,b,r,null) +s=J.cL(a) +if(b<0||b>=s)return A.eq(b,s,a,r) +return new A.aw(null,null,!0,b,r,"Value not in range")}, +b(a){return A.dZ(new Error(),a)}, +dZ(a,b){var s +if(b==null)b=new A.F() a.dartException=b -s=A.hj +s=A.h5 if("defineProperty" in Object){Object.defineProperty(a,"message",{get:s}) a.name=""}else a.toString=s return a}, -hj(){return J.b0(this.dartException)}, -bM(a){throw A.b(a)}, -di(a,b){throw A.ea(b,a)}, -hi(a,b,c){var s +h5(){return J.aV(this.dartException)}, +bE(a){throw A.b(a)}, +d7(a,b){throw A.dZ(b,a)}, +h4(a,b,c){var s if(b==null)b=0 if(c==null)c=0 s=Error() -A.di(A.fn(a,b,c),s)}, -fn(a,b,c){var s,r,q,p,o,n,m,l,k +A.d7(A.f9(a,b,c),s)}, +f9(a,b,c){var s,r,q,p,o,n,m,l,k if(typeof b=="string")s=b else{r="[]=;add;removeWhere;retainWhere;removeRange;setRange;setInt8;setInt16;setInt32;setUint8;setUint16;setUint32;setFloat32;setFloat64".split(";") q=r.length @@ -231,77 +228,77 @@ l="a " if((m&4)!==0)k="constant " else if((m&2)!==0){k="unmodifiable " l="an "}else k=(m&1)!==0?"fixed-length ":"" -return new A.aE("'"+s+"': Cannot "+o+" "+l+k+n)}, -hg(a){throw A.b(A.ai(a))}, -I(a){var s,r,q,p,o,n -a=A.hf(a.replace(String({}),"$receiver$")) +return new A.az("'"+s+"': Cannot "+o+" "+l+k+n)}, +h2(a){throw A.b(A.bH(a))}, +G(a){var s,r,q,p,o,n +a=A.h1(a.replace(String({}),"$receiver$")) s=a.match(/\\\$[a-zA-Z]+\\\$/g) -if(s==null)s=A.aZ([],t.s) +if(s==null)s=A.bD([],t.s) r=s.indexOf("\\$arguments\\$") q=s.indexOf("\\$argumentsExpr\\$") p=s.indexOf("\\$expr\\$") o=s.indexOf("\\$method\\$") n=s.indexOf("\\$receiver\\$") -return new A.c6(a.replace(new RegExp("\\\\\\$arguments\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$argumentsExpr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$expr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$method\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$receiver\\\\\\$","g"),"((?:x|[^x])*)"),r,q,p,o,n)}, -c7(a){return function($expr$){var $argumentsExpr$="$arguments$" +return new A.bW(a.replace(new RegExp("\\\\\\$arguments\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$argumentsExpr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$expr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$method\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$receiver\\\\\\$","g"),"((?:x|[^x])*)"),r,q,p,o,n)}, +bX(a){return function($expr$){var $argumentsExpr$="$arguments$" try{$expr$.$method$($argumentsExpr$)}catch(s){return s.message}}(a)}, -dB(a){return function($expr$){try{$expr$.$method$}catch(s){return s.message}}(a)}, -d1(a,b){var s=b==null,r=s?null:b.method -return new A.bc(a,r,s?null:b.receiver)}, -N(a){if(a==null)return new A.c_(a) -if(a instanceof A.ak)return A.U(a,a.a) +dq(a){return function($expr$){try{$expr$.$method$}catch(s){return s.message}}(a)}, +cQ(a,b){var s=b==null,r=s?null:b.method +return new A.b6(a,r,s?null:b.receiver)}, +R(a){if(a==null)return new A.bQ(a) +if(a instanceof A.ah)return A.Q(a,a.a) if(typeof a!=="object")return a -if("dartException" in a)return A.U(a,a.dartException) -return A.fT(a)}, -U(a,b){if(t.Q.b(b))if(b.$thrownJsError==null)b.$thrownJsError=a +if("dartException" in a)return A.Q(a,a.dartException) +return A.fE(a)}, +Q(a,b){if(t.Q.b(b))if(b.$thrownJsError==null)b.$thrownJsError=a return b}, -fT(a){var s,r,q,p,o,n,m,l,k,j,i,h,g +fE(a){var s,r,q,p,o,n,m,l,k,j,i,h,g if(!("message" in a))return a s=a.message if("number" in a&&typeof a.number=="number"){r=a.number q=r&65535 -if((B.q.aH(r,16)&8191)===10)switch(q){case 438:return A.U(a,A.d1(A.o(s)+" (Error "+q+")",null)) +if((B.p.aE(r,16)&8191)===10)switch(q){case 438:return A.Q(a,A.cQ(A.o(s)+" (Error "+q+")",null)) case 445:case 5007:A.o(s) -return A.U(a,new A.az())}}if(a instanceof TypeError){p=$.eh() -o=$.ei() -n=$.ej() -m=$.ek() -l=$.en() -k=$.eo() -j=$.em() -$.el() -i=$.eq() -h=$.ep() +return A.Q(a,new A.au())}}if(a instanceof TypeError){p=$.e4() +o=$.e5() +n=$.e6() +m=$.e7() +l=$.ea() +k=$.eb() +j=$.e9() +$.e8() +i=$.ed() +h=$.ec() g=p.t(s) -if(g!=null)return A.U(a,A.d1(s,g)) +if(g!=null)return A.Q(a,A.cQ(s,g)) else{g=o.t(s) if(g!=null){g.method="call" -return A.U(a,A.d1(s,g))}else if(n.t(s)!=null||m.t(s)!=null||l.t(s)!=null||k.t(s)!=null||j.t(s)!=null||m.t(s)!=null||i.t(s)!=null||h.t(s)!=null)return A.U(a,new A.az())}return A.U(a,new A.bt(typeof s=="string"?s:""))}if(a instanceof RangeError){if(typeof s=="string"&&s.indexOf("call stack")!==-1)return new A.aC() +return A.Q(a,A.cQ(s,g))}else if(n.t(s)!=null||m.t(s)!=null||l.t(s)!=null||k.t(s)!=null||j.t(s)!=null||m.t(s)!=null||i.t(s)!=null||h.t(s)!=null)return A.Q(a,new A.au())}return A.Q(a,new A.bm(typeof s=="string"?s:""))}if(a instanceof RangeError){if(typeof s=="string"&&s.indexOf("call stack")!==-1)return new A.ax() s=function(b){try{return String(b)}catch(f){}return null}(a) -return A.U(a,new A.C(!1,null,null,typeof s=="string"?s.replace(/^RangeError:\s*/,""):s))}if(typeof InternalError=="function"&&a instanceof InternalError)if(typeof s=="string"&&s==="too much recursion")return new A.aC() +return A.Q(a,new A.A(!1,null,null,typeof s=="string"?s.replace(/^RangeError:\s*/,""):s))}if(typeof InternalError=="function"&&a instanceof InternalError)if(typeof s=="string"&&s==="too much recursion")return new A.ax() return a}, -L(a){var s -if(a instanceof A.ak)return a.b -if(a==null)return new A.aQ(a) +J(a){var s +if(a instanceof A.ah)return a.b +if(a==null)return new A.aL(a) s=a.$cachedTrace if(s!=null)return s -s=new A.aQ(a) +s=new A.aL(a) if(typeof a==="object")a.$cachedTrace=s return s}, -dg(a){if(a==null)return J.dl(a) -if(typeof a=="object")return A.aA(a) -return J.dl(a)}, -fv(a,b,c,d,e,f){switch(b){case 0:return a.$0() +d5(a){if(a==null)return J.da(a) +if(typeof a=="object")return A.av(a) +return J.da(a)}, +fh(a,b,c,d,e,f){switch(b){case 0:return a.$0() case 1:return a.$1(c) case 2:return a.$2(c,d) case 3:return a.$3(c,d,e) -case 4:return a.$4(c,d,e,f)}throw A.b(new A.ci("Unsupported number of arguments for wrapped closure"))}, -cO(a,b){var s=a.$identity +case 4:return a.$4(c,d,e,f)}throw A.b(new A.c7("Unsupported number of arguments for wrapped closure"))}, +cC(a,b){var s=a.$identity if(!!s)return s -s=A.h0(a,b) +s=A.fM(a,b) a.$identity=s return s}, -h0(a,b){var s +fM(a,b){var s switch(b){case 0:s=a.$0 break case 1:s=a.$1 @@ -313,10 +310,10 @@ break case 4:s=a.$4 break default:s=null}if(s!=null)return s.bind(a) -return function(c,d,e){return function(f,g,h,i){return e(c,d,f,g,h,i)}}(a,b,A.fv)}, -eB(a2){var s,r,q,p,o,n,m,l,k,j,i=a2.co,h=a2.iS,g=a2.iI,f=a2.nDA,e=a2.aI,d=a2.fs,c=a2.cs,b=d[0],a=c[0],a0=i[b],a1=a2.fT +return function(c,d,e){return function(f,g,h,i){return e(c,d,f,g,h,i)}}(a,b,A.fh)}, +en(a2){var s,r,q,p,o,n,m,l,k,j,i=a2.co,h=a2.iS,g=a2.iI,f=a2.nDA,e=a2.aI,d=a2.fs,c=a2.cs,b=d[0],a=c[0],a0=i[b],a1=a2.fT a1.toString -s=h?Object.create(new A.c2().constructor.prototype):Object.create(new A.ah(null,null).constructor.prototype) +s=h?Object.create(new A.bS().constructor.prototype):Object.create(new A.b_(null,null).constructor.prototype) s.$initialize=s.constructor r=h?function static_tear_off(){this.$initialize()}:function tear_off(a3,a4){this.$initialize(a3,a4)} s.constructor=r @@ -324,24 +321,24 @@ r.prototype=s s.$_name=b s.$_target=a0 q=!h -if(q)p=A.ds(b,a0,g,f) +if(q)p=A.dh(b,a0,g,f) else{s.$static_name=b -p=a0}s.$S=A.ex(a1,h,g) +p=a0}s.$S=A.ej(a1,h,g) s[a]=p for(o=p,n=1;n>>0!==a||a>=c)throw A.b(A.e6(b,a))}, +bj:function bj(a){this.a=a}, +cE:function cE(a){this.a=a}, +cF:function cF(a){this.a=a}, +cG:function cG(a){this.a=a}, +Y(a,b,c){if(a>>>0!==a||a>=c)throw A.b(A.dV(b,a))}, +b8:function b8(){}, +as:function as(){}, +b9:function b9(){}, +a2:function a2(){}, +aq:function aq(){}, +ar:function ar(){}, +ba:function ba(){}, +bb:function bb(){}, +bc:function bc(){}, +bd:function bd(){}, +be:function be(){}, bf:function bf(){}, -ax:function ax(){}, bg:function bg(){}, -a4:function a4(){}, -av:function av(){}, -aw:function aw(){}, +at:function at(){}, bh:function bh(){}, -bi:function bi(){}, -bj:function bj(){}, -bk:function bk(){}, -bl:function bl(){}, -bm:function bm(){}, -bn:function bn(){}, -ay:function ay(){}, -bo:function bo(){}, -aL:function aL(){}, -aM:function aM(){}, -aN:function aN(){}, -aO:function aO(){}, -dw(a,b){var s=b.c -return s==null?b.c=A.d5(a,b.x,!0):s}, -d2(a,b){var s=b.c -return s==null?b.c=A.aV(a,"a2",[b.x]):s}, -dx(a){var s=a.w -if(s===6||s===7||s===8)return A.dx(a.x) +aG:function aG(){}, +aH:function aH(){}, +aI:function aI(){}, +aJ:function aJ(){}, +dk(a,b){var s=b.c +return s==null?b.c=A.cU(a,b.x,!0):s}, +cR(a,b){var s=b.c +return s==null?b.c=A.aQ(a,"a_",[b.x]):s}, +dl(a){var s=a.w +if(s===6||s===7||s===8)return A.dl(a.x) return s===12||s===13}, -eO(a){return a.as}, -e7(a){return A.bH(v.typeUniverse,a,!1)}, -T(a1,a2,a3,a4){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0=a2.w +eA(a){return a.as}, +dW(a){return A.by(v.typeUniverse,a,!1)}, +P(a1,a2,a3,a4){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0=a2.w switch(a0){case 5:case 1:case 2:case 3:case 4:return a2 case 6:s=a2.x -r=A.T(a1,s,a3,a4) +r=A.P(a1,s,a3,a4) if(r===s)return a2 -return A.dQ(a1,r,!0) +return A.dF(a1,r,!0) case 7:s=a2.x -r=A.T(a1,s,a3,a4) +r=A.P(a1,s,a3,a4) if(r===s)return a2 -return A.d5(a1,r,!0) +return A.cU(a1,r,!0) case 8:s=a2.x -r=A.T(a1,s,a3,a4) +r=A.P(a1,s,a3,a4) if(r===s)return a2 -return A.dO(a1,r,!0) +return A.dD(a1,r,!0) case 9:q=a2.y -p=A.ae(a1,q,a3,a4) +p=A.ad(a1,q,a3,a4) if(p===q)return a2 -return A.aV(a1,a2.x,p) +return A.aQ(a1,a2.x,p) case 10:o=a2.x -n=A.T(a1,o,a3,a4) +n=A.P(a1,o,a3,a4) m=a2.y -l=A.ae(a1,m,a3,a4) +l=A.ad(a1,m,a3,a4) if(n===o&&l===m)return a2 -return A.d3(a1,n,l) +return A.cS(a1,n,l) case 11:k=a2.x j=a2.y -i=A.ae(a1,j,a3,a4) +i=A.ad(a1,j,a3,a4) if(i===j)return a2 -return A.dP(a1,k,i) +return A.dE(a1,k,i) case 12:h=a2.x -g=A.T(a1,h,a3,a4) +g=A.P(a1,h,a3,a4) f=a2.y -e=A.fQ(a1,f,a3,a4) +e=A.fB(a1,f,a3,a4) if(g===h&&e===f)return a2 -return A.dN(a1,g,e) +return A.dC(a1,g,e) case 13:d=a2.y a4+=d.length -c=A.ae(a1,d,a3,a4) +c=A.ad(a1,d,a3,a4) o=a2.x -n=A.T(a1,o,a3,a4) +n=A.P(a1,o,a3,a4) if(c===d&&n===o)return a2 -return A.d4(a1,n,c,!0) +return A.cT(a1,n,c,!0) case 14:b=a2.x if(b=0)p+=" "+r[q];++q}return p+"})"}, -dV(a4,a5,a6){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2=", ",a3=null +dK(a4,a5,a6){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2=", ",a3=null if(a6!=null){s=a6.length -if(a5==null)a5=A.aZ([],t.s) +if(a5==null)a5=A.bD([],t.s) else a3=a5.length r=a5.length for(q=s;q>0;--q)a5.push("T"+(r+q)) for(p=t.X,o=t._,n="<",m="",q=0;q=0))return A.B(a5,k) +if(!(k>=0))return A.C(a5,k) n=n+m+a5[k] j=a6[q] i=j.w if(!(i===2||i===3||i===4||i===5||j===p))l=j===o else l=!0 -if(!l)n+=" extends "+A.u(j,a5)}n+=">"}else n="" +if(!l)n+=" extends "+A.t(j,a5)}n+=">"}else n="" p=a4.x h=a4.y g=h.a @@ -776,263 +767,263 @@ e=h.b d=e.length c=h.c b=c.length -a=A.u(p,a5) -for(a0="",a1="",q=0;q0){a0+=a1+"[" -for(a1="",q=0;q0){a0+=a1+"{" for(a1="",q=0;q "+a}, -u(a,b){var s,r,q,p,o,n,m,l=a.w +t(a,b){var s,r,q,p,o,n,m,l=a.w if(l===5)return"erased" if(l===2)return"dynamic" if(l===3)return"void" if(l===1)return"Never" if(l===4)return"any" -if(l===6)return A.u(a.x,b) +if(l===6)return A.t(a.x,b) if(l===7){s=a.x -r=A.u(s,b) +r=A.t(s,b) q=s.w -return(q===12||q===13?"("+r+")":r)+"?"}if(l===8)return"FutureOr<"+A.u(a.x,b)+">" -if(l===9){p=A.fS(a.x) +return(q===12||q===13?"("+r+")":r)+"?"}if(l===8)return"FutureOr<"+A.t(a.x,b)+">" +if(l===9){p=A.fD(a.x) o=a.y -return o.length>0?p+("<"+A.e1(o,b)+">"):p}if(l===11)return A.fK(a,b) -if(l===12)return A.dV(a,b,null) -if(l===13)return A.dV(a.x,b,a.y) +return o.length>0?p+("<"+A.dR(o,b)+">"):p}if(l===11)return A.fv(a,b) +if(l===12)return A.dK(a,b,null) +if(l===13)return A.dK(a.x,b,a.y) if(l===14){n=a.x m=b.length n=m-1-n -if(!(n>=0&&n=0&&n0)p+="<"+A.aU(c)+">" +aQ(a,b,c){var s,r,q,p=b +if(c.length>0)p+="<"+A.aP(c)+">" s=a.eC.get(p) if(s!=null)return s -r=new A.y(null,null) +r=new A.x(null,null) r.w=9 r.x=b r.y=c if(c.length>0)r.c=c[0] r.as=p -q=A.J(a,r) +q=A.H(a,r) a.eC.set(p,q) return q}, -d3(a,b,c){var s,r,q,p,o,n +cS(a,b,c){var s,r,q,p,o,n if(b.w===10){s=b.x r=b.y.concat(c)}else{r=c -s=b}q=s.as+(";<"+A.aU(r)+">") +s=b}q=s.as+(";<"+A.aP(r)+">") p=a.eC.get(q) if(p!=null)return p -o=new A.y(null,null) +o=new A.x(null,null) o.w=10 o.x=s o.y=r o.as=q -n=A.J(a,o) +n=A.H(a,o) a.eC.set(q,n) return n}, -dP(a,b,c){var s,r,q="+"+(b+"("+A.aU(c)+")"),p=a.eC.get(q) +dE(a,b,c){var s,r,q="+"+(b+"("+A.aP(c)+")"),p=a.eC.get(q) if(p!=null)return p -s=new A.y(null,null) +s=new A.x(null,null) s.w=11 s.x=b s.y=c s.as=q -r=A.J(a,s) +r=A.H(a,s) a.eC.set(q,r) return r}, -dN(a,b,c){var s,r,q,p,o,n=b.as,m=c.a,l=m.length,k=c.b,j=k.length,i=c.c,h=i.length,g="("+A.aU(m) +dC(a,b,c){var s,r,q,p,o,n=b.as,m=c.a,l=m.length,k=c.b,j=k.length,i=c.c,h=i.length,g="("+A.aP(m) if(j>0){s=l>0?",":"" -g+=s+"["+A.aU(k)+"]"}if(h>0){s=l>0?",":"" -g+=s+"{"+A.f5(i)+"}"}r=n+(g+")") +g+=s+"["+A.aP(k)+"]"}if(h>0){s=l>0?",":"" +g+=s+"{"+A.eS(i)+"}"}r=n+(g+")") q=a.eC.get(r) if(q!=null)return q -p=new A.y(null,null) +p=new A.x(null,null) p.w=12 p.x=b p.y=c p.as=r -o=A.J(a,p) +o=A.H(a,p) a.eC.set(r,o) return o}, -d4(a,b,c,d){var s,r=b.as+("<"+A.aU(c)+">"),q=a.eC.get(r) +cT(a,b,c,d){var s,r=b.as+("<"+A.aP(c)+">"),q=a.eC.get(r) if(q!=null)return q -s=A.f7(a,b,c,r,d) +s=A.eU(a,b,c,r,d) a.eC.set(r,s) return s}, -f7(a,b,c,d,e){var s,r,q,p,o,n,m,l +eU(a,b,c,d,e){var s,r,q,p,o,n,m,l if(e){s=c.length -r=A.cF(s) +r=A.cu(s) for(q=0,p=0;p0){n=A.T(a,b,r,0) -m=A.ae(a,c,r,0) -return A.d4(a,n,m,c!==m)}}l=new A.y(null,null) +if(o.w===1){r[p]=o;++q}}if(q>0){n=A.P(a,b,r,0) +m=A.ad(a,c,r,0) +return A.cT(a,n,m,c!==m)}}l=new A.x(null,null) l.w=13 l.x=b l.y=c l.as=d -return A.J(a,l)}, -dJ(a,b,c,d){return{u:a,e:b,r:c,s:[],p:0,n:d}}, -dL(a){var s,r,q,p,o,n,m,l=a.r,k=a.s +return A.H(a,l)}, +dy(a,b,c,d){return{u:a,e:b,r:c,s:[],p:0,n:d}}, +dA(a){var s,r,q,p,o,n,m,l=a.r,k=a.s for(s=l.length,r=0;r=48&&q<=57)r=A.eZ(r+1,q,l,k) -else if((((q|32)>>>0)-97&65535)<26||q===95||q===36||q===124)r=A.dK(a,r,l,k,!1) -else if(q===46)r=A.dK(a,r,l,k,!0) +if(q>=48&&q<=57)r=A.eL(r+1,q,l,k) +else if((((q|32)>>>0)-97&65535)<26||q===95||q===36||q===124)r=A.dz(a,r,l,k,!1) +else if(q===46)r=A.dz(a,r,l,k,!0) else{++r switch(q){case 44:break case 58:k.push(!1) break case 33:k.push(!0) break -case 59:k.push(A.R(a.u,a.e,k.pop())) +case 59:k.push(A.O(a.u,a.e,k.pop())) break -case 94:k.push(A.fa(a.u,k.pop())) +case 94:k.push(A.eX(a.u,k.pop())) break -case 35:k.push(A.aW(a.u,5,"#")) +case 35:k.push(A.aR(a.u,5,"#")) break -case 64:k.push(A.aW(a.u,2,"@")) +case 64:k.push(A.aR(a.u,2,"@")) break -case 126:k.push(A.aW(a.u,3,"~")) +case 126:k.push(A.aR(a.u,3,"~")) break case 60:k.push(a.p) a.p=k.length break -case 62:A.f0(a,k) +case 62:A.eN(a,k) break -case 38:A.f_(a,k) +case 38:A.eM(a,k) break case 42:p=a.u -k.push(A.dQ(p,A.R(p,a.e,k.pop()),a.n)) +k.push(A.dF(p,A.O(p,a.e,k.pop()),a.n)) break case 63:p=a.u -k.push(A.d5(p,A.R(p,a.e,k.pop()),a.n)) +k.push(A.cU(p,A.O(p,a.e,k.pop()),a.n)) break case 47:p=a.u -k.push(A.dO(p,A.R(p,a.e,k.pop()),a.n)) +k.push(A.dD(p,A.O(p,a.e,k.pop()),a.n)) break case 40:k.push(-3) k.push(a.p) a.p=k.length break -case 41:A.eY(a,k) +case 41:A.eK(a,k) break case 91:k.push(a.p) a.p=k.length break case 93:o=k.splice(a.p) -A.dM(a.u,a.e,o) +A.dB(a.u,a.e,o) a.p=k.pop() k.push(o) k.push(-1) @@ -1041,7 +1032,7 @@ case 123:k.push(a.p) a.p=k.length break case 125:o=k.splice(a.p) -A.f2(a.u,a.e,o) +A.eP(a.u,a.e,o) a.p=k.pop() k.push(o) k.push(-2) @@ -1054,13 +1045,13 @@ a.p=k.length r=n+1 break default:throw"Bad character "+q}}}m=k.pop() -return A.R(a.u,a.e,m)}, -eZ(a,b,c,d){var s,r,q=b-48 +return A.O(a.u,a.e,m)}, +eL(a,b,c,d){var s,r,q=b-48 for(s=c.length;a=48&&r<=57))break q=q*10+(r-48)}d.push(q) return a}, -dK(a,b,c,d,e){var s,r,q,p,o,n,m=b+1 +dz(a,b,c,d,e){var s,r,q,p,o,n,m=b+1 for(s=c.length;m>>0)-97&65535)<26||r===95||r===36||r===124))q=r>=48&&r<=57 @@ -1069,55 +1060,55 @@ if(!q)break}}p=c.substring(b,m) if(e){s=a.u o=a.e if(o.w===10)o=o.x -n=A.ff(s,o.x)[p] -if(n==null)A.bM('No "'+p+'" in "'+A.eO(o)+'"') -d.push(A.cE(s,o,n))}else d.push(p) +n=A.f1(s,o.x)[p] +if(n==null)A.bE('No "'+p+'" in "'+A.eA(o)+'"') +d.push(A.ct(s,o,n))}else d.push(p) return m}, -f0(a,b){var s,r=a.u,q=A.dI(a,b),p=b.pop() -if(typeof p=="string")b.push(A.aV(r,p,q)) -else{s=A.R(r,a.e,p) -switch(s.w){case 12:b.push(A.d4(r,s,q,a.n)) +eN(a,b){var s,r=a.u,q=A.dx(a,b),p=b.pop() +if(typeof p=="string")b.push(A.aQ(r,p,q)) +else{s=A.O(r,a.e,p) +switch(s.w){case 12:b.push(A.cT(r,s,q,a.n)) break -default:b.push(A.d3(r,s,q)) +default:b.push(A.cS(r,s,q)) break}}}, -eY(a,b){var s,r,q,p=a.u,o=b.pop(),n=null,m=null +eK(a,b){var s,r,q,p=a.u,o=b.pop(),n=null,m=null if(typeof o=="number")switch(o){case-1:n=b.pop() break case-2:m=b.pop() break default:b.push(o) break}else b.push(o) -s=A.dI(a,b) +s=A.dx(a,b) o=b.pop() switch(o){case-3:o=b.pop() if(n==null)n=p.sEA if(m==null)m=p.sEA -r=A.R(p,a.e,o) -q=new A.bA() +r=A.O(p,a.e,o) +q=new A.bt() q.a=s q.b=n q.c=m -b.push(A.dN(p,r,q)) +b.push(A.dC(p,r,q)) return -case-4:b.push(A.dP(p,b.pop(),s)) +case-4:b.push(A.dE(p,b.pop(),s)) return -default:throw A.b(A.b3("Unexpected state under `()`: "+A.o(o)))}}, -f_(a,b){var s=b.pop() -if(0===s){b.push(A.aW(a.u,1,"0&")) -return}if(1===s){b.push(A.aW(a.u,4,"1&")) -return}throw A.b(A.b3("Unexpected extended operation "+A.o(s)))}, -dI(a,b){var s=b.splice(a.p) -A.dM(a.u,a.e,s) +default:throw A.b(A.aZ("Unexpected state under `()`: "+A.o(o)))}}, +eM(a,b){var s=b.pop() +if(0===s){b.push(A.aR(a.u,1,"0&")) +return}if(1===s){b.push(A.aR(a.u,4,"1&")) +return}throw A.b(A.aZ("Unexpected extended operation "+A.o(s)))}, +dx(a,b){var s=b.splice(a.p) +A.dB(a.u,a.e,s) a.p=b.pop() return s}, -R(a,b,c){if(typeof c=="string")return A.aV(a,c,a.sEA) +O(a,b,c){if(typeof c=="string")return A.aQ(a,c,a.sEA) else if(typeof c=="number"){b.toString -return A.f1(a,b,c)}else return c}, -dM(a,b,c){var s,r=c.length -for(s=0;s0?new Array(q):v.typeUniverse.sEA -for(o=0;o0?new Array(a):v.typeUniverse.sEA}, -y:function y(a,b){var _=this +cu(a){return a>0?new Array(a):v.typeUniverse.sEA}, +x:function x(a,b){var _=this _.a=a _.b=b _.r=_.f=_.d=_.c=null _.w=0 _.as=_.Q=_.z=_.y=_.x=null}, -bA:function bA(){this.c=this.b=this.a=null}, -cD:function cD(a){this.a=a}, -bz:function bz(){}, -aT:function aT(a){this.a=a}, -eR(){var s,r,q={} -if(self.scheduleImmediate!=null)return A.fV() +bt:function bt(){this.c=this.b=this.a=null}, +cs:function cs(a){this.a=a}, +bs:function bs(){}, +aO:function aO(a){this.a=a}, +eD(){var s,r,q={} +if(self.scheduleImmediate!=null)return A.fG() if(self.MutationObserver!=null&&self.document!=null){s=self.document.createElement("div") r=self.document.createElement("span") q.a=null -new self.MutationObserver(A.cO(new A.cf(q),1)).observe(s,{childList:true}) -return new A.ce(q,s,r)}else if(self.setImmediate!=null)return A.fW() -return A.fX()}, -eS(a){self.scheduleImmediate(A.cO(new A.cg(a),0))}, -eT(a){self.setImmediate(A.cO(new A.ch(a),0))}, -eU(a){A.f3(0,a)}, -f3(a,b){var s=new A.cB() -s.an(a,b) +new self.MutationObserver(A.cC(new A.c4(q),1)).observe(s,{childList:true}) +return new A.c3(q,s,r)}else if(self.setImmediate!=null)return A.fH() +return A.fI()}, +eE(a){self.scheduleImmediate(A.cC(new A.c5(a),0))}, +eF(a){self.setImmediate(A.cC(new A.c6(a),0))}, +eG(a){A.eQ(0,a)}, +eQ(a,b){var s=new A.cq() +s.al(a,b) return s}, -fG(a){return new A.bu(new A.p($.k,a.i("p<0>")),a.i("bu<0>"))}, -fk(a,b){a.$2(0,null) +fs(a){return new A.bn(new A.p($.k,a.i("p<0>")),a.i("bn<0>"))}, +f6(a,b){a.$2(0,null) b.b=!0 return b.a}, -hP(a,b){A.fl(a,b)}, -fj(a,b){var s,r=a==null?b.$ti.c.a(a):a -if(!b.b)b.a.a5(r) +hB(a,b){A.f7(a,b)}, +f5(a,b){var s,r=a==null?b.$ti.c.a(a):a +if(!b.b)b.a.a2(r) else{s=b.a -if(b.$ti.i("a2<1>").b(r))s.a7(r) -else s.P(r)}}, -fi(a,b){var s=A.N(a),r=A.L(a),q=b.a -if(b.b)q.A(s,r) -else q.O(s,r)}, -fl(a,b){var s,r,q=new A.cH(b),p=new A.cI(b) -if(a instanceof A.p)a.af(q,p,t.z) +if(b.$ti.i("a_<1>").b(r))s.a4(r) +else s.L(r)}}, +f4(a,b){var s=A.R(a),r=A.J(a),q=b.a +if(b.b)q.v(s,r) +else q.K(s,r)}, +f7(a,b){var s,r,q=new A.cw(b),p=new A.cx(b) +if(a instanceof A.p)a.ac(q,p,t.z) else{s=t.z -if(a instanceof A.p)a.a1(q,p,s) +if(a instanceof A.p)a.Z(q,p,s) else{r=new A.p($.k,t.d) r.a=8 r.c=a -r.af(q,p,s)}}}, -fU(a){var s=function(b,c){return function(d,e){while(true){try{b(d,e) +r.ac(q,p,s)}}}, +fF(a){var s=function(b,c){return function(d,e){while(true){try{b(d,e) break}catch(r){e=r d=c}}}}(a,1) -return $.k.a_(new A.cM(s))}, -cY(a){var s -if(t.Q.b(a)){s=a.gL() -if(s!=null)return s}return B.n}, -dF(a,b){var s,r +return $.k.X(new A.cA(s))}, +cM(a){var s +if(t.Q.b(a)){s=a.gH() +if(s!=null)return s}return B.m}, +du(a,b){var s,r for(;s=a.a,(s&4)!==0;)a=a.c -if(a===b){b.O(new A.C(!0,a,null,"Cannot complete a future with itself"),A.dy()) +if(a===b){b.K(new A.A(!0,a,null,"Cannot complete a future with itself"),A.dm()) return}s|=b.a&1 a.a=s -if((s&24)!==0){r=b.G() -b.E(a) -A.ab(b,r)}else{r=b.c -b.ad(a) -a.X(r)}}, -eW(a,b){var s,r,q={},p=q.a=a +if((s&24)!==0){r=b.C() +b.B(a) +A.a9(b,r)}else{r=b.c +b.aa(a) +a.T(r)}}, +eI(a,b){var s,r,q={},p=q.a=a for(;s=p.a,(s&4)!==0;){p=p.c -q.a=p}if(p===b){b.O(new A.C(!0,p,null,"Cannot complete a future with itself"),A.dy()) +q.a=p}if(p===b){b.K(new A.A(!0,p,null,"Cannot complete a future with itself"),A.dm()) return}if((s&24)===0){r=b.c -b.ad(p) -q.a.X(r) -return}if((s&16)===0&&b.c==null){b.E(p) +b.aa(p) +q.a.T(r) +return}if((s&16)===0&&b.c==null){b.B(p) return}b.a^=2 -A.ad(null,null,b.b,new A.cm(q,b))}, -ab(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g={},f=g.a=a +A.ac(null,null,b.b,new A.cb(q,b))}, +a9(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g={},f=g.a=a for(;!0;){s={} r=f.a q=(r&16)===0 p=!q if(b==null){if(p&&(r&1)===0){f=f.c -A.bK(f.a,f.b)}return}s.a=b +A.bB(f.a,f.b)}return}s.a=b o=b.a for(f=b;o!=null;f=o,o=n){f.a=null -A.ab(g.a,f) +A.a9(g.a,f) s.a=o n=o.a}r=g.a m=r.c @@ -1336,116 +1327,116 @@ l=(l&1)!==0||(l&15)===8}else l=!0 if(l){k=f.b.b if(p){r=r.b===k r=!(r||r)}else r=!1 -if(r){A.bK(m.a,m.b) +if(r){A.bB(m.a,m.b) return}j=$.k if(j!==k)$.k=k else j=null f=f.c -if((f&15)===8)new A.ct(s,g,p).$0() -else if(q){if((f&1)!==0)new A.cs(s,m).$0()}else if((f&2)!==0)new A.cr(g,s).$0() +if((f&15)===8)new A.ci(s,g,p).$0() +else if(q){if((f&1)!==0)new A.ch(s,m).$0()}else if((f&2)!==0)new A.cg(g,s).$0() if(j!=null)$.k=j f=s.c if(f instanceof A.p){r=s.a.$ti -r=r.i("a2<2>").b(f)||!r.y[1].b(f)}else r=!1 +r=r.i("a_<2>").b(f)||!r.y[1].b(f)}else r=!1 if(r){i=s.a.b if((f.a&24)!==0){h=i.c i.c=null -b=i.H(h) +b=i.D(h) i.a=f.a&30|i.a&1 i.c=f.c g.a=f -continue}else A.dF(f,i) +continue}else A.du(f,i) return}}i=s.a.b h=i.c i.c=null -b=i.H(h) +b=i.D(h) f=s.b r=s.c if(!f){i.a=8 i.c=r}else{i.a=i.a&1|16 i.c=r}g.a=i f=i}}, -fL(a,b){if(t.C.b(a))return b.a_(a) +fw(a,b){if(t.C.b(a))return b.X(a) if(t.v.b(a))return a -throw A.b(A.dm(a,"onError",u.c))}, -fH(){var s,r -for(s=$.ac;s!=null;s=$.ac){$.aY=null +throw A.b(A.dc(a,"onError",u.c))}, +ft(){var s,r +for(s=$.ab;s!=null;s=$.ab){$.aT=null r=s.b -$.ac=r -if(r==null)$.aX=null +$.ab=r +if(r==null)$.aS=null s.a.$0()}}, -fO(){$.d7=!0 -try{A.fH()}finally{$.aY=null -$.d7=!1 -if($.ac!=null)$.dk().$1(A.e4())}}, -e2(a){var s=new A.bv(a),r=$.aX -if(r==null){$.ac=$.aX=s -if(!$.d7)$.dk().$1(A.e4())}else $.aX=r.b=s}, -fN(a){var s,r,q,p=$.ac -if(p==null){A.e2(a) -$.aY=$.aX -return}s=new A.bv(a) -r=$.aY +fz(){$.cW=!0 +try{A.ft()}finally{$.aT=null +$.cW=!1 +if($.ab!=null)$.d9().$1(A.dU())}}, +dS(a){var s=new A.bo(a),r=$.aS +if(r==null){$.ab=$.aS=s +if(!$.cW)$.d9().$1(A.dU())}else $.aS=r.b=s}, +fy(a){var s,r,q,p=$.ab +if(p==null){A.dS(a) +$.aT=$.aS +return}s=new A.bo(a) +r=$.aT if(r==null){s.b=p -$.ac=$.aY=s}else{q=r.b +$.ab=$.aT=s}else{q=r.b s.b=q -$.aY=r.b=s -if(q==null)$.aX=s}}, -dh(a){var s=null,r=$.k -if(B.a===r){A.ad(s,s,B.a,a) -return}A.ad(s,s,r,r.ah(a))}, -ho(a){A.d8(a,"stream",t.K) -return new A.bF()}, -bL(a){return}, -eV(a,b,c,d,e){var s=$.k,r=e?1:0,q=c!=null?32:0 -A.dD(s,c) -return new A.a8(a,b,s,r|q)}, -dD(a,b){if(b==null)b=A.fY() -if(t.h.b(b))return a.a_(b) +$.aT=r.b=s +if(q==null)$.aS=s}}, +d6(a){var s=null,r=$.k +if(B.a===r){A.ac(s,s,B.a,a) +return}A.ac(s,s,r,r.ae(a))}, +ha(a){A.cX(a,"stream",t.K) +return new A.bw()}, +bC(a){return}, +eH(a,b,c,d,e){var s=$.k,r=e?1:0,q=c!=null?32:0 +A.ds(s,c) +return new A.a6(a,b,s,r|q)}, +ds(a,b){if(b==null)b=A.fJ() +if(t.f.b(b))return a.X(b) if(t.u.b(b))return b -throw A.b(A.b1("handleError callback must take either an Object (the error), or both an Object (the error) and a StackTrace.",null))}, -fI(a,b){A.bK(a,b)}, -bK(a,b){A.fN(new A.cL(a,b))}, -e_(a,b,c,d){var s,r=$.k +throw A.b(A.aW("handleError callback must take either an Object (the error), or both an Object (the error) and a StackTrace.",null))}, +fu(a,b){A.bB(a,b)}, +bB(a,b){A.fy(new A.cz(a,b))}, +dP(a,b,c,d){var s,r=$.k if(r===c)return d.$0() $.k=c s=r try{r=d.$0() return r}finally{$.k=s}}, -e0(a,b,c,d,e){var s,r=$.k +dQ(a,b,c,d,e){var s,r=$.k if(r===c)return d.$1(e) $.k=c s=r try{r=d.$1(e) return r}finally{$.k=s}}, -fM(a,b,c,d,e,f){var s,r=$.k +fx(a,b,c,d,e,f){var s,r=$.k if(r===c)return d.$2(e,f) $.k=c s=r try{r=d.$2(e,f) return r}finally{$.k=s}}, -ad(a,b,c,d){if(B.a!==c)d=c.ah(d) -A.e2(d)}, -cf:function cf(a){this.a=a}, -ce:function ce(a,b,c){this.a=a +ac(a,b,c,d){if(B.a!==c)d=c.ae(d) +A.dS(d)}, +c4:function c4(a){this.a=a}, +c3:function c3(a,b,c){this.a=a this.b=b this.c=c}, -cg:function cg(a){this.a=a}, -ch:function ch(a){this.a=a}, -cB:function cB(){}, -cC:function cC(a,b){this.a=a +c5:function c5(a){this.a=a}, +c6:function c6(a){this.a=a}, +cq:function cq(){}, +cr:function cr(a,b){this.a=a this.b=b}, -bu:function bu(a,b){this.a=a +bn:function bn(a,b){this.a=a this.b=!1 this.$ti=b}, -cH:function cH(a){this.a=a}, -cI:function cI(a){this.a=a}, -cM:function cM(a){this.a=a}, -V:function V(a,b){this.a=a +cw:function cw(a){this.a=a}, +cx:function cx(a){this.a=a}, +cA:function cA(a){this.a=a}, +S:function S(a,b){this.a=a this.b=b}, -aF:function aF(a,b){this.a=a +aA:function aA(a,b){this.a=a this.$ti=b}, -aG:function aG(a,b,c,d){var _=this +aB:function aB(a,b,c,d){var _=this _.ay=0 _.CW=_.ch=null _.w=a @@ -1453,16 +1444,16 @@ _.a=b _.d=c _.e=d _.r=null}, -a7:function a7(){}, -aS:function aS(a,b,c){var _=this +a5:function a5(){}, +aN:function aN(a,b,c){var _=this _.a=a _.b=b _.c=0 _.e=_.d=null _.$ti=c}, -cA:function cA(a,b){this.a=a +cp:function cp(a,b){this.a=a this.b=b}, -aa:function aa(a,b,c,d,e){var _=this +a8:function a8(a,b,c,d,e){var _=this _.a=null _.b=a _.c=b @@ -1474,410 +1465,388 @@ _.a=0 _.b=a _.c=null _.$ti=b}, -cj:function cj(a,b){this.a=a +c8:function c8(a,b){this.a=a this.b=b}, -cq:function cq(a,b){this.a=a +cf:function cf(a,b){this.a=a this.b=b}, -cn:function cn(a){this.a=a}, -co:function co(a){this.a=a}, -cp:function cp(a,b,c){this.a=a +cc:function cc(a){this.a=a}, +cd:function cd(a){this.a=a}, +ce:function ce(a,b,c){this.a=a this.b=b this.c=c}, -cm:function cm(a,b){this.a=a +cb:function cb(a,b){this.a=a this.b=b}, -cl:function cl(a,b){this.a=a +ca:function ca(a,b){this.a=a this.b=b}, -ck:function ck(a,b,c){this.a=a +c9:function c9(a,b,c){this.a=a this.b=b this.c=c}, -ct:function ct(a,b,c){this.a=a +ci:function ci(a,b,c){this.a=a this.b=b this.c=c}, -cu:function cu(a){this.a=a}, -cs:function cs(a,b){this.a=a +cj:function cj(a){this.a=a}, +ch:function ch(a,b){this.a=a this.b=b}, -cr:function cr(a,b){this.a=a +cg:function cg(a,b){this.a=a this.b=b}, -bv:function bv(a){this.a=a +bo:function bo(a){this.a=a this.b=null}, -a5:function a5(){}, -c3:function c3(a,b){this.a=a +a3:function a3(){}, +bT:function bT(a,b){this.a=a this.b=b}, -c4:function c4(a,b){this.a=a +bU:function bU(a,b){this.a=a this.b=b}, -bE:function bE(){}, -cz:function cz(a){this.a=a}, -bw:function bw(){}, -a6:function a6(a,b,c,d){var _=this +bv:function bv(){}, +co:function co(a){this.a=a}, +bp:function bp(){}, +a4:function a4(a,b,c,d){var _=this _.a=null _.b=0 _.d=a _.e=b _.f=c _.$ti=d}, -Q:function Q(a,b){this.a=a +X:function X(a,b){this.a=a this.$ti=b}, -a8:function a8(a,b,c,d){var _=this +a6:function a6(a,b,c,d){var _=this _.w=a _.a=b _.d=c _.e=d _.r=null}, -Y:function Y(){}, -aR:function aR(){}, -by:function by(){}, -a9:function a9(a){this.b=a +W:function W(){}, +aM:function aM(){}, +br:function br(){}, +a7:function a7(a){this.b=a this.a=null}, -aP:function aP(){this.a=0 +aK:function aK(){this.a=0 this.c=this.b=null}, -cw:function cw(a,b){this.a=a +cl:function cl(a,b){this.a=a this.b=b}, -aH:function aH(a){this.a=1 +aC:function aC(a){this.a=1 this.b=a this.c=null}, -bF:function bF(){}, -cG:function cG(){}, -cL:function cL(a,b){this.a=a +bw:function bw(){}, +cv:function cv(){}, +cz:function cz(a,b){this.a=a this.b=b}, -cx:function cx(){}, -cy:function cy(a,b){this.a=a +cm:function cm(){}, +cn:function cn(a,b){this.a=a this.b=b}, -dG(a,b){var s=a[b] +dv(a,b){var s=a[b] return s===a?null:s}, -dH(a,b,c){if(c==null)a[b]=a +dw(a,b,c){if(c==null)a[b]=a else a[b]=c}, -eX(){var s=Object.create(null) -A.dH(s,"",s) +eJ(){var s=Object.create(null) +A.dw(s,"",s) delete s[""] return s}, -eH(a){var s,r={} -if(A.dd(a))return"{...}" -s=new A.br("") -try{$.x.push(a) +eu(a){var s,r={} +if(A.d2(a))return"{...}" +s=new A.bk("") +try{$.w.push(a) s.a+="{" r.a=!0 -a.I(0,new A.bZ(r,s)) -s.a+="}"}finally{if(0>=$.x.length)return A.B($.x,-1) -$.x.pop()}r=s.a +a.af(0,new A.bP(r,s)) +s.a+="}"}finally{if(0>=$.w.length)return A.C($.w,-1) +$.w.pop()}r=s.a return r.charCodeAt(0)==0?r:r}, -aI:function aI(){}, -aK:function aK(a){var _=this +aD:function aD(){}, +aF:function aF(a){var _=this _.a=0 _.e=_.d=_.c=_.b=null _.$ti=a}, -aJ:function aJ(a,b){this.a=a +aE:function aE(a,b){this.a=a this.$ti=b}, -bB:function bB(a,b,c){var _=this +bu:function bu(a,b,c){var _=this _.a=a _.b=b _.c=0 _.d=null _.$ti=c}, j:function j(){}, -z:function z(){}, -bZ:function bZ(a,b){this.a=a +a1:function a1(){}, +bP:function bP(a,b){this.a=a this.b=b}, -fJ(a,b){var s,r,q,p=null -try{p=JSON.parse(a)}catch(r){s=A.N(r) -q=String(s) -throw A.b(new A.bS(q))}q=A.cJ(p) -return q}, -cJ(a){var s -if(a==null)return null -if(typeof a!="object")return a -if(!Array.isArray(a))return new A.bC(a,Object.create(null)) -for(s=0;s4294967295)A.bM(A.eN(a,0,4294967295,"length",null)) -s=A.aZ(new Array(a),c.i("v<0>")) +et(a,b,c){var s,r +if(a>4294967295)A.bE(A.ez(a,0,4294967295,"length",null)) +s=A.bD(new Array(a),c.i("u<0>")) s.$flags=1 r=s return r}, -dA(a,b,c){var s=J.es(b) +dp(a,b,c){var s=J.ef(b) if(!s.l())return a if(c.length===0){do a+=A.o(s.gm()) while(s.l())}else{a+=A.o(s.gm()) for(;s.l();)a=a+c+A.o(s.gm())}return a}, -dy(){return A.L(new Error())}, -bP(a){if(typeof a=="number"||A.cK(a)||a==null)return J.b0(a) +dm(){return A.J(new Error())}, +bI(a){if(typeof a=="number"||A.cy(a)||a==null)return J.aV(a) if(typeof a=="string")return JSON.stringify(a) -return A.eM(a)}, -eD(a,b){A.d8(a,"error",t.K) -A.d8(b,"stackTrace",t.l) -A.eC(a,b)}, -b3(a){return new A.b2(a)}, -b1(a,b){return new A.C(!1,null,b,a)}, -dm(a,b,c){return new A.C(!0,a,b,c)}, -eN(a,b,c,d,e){return new A.aB(b,c,!0,a,d,"Invalid value")}, -dt(a,b,c,d){return new A.b7(b,!0,a,d,"Index out of range")}, -eP(a){return new A.aE(a)}, -dC(a){return new A.bs(a)}, -dz(a){return new A.G(a)}, -ai(a){return new A.b5(a)}, -eE(a,b,c){var s,r -if(A.dd(a)){if(b==="("&&c===")")return"(...)" -return b+"..."+c}s=A.aZ([],t.s) -$.x.push(a) -try{A.fF(a,s)}finally{if(0>=$.x.length)return A.B($.x,-1) -$.x.pop()}r=A.dA(b,s,", ")+c +return A.ey(a)}, +ep(a,b){A.cX(a,"error",t.K) +A.cX(b,"stackTrace",t.l) +A.eo(a,b)}, +aZ(a){return new A.aY(a)}, +aW(a,b){return new A.A(!1,null,b,a)}, +dc(a,b,c){return new A.A(!0,a,b,c)}, +ez(a,b,c,d,e){return new A.aw(b,c,!0,a,d,"Invalid value")}, +eq(a,b,c,d){return new A.b1(b,!0,a,d,"Index out of range")}, +eB(a){return new A.az(a)}, +dr(a){return new A.bl(a)}, +dn(a){return new A.E(a)}, +bH(a){return new A.b0(a)}, +er(a,b,c){var s,r +if(A.d2(a)){if(b==="("&&c===")")return"(...)" +return b+"..."+c}s=A.bD([],t.s) +$.w.push(a) +try{A.fr(a,s)}finally{if(0>=$.w.length)return A.C($.w,-1) +$.w.pop()}r=A.dp(b,s,", ")+c return r.charCodeAt(0)==0?r:r}, -du(a,b,c){var s,r -if(A.dd(a))return b+"..."+c -s=new A.br(b) -$.x.push(a) +di(a,b,c){var s,r +if(A.d2(a))return b+"..."+c +s=new A.bk(b) +$.w.push(a) try{r=s -r.a=A.dA(r.a,a,", ")}finally{if(0>=$.x.length)return A.B($.x,-1) -$.x.pop()}s.a+=c +r.a=A.dp(r.a,a,", ")}finally{if(0>=$.w.length)return A.C($.w,-1) +$.w.pop()}s.a+=c r=s.a return r.charCodeAt(0)==0?r:r}, -fF(a,b){var s,r,q,p,o,n,m,l=a.gp(a),k=0,j=0 +fr(a,b){var s,r,q,p,o,n,m,l=a.gq(a),k=0,j=0 while(!0){if(!(k<80||j<3))break if(!l.l())return s=A.o(l.gm()) b.push(s) k+=s.length+2;++j}if(!l.l()){if(j<=5)return -if(0>=b.length)return A.B(b,-1) +if(0>=b.length)return A.C(b,-1) r=b.pop() -if(0>=b.length)return A.B(b,-1) +if(0>=b.length)return A.C(b,-1) q=b.pop()}else{p=l.gm();++j if(!l.l()){if(j<=4){b.push(A.o(p)) return}r=A.o(p) -if(0>=b.length)return A.B(b,-1) +if(0>=b.length)return A.C(b,-1) q=b.pop() k+=r.length+2}else{o=l.gm();++j for(;l.l();p=o,o=n){n=l.gm();++j if(j>100){while(!0){if(!(k>75&&j>3))break -if(0>=b.length)return A.B(b,-1) +if(0>=b.length)return A.C(b,-1) k-=b.pop().length+2;--j}b.push("...") return}}q=A.o(p) r=A.o(o) k+=r.length+q.length+4}}if(j>b.length+2){k+=5 m="..."}else m=null while(!0){if(!(k>80&&b.length>3))break -if(0>=b.length)return A.B(b,-1) +if(0>=b.length)return A.C(b,-1) k-=b.pop().length+2 if(m==null){k+=5 m="..."}}if(m!=null)b.push(m) b.push(q) b.push(r)}, -ed(a){A.he(a)}, +e0(a){A.h0(a)}, l:function l(){}, -b2:function b2(a){this.a=a}, -H:function H(){}, -C:function C(a,b,c,d){var _=this +aY:function aY(a){this.a=a}, +F:function F(){}, +A:function A(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, -aB:function aB(a,b,c,d,e,f){var _=this +aw:function aw(a,b,c,d,e,f){var _=this _.e=a _.f=b _.a=c _.b=d _.c=e _.d=f}, -b7:function b7(a,b,c,d,e){var _=this +b1:function b1(a,b,c,d,e){var _=this _.f=a _.a=b _.b=c _.c=d _.d=e}, -aE:function aE(a){this.a=a}, -bs:function bs(a){this.a=a}, -G:function G(a){this.a=a}, -b5:function b5(a){this.a=a}, -aC:function aC(){}, -ci:function ci(a){this.a=a}, -bS:function bS(a){this.a=a}, +az:function az(a){this.a=a}, +bl:function bl(a){this.a=a}, +E:function E(a){this.a=a}, +b0:function b0(a){this.a=a}, +ax:function ax(){}, +c7:function c7(a){this.a=a}, c:function c(){}, q:function q(){}, d:function d(){}, -bG:function bG(){}, -br:function br(a){this.a=a}, -eJ(a){return new A.c0(a)}, -c0:function c0(a){this.a=a}, -fm(a,b,c){if(c>=1)return a.$1(b) +bx:function bx(){}, +bk:function bk(a){this.a=a}, +f8(a,b,c){if(c>=1)return a.$1(b) return a.$0()}, -dZ(a){return a==null||A.cK(a)||typeof a=="number"||typeof a=="string"||t.U.b(a)||t.E.b(a)||t.e.b(a)||t.O.b(a)||t.D.b(a)||t.k.b(a)||t.w.b(a)||t.B.b(a)||t.q.b(a)||t.J.b(a)||t.Y.b(a)}, -eb(a){if(A.dZ(a))return a -return new A.cU(new A.aK(t.F)).$1(a)}, -cU:function cU(a){this.a=a}, -h_(a,b,c,d,e){var s,r=e.i("aS<0>"),q=new A.aS(null,null,r),p=new A.cN(q,c,d) -if(typeof p=="function")A.bM(A.b1("Attempting to rewrap a JS function.",null)) -s=function(f,g){return function(h){return f(g,h,arguments.length)}}(A.fm,p) -s[$.dj()]=p +dO(a){return a==null||A.cy(a)||typeof a=="number"||typeof a=="string"||t.U.b(a)||t.E.b(a)||t.e.b(a)||t.O.b(a)||t.D.b(a)||t.k.b(a)||t.w.b(a)||t.B.b(a)||t.q.b(a)||t.J.b(a)||t.Y.b(a)}, +fX(a){if(A.dO(a))return a +return new A.cI(new A.aF(t.F)).$1(a)}, +cI:function cI(a){this.a=a}, +fL(a,b,c,d,e){var s,r=e.i("aN<0>"),q=new A.aN(null,null,r),p=new A.cB(q,c,d) +if(typeof p=="function")A.bE(A.aW("Attempting to rewrap a JS function.",null)) +s=function(f,g){return function(h){return f(g,h,arguments.length)}}(A.f8,p) +s[$.d8()]=p a[b]=s -return new A.aF(q,r.i("aF<1>"))}, -eQ(){var s=new A.cc() -s.am() +return new A.aA(q,r.i("aA<1>"))}, +eC(){var s=new A.c1() +s.ak() return s}, -de(){var s=0,r=A.fG(t.n),q,p -var $async$de=A.fU(function(a,b){if(a===1)return A.fi(b,r) -while(true)switch(s){case 0:q=A.eQ() +d3(){var s=0,r=A.fs(t.n),q,p +var $async$d3=A.fF(function(a,b){if(a===1)return A.f4(b,r) +while(true)switch(s){case 0:q=A.eC() p=q.a -p===$&&A.ef() -new A.Q(p,A.S(p).i("Q<1>")).aO(new A.cV(q)) -return A.fj(null,r)}}) -return A.fk($async$de,r)}, -cN:function cN(a,b,c){this.a=a +p===$&&A.e2() +new A.X(p,A.aa(p).i("X<1>")).aJ(new A.cJ(q)) +return A.f5(null,r)}}) +return A.f6($async$d3,r)}, +cB:function cB(a,b,c){this.a=a this.b=b this.c=c}, -cc:function cc(){this.a=$}, -cd:function cd(a){this.a=a}, -cV:function cV(a){this.a=a}, -he(a){if(typeof dartPrint=="function"){dartPrint(a) +c1:function c1(){this.a=$}, +c2:function c2(a){this.a=a}, +cJ:function cJ(a){this.a=a}, +h0(a){if(typeof dartPrint=="function"){dartPrint(a) return}if(typeof console=="object"&&typeof console.log!="undefined"){console.log(a) return}if(typeof print=="function"){print(a) return}throw"Unable to print message: "+String(a)}, -hh(a){A.di(new A.as("Field '"+a+"' has been assigned during initialization."),new Error())}, -ef(){A.di(new A.as("Field '' has not been initialized."),new Error())}, -eF(a,b,c,d,e,f){var s +h3(a){A.d7(new A.ap("Field '"+a+"' has been assigned during initialization."),new Error())}, +e2(){A.d7(new A.ap("Field '' has not been initialized."),new Error())}, +es(a,b,c,d,e,f){var s if(c==null)return a[b]() else{s=a[b](c) return s}}},B={} var w=[A,J,B] var $={} -A.d0.prototype={} -J.b8.prototype={ -D(a,b){return a===b}, -gq(a){return A.aA(a)}, -h(a){return"Instance of '"+A.c1(a)+"'"}, -gk(a){return A.a_(A.d6(this))}} -J.b9.prototype={ +A.cP.prototype={} +J.b2.prototype={ +gn(a){return A.av(a)}, +h(a){return"Instance of '"+A.bR(a)+"'"}, +gj(a){return A.B(A.cV(this))}} +J.b3.prototype={ h(a){return String(a)}, -gq(a){return a?519018:218159}, -gk(a){return A.a_(t.y)}, +gn(a){return a?519018:218159}, +gj(a){return A.B(t.y)}, $if:1} -J.an.prototype={ -D(a,b){return null==b}, +J.ak.prototype={ h(a){return"null"}, -gq(a){return 0}, +gn(a){return 0}, +gj(a){return A.B(t.P)}, $if:1, $iq:1} -J.aq.prototype={$in:1} -J.P.prototype={ -gq(a){return 0}, +J.an.prototype={$in:1} +J.M.prototype={ +gn(a){return 0}, +gj(a){return B.A}, h(a){return String(a)}} -J.bp.prototype={} -J.aD.prototype={} -J.O.prototype={ -h(a){var s=a[$.dj()] -if(s==null)return this.ak(a) -return"JavaScript function for "+J.b0(s)}} -J.ap.prototype={ -gq(a){return 0}, +J.bi.prototype={} +J.ay.prototype={} +J.L.prototype={ +h(a){var s=a[$.d8()] +if(s==null)return this.ai(a) +return"JavaScript function for "+J.aV(s)}} +J.am.prototype={ +gn(a){return 0}, h(a){return String(a)}} -J.ar.prototype={ -gq(a){return 0}, +J.ao.prototype={ +gn(a){return 0}, h(a){return String(a)}} -J.v.prototype={ -aJ(a,b){var s -a.$flags&1&&A.hi(a,"addAll",2) -for(s=b.gp(b);s.l();)a.push(s.gm())}, -J(a,b,c){return new A.F(a,b,A.bI(a).i("@<1>").u(c).i("F<1,2>"))}, -v(a,b){if(!(b").u(c).i("D<1,2>"))}, +E(a,b){if(!(b"))}, -gq(a){return A.aA(a)}, -gj(a){return a.length}, +h(a){return A.di(a,"[","]")}, +gq(a){return new J.aX(a,a.length,A.bz(a).i("aX<1>"))}, +gn(a){return A.av(a)}, +gk(a){return a.length}, +gj(a){return A.B(A.bz(a))}, $ie:1, $ic:1, $ii:1} -J.bW.prototype={} -J.a1.prototype={ +J.bO.prototype={} +J.aX.prototype={ gm(){var s=this.d return s==null?this.$ti.c.a(s):s}, l(){var s,r=this,q=r.a,p=q.length -if(r.b!==p)throw A.b(A.hg(q)) +if(r.b!==p)throw A.b(A.h2(q)) s=r.c if(s>=p){r.d=null return!1}r.d=q[s] r.c=s+1 return!0}} -J.bb.prototype={ +J.b5.prototype={ h(a){if(a===0&&1/a<0)return"-0.0" else return""+a}, -gq(a){var s,r,q,p,o=a|0 +gn(a){var s,r,q,p,o=a|0 if(a===o)return o&536870911 s=Math.abs(a) r=Math.log(s)/0.6931471805599453|0 q=Math.pow(2,r) p=s<1?s/q:q/s return((p*9007199254740992|0)+(p*3542243181176521|0))*599197+r*1259&536870911}, -aH(a,b){var s -if(a>0)s=this.aG(a,b) +aE(a,b){var s +if(a>0)s=this.aD(a,b) else{s=b>31?31:b s=a>>s>>>0}return s}, -aG(a,b){return b>31?0:a>>>b}, -gk(a){return A.a_(t.H)}, +aD(a,b){return b>31?0:a>>>b}, +gj(a){return A.B(t.H)}, $ih:1} -J.am.prototype={ -gk(a){return A.a_(t.S)}, +J.aj.prototype={ +gj(a){return A.B(t.S)}, $if:1, $ia:1} -J.ba.prototype={ -gk(a){return A.a_(t.i)}, +J.b4.prototype={ +gj(a){return A.B(t.i)}, $if:1} -J.ao.prototype={ +J.al.prototype={ h(a){return a}, -gq(a){var s,r,q +gn(a){var s,r,q for(s=a.length,r=0,q=0;q>6}r=r+((r&67108863)<<3)&536870911 r^=r>>11 return r+((r&16383)<<15)&536870911}, -gk(a){return A.a_(t.N)}, -gj(a){return a.length}, +gj(a){return A.B(t.N)}, +gk(a){return a.length}, $if:1, -$it:1} -A.as.prototype={ +$iV:1} +A.ap.prototype={ h(a){return"LateInitializationError: "+this.a}} A.e.prototype={} -A.D.prototype={ -gp(a){var s=this -return new A.a3(s,s.gj(s),A.S(s).i("a3"))}, -J(a,b,c){return new A.F(this,b,A.S(this).i("@").u(c).i("F<1,2>"))}} -A.a3.prototype={ +A.N.prototype={ +gq(a){return new A.a0(this,this.gk(0),this.$ti.i("a0"))}, +F(a,b,c){return new A.D(this,b,this.$ti.i("@").u(c).i("D<1,2>"))}} +A.a0.prototype={ gm(){var s=this.d return s==null?this.$ti.c.a(s):s}, -l(){var s,r=this,q=r.a,p=J.e8(q),o=p.gj(q) -if(r.b!==o)throw A.b(A.ai(q)) +l(){var s,r=this,q=r.a,p=J.dX(q),o=p.gk(q) +if(r.b!==o)throw A.b(A.bH(q)) s=r.c if(s>=o){r.d=null -return!1}r.d=p.v(q,s);++r.c +return!1}r.d=p.E(q,s);++r.c return!0}} -A.X.prototype={ -gp(a){var s=this.a -return new A.be(s.gp(s),this.b,A.S(this).i("be<1,2>"))}, -gj(a){var s=this.a -return s.gj(s)}} -A.aj.prototype={$ie:1} -A.be.prototype={ +A.U.prototype={ +gq(a){var s=this.a +return new A.b7(s.gq(s),this.b,A.aa(this).i("b7<1,2>"))}, +gk(a){var s=this.a +return s.gk(s)}} +A.ag.prototype={$ie:1} +A.b7.prototype={ l(){var s=this,r=s.b if(r.l()){s.a=s.c.$1(r.gm()) return!0}s.a=null return!1}, gm(){var s=this.a return s==null?this.$ti.y[1].a(s):s}} -A.F.prototype={ -gj(a){return J.cX(this.a)}, -v(a,b){return this.b.$1(J.er(this.a,b))}} -A.al.prototype={} -A.c6.prototype={ +A.D.prototype={ +gk(a){return J.cL(this.a)}, +E(a,b){return this.b.$1(J.ee(this.a,b))}} +A.ai.prototype={} +A.bW.prototype={ t(a){var s,r,q=this,p=new RegExp(q.a).exec(a) if(p==null)return null s=Object.create(null) @@ -1892,212 +1861,196 @@ if(r!==-1)s.method=p[r+1] r=q.f if(r!==-1)s.receiver=p[r+1] return s}} -A.az.prototype={ +A.au.prototype={ h(a){return"Null check operator used on a null value"}} -A.bc.prototype={ +A.b6.prototype={ h(a){var s,r=this,q="NoSuchMethodError: method not found: '",p=r.b if(p==null)return"NoSuchMethodError: "+r.a s=r.c if(s==null)return q+p+"' ("+r.a+")" return q+p+"' on '"+s+"' ("+r.a+")"}} -A.bt.prototype={ +A.bm.prototype={ h(a){var s=this.a return s.length===0?"Error":"Error: "+s}} -A.c_.prototype={ +A.bQ.prototype={ h(a){return"Throw of null ('"+(this.a===null?"null":"undefined")+"' from JavaScript)"}} -A.ak.prototype={} -A.aQ.prototype={ +A.ah.prototype={} +A.aL.prototype={ h(a){var s,r=this.b if(r!=null)return r r=this.a s=r!==null&&typeof r==="object"?r.stack:null return this.b=s==null?"":s}, -$iA:1} -A.W.prototype={ +$iy:1} +A.T.prototype={ h(a){var s=this.constructor,r=s==null?null:s.name -return"Closure '"+A.eg(r==null?"unknown":r)+"'"}, -gb_(){return this}, +return"Closure '"+A.e3(r==null?"unknown":r)+"'"}, +gj(a){var s=A.cZ(this) +return A.B(s==null?A.Z(this):s)}, +gaV(){return this}, $C:"$1", $R:1, $D:null} -A.bN.prototype={$C:"$0",$R:0} -A.bO.prototype={$C:"$2",$R:2} -A.c5.prototype={} -A.c2.prototype={ +A.bF.prototype={$C:"$0",$R:0} +A.bG.prototype={$C:"$2",$R:2} +A.bV.prototype={} +A.bS.prototype={ h(a){var s=this.$static_name if(s==null)return"Closure of unknown static method" -return"Closure '"+A.eg(s)+"'"}} -A.ah.prototype={ -D(a,b){if(b==null)return!1 -if(this===b)return!0 -if(!(b instanceof A.ah))return!1 -return this.$_target===b.$_target&&this.a===b.a}, -gq(a){return(A.dg(this.a)^A.aA(this.$_target))>>>0}, -h(a){return"Closure '"+this.$_name+"' of "+("Instance of '"+A.c1(this.a)+"'")}} -A.bx.prototype={ -h(a){return"Reading static variable '"+this.a+"' during its initialization"}} +return"Closure '"+A.e3(s)+"'"}} +A.b_.prototype={ +gn(a){return(A.d5(this.a)^A.av(this.$_target))>>>0}, +h(a){return"Closure '"+this.$_name+"' of "+("Instance of '"+A.bR(this.a)+"'")}} A.bq.prototype={ +h(a){return"Reading static variable '"+this.a+"' during its initialization"}} +A.bj.prototype={ h(a){return"RuntimeError: "+this.a}} -A.at.prototype={ -gj(a){return this.a.a}, -gp(a){var s=this.a,r=new A.bd(s,s.r) -r.c=s.e -return r}} -A.bd.prototype={ -gm(){return this.d}, -l(){var s,r=this,q=r.a -if(r.b!==q.r)throw A.b(A.ai(q)) -s=r.c -if(s==null){r.d=null -return!1}else{r.d=s.a -r.c=s.c -return!0}}} -A.cQ.prototype={ +A.cE.prototype={ $1(a){return this.a(a)}, $S:6} -A.cR.prototype={ +A.cF.prototype={ $2(a,b){return this.a(a,b)}, $S:7} -A.cS.prototype={ +A.cG.prototype={ $1(a){return this.a(a)}, $S:8} -A.bf.prototype={ -gk(a){return B.v}, +A.b8.prototype={ +gj(a){return B.t}, $if:1, -$icZ:1} -A.ax.prototype={} -A.bg.prototype={ -gk(a){return B.w}, +$icN:1} +A.as.prototype={} +A.b9.prototype={ +gj(a){return B.u}, $if:1, -$id_:1} -A.a4.prototype={ -gj(a){return a.length}, -$iw:1} -A.av.prototype={ -n(a,b){A.Z(b,a,a.length) +$icO:1} +A.a2.prototype={ +gk(a){return a.length}, +$iv:1} +A.aq.prototype={ +p(a,b){A.Y(b,a,a.length) return a[b]}, $ie:1, $ic:1, $ii:1} -A.aw.prototype={$ie:1,$ic:1,$ii:1} -A.bh.prototype={ -gk(a){return B.x}, +A.ar.prototype={$ie:1,$ic:1,$ii:1} +A.ba.prototype={ +gj(a){return B.v}, $if:1, -$ibQ:1} -A.bi.prototype={ -gk(a){return B.y}, +$ibJ:1} +A.bb.prototype={ +gj(a){return B.w}, $if:1, -$ibR:1} -A.bj.prototype={ -gk(a){return B.z}, -n(a,b){A.Z(b,a,a.length) +$ibK:1} +A.bc.prototype={ +gj(a){return B.x}, +p(a,b){A.Y(b,a,a.length) return a[b]}, $if:1, -$ibT:1} -A.bk.prototype={ -gk(a){return B.A}, -n(a,b){A.Z(b,a,a.length) +$ibL:1} +A.bd.prototype={ +gj(a){return B.y}, +p(a,b){A.Y(b,a,a.length) return a[b]}, $if:1, -$ibU:1} -A.bl.prototype={ -gk(a){return B.B}, -n(a,b){A.Z(b,a,a.length) +$ibM:1} +A.be.prototype={ +gj(a){return B.z}, +p(a,b){A.Y(b,a,a.length) return a[b]}, $if:1, -$ibV:1} -A.bm.prototype={ -gk(a){return B.C}, -n(a,b){A.Z(b,a,a.length) +$ibN:1} +A.bf.prototype={ +gj(a){return B.B}, +p(a,b){A.Y(b,a,a.length) return a[b]}, $if:1, -$ic8:1} -A.bn.prototype={ -gk(a){return B.D}, -n(a,b){A.Z(b,a,a.length) +$ibY:1} +A.bg.prototype={ +gj(a){return B.C}, +p(a,b){A.Y(b,a,a.length) return a[b]}, $if:1, -$ic9:1} -A.ay.prototype={ -gk(a){return B.E}, -gj(a){return a.length}, -n(a,b){A.Z(b,a,a.length) +$ibZ:1} +A.at.prototype={ +gj(a){return B.D}, +gk(a){return a.length}, +p(a,b){A.Y(b,a,a.length) return a[b]}, $if:1, -$ica:1} -A.bo.prototype={ -gk(a){return B.F}, -gj(a){return a.length}, -n(a,b){A.Z(b,a,a.length) +$ic_:1} +A.bh.prototype={ +gj(a){return B.E}, +gk(a){return a.length}, +p(a,b){A.Y(b,a,a.length) return a[b]}, $if:1, -$icb:1} -A.aL.prototype={} -A.aM.prototype={} -A.aN.prototype={} -A.aO.prototype={} -A.y.prototype={ -i(a){return A.cE(v.typeUniverse,this,a)}, -u(a){return A.fd(v.typeUniverse,this,a)}} -A.bA.prototype={} -A.cD.prototype={ -h(a){return A.u(this.a,null)}} -A.bz.prototype={ +$ic0:1} +A.aG.prototype={} +A.aH.prototype={} +A.aI.prototype={} +A.aJ.prototype={} +A.x.prototype={ +i(a){return A.ct(v.typeUniverse,this,a)}, +u(a){return A.f_(v.typeUniverse,this,a)}} +A.bt.prototype={} +A.cs.prototype={ +h(a){return A.t(this.a,null)}} +A.bs.prototype={ h(a){return this.a}} -A.aT.prototype={$iH:1} -A.cf.prototype={ +A.aO.prototype={$iF:1} +A.c4.prototype={ $1(a){var s=this.a,r=s.a s.a=null r.$0()}, $S:2} -A.ce.prototype={ +A.c3.prototype={ $1(a){var s,r this.a.a=a s=this.b r=this.c s.firstChild?s.removeChild(r):s.appendChild(r)}, $S:9} -A.cg.prototype={ +A.c5.prototype={ $0(){this.a.$0()}, $S:3} -A.ch.prototype={ +A.c6.prototype={ $0(){this.a.$0()}, $S:3} -A.cB.prototype={ -an(a,b){if(self.setTimeout!=null)self.setTimeout(A.cO(new A.cC(this,b),0),a) -else throw A.b(A.eP("`setTimeout()` not found."))}} -A.cC.prototype={ +A.cq.prototype={ +al(a,b){if(self.setTimeout!=null)self.setTimeout(A.cC(new A.cr(this,b),0),a) +else throw A.b(A.eB("`setTimeout()` not found."))}} +A.cr.prototype={ $0(){this.b.$0()}, $S:0} -A.bu.prototype={} -A.cH.prototype={ +A.bn.prototype={} +A.cw.prototype={ $1(a){return this.a.$2(0,a)}, $S:4} -A.cI.prototype={ -$2(a,b){this.a.$2(1,new A.ak(a,b))}, +A.cx.prototype={ +$2(a,b){this.a.$2(1,new A.ah(a,b))}, $S:10} -A.cM.prototype={ +A.cA.prototype={ $2(a,b){this.a(a,b)}, $S:11} -A.V.prototype={ +A.S.prototype={ h(a){return A.o(this.a)}, $il:1, -gL(){return this.b}} -A.aF.prototype={} -A.aG.prototype={ -V(){}, -W(){}} -A.a7.prototype={ -gU(){return this.c<4}, -ae(a,b,c,d){var s,r,q,p,o,n=this -if((n.c&4)!==0){s=new A.aH($.k) -A.dh(s.gaA()) +gH(){return this.b}} +A.aA.prototype={} +A.aB.prototype={ +R(){}, +S(){}} +A.a5.prototype={ +gP(){return this.c<4}, +ab(a,b,c,d){var s,r,q,p,o,n=this +if((n.c&4)!==0){s=new A.aC($.k) +A.d6(s.gaw()) if(c!=null)s.c=c return s}s=$.k r=d?1:0 q=b!=null?32:0 -A.dD(s,b) -p=new A.aG(n,a,s,r|q) +A.ds(s,b) +p=new A.aB(n,a,s,r|q) p.CW=p p.ch=p p.ay=n.c&1 @@ -2107,14 +2060,14 @@ p.ch=null p.CW=o if(o==null)n.d=p else o.ch=p -if(n.d===p)A.bL(n.a) +if(n.d===p)A.bC(n.a) return p}, -ab(a){}, -ac(a){}, -M(){if((this.c&4)!==0)return new A.G("Cannot add new events after calling close") -return new A.G("Cannot add new events while doing an addStream")}, -aw(a){var s,r,q,p,o=this,n=o.c -if((n&2)!==0)throw A.b(A.dz(u.g)) +a8(a){}, +a9(a){}, +I(){if((this.c&4)!==0)return new A.E("Cannot add new events after calling close") +return new A.E("Cannot add new events while doing an addStream")}, +au(a){var s,r,q,p,o=this,n=o.c +if((n&2)!==0)throw A.b(A.dn(u.g)) s=o.d if(s==null)return r=n&1 @@ -2132,55 +2085,55 @@ else q.CW=p s.CW=s s.ch=s}s.ay=n&4294967293 s=q}else s=s.ch}o.c&=4294967293 -if(o.d==null)o.a6()}, -a6(){if((this.c&4)!==0)if(null.gb0())null.a5(null) -A.bL(this.b)}} -A.aS.prototype={ -gU(){return A.a7.prototype.gU.call(this)&&(this.c&2)===0}, -M(){if((this.c&2)!==0)return new A.G(u.g) -return this.al()}, -B(a){var s=this,r=s.d +if(o.d==null)o.a3()}, +a3(){if((this.c&4)!==0)if(null.gaW())null.a2(null) +A.bC(this.b)}} +A.aN.prototype={ +gP(){return A.a5.prototype.gP.call(this)&&(this.c&2)===0}, +I(){if((this.c&2)!==0)return new A.E(u.g) +return this.aj()}, +A(a){var s=this,r=s.d if(r==null)return if(r===s.e){s.c|=2 -r.a3(a) +r.a0(a) s.c&=4294967293 -if(s.d==null)s.a6() -return}s.aw(new A.cA(s,a))}} -A.cA.prototype={ -$1(a){a.a3(this.b)}, -$S(){return this.a.$ti.i("~(Y<1>)")}} -A.aa.prototype={ -aP(a){if((this.c&15)!==6)return!0 -return this.b.b.a0(this.d,a.a)}, -aN(a){var s,r=this.e,q=null,p=a.a,o=this.b.b -if(t.C.b(r))q=o.aU(r,p,a.b) -else q=o.a0(r,p) +if(s.d==null)s.a3() +return}s.au(new A.cp(s,a))}} +A.cp.prototype={ +$1(a){a.a0(this.b)}, +$S(){return this.a.$ti.i("~(W<1>)")}} +A.a8.prototype={ +aK(a){if((this.c&15)!==6)return!0 +return this.b.b.Y(this.d,a.a)}, +aI(a){var s,r=this.e,q=null,p=a.a,o=this.b.b +if(t.C.b(r))q=o.aP(r,p,a.b) +else q=o.Y(r,p) try{p=q -return p}catch(s){if(t.c.b(A.N(s))){if((this.c&1)!==0)throw A.b(A.b1("The error handler of Future.then must return a value of the returned future's type","onError")) -throw A.b(A.b1("The error handler of Future.catchError must return a value of the future's type","onError"))}else throw s}}} +return p}catch(s){if(t.c.b(A.R(s))){if((this.c&1)!==0)throw A.b(A.aW("The error handler of Future.then must return a value of the returned future's type","onError")) +throw A.b(A.aW("The error handler of Future.catchError must return a value of the future's type","onError"))}else throw s}}} A.p.prototype={ -ad(a){this.a=this.a&1|4 +aa(a){this.a=this.a&1|4 this.c=a}, -a1(a,b,c){var s,r,q=$.k -if(q===B.a){if(b!=null&&!t.C.b(b)&&!t.v.b(b))throw A.b(A.dm(b,"onError",u.c))}else if(b!=null)b=A.fL(b,q) +Z(a,b,c){var s,r,q=$.k +if(q===B.a){if(b!=null&&!t.C.b(b)&&!t.v.b(b))throw A.b(A.dc(b,"onError",u.c))}else if(b!=null)b=A.fw(b,q) s=new A.p(q,c.i("p<0>")) r=b==null?1:3 -this.N(new A.aa(s,r,a,b,this.$ti.i("@<1>").u(c).i("aa<1,2>"))) +this.J(new A.a8(s,r,a,b,this.$ti.i("@<1>").u(c).i("a8<1,2>"))) return s}, -aZ(a,b){return this.a1(a,null,b)}, -af(a,b,c){var s=new A.p($.k,c.i("p<0>")) -this.N(new A.aa(s,19,a,b,this.$ti.i("@<1>").u(c).i("aa<1,2>"))) +aU(a,b){return this.Z(a,null,b)}, +ac(a,b,c){var s=new A.p($.k,c.i("p<0>")) +this.J(new A.a8(s,19,a,b,this.$ti.i("@<1>").u(c).i("a8<1,2>"))) return s}, -aE(a){this.a=this.a&1|16 +aB(a){this.a=this.a&1|16 this.c=a}, -E(a){this.a=a.a&30|this.a&1 +B(a){this.a=a.a&30|this.a&1 this.c=a.c}, -N(a){var s=this,r=s.a +J(a){var s=this,r=s.a if(r<=3){a.a=s.c s.c=a}else{if((r&4)!==0){r=s.c -if((r.a&24)===0){r.N(a) -return}s.E(r)}A.ad(null,null,s.b,new A.cj(s,a))}}, -X(a){var s,r,q,p,o,n=this,m={} +if((r.a&24)===0){r.J(a) +return}s.B(r)}A.ac(null,null,s.b,new A.c8(s,a))}}, +T(a){var s,r,q,p,o,n=this,m={} m.a=a if(a==null)return s=n.a @@ -2189,199 +2142,196 @@ n.c=a if(r!=null){q=a.a for(p=a;q!=null;p=q,q=o)o=q.a p.a=r}}else{if((s&4)!==0){s=n.c -if((s.a&24)===0){s.X(a) -return}n.E(s)}m.a=n.H(a) -A.ad(null,null,n.b,new A.cq(m,n))}}, -G(){var s=this.c +if((s.a&24)===0){s.T(a) +return}n.B(s)}m.a=n.D(a) +A.ac(null,null,n.b,new A.cf(m,n))}}, +C(){var s=this.c this.c=null -return this.H(s)}, -H(a){var s,r,q +return this.D(s)}, +D(a){var s,r,q for(s=a,r=null;s!=null;r=s,s=q){q=s.a s.a=r}return r}, -aq(a){var s,r,q,p=this +ao(a){var s,r,q,p=this p.a^=2 -try{a.a1(new A.cn(p),new A.co(p),t.P)}catch(q){s=A.N(q) -r=A.L(q) -A.dh(new A.cp(p,s,r))}}, -P(a){var s=this,r=s.G() +try{a.Z(new A.cc(p),new A.cd(p),t.P)}catch(q){s=A.R(q) +r=A.J(q) +A.d6(new A.ce(p,s,r))}}, +L(a){var s=this,r=s.C() s.a=8 s.c=a -A.ab(s,r)}, -A(a,b){var s=this.G() -this.aE(new A.V(a,b)) -A.ab(this,s)}, -a5(a){if(this.$ti.i("a2<1>").b(a)){this.a7(a) +A.a9(s,r)}, +v(a,b){var s=this.C() +this.aB(new A.S(a,b)) +A.a9(this,s)}, +a2(a){if(this.$ti.i("a_<1>").b(a)){this.a4(a) +return}this.am(a)}, +am(a){this.a^=2 +A.ac(null,null,this.b,new A.ca(this,a))}, +a4(a){if(this.$ti.b(a)){A.eI(a,this) return}this.ao(a)}, -ao(a){this.a^=2 -A.ad(null,null,this.b,new A.cl(this,a))}, -a7(a){if(this.$ti.b(a)){A.eW(a,this) -return}this.aq(a)}, -O(a,b){this.a^=2 -A.ad(null,null,this.b,new A.ck(this,a,b))}, -$ia2:1} -A.cj.prototype={ -$0(){A.ab(this.a,this.b)}, +K(a,b){this.a^=2 +A.ac(null,null,this.b,new A.c9(this,a,b))}, +$ia_:1} +A.c8.prototype={ +$0(){A.a9(this.a,this.b)}, $S:0} -A.cq.prototype={ -$0(){A.ab(this.b,this.a.a)}, +A.cf.prototype={ +$0(){A.a9(this.b,this.a.a)}, $S:0} -A.cn.prototype={ +A.cc.prototype={ $1(a){var s,r,q,p=this.a p.a^=2 -try{p.P(p.$ti.c.a(a))}catch(q){s=A.N(q) -r=A.L(q) -p.A(s,r)}}, +try{p.L(p.$ti.c.a(a))}catch(q){s=A.R(q) +r=A.J(q) +p.v(s,r)}}, $S:2} -A.co.prototype={ -$2(a,b){this.a.A(a,b)}, +A.cd.prototype={ +$2(a,b){this.a.v(a,b)}, $S:12} -A.cp.prototype={ -$0(){this.a.A(this.b,this.c)}, +A.ce.prototype={ +$0(){this.a.v(this.b,this.c)}, $S:0} -A.cm.prototype={ -$0(){A.dF(this.a.a,this.b)}, +A.cb.prototype={ +$0(){A.du(this.a.a,this.b)}, $S:0} -A.cl.prototype={ -$0(){this.a.P(this.b)}, +A.ca.prototype={ +$0(){this.a.L(this.b)}, $S:0} -A.ck.prototype={ -$0(){this.a.A(this.b,this.c)}, +A.c9.prototype={ +$0(){this.a.v(this.b,this.c)}, $S:0} -A.ct.prototype={ +A.ci.prototype={ $0(){var s,r,q,p,o,n,m,l=this,k=null try{q=l.a.a -k=q.b.b.aS(q.d)}catch(p){s=A.N(p) -r=A.L(p) +k=q.b.b.aN(q.d)}catch(p){s=A.R(p) +r=A.J(p) if(l.c&&l.b.a.c.a===s){q=l.a q.c=l.b.a.c}else{q=s o=r -if(o==null)o=A.cY(q) +if(o==null)o=A.cM(q) n=l.a -n.c=new A.V(q,o) +n.c=new A.S(q,o) q=n}q.b=!0 return}if(k instanceof A.p&&(k.a&24)!==0){if((k.a&16)!==0){q=l.a q.c=k.c q.b=!0}return}if(k instanceof A.p){m=l.b.a q=l.a -q.c=k.aZ(new A.cu(m),t.z) +q.c=k.aU(new A.cj(m),t.z) q.b=!1}}, $S:0} -A.cu.prototype={ +A.cj.prototype={ $1(a){return this.a}, $S:13} -A.cs.prototype={ +A.ch.prototype={ $0(){var s,r,q,p,o,n try{q=this.a p=q.a -q.c=p.b.b.a0(p.d,this.b)}catch(o){s=A.N(o) -r=A.L(o) +q.c=p.b.b.Y(p.d,this.b)}catch(o){s=A.R(o) +r=A.J(o) q=s p=r -if(p==null)p=A.cY(q) +if(p==null)p=A.cM(q) n=this.a -n.c=new A.V(q,p) +n.c=new A.S(q,p) n.b=!0}}, $S:0} -A.cr.prototype={ +A.cg.prototype={ $0(){var s,r,q,p,o,n,m,l=this try{s=l.a.a.c p=l.b -if(p.a.aP(s)&&p.a.e!=null){p.c=p.a.aN(s) -p.b=!1}}catch(o){r=A.N(o) -q=A.L(o) +if(p.a.aK(s)&&p.a.e!=null){p.c=p.a.aI(s) +p.b=!1}}catch(o){r=A.R(o) +q=A.J(o) p=l.a.a.c if(p.a===r){n=l.b n.c=p p=n}else{p=r n=q -if(n==null)n=A.cY(p) +if(n==null)n=A.cM(p) m=l.b -m.c=new A.V(p,n) +m.c=new A.S(p,n) p=m}p.b=!0}}, $S:0} -A.bv.prototype={} -A.a5.prototype={ -gj(a){var s={},r=new A.p($.k,t.a) +A.bo.prototype={} +A.a3.prototype={ +gk(a){var s={},r=new A.p($.k,t.a) s.a=0 -this.ai(new A.c3(s,this),!0,new A.c4(s,r),r.gar()) +this.ag(new A.bT(s,this),!0,new A.bU(s,r),r.gap()) return r}} -A.c3.prototype={ +A.bT.prototype={ $1(a){++this.a.a}, -$S(){return A.S(this.b).i("~(1)")}} -A.c4.prototype={ -$0(){var s=this.b,r=this.a.a,q=s.G() +$S(){return A.aa(this.b).i("~(1)")}} +A.bU.prototype={ +$0(){var s=this.b,r=this.a.a,q=s.C() s.a=8 s.c=r -A.ab(s,q)}, +A.a9(s,q)}, $S:0} -A.bE.prototype={ -gaC(){if((this.b&8)===0)return this.a -return this.a.gY()}, -av(){var s,r=this +A.bv.prototype={ +gaA(){if((this.b&8)===0)return this.a +return this.a.gU()}, +ar(){var s,r=this if((r.b&8)===0){s=r.a -return s==null?r.a=new A.aP():s}s=r.a.gY() +return s==null?r.a=new A.aK():s}s=r.a.gU() return s}, -gaI(){var s=this.a -return(this.b&8)!==0?s.gY():s}, -ap(){if((this.b&4)!==0)return new A.G("Cannot add event after closing") -return new A.G("Cannot add event while adding a stream")}, -ae(a,b,c,d){var s,r,q,p,o=this -if((o.b&3)!==0)throw A.b(A.dz("Stream has already been listened to.")) -s=A.eV(o,a,b,c,d) -r=o.gaC() +gaF(){var s=this.a +return(this.b&8)!==0?s.gU():s}, +an(){if((this.b&4)!==0)return new A.E("Cannot add event after closing") +return new A.E("Cannot add event while adding a stream")}, +ab(a,b,c,d){var s,r,q,p,o=this +if((o.b&3)!==0)throw A.b(A.dn("Stream has already been listened to.")) +s=A.eH(o,a,b,c,d) +r=o.gaA() q=o.b|=1 if((q&8)!==0){p=o.a -p.sY(s) -p.aR()}else o.a=s -s.aF(r) +p.sU(s) +p.aM()}else o.a=s +s.aC(r) q=s.e s.e=q|64 -new A.cz(o).$0() +new A.co(o).$0() s.e&=4294967231 -s.a8((q&4)!==0) +s.a5((q&4)!==0) return s}, -ab(a){if((this.b&8)!==0)this.a.b1() -A.bL(this.e)}, -ac(a){if((this.b&8)!==0)this.a.aR() -A.bL(this.f)}} -A.cz.prototype={ -$0(){A.bL(this.a.d)}, +a8(a){if((this.b&8)!==0)this.a.aX() +A.bC(this.e)}, +a9(a){if((this.b&8)!==0)this.a.aM() +A.bC(this.f)}} +A.co.prototype={ +$0(){A.bC(this.a.d)}, $S:0} -A.bw.prototype={ -B(a){this.gaI().a4(new A.a9(a))}} -A.a6.prototype={} -A.Q.prototype={ -gq(a){return(A.aA(this.a)^892482866)>>>0}, -D(a,b){if(b==null)return!1 -if(this===b)return!0 -return b instanceof A.Q&&b.a===this.a}} -A.a8.prototype={ -V(){this.w.ab(this)}, -W(){this.w.ac(this)}} -A.Y.prototype={ -aF(a){if(a==null)return +A.bp.prototype={ +A(a){this.gaF().a1(new A.a7(a))}} +A.a4.prototype={} +A.X.prototype={ +gn(a){return(A.av(this.a)^892482866)>>>0}} +A.a6.prototype={ +R(){this.w.a8(this)}, +S(){this.w.a9(this)}} +A.W.prototype={ +aC(a){if(a==null)return this.r=a if(a.c!=null){this.e|=128 -a.K(this)}}, -a3(a){var s=this.e +a.G(this)}}, +a0(a){var s=this.e if((s&8)!==0)return -if(s<64)this.B(a) -else this.a4(new A.a9(a))}, -V(){}, -W(){}, -a4(a){var s,r=this,q=r.r -if(q==null)q=r.r=new A.aP() -q.ag(0,a) +if(s<64)this.A(a) +else this.a1(new A.a7(a))}, +R(){}, +S(){}, +a1(a){var s,r=this,q=r.r +if(q==null)q=r.r=new A.aK() +q.ad(0,a) s=r.e if((s&128)===0){s|=128 r.e=s -if(s<256)q.K(r)}}, -B(a){var s=this,r=s.e +if(s<256)q.G(r)}}, +A(a){var s=this,r=s.e s.e=r|64 -s.d.aY(s.a,a) +s.d.aT(s.a,a) s.e&=4294967231 -s.a8((r&4)!==0)}, -a8(a){var s,r,q=this,p=q.e +s.a5((r&4)!==0)}, +a5(a){var s,r,q=this,p=q.e if((p&128)!==0&&q.r.c==null){p=q.e=p&4294967167 s=!1 if((p&4)!==0)if(p<256){s=q.r @@ -2391,24 +2341,24 @@ q.e=p}}for(;!0;a=r){if((p&8)!==0){q.r=null return}r=(p&4)!==0 if(a===r)break q.e=p^64 -if(r)q.V() -else q.W() -p=q.e&=4294967231}if((p&128)!==0&&p<256)q.r.K(q)}} -A.aR.prototype={ -ai(a,b,c,d){return this.a.ae(a,d,c,b===!0)}, -aO(a){return this.ai(a,null,null,null)}} -A.by.prototype={} -A.a9.prototype={} -A.aP.prototype={ -K(a){var s=this,r=s.a +if(r)q.R() +else q.S() +p=q.e&=4294967231}if((p&128)!==0&&p<256)q.r.G(q)}} +A.aM.prototype={ +ag(a,b,c,d){return this.a.ab(a,d,c,b===!0)}, +aJ(a){return this.ag(a,null,null,null)}} +A.br.prototype={} +A.a7.prototype={} +A.aK.prototype={ +G(a){var s=this,r=s.a if(r===1)return if(r>=1){s.a=1 -return}A.dh(new A.cw(s,a)) +return}A.d6(new A.cl(s,a)) s.a=1}, -ag(a,b){var s=this,r=s.c +ad(a,b){var s=this,r=s.c if(r==null)s.b=s.c=b else s.c=r.a=b}} -A.cw.prototype={ +A.cl.prototype={ $0(){var s,r,q=this.a,p=q.a q.a=0 if(p===3)return @@ -2416,87 +2366,87 @@ s=q.b r=s.a q.b=r if(r==null)q.c=null -this.b.B(s.b)}, +this.b.A(s.b)}, $S:0} -A.aH.prototype={ -aB(){var s,r=this,q=r.a-1 +A.aC.prototype={ +az(){var s,r=this,q=r.a-1 if(q===0){r.a=-1 s=r.c if(s!=null){r.c=null -r.b.aj(s)}}else r.a=q}} -A.bF.prototype={} -A.cG.prototype={} -A.cL.prototype={ -$0(){A.eD(this.a,this.b)}, +r.b.ah(s)}}else r.a=q}} +A.bw.prototype={} +A.cv.prototype={} +A.cz.prototype={ +$0(){A.ep(this.a,this.b)}, $S:0} -A.cx.prototype={ -aj(a){var s,r,q +A.cm.prototype={ +ah(a){var s,r,q try{if(B.a===$.k){a.$0() -return}A.e_(null,null,this,a)}catch(q){s=A.N(q) -r=A.L(q) -A.bK(s,r)}}, -aX(a,b){var s,r,q +return}A.dP(null,null,this,a)}catch(q){s=A.R(q) +r=A.J(q) +A.bB(s,r)}}, +aS(a,b){var s,r,q try{if(B.a===$.k){a.$1(b) -return}A.e0(null,null,this,a,b)}catch(q){s=A.N(q) -r=A.L(q) -A.bK(s,r)}}, -aY(a,b){return this.aX(a,b,t.z)}, -ah(a){return new A.cy(this,a)}, -aT(a){if($.k===B.a)return a.$0() -return A.e_(null,null,this,a)}, -aS(a){return this.aT(a,t.z)}, -aW(a,b){if($.k===B.a)return a.$1(b) -return A.e0(null,null,this,a,b)}, -a0(a,b){var s=t.z -return this.aW(a,b,s,s)}, -aV(a,b,c){if($.k===B.a)return a.$2(b,c) -return A.fM(null,null,this,a,b,c)}, -aU(a,b,c){var s=t.z -return this.aV(a,b,c,s,s,s)}, -aQ(a){return a}, -a_(a){var s=t.z -return this.aQ(a,s,s,s)}} -A.cy.prototype={ -$0(){return this.a.aj(this.b)}, +return}A.dQ(null,null,this,a,b)}catch(q){s=A.R(q) +r=A.J(q) +A.bB(s,r)}}, +aT(a,b){return this.aS(a,b,t.z)}, +ae(a){return new A.cn(this,a)}, +aO(a){if($.k===B.a)return a.$0() +return A.dP(null,null,this,a)}, +aN(a){return this.aO(a,t.z)}, +aR(a,b){if($.k===B.a)return a.$1(b) +return A.dQ(null,null,this,a,b)}, +Y(a,b){var s=t.z +return this.aR(a,b,s,s)}, +aQ(a,b,c){if($.k===B.a)return a.$2(b,c) +return A.fx(null,null,this,a,b,c)}, +aP(a,b,c){var s=t.z +return this.aQ(a,b,c,s,s,s)}, +aL(a){return a}, +X(a){var s=t.z +return this.aL(a,s,s,s)}} +A.cn.prototype={ +$0(){return this.a.ah(this.b)}, $S:0} -A.aI.prototype={ -gj(a){return this.a}, -gC(){return new A.aJ(this,this.$ti.i("aJ<1>"))}, -aK(a){var s,r +A.aD.prototype={ +gk(a){return this.a}, +gW(){return new A.aE(this,this.$ti.i("aE<1>"))}, +aH(a){var s,r if(typeof a=="string"&&a!=="__proto__"){s=this.b return s==null?!1:s[a]!=null}else if(typeof a=="number"&&(a&1073741823)===a){r=this.c -return r==null?!1:r[a]!=null}else return this.au(a)}, -au(a){var s=this.d +return r==null?!1:r[a]!=null}else return this.aq(a)}, +aq(a){var s=this.d if(s==null)return!1 -return this.T(this.aa(s,a),a)>=0}, -n(a,b){var s,r,q +return this.O(this.a7(s,a),a)>=0}, +p(a,b){var s,r,q if(typeof b=="string"&&b!=="__proto__"){s=this.b -r=s==null?null:A.dG(s,b) +r=s==null?null:A.dv(s,b) return r}else if(typeof b=="number"&&(b&1073741823)===b){q=this.c -r=q==null?null:A.dG(q,b) -return r}else return this.az(b)}, -az(a){var s,r,q=this.d +r=q==null?null:A.dv(q,b) +return r}else return this.av(b)}, +av(a){var s,r,q=this.d if(q==null)return null -s=this.aa(q,a) -r=this.T(s,a) +s=this.a7(q,a) +r=this.O(s,a) return r<0?null:s[r+1]}, -a2(a,b,c){var s,r,q,p=this,o=p.d -if(o==null)o=p.d=A.eX() -s=A.dg(b)&1073741823 +a_(a,b,c){var s,r,q,p=this,o=p.d +if(o==null)o=p.d=A.eJ() +s=A.d5(b)&1073741823 r=o[s] -if(r==null){A.dH(o,s,[b,c]);++p.a -p.e=null}else{q=p.T(r,b) +if(r==null){A.dw(o,s,[b,c]);++p.a +p.e=null}else{q=p.O(r,b) if(q>=0)r[q+1]=c else{r.push(b,c);++p.a p.e=null}}}, -I(a,b){var s,r,q,p,o,n=this,m=n.a9() +af(a,b){var s,r,q,p,o,n=this,m=n.a6() for(s=m.length,r=n.$ti.y[1],q=0;q"))}} -A.bB.prototype={ +A.aE.prototype={ +gk(a){return this.a.a}, +gq(a){var s=this.a +return new A.bu(s,s.a6(),this.$ti.i("bu<1>"))}} +A.bu.prototype={ gm(){var s=this.d return s==null?this.$ti.c.a(s):s}, l(){var s=this,r=s.b,q=s.c,p=s.a -if(r!==p.e)throw A.b(A.ai(p)) +if(r!==p.e)throw A.b(A.bH(p)) else if(q>=r.length){s.d=null return!1}else{s.d=r[q] s.c=q+1 return!0}}} A.j.prototype={ -gp(a){return new A.a3(a,this.gj(a),A.ag(a).i("a3"))}, -v(a,b){return this.n(a,b)}, -J(a,b,c){return new A.F(a,b,A.ag(a).i("@").u(c).i("F<1,2>"))}, -h(a){return A.du(a,"[","]")}} -A.z.prototype={ -I(a,b){var s,r,q,p -for(s=this.gC(),s=s.gp(s),r=A.S(this).i("z.V");s.l();){q=s.gm() -p=this.n(0,q) +gq(a){return new A.a0(a,this.gk(a),A.Z(a).i("a0"))}, +E(a,b){return this.p(a,b)}, +F(a,b,c){return new A.D(a,b,A.Z(a).i("@").u(c).i("D<1,2>"))}, +h(a){return A.di(a,"[","]")}} +A.a1.prototype={ +af(a,b){var s,r,q,p +for(s=this.gW(),s=s.gq(s),r=A.aa(this).y[1];s.l();){q=s.gm() +p=this.p(0,q) b.$2(q,p==null?r.a(p):p)}}, -gj(a){var s=this.gC() -return s.gj(s)}, -h(a){return A.eH(this)}, -$iau:1} -A.bZ.prototype={ +gk(a){var s=this.gW() +return s.gk(s)}, +h(a){return A.eu(this)}} +A.bP.prototype={ $2(a,b){var s,r=this.a if(!r.a)this.b.a+=", " r.a=!1 @@ -2555,228 +2504,174 @@ r.a=s+": " s=A.o(b) r.a+=s}, $S:14} -A.bC.prototype={ -n(a,b){var s,r=this.b -if(r==null)return this.c.n(0,b) -else if(typeof b!="string")return null -else{s=r[b] -return typeof s=="undefined"?this.aD(b):s}}, -gj(a){return this.b==null?this.c.a:this.F().length}, -gC(){if(this.b==null){var s=this.c -return new A.at(s,s.$ti.i("at<1>"))}return new A.bD(this)}, -I(a,b){var s,r,q,p,o=this -if(o.b==null)return o.c.I(0,b) -s=o.F() -for(r=0;r"))}return s}} -A.b4.prototype={} -A.b6.prototype={} -A.bX.prototype={ -aL(a,b){var s=A.fJ(a,this.gaM().a) -return s}, -gaM(){return B.u}} -A.bY.prototype={} A.l.prototype={ -gL(){return A.eL(this)}} -A.b2.prototype={ +gH(){return A.ex(this)}} +A.aY.prototype={ h(a){var s=this.a -if(s!=null)return"Assertion failed: "+A.bP(s) +if(s!=null)return"Assertion failed: "+A.bI(s) return"Assertion failed"}} -A.H.prototype={} -A.C.prototype={ -gS(){return"Invalid argument"+(!this.a?"(s)":"")}, -gR(){return""}, -h(a){var s=this,r=s.c,q=r==null?"":" ("+r+")",p=s.d,o=p==null?"":": "+p,n=s.gS()+q+o +A.F.prototype={} +A.A.prototype={ +gN(){return"Invalid argument"+(!this.a?"(s)":"")}, +gM(){return""}, +h(a){var s=this,r=s.c,q=r==null?"":" ("+r+")",p=s.d,o=p==null?"":": "+p,n=s.gN()+q+o if(!s.a)return n -return n+s.gR()+": "+A.bP(s.gZ())}, -gZ(){return this.b}} -A.aB.prototype={ -gZ(){return this.b}, -gS(){return"RangeError"}, -gR(){var s,r=this.e,q=this.f +return n+s.gM()+": "+A.bI(s.gV())}, +gV(){return this.b}} +A.aw.prototype={ +gV(){return this.b}, +gN(){return"RangeError"}, +gM(){var s,r=this.e,q=this.f if(r==null)s=q!=null?": Not less than or equal to "+A.o(q):"" else if(q==null)s=": Not greater than or equal to "+A.o(r) else if(q>r)s=": Not in inclusive range "+A.o(r)+".."+A.o(q) else s=q=4)A.bM(q.ap()) -if((s&1)!==0)q.B(r) -else if((s&3)===0)q.av().ag(0,new A.a9(r))}, -$S:18} -A.cV.prototype={ -$1(a){var s,r,q,p=null -if(typeof a=="string")try{s=t.f.a(B.m.aL(a,p)) -A.ed("Received "+a+" PARSED TO "+A.o(s)+"\n") -r=t.m.a(self) -A.eF(r,"postMessage",A.eb(a),p,p,p)}catch(q){A.ed("Received data from WASM worker but it's not a String!\n")}}, -$S:4};(function aliases(){var s=J.P.prototype -s.ak=s.h -s=A.a7.prototype -s.al=s.M})();(function installTearOffs(){var s=hunkHelpers._static_1,r=hunkHelpers._static_0,q=hunkHelpers._static_2,p=hunkHelpers._instance_2u,o=hunkHelpers._instance_0u -s(A,"fV","eS",1) -s(A,"fW","eT",1) -s(A,"fX","eU",1) -r(A,"e4","fO",0) -q(A,"fY","fI",5) -p(A.p.prototype,"gar","A",5) -o(A.aH.prototype,"gaA","aB",0)})();(function inheritance(){var s=hunkHelpers.mixin,r=hunkHelpers.inherit,q=hunkHelpers.inheritMany +if(s>=4)A.bE(q.an()) +if((s&1)!==0)q.A(r) +else if((s&3)===0)q.ar().ad(0,new A.a7(r))}, +$S:17} +A.cJ.prototype={ +$1(a){var s,r +A.e0("Dart worker: onMessage received "+A.o(a)+" with type of "+J.db(a).h(0)+"\n") +try{s=t.m.a(self) +A.es(s,"postMessage",A.fX(a==null?t.K.a(a):a),null,null,null)}catch(r){A.e0("Received data from WASM worker but it's not a String!\n")}}, +$S:4};(function aliases(){var s=J.M.prototype +s.ai=s.h +s=A.a5.prototype +s.aj=s.I})();(function installTearOffs(){var s=hunkHelpers._static_1,r=hunkHelpers._static_0,q=hunkHelpers._static_2,p=hunkHelpers._instance_2u,o=hunkHelpers._instance_0u +s(A,"fG","eE",1) +s(A,"fH","eF",1) +s(A,"fI","eG",1) +r(A,"dU","fz",0) +q(A,"fJ","fu",5) +p(A.p.prototype,"gap","v",5) +o(A.aC.prototype,"gaw","az",0)})();(function inheritance(){var s=hunkHelpers.mixin,r=hunkHelpers.inherit,q=hunkHelpers.inheritMany r(A.d,null) -q(A.d,[A.d0,J.b8,J.a1,A.l,A.c,A.a3,A.be,A.al,A.c6,A.c_,A.ak,A.aQ,A.W,A.bd,A.y,A.bA,A.cD,A.cB,A.bu,A.V,A.a5,A.Y,A.a7,A.aa,A.p,A.bv,A.bE,A.bw,A.by,A.aP,A.aH,A.bF,A.cG,A.z,A.bB,A.j,A.b4,A.b6,A.aC,A.ci,A.bS,A.q,A.bG,A.br,A.cc]) -q(J.b8,[J.b9,J.an,J.aq,J.ap,J.ar,J.bb,J.ao]) -q(J.aq,[J.P,J.v,A.bf,A.ax]) -q(J.P,[J.bp,J.aD,J.O]) -r(J.bW,J.v) -q(J.bb,[J.am,J.ba]) -q(A.l,[A.as,A.H,A.bc,A.bt,A.bx,A.bq,A.bz,A.b2,A.C,A.aE,A.bs,A.G,A.b5]) -q(A.c,[A.e,A.X]) -q(A.e,[A.D,A.at,A.aJ]) -r(A.aj,A.X) -q(A.D,[A.F,A.bD]) -r(A.az,A.H) -q(A.W,[A.bN,A.bO,A.c5,A.cQ,A.cS,A.cf,A.ce,A.cH,A.cA,A.cn,A.cu,A.c3,A.cU,A.cN,A.cd,A.cV]) -q(A.c5,[A.c2,A.ah]) -q(A.bO,[A.cR,A.cI,A.cM,A.co,A.bZ]) -q(A.ax,[A.bg,A.a4]) -q(A.a4,[A.aL,A.aN]) -r(A.aM,A.aL) -r(A.av,A.aM) -r(A.aO,A.aN) -r(A.aw,A.aO) -q(A.av,[A.bh,A.bi]) -q(A.aw,[A.bj,A.bk,A.bl,A.bm,A.bn,A.ay,A.bo]) -r(A.aT,A.bz) -q(A.bN,[A.cg,A.ch,A.cC,A.cj,A.cq,A.cp,A.cm,A.cl,A.ck,A.ct,A.cs,A.cr,A.c4,A.cz,A.cw,A.cL,A.cy,A.c0]) -r(A.aR,A.a5) -r(A.Q,A.aR) -r(A.aF,A.Q) -r(A.a8,A.Y) -r(A.aG,A.a8) -r(A.aS,A.a7) -r(A.a6,A.bE) -r(A.a9,A.by) -r(A.cx,A.cG) -q(A.z,[A.aI,A.bC]) -r(A.aK,A.aI) -r(A.bX,A.b4) -r(A.bY,A.b6) -q(A.C,[A.aB,A.b7]) -s(A.aL,A.j) -s(A.aM,A.al) -s(A.aN,A.j) -s(A.aO,A.al) -s(A.a6,A.bw)})() -var v={typeUniverse:{eC:new Map(),tR:{},eT:{},tPV:{},sEA:[]},mangledGlobalNames:{a:"int",h:"double",hd:"num",t:"String",fZ:"bool",q:"Null",i:"List",d:"Object",au:"Map"},mangledNames:{},types:["~()","~(~())","q(@)","q()","~(@)","~(d,A)","@(@)","@(@,t)","@(t)","q(~())","q(@,A)","~(a,@)","q(d,A)","p<@>(@)","~(d?,d?)","d?()","d?(d?)","~(d)","q(n)"],interceptorsByTag:null,leafTags:null,arrayRti:Symbol("$ti")} -A.fc(v.typeUniverse,JSON.parse('{"bp":"P","aD":"P","O":"P","b9":{"f":[]},"an":{"q":[],"f":[]},"aq":{"n":[]},"P":{"n":[]},"v":{"i":["1"],"e":["1"],"n":[],"c":["1"]},"bW":{"v":["1"],"i":["1"],"e":["1"],"n":[],"c":["1"]},"bb":{"h":[]},"am":{"h":[],"a":[],"f":[]},"ba":{"h":[],"f":[]},"ao":{"t":[],"f":[]},"as":{"l":[]},"e":{"c":["1"]},"D":{"e":["1"],"c":["1"]},"X":{"c":["2"],"c.E":"2"},"aj":{"X":["1","2"],"e":["2"],"c":["2"],"c.E":"2"},"F":{"D":["2"],"e":["2"],"c":["2"],"c.E":"2","D.E":"2"},"az":{"H":[],"l":[]},"bc":{"l":[]},"bt":{"l":[]},"aQ":{"A":[]},"bx":{"l":[]},"bq":{"l":[]},"at":{"e":["1"],"c":["1"],"c.E":"1"},"bf":{"n":[],"cZ":[],"f":[]},"ax":{"n":[]},"bg":{"d_":[],"n":[],"f":[]},"a4":{"w":["1"],"n":[]},"av":{"j":["h"],"i":["h"],"w":["h"],"e":["h"],"n":[],"c":["h"]},"aw":{"j":["a"],"i":["a"],"w":["a"],"e":["a"],"n":[],"c":["a"]},"bh":{"bQ":[],"j":["h"],"i":["h"],"w":["h"],"e":["h"],"n":[],"c":["h"],"f":[],"j.E":"h"},"bi":{"bR":[],"j":["h"],"i":["h"],"w":["h"],"e":["h"],"n":[],"c":["h"],"f":[],"j.E":"h"},"bj":{"bT":[],"j":["a"],"i":["a"],"w":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bk":{"bU":[],"j":["a"],"i":["a"],"w":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bl":{"bV":[],"j":["a"],"i":["a"],"w":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bm":{"c8":[],"j":["a"],"i":["a"],"w":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bn":{"c9":[],"j":["a"],"i":["a"],"w":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"ay":{"ca":[],"j":["a"],"i":["a"],"w":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bo":{"cb":[],"j":["a"],"i":["a"],"w":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bz":{"l":[]},"aT":{"H":[],"l":[]},"p":{"a2":["1"]},"V":{"l":[]},"aF":{"Q":["1"],"a5":["1"]},"aG":{"Y":["1"]},"aS":{"a7":["1"]},"a6":{"bE":["1"]},"Q":{"a5":["1"]},"a8":{"Y":["1"]},"aR":{"a5":["1"]},"aI":{"z":["1","2"],"au":["1","2"]},"aK":{"aI":["1","2"],"z":["1","2"],"au":["1","2"],"z.V":"2"},"aJ":{"e":["1"],"c":["1"],"c.E":"1"},"z":{"au":["1","2"]},"bC":{"z":["t","@"],"au":["t","@"],"z.V":"@"},"bD":{"D":["t"],"e":["t"],"c":["t"],"c.E":"t","D.E":"t"},"b2":{"l":[]},"H":{"l":[]},"C":{"l":[]},"aB":{"l":[]},"b7":{"l":[]},"aE":{"l":[]},"bs":{"l":[]},"G":{"l":[]},"b5":{"l":[]},"aC":{"l":[]},"bG":{"A":[]},"bV":{"i":["a"],"e":["a"],"c":["a"]},"cb":{"i":["a"],"e":["a"],"c":["a"]},"ca":{"i":["a"],"e":["a"],"c":["a"]},"bT":{"i":["a"],"e":["a"],"c":["a"]},"c8":{"i":["a"],"e":["a"],"c":["a"]},"bU":{"i":["a"],"e":["a"],"c":["a"]},"c9":{"i":["a"],"e":["a"],"c":["a"]},"bQ":{"i":["h"],"e":["h"],"c":["h"]},"bR":{"i":["h"],"e":["h"],"c":["h"]}}')) -A.fb(v.typeUniverse,JSON.parse('{"e":1,"al":1,"bd":1,"a4":1,"Y":1,"aG":1,"bw":1,"a8":1,"aR":1,"by":1,"a9":1,"aP":1,"aH":1,"bF":1,"b4":2,"b6":2}')) +q(A.d,[A.cP,J.b2,J.aX,A.l,A.c,A.a0,A.b7,A.ai,A.bW,A.bQ,A.ah,A.aL,A.T,A.x,A.bt,A.cs,A.cq,A.bn,A.S,A.a3,A.W,A.a5,A.a8,A.p,A.bo,A.bv,A.bp,A.br,A.aK,A.aC,A.bw,A.cv,A.a1,A.bu,A.j,A.ax,A.c7,A.q,A.bx,A.bk,A.c1]) +q(J.b2,[J.b3,J.ak,J.an,J.am,J.ao,J.b5,J.al]) +q(J.an,[J.M,J.u,A.b8,A.as]) +q(J.M,[J.bi,J.ay,J.L]) +r(J.bO,J.u) +q(J.b5,[J.aj,J.b4]) +q(A.l,[A.ap,A.F,A.b6,A.bm,A.bq,A.bj,A.bs,A.aY,A.A,A.az,A.bl,A.E,A.b0]) +q(A.c,[A.e,A.U]) +q(A.e,[A.N,A.aE]) +r(A.ag,A.U) +r(A.D,A.N) +r(A.au,A.F) +q(A.T,[A.bF,A.bG,A.bV,A.cE,A.cG,A.c4,A.c3,A.cw,A.cp,A.cc,A.cj,A.bT,A.cI,A.cB,A.c2,A.cJ]) +q(A.bV,[A.bS,A.b_]) +q(A.bG,[A.cF,A.cx,A.cA,A.cd,A.bP]) +q(A.as,[A.b9,A.a2]) +q(A.a2,[A.aG,A.aI]) +r(A.aH,A.aG) +r(A.aq,A.aH) +r(A.aJ,A.aI) +r(A.ar,A.aJ) +q(A.aq,[A.ba,A.bb]) +q(A.ar,[A.bc,A.bd,A.be,A.bf,A.bg,A.at,A.bh]) +r(A.aO,A.bs) +q(A.bF,[A.c5,A.c6,A.cr,A.c8,A.cf,A.ce,A.cb,A.ca,A.c9,A.ci,A.ch,A.cg,A.bU,A.co,A.cl,A.cz,A.cn]) +r(A.aM,A.a3) +r(A.X,A.aM) +r(A.aA,A.X) +r(A.a6,A.W) +r(A.aB,A.a6) +r(A.aN,A.a5) +r(A.a4,A.bv) +r(A.a7,A.br) +r(A.cm,A.cv) +r(A.aD,A.a1) +r(A.aF,A.aD) +q(A.A,[A.aw,A.b1]) +s(A.aG,A.j) +s(A.aH,A.ai) +s(A.aI,A.j) +s(A.aJ,A.ai) +s(A.a4,A.bp)})() +var v={typeUniverse:{eC:new Map(),tR:{},eT:{},tPV:{},sEA:[]},mangledGlobalNames:{a:"int",h:"double",h_:"num",V:"String",fK:"bool",q:"Null",i:"List",d:"Object",h8:"Map"},mangledNames:{},types:["~()","~(~())","q(@)","q()","~(@)","~(d,y)","@(@)","@(@,V)","@(V)","q(~())","q(@,y)","~(a,@)","q(d,y)","p<@>(@)","~(d?,d?)","d?(d?)","~(d)","q(n)"],interceptorsByTag:null,leafTags:null,arrayRti:Symbol("$ti")} +A.eZ(v.typeUniverse,JSON.parse('{"bi":"M","ay":"M","L":"M","b3":{"f":[]},"ak":{"q":[],"f":[]},"an":{"n":[]},"M":{"n":[]},"u":{"i":["1"],"e":["1"],"n":[],"c":["1"]},"bO":{"u":["1"],"i":["1"],"e":["1"],"n":[],"c":["1"]},"b5":{"h":[]},"aj":{"h":[],"a":[],"f":[]},"b4":{"h":[],"f":[]},"al":{"V":[],"f":[]},"ap":{"l":[]},"e":{"c":["1"]},"N":{"e":["1"],"c":["1"]},"U":{"c":["2"],"c.E":"2"},"ag":{"U":["1","2"],"e":["2"],"c":["2"],"c.E":"2"},"D":{"N":["2"],"e":["2"],"c":["2"],"c.E":"2","N.E":"2"},"au":{"F":[],"l":[]},"b6":{"l":[]},"bm":{"l":[]},"aL":{"y":[]},"bq":{"l":[]},"bj":{"l":[]},"b8":{"n":[],"cN":[],"f":[]},"as":{"n":[]},"b9":{"cO":[],"n":[],"f":[]},"a2":{"v":["1"],"n":[]},"aq":{"j":["h"],"i":["h"],"v":["h"],"e":["h"],"n":[],"c":["h"]},"ar":{"j":["a"],"i":["a"],"v":["a"],"e":["a"],"n":[],"c":["a"]},"ba":{"bJ":[],"j":["h"],"i":["h"],"v":["h"],"e":["h"],"n":[],"c":["h"],"f":[],"j.E":"h"},"bb":{"bK":[],"j":["h"],"i":["h"],"v":["h"],"e":["h"],"n":[],"c":["h"],"f":[],"j.E":"h"},"bc":{"bL":[],"j":["a"],"i":["a"],"v":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bd":{"bM":[],"j":["a"],"i":["a"],"v":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"be":{"bN":[],"j":["a"],"i":["a"],"v":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bf":{"bY":[],"j":["a"],"i":["a"],"v":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bg":{"bZ":[],"j":["a"],"i":["a"],"v":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"at":{"c_":[],"j":["a"],"i":["a"],"v":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bh":{"c0":[],"j":["a"],"i":["a"],"v":["a"],"e":["a"],"n":[],"c":["a"],"f":[],"j.E":"a"},"bs":{"l":[]},"aO":{"F":[],"l":[]},"p":{"a_":["1"]},"S":{"l":[]},"aA":{"X":["1"],"a3":["1"]},"aB":{"W":["1"]},"aN":{"a5":["1"]},"a4":{"bv":["1"]},"X":{"a3":["1"]},"a6":{"W":["1"]},"aM":{"a3":["1"]},"aD":{"a1":["1","2"]},"aF":{"aD":["1","2"],"a1":["1","2"]},"aE":{"e":["1"],"c":["1"],"c.E":"1"},"aY":{"l":[]},"F":{"l":[]},"A":{"l":[]},"aw":{"l":[]},"b1":{"l":[]},"az":{"l":[]},"bl":{"l":[]},"E":{"l":[]},"b0":{"l":[]},"ax":{"l":[]},"bx":{"y":[]},"bN":{"i":["a"],"e":["a"],"c":["a"]},"c0":{"i":["a"],"e":["a"],"c":["a"]},"c_":{"i":["a"],"e":["a"],"c":["a"]},"bL":{"i":["a"],"e":["a"],"c":["a"]},"bY":{"i":["a"],"e":["a"],"c":["a"]},"bM":{"i":["a"],"e":["a"],"c":["a"]},"bZ":{"i":["a"],"e":["a"],"c":["a"]},"bJ":{"i":["h"],"e":["h"],"c":["h"]},"bK":{"i":["h"],"e":["h"],"c":["h"]}}')) +A.eY(v.typeUniverse,JSON.parse('{"e":1,"ai":1,"a2":1,"W":1,"aB":1,"bp":1,"a6":1,"aM":1,"br":1,"a7":1,"aK":1,"aC":1,"bw":1}')) var u={g:"Cannot fire new event. Controller is already firing an event",c:"Error handler must accept one Object or one Object and a StackTrace as arguments, and return a value of the returned future's type"} -var t=(function rtii(){var s=A.e7 -return{J:s("cZ"),Y:s("d_"),V:s("e<@>"),Q:s("l"),B:s("bQ"),q:s("bR"),Z:s("hm"),O:s("bT"),k:s("bU"),U:s("bV"),x:s("c"),s:s("v"),b:s("v<@>"),T:s("an"),m:s("n"),g:s("O"),p:s("w<@>"),j:s("i<@>"),f:s("au<@,@>"),P:s("q"),K:s("d"),L:s("hn"),l:s("A"),N:s("t"),R:s("f"),c:s("H"),D:s("c8"),w:s("c9"),e:s("ca"),E:s("cb"),o:s("aD"),I:s("a6<@>"),d:s("p<@>"),a:s("p"),F:s("aK"),y:s("fZ"),i:s("h"),z:s("@"),v:s("@(d)"),C:s("@(d,A)"),S:s("a"),A:s("0&*"),_:s("d*"),W:s("a2?"),X:s("d?"),H:s("hd"),n:s("~"),u:s("~(d)"),h:s("~(d,A)")}})();(function constants(){B.o=J.b8.prototype -B.p=J.v.prototype -B.q=J.am.prototype -B.r=J.O.prototype -B.t=J.aq.prototype -B.e=J.bp.prototype -B.b=J.aD.prototype +var t=(function rtii(){var s=A.dW +return{J:s("cN"),Y:s("cO"),V:s("e<@>"),Q:s("l"),B:s("bJ"),q:s("bK"),Z:s("h7"),O:s("bL"),k:s("bM"),U:s("bN"),x:s("c"),s:s("u"),b:s("u<@>"),T:s("ak"),m:s("n"),g:s("L"),p:s("v<@>"),j:s("i<@>"),P:s("q"),K:s("d"),L:s("h9"),l:s("y"),N:s("V"),R:s("f"),c:s("F"),D:s("bY"),w:s("bZ"),e:s("c_"),E:s("c0"),o:s("ay"),I:s("a4<@>"),d:s("p<@>"),a:s("p"),F:s("aF"),y:s("fK"),i:s("h"),z:s("@"),v:s("@(d)"),C:s("@(d,y)"),S:s("a"),A:s("0&*"),_:s("d*"),W:s("a_?"),X:s("d?"),H:s("h_"),n:s("~"),u:s("~(d)"),f:s("~(d,y)")}})();(function constants(){B.n=J.b2.prototype +B.o=J.u.prototype +B.p=J.aj.prototype +B.q=J.L.prototype +B.r=J.an.prototype +B.e=J.bi.prototype +B.b=J.ay.prototype B.c=function getTagFallback(o) { var s = Object.prototype.toString.call(o); return s.substring(8, s.length - 1); @@ -2902,52 +2797,51 @@ B.i=function(hooks) { } B.d=function(hooks) { return hooks; } -B.m=new A.bX() -B.a=new A.cx() -B.n=new A.bG() -B.u=new A.bY(null) -B.v=A.E("cZ") -B.w=A.E("d_") -B.x=A.E("bQ") -B.y=A.E("bR") -B.z=A.E("bT") -B.A=A.E("bU") -B.B=A.E("bV") -B.C=A.E("c8") -B.D=A.E("c9") -B.E=A.E("ca") -B.F=A.E("cb")})();(function staticFields(){$.cv=null -$.x=A.aZ([],A.e7("v")) -$.dv=null -$.dq=null -$.dp=null -$.e9=null -$.e3=null -$.ee=null -$.cP=null -$.cT=null -$.dc=null -$.ac=null -$.aX=null -$.aY=null -$.d7=!1 +B.a=new A.cm() +B.m=new A.bx() +B.t=A.z("cN") +B.u=A.z("cO") +B.v=A.z("bJ") +B.w=A.z("bK") +B.x=A.z("bL") +B.y=A.z("bM") +B.z=A.z("bN") +B.A=A.z("n") +B.B=A.z("bY") +B.C=A.z("bZ") +B.D=A.z("c_") +B.E=A.z("c0")})();(function staticFields(){$.ck=null +$.w=A.bD([],A.dW("u")) +$.dj=null +$.df=null +$.de=null +$.dY=null +$.dT=null +$.e1=null +$.cD=null +$.cH=null +$.d1=null +$.ab=null +$.aS=null +$.aT=null +$.cW=!1 $.k=B.a})();(function lazyInitializers(){var s=hunkHelpers.lazyFinal -s($,"hl","dj",()=>A.h2("_$dart_dartClosure")) -s($,"hp","eh",()=>A.I(A.c7({ +s($,"h6","d8",()=>A.fO("_$dart_dartClosure")) +s($,"hb","e4",()=>A.G(A.bX({ toString:function(){return"$receiver$"}}))) -s($,"hq","ei",()=>A.I(A.c7({$method$:null, +s($,"hc","e5",()=>A.G(A.bX({$method$:null, toString:function(){return"$receiver$"}}))) -s($,"hr","ej",()=>A.I(A.c7(null))) -s($,"hs","ek",()=>A.I(function(){var $argumentsExpr$="$arguments$" +s($,"hd","e6",()=>A.G(A.bX(null))) +s($,"he","e7",()=>A.G(function(){var $argumentsExpr$="$arguments$" try{null.$method$($argumentsExpr$)}catch(r){return r.message}}())) -s($,"hv","en",()=>A.I(A.c7(void 0))) -s($,"hw","eo",()=>A.I(function(){var $argumentsExpr$="$arguments$" +s($,"hh","ea",()=>A.G(A.bX(void 0))) +s($,"hi","eb",()=>A.G(function(){var $argumentsExpr$="$arguments$" try{(void 0).$method$($argumentsExpr$)}catch(r){return r.message}}())) -s($,"hu","em",()=>A.I(A.dB(null))) -s($,"ht","el",()=>A.I(function(){try{null.$method$}catch(r){return r.message}}())) -s($,"hy","eq",()=>A.I(A.dB(void 0))) -s($,"hx","ep",()=>A.I(function(){try{(void 0).$method$}catch(r){return r.message}}())) -s($,"hz","dk",()=>A.eR())})();(function nativeSupport(){!function(){var s=function(a){var m={} +s($,"hg","e9",()=>A.G(A.dq(null))) +s($,"hf","e8",()=>A.G(function(){try{null.$method$}catch(r){return r.message}}())) +s($,"hk","ed",()=>A.G(A.dq(void 0))) +s($,"hj","ec",()=>A.G(function(){try{(void 0).$method$}catch(r){return r.message}}())) +s($,"hl","d9",()=>A.eD())})();(function nativeSupport(){!function(){var s=function(a){var m={} m[a]=1 return Object.keys(hunkHelpers.convertToFastObject(m))[0]} v.getIsolateTag=function(a){return s("___dart_"+a+v.isolateTag)} @@ -2958,15 +2852,15 @@ for(var o=0;;o++){var n=s(p+"_"+o+"_") if(!(n in q)){q[n]=1 v.isolateTag=n break}}v.dispatchPropertyName=v.getIsolateTag("dispatch_record")}() -hunkHelpers.setOrUpdateInterceptorsByTag({ArrayBuffer:A.bf,ArrayBufferView:A.ax,DataView:A.bg,Float32Array:A.bh,Float64Array:A.bi,Int16Array:A.bj,Int32Array:A.bk,Int8Array:A.bl,Uint16Array:A.bm,Uint32Array:A.bn,Uint8ClampedArray:A.ay,CanvasPixelArray:A.ay,Uint8Array:A.bo}) +hunkHelpers.setOrUpdateInterceptorsByTag({ArrayBuffer:A.b8,ArrayBufferView:A.as,DataView:A.b9,Float32Array:A.ba,Float64Array:A.bb,Int16Array:A.bc,Int32Array:A.bd,Int8Array:A.be,Uint16Array:A.bf,Uint32Array:A.bg,Uint8ClampedArray:A.at,CanvasPixelArray:A.at,Uint8Array:A.bh}) hunkHelpers.setOrUpdateLeafTags({ArrayBuffer:true,ArrayBufferView:false,DataView:true,Float32Array:true,Float64Array:true,Int16Array:true,Int32Array:true,Int8Array:true,Uint16Array:true,Uint32Array:true,Uint8ClampedArray:true,CanvasPixelArray:true,Uint8Array:false}) -A.a4.$nativeSuperclassTag="ArrayBufferView" -A.aL.$nativeSuperclassTag="ArrayBufferView" -A.aM.$nativeSuperclassTag="ArrayBufferView" -A.av.$nativeSuperclassTag="ArrayBufferView" -A.aN.$nativeSuperclassTag="ArrayBufferView" -A.aO.$nativeSuperclassTag="ArrayBufferView" -A.aw.$nativeSuperclassTag="ArrayBufferView"})() +A.a2.$nativeSuperclassTag="ArrayBufferView" +A.aG.$nativeSuperclassTag="ArrayBufferView" +A.aH.$nativeSuperclassTag="ArrayBufferView" +A.aq.$nativeSuperclassTag="ArrayBufferView" +A.aI.$nativeSuperclassTag="ArrayBufferView" +A.aJ.$nativeSuperclassTag="ArrayBufferView" +A.ar.$nativeSuperclassTag="ArrayBufferView"})() Function.prototype.$1=function(a){return this(a)} Function.prototype.$0=function(){return this()} Function.prototype.$2=function(a,b){return this(a,b)} @@ -2978,6 +2872,6 @@ convertToFastObject($);(function(a){if(typeof document==="undefined"){a(null) return}if(typeof document.currentScript!="undefined"){a(document.currentScript) return}var s=document.scripts function onLoad(b){for(var q=0;q