Compare commits
10
Commits
366d74cd82
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bbb4edfec6 | ||
|
|
832747fce6 | ||
|
|
141999d61c | ||
|
|
d6bdc01281 | ||
|
|
44fa19b89f | ||
|
|
9a4c5cd82a | ||
|
|
24face5b8f | ||
|
|
272e0a347e | ||
|
|
ca49bc7c0b | ||
|
|
84724ef10f |
Vendored
+19
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Flutter Web (Chrome, Port 5000)",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"deviceId": "chrome",
|
||||
"toolArgs": [
|
||||
"--web-port",
|
||||
"5000",
|
||||
"--web-browser-flag",
|
||||
"--disable-web-security",
|
||||
"--web-browser-flag",
|
||||
"--user-data-dir=C:/tmp/chrome_dev_test"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
class AppVersion {
|
||||
const AppVersion._();
|
||||
|
||||
static const String version = String.fromEnvironment(
|
||||
'APP_VERSION',
|
||||
defaultValue: '1.1.0',
|
||||
);
|
||||
|
||||
static const String buildNumber = String.fromEnvironment(
|
||||
'APP_BUILD_NUMBER',
|
||||
defaultValue: '2',
|
||||
);
|
||||
|
||||
static const String display = 'Version $version (Build $buildNumber)';
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
class EnvDirectus {
|
||||
static const String directusPublicEndpoint = 'https://directus.joshihomeserver.ipv64.net';
|
||||
static const String directusApiTokenBearer = '6mqGYbOCQAg7UAhIubb87wXcJVHTAsv9';
|
||||
static const String directusTankUsersRest = 'TankUsers';
|
||||
static const String directusTankStopRest = 'TankStopGuru01';
|
||||
}
|
||||
@@ -1,21 +1,20 @@
|
||||
import 'package:get/get.dart';
|
||||
import '../models/tank_model.dart';
|
||||
import '../models/tank_guru_directus_model.dart';
|
||||
import '../pages/edit_view.dart';
|
||||
import '../services/appwrite_service.dart';
|
||||
import '../services/directus_service.dart';
|
||||
|
||||
class DetailController extends GetxController {
|
||||
late TankModel tank;
|
||||
final appwriteService = AppwriteService();
|
||||
late TankGuruDirectusModel tank;
|
||||
final directusService = DirectusService();
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
tank = Get.arguments as TankModel;
|
||||
tank = Get.arguments as TankGuruDirectusModel;
|
||||
super.onInit();
|
||||
}
|
||||
|
||||
void deleteEntry() {
|
||||
appwriteService
|
||||
.deleteDocumentFromCollection(tank.szDocumentId)
|
||||
void deleteEntry() async {
|
||||
await directusService.deleteDocumentFromTable(tank.iD!)
|
||||
.then((_) {
|
||||
Get.back(
|
||||
result: 'deleted',
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import '../helper/helper.dart' as helper;
|
||||
import '../models/locationiq_model.dart';
|
||||
import '../models/tank_model.dart';
|
||||
import '../services/appwrite_service.dart';
|
||||
//import '../models/tank_model.dart';
|
||||
//import '../services/appwrite_service.dart';
|
||||
import '../models/tank_guru_directus_model.dart';
|
||||
import '../services/directus_service.dart';
|
||||
import '../services/geolocation_service.dart';
|
||||
import '../services/location_iq_service.dart';
|
||||
import '../pages/home_view.dart';
|
||||
|
||||
class EditController extends GetxController {
|
||||
final AppwriteService appwriteService = AppwriteService();
|
||||
final DirectusService directusService = DirectusService();
|
||||
|
||||
// Form controllers
|
||||
final dateController = TextEditingController();
|
||||
@@ -23,8 +26,9 @@ class EditController extends GetxController {
|
||||
final calculatedTotal = '0.00'.obs;
|
||||
final isLoadingLocation = false.obs;
|
||||
|
||||
TankModel? editingTankModel;
|
||||
TankGuruDirectusModel? editingTankModel;
|
||||
LocationIQ? currentLocationIQ;
|
||||
String currentUserIdentId = helper.kCurrentUserIdentId; // Use the current user identId from helper
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
@@ -32,7 +36,7 @@ class EditController extends GetxController {
|
||||
|
||||
// Check if we're editing or creating new
|
||||
if (Get.arguments != null) {
|
||||
editingTankModel = Get.arguments as TankModel;
|
||||
editingTankModel = Get.arguments as TankGuruDirectusModel;
|
||||
isNewEntry.value = false;
|
||||
_loadExistingData();
|
||||
} else {
|
||||
@@ -47,12 +51,12 @@ class EditController extends GetxController {
|
||||
}
|
||||
|
||||
void _loadExistingData() {
|
||||
dateController.text = editingTankModel!.szDate;
|
||||
odometerController.text = editingTankModel!.szOdometer;
|
||||
litersController.text = editingTankModel!.szLiters;
|
||||
pricePerLiterController.text = editingTankModel!.szPricePerLiter;
|
||||
locationController.text = editingTankModel!.szLocation;
|
||||
calculatedTotal.value = editingTankModel!.szPriceTotal;
|
||||
dateController.text = editingTankModel!.tankDate!;
|
||||
odometerController.text = editingTankModel!.odometer!;
|
||||
litersController.text = editingTankModel!.liter!;
|
||||
pricePerLiterController.text = editingTankModel!.pricePerLiter!;
|
||||
locationController.text = editingTankModel!.standort!;
|
||||
calculatedTotal.value = editingTankModel!.szPriceTotal!;
|
||||
}
|
||||
|
||||
void _setDefaultDate() {
|
||||
@@ -147,26 +151,26 @@ class EditController extends GetxController {
|
||||
isLoading.value = true;
|
||||
|
||||
try {
|
||||
final userId = await appwriteService.getCurrentUserId();
|
||||
if (userId == null) {
|
||||
final userId = currentUserIdentId;
|
||||
if (userId == '') {
|
||||
throw Exception('Benutzer nicht eingeloggt');
|
||||
}
|
||||
|
||||
final data = {
|
||||
'userId': userId,
|
||||
'date': dateController.text,
|
||||
'odometer': odometerController.text,
|
||||
'liters': litersController.text.replaceAll(',', '.'),
|
||||
'pricePerLiter': pricePerLiterController.text.replaceAll(',', '.'),
|
||||
'location': locationController.text,
|
||||
'UserIdentId': userId,
|
||||
'TankDate': dateController.text,
|
||||
'Odometer': odometerController.text,
|
||||
'Liter': litersController.text.replaceAll(',', '.'),
|
||||
'PricePerLiter': pricePerLiterController.text.replaceAll(',', '.'),
|
||||
'Standort': locationController.text,
|
||||
};
|
||||
|
||||
bool success;
|
||||
if (isNewEntry.value) {
|
||||
success = await appwriteService.createDocumentInCollection(data);
|
||||
success = await directusService.createDocumentInTable(data);
|
||||
} else {
|
||||
success = await appwriteService.updateDocumentInCollection(
|
||||
editingTankModel!.szDocumentId,
|
||||
success = await directusService.updateDocumentInTable(
|
||||
editingTankModel!.iD,
|
||||
data,
|
||||
);
|
||||
}
|
||||
@@ -181,7 +185,7 @@ class EditController extends GetxController {
|
||||
backgroundColor: Colors.green[100],
|
||||
colorText: Colors.green[900],
|
||||
);
|
||||
Get.offAllNamed(HomePage.namedRoute);
|
||||
Get.offAllNamed(HomePage.namedRoute, arguments: {'userIdentId': userId});
|
||||
} else {
|
||||
throw Exception('Speichern fehlgeschlagen');
|
||||
}
|
||||
@@ -216,6 +220,6 @@ class EditController extends GetxController {
|
||||
}
|
||||
|
||||
void gotToList() {
|
||||
Get.offAllNamed(HomePage.namedRoute);
|
||||
Get.offAllNamed(HomePage.namedRoute, arguments: {'userIdentId': currentUserIdentId});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import 'dart:async';
|
||||
import 'package:get/get.dart';
|
||||
import '../models/econtrol_model.dart';
|
||||
import '../services/geolocation_service.dart';
|
||||
@@ -6,7 +7,10 @@ import '../services/econtrol_service.dart';
|
||||
class GasstationsController extends GetxController {
|
||||
final isLoading = false.obs;
|
||||
final isLoadingLocation = false.obs;
|
||||
final errorMessage = ''.obs;
|
||||
final eControlData = <EControlModel>[].obs;
|
||||
double? currentLatitude;
|
||||
double? currentLongitude;
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
@@ -22,21 +26,83 @@ class GasstationsController extends GetxController {
|
||||
|
||||
Future<void> _loadStationInfosList() async {
|
||||
isLoading.value = true;
|
||||
var gelocationService = GeolocationService();
|
||||
var eControlService = EControlService();
|
||||
// check if location is available
|
||||
await gelocationService.getCurrentLocation();
|
||||
if (gelocationService.hasLocation) {
|
||||
var listResult = await eControlService.getEControlData(
|
||||
gelocationService.latitude,
|
||||
gelocationService.longitude,
|
||||
'DIE',
|
||||
errorMessage.value = '';
|
||||
|
||||
try {
|
||||
var geolocationService = GeolocationService();
|
||||
var eControlService = EControlService();
|
||||
|
||||
// Standort-Abfrage mit Timeout versehen (z. B. 8 Sekunden),
|
||||
// falls der Browser/User bei der Rechtefreigabe blockiert oder hängt
|
||||
await geolocationService.getCurrentLocation().timeout(
|
||||
const Duration(seconds: 8),
|
||||
onTimeout: () {
|
||||
throw TimeoutException('Standortabfrage hat zu lange gedauert.');
|
||||
},
|
||||
);
|
||||
eControlData.value = listResult
|
||||
.map((json) => EControlModel.fromJson(json))
|
||||
.toList();
|
||||
|
||||
if (geolocationService.hasLocation) {
|
||||
currentLatitude = geolocationService.latitude;
|
||||
currentLongitude = geolocationService.longitude;
|
||||
// for test only später wieder deaktivieren statische koordinaten
|
||||
// currentLatitude = 47.938783246743355;
|
||||
// currentLongitude = 13.762770926423814;
|
||||
// ende Test only
|
||||
|
||||
final fuelData = await eControlService.getBothFuelData(
|
||||
currentLatitude!,
|
||||
currentLongitude!,
|
||||
);
|
||||
|
||||
List<EControlModel> dieselStations = (fuelData['DIE'] as List)
|
||||
.map((json) => EControlModel.fromJson(json))
|
||||
.toList();
|
||||
|
||||
List<EControlModel> supStations = (fuelData['SUP'] as List)
|
||||
.map((json) => EControlModel.fromJson(json))
|
||||
.toList();
|
||||
|
||||
Map<int, EControlModel> combinedMap = {};
|
||||
|
||||
for (var station in dieselStations) {
|
||||
if (station.id != null) {
|
||||
combinedMap[station.id!] = station;
|
||||
}
|
||||
}
|
||||
|
||||
for (var supStation in supStations) {
|
||||
if (supStation.id != null) {
|
||||
if (combinedMap.containsKey(supStation.id)) {
|
||||
final existingPrices = combinedMap[supStation.id!]!.prices ?? [];
|
||||
final supPrices = supStation.prices ?? [];
|
||||
combinedMap[supStation.id!]!.prices = [
|
||||
...existingPrices,
|
||||
...supPrices,
|
||||
];
|
||||
} else {
|
||||
combinedMap[supStation.id!] = supStation;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
eControlData.value = combinedMap.values.toList();
|
||||
} else {
|
||||
errorMessage.value =
|
||||
'Standort konnte nicht ermittelt werden. Bitte prüfen Sie Ihre Browser-Freigabe.';
|
||||
}
|
||||
} on TimeoutException {
|
||||
errorMessage.value =
|
||||
'Standortabfrage zeitlich überschritten. Bitte erlauben Sie den Standortzugriff im Browser.';
|
||||
} catch (e) {
|
||||
errorMessage.value = 'Fehler beim Laden der Daten: ${e.toString()}';
|
||||
} finally {
|
||||
// Stellt sicher, dass das Lade-Icon auf jeden Fall verschwindet
|
||||
isLoading.value = false;
|
||||
update();
|
||||
}
|
||||
isLoading.value = false;
|
||||
update();
|
||||
}
|
||||
|
||||
void retry() {
|
||||
_loadStationInfosList();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import 'package:get/get.dart';
|
||||
import '../models/tank_model.dart';
|
||||
//import '../models/tank_model.dart';
|
||||
import '../models/tank_guru_directus_model.dart';
|
||||
|
||||
class GraphController extends GetxController {
|
||||
final listTankModel = <TankModel>[].obs;
|
||||
final listTankModel = <TankGuruDirectusModel>[].obs;
|
||||
final sumYearKm = 0.0.obs;
|
||||
final sumYearLiters = 0.0.obs;
|
||||
final sumYearPrice = 0.0.obs;
|
||||
@@ -12,7 +13,7 @@ class GraphController extends GetxController {
|
||||
@override
|
||||
void onInit() {
|
||||
if (Get.arguments != null) {
|
||||
var args = Get.arguments as List<TankModel>;
|
||||
var args = Get.arguments as List<TankGuruDirectusModel>;
|
||||
listTankModel.addAll(args);
|
||||
_calcSumms();
|
||||
}
|
||||
@@ -36,23 +37,23 @@ class GraphController extends GetxController {
|
||||
|
||||
// Sort by date to calculate km correctly
|
||||
listTankModel.sort((a, b) {
|
||||
var dateA = DateTime.tryParse(a.szDate)!;
|
||||
var dateB = DateTime.tryParse(b.szDate)!;
|
||||
var dateA = DateTime.tryParse(a.tankDate!)!;
|
||||
var dateB = DateTime.tryParse(b.tankDate!)!;
|
||||
return dateA.compareTo(dateB);
|
||||
});
|
||||
|
||||
var firstOdometer = double.tryParse(listTankModel.first.szOdometer) ?? 0.0;
|
||||
var lastOdometer = double.tryParse(listTankModel.last.szOdometer) ?? 0.0;
|
||||
var firstOdometer = double.tryParse(listTankModel.first.odometer!) ?? 0.0;
|
||||
var lastOdometer = double.tryParse(listTankModel.last.odometer!) ?? 0.0;
|
||||
|
||||
sumYearKm.value = lastOdometer - firstOdometer;
|
||||
szTachostand.value = listTankModel.last.szOdometer;
|
||||
szTachostand.value = listTankModel.last.odometer!;
|
||||
|
||||
double totalLiters = 0.0;
|
||||
double totalPrice = 0.0;
|
||||
|
||||
for (var tank in listTankModel) {
|
||||
totalLiters += double.tryParse(tank.szLiters) ?? 0.0;
|
||||
totalPrice += double.tryParse(tank.szPriceTotal) ?? 0.0;
|
||||
totalLiters += double.tryParse(tank.liter!) ?? 0.0;
|
||||
totalPrice += double.tryParse(tank.szPriceTotal!) ?? 0.0;
|
||||
}
|
||||
|
||||
sumYearLiters.value = totalLiters;
|
||||
|
||||
@@ -1,21 +1,24 @@
|
||||
import 'package:flutter_tank_web_app/pages/gasstations_view.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
import '../models/tank_model.dart';
|
||||
import '../models/tank_guru_directus_model.dart';
|
||||
import '../pages/detail_view.dart';
|
||||
import '../pages/edit_view.dart';
|
||||
import '../services/appwrite_service.dart';
|
||||
import '../pages/graph_view.dart';
|
||||
import '../pages/gasstations_view.dart';
|
||||
import '../services/directus_service.dart';
|
||||
|
||||
class HomeController extends GetxController {
|
||||
final isLoading = false.obs;
|
||||
final listTankModel = <TankModel>[].obs;
|
||||
final appwriteService = AppwriteService();
|
||||
//final listTankModel = <TankModel>[].obs;
|
||||
final listTankModel = <TankGuruDirectusModel>[].obs;
|
||||
//final appwriteService = AppwriteService();
|
||||
final directusService = DirectusService();
|
||||
final currentYear = DateTime.now().year.obs;
|
||||
final argumentMap = Get.arguments as Map<String, dynamic>?;
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
_loadListDocument();
|
||||
_loadListDirectus();
|
||||
super.onInit();
|
||||
}
|
||||
|
||||
@@ -27,45 +30,46 @@ class HomeController extends GetxController {
|
||||
|
||||
void changeYear(int year) {
|
||||
currentYear.value = year;
|
||||
_loadListDocument();
|
||||
_loadListDirectus();
|
||||
update();
|
||||
}
|
||||
|
||||
Future<void> _loadListDocument() async {
|
||||
Future<void> _loadListDirectus() async {
|
||||
isLoading.value = true;
|
||||
if (listTankModel.isNotEmpty) {
|
||||
listTankModel.clear();
|
||||
}
|
||||
var userId = await appwriteService.getCurrentUserId();
|
||||
var userId = argumentMap?['userIdentId'] as String?;
|
||||
if (userId == null) {
|
||||
//User nicht eingeloggt, evtl. zur Login-Seite navigieren
|
||||
update();
|
||||
return;
|
||||
}
|
||||
var resultList = await appwriteService.getDocumentsFromCollection(userId);
|
||||
var resultList = await directusService.getTankGuruDataFromTable(userId);
|
||||
if (resultList.isEmpty) {
|
||||
//Dokumente erfolgreich geladen, hier können Sie die Liste verarbeiten
|
||||
print('Dokumente wurden nicht geladen: ${resultList.length}');
|
||||
} else {
|
||||
for (var doc in resultList) {
|
||||
var tankModel = TankModel.fromMap(doc.data);
|
||||
listTankModel.add(tankModel);
|
||||
}
|
||||
listTankModel(
|
||||
resultList
|
||||
.map((tankStopJson) => TankGuruDirectusModel.fromJson(tankStopJson))
|
||||
.toList(),
|
||||
);
|
||||
if (listTankModel.isNotEmpty) {
|
||||
var sortList = listTankModel.where((tank) {
|
||||
var year = (DateTime.tryParse(tank.szDate)!).year;
|
||||
var year = (DateTime.tryParse(tank.tankDate!)!).year;
|
||||
return year == currentYear.value;
|
||||
}).toList();
|
||||
listTankModel.clear();
|
||||
listTankModel.addAll(sortList);
|
||||
listTankModel.sort((a, b) {
|
||||
var dateA = DateTime.tryParse(a.szDate)!;
|
||||
var dateB = DateTime.tryParse(b.szDate)!;
|
||||
return dateB.compareTo(dateA);
|
||||
});
|
||||
// listTankModel.sort((a, b) {
|
||||
// var dateA = DateTime.tryParse(a.tankDate!)!;
|
||||
// var dateB = DateTime.tryParse(b.tankDate!)!;
|
||||
// return dateB.compareTo(dateA);
|
||||
// });
|
||||
for (var tank in listTankModel) {
|
||||
print(
|
||||
'SortTankModel: ${tank.szDate} - ${tank.szLiters}L - ${tank.szPricePerLiter}€/L - Total: ${tank.szPriceTotal}€',
|
||||
'SortTankModel: ${tank.tankDate!} - ${tank.liter}L - ${tank.pricePerLiter}€/L - Total: ${tank.szPriceTotal}€',
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -75,27 +79,18 @@ class HomeController extends GetxController {
|
||||
}
|
||||
|
||||
Future<void> logout() async {
|
||||
var logoutSuccess = await appwriteService.logout();
|
||||
if (logoutSuccess) {
|
||||
Get.snackbar(
|
||||
'Logout erfolgreich',
|
||||
'Sie wurden abgemeldet.',
|
||||
snackPosition: SnackPosition.BOTTOM,
|
||||
);
|
||||
Get.offAllNamed('/login-page');
|
||||
} else {
|
||||
Get.snackbar(
|
||||
'Logout fehlgeschlagen',
|
||||
'Bitte versuchen Sie es erneut.',
|
||||
snackPosition: SnackPosition.BOTTOM,
|
||||
);
|
||||
}
|
||||
Get.snackbar(
|
||||
'Logout erfolgreich',
|
||||
'Sie wurden abgemeldet.',
|
||||
snackPosition: SnackPosition.BOTTOM,
|
||||
);
|
||||
Get.offAllNamed('/login-page');
|
||||
}
|
||||
|
||||
Future<void> viewTankDetails(TankModel tank) async {
|
||||
Future<void> viewTankDetails(TankGuruDirectusModel tank) async {
|
||||
var result = await Get.toNamed(DetailPage.namedRoute, arguments: tank);
|
||||
if (result == 'deleted') {
|
||||
_loadListDocument();
|
||||
_loadListDirectus();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import '../helper/helper.dart' as helper;
|
||||
import '../models/tank_user_model.dart';
|
||||
import '../pages/home_view.dart';
|
||||
import '../pages/signin_view.dart';
|
||||
import '../services/appwrite_service.dart';
|
||||
import '../services/directus_service.dart';
|
||||
import '../helper/password_helper.dart';
|
||||
|
||||
class LoginController extends GetxController {
|
||||
final emailController = TextEditingController();
|
||||
final passwordController = TextEditingController();
|
||||
final appwriteService = AppwriteService();
|
||||
final directusService = DirectusService();
|
||||
|
||||
@override
|
||||
void onReady() {}
|
||||
@@ -18,29 +21,57 @@ class LoginController extends GetxController {
|
||||
passwordController.dispose();
|
||||
}
|
||||
|
||||
void login() async {
|
||||
void newLoginDirectus() async {
|
||||
var email = emailController.text;
|
||||
var password = passwordController.text;
|
||||
// Hier können Sie die Login-Logik implementieren
|
||||
print('Login mit E-Mail: $email, Passwort: $password');
|
||||
var loginSuccess = await appwriteService.login(email, password);
|
||||
if (loginSuccess) {
|
||||
var result = await directusService.getTankUserList();
|
||||
if(result.isEmpty) {
|
||||
Get.snackbar(
|
||||
'Login fehlgeschlagen',
|
||||
'Fehler beim Abrufen der Benutzerdaten. Bitte versuchen Sie es später erneut.',
|
||||
snackPosition: SnackPosition.BOTTOM,
|
||||
);
|
||||
return;
|
||||
}
|
||||
var tankUserList = result.map((userJson) => TankUser.fromJson(userJson)).toList();
|
||||
var identId = tankUserList.firstWhereOrNull((user) => user.email == email)?.userIdentId ?? '';
|
||||
if(identId.isEmpty) {
|
||||
Get.snackbar(
|
||||
'Login fehlgeschlagen',
|
||||
'Benutzer mit dieser E-Mail-Adresse wurde nicht gefunden.',
|
||||
snackPosition: SnackPosition.BOTTOM,
|
||||
);
|
||||
return;
|
||||
}
|
||||
var storedHash = tankUserList.firstWhereOrNull((user) => user.email == email)?.passwordHash ?? '';
|
||||
if(storedHash.isEmpty) {
|
||||
Get.snackbar(
|
||||
'Login fehlgeschlagen',
|
||||
'Kein gespeicherter Passwort-Hash für diesen Benutzer gefunden.',
|
||||
snackPosition: SnackPosition.BOTTOM,
|
||||
);
|
||||
return;
|
||||
}
|
||||
var isPassCorrect = await PasswordHelper.verifyPassword(password, storedHash);
|
||||
if(isPassCorrect && identId.isNotEmpty) {
|
||||
Get.snackbar(
|
||||
'Login erfolgreich',
|
||||
'Willkommen zurück!',
|
||||
snackPosition: SnackPosition.BOTTOM,
|
||||
);
|
||||
Get.offAndToNamed(HomePage.namedRoute);
|
||||
print('Login erfolgreich für Benutzer mit IdentId: $identId');
|
||||
helper.kCurrentUserIdentId = identId; // Set the current user identId
|
||||
Get.offAndToNamed(HomePage.namedRoute, arguments: {'userIdentId': identId});
|
||||
} else {
|
||||
Get.snackbar(
|
||||
'Login fehlgeschlagen',
|
||||
'Bitte überprüfen Sie Ihre E-Mail und Ihr Passwort und versuchen Sie es erneut.',
|
||||
'Bitte überprüfen Sie Ihre E-Mail und Ihr Passwort und versuchen Sie es erneut\noder registrieren Sie sich, wenn Sie noch kein Konto haben.',
|
||||
snackPosition: SnackPosition.BOTTOM,
|
||||
);
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
void goToSignInPage() {
|
||||
Get.offAndToNamed(SigninPage.namedRoute);
|
||||
Get.offAndToNamed(SigninPage.namedRoute, arguments: {'userIdentId': ''});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +1,19 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import '../pages/home_view.dart';
|
||||
import '../pages/login_view.dart';
|
||||
import '../services/appwrite_service.dart';
|
||||
import '../services/directus_service.dart';
|
||||
|
||||
class SigninController extends GetxController {
|
||||
final userNameController = TextEditingController();
|
||||
final emailController = TextEditingController();
|
||||
final passwordController = TextEditingController();
|
||||
final appwriteService = AppwriteService();
|
||||
final cityController = TextEditingController();
|
||||
final countryController = TextEditingController();
|
||||
final directusService = DirectusService();
|
||||
late String userIdentId = Get.arguments['userIdentId'] ?? '';
|
||||
|
||||
@override
|
||||
void onReady() {}
|
||||
@@ -18,6 +23,8 @@ class SigninController extends GetxController {
|
||||
userNameController.dispose();
|
||||
emailController.dispose();
|
||||
passwordController.dispose();
|
||||
cityController.dispose();
|
||||
countryController.dispose();
|
||||
}
|
||||
|
||||
void register() async {
|
||||
@@ -27,16 +34,15 @@ class SigninController extends GetxController {
|
||||
var userName = userNameController.text;
|
||||
var email = emailController.text;
|
||||
var password = passwordController.text;
|
||||
var city = cityController.text; // Hier können Sie die Stadt aus den Eingaben abrufen, falls erforderlich
|
||||
var country = countryController.text; // Hier können Sie das Land aus den Eingaben abrufen, falls erforderlich
|
||||
// Testausgabe
|
||||
print(
|
||||
'Registrieren mit Benutzername: $userName, E-Mail: $email, Passwort: $password',
|
||||
);
|
||||
//appwrite Registrierung und login Logik hier einfügen
|
||||
var registrationSuccess = await appwriteService.register(
|
||||
userName,
|
||||
email,
|
||||
password,
|
||||
'Registrieren mit Benutzername: $userName, E-Mail: $email, Passwort: $password, Stadt: $city, Land: $country',
|
||||
);
|
||||
//directus Registrierung und login Logik hier einfügen
|
||||
bool registrationSuccess = await directusService.register(userName, email, password, city, country);
|
||||
|
||||
//Nach erfolgreicher Registrierung Meldung und zur Startseite navigieren
|
||||
if (registrationSuccess) {
|
||||
Get.snackbar(
|
||||
@@ -44,7 +50,8 @@ class SigninController extends GetxController {
|
||||
'Willkommen, $userName!',
|
||||
snackPosition: SnackPosition.BOTTOM,
|
||||
);
|
||||
Get.offAndToNamed(HomePage.namedRoute);
|
||||
userIdentId = base64Encode(utf8.encode('$email:$password'));
|
||||
Get.offAndToNamed(HomePage.namedRoute, arguments: {'userIdentId': userIdentId});
|
||||
} else {
|
||||
Get.snackbar(
|
||||
'Registrierung fehlgeschlagen',
|
||||
|
||||
@@ -11,4 +11,6 @@ String getCurrentDate(DateTime date) {
|
||||
|
||||
var kListDropDownYear = <int>[
|
||||
for (var year = DateTime.now().year; year >= 2020; year--) year
|
||||
];
|
||||
];
|
||||
|
||||
var kCurrentUserIdentId = '';
|
||||
@@ -0,0 +1,120 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:cryptography/cryptography.dart';
|
||||
|
||||
class PasswordHelper {
|
||||
static const int _saltLength = 16;
|
||||
static const int _hashLength = 32;
|
||||
|
||||
// 19 MiB, laut aktueller cryptography-Doku ein sinnvoller Startwert.
|
||||
static const int _memory = 19 * 1024;
|
||||
static const int _iterations = 2;
|
||||
static const int _parallelism = 1;
|
||||
|
||||
static final Argon2id _algorithm = Argon2id(
|
||||
memory: _memory,
|
||||
iterations: _iterations,
|
||||
parallelism: _parallelism,
|
||||
hashLength: _hashLength,
|
||||
);
|
||||
|
||||
/// Erstellt einen neuen Passwort-Hash inklusive zufälligem Salt.
|
||||
///
|
||||
/// Rückgabeformat:
|
||||
/// argon2id$memory$iterations$parallelism$saltBase64$hashBase64
|
||||
static Future<String> hashPassword(String password) async {
|
||||
final salt = _generateSalt(_saltLength);
|
||||
|
||||
final secretKey = await _algorithm.deriveKeyFromPassword(
|
||||
password: password,
|
||||
nonce: salt,
|
||||
);
|
||||
|
||||
final hashBytes = await secretKey.extractBytes();
|
||||
|
||||
final saltBase64 = base64UrlEncode(salt);
|
||||
final hashBase64 = base64UrlEncode(hashBytes);
|
||||
|
||||
return 'argon2id'
|
||||
'\$$_memory'
|
||||
'\$$_iterations'
|
||||
'\$$_parallelism'
|
||||
'\$$saltBase64'
|
||||
'\$$hashBase64';
|
||||
}
|
||||
|
||||
/// Prüft ein Klartext-Passwort gegen den gespeicherten Hash.
|
||||
static Future<bool> verifyPassword(
|
||||
String password,
|
||||
String storedHash,
|
||||
) async {
|
||||
try {
|
||||
final parts = storedHash.split('\$');
|
||||
|
||||
if (parts.length != 6) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (parts[0] != 'argon2id') {
|
||||
return false;
|
||||
}
|
||||
|
||||
final memory = int.parse(parts[1]);
|
||||
final iterations = int.parse(parts[2]);
|
||||
final parallelism = int.parse(parts[3]);
|
||||
|
||||
final salt = base64Url.decode(parts[4]);
|
||||
final expectedHash = base64Url.decode(parts[5]);
|
||||
|
||||
final algorithm = Argon2id(
|
||||
memory: memory,
|
||||
iterations: iterations,
|
||||
parallelism: parallelism,
|
||||
hashLength: expectedHash.length,
|
||||
);
|
||||
|
||||
final secretKey = await algorithm.deriveKeyFromPassword(
|
||||
password: password,
|
||||
nonce: salt,
|
||||
);
|
||||
|
||||
final calculatedHash = await secretKey.extractBytes();
|
||||
|
||||
return _constantTimeEquals(
|
||||
calculatedHash,
|
||||
expectedHash,
|
||||
);
|
||||
} catch (_) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// Erzeugt kryptographisch zufälligen Salt.
|
||||
static List<int> _generateSalt(int length) {
|
||||
final random = Random.secure();
|
||||
|
||||
return List<int>.generate(
|
||||
length,
|
||||
(_) => random.nextInt(256),
|
||||
);
|
||||
}
|
||||
|
||||
/// Vergleich ohne vorzeitigen Abbruch.
|
||||
static bool _constantTimeEquals(
|
||||
List<int> a,
|
||||
List<int> b,
|
||||
) {
|
||||
if (a.length != b.length) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var difference = 0;
|
||||
|
||||
for (var i = 0; i < a.length; i++) {
|
||||
difference |= a[i] ^ b[i];
|
||||
}
|
||||
|
||||
return difference == 0;
|
||||
}
|
||||
}
|
||||
@@ -22,9 +22,9 @@ class ChartData {
|
||||
|
||||
for (int i = 0; i < tankList.length; i++) {
|
||||
final tank = tankList[i];
|
||||
final liters = double.tryParse(tank.szLiters) ?? 0.0;
|
||||
final liters = double.tryParse(tank.liter) ?? 0.0;
|
||||
final priceTotal = double.tryParse(tank.szPriceTotal) ?? 0.0;
|
||||
final pricePerLiter = double.tryParse(tank.szPricePerLiter) ?? 0.0;
|
||||
final pricePerLiter = double.tryParse(tank.pricePerLiter) ?? 0.0;
|
||||
|
||||
points.add(
|
||||
ChartDataPoint(
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
|
||||
|
||||
class TankGuruDirectusModel {
|
||||
int? iD;
|
||||
String? userIdentId;
|
||||
String? tankDate;
|
||||
String? odometer;
|
||||
String? liter;
|
||||
String? pricePerLiter;
|
||||
String? standort;
|
||||
String? createdAt;
|
||||
String? szPriceTotal;
|
||||
|
||||
TankGuruDirectusModel(
|
||||
{this.iD,
|
||||
this.userIdentId,
|
||||
this.tankDate,
|
||||
this.odometer,
|
||||
this.liter,
|
||||
this.pricePerLiter,
|
||||
this.standort,
|
||||
this.createdAt,
|
||||
this.szPriceTotal});
|
||||
|
||||
TankGuruDirectusModel.fromJson(Map<String, dynamic> json) {
|
||||
iD = json['ID'];
|
||||
userIdentId = json['UserIdentId'];
|
||||
tankDate = json['TankDate'];
|
||||
odometer = json['Odometer'];
|
||||
liter = json['Liter'];
|
||||
pricePerLiter = json['PricePerLiter'];
|
||||
standort = json['Standort'];
|
||||
createdAt = json['CreatedAt'];
|
||||
// Berechnung des Gesamtpreises
|
||||
if (liter != null && pricePerLiter != null) {
|
||||
double literValue = double.tryParse(liter!) ?? 0.0;
|
||||
double pricePerLiterValue = double.tryParse(pricePerLiter!) ?? 0.0;
|
||||
szPriceTotal = (literValue * pricePerLiterValue).toStringAsFixed(2);
|
||||
} else {
|
||||
szPriceTotal = '0.00';
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = <String, dynamic>{};
|
||||
data['ID'] = iD;
|
||||
data['UserIdentId'] = userIdentId;
|
||||
data['TankDate'] = tankDate;
|
||||
data['Odometer'] = odometer;
|
||||
data['Liter'] = liter;
|
||||
data['PricePerLiter'] = pricePerLiter;
|
||||
data['Standort'] = standort;
|
||||
data['CreatedAt'] = createdAt;
|
||||
data['SzPriceTotal'] = szPriceTotal;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
class TankUser {
|
||||
int? iD;
|
||||
String? userIdentId;
|
||||
String? userName;
|
||||
String? city;
|
||||
String? country;
|
||||
String? email;
|
||||
String? passwordHash;
|
||||
String? createdAt;
|
||||
|
||||
TankUser(
|
||||
{this.iD,
|
||||
this.userIdentId,
|
||||
this.userName,
|
||||
this.city,
|
||||
this.country,
|
||||
this.email,
|
||||
this.passwordHash,
|
||||
this.createdAt});
|
||||
|
||||
TankUser.fromJson(Map<String, dynamic> json) {
|
||||
iD = json['ID'];
|
||||
userIdentId = json['UserIdentId'];
|
||||
userName = json['UserName'];
|
||||
city = json['City'];
|
||||
country = json['Country'];
|
||||
email = json['Email'];
|
||||
passwordHash = json['PasswordHash'];
|
||||
createdAt = json['CreatedAt'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = <String, dynamic>{};
|
||||
data['ID'] = iD;
|
||||
data['UserIdentId'] = userIdentId;
|
||||
data['UserName'] = userName;
|
||||
data['City'] = city;
|
||||
data['Country'] = country;
|
||||
data['Email'] = email;
|
||||
data['PasswordHash'] = passwordHash;
|
||||
data['CreatedAt'] = createdAt;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@@ -54,8 +54,8 @@ class DetailPage extends GetView<DetailController> {
|
||||
DetailStatWidget(
|
||||
icon: Icons.location_on,
|
||||
label: 'Standort',
|
||||
value: detailCtrl.tank.szLocation.isNotEmpty
|
||||
? detailCtrl.tank.szLocation
|
||||
value: detailCtrl.tank.standort!.isNotEmpty
|
||||
? detailCtrl.tank.standort!
|
||||
: 'Nicht angegeben',
|
||||
iconColor: Colors.red,
|
||||
),
|
||||
@@ -63,7 +63,9 @@ class DetailPage extends GetView<DetailController> {
|
||||
DetailStatWidget(
|
||||
icon: Icons.calendar_today,
|
||||
label: 'Datum',
|
||||
value: detailCtrl.tank.szDate,
|
||||
value: detailCtrl.tank.tankDate!.isNotEmpty
|
||||
? detailCtrl.tank.tankDate!
|
||||
: 'Nicht angegeben',
|
||||
iconColor: Colors.blueGrey,
|
||||
),
|
||||
],
|
||||
@@ -78,7 +80,7 @@ class DetailPage extends GetView<DetailController> {
|
||||
DetailStatWidget(
|
||||
icon: Icons.local_gas_station,
|
||||
label: 'Liter getankt',
|
||||
value: '${detailCtrl.tank.szLiters} L',
|
||||
value: '${detailCtrl.tank.liter!} L',
|
||||
iconColor: Colors.orange,
|
||||
valueSize: 24,
|
||||
valueWeight: FontWeight.bold,
|
||||
@@ -90,7 +92,7 @@ class DetailPage extends GetView<DetailController> {
|
||||
child: DetailStatWidget(
|
||||
icon: Icons.euro,
|
||||
label: 'Preis pro Liter',
|
||||
value: '${detailCtrl.tank.szPricePerLiter}€',
|
||||
value: '${detailCtrl.tank.pricePerLiter!}€',
|
||||
iconColor: Colors.green,
|
||||
),
|
||||
),
|
||||
@@ -99,7 +101,7 @@ class DetailPage extends GetView<DetailController> {
|
||||
child: DetailStatWidget(
|
||||
icon: Icons.receipt,
|
||||
label: 'Gesamtpreis',
|
||||
value: '${detailCtrl.tank.szPriceTotal}€',
|
||||
value: '${detailCtrl.tank.szPriceTotal!}€',
|
||||
iconColor: Colors.green[700]!,
|
||||
valueWeight: FontWeight.bold,
|
||||
),
|
||||
@@ -118,7 +120,7 @@ class DetailPage extends GetView<DetailController> {
|
||||
DetailStatWidget(
|
||||
icon: Icons.speed,
|
||||
label: 'Kilometerstand',
|
||||
value: '${detailCtrl.tank.szOdometer} km',
|
||||
value: '${detailCtrl.tank.odometer!} km',
|
||||
iconColor: Colors.blue,
|
||||
valueSize: 24,
|
||||
valueWeight: FontWeight.bold,
|
||||
|
||||
@@ -51,7 +51,7 @@ class GasstationsPage extends GetView<GasstationsController> {
|
||||
strokeWidth: 3,
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
Text(
|
||||
const Text(
|
||||
'Lade Tankstellen...',
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
@@ -62,7 +62,63 @@ class GasstationsPage extends GetView<GasstationsController> {
|
||||
],
|
||||
),
|
||||
);
|
||||
} else if (staCtrl.eControlData.isEmpty) {
|
||||
}
|
||||
// Anzeige bei Fehler/Unerreichbarkeit des E-Control Services
|
||||
else if (staCtrl.errorMessage.isNotEmpty) {
|
||||
return Center(
|
||||
child: Container(
|
||||
margin: const EdgeInsets.all(24),
|
||||
padding: const EdgeInsets.all(32),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.black.withAlpha(10),
|
||||
blurRadius: 10,
|
||||
offset: const Offset(0, 5),
|
||||
),
|
||||
],
|
||||
),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Icon(Icons.cloud_off, size: 64, color: Colors.red[400]),
|
||||
const SizedBox(height: 16),
|
||||
Text(
|
||||
'Service nicht erreichbar',
|
||||
style: TextStyle(
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.blueGrey[800],
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
Text(
|
||||
staCtrl.errorMessage.value,
|
||||
style: TextStyle(fontSize: 14, color: Colors.grey[600]),
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
ElevatedButton.icon(
|
||||
onPressed: () => staCtrl.retry(),
|
||||
icon: const Icon(Icons.refresh),
|
||||
label: const Text('Erneut versuchen'),
|
||||
style: ElevatedButton.styleFrom(
|
||||
backgroundColor: Colors.blueGrey[800],
|
||||
foregroundColor: Colors.white,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
// Anzeige, wenn keine Tankstellen gefunden wurden
|
||||
else if (staCtrl.eControlData.isEmpty) {
|
||||
return Center(
|
||||
child: Container(
|
||||
margin: const EdgeInsets.all(24),
|
||||
@@ -160,6 +216,8 @@ class GasstationsPage extends GetView<GasstationsController> {
|
||||
return GasStationCard(
|
||||
station: staCtrl.eControlData[index],
|
||||
index: index,
|
||||
originLatitude: staCtrl.currentLatitude!,
|
||||
originLongitude: staCtrl.currentLongitude!,
|
||||
);
|
||||
},
|
||||
),
|
||||
|
||||
@@ -144,7 +144,7 @@ class HomePage extends GetView<HomeController> {
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
tank.szDate,
|
||||
tank.tankDate!,
|
||||
style: const TextStyle(
|
||||
fontSize: 16,
|
||||
fontWeight:
|
||||
@@ -153,7 +153,7 @@ class HomePage extends GetView<HomeController> {
|
||||
),
|
||||
const SizedBox(height: 2),
|
||||
Text(
|
||||
'${tank.szLiters} Liter',
|
||||
'${tank.liter!} Liter',
|
||||
style: TextStyle(
|
||||
fontSize: 14,
|
||||
color: Colors.grey[600],
|
||||
@@ -198,12 +198,12 @@ class HomePage extends GetView<HomeController> {
|
||||
_buildInfoChip(
|
||||
icon: Icons.euro,
|
||||
label: 'Preis/L',
|
||||
value: '${tank.szPricePerLiter}€',
|
||||
value: '${tank.pricePerLiter!}€',
|
||||
),
|
||||
_buildInfoChip(
|
||||
icon: Icons.speed,
|
||||
label: 'Km-Stand',
|
||||
value: '${tank.szOdometer} km',
|
||||
value: '${tank.odometer!} km',
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import '../config/app_version.dart';
|
||||
import '../controller/login_controller.dart';
|
||||
import '../widgets/my_login_widget.dart';
|
||||
|
||||
@@ -14,6 +15,23 @@ class LoginPage extends GetView<LoginController> {
|
||||
var displayHeight = MediaQuery.of(context).size.height;
|
||||
return SafeArea(
|
||||
child: Scaffold(
|
||||
bottomNavigationBar: Container(
|
||||
alignment: Alignment.center,
|
||||
color: Colors.blue.shade100,
|
||||
height: 36,
|
||||
child: Tooltip(
|
||||
message: 'SemVer: ${AppVersion.version}+${AppVersion.buildNumber}',
|
||||
child: Text(
|
||||
AppVersion.display,
|
||||
style: TextStyle(
|
||||
color: Colors.blueGrey.shade700,
|
||||
fontSize: 13,
|
||||
fontWeight: FontWeight.w600,
|
||||
letterSpacing: 0.3,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
body: Container(
|
||||
height: displayHeight,
|
||||
width: displayWidth,
|
||||
@@ -24,7 +42,7 @@ class LoginPage extends GetView<LoginController> {
|
||||
color: Colors.blue.shade100,
|
||||
child: SingleChildScrollView(
|
||||
child: MyLoginWidget(
|
||||
onButtonPressed: () => logCtrl.login(),
|
||||
onButtonPressed: () => logCtrl.newLoginDirectus(),
|
||||
signInOnTab: () => logCtrl.goToSignInPage(),
|
||||
logCtrl: logCtrl,
|
||||
),
|
||||
|
||||
@@ -0,0 +1,133 @@
|
||||
import 'dart:convert';
|
||||
import 'package:http/http.dart' as http;
|
||||
|
||||
import '../config/env_directus.dart';
|
||||
import '../helper/password_helper.dart';
|
||||
|
||||
|
||||
class DirectusService {
|
||||
static final String endpoint = EnvDirectus.directusPublicEndpoint;
|
||||
static final String apiTokenBearer = EnvDirectus.directusApiTokenBearer;
|
||||
static final String tankUsersRest = EnvDirectus.directusTankUsersRest;
|
||||
static final String tankStopRest = EnvDirectus.directusTankStopRest;
|
||||
|
||||
static Map<String, String> get headers => {
|
||||
'Authorization': 'Bearer $apiTokenBearer',
|
||||
'Content-Type': 'application/json',
|
||||
};
|
||||
|
||||
Future<List<dynamic>> getTankUserList() async {
|
||||
var client = http.Client();
|
||||
String apiUrl = '$endpoint/items/$tankUsersRest';
|
||||
var response = await client.get(Uri.parse(apiUrl), headers: headers);
|
||||
if(response.statusCode != 200) {
|
||||
print('Fehler beim Abrufen der TankUser-Liste: ${response.statusCode}');
|
||||
client.close();
|
||||
return [];
|
||||
}
|
||||
final json = jsonDecode(
|
||||
utf8.decode(response.bodyBytes),
|
||||
) as Map<String, dynamic>;
|
||||
//print('$json}');
|
||||
client.close();
|
||||
return json['data'] as List<dynamic>;
|
||||
}
|
||||
|
||||
Future<List<dynamic>> getTankGuruDataFromTable(String userIdentId) async {
|
||||
var client = http.Client();
|
||||
//String apiUrl = '$endpoint/items/$tankStopRest?filter[UserIdentId][_eq]=$userIdentId';
|
||||
String apiUrl = '$endpoint/items/$tankStopRest?filter[UserIdentId][_eq]=$userIdentId&sort=-TankDate';
|
||||
var response = await client.get(Uri.parse(apiUrl), headers: headers);
|
||||
if(response.statusCode != 200) {
|
||||
print('Fehler beim Abrufen der Dokumente aus der Collection: ${response.statusCode}');
|
||||
client.close();
|
||||
return [];
|
||||
}
|
||||
final json = jsonDecode(
|
||||
utf8.decode(response.bodyBytes),
|
||||
) as Map<String, dynamic>;
|
||||
//print('$json}');
|
||||
client.close();
|
||||
return json['data'] as List<dynamic>;
|
||||
}
|
||||
|
||||
Future<void> deleteDocumentFromTable(int iD) async {
|
||||
var client = http.Client();
|
||||
String apiUrl = '$endpoint/items/$tankStopRest/$iD';
|
||||
var response = await client.delete(Uri.parse(apiUrl), headers: headers);
|
||||
if(response.statusCode < 200 || response.statusCode >= 300) {
|
||||
print('Fehler beim Löschen des Dokuments aus der Collection: ${response.statusCode}');
|
||||
client.close();
|
||||
throw Exception('Fehler beim Löschen des Dokuments aus der Collection: ${response.statusCode}');
|
||||
}
|
||||
client.close();
|
||||
}
|
||||
|
||||
Future<bool> createDocumentInTable(Map<String, String> data) async {
|
||||
return await http.post(
|
||||
Uri.parse('$endpoint/items/$tankStopRest'),
|
||||
headers: headers,
|
||||
body: jsonEncode(data),
|
||||
).then((response) {
|
||||
if (response.statusCode == 200 || response.statusCode == 201) {
|
||||
print('Dokument erfolgreich erstellt: ${response.body}');
|
||||
return true;
|
||||
} else {
|
||||
print('Fehler beim Erstellen des Dokuments: ${response.statusCode} - ${response.body}');
|
||||
return false;
|
||||
}
|
||||
}).catchError((error) {
|
||||
print('Fehler beim Erstellen des Dokuments: $error');
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
Future<bool> updateDocumentInTable(int? iD, Map<String, String> data) async {
|
||||
return iD != null
|
||||
? http.patch(
|
||||
Uri.parse('$endpoint/items/$tankStopRest/$iD'),
|
||||
headers: headers,
|
||||
body: jsonEncode(data),
|
||||
).then((response) {
|
||||
if (response.statusCode == 200) {
|
||||
print('Dokument erfolgreich aktualisiert: ${response.body}');
|
||||
return true;
|
||||
} else {
|
||||
print('Fehler beim Aktualisieren des Dokuments: ${response.statusCode} - ${response.body}');
|
||||
return false;
|
||||
}
|
||||
}).catchError((error) {
|
||||
print('Fehler beim Aktualisieren des Dokuments: $error');
|
||||
return false;
|
||||
})
|
||||
: Future.value(false);
|
||||
}
|
||||
|
||||
Future<bool> register(String userName, String email, String password, String city, String country) async {
|
||||
var client = http.Client();
|
||||
String apiUrl = '$endpoint/items/$tankUsersRest';
|
||||
Map<String, String> data = {
|
||||
'UserIdentId': base64Encode(utf8.encode('$email:$password')),
|
||||
'UserName': userName,
|
||||
'City': city,
|
||||
'Country': country,
|
||||
'Email': email,
|
||||
'PasswordHash': await PasswordHelper.hashPassword(password),
|
||||
};
|
||||
var response = await client.post(
|
||||
Uri.parse(apiUrl),
|
||||
headers: headers,
|
||||
body: jsonEncode(data),
|
||||
);
|
||||
if (response.statusCode == 200 || response.statusCode == 201) {
|
||||
print('Benutzer erfolgreich registriert: ${response.body}');
|
||||
client.close();
|
||||
return true;
|
||||
} else {
|
||||
print('Fehler bei der Registrierung des Benutzers: ${response.statusCode} - ${response.body}');
|
||||
client.close();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -7,11 +7,30 @@ class EControlService {
|
||||
double longitude,
|
||||
String fuelType,
|
||||
) async {
|
||||
// REST Service... URL
|
||||
String apiUrl =
|
||||
'https://api.e-control.at/sprit/1.0/search/gas-stations/by-address?latitude=$latitude&longitude=$longitude&fuelType=$fuelType&includeClosed=false';
|
||||
// For Test purposes only - later deactivate
|
||||
// latitude = 47.938783246743355;
|
||||
// longitude = 13.762770926423814;
|
||||
String apiUrl = 'https://api.e-control.at/sprit/1.0/search/gas-stations/by-address?latitude=$latitude&longitude=$longitude&fuelType=$fuelType&includeClosed=false';
|
||||
var response = await http.get(Uri.parse(apiUrl));
|
||||
print('${response.statusCode}');
|
||||
return jsonDecode(response.body);
|
||||
if (response.statusCode == 200) {
|
||||
return jsonDecode(response.body);
|
||||
}
|
||||
return [];
|
||||
}
|
||||
|
||||
/// Holt parallel Diesel ('DIE') und Super ('SUP') Daten
|
||||
Future<Map<String, List<dynamic>>> getBothFuelData(
|
||||
double latitude,
|
||||
double longitude,
|
||||
) async {
|
||||
// For Test purposes only - later deactivate
|
||||
// latitude = 47.938783246743355;
|
||||
// longitude = 13.762770926423814;
|
||||
final results = await Future.wait([
|
||||
getEControlData(latitude, longitude, 'DIE'),
|
||||
getEControlData(latitude, longitude, 'SUP'),
|
||||
]);
|
||||
|
||||
return {'DIE': results[0], 'SUP': results[1]};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import '../models/tank_model.dart';
|
||||
//import '../models/tank_model.dart';
|
||||
import '../models/tank_guru_directus_model.dart';
|
||||
|
||||
class DetailHeaderWidget extends StatelessWidget {
|
||||
final TankModel tank;
|
||||
final TankGuruDirectusModel tank;
|
||||
|
||||
const DetailHeaderWidget({super.key, required this.tank});
|
||||
|
||||
@@ -37,7 +38,7 @@ class DetailHeaderWidget extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
Text(
|
||||
tank.szDate,
|
||||
tank.tankDate!,
|
||||
style: const TextStyle(
|
||||
color: Colors.white,
|
||||
fontSize: 20,
|
||||
|
||||
@@ -1,11 +1,21 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
import '../models/econtrol_model.dart';
|
||||
|
||||
class GasStationCard extends StatelessWidget {
|
||||
final EControlModel station;
|
||||
final int index;
|
||||
final double originLatitude;
|
||||
final double originLongitude;
|
||||
|
||||
const GasStationCard({super.key, required this.station, required this.index});
|
||||
const GasStationCard({
|
||||
super.key,
|
||||
required this.station,
|
||||
required this.index,
|
||||
required this.originLatitude,
|
||||
required this.originLongitude,
|
||||
});
|
||||
|
||||
Color _getPriceColor(double? price) {
|
||||
if (price == null) return Colors.grey;
|
||||
@@ -23,210 +33,287 @@ class GasStationCard extends StatelessWidget {
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _openInGoogleMaps(BuildContext context) async {
|
||||
final location = station.location;
|
||||
final destination =
|
||||
location?.latitude != null && location?.longitude != null
|
||||
? '${location!.latitude},${location.longitude}'
|
||||
: [
|
||||
station.name,
|
||||
location?.address,
|
||||
location?.postalCode,
|
||||
location?.city,
|
||||
]
|
||||
.whereType<String>()
|
||||
.where((value) => value.trim().isNotEmpty)
|
||||
.join(', ');
|
||||
|
||||
if (destination.isEmpty) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Für diese Tankstelle ist kein Standort verfügbar.'),
|
||||
),
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
final origin = '$originLatitude,$originLongitude';
|
||||
final mapsUri = Uri.https('www.google.com', '/maps/dir/', {
|
||||
'api': '1',
|
||||
'origin': origin,
|
||||
'destination': destination,
|
||||
'travelmode': 'driving',
|
||||
});
|
||||
|
||||
final didLaunch = await launchUrl(
|
||||
mapsUri,
|
||||
mode: LaunchMode.platformDefault,
|
||||
webOnlyWindowName: '_blank',
|
||||
);
|
||||
|
||||
if (!didLaunch && context.mounted) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Google Maps konnte nicht geöffnet werden.'),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Hilfsmethode zur Erstellung eines einzelnen Preis-Badges
|
||||
Widget _buildPriceBadge(Prices? priceInfo) {
|
||||
if (priceInfo == null || priceInfo.amount == null) {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
|
||||
final double price = priceInfo.amount!;
|
||||
final String label = priceInfo.label ?? priceInfo.fuelType ?? '';
|
||||
final Color badgeColor = _getPriceColor(price);
|
||||
|
||||
return Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
|
||||
decoration: BoxDecoration(
|
||||
color: badgeColor.withAlpha(35),
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
border: Border.all(color: badgeColor, width: 1.5),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Icon(Icons.local_gas_station, color: badgeColor, size: 22),
|
||||
const SizedBox(width: 6),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Text(
|
||||
'€ ${price.toStringAsFixed(3)}',
|
||||
style: TextStyle(
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: badgeColor,
|
||||
),
|
||||
),
|
||||
if (label.isNotEmpty)
|
||||
Text(
|
||||
label,
|
||||
style: TextStyle(
|
||||
fontSize: 10,
|
||||
color: Colors.grey[700],
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final price = station.prices?.isNotEmpty == true
|
||||
? station.prices!.first.amount
|
||||
: null;
|
||||
final priceLabel = station.prices?.isNotEmpty == true
|
||||
? station.prices!.first.label
|
||||
: '';
|
||||
// Suchen nach Diesel und Super/Benzin im Prices-Array
|
||||
final dieselPrice = station.prices?.firstWhere(
|
||||
(p) =>
|
||||
p.fuelType == 'DIE' ||
|
||||
(p.label?.toLowerCase().contains('diesel') ?? false),
|
||||
orElse: () =>
|
||||
station.prices?.isNotEmpty == true ? station.prices!.first : Prices(),
|
||||
);
|
||||
|
||||
final supPrice = station.prices?.firstWhere(
|
||||
(p) =>
|
||||
p.fuelType == 'SUP' ||
|
||||
(p.label?.toLowerCase().contains('benzin') ?? false) ||
|
||||
(p.label?.toLowerCase().contains('super') ?? false),
|
||||
orElse: () => Prices(),
|
||||
);
|
||||
|
||||
return Card(
|
||||
margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
||||
elevation: 4,
|
||||
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)),
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(16),
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [Colors.white, Colors.grey[50]!],
|
||||
clipBehavior: Clip.antiAlias,
|
||||
child: InkWell(
|
||||
onTap: () => _openInGoogleMaps(context),
|
||||
child: Ink(
|
||||
decoration: BoxDecoration(
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [Colors.white, Colors.grey[50]!],
|
||||
),
|
||||
),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
// Header Row with Position and Status
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Container(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 12,
|
||||
vertical: 6,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.blueGrey[700],
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
),
|
||||
child: Text(
|
||||
'#${index + 1}',
|
||||
style: const TextStyle(
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 12,
|
||||
),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 12,
|
||||
vertical: 6,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
color: station.open == true
|
||||
? Colors.green[400]
|
||||
: Colors.red[400],
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Icon(
|
||||
station.open == true
|
||||
? Icons.check_circle
|
||||
: Icons.cancel,
|
||||
color: Colors.white,
|
||||
size: 16,
|
||||
),
|
||||
const SizedBox(width: 4),
|
||||
Text(
|
||||
station.open == true ? 'Geöffnet' : 'Geschlossen',
|
||||
style: const TextStyle(
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 12,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
|
||||
// Station Name
|
||||
Text(
|
||||
station.name ?? 'Unbekannte Tankstelle',
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.black87,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
|
||||
// Address
|
||||
Row(
|
||||
children: [
|
||||
Icon(
|
||||
Icons.location_on,
|
||||
size: 16,
|
||||
color: Colors.blueGrey[600],
|
||||
),
|
||||
const SizedBox(width: 4),
|
||||
Expanded(
|
||||
child: Text(
|
||||
'${station.location?.address ?? ''}, '
|
||||
'${station.location?.postalCode ?? ''} '
|
||||
'${station.location?.city ?? ''}',
|
||||
style: TextStyle(fontSize: 14, color: Colors.grey[700]),
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
|
||||
// Price and Distance Row
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
// Price
|
||||
if (price != null)
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
// Header Row
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Container(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 16,
|
||||
vertical: 10,
|
||||
horizontal: 12,
|
||||
vertical: 6,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
color: _getPriceColor(price).withAlpha(50),
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
border: Border.all(
|
||||
color: _getPriceColor(price),
|
||||
width: 2,
|
||||
color: Colors.blueGrey[700],
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
),
|
||||
child: Text(
|
||||
'#${index + 1}',
|
||||
style: const TextStyle(
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 12,
|
||||
),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 12,
|
||||
vertical: 6,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
color: station.open == true
|
||||
? Colors.green[400]
|
||||
: Colors.red[400],
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Icon(
|
||||
Icons.local_gas_station,
|
||||
color: _getPriceColor(price),
|
||||
size: 24,
|
||||
station.open == true
|
||||
? Icons.check_circle
|
||||
: Icons.cancel,
|
||||
color: Colors.white,
|
||||
size: 16,
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'€ ${price.toStringAsFixed(3)}',
|
||||
style: TextStyle(
|
||||
fontSize: 22,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: _getPriceColor(price),
|
||||
),
|
||||
),
|
||||
if (priceLabel?.isNotEmpty == true)
|
||||
Text(
|
||||
priceLabel!,
|
||||
style: TextStyle(
|
||||
fontSize: 10,
|
||||
color: Colors.grey[600],
|
||||
),
|
||||
),
|
||||
],
|
||||
const SizedBox(width: 4),
|
||||
Text(
|
||||
station.open == true ? 'Geöffnet' : 'Geschlossen',
|
||||
style: const TextStyle(
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 12,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
|
||||
// Distance
|
||||
Container(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 16,
|
||||
vertical: 10,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.blue[50],
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
Icon(
|
||||
Icons.navigation,
|
||||
color: Colors.blue[700],
|
||||
size: 20,
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
Text(
|
||||
_formatDistance(station.distance),
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.blue[700],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
// Station Name
|
||||
Text(
|
||||
station.name ?? 'Unbekannte Tankstelle',
|
||||
style: const TextStyle(
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.black87,
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
|
||||
// Address
|
||||
Row(
|
||||
children: [
|
||||
Icon(
|
||||
Icons.location_on,
|
||||
size: 16,
|
||||
color: Colors.blueGrey[600],
|
||||
),
|
||||
const SizedBox(width: 4),
|
||||
Expanded(
|
||||
child: Text(
|
||||
'${station.location?.address ?? ''}, '
|
||||
'${station.location?.postalCode ?? ''} '
|
||||
'${station.location?.city ?? ''}',
|
||||
style: TextStyle(fontSize: 13, color: Colors.grey[700]),
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
|
||||
// Prices & Distance Row
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
// Diesel & Benzin Preise nebeneinander
|
||||
Expanded(
|
||||
child: Wrap(
|
||||
spacing: 8,
|
||||
runSpacing: 8,
|
||||
children: [
|
||||
if (dieselPrice?.amount != null)
|
||||
_buildPriceBadge(dieselPrice),
|
||||
if (supPrice?.amount != null)
|
||||
_buildPriceBadge(supPrice),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
// Distance Badge
|
||||
Container(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 12,
|
||||
vertical: 8,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.blue[50],
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Icon(
|
||||
Icons.navigation,
|
||||
color: Colors.blue[700],
|
||||
size: 18,
|
||||
),
|
||||
const SizedBox(width: 6),
|
||||
Text(
|
||||
_formatDistance(station.distance),
|
||||
style: TextStyle(
|
||||
fontSize: 14,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.blue[700],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -100,6 +100,30 @@ class MySigninWidget extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(height: 20),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 50.0),
|
||||
child: TextField(
|
||||
controller: signCtrl.cityController,
|
||||
keyboardType: TextInputType.emailAddress,
|
||||
decoration: InputDecoration(
|
||||
border: OutlineInputBorder(),
|
||||
labelText: 'City',
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(height: 20),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 50.0),
|
||||
child: TextField(
|
||||
controller: signCtrl.countryController,
|
||||
keyboardType: TextInputType.emailAddress,
|
||||
decoration: InputDecoration(
|
||||
border: OutlineInputBorder(),
|
||||
labelText: 'Country',
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(height: 30),
|
||||
ElevatedButton(
|
||||
style: ButtonStyle(
|
||||
|
||||
+25
-105
@@ -1,14 +1,6 @@
|
||||
# Generated by pub
|
||||
# See https://dart.dev/tools/pub/glossary#lockfile
|
||||
packages:
|
||||
appwrite:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: appwrite
|
||||
sha256: "3e1f618c8f75bafa49ef7b1b445f64c53cf4620a195443f4d119bbc95a666d0a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "14.0.0"
|
||||
args:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -65,14 +57,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.19.1"
|
||||
cookie_jar:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: cookie_jar
|
||||
sha256: a6ac027d3ed6ed756bfce8f3ff60cb479e266f3b0fdabd6242b804b6765e52de
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.8"
|
||||
crypto:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -81,6 +65,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.7"
|
||||
cryptography:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: cryptography
|
||||
sha256: "3eda3029d34ec9095a27a198ac9785630fe525c0eb6a49f3d575272f8e792ef0"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.9.0"
|
||||
cupertino_icons:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -97,22 +89,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.7.11"
|
||||
device_info_plus:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: device_info_plus
|
||||
sha256: a7fd703482b391a87d60b6061d04dfdeab07826b96f9abd8f5ed98068acc0074
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.1.2"
|
||||
device_info_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: device_info_plus_platform_interface
|
||||
sha256: e1ea89119e34903dca74b883d0dd78eb762814f97fb6c76f35e9ff74d261a18f
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.0.3"
|
||||
fake_async:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -163,22 +139,6 @@ packages:
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
flutter_web_auth_2:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_web_auth_2
|
||||
sha256: "4d3d2fd3d26bf1a26b3beafd4b4b899c0ffe10dc99af25abc58ffe24e991133c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.2"
|
||||
flutter_web_auth_2_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_web_auth_2_platform_interface
|
||||
sha256: e8669e262005a8354389ba2971f0fc1c36188481234ff50d013aaf993f30f739
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.0"
|
||||
flutter_web_plugins:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
@@ -557,54 +517,46 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.4.0"
|
||||
universal_io:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: universal_io
|
||||
sha256: f63cbc48103236abf48e345e07a03ce5757ea86285ed313a6a032596ed9301e2
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.1"
|
||||
url_launcher:
|
||||
dependency: transitive
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: url_launcher
|
||||
sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8
|
||||
sha256: e8cc955c97e06df9879140a1fe301f3d493f01b7c62dec7f46834be31d7e9fda
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.3.2"
|
||||
version: "6.3.3"
|
||||
url_launcher_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_android
|
||||
sha256: "767344bf3063897b5cf0db830e94f904528e6dd50a6dfaf839f0abf509009611"
|
||||
sha256: "611e87fb320b70d1dd721dc46af89c98aceccea9b31fde49e084591414e0c610"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.3.28"
|
||||
version: "6.3.33"
|
||||
url_launcher_ios:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_ios
|
||||
sha256: cfde38aa257dae62ffe79c87fab20165dfdf6988c1d31b58ebf59b9106062aad
|
||||
sha256: "8faa1aab294f1ab4040b43660c887b0418d5fa4f0cffef76a484e6aa1092eb4a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.3.6"
|
||||
version: "6.4.2"
|
||||
url_launcher_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_linux
|
||||
sha256: d5e14138b3bc193a0f63c10a53c94b91d399df0512b1f29b94a043db7482384a
|
||||
sha256: "10f86fef4c2c43563fa6c211ff9cf757adf4d3ab762c56bd430664a947d70cd0"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.2.2"
|
||||
version: "3.2.3"
|
||||
url_launcher_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_macos
|
||||
sha256: "368adf46f71ad3c21b8f06614adb38346f193f3a59ba8fe9a2fd74133070ba18"
|
||||
sha256: "5e835a3b869c2d70325349c81c5a45c28e20791265b67b2669da6b08c5cd5201"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.2.5"
|
||||
version: "3.2.6"
|
||||
url_launcher_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -617,18 +569,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_web
|
||||
sha256: d0412fcf4c6b31ecfdb7762359b7206ffba3bbffd396c6d9f9c4616ece476c1f
|
||||
sha256: "85c81589622fbc87c1c683aaea164d3604a7777495a79d91e39ffcdec39ddb34"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.2"
|
||||
version: "2.4.3"
|
||||
url_launcher_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_windows
|
||||
sha256: "712c70ab1b99744ff066053cbe3e80c73332b38d46e5e945c98689b2e66fc15f"
|
||||
sha256: "6c5ad3f22cd4c38e089b81963b3cd7bb83b111b2df5dce008bb066162f42e429"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.5"
|
||||
version: "3.1.6"
|
||||
uuid:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -661,22 +613,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
web_socket:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: web_socket
|
||||
sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.1"
|
||||
web_socket_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: web_socket_channel
|
||||
sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.3"
|
||||
win32:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -685,22 +621,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.15.0"
|
||||
win32_registry:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: win32_registry
|
||||
sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.5"
|
||||
window_to_front:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: window_to_front
|
||||
sha256: "7aef379752b7190c10479e12b5fd7c0b9d92adc96817d9e96c59937929512aee"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.0.3"
|
||||
xdg_directories:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -726,5 +646,5 @@ packages:
|
||||
source: hosted
|
||||
version: "3.1.3"
|
||||
sdks:
|
||||
dart: ">=3.11.0-0 <4.0.0"
|
||||
flutter: ">=3.38.4"
|
||||
dart: ">=3.12.0 <4.0.0"
|
||||
flutter: ">=3.44.0"
|
||||
|
||||
+3
-2
@@ -3,13 +3,13 @@ description: "A new Flutter project."
|
||||
|
||||
publish_to: "none"
|
||||
|
||||
version: 1.0.0+1
|
||||
version: 1.1.0+2
|
||||
|
||||
environment:
|
||||
sdk: ^3.10.7
|
||||
|
||||
dependencies:
|
||||
appwrite: ^14.0.0
|
||||
cryptography: ^2.9.0
|
||||
cupertino_icons: ^1.0.8
|
||||
flutter:
|
||||
sdk: flutter
|
||||
@@ -18,6 +18,7 @@ dependencies:
|
||||
google_fonts: ^7.1.0
|
||||
http: ^1.6.0
|
||||
intl: ^0.20.2
|
||||
url_launcher: ^6.3.2
|
||||
|
||||
dev_dependencies:
|
||||
flutter_lints: ^6.0.0
|
||||
|
||||
+28
-4
@@ -13,12 +13,33 @@ SERVER_PATH="/root/webserver"
|
||||
echo "🚀 Starting Flutter Web App Update..."
|
||||
echo "================================================"
|
||||
|
||||
# Step 1: Build Flutter Web
|
||||
echo "📦 Building Flutter web release..."
|
||||
flutter build web --release --no-wasm-dry-run
|
||||
# Step 1: Buildnummer nach Flutter-/SemVer-Konvention erhoehen
|
||||
# Die SemVer-Version (MAJOR.MINOR.PATCH) wird bei fachlichen Releases manuell
|
||||
# in pubspec.yaml gepflegt. Jeder Deployment-Build erhaelt eine neue BUILD-Nr.
|
||||
CURRENT_APP_VERSION=$(sed -n 's/^version:[[:space:]]*//p' pubspec.yaml | head -n 1)
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
if [[ ! "$CURRENT_APP_VERSION" =~ ^([0-9]+)\.([0-9]+)\.([0-9]+)\+([0-9]+)$ ]]; then
|
||||
echo "❌ Invalid version in pubspec.yaml: $CURRENT_APP_VERSION"
|
||||
echo " Expected format: MAJOR.MINOR.PATCH+BUILD (for example 1.1.0+2)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SEMVER="${CURRENT_APP_VERSION%%+*}"
|
||||
CURRENT_BUILD_NUMBER="${CURRENT_APP_VERSION##*+}"
|
||||
NEXT_BUILD_NUMBER=$((10#$CURRENT_BUILD_NUMBER + 1))
|
||||
NEXT_APP_VERSION="$SEMVER+$NEXT_BUILD_NUMBER"
|
||||
|
||||
sed -i "s/^version:.*/version: $NEXT_APP_VERSION/" pubspec.yaml
|
||||
|
||||
echo "🏷️ Version: $CURRENT_APP_VERSION -> $NEXT_APP_VERSION"
|
||||
echo "📦 Building Flutter web release..."
|
||||
|
||||
if ! flutter build web --release --no-wasm-dry-run \
|
||||
--dart-define="APP_VERSION=$SEMVER" \
|
||||
--dart-define="APP_BUILD_NUMBER=$NEXT_BUILD_NUMBER"; then
|
||||
sed -i "s/^version:.*/version: $CURRENT_APP_VERSION/" pubspec.yaml
|
||||
echo "❌ Build failed!"
|
||||
echo " Version restored to $CURRENT_APP_VERSION"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -61,4 +82,7 @@ echo "✅ Update complete!"
|
||||
echo "================================================"
|
||||
echo "Your app should now be updated at:"
|
||||
echo " http://tank.joshihomeserver.ipv64.net"
|
||||
echo "Deployed version: $NEXT_APP_VERSION"
|
||||
echo "The login page must show: Version $SEMVER (Build $NEXT_BUILD_NUMBER)"
|
||||
echo "If another version is shown, refresh the browser with Ctrl+F5."
|
||||
echo "================================================"
|
||||
|
||||
+1330
-1823
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -147,7 +147,7 @@ Rb(a,gc(a,l,null,f,k),b-1);return[]})},C:(a,b,c,e,f)=>{b=K(b);-1===f&&(f=4294967
|
||||
je:8,readValueFromPointer:e},{lf:!0})},o:(a,b,c,e,f,k,n,l,p,v,w,A)=>{c=K(c);k=O(f,k);l=O(n,l);v=O(p,v);A=O(w,A);mb([a],[b],D=>{D=D[0];return[new Qb(c,D.be,!1,!1,!0,D,e,k,l,v,A)]})},R:(a,b)=>{b=K(b);var c="std::string"===b;lb(a,{name:b,fromWireType:function(e){var f=H[e>>2],k=e+4;if(c)for(var n=k,l=0;l<=f;++l){var p=k+l;if(l==f||0==B[p]){n=n?db(B,n,p-n):"";if(void 0===v)var v=n;else v+=String.fromCharCode(0),v+=n;n=p+1}}else{v=Array(f);for(l=0;l<f;++l)v[l]=String.fromCharCode(B[k+l]);v=v.join("")}cc(e);
|
||||
return v},toWireType:function(e,f){f instanceof ArrayBuffer&&(f=new Uint8Array(f));var k="string"==typeof f;if(!(k||f instanceof Uint8Array||f instanceof Uint8ClampedArray||f instanceof Int8Array))throw new L("Cannot pass non-string to std::string");var n=c&&k?qa(f):f.length;var l=pd(4+n+1),p=l+4;H[l>>2]=n;if(c&&k)ra(f,p,n+1);else if(k)for(k=0;k<n;++k){var v=f.charCodeAt(k);if(255<v)throw cc(p),new L("String has UTF-16 code units that do not fit in 8 bits");B[p+k]=v}else for(k=0;k<n;++k)B[p+k]=f[k];
|
||||
null!==e&&e.push(cc,l);return l},je:8,readValueFromPointer:gb,ke(e){cc(e)}})},M:(a,b,c)=>{c=K(c);if(2===b){var e=tc;var f=uc;var k=vc;var n=l=>Fa[l>>1]}else 4===b&&(e=wc,f=xc,k=yc,n=l=>H[l>>2]);lb(a,{name:c,fromWireType:l=>{for(var p=H[l>>2],v,w=l+4,A=0;A<=p;++A){var D=l+4+A*b;if(A==p||0==n(D))w=e(w,D-w),void 0===v?v=w:(v+=String.fromCharCode(0),v+=w),w=D+b}cc(l);return v},toWireType:(l,p)=>{if("string"!=typeof p)throw new L(`Cannot pass non-string to C++ string type ${c}`);var v=k(p),w=pd(4+v+b);
|
||||
H[w>>2]=v/b;f(p,w+4,v+b);null!==l&&l.push(cc,w);return w},je:8,readValueFromPointer:gb,ke(l){cc(l)}})},A:(a,b,c,e,f,k)=>{eb[a]={name:K(b),Le:O(c,e),ne:O(f,k),Qe:[]}},d:(a,b,c,e,f,k,n,l,p,v)=>{eb[a].Qe.push({ef:K(b),kf:c,hf:O(e,f),jf:k,sf:n,rf:O(l,p),tf:v})},kd:(a,b)=>{b=K(b);lb(a,{yf:!0,name:b,je:0,fromWireType:()=>{},toWireType:()=>{}})},jd:()=>1,id:()=>{throw Infinity;},E:(a,b,c)=>{a=mc(a);b=pc(b,"emval::as");return zc(b,c,a)},L:(a,b,c,e)=>{a=Ac[a];b=mc(b);return a(null,b,c,e)},r:(a,b,c,e,f)=>{a=
|
||||
H[w>>2]=v/b;f(p,w+4,v+b);null!==l&&l.push(cc,w);return w},je:8,readValueFromPointer:gb,ke(l){cc(l)}})},A:(a,b,c,e,f,k)=>{eb[a]={name:K(b),Le:O(c,e),ne:O(f,k),Qe:[]}},d:(a,b,c,e,f,k,n,l,p,v)=>{eb[a].Qe.push({ef:K(b),kf:c,hf:O(e,f),jf:k,sf:n,rf:O(l,p),tf:v})},kd:(a,b)=>{b=K(b);lb(a,{yf:!0,name:b,je:0,fromWireType:()=>{},toWireType:()=>{}})},jd:()=>1,id:()=>{throw Infinity;},E:(a,b,c)=>{a=mc(a);b=pc(b,"emval::as");return zc(b,c,a)},L:(a,b,c,e)=>{a=Ac[a];b=mc(b);return a(null,b,c,e)},s:(a,b,c,e,f)=>{a=
|
||||
Ac[a];b=mc(b);c=Cc(c);return a(b,b[c],e,f)},c:lc,K:a=>{if(0===a)return Ob(Dc());a=Cc(a);return Ob(Dc()[a])},n:(a,b,c)=>{var e=Fc(a,b),f=e.shift();a--;var k=Array(a);b=`methodCaller<(${e.map(n=>n.name).join(", ")}) => ${f.name}>`;return Ec(Fb(b,(n,l,p,v)=>{for(var w=0,A=0;A<a;++A)k[A]=e[A].readValueFromPointer(v+w),w+=e[A].je;n=1===c?Gc(l,k):l.apply(n,k);return zc(f,p,n)}))},z:(a,b)=>{a=mc(a);b=mc(b);return Ob(a[b])},H:a=>{9<a&&(kc[a+1]+=1)},G:()=>Ob([]),f:a=>Ob(Cc(a)),D:()=>Ob({}),hd:a=>{a=mc(a);
|
||||
return!a},k:a=>{var b=mc(a);fb(b);lc(a)},h:(a,b,c)=>{a=mc(a);b=mc(b);c=mc(c);a[b]=c},g:(a,b)=>{a=pc(a,"_emval_take_value");a=a.readValueFromPointer(b);return Ob(a)},X:function(){return-52},W:function(){},gd:(a,b,c,e)=>{var f=(new Date).getFullYear(),k=(new Date(f,0,1)).getTimezoneOffset();f=(new Date(f,6,1)).getTimezoneOffset();H[a>>2]=60*Math.max(k,f);E[b>>2]=Number(k!=f);b=n=>{var l=Math.abs(n);return`UTC${0<=n?"-":"+"}${String(Math.floor(l/60)).padStart(2,"0")}${String(l%60).padStart(2,"0")}`};
|
||||
a=b(k);b=b(f);f<k?(ra(a,c,17),ra(b,e,17)):(ra(a,e,17),ra(b,c,17))},fd:()=>performance.now(),ed:a=>R.activeTexture(a),dd:(a,b)=>{R.attachShader(Nc[a],Qc[b])},cd:(a,b)=>{R.beginQuery(a,Sc[b])},bd:(a,b)=>{R.me.beginQueryEXT(a,Sc[b])},ad:(a,b,c)=>{R.bindAttribLocation(Nc[a],b,c?db(B,c):"")},$c:(a,b)=>{35051==a?R.Ie=b:35052==a&&(R.re=b);R.bindBuffer(a,Mc[b])},_c:cd,Zc:(a,b)=>{R.bindRenderbuffer(a,Pc[b])},Yc:(a,b)=>{R.bindSampler(a,Tc[b])},Xc:(a,b)=>{R.bindTexture(a,ka[b])},Wc:dd,Vc:dd,Uc:(a,b,c,e)=>R.blendColor(a,
|
||||
@@ -176,7 +176,7 @@ b);else{if(72>=b){var e=wd[4*b],f=J;c>>=2;b*=4;for(var k=0;k<b;k+=4){var n=c+k;e
|
||||
13]=k[l+13];f[n+14]=k[l+14];f[n+15]=k[l+15]}}else f=J.subarray(e>>2,e+64*b>>2);R.uniformMatrix4fv(Y(a),!!c,f)}},ua:a=>{a=Nc[a];R.useProgram(a);R.bf=a},ta:(a,b)=>R.vertexAttrib1f(a,b),sa:(a,b)=>{R.vertexAttrib2f(a,J[b>>2],J[b+4>>2])},ra:(a,b)=>{R.vertexAttrib3f(a,J[b>>2],J[b+4>>2],J[b+8>>2])},qa:(a,b)=>{R.vertexAttrib4f(a,J[b>>2],J[b+4>>2],J[b+8>>2],J[b+12>>2])},pa:(a,b)=>{R.vertexAttribDivisor(a,b)},oa:(a,b,c,e,f)=>{R.vertexAttribIPointer(a,b,c,e,f)},na:(a,b,c,e,f,k)=>{R.vertexAttribPointer(a,b,c,
|
||||
!!e,f,k)},ma:(a,b,c,e)=>R.viewport(a,b,c,e),la:(a,b,c,e)=>{R.waitSync(Uc[a],b,(c>>>0)+4294967296*e)},ka:a=>{var b=B.length;a>>>=0;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var e=b*(1+1/c);e=Math.min(e,a+100663296);a:{e=(Math.min(2147483648,65536*Math.ceil(Math.max(a,e)/65536))-za.buffer.byteLength+65535)/65536|0;try{za.grow(e);Ha();var f=1;break a}catch(k){}f=void 0}if(f)return!0}return!1},ja:()=>z?z.handle:0,qd:(a,b)=>{var c=0;Ad().forEach((e,f)=>{var k=b+c;f=H[a+4*f>>2]=k;for(k=0;k<e.length;++k)Ca[f++]=
|
||||
e.charCodeAt(k);Ca[f]=0;c+=e.length+1});return 0},pd:(a,b)=>{var c=Ad();H[a>>2]=c.length;var e=0;c.forEach(f=>e+=f.length+1);H[b>>2]=e;return 0},ia:a=>{Xa||(Ba=!0);throw new Va(a);},N:()=>52,_:function(){return 52},od:()=>52,Z:function(){return 70},T:(a,b,c,e)=>{for(var f=0,k=0;k<c;k++){var n=H[b>>2],l=H[b+4>>2];b+=8;for(var p=0;p<l;p++){var v=B[n+p],w=Bd[a];0===v||10===v?((1===a?xa:ya)(db(w)),w.length=0):w.push(v)}f+=l}H[e>>2]=f;return 0},ha:cd,ga:ed,fa:fd,ea:gd,J:nd,Q:rd,da:sd,m:Hd,y:Id,l:Jd,I:Kd,
|
||||
ca:Ld,P:Md,O:Nd,t:Od,v:Pd,u:Qd,s:Rd,ba:Sd,aa:Td,$:Ud},Z=function(){function a(c){Z=c.exports;za=Z.wd;Ha();N=Z.zd;Ja.unshift(Z.xd);La--;0==La&&(null!==Na&&(clearInterval(Na),Na=null),Oa&&(c=Oa,Oa=null,c()));return Z}var b={a:Vd};La++;if(r.instantiateWasm)try{return r.instantiateWasm(b,a)}catch(c){ya(`Module.instantiateWasm callback failed with error: ${c}`),da(c)}Ra??=r.locateFile?Qa("canvaskit.wasm")?"canvaskit.wasm":ta+"canvaskit.wasm":(new URL("canvaskit.wasm",import.meta.url)).href;
|
||||
ca:Ld,P:Md,O:Nd,t:Od,v:Pd,u:Qd,r:Rd,ba:Sd,aa:Td,$:Ud},Z=function(){function a(c){Z=c.exports;za=Z.wd;Ha();N=Z.zd;Ja.unshift(Z.xd);La--;0==La&&(null!==Na&&(clearInterval(Na),Na=null),Oa&&(c=Oa,Oa=null,c()));return Z}var b={a:Vd};La++;if(r.instantiateWasm)try{return r.instantiateWasm(b,a)}catch(c){ya(`Module.instantiateWasm callback failed with error: ${c}`),da(c)}Ra??=r.locateFile?Qa("canvaskit.wasm")?"canvaskit.wasm":ta+"canvaskit.wasm":(new URL("canvaskit.wasm",import.meta.url)).href;
|
||||
Ua(b,function(c){a(c.instance)}).catch(da);return{}}(),bc=a=>(bc=Z.yd)(a),pd=r._malloc=a=>(pd=r._malloc=Z.Ad)(a),cc=r._free=a=>(cc=r._free=Z.Bd)(a),Wd=(a,b)=>(Wd=Z.Cd)(a,b),Xd=a=>(Xd=Z.Dd)(a),Yd=()=>(Yd=Z.Ed)();r.dynCall_viji=(a,b,c,e,f)=>(r.dynCall_viji=Z.Fd)(a,b,c,e,f);r.dynCall_vijiii=(a,b,c,e,f,k,n)=>(r.dynCall_vijiii=Z.Gd)(a,b,c,e,f,k,n);r.dynCall_viiiiij=(a,b,c,e,f,k,n,l)=>(r.dynCall_viiiiij=Z.Hd)(a,b,c,e,f,k,n,l);r.dynCall_vij=(a,b,c,e)=>(r.dynCall_vij=Z.Id)(a,b,c,e);
|
||||
r.dynCall_iiiji=(a,b,c,e,f,k)=>(r.dynCall_iiiji=Z.Jd)(a,b,c,e,f,k);r.dynCall_jii=(a,b,c)=>(r.dynCall_jii=Z.Kd)(a,b,c);r.dynCall_jiiiiii=(a,b,c,e,f,k,n)=>(r.dynCall_jiiiiii=Z.Ld)(a,b,c,e,f,k,n);r.dynCall_jiiiiji=(a,b,c,e,f,k,n,l)=>(r.dynCall_jiiiiji=Z.Md)(a,b,c,e,f,k,n,l);r.dynCall_ji=(a,b)=>(r.dynCall_ji=Z.Nd)(a,b);r.dynCall_iijj=(a,b,c,e,f,k)=>(r.dynCall_iijj=Z.Od)(a,b,c,e,f,k);r.dynCall_iiji=(a,b,c,e,f)=>(r.dynCall_iiji=Z.Pd)(a,b,c,e,f);
|
||||
r.dynCall_iijjiii=(a,b,c,e,f,k,n,l,p)=>(r.dynCall_iijjiii=Z.Qd)(a,b,c,e,f,k,n,l,p);r.dynCall_iij=(a,b,c,e)=>(r.dynCall_iij=Z.Rd)(a,b,c,e);r.dynCall_vijjjii=(a,b,c,e,f,k,n,l,p,v)=>(r.dynCall_vijjjii=Z.Sd)(a,b,c,e,f,k,n,l,p,v);r.dynCall_jiji=(a,b,c,e,f)=>(r.dynCall_jiji=Z.Td)(a,b,c,e,f);r.dynCall_viijii=(a,b,c,e,f,k,n)=>(r.dynCall_viijii=Z.Ud)(a,b,c,e,f,k,n);r.dynCall_iiiiij=(a,b,c,e,f,k,n)=>(r.dynCall_iiiiij=Z.Vd)(a,b,c,e,f,k,n);
|
||||
|
||||
+11796
-11733
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -147,7 +147,7 @@ Rb(a,gc(a,l,null,f,k),b-1);return[]})},C:(a,b,c,e,f)=>{b=K(b);-1===f&&(f=4294967
|
||||
de:8,readValueFromPointer:e},{ef:!0})},o:(a,b,c,e,f,k,n,l,q,v,w,A)=>{c=K(c);k=Q(f,k);l=Q(n,l);v=Q(q,v);A=Q(w,A);mb([a],[b],D=>{D=D[0];return[new Qb(c,D.Wd,!1,!1,!0,D,e,k,l,v,A)]})},Q:(a,b)=>{b=K(b);var c="std::string"===b;lb(a,{name:b,fromWireType:function(e){var f=H[e>>2],k=e+4;if(c)for(var n=k,l=0;l<=f;++l){var q=k+l;if(l==f||0==B[q]){n=n?db(B,n,q-n):"";if(void 0===v)var v=n;else v+=String.fromCharCode(0),v+=n;n=q+1}}else{v=Array(f);for(l=0;l<f;++l)v[l]=String.fromCharCode(B[k+l]);v=v.join("")}cc(e);
|
||||
return v},toWireType:function(e,f){f instanceof ArrayBuffer&&(f=new Uint8Array(f));var k="string"==typeof f;if(!(k||f instanceof Uint8Array||f instanceof Uint8ClampedArray||f instanceof Int8Array))throw new L("Cannot pass non-string to std::string");var n=c&&k?qa(f):f.length;var l=pd(4+n+1),q=l+4;H[l>>2]=n;if(c&&k)ra(f,q,n+1);else if(k)for(k=0;k<n;++k){var v=f.charCodeAt(k);if(255<v)throw cc(q),new L("String has UTF-16 code units that do not fit in 8 bits");B[q+k]=v}else for(k=0;k<n;++k)B[q+k]=f[k];
|
||||
null!==e&&e.push(cc,l);return l},de:8,readValueFromPointer:gb,ee(e){cc(e)}})},M:(a,b,c)=>{c=K(c);if(2===b){var e=tc;var f=uc;var k=vc;var n=l=>Fa[l>>1]}else 4===b&&(e=wc,f=xc,k=yc,n=l=>H[l>>2]);lb(a,{name:c,fromWireType:l=>{for(var q=H[l>>2],v,w=l+4,A=0;A<=q;++A){var D=l+4+A*b;if(A==q||0==n(D))w=e(w,D-w),void 0===v?v=w:(v+=String.fromCharCode(0),v+=w),w=D+b}cc(l);return v},toWireType:(l,q)=>{if("string"!=typeof q)throw new L(`Cannot pass non-string to C++ string type ${c}`);var v=k(q),w=pd(4+v+b);
|
||||
H[w>>2]=v/b;f(q,w+4,v+b);null!==l&&l.push(cc,w);return w},de:8,readValueFromPointer:gb,ee(l){cc(l)}})},A:(a,b,c,e,f,k)=>{eb[a]={name:K(b),Fe:Q(c,e),he:Q(f,k),Ke:[]}},d:(a,b,c,e,f,k,n,l,q,v)=>{eb[a].Ke.push({Ze:K(b),df:c,bf:Q(e,f),cf:k,lf:n,kf:Q(l,q),mf:v})},jd:(a,b)=>{b=K(b);lb(a,{sf:!0,name:b,de:0,fromWireType:()=>{},toWireType:()=>{}})},id:()=>1,hd:()=>{throw Infinity;},E:(a,b,c)=>{a=mc(a);b=pc(b,"emval::as");return zc(b,c,a)},L:(a,b,c,e)=>{a=Ac[a];b=mc(b);return a(null,b,c,e)},r:(a,b,c,e,f)=>{a=
|
||||
H[w>>2]=v/b;f(q,w+4,v+b);null!==l&&l.push(cc,w);return w},de:8,readValueFromPointer:gb,ee(l){cc(l)}})},A:(a,b,c,e,f,k)=>{eb[a]={name:K(b),Fe:Q(c,e),he:Q(f,k),Ke:[]}},d:(a,b,c,e,f,k,n,l,q,v)=>{eb[a].Ke.push({Ze:K(b),df:c,bf:Q(e,f),cf:k,lf:n,kf:Q(l,q),mf:v})},jd:(a,b)=>{b=K(b);lb(a,{sf:!0,name:b,de:0,fromWireType:()=>{},toWireType:()=>{}})},id:()=>1,hd:()=>{throw Infinity;},E:(a,b,c)=>{a=mc(a);b=pc(b,"emval::as");return zc(b,c,a)},L:(a,b,c,e)=>{a=Ac[a];b=mc(b);return a(null,b,c,e)},s:(a,b,c,e,f)=>{a=
|
||||
Ac[a];b=mc(b);c=Cc(c);return a(b,b[c],e,f)},c:lc,K:a=>{if(0===a)return Ob(Dc());a=Cc(a);return Ob(Dc()[a])},n:(a,b,c)=>{var e=Fc(a,b),f=e.shift();a--;var k=Array(a);b=`methodCaller<(${e.map(n=>n.name).join(", ")}) => ${f.name}>`;return Ec(Fb(b,(n,l,q,v)=>{for(var w=0,A=0;A<a;++A)k[A]=e[A].readValueFromPointer(v+w),w+=e[A].de;n=1===c?Gc(l,k):l.apply(n,k);return zc(f,q,n)}))},z:(a,b)=>{a=mc(a);b=mc(b);return Ob(a[b])},H:a=>{9<a&&(kc[a+1]+=1)},G:()=>Ob([]),f:a=>Ob(Cc(a)),D:()=>Ob({}),gd:a=>{a=mc(a);
|
||||
return!a},k:a=>{var b=mc(a);fb(b);lc(a)},h:(a,b,c)=>{a=mc(a);b=mc(b);c=mc(c);a[b]=c},g:(a,b)=>{a=pc(a,"_emval_take_value");a=a.readValueFromPointer(b);return Ob(a)},W:function(){return-52},V:function(){},fd:(a,b,c,e)=>{var f=(new Date).getFullYear(),k=(new Date(f,0,1)).getTimezoneOffset();f=(new Date(f,6,1)).getTimezoneOffset();H[a>>2]=60*Math.max(k,f);E[b>>2]=Number(k!=f);b=n=>{var l=Math.abs(n);return`UTC${0<=n?"-":"+"}${String(Math.floor(l/60)).padStart(2,"0")}${String(l%60).padStart(2,"0")}`};
|
||||
a=b(k);b=b(f);f<k?(ra(a,c,17),ra(b,e,17)):(ra(a,e,17),ra(b,c,17))},ed:()=>performance.now(),dd:a=>R.activeTexture(a),cd:(a,b)=>{R.attachShader(Nc[a],Qc[b])},bd:(a,b)=>{R.beginQuery(a,Sc[b])},ad:(a,b)=>{R.ge.beginQueryEXT(a,Sc[b])},$c:(a,b,c)=>{R.bindAttribLocation(Nc[a],b,c?db(B,c):"")},_c:(a,b)=>{35051==a?R.Ce=b:35052==a&&(R.le=b);R.bindBuffer(a,Mc[b])},Zc:cd,Yc:(a,b)=>{R.bindRenderbuffer(a,Pc[b])},Xc:(a,b)=>{R.bindSampler(a,Tc[b])},Wc:(a,b)=>{R.bindTexture(a,ka[b])},Vc:dd,Uc:dd,Tc:(a,b,c,e)=>R.blendColor(a,
|
||||
@@ -176,7 +176,7 @@ b);else{if(72>=b){var e=wd[4*b],f=J;c>>=2;b*=4;for(var k=0;k<b;k+=4){var n=c+k;e
|
||||
13]=k[l+13];f[n+14]=k[l+14];f[n+15]=k[l+15]}}else f=J.subarray(e>>2,e+64*b>>2);R.uniformMatrix4fv(Y(a),!!c,f)}},ta:a=>{a=Nc[a];R.useProgram(a);R.We=a},sa:(a,b)=>R.vertexAttrib1f(a,b),ra:(a,b)=>{R.vertexAttrib2f(a,J[b>>2],J[b+4>>2])},qa:(a,b)=>{R.vertexAttrib3f(a,J[b>>2],J[b+4>>2],J[b+8>>2])},pa:(a,b)=>{R.vertexAttrib4f(a,J[b>>2],J[b+4>>2],J[b+8>>2],J[b+12>>2])},oa:(a,b)=>{R.vertexAttribDivisor(a,b)},na:(a,b,c,e,f)=>{R.vertexAttribIPointer(a,b,c,e,f)},ma:(a,b,c,e,f,k)=>{R.vertexAttribPointer(a,b,c,
|
||||
!!e,f,k)},la:(a,b,c,e)=>R.viewport(a,b,c,e),ka:(a,b,c,e)=>{R.waitSync(Uc[a],b,(c>>>0)+4294967296*e)},ja:a=>{var b=B.length;a>>>=0;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var e=b*(1+1/c);e=Math.min(e,a+100663296);a:{e=(Math.min(2147483648,65536*Math.ceil(Math.max(a,e)/65536))-za.buffer.byteLength+65535)/65536|0;try{za.grow(e);Ha();var f=1;break a}catch(k){}f=void 0}if(f)return!0}return!1},ia:()=>z?z.handle:0,pd:(a,b)=>{var c=0;Ad().forEach((e,f)=>{var k=b+c;f=H[a+4*f>>2]=k;for(k=0;k<e.length;++k)Ca[f++]=
|
||||
e.charCodeAt(k);Ca[f]=0;c+=e.length+1});return 0},od:(a,b)=>{var c=Ad();H[a>>2]=c.length;var e=0;c.forEach(f=>e+=f.length+1);H[b>>2]=e;return 0},ha:a=>{Xa||(Ba=!0);throw new Va(a);},T:()=>52,Z:function(){return 52},nd:()=>52,Y:function(){return 70},S:(a,b,c,e)=>{for(var f=0,k=0;k<c;k++){var n=H[b>>2],l=H[b+4>>2];b+=8;for(var q=0;q<l;q++){var v=B[n+q],w=Bd[a];0===v||10===v?((1===a?xa:ya)(db(w)),w.length=0):w.push(v)}f+=l}H[e>>2]=f;return 0},ga:cd,fa:ed,ea:fd,da:gd,J:nd,P:rd,ca:sd,m:Hd,y:Id,l:Jd,I:Kd,
|
||||
ba:Ld,O:Md,N:Nd,t:Od,v:Pd,u:Qd,s:Rd,aa:Sd,$:Td,_:Ud},Z=function(){function a(c){Z=c.exports;za=Z.vd;Ha();N=Z.yd;Ja.unshift(Z.wd);La--;0==La&&(null!==Na&&(clearInterval(Na),Na=null),Oa&&(c=Oa,Oa=null,c()));return Z}var b={a:Vd};La++;if(r.instantiateWasm)try{return r.instantiateWasm(b,a)}catch(c){ya(`Module.instantiateWasm callback failed with error: ${c}`),da(c)}Ra??=r.locateFile?Qa("canvaskit.wasm")?"canvaskit.wasm":ta+"canvaskit.wasm":(new URL("canvaskit.wasm",import.meta.url)).href;Ua(b,
|
||||
ba:Ld,O:Md,N:Nd,t:Od,v:Pd,u:Qd,r:Rd,aa:Sd,$:Td,_:Ud},Z=function(){function a(c){Z=c.exports;za=Z.vd;Ha();N=Z.yd;Ja.unshift(Z.wd);La--;0==La&&(null!==Na&&(clearInterval(Na),Na=null),Oa&&(c=Oa,Oa=null,c()));return Z}var b={a:Vd};La++;if(r.instantiateWasm)try{return r.instantiateWasm(b,a)}catch(c){ya(`Module.instantiateWasm callback failed with error: ${c}`),da(c)}Ra??=r.locateFile?Qa("canvaskit.wasm")?"canvaskit.wasm":ta+"canvaskit.wasm":(new URL("canvaskit.wasm",import.meta.url)).href;Ua(b,
|
||||
function(c){a(c.instance)}).catch(da);return{}}(),bc=a=>(bc=Z.xd)(a),pd=r._malloc=a=>(pd=r._malloc=Z.zd)(a),cc=r._free=a=>(cc=r._free=Z.Ad)(a),Wd=(a,b)=>(Wd=Z.Bd)(a,b),Xd=a=>(Xd=Z.Cd)(a),Yd=()=>(Yd=Z.Dd)();r.dynCall_viji=(a,b,c,e,f)=>(r.dynCall_viji=Z.Ed)(a,b,c,e,f);r.dynCall_vijiii=(a,b,c,e,f,k,n)=>(r.dynCall_vijiii=Z.Fd)(a,b,c,e,f,k,n);r.dynCall_viiiiij=(a,b,c,e,f,k,n,l)=>(r.dynCall_viiiiij=Z.Gd)(a,b,c,e,f,k,n,l);r.dynCall_vij=(a,b,c,e)=>(r.dynCall_vij=Z.Hd)(a,b,c,e);
|
||||
r.dynCall_jii=(a,b,c)=>(r.dynCall_jii=Z.Id)(a,b,c);r.dynCall_jiiiiii=(a,b,c,e,f,k,n)=>(r.dynCall_jiiiiii=Z.Jd)(a,b,c,e,f,k,n);r.dynCall_jiiiiji=(a,b,c,e,f,k,n,l)=>(r.dynCall_jiiiiji=Z.Kd)(a,b,c,e,f,k,n,l);r.dynCall_ji=(a,b)=>(r.dynCall_ji=Z.Ld)(a,b);r.dynCall_iijj=(a,b,c,e,f,k)=>(r.dynCall_iijj=Z.Md)(a,b,c,e,f,k);r.dynCall_jiji=(a,b,c,e,f)=>(r.dynCall_jiji=Z.Nd)(a,b,c,e,f);r.dynCall_viijii=(a,b,c,e,f,k,n)=>(r.dynCall_viijii=Z.Od)(a,b,c,e,f,k,n);
|
||||
r.dynCall_iiiiij=(a,b,c,e,f,k,n)=>(r.dynCall_iiiiij=Z.Pd)(a,b,c,e,f,k,n);r.dynCall_iiiiijj=(a,b,c,e,f,k,n,l,q)=>(r.dynCall_iiiiijj=Z.Qd)(a,b,c,e,f,k,n,l,q);r.dynCall_iiiiiijj=(a,b,c,e,f,k,n,l,q,v)=>(r.dynCall_iiiiiijj=Z.Rd)(a,b,c,e,f,k,n,l,q,v);function Rd(a,b,c,e,f){var k=Yd();try{N.get(a)(b,c,e,f)}catch(n){Xd(k);if(n!==n+0)throw n;Wd(1,0)}}function Id(a,b,c){var e=Yd();try{return N.get(a)(b,c)}catch(f){Xd(e);if(f!==f+0)throw f;Wd(1,0)}}
|
||||
|
||||
+10706
-10643
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -0,0 +1,171 @@
|
||||
|
||||
var CanvasKitInit = (() => {
|
||||
var _scriptName = import.meta.url;
|
||||
|
||||
return (
|
||||
function(moduleArg = {}) {
|
||||
var moduleRtn;
|
||||
|
||||
var q=moduleArg,aa,ba,ca=new Promise((a,b)=>{aa=a;ba=b}),da="object"==typeof window,ea="function"==typeof importScripts;
|
||||
(function(a){a.Jd=a.Jd||[];a.Jd.push(function(){a.MakeSWCanvasSurface=function(b){var c=b,d="undefined"!==typeof OffscreenCanvas&&c instanceof OffscreenCanvas;if(!("undefined"!==typeof HTMLCanvasElement&&c instanceof HTMLCanvasElement||d||(c=document.getElementById(b),c)))throw"Canvas with id "+b+" was not found";if(b=a.MakeSurface(c.width,c.height))b.ge=c;return b};a.MakeCanvasSurface||(a.MakeCanvasSurface=a.MakeSWCanvasSurface);a.MakeSurface=function(b,c){var d={width:b,height:c,colorType:a.ColorType.RGBA_8888,
|
||||
alphaType:a.AlphaType.Unpremul,colorSpace:a.ColorSpace.SRGB},f=b*c*4,h=a._malloc(f);if(d=a.Surface._makeRasterDirect(d,h,4*b))d.ge=null,d.Ge=b,d.De=c,d.Ee=f,d.ne=h,d.getCanvas().clear(a.TRANSPARENT);return d};a.MakeRasterDirectSurface=function(b,c,d){return a.Surface._makeRasterDirect(b,c.byteOffset,d)};a.Surface.prototype.flush=function(b){a.Gd(this.Fd);this._flush();if(this.ge){var c=new Uint8ClampedArray(a.HEAPU8.buffer,this.ne,this.Ee);c=new ImageData(c,this.Ge,this.De);b?this.ge.getContext("2d").putImageData(c,
|
||||
0,0,b[0],b[1],b[2]-b[0],b[3]-b[1]):this.ge.getContext("2d").putImageData(c,0,0)}};a.Surface.prototype.dispose=function(){this.ne&&a._free(this.ne);this.delete()};a.Gd=a.Gd||function(){};a.he=a.he||function(){return null}})})(q);
|
||||
(function(a){a.Jd=a.Jd||[];a.Jd.push(function(){function b(k,p,t){return k&&k.hasOwnProperty(p)?k[p]:t}function c(k){var p=ha(ia);ia[p]=k;return p}function d(k){return k.naturalHeight||k.videoHeight||k.displayHeight||k.height}function f(k){return k.naturalWidth||k.videoWidth||k.displayWidth||k.width}function h(k,p,t,v){k.bindTexture(k.TEXTURE_2D,p);v||t.alphaType!==a.AlphaType.Premul||k.pixelStorei(k.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0);return p}function n(k,p,t){t||p.alphaType!==a.AlphaType.Premul||
|
||||
k.pixelStorei(k.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1);k.bindTexture(k.TEXTURE_2D,null)}a.GetWebGLContext=function(k,p){if(!k)throw"null canvas passed into makeWebGLContext";var t={alpha:b(p,"alpha",1),depth:b(p,"depth",1),stencil:b(p,"stencil",8),antialias:b(p,"antialias",0),premultipliedAlpha:b(p,"premultipliedAlpha",1),preserveDrawingBuffer:b(p,"preserveDrawingBuffer",0),preferLowPowerToHighPerformance:b(p,"preferLowPowerToHighPerformance",0),failIfMajorPerformanceCaveat:b(p,"failIfMajorPerformanceCaveat",
|
||||
0),enableExtensionsByDefault:b(p,"enableExtensionsByDefault",1),explicitSwapControl:b(p,"explicitSwapControl",0),renderViaOffscreenBackBuffer:b(p,"renderViaOffscreenBackBuffer",0)};t.majorVersion=p&&p.majorVersion?p.majorVersion:"undefined"!==typeof WebGL2RenderingContext?2:1;if(t.explicitSwapControl)throw"explicitSwapControl is not supported";k=ja(k,t);if(!k)return 0;ka(k);x.Sd.getExtension("WEBGL_debug_renderer_info");return k};a.deleteContext=function(k){x===la[k]&&(x=null);"object"==typeof JSEvents&&
|
||||
JSEvents.ef(la[k].Sd.canvas);la[k]&&la[k].Sd.canvas&&(la[k].Sd.canvas.Be=void 0);la[k]=null};a._setTextureCleanup({deleteTexture:function(k,p){var t=ia[p];t&&la[k].Sd.deleteTexture(t);ia[p]=null}});a.MakeWebGLContext=function(k){if(!this.Gd(k))return null;var p=this._MakeGrContext();if(!p)return null;p.Fd=k;var t=p.delete.bind(p);p["delete"]=function(){a.Gd(this.Fd);t()}.bind(p);return x.pe=p};a.MakeGrContext=a.MakeWebGLContext;a.GrDirectContext.prototype.getResourceCacheLimitBytes=function(){a.Gd(this.Fd);
|
||||
this._getResourceCacheLimitBytes()};a.GrDirectContext.prototype.getResourceCacheUsageBytes=function(){a.Gd(this.Fd);this._getResourceCacheUsageBytes()};a.GrDirectContext.prototype.releaseResourcesAndAbandonContext=function(){a.Gd(this.Fd);this._releaseResourcesAndAbandonContext()};a.GrDirectContext.prototype.setResourceCacheLimitBytes=function(k){a.Gd(this.Fd);this._setResourceCacheLimitBytes(k)};a.MakeOnScreenGLSurface=function(k,p,t,v,z,A){if(!this.Gd(k.Fd))return null;p=void 0===z||void 0===A?
|
||||
this._MakeOnScreenGLSurface(k,p,t,v):this._MakeOnScreenGLSurface(k,p,t,v,z,A);if(!p)return null;p.Fd=k.Fd;return p};a.MakeRenderTarget=function(){var k=arguments[0];if(!this.Gd(k.Fd))return null;if(3===arguments.length){var p=this._MakeRenderTargetWH(k,arguments[1],arguments[2]);if(!p)return null}else if(2===arguments.length){if(p=this._MakeRenderTargetII(k,arguments[1]),!p)return null}else return null;p.Fd=k.Fd;return p};a.MakeWebGLCanvasSurface=function(k,p,t){p=p||null;var v=k,z="undefined"!==
|
||||
typeof OffscreenCanvas&&v instanceof OffscreenCanvas;if(!("undefined"!==typeof HTMLCanvasElement&&v instanceof HTMLCanvasElement||z||(v=document.getElementById(k),v)))throw"Canvas with id "+k+" was not found";k=this.GetWebGLContext(v,t);if(!k||0>k)throw"failed to create webgl context: err "+k;k=this.MakeWebGLContext(k);p=this.MakeOnScreenGLSurface(k,v.width,v.height,p);return p?p:(p=v.cloneNode(!0),v.parentNode.replaceChild(p,v),p.classList.add("ck-replaced"),a.MakeSWCanvasSurface(p))};a.MakeCanvasSurface=
|
||||
a.MakeWebGLCanvasSurface;a.Surface.prototype.makeImageFromTexture=function(k,p){a.Gd(this.Fd);k=c(k);if(p=this._makeImageFromTexture(this.Fd,k,p))p.ae=k;return p};a.Surface.prototype.makeImageFromTextureSource=function(k,p,t){p||={height:d(k),width:f(k),colorType:a.ColorType.RGBA_8888,alphaType:t?a.AlphaType.Premul:a.AlphaType.Unpremul};p.colorSpace||(p.colorSpace=a.ColorSpace.SRGB);a.Gd(this.Fd);var v=x.Sd;t=h(v,v.createTexture(),p,t);2===x.version?v.texImage2D(v.TEXTURE_2D,0,v.RGBA,p.width,p.height,
|
||||
0,v.RGBA,v.UNSIGNED_BYTE,k):v.texImage2D(v.TEXTURE_2D,0,v.RGBA,v.RGBA,v.UNSIGNED_BYTE,k);n(v,p);this._resetContext();return this.makeImageFromTexture(t,p)};a.Surface.prototype.updateTextureFromSource=function(k,p,t){if(k.ae){a.Gd(this.Fd);var v=k.getImageInfo(),z=x.Sd,A=h(z,ia[k.ae],v,t);2===x.version?z.texImage2D(z.TEXTURE_2D,0,z.RGBA,f(p),d(p),0,z.RGBA,z.UNSIGNED_BYTE,p):z.texImage2D(z.TEXTURE_2D,0,z.RGBA,z.RGBA,z.UNSIGNED_BYTE,p);n(z,v,t);this._resetContext();ia[k.ae]=null;k.ae=c(A);v.colorSpace=
|
||||
k.getColorSpace();p=this._makeImageFromTexture(this.Fd,k.ae,v);t=k.Ed.Hd;z=k.Ed.Ld;k.Ed.Hd=p.Ed.Hd;k.Ed.Ld=p.Ed.Ld;p.Ed.Hd=t;p.Ed.Ld=z;p.delete();v.colorSpace.delete()}};a.MakeLazyImageFromTextureSource=function(k,p,t){p||={height:d(k),width:f(k),colorType:a.ColorType.RGBA_8888,alphaType:t?a.AlphaType.Premul:a.AlphaType.Unpremul};p.colorSpace||(p.colorSpace=a.ColorSpace.SRGB);var v={makeTexture:function(){var z=x,A=z.Sd,E=h(A,A.createTexture(),p,t);2===z.version?A.texImage2D(A.TEXTURE_2D,0,A.RGBA,
|
||||
p.width,p.height,0,A.RGBA,A.UNSIGNED_BYTE,k):A.texImage2D(A.TEXTURE_2D,0,A.RGBA,A.RGBA,A.UNSIGNED_BYTE,k);n(A,p,t);return c(E)},freeSrc:function(){}};"VideoFrame"===k.constructor.name&&(v.freeSrc=function(){k.close()});return a.Image._makeFromGenerator(p,v)};a.Gd=function(k){return k?ka(k):!1};a.he=function(){return x&&x.pe&&!x.pe.isDeleted()?x.pe:null}})})(q);
|
||||
(function(a){function b(l){return(f(255*l[3])<<24|f(255*l[0])<<16|f(255*l[1])<<8|f(255*l[2])<<0)>>>0}function c(l){if(l&&l._ck)return l;if(l instanceof Float32Array){for(var e=Math.floor(l.length/4),g=new Uint32Array(e),m=0;m<e;m++)g[m]=b(l.slice(4*m,4*(m+1)));return g}if(l instanceof Uint32Array)return l;if(l instanceof Array&&l[0]instanceof Float32Array)return l.map(b)}function d(l){if(void 0===l)return 1;var e=parseFloat(l);return l&&-1!==l.indexOf("%")?e/100:e}function f(l){return Math.round(Math.max(0,
|
||||
Math.min(l||0,255)))}function h(l,e){e&&e._ck||a._free(l)}function n(l,e,g){if(!l||!l.length)return 0;if(l&&l._ck)return l.byteOffset;var m=a[e].BYTES_PER_ELEMENT;g||=a._malloc(l.length*m);a[e].set(l,g/m);return g}function k(l){var e={Qd:0,count:l.length,colorType:a.ColorType.RGBA_F32};if(l instanceof Float32Array)e.Qd=n(l,"HEAPF32"),e.count=l.length/4;else if(l instanceof Uint32Array)e.Qd=n(l,"HEAPU32"),e.colorType=a.ColorType.RGBA_8888;else if(l instanceof Array){if(l&&l.length){for(var g=a._malloc(16*
|
||||
l.length),m=0,r=g/4,u=0;u<l.length;u++)for(var w=0;4>w;w++)a.HEAPF32[r+m]=l[u][w],m++;l=g}else l=0;e.Qd=l}else throw"Invalid argument to copyFlexibleColorArray, Not a color array "+typeof l;return e}function p(l){if(!l)return 0;var e=V.toTypedArray();if(l.length){if(6===l.length||9===l.length)return n(l,"HEAPF32",L),6===l.length&&a.HEAPF32.set(Oc,6+L/4),L;if(16===l.length)return e[0]=l[0],e[1]=l[1],e[2]=l[3],e[3]=l[4],e[4]=l[5],e[5]=l[7],e[6]=l[12],e[7]=l[13],e[8]=l[15],L;throw"invalid matrix size";
|
||||
}if(void 0===l.m11)throw"invalid matrix argument";e[0]=l.m11;e[1]=l.m21;e[2]=l.m41;e[3]=l.m12;e[4]=l.m22;e[5]=l.m42;e[6]=l.m14;e[7]=l.m24;e[8]=l.m44;return L}function t(l){if(!l)return 0;var e=S.toTypedArray();if(l.length){if(16!==l.length&&6!==l.length&&9!==l.length)throw"invalid matrix size";if(16===l.length)return n(l,"HEAPF32",fa);e.fill(0);e[0]=l[0];e[1]=l[1];e[3]=l[2];e[4]=l[3];e[5]=l[4];e[7]=l[5];e[10]=1;e[12]=l[6];e[13]=l[7];e[15]=l[8];6===l.length&&(e[12]=0,e[13]=0,e[15]=1);return fa}if(void 0===
|
||||
l.m11)throw"invalid matrix argument";e[0]=l.m11;e[1]=l.m21;e[2]=l.m31;e[3]=l.m41;e[4]=l.m12;e[5]=l.m22;e[6]=l.m32;e[7]=l.m42;e[8]=l.m13;e[9]=l.m23;e[10]=l.m33;e[11]=l.m43;e[12]=l.m14;e[13]=l.m24;e[14]=l.m34;e[15]=l.m44;return fa}function v(l,e){return n(l,"HEAPF32",e||Y)}function z(l,e,g,m){var r=ya.toTypedArray();r[0]=l;r[1]=e;r[2]=g;r[3]=m;return Y}function A(l){for(var e=new Float32Array(4),g=0;4>g;g++)e[g]=a.HEAPF32[l/4+g];return e}function E(l,e){return n(l,"HEAPF32",e||P)}function M(l,e){return n(l,
|
||||
"HEAPF32",e||ob)}a.Color=function(l,e,g,m){void 0===m&&(m=1);return a.Color4f(f(l)/255,f(e)/255,f(g)/255,m)};a.ColorAsInt=function(l,e,g,m){void 0===m&&(m=255);return(f(m)<<24|f(l)<<16|f(e)<<8|f(g)<<0&268435455)>>>0};a.Color4f=function(l,e,g,m){void 0===m&&(m=1);return Float32Array.of(l,e,g,m)};Object.defineProperty(a,"TRANSPARENT",{get:function(){return a.Color4f(0,0,0,0)}});Object.defineProperty(a,"BLACK",{get:function(){return a.Color4f(0,0,0,1)}});Object.defineProperty(a,"WHITE",{get:function(){return a.Color4f(1,
|
||||
1,1,1)}});Object.defineProperty(a,"RED",{get:function(){return a.Color4f(1,0,0,1)}});Object.defineProperty(a,"GREEN",{get:function(){return a.Color4f(0,1,0,1)}});Object.defineProperty(a,"BLUE",{get:function(){return a.Color4f(0,0,1,1)}});Object.defineProperty(a,"YELLOW",{get:function(){return a.Color4f(1,1,0,1)}});Object.defineProperty(a,"CYAN",{get:function(){return a.Color4f(0,1,1,1)}});Object.defineProperty(a,"MAGENTA",{get:function(){return a.Color4f(1,0,1,1)}});a.getColorComponents=function(l){return[Math.floor(255*
|
||||
l[0]),Math.floor(255*l[1]),Math.floor(255*l[2]),l[3]]};a.parseColorString=function(l,e){l=l.toLowerCase();if(l.startsWith("#")){e=255;switch(l.length){case 9:e=parseInt(l.slice(7,9),16);case 7:var g=parseInt(l.slice(1,3),16);var m=parseInt(l.slice(3,5),16);var r=parseInt(l.slice(5,7),16);break;case 5:e=17*parseInt(l.slice(4,5),16);case 4:g=17*parseInt(l.slice(1,2),16),m=17*parseInt(l.slice(2,3),16),r=17*parseInt(l.slice(3,4),16)}return a.Color(g,m,r,e/255)}return l.startsWith("rgba")?(l=l.slice(5,
|
||||
-1),l=l.split(","),a.Color(+l[0],+l[1],+l[2],d(l[3]))):l.startsWith("rgb")?(l=l.slice(4,-1),l=l.split(","),a.Color(+l[0],+l[1],+l[2],d(l[3]))):l.startsWith("gray(")||l.startsWith("hsl")||!e||(l=e[l],void 0===l)?a.BLACK:l};a.multiplyByAlpha=function(l,e){l=l.slice();l[3]=Math.max(0,Math.min(l[3]*e,1));return l};a.Malloc=function(l,e){var g=a._malloc(e*l.BYTES_PER_ELEMENT);return{_ck:!0,length:e,byteOffset:g,Xd:null,subarray:function(m,r){m=this.toTypedArray().subarray(m,r);m._ck=!0;return m},toTypedArray:function(){if(this.Xd&&
|
||||
this.Xd.length)return this.Xd;this.Xd=new l(a.HEAPU8.buffer,g,e);this.Xd._ck=!0;return this.Xd}}};a.Free=function(l){a._free(l.byteOffset);l.byteOffset=0;l.toTypedArray=null;l.Xd=null};var L=0,V,fa=0,S,Y=0,ya,W,P=0,Nb,ra=0,Ob,pb=0,Pb,qb=0,Va,Ga=0,Qb,ob=0,Rb,Sb=0,Oc=Float32Array.of(0,0,1);a.onRuntimeInitialized=function(){function l(e,g,m,r,u,w,B){w||(w=4*r.width,r.colorType===a.ColorType.RGBA_F16?w*=2:r.colorType===a.ColorType.RGBA_F32&&(w*=4));var J=w*r.height;var F=u?u.byteOffset:a._malloc(J);if(B?
|
||||
!e._readPixels(r,F,w,g,m,B):!e._readPixels(r,F,w,g,m))return u||a._free(F),null;if(u)return u.toTypedArray();switch(r.colorType){case a.ColorType.RGBA_8888:case a.ColorType.RGBA_F16:e=(new Uint8Array(a.HEAPU8.buffer,F,J)).slice();break;case a.ColorType.RGBA_F32:e=(new Float32Array(a.HEAPU8.buffer,F,J)).slice();break;default:return null}a._free(F);return e}ya=a.Malloc(Float32Array,4);Y=ya.byteOffset;S=a.Malloc(Float32Array,16);fa=S.byteOffset;V=a.Malloc(Float32Array,9);L=V.byteOffset;Qb=a.Malloc(Float32Array,
|
||||
12);ob=Qb.byteOffset;Rb=a.Malloc(Float32Array,12);Sb=Rb.byteOffset;W=a.Malloc(Float32Array,4);P=W.byteOffset;Nb=a.Malloc(Float32Array,4);ra=Nb.byteOffset;Ob=a.Malloc(Float32Array,3);pb=Ob.byteOffset;Pb=a.Malloc(Float32Array,3);qb=Pb.byteOffset;Va=a.Malloc(Int32Array,4);Ga=Va.byteOffset;a.ColorSpace.SRGB=a.ColorSpace._MakeSRGB();a.ColorSpace.DISPLAY_P3=a.ColorSpace._MakeDisplayP3();a.ColorSpace.ADOBE_RGB=a.ColorSpace._MakeAdobeRGB();a.GlyphRunFlags={IsWhiteSpace:a._GlyphRunFlags_isWhiteSpace};a.Path.MakeFromCmds=
|
||||
function(e){var g=n(e,"HEAPF32"),m=a.Path._MakeFromCmds(g,e.length);h(g,e);return m};a.Path.MakeFromVerbsPointsWeights=function(e,g,m){var r=n(e,"HEAPU8"),u=n(g,"HEAPF32"),w=n(m,"HEAPF32"),B=a.Path._MakeFromVerbsPointsWeights(r,e.length,u,g.length/2,w,m&&m.length||0);h(r,e);h(u,g);h(w,m);return B};a.PathBuilder.prototype.addArc=function(e,g,m){e=E(e);this._addArc(e,g,m);return this};a.PathBuilder.prototype.addCircle=function(e,g,m,r){this._addCircle(e,g,m,!!r);return this};a.PathBuilder.prototype.addOval=
|
||||
function(e,g,m){void 0===m&&(m=1);e=E(e);this._addOval(e,!!g,m);return this};a.PathBuilder.prototype.addPath=function(){var e=Array.prototype.slice.call(arguments),g=e[0],m=!1;"boolean"===typeof e[e.length-1]&&(m=e.pop());if(1===e.length)this._addPath(g,1,0,0,0,1,0,0,0,1,m);else if(2===e.length)e=e[1],this._addPath(g,e[0],e[1],e[2],e[3],e[4],e[5],e[6]||0,e[7]||0,e[8]||1,m);else if(7===e.length||10===e.length)this._addPath(g,e[1],e[2],e[3],e[4],e[5],e[6],e[7]||0,e[8]||0,e[9]||1,m);else return null;
|
||||
return this};a.PathBuilder.prototype.addPolygon=function(e,g){var m=n(e,"HEAPF32");this._addPolygon(m,e.length/2,g);h(m,e);return this};a.PathBuilder.prototype.addRect=function(e,g){e=E(e);this._addRect(e,!!g);return this};a.PathBuilder.prototype.addRRect=function(e,g){e=M(e);this._addRRect(e,!!g);return this};a.PathBuilder.prototype.addVerbsPointsWeights=function(e,g,m){var r=n(e,"HEAPU8"),u=n(g,"HEAPF32"),w=n(m,"HEAPF32");this._addVerbsPointsWeights(r,e.length,u,g.length/2,w,m&&m.length||0);h(r,
|
||||
e);h(u,g);h(w,m);return this};a.PathBuilder.prototype.arc=function(e,g,m,r,u,w){e=a.LTRBRect(e-m,g-m,e+m,g+m);u=(u-r)/Math.PI*180-360*!!w;r=(new a.PathBuilder).addArc(e,r/Math.PI*180,u).detachAndDelete();this.addPath(r,!0);r.delete();return this};a.PathBuilder.prototype.arcToOval=function(e,g,m,r){e=E(e);this._arcToOval(e,g,m,r);return this};a.PathBuilder.prototype.arcToRotated=function(e,g,m,r,u,w,B){this._arcToRotated(e,g,m,!!r,!!u,w,B);return this};a.PathBuilder.prototype.arcToTangent=function(e,
|
||||
g,m,r,u){this._arcToTangent(e,g,m,r,u);return this};a.PathBuilder.prototype.close=function(){this._close();return this};a.PathBuilder.prototype.conicTo=function(e,g,m,r,u){this._conicTo(e,g,m,r,u);return this};a.Path.prototype.computeTightBounds=function(e){this._computeTightBounds(P);var g=W.toTypedArray();return e?(e.set(g),e):g.slice()};a.PathBuilder.prototype.cubicTo=function(e,g,m,r,u,w){this._cubicTo(e,g,m,r,u,w);return this};a.PathBuilder.prototype.detachAndDelete=function(){var e=this.detach();
|
||||
this.delete();return e};a.Path.prototype.getBounds=function(e){this._getBounds(P);var g=W.toTypedArray();return e?(e.set(g),e):g.slice()};a.PathBuilder.prototype.getBounds=function(e){this._getBounds(P);var g=W.toTypedArray();return e?(e.set(g),e):g.slice()};a.PathBuilder.prototype.lineTo=function(e,g){this._lineTo(e,g);return this};a.PathBuilder.prototype.moveTo=function(e,g){this._moveTo(e,g);return this};a.PathBuilder.prototype.offset=function(e,g){this._transform(1,0,e,0,1,g,0,0,1);return this};
|
||||
a.PathBuilder.prototype.quadTo=function(e,g,m,r){this._quadTo(e,g,m,r);return this};a.PathBuilder.prototype.rArcTo=function(e,g,m,r,u,w,B){this._rArcTo(e,g,m,r,u,w,B);return this};a.PathBuilder.prototype.rConicTo=function(e,g,m,r,u){this._rConicTo(e,g,m,r,u);return this};a.PathBuilder.prototype.rCubicTo=function(e,g,m,r,u,w){this._rCubicTo(e,g,m,r,u,w);return this};a.PathBuilder.prototype.rLineTo=function(e,g){this._rLineTo(e,g);return this};a.PathBuilder.prototype.rMoveTo=function(e,g){this._rMoveTo(e,
|
||||
g);return this};a.PathBuilder.prototype.rQuadTo=function(e,g,m,r){this._rQuadTo(e,g,m,r);return this};a.Path.prototype.makeStroked=function(e){e=e||{};e.width=e.width||1;e.miter_limit=e.miter_limit||4;e.cap=e.cap||a.StrokeCap.Butt;e.join=e.join||a.StrokeJoin.Miter;e.precision=e.precision||1;return this._makeStroked(e)};a.PathBuilder.prototype.transform=function(){if(1===arguments.length){var e=arguments[0];this._transform(e[0],e[1],e[2],e[3],e[4],e[5],e[6]||0,e[7]||0,e[8]||1)}else if(6===arguments.length||
|
||||
9===arguments.length)e=arguments,this._transform(e[0],e[1],e[2],e[3],e[4],e[5],e[6]||0,e[7]||0,e[8]||1);else throw"transform expected to take 1 or 9 arguments. Got "+arguments.length;return this};a.Path.prototype.makeTrimmed=function(e,g,m){return this._makeTrimmed(e,g,!!m)};a.Image.prototype.encodeToBytes=function(e,g){var m=a.he();e=e||a.ImageFormat.PNG;g=g||100;return m?this._encodeToBytes(e,g,m):this._encodeToBytes(e,g)};a.Image.prototype.makeShaderCubic=function(e,g,m,r,u){u=p(u);return this._makeShaderCubic(e,
|
||||
g,m,r,u)};a.Image.prototype.makeShaderOptions=function(e,g,m,r,u){u=p(u);return this._makeShaderOptions(e,g,m,r,u)};a.Image.prototype.readPixels=function(e,g,m,r,u){var w=a.he();return l(this,e,g,m,r,u,w)};a.Canvas.prototype.clear=function(e){a.Gd(this.Fd);e=v(e);this._clear(e)};a.Canvas.prototype.clipRRect=function(e,g,m){a.Gd(this.Fd);e=M(e);this._clipRRect(e,g,m)};a.Canvas.prototype.clipRect=function(e,g,m){a.Gd(this.Fd);e=E(e);this._clipRect(e,g,m)};a.Canvas.prototype.concat=function(e){a.Gd(this.Fd);
|
||||
e=t(e);this._concat(e)};a.Canvas.prototype.drawArc=function(e,g,m,r,u){a.Gd(this.Fd);e=E(e);this._drawArc(e,g,m,r,u)};a.Canvas.prototype.drawAtlas=function(e,g,m,r,u,w,B){if(e&&r&&g&&m&&g.length===m.length){a.Gd(this.Fd);u||(u=a.BlendMode.SrcOver);var J=n(g,"HEAPF32"),F=n(m,"HEAPF32"),R=m.length/4,T=n(c(w),"HEAPU32");if(B&&"B"in B&&"C"in B)this._drawAtlasCubic(e,F,J,T,R,u,B.B,B.C,r);else{let sa=a.FilterMode.Linear,Ha=a.MipmapMode.None;B&&(sa=B.filter,"mipmap"in B&&(Ha=B.mipmap));this._drawAtlasOptions(e,
|
||||
F,J,T,R,u,sa,Ha,r)}h(J,g);h(F,m);h(T,w)}};a.Canvas.prototype.drawCircle=function(e,g,m,r){a.Gd(this.Fd);this._drawCircle(e,g,m,r)};a.Canvas.prototype.drawColor=function(e,g){a.Gd(this.Fd);e=v(e);void 0!==g?this._drawColor(e,g):this._drawColor(e)};a.Canvas.prototype.drawColorInt=function(e,g){a.Gd(this.Fd);this._drawColorInt(e,g||a.BlendMode.SrcOver)};a.Canvas.prototype.drawColorComponents=function(e,g,m,r,u){a.Gd(this.Fd);e=z(e,g,m,r);void 0!==u?this._drawColor(e,u):this._drawColor(e)};a.Canvas.prototype.drawDRRect=
|
||||
function(e,g,m){a.Gd(this.Fd);e=M(e,ob);g=M(g,Sb);this._drawDRRect(e,g,m)};a.Canvas.prototype.drawImage=function(e,g,m,r){a.Gd(this.Fd);this._drawImage(e,g,m,r||null)};a.Canvas.prototype.drawImageCubic=function(e,g,m,r,u,w){a.Gd(this.Fd);this._drawImageCubic(e,g,m,r,u,w||null)};a.Canvas.prototype.drawImageOptions=function(e,g,m,r,u,w){a.Gd(this.Fd);this._drawImageOptions(e,g,m,r,u,w||null)};a.Canvas.prototype.drawImageNine=function(e,g,m,r,u){a.Gd(this.Fd);g=n(g,"HEAP32",Ga);m=E(m);this._drawImageNine(e,
|
||||
g,m,r,u||null)};a.Canvas.prototype.drawImageRect=function(e,g,m,r,u){a.Gd(this.Fd);E(g,P);E(m,ra);this._drawImageRect(e,P,ra,r,!!u)};a.Canvas.prototype.drawImageRectCubic=function(e,g,m,r,u,w){a.Gd(this.Fd);E(g,P);E(m,ra);this._drawImageRectCubic(e,P,ra,r,u,w||null)};a.Canvas.prototype.drawImageRectOptions=function(e,g,m,r,u,w){a.Gd(this.Fd);E(g,P);E(m,ra);this._drawImageRectOptions(e,P,ra,r,u,w||null)};a.Canvas.prototype.drawLine=function(e,g,m,r,u){a.Gd(this.Fd);this._drawLine(e,g,m,r,u)};a.Canvas.prototype.drawOval=
|
||||
function(e,g){a.Gd(this.Fd);e=E(e);this._drawOval(e,g)};a.Canvas.prototype.drawPaint=function(e){a.Gd(this.Fd);this._drawPaint(e)};a.Canvas.prototype.drawParagraph=function(e,g,m){a.Gd(this.Fd);this._drawParagraph(e,g,m)};a.Canvas.prototype.drawPatch=function(e,g,m,r,u){if(24>e.length)throw"Need 12 cubic points";if(g&&4>g.length)throw"Need 4 colors";if(m&&8>m.length)throw"Need 4 shader coordinates";a.Gd(this.Fd);const w=n(e,"HEAPF32"),B=g?n(c(g),"HEAPU32"):0,J=m?n(m,"HEAPF32"):0;r||(r=a.BlendMode.Modulate);
|
||||
this._drawPatch(w,B,J,r,u);h(J,m);h(B,g);h(w,e)};a.Canvas.prototype.drawPath=function(e,g){a.Gd(this.Fd);this._drawPath(e,g)};a.Canvas.prototype.drawPicture=function(e){a.Gd(this.Fd);this._drawPicture(e)};a.Canvas.prototype.drawPoints=function(e,g,m){a.Gd(this.Fd);var r=n(g,"HEAPF32");this._drawPoints(e,r,g.length/2,m);h(r,g)};a.Canvas.prototype.drawRRect=function(e,g){a.Gd(this.Fd);e=M(e);this._drawRRect(e,g)};a.Canvas.prototype.drawRect=function(e,g){a.Gd(this.Fd);e=E(e);this._drawRect(e,g)};a.Canvas.prototype.drawRect4f=
|
||||
function(e,g,m,r,u){a.Gd(this.Fd);this._drawRect4f(e,g,m,r,u)};a.Canvas.prototype.drawShadow=function(e,g,m,r,u,w,B){a.Gd(this.Fd);var J=n(u,"HEAPF32"),F=n(w,"HEAPF32");g=n(g,"HEAPF32",pb);m=n(m,"HEAPF32",qb);this._drawShadow(e,g,m,r,J,F,B);h(J,u);h(F,w)};a.getShadowLocalBounds=function(e,g,m,r,u,w,B){e=p(e);m=n(m,"HEAPF32",pb);r=n(r,"HEAPF32",qb);if(!this._getShadowLocalBounds(e,g,m,r,u,w,P))return null;g=W.toTypedArray();return B?(B.set(g),B):g.slice()};a.Canvas.prototype.drawTextBlob=function(e,
|
||||
g,m,r){a.Gd(this.Fd);this._drawTextBlob(e,g,m,r)};a.Canvas.prototype.drawVertices=function(e,g,m){a.Gd(this.Fd);this._drawVertices(e,g,m)};a.Canvas.prototype.getDeviceClipBounds=function(e){this._getDeviceClipBounds(Ga);var g=Va.toTypedArray();e?e.set(g):e=g.slice();return e};a.Canvas.prototype.quickReject=function(e){e=E(e);return this._quickReject(e)};a.Canvas.prototype.getLocalToDevice=function(){this._getLocalToDevice(fa);for(var e=fa,g=Array(16),m=0;16>m;m++)g[m]=a.HEAPF32[e/4+m];return g};a.Canvas.prototype.getTotalMatrix=
|
||||
function(){this._getTotalMatrix(L);for(var e=Array(9),g=0;9>g;g++)e[g]=a.HEAPF32[L/4+g];return e};a.Canvas.prototype.makeSurface=function(e){e=this._makeSurface(e);e.Fd=this.Fd;return e};a.Canvas.prototype.readPixels=function(e,g,m,r,u){a.Gd(this.Fd);return l(this,e,g,m,r,u)};a.Canvas.prototype.saveLayer=function(e,g,m,r,u){g=E(g);return this._saveLayer(e||null,g,m||null,r||0,u||a.TileMode.Clamp)};a.Canvas.prototype.writePixels=function(e,g,m,r,u,w,B,J){if(e.byteLength%(g*m))throw"pixels length must be a multiple of the srcWidth * srcHeight";
|
||||
a.Gd(this.Fd);var F=e.byteLength/(g*m);w=w||a.AlphaType.Unpremul;B=B||a.ColorType.RGBA_8888;J=J||a.ColorSpace.SRGB;var R=F*g;F=n(e,"HEAPU8");g=this._writePixels({width:g,height:m,colorType:B,alphaType:w,colorSpace:J},F,R,r,u);h(F,e);return g};a.ColorFilter.MakeBlend=function(e,g,m){e=v(e);m=m||a.ColorSpace.SRGB;return a.ColorFilter._MakeBlend(e,g,m)};a.ColorFilter.MakeMatrix=function(e){if(!e||20!==e.length)throw"invalid color matrix";var g=n(e,"HEAPF32"),m=a.ColorFilter._makeMatrix(g);h(g,e);return m};
|
||||
a.ContourMeasure.prototype.getPosTan=function(e,g){this._getPosTan(e,P);e=W.toTypedArray();return g?(g.set(e),g):e.slice()};a.ImageFilter.prototype.getOutputBounds=function(e,g,m){e=E(e,P);g=p(g);this._getOutputBounds(e,g,Ga);g=Va.toTypedArray();return m?(m.set(g),m):g.slice()};a.ImageFilter.MakeDropShadow=function(e,g,m,r,u,w){u=v(u,Y);return a.ImageFilter._MakeDropShadow(e,g,m,r,u,w)};a.ImageFilter.MakeDropShadowOnly=function(e,g,m,r,u,w){u=v(u,Y);return a.ImageFilter._MakeDropShadowOnly(e,g,m,
|
||||
r,u,w)};a.ImageFilter.MakeImage=function(e,g,m,r){m=E(m,P);r=E(r,ra);if("B"in g&&"C"in g)return a.ImageFilter._MakeImageCubic(e,g.B,g.C,m,r);const u=g.filter;let w=a.MipmapMode.None;"mipmap"in g&&(w=g.mipmap);return a.ImageFilter._MakeImageOptions(e,u,w,m,r)};a.ImageFilter.MakeMatrixTransform=function(e,g,m){e=p(e);if("B"in g&&"C"in g)return a.ImageFilter._MakeMatrixTransformCubic(e,g.B,g.C,m);const r=g.filter;let u=a.MipmapMode.None;"mipmap"in g&&(u=g.mipmap);return a.ImageFilter._MakeMatrixTransformOptions(e,
|
||||
r,u,m)};a.Paint.prototype.getColor=function(){this._getColor(Y);return A(Y)};a.Paint.prototype.setColor=function(e,g){g=g||null;e=v(e);this._setColor(e,g)};a.Paint.prototype.setColorComponents=function(e,g,m,r,u){u=u||null;e=z(e,g,m,r);this._setColor(e,u)};a.Path.prototype.getPoint=function(e,g){this._getPoint(e,P);e=W.toTypedArray();return g?(g[0]=e[0],g[1]=e[1],g):e.slice(0,2)};a.Picture.prototype.makeShader=function(e,g,m,r,u){r=p(r);u=E(u);return this._makeShader(e,g,m,r,u)};a.Picture.prototype.cullRect=
|
||||
function(e){this._cullRect(P);var g=W.toTypedArray();return e?(e.set(g),e):g.slice()};a.PictureRecorder.prototype.beginRecording=function(e,g){e=E(e);return this._beginRecording(e,!!g)};a.Surface.prototype.getCanvas=function(){var e=this._getCanvas();e.Fd=this.Fd;return e};a.Surface.prototype.makeImageSnapshot=function(e){a.Gd(this.Fd);e=n(e,"HEAP32",Ga);return this._makeImageSnapshot(e)};a.Surface.prototype.makeSurface=function(e){a.Gd(this.Fd);e=this._makeSurface(e);e.Fd=this.Fd;return e};a.Surface.prototype.Fe=
|
||||
function(e,g){this.$d||(this.$d=this.getCanvas());return requestAnimationFrame(function(){a.Gd(this.Fd);e(this.$d);this.flush(g)}.bind(this))};a.Surface.prototype.requestAnimationFrame||(a.Surface.prototype.requestAnimationFrame=a.Surface.prototype.Fe);a.Surface.prototype.Ce=function(e,g){this.$d||(this.$d=this.getCanvas());requestAnimationFrame(function(){a.Gd(this.Fd);e(this.$d);this.flush(g);this.dispose()}.bind(this))};a.Surface.prototype.drawOnce||(a.Surface.prototype.drawOnce=a.Surface.prototype.Ce);
|
||||
a.PathEffect.MakeDash=function(e,g){g||=0;if(!e.length||1===e.length%2)throw"Intervals array must have even length";var m=n(e,"HEAPF32");g=a.PathEffect._MakeDash(m,e.length,g);h(m,e);return g};a.PathEffect.MakeLine2D=function(e,g){g=p(g);return a.PathEffect._MakeLine2D(e,g)};a.PathEffect.MakePath2D=function(e,g){e=p(e);return a.PathEffect._MakePath2D(e,g)};a.Shader.MakeColor=function(e,g){g=g||null;e=v(e);return a.Shader._MakeColor(e,g)};a.Shader.Blend=a.Shader.MakeBlend;a.Shader.Color=a.Shader.MakeColor;
|
||||
a.Shader.MakeLinearGradient=function(e,g,m,r,u,w,B,J){J=J||null;var F=k(m),R=n(r,"HEAPF32");B=B||0;w=p(w);var T=W.toTypedArray();T.set(e);T.set(g,2);e=a.Shader._MakeLinearGradient(P,F.Qd,F.colorType,R,F.count,u,B,w,J);h(F.Qd,m);r&&h(R,r);return e};a.Shader.MakeRadialGradient=function(e,g,m,r,u,w,B,J){J=J||null;var F=k(m),R=n(r,"HEAPF32");B=B||0;w=p(w);e=a.Shader._MakeRadialGradient(e[0],e[1],g,F.Qd,F.colorType,R,F.count,u,B,w,J);h(F.Qd,m);r&&h(R,r);return e};a.Shader.MakeSweepGradient=function(e,
|
||||
g,m,r,u,w,B,J,F,R){R=R||null;var T=k(m),sa=n(r,"HEAPF32");B=B||0;J=J||0;F=F||360;w=p(w);e=a.Shader._MakeSweepGradient(e,g,T.Qd,T.colorType,sa,T.count,u,J,F,B,w,R);h(T.Qd,m);r&&h(sa,r);return e};a.Shader.MakeTwoPointConicalGradient=function(e,g,m,r,u,w,B,J,F,R){R=R||null;var T=k(u),sa=n(w,"HEAPF32");F=F||0;J=p(J);var Ha=W.toTypedArray();Ha.set(e);Ha.set(m,2);e=a.Shader._MakeTwoPointConicalGradient(P,g,r,T.Qd,T.colorType,sa,T.count,B,F,J,R);h(T.Qd,u);w&&h(sa,w);return e};a.Vertices.prototype.bounds=
|
||||
function(e){this._bounds(P);var g=W.toTypedArray();return e?(e.set(g),e):g.slice()};a.Jd&&a.Jd.forEach(function(e){e()})};a.computeTonalColors=function(l){var e=n(l.ambient,"HEAPF32"),g=n(l.spot,"HEAPF32");this._computeTonalColors(e,g);var m={ambient:A(e),spot:A(g)};h(e,l.ambient);h(g,l.spot);return m};a.LTRBRect=function(l,e,g,m){return Float32Array.of(l,e,g,m)};a.XYWHRect=function(l,e,g,m){return Float32Array.of(l,e,l+g,e+m)};a.LTRBiRect=function(l,e,g,m){return Int32Array.of(l,e,g,m)};a.XYWHiRect=
|
||||
function(l,e,g,m){return Int32Array.of(l,e,l+g,e+m)};a.RRectXY=function(l,e,g){return Float32Array.of(l[0],l[1],l[2],l[3],e,g,e,g,e,g,e,g)};a.MakeAnimatedImageFromEncoded=function(l){l=new Uint8Array(l);var e=a._malloc(l.byteLength);a.HEAPU8.set(l,e);return(l=a._decodeAnimatedImage(e,l.byteLength))?l:null};a.MakeImageFromEncoded=function(l){l=new Uint8Array(l);var e=a._malloc(l.byteLength);a.HEAPU8.set(l,e);return(l=a._decodeImage(e,l.byteLength))?l:null};var Wa=null;a.MakeImageFromCanvasImageSource=
|
||||
function(l){var e=l.width,g=l.height;Wa||=document.createElement("canvas");Wa.width=e;Wa.height=g;var m=Wa.getContext("2d",{willReadFrequently:!0});m.drawImage(l,0,0);l=m.getImageData(0,0,e,g);return a.MakeImage({width:e,height:g,alphaType:a.AlphaType.Unpremul,colorType:a.ColorType.RGBA_8888,colorSpace:a.ColorSpace.SRGB},l.data,4*e)};a.MakeImage=function(l,e,g){var m=a._malloc(e.length);a.HEAPU8.set(e,m);return a._MakeImage(l,m,e.length,g)};a.MakeVertices=function(l,e,g,m,r,u){var w=r&&r.length||
|
||||
0,B=0;g&&g.length&&(B|=1);m&&m.length&&(B|=2);void 0===u||u||(B|=4);l=new a._VerticesBuilder(l,e.length/2,w,B);n(e,"HEAPF32",l.positions());l.texCoords()&&n(g,"HEAPF32",l.texCoords());l.colors()&&n(c(m),"HEAPU32",l.colors());l.indices()&&n(r,"HEAPU16",l.indices());return l.detach()};(function(l){l.Jd=l.Jd||[];l.Jd.push(function(){l.Bidi.getBidiRegions=function(e,g){if((e=l.Bidi._getBidiRegions(e,g===l.TextDirection.LTR?1:0))&&e.length){g=[];for(let m=0;m<e.length;m+=3)g.push({start:e[m],end:e[m+1],
|
||||
level:e[m+2]});e=g}else e=[];return e};l.Bidi.reorderVisual=function(e){var g=n(e,"HEAPU8"),m=l.Bidi._reorderVisual(g,e&&e.length||0);h(g,e);if(m&&m.length){e=[];for(g=0;g<m.length;g+=1)e.push({index:m[g]});m=e}else m=[];return m};l.CodeUnits.compute=function(e){if((e=l.CodeUnits._compute(e))&&e.length){var g=[];for(let m=0;m<e.length;m+=1)g.push({flags:e[m]});e=g}else e=[];return e};l.TextDirection||(l.TextDirection={LTR:{value:1},RTL:{value:0}})})})(q);a.Jd=a.Jd||[];a.Jd.push(function(){});a.Jd=
|
||||
a.Jd||[];a.Jd.push(function(){a.MakePicture=function(l){l=new Uint8Array(l);var e=a._malloc(l.byteLength);a.HEAPU8.set(l,e);return(l=a._MakePicture(e,l.byteLength))?l:null}});a.Jd=a.Jd||[];a.Jd.push(function(){a.RuntimeEffect.Make=function(l,e){return a.RuntimeEffect._Make(l,{onError:e||function(g){console.log("RuntimeEffect error",g)}})};a.RuntimeEffect.MakeForBlender=function(l,e){return a.RuntimeEffect._MakeForBlender(l,{onError:e||function(g){console.log("RuntimeEffect error",g)}})};a.RuntimeEffect.prototype.makeShader=
|
||||
function(l,e){var g=!l._ck,m=n(l,"HEAPF32");e=p(e);return this._makeShader(m,4*l.length,g,e)};a.RuntimeEffect.prototype.makeShaderWithChildren=function(l,e,g){var m=!l._ck,r=n(l,"HEAPF32");g=p(g);for(var u=[],w=0;w<e.length;w++)u.push(e[w].Ed.Hd);e=n(u,"HEAPU32");return this._makeShaderWithChildren(r,4*l.length,m,e,u.length,g)};a.RuntimeEffect.prototype.makeBlender=function(l){var e=!l._ck,g=n(l,"HEAPF32");return this._makeBlender(g,4*l.length,e)}})})(q);var ma=Object.assign({},q),na="",oa,pa;
|
||||
if(da||ea)ea?na=self.location.href:"undefined"!=typeof document&&document.currentScript&&(na=document.currentScript.src),_scriptName&&(na=_scriptName),na.startsWith("blob:")?na="":na=na.substr(0,na.replace(/[?#].*/,"").lastIndexOf("/")+1),ea&&(pa=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),oa=a=>fetch(a,{credentials:"same-origin"}).then(b=>b.ok?b.arrayBuffer():Promise.reject(Error(b.status+" : "+b.url)));
|
||||
var qa=console.log.bind(console),ta=console.error.bind(console);Object.assign(q,ma);ma=null;var ua,va=!1,wa,y,xa,za,C,D,G,Aa;function Ba(){var a=ua.buffer;q.HEAP8=wa=new Int8Array(a);q.HEAP16=xa=new Int16Array(a);q.HEAPU8=y=new Uint8Array(a);q.HEAPU16=za=new Uint16Array(a);q.HEAP32=C=new Int32Array(a);q.HEAPU32=D=new Uint32Array(a);q.HEAPF32=G=new Float32Array(a);q.HEAPF64=Aa=new Float64Array(a)}var Ca=[],Da=[],Ea=[],Fa=0,Ia=null,Ja=null;
|
||||
function Ka(a){a="Aborted("+a+")";ta(a);va=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");ba(a);throw a;}var La=a=>a.startsWith("data:application/octet-stream;base64,"),Ma;function Na(a){return oa(a).then(b=>new Uint8Array(b),()=>{if(pa)var b=pa(a);else throw"both async and sync fetching of the wasm failed";return b})}function Oa(a,b,c){return Na(a).then(d=>WebAssembly.instantiate(d,b)).then(c,d=>{ta(`failed to asynchronously prepare wasm: ${d}`);Ka(d)})}
|
||||
function Pa(a,b){var c=Ma;return"function"!=typeof WebAssembly.instantiateStreaming||La(c)||"function"!=typeof fetch?Oa(c,a,b):fetch(c,{credentials:"same-origin"}).then(d=>WebAssembly.instantiateStreaming(d,a).then(b,function(f){ta(`wasm streaming compile failed: ${f}`);ta("falling back to ArrayBuffer instantiation");return Oa(c,a,b)}))}function Qa(a){this.name="ExitStatus";this.message=`Program terminated with exit(${a})`;this.status=a}var Ra=a=>{a.forEach(b=>b(q))},Sa=q.noExitRuntime||!0;
|
||||
class Ta{constructor(a){this.Hd=a-24}}var Ua=0,Xa=0,Ya={},Za=a=>{for(;a.length;){var b=a.pop();a.pop()(b)}};function $a(a){return this.fromWireType(D[a>>2])}
|
||||
var ab={},bb={},cb={},db,fb=(a,b,c)=>{function d(k){k=c(k);if(k.length!==a.length)throw new db("Mismatched type converter count");for(var p=0;p<a.length;++p)eb(a[p],k[p])}a.forEach(k=>cb[k]=b);var f=Array(b.length),h=[],n=0;b.forEach((k,p)=>{bb.hasOwnProperty(k)?f[p]=bb[k]:(h.push(k),ab.hasOwnProperty(k)||(ab[k]=[]),ab[k].push(()=>{f[p]=bb[k];++n;n===h.length&&d(f)}))});0===h.length&&d(f)},gb,H=a=>{for(var b="";y[a];)b+=gb[y[a++]];return b},I;
|
||||
function hb(a,b,c={}){var d=b.name;if(!a)throw new I(`type "${d}" must have a positive integer typeid pointer`);if(bb.hasOwnProperty(a)){if(c.Re)return;throw new I(`Cannot register type '${d}' twice`);}bb[a]=b;delete cb[a];ab.hasOwnProperty(a)&&(b=ab[a],delete ab[a],b.forEach(f=>f()))}function eb(a,b,c={}){return hb(a,b,c)}
|
||||
var ib=a=>{throw new I(a.Ed.Kd.Id.name+" instance already deleted");},jb=!1,kb=()=>{},lb=(a,b,c)=>{if(b===c)return a;if(void 0===c.Nd)return null;a=lb(a,b,c.Nd);return null===a?null:c.Je(a)},mb={},nb={},rb=(a,b)=>{if(void 0===b)throw new I("ptr should not be undefined");for(;a.Nd;)b=a.ee(b),a=a.Nd;return nb[b]},tb=(a,b)=>{if(!b.Kd||!b.Hd)throw new db("makeClassHandle requires ptr and ptrType");if(!!b.Od!==!!b.Ld)throw new db("Both smartPtrType and smartPtr must be specified");b.count={value:1};return sb(Object.create(a,
|
||||
{Ed:{value:b,writable:!0}}))},sb=a=>{if("undefined"===typeof FinalizationRegistry)return sb=b=>b,a;jb=new FinalizationRegistry(b=>{b=b.Ed;--b.count.value;0===b.count.value&&(b.Ld?b.Od.Ud(b.Ld):b.Kd.Id.Ud(b.Hd))});sb=b=>{var c=b.Ed;c.Ld&&jb.register(b,{Ed:c},b);return b};kb=b=>{jb.unregister(b)};return sb(a)},ub=[];function vb(){}
|
||||
var wb=(a,b)=>Object.defineProperty(b,"name",{value:a}),xb=(a,b,c)=>{if(void 0===a[b].Md){var d=a[b];a[b]=function(...f){if(!a[b].Md.hasOwnProperty(f.length))throw new I(`Function '${c}' called with an invalid number of arguments (${f.length}) - expects one of (${a[b].Md})!`);return a[b].Md[f.length].apply(this,f)};a[b].Md=[];a[b].Md[d.Vd]=d}},yb=(a,b,c)=>{if(q.hasOwnProperty(a)){if(void 0===c||void 0!==q[a].Md&&void 0!==q[a].Md[c])throw new I(`Cannot register public name '${a}' twice`);xb(q,a,a);
|
||||
if(q[a].Md.hasOwnProperty(c))throw new I(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`);q[a].Md[c]=b}else q[a]=b,q[a].Vd=c},zb=a=>{a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?`_${a}`:a};function Ab(a,b,c,d,f,h,n,k){this.name=a;this.constructor=b;this.Zd=c;this.Ud=d;this.Nd=f;this.Me=h;this.ee=n;this.Je=k;this.Ue=[]}
|
||||
var Bb=(a,b,c)=>{for(;b!==c;){if(!b.ee)throw new I(`Expected null or instance of ${c.name}, got an instance of ${b.name}`);a=b.ee(a);b=b.Nd}return a};function Cb(a,b){if(null===b){if(this.qe)throw new I(`null is not a valid ${this.name}`);return 0}if(!b.Ed)throw new I(`Cannot pass "${Db(b)}" as a ${this.name}`);if(!b.Ed.Hd)throw new I(`Cannot pass deleted object as a pointer of type ${this.name}`);return Bb(b.Ed.Hd,b.Ed.Kd.Id,this.Id)}
|
||||
function Eb(a,b){if(null===b){if(this.qe)throw new I(`null is not a valid ${this.name}`);if(this.je){var c=this.re();null!==a&&a.push(this.Ud,c);return c}return 0}if(!b||!b.Ed)throw new I(`Cannot pass "${Db(b)}" as a ${this.name}`);if(!b.Ed.Hd)throw new I(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.ie&&b.Ed.Kd.ie)throw new I(`Cannot convert argument of type ${b.Ed.Od?b.Ed.Od.name:b.Ed.Kd.name} to parameter type ${this.name}`);c=Bb(b.Ed.Hd,b.Ed.Kd.Id,this.Id);if(this.je){if(void 0===
|
||||
b.Ed.Ld)throw new I("Passing raw pointer to smart pointer is illegal");switch(this.Ze){case 0:if(b.Ed.Od===this)c=b.Ed.Ld;else throw new I(`Cannot convert argument of type ${b.Ed.Od?b.Ed.Od.name:b.Ed.Kd.name} to parameter type ${this.name}`);break;case 1:c=b.Ed.Ld;break;case 2:if(b.Ed.Od===this)c=b.Ed.Ld;else{var d=b.clone();c=this.Ve(c,Fb(()=>d["delete"]()));null!==a&&a.push(this.Ud,c)}break;default:throw new I("Unsupporting sharing policy");}}return c}
|
||||
function Gb(a,b){if(null===b){if(this.qe)throw new I(`null is not a valid ${this.name}`);return 0}if(!b.Ed)throw new I(`Cannot pass "${Db(b)}" as a ${this.name}`);if(!b.Ed.Hd)throw new I(`Cannot pass deleted object as a pointer of type ${this.name}`);if(b.Ed.Kd.ie)throw new I(`Cannot convert argument of type ${b.Ed.Kd.name} to parameter type ${this.name}`);return Bb(b.Ed.Hd,b.Ed.Kd.Id,this.Id)}
|
||||
function Hb(a,b,c,d,f,h,n,k,p,t,v){this.name=a;this.Id=b;this.qe=c;this.ie=d;this.je=f;this.Te=h;this.Ze=n;this.ye=k;this.re=p;this.Ve=t;this.Ud=v;f||void 0!==b.Nd?this.toWireType=Eb:(this.toWireType=d?Cb:Gb,this.Rd=null)}
|
||||
var Ib=(a,b,c)=>{if(!q.hasOwnProperty(a))throw new db("Replacing nonexistent public symbol");void 0!==q[a].Md&&void 0!==c?q[a].Md[c]=b:(q[a]=b,q[a].Vd=c)},K,Jb=(a,b,c=[])=>{a.includes("j")?(a=a.replace(/p/g,"i"),b=(0,q["dynCall_"+a])(b,...c)):b=K.get(b)(...c);return b},Kb=(a,b)=>(...c)=>Jb(a,b,c),N=(a,b)=>{a=H(a);var c=a.includes("j")?Kb(a,b):K.get(b);if("function"!=typeof c)throw new I(`unknown function pointer with signature ${a}: ${b}`);return c},Lb,Ub=a=>{a=Mb(a);var b=H(a);Tb(a);return b},Vb=
|
||||
(a,b)=>{function c(h){f[h]||bb[h]||(cb[h]?cb[h].forEach(c):(d.push(h),f[h]=!0))}var d=[],f={};b.forEach(c);throw new Lb(`${a}: `+d.map(Ub).join([", "]));};function Wb(a){for(var b=1;b<a.length;++b)if(null!==a[b]&&void 0===a[b].Rd)return!0;return!1}
|
||||
function Xb(a,b,c,d,f){var h=b.length;if(2>h)throw new I("argTypes array size mismatch! Must at least get return value and 'this' types!");var n=null!==b[1]&&null!==c,k=Wb(b),p="void"!==b[0].name,t=h-2,v=Array(t),z=[],A=[];return wb(a,function(...E){A.length=0;z.length=n?2:1;z[0]=f;if(n){var M=b[1].toWireType(A,this);z[1]=M}for(var L=0;L<t;++L)v[L]=b[L+2].toWireType(A,E[L]),z.push(v[L]);E=d(...z);if(k)Za(A);else for(L=n?1:2;L<b.length;L++){var V=1===L?M:v[L-2];null!==b[L].Rd&&b[L].Rd(V)}M=p?b[0].fromWireType(E):
|
||||
void 0;return M})}
|
||||
var Yb=(a,b)=>{for(var c=[],d=0;d<a;d++)c.push(D[b+4*d>>2]);return c},Zb=a=>{a=a.trim();const b=a.indexOf("(");return-1!==b?a.substr(0,b):a},$b=[],ac=[],bc=a=>{9<a&&0===--ac[a+1]&&(ac[a]=void 0,$b.push(a))},cc=a=>{if(!a)throw new I("Cannot use deleted val. handle = "+a);return ac[a]},Fb=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const b=$b.pop()||ac.length;ac[b]=a;ac[b+1]=1;return b}},dc={name:"emscripten::val",fromWireType:a=>{var b=cc(a);bc(a);
|
||||
return b},toWireType:(a,b)=>Fb(b),Pd:8,readValueFromPointer:$a,Rd:null},ec=(a,b,c)=>{switch(b){case 1:return c?function(d){return this.fromWireType(wa[d])}:function(d){return this.fromWireType(y[d])};case 2:return c?function(d){return this.fromWireType(xa[d>>1])}:function(d){return this.fromWireType(za[d>>1])};case 4:return c?function(d){return this.fromWireType(C[d>>2])}:function(d){return this.fromWireType(D[d>>2])};default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},fc=(a,b)=>
|
||||
{var c=bb[a];if(void 0===c)throw a=`${b} has unknown type ${Ub(a)}`,new I(a);return c},Db=a=>{if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a},gc=(a,b)=>{switch(b){case 4:return function(c){return this.fromWireType(G[c>>2])};case 8:return function(c){return this.fromWireType(Aa[c>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},hc=(a,b,c)=>{switch(b){case 1:return c?d=>wa[d]:d=>y[d];case 2:return c?d=>xa[d>>1]:d=>za[d>>
|
||||
1];case 4:return c?d=>C[d>>2]:d=>D[d>>2];default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},ic=(a,b,c)=>{var d=y;if(!(0<c))return 0;var f=b;c=b+c-1;for(var h=0;h<a.length;++h){var n=a.charCodeAt(h);if(55296<=n&&57343>=n){var k=a.charCodeAt(++h);n=65536+((n&1023)<<10)|k&1023}if(127>=n){if(b>=c)break;d[b++]=n}else{if(2047>=n){if(b+1>=c)break;d[b++]=192|n>>6}else{if(65535>=n){if(b+2>=c)break;d[b++]=224|n>>12}else{if(b+3>=c)break;d[b++]=240|n>>18;d[b++]=128|n>>12&63}d[b++]=128|n>>6&
|
||||
63}d[b++]=128|n&63}}d[b]=0;return b-f},jc=a=>{for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},kc="undefined"!=typeof TextDecoder?new TextDecoder:void 0,lc=(a,b=0,c=NaN)=>{var d=b+c;for(c=b;a[c]&&!(c>=d);)++c;if(16<c-b&&a.buffer&&kc)return kc.decode(a.subarray(b,c));for(d="";b<c;){var f=a[b++];if(f&128){var h=a[b++]&63;if(192==(f&224))d+=String.fromCharCode((f&31)<<6|h);else{var n=a[b++]&63;f=224==(f&240)?(f&15)<<12|h<<6|n:
|
||||
(f&7)<<18|h<<12|n<<6|a[b++]&63;65536>f?d+=String.fromCharCode(f):(f-=65536,d+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else d+=String.fromCharCode(f)}return d},mc="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,nc=(a,b)=>{var c=a>>1;for(var d=c+b/2;!(c>=d)&&za[c];)++c;c<<=1;if(32<c-a&&mc)return mc.decode(y.subarray(a,c));c="";for(d=0;!(d>=b/2);++d){var f=xa[a+2*d>>1];if(0==f)break;c+=String.fromCharCode(f)}return c},oc=(a,b,c)=>{c??=2147483647;if(2>c)return 0;c-=2;var d=
|
||||
b;c=c<2*a.length?c/2:a.length;for(var f=0;f<c;++f)xa[b>>1]=a.charCodeAt(f),b+=2;xa[b>>1]=0;return b-d},pc=a=>2*a.length,qc=(a,b)=>{for(var c=0,d="";!(c>=b/4);){var f=C[a+4*c>>2];if(0==f)break;++c;65536<=f?(f-=65536,d+=String.fromCharCode(55296|f>>10,56320|f&1023)):d+=String.fromCharCode(f)}return d},rc=(a,b,c)=>{c??=2147483647;if(4>c)return 0;var d=b;c=d+c-4;for(var f=0;f<a.length;++f){var h=a.charCodeAt(f);if(55296<=h&&57343>=h){var n=a.charCodeAt(++f);h=65536+((h&1023)<<10)|n&1023}C[b>>2]=h;b+=
|
||||
4;if(b+4>c)break}C[b>>2]=0;return b-d},sc=a=>{for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&++c;b+=4}return b},tc=(a,b,c)=>{var d=[];a=a.toWireType(d,c);d.length&&(D[b>>2]=Fb(d));return a},uc=[],vc={},wc=a=>{var b=vc[a];return void 0===b?H(a):b},xc=()=>{function a(b){b.$$$embind_global$$$=b;var c="object"==typeof $$$embind_global$$$&&b.$$$embind_global$$$==b;c||delete b.$$$embind_global$$$;return c}if("object"==typeof globalThis)return globalThis;if("object"==typeof $$$embind_global$$$)return $$$embind_global$$$;
|
||||
"object"==typeof global&&a(global)?$$$embind_global$$$=global:"object"==typeof self&&a(self)&&($$$embind_global$$$=self);if("object"==typeof $$$embind_global$$$)return $$$embind_global$$$;throw Error("unable to get global object.");},yc=a=>{var b=uc.length;uc.push(a);return b},zc=(a,b)=>{for(var c=Array(a),d=0;d<a;++d)c[d]=fc(D[b+4*d>>2],"parameter "+d);return c},Ac=Reflect.construct,O,Bc=a=>{var b=a.getExtension("ANGLE_instanced_arrays");b&&(a.vertexAttribDivisor=(c,d)=>b.vertexAttribDivisorANGLE(c,
|
||||
d),a.drawArraysInstanced=(c,d,f,h)=>b.drawArraysInstancedANGLE(c,d,f,h),a.drawElementsInstanced=(c,d,f,h,n)=>b.drawElementsInstancedANGLE(c,d,f,h,n))},Cc=a=>{var b=a.getExtension("OES_vertex_array_object");b&&(a.createVertexArray=()=>b.createVertexArrayOES(),a.deleteVertexArray=c=>b.deleteVertexArrayOES(c),a.bindVertexArray=c=>b.bindVertexArrayOES(c),a.isVertexArray=c=>b.isVertexArrayOES(c))},Dc=a=>{var b=a.getExtension("WEBGL_draw_buffers");b&&(a.drawBuffers=(c,d)=>b.drawBuffersWEBGL(c,d))},Ec=a=>
|
||||
{var b="ANGLE_instanced_arrays EXT_blend_minmax EXT_disjoint_timer_query EXT_frag_depth EXT_shader_texture_lod EXT_sRGB OES_element_index_uint OES_fbo_render_mipmap OES_standard_derivatives OES_texture_float OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_depth_texture WEBGL_draw_buffers EXT_color_buffer_float EXT_conservative_depth EXT_disjoint_timer_query_webgl2 EXT_texture_norm16 NV_shader_noperspective_interpolation WEBGL_clip_cull_distance EXT_clip_control EXT_color_buffer_half_float EXT_depth_clamp EXT_float_blend EXT_polygon_offset_clamp EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic KHR_parallel_shader_compile OES_texture_float_linear WEBGL_blend_func_extended WEBGL_compressed_texture_astc WEBGL_compressed_texture_etc WEBGL_compressed_texture_etc1 WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context WEBGL_multi_draw WEBGL_polygon_mode".split(" ");
|
||||
return(a.getSupportedExtensions()||[]).filter(c=>b.includes(c))},Fc=1,Gc=[],Hc=[],Ic=[],Jc=[],ia=[],Kc=[],Lc=[],la=[],Q=[],Mc=[],Nc=[],Pc={},Qc={},Rc=4,Sc=0,ha=a=>{for(var b=Fc++,c=a.length;c<b;c++)a[c]=null;return b},Tc=(a,b,c,d)=>{for(var f=0;f<a;f++){var h=O[c](),n=h&&ha(d);h?(h.name=n,d[n]=h):U||=1282;C[b+4*f>>2]=n}},ja=(a,b)=>{a.te||(a.te=a.getContext,a.getContext=function(d,f){f=a.te(d,f);return"webgl"==d==f instanceof WebGLRenderingContext?f:null});var c=1<b.majorVersion?a.getContext("webgl2",
|
||||
b):a.getContext("webgl",b);return c?Uc(c,b):0},Uc=(a,b)=>{var c=ha(la),d={handle:c,attributes:b,version:b.majorVersion,Sd:a};a.canvas&&(a.canvas.Be=d);la[c]=d;("undefined"==typeof b.Ke||b.Ke)&&Vc(d);return c},ka=a=>{x=la[a];q.$e=O=x?.Sd;return!(a&&!O)},Vc=a=>{a||=x;if(!a.Se){a.Se=!0;var b=a.Sd;b.df=b.getExtension("WEBGL_multi_draw");b.bf=b.getExtension("EXT_polygon_offset_clamp");b.af=b.getExtension("EXT_clip_control");b.ff=b.getExtension("WEBGL_polygon_mode");Bc(b);Cc(b);Dc(b);b.ve=b.getExtension("WEBGL_draw_instanced_base_vertex_base_instance");
|
||||
b.xe=b.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance");2<=a.version&&(b.Td=b.getExtension("EXT_disjoint_timer_query_webgl2"));if(2>a.version||!b.Td)b.Td=b.getExtension("EXT_disjoint_timer_query");Ec(b).forEach(c=>{c.includes("lose_context")||c.includes("debug")||b.getExtension(c)})}},x,U,Wc=(a,b)=>{O.bindFramebuffer(a,Ic[b])},Xc=a=>{O.bindVertexArray(Lc[a])},Yc=a=>O.clear(a),Zc=(a,b,c,d)=>O.clearColor(a,b,c,d),$c=a=>O.clearStencil(a),ad=(a,b)=>{for(var c=0;c<a;c++){var d=C[b+
|
||||
4*c>>2];O.deleteVertexArray(Lc[d]);Lc[d]=null}},bd=[],cd=(a,b)=>{Tc(a,b,"createVertexArray",Lc)};function dd(){var a=Ec(O);return a=a.concat(a.map(b=>"GL_"+b))}
|
||||
var ed=(a,b,c)=>{if(b){var d=void 0;switch(a){case 36346:d=1;break;case 36344:0!=c&&1!=c&&(U||=1280);return;case 34814:case 36345:d=0;break;case 34466:var f=O.getParameter(34467);d=f?f.length:0;break;case 33309:if(2>x.version){U||=1282;return}d=dd().length;break;case 33307:case 33308:if(2>x.version){U||=1280;return}d=33307==a?3:0}if(void 0===d)switch(f=O.getParameter(a),typeof f){case "number":d=f;break;case "boolean":d=f?1:0;break;case "string":U||=1280;return;case "object":if(null===f)switch(a){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:d=
|
||||
0;break;default:U||=1280;return}else{if(f instanceof Float32Array||f instanceof Uint32Array||f instanceof Int32Array||f instanceof Array){for(a=0;a<f.length;++a)switch(c){case 0:C[b+4*a>>2]=f[a];break;case 2:G[b+4*a>>2]=f[a];break;case 4:wa[b+a]=f[a]?1:0}return}try{d=f.name|0}catch(h){U||=1280;ta(`GL_INVALID_ENUM in glGet${c}v: Unknown object returned from WebGL getParameter(${a})! (error: ${h})`);return}}break;default:U||=1280;ta(`GL_INVALID_ENUM in glGet${c}v: Native code calling glGet${c}v(${a}) and it returns ${f} of type ${typeof f}!`);
|
||||
return}switch(c){case 1:c=d;D[b>>2]=c;D[b+4>>2]=(c-D[b>>2])/4294967296;break;case 0:C[b>>2]=d;break;case 2:G[b>>2]=d;break;case 4:wa[b]=d?1:0}}else U||=1281},fd=(a,b)=>ed(a,b,0),gd=(a,b,c)=>{if(c){a=Q[a];b=2>x.version?O.Td.getQueryObjectEXT(a,b):O.getQueryParameter(a,b);var d;"boolean"==typeof b?d=b?1:0:d=b;D[c>>2]=d;D[c+4>>2]=(d-D[c>>2])/4294967296}else U||=1281},jd=a=>{var b=jc(a)+1,c=hd(b);c&&ic(a,c,b);return c},kd=a=>{var b=Pc[a];if(!b){switch(a){case 7939:b=jd(dd().join(" "));break;case 7936:case 7937:case 37445:case 37446:(b=
|
||||
O.getParameter(a))||(U||=1280);b=b?jd(b):0;break;case 7938:b=O.getParameter(7938);var c=`OpenGL ES 2.0 (${b})`;2<=x.version&&(c=`OpenGL ES 3.0 (${b})`);b=jd(c);break;case 35724:b=O.getParameter(35724);c=b.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==c&&(3==c[1].length&&(c[1]+="0"),b=`OpenGL ES GLSL ES ${c[1]} (${b})`);b=jd(b);break;default:U||=1280}Pc[a]=b}return b},ld=(a,b)=>{if(2>x.version)return U||=1282,0;var c=Qc[a];if(c)return 0>b||b>=c.length?(U||=1281,0):c[b];switch(a){case 7939:return c=
|
||||
dd().map(jd),c=Qc[a]=c,0>b||b>=c.length?(U||=1281,0):c[b];default:return U||=1280,0}},md=a=>"]"==a.slice(-1)&&a.lastIndexOf("["),nd=a=>{a-=5120;return 0==a?wa:1==a?y:2==a?xa:4==a?C:6==a?G:5==a||28922==a||28520==a||30779==a||30782==a?D:za},od=(a,b,c,d,f)=>{a=nd(a);b=d*((Sc||c)*({5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[b-6402]||1)*a.BYTES_PER_ELEMENT+Rc-1&-Rc);return a.subarray(f>>>31-Math.clz32(a.BYTES_PER_ELEMENT),f+b>>>31-Math.clz32(a.BYTES_PER_ELEMENT))},X=a=>{var b=O.Ie;if(b){var c=
|
||||
b.de[a];"number"==typeof c&&(b.de[a]=c=O.getUniformLocation(b,b.ze[a]+(0<c?`[${c}]`:"")));return c}U||=1282},pd=[],qd=[],rd={},td=()=>{if(!sd){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:"./this.program"},b;for(b in rd)void 0===rd[b]?delete a[b]:a[b]=rd[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);sd=c}return sd},sd,ud=[null,[],[]];
|
||||
db=q.InternalError=class extends Error{constructor(a){super(a);this.name="InternalError"}};for(var vd=Array(256),wd=0;256>wd;++wd)vd[wd]=String.fromCharCode(wd);gb=vd;I=q.BindingError=class extends Error{constructor(a){super(a);this.name="BindingError"}};
|
||||
Object.assign(vb.prototype,{isAliasOf:function(a){if(!(this instanceof vb&&a instanceof vb))return!1;var b=this.Ed.Kd.Id,c=this.Ed.Hd;a.Ed=a.Ed;var d=a.Ed.Kd.Id;for(a=a.Ed.Hd;b.Nd;)c=b.ee(c),b=b.Nd;for(;d.Nd;)a=d.ee(a),d=d.Nd;return b===d&&c===a},clone:function(){this.Ed.Hd||ib(this);if(this.Ed.ce)return this.Ed.count.value+=1,this;var a=sb,b=Object,c=b.create,d=Object.getPrototypeOf(this),f=this.Ed;a=a(c.call(b,d,{Ed:{value:{count:f.count,be:f.be,ce:f.ce,Hd:f.Hd,Kd:f.Kd,Ld:f.Ld,Od:f.Od}}}));a.Ed.count.value+=
|
||||
1;a.Ed.be=!1;return a},["delete"](){this.Ed.Hd||ib(this);if(this.Ed.be&&!this.Ed.ce)throw new I("Object already scheduled for deletion");kb(this);var a=this.Ed;--a.count.value;0===a.count.value&&(a.Ld?a.Od.Ud(a.Ld):a.Kd.Id.Ud(a.Hd));this.Ed.ce||(this.Ed.Ld=void 0,this.Ed.Hd=void 0)},isDeleted:function(){return!this.Ed.Hd},deleteLater:function(){this.Ed.Hd||ib(this);if(this.Ed.be&&!this.Ed.ce)throw new I("Object already scheduled for deletion");ub.push(this);this.Ed.be=!0;return this}});
|
||||
Object.assign(Hb.prototype,{Ne(a){this.ye&&(a=this.ye(a));return a},ue(a){this.Ud?.(a)},Pd:8,readValueFromPointer:$a,fromWireType:function(a){function b(){return this.je?tb(this.Id.Zd,{Kd:this.Te,Hd:c,Od:this,Ld:a}):tb(this.Id.Zd,{Kd:this,Hd:a})}var c=this.Ne(a);if(!c)return this.ue(a),null;var d=rb(this.Id,c);if(void 0!==d){if(0===d.Ed.count.value)return d.Ed.Hd=c,d.Ed.Ld=a,d.clone();d=d.clone();this.ue(a);return d}d=this.Id.Me(c);d=mb[d];if(!d)return b.call(this);d=this.ie?d.He:d.pointerType;var f=
|
||||
lb(c,this.Id,d.Id);return null===f?b.call(this):this.je?tb(d.Id.Zd,{Kd:d,Hd:f,Od:this,Ld:a}):tb(d.Id.Zd,{Kd:d,Hd:f})}});Lb=q.UnboundTypeError=((a,b)=>{var c=wb(b,function(d){this.name=b;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+"\n"+d.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(a.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`};return c})(Error,"UnboundTypeError");
|
||||
ac.push(0,1,void 0,1,null,1,!0,1,!1,1);q.count_emval_handles=()=>ac.length/2-5-$b.length;for(var xd=0;32>xd;++xd)bd.push(Array(xd));var yd=new Float32Array(288);for(xd=0;288>=xd;++xd)pd[xd]=yd.subarray(0,xd);var zd=new Int32Array(288);for(xd=0;288>=xd;++xd)qd[xd]=zd.subarray(0,xd);
|
||||
var Md={z:(a,b,c)=>{var d=new Ta(a);D[d.Hd+16>>2]=0;D[d.Hd+4>>2]=b;D[d.Hd+8>>2]=c;Ua=a;Xa++;throw Ua;},dd:()=>{Ka("")},C:a=>{var b=Ya[a];delete Ya[a];var c=b.re,d=b.Ud,f=b.we,h=f.map(n=>n.Qe).concat(f.map(n=>n.Xe));fb([a],h,n=>{var k={};f.forEach((p,t)=>{var v=n[t],z=p.Oe,A=p.Pe,E=n[t+f.length],M=p.We,L=p.Ye;k[p.Le]={read:V=>v.fromWireType(z(A,V)),write:(V,fa)=>{var S=[];M(L,V,E.toWireType(S,fa));Za(S)}}});return[{name:b.name,fromWireType:p=>{var t={},v;for(v in k)t[v]=k[v].read(p);d(p);return t},
|
||||
toWireType:(p,t)=>{for(var v in k)if(!(v in t))throw new TypeError(`Missing field: "${v}"`);var z=c();for(v in k)k[v].write(z,t[v]);null!==p&&p.push(d,z);return z},Pd:8,readValueFromPointer:$a,Rd:d}]})},N:()=>{},cd:(a,b,c,d)=>{b=H(b);eb(a,{name:b,fromWireType:function(f){return!!f},toWireType:function(f,h){return h?c:d},Pd:8,readValueFromPointer:function(f){return this.fromWireType(y[f])},Rd:null})},d:(a,b,c,d,f,h,n,k,p,t,v,z,A)=>{v=H(v);h=N(f,h);k&&=N(n,k);t&&=N(p,t);A=N(z,A);var E=zb(v);yb(E,function(){Vb(`Cannot construct ${v} due to unbound types`,
|
||||
[d])});fb([a,b,c],d?[d]:[],M=>{M=M[0];if(d){var L=M.Id;var V=L.Zd}else V=vb.prototype;M=wb(v,function(...ya){if(Object.getPrototypeOf(this)!==fa)throw new I("Use 'new' to construct "+v);if(void 0===S.Wd)throw new I(v+" has no accessible constructor");var W=S.Wd[ya.length];if(void 0===W)throw new I(`Tried to invoke ctor of ${v} with invalid number of parameters (${ya.length}) - expected (${Object.keys(S.Wd).toString()}) parameters instead!`);return W.apply(this,ya)});var fa=Object.create(V,{constructor:{value:M}});
|
||||
M.prototype=fa;var S=new Ab(v,M,fa,A,L,h,k,t);if(S.Nd){var Y;(Y=S.Nd).fe??(Y.fe=[]);S.Nd.fe.push(S)}L=new Hb(v,S,!0,!1,!1);Y=new Hb(v+"*",S,!1,!1,!1);V=new Hb(v+" const*",S,!1,!0,!1);mb[a]={pointerType:Y,He:V};Ib(E,M);return[L,Y,V]})},c:(a,b,c,d,f,h,n)=>{var k=Yb(c,d);b=H(b);b=Zb(b);h=N(f,h);fb([],[a],p=>{function t(){Vb(`Cannot call ${v} due to unbound types`,k)}p=p[0];var v=`${p.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);var z=p.Id.constructor;void 0===z[b]?(t.Vd=c-1,z[b]=t):(xb(z,
|
||||
b,v),z[b].Md[c-1]=t);fb([],k,A=>{A=[A[0],null].concat(A.slice(1));A=Xb(v,A,null,h,n);void 0===z[b].Md?(A.Vd=c-1,z[b]=A):z[b].Md[c-1]=A;if(p.Id.fe)for(const E of p.Id.fe)E.constructor.hasOwnProperty(b)||(E.constructor[b]=A);return[]});return[]})},x:(a,b,c,d,f,h)=>{var n=Yb(b,c);f=N(d,f);fb([],[a],k=>{k=k[0];var p=`constructor ${k.name}`;void 0===k.Id.Wd&&(k.Id.Wd=[]);if(void 0!==k.Id.Wd[b-1])throw new I(`Cannot register multiple constructors with identical number of parameters (${b-1}) for class '${k.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);
|
||||
k.Id.Wd[b-1]=()=>{Vb(`Cannot construct ${k.name} due to unbound types`,n)};fb([],n,t=>{t.splice(1,0,null);k.Id.Wd[b-1]=Xb(p,t,null,f,h);return[]});return[]})},a:(a,b,c,d,f,h,n,k)=>{var p=Yb(c,d);b=H(b);b=Zb(b);h=N(f,h);fb([],[a],t=>{function v(){Vb(`Cannot call ${z} due to unbound types`,p)}t=t[0];var z=`${t.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);k&&t.Id.Ue.push(b);var A=t.Id.Zd,E=A[b];void 0===E||void 0===E.Md&&E.className!==t.name&&E.Vd===c-2?(v.Vd=c-2,v.className=t.name,A[b]=
|
||||
v):(xb(A,b,z),A[b].Md[c-2]=v);fb([],p,M=>{M=Xb(z,M,t,h,n);void 0===A[b].Md?(M.Vd=c-2,A[b]=M):A[b].Md[c-2]=M;return[]});return[]})},q:(a,b,c)=>{a=H(a);fb([],[b],d=>{d=d[0];q[a]=d.fromWireType(c);return[]})},bd:a=>eb(a,dc),h:(a,b,c,d)=>{function f(){}b=H(b);f.values={};eb(a,{name:b,constructor:f,fromWireType:function(h){return this.constructor.values[h]},toWireType:(h,n)=>n.value,Pd:8,readValueFromPointer:ec(b,c,d),Rd:null});yb(b,f)},b:(a,b,c)=>{var d=fc(a,"enum");b=H(b);a=d.constructor;d=Object.create(d.constructor.prototype,
|
||||
{value:{value:c},constructor:{value:wb(`${d.name}_${b}`,function(){})}});a.values[c]=d;a[b]=d},L:(a,b,c)=>{b=H(b);eb(a,{name:b,fromWireType:d=>d,toWireType:(d,f)=>f,Pd:8,readValueFromPointer:gc(b,c),Rd:null})},o:(a,b,c,d,f,h)=>{var n=Yb(b,c);a=H(a);a=Zb(a);f=N(d,f);yb(a,function(){Vb(`Cannot call ${a} due to unbound types`,n)},b-1);fb([],n,k=>{k=[k[0],null].concat(k.slice(1));Ib(a,Xb(a,k,null,f,h),b-1);return[]})},w:(a,b,c,d,f)=>{b=H(b);-1===f&&(f=4294967295);f=k=>k;if(0===d){var h=32-8*c;f=k=>k<<
|
||||
h>>>h}var n=b.includes("unsigned")?function(k,p){return p>>>0}:function(k,p){return p};eb(a,{name:b,fromWireType:f,toWireType:n,Pd:8,readValueFromPointer:hc(b,c,0!==d),Rd:null})},i:(a,b,c)=>{function d(h){return new f(wa.buffer,D[h+4>>2],D[h>>2])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=H(c);eb(a,{name:c,fromWireType:d,Pd:8,readValueFromPointer:d},{Re:!0})},m:(a,b,c,d,f,h,n,k,p,t,v,z)=>{c=H(c);h=N(f,h);k=N(n,k);t=N(p,t);z=N(v,z);fb([a],
|
||||
[b],A=>{A=A[0];return[new Hb(c,A.Id,!1,!1,!0,A,d,h,k,t,z)]})},K:(a,b)=>{b=H(b);var c="std::string"===b;eb(a,{name:b,fromWireType:function(d){var f=D[d>>2],h=d+4;if(c)for(var n=h,k=0;k<=f;++k){var p=h+k;if(k==f||0==y[p]){n=n?lc(y,n,p-n):"";if(void 0===t)var t=n;else t+=String.fromCharCode(0),t+=n;n=p+1}}else{t=Array(f);for(k=0;k<f;++k)t[k]=String.fromCharCode(y[h+k]);t=t.join("")}Tb(d);return t},toWireType:function(d,f){f instanceof ArrayBuffer&&(f=new Uint8Array(f));var h="string"==typeof f;if(!(h||
|
||||
f instanceof Uint8Array||f instanceof Uint8ClampedArray||f instanceof Int8Array))throw new I("Cannot pass non-string to std::string");var n=c&&h?jc(f):f.length;var k=hd(4+n+1),p=k+4;D[k>>2]=n;if(c&&h)ic(f,p,n+1);else if(h)for(h=0;h<n;++h){var t=f.charCodeAt(h);if(255<t)throw Tb(p),new I("String has UTF-16 code units that do not fit in 8 bits");y[p+h]=t}else for(h=0;h<n;++h)y[p+h]=f[h];null!==d&&d.push(Tb,k);return k},Pd:8,readValueFromPointer:$a,Rd(d){Tb(d)}})},G:(a,b,c)=>{c=H(c);if(2===b){var d=
|
||||
nc;var f=oc;var h=pc;var n=k=>za[k>>1]}else 4===b&&(d=qc,f=rc,h=sc,n=k=>D[k>>2]);eb(a,{name:c,fromWireType:k=>{for(var p=D[k>>2],t,v=k+4,z=0;z<=p;++z){var A=k+4+z*b;if(z==p||0==n(A))v=d(v,A-v),void 0===t?t=v:(t+=String.fromCharCode(0),t+=v),v=A+b}Tb(k);return t},toWireType:(k,p)=>{if("string"!=typeof p)throw new I(`Cannot pass non-string to C++ string type ${c}`);var t=h(p),v=hd(4+t+b);D[v>>2]=t/b;f(p,v+4,t+b);null!==k&&k.push(Tb,v);return v},Pd:8,readValueFromPointer:$a,Rd(k){Tb(k)}})},B:(a,b,c,
|
||||
d,f,h)=>{Ya[a]={name:H(b),re:N(c,d),Ud:N(f,h),we:[]}},l:(a,b,c,d,f,h,n,k,p,t)=>{Ya[a].we.push({Le:H(b),Qe:c,Oe:N(d,f),Pe:h,Xe:n,We:N(k,p),Ye:t})},ad:(a,b)=>{b=H(b);eb(a,{cf:!0,name:b,Pd:0,fromWireType:()=>{},toWireType:()=>{}})},$c:()=>1,_c:()=>{throw Infinity;},Zc:(a,b,c)=>{a=cc(a);b=fc(b,"emval::as");return tc(b,c,a)},Yc:(a,b,c,d)=>{a=uc[a];b=cc(b);return a(null,b,c,d)},r:(a,b,c,d,f)=>{a=uc[a];b=cc(b);c=wc(c);return a(b,b[c],d,f)},g:bc,Xc:a=>{if(0===a)return Fb(xc());a=wc(a);return Fb(xc()[a])},
|
||||
p:(a,b,c)=>{var d=zc(a,b),f=d.shift();a--;var h=Array(a);b=`methodCaller<(${d.map(n=>n.name).join(", ")}) => ${f.name}>`;return yc(wb(b,(n,k,p,t)=>{for(var v=0,z=0;z<a;++z)h[z]=d[z].readValueFromPointer(t+v),v+=d[z].Pd;n=1===c?Ac(k,h):k.apply(n,h);return tc(f,p,n)}))},F:a=>{9<a&&(ac[a+1]+=1)},E:()=>Fb([]),y:a=>Fb(wc(a)),Wc:()=>Fb({}),n:a=>{var b=cc(a);Za(b);bc(a)},A:(a,b,c)=>{a=cc(a);b=cc(b);c=cc(c);a[b]=c},k:(a,b)=>{a=fc(a,"_emval_take_value");a=a.readValueFromPointer(b);return Fb(a)},Vc:(a,b,c,
|
||||
d)=>{var f=(new Date).getFullYear(),h=(new Date(f,0,1)).getTimezoneOffset();f=(new Date(f,6,1)).getTimezoneOffset();D[a>>2]=60*Math.max(h,f);C[b>>2]=Number(h!=f);b=n=>{var k=Math.abs(n);return`UTC${0<=n?"-":"+"}${String(Math.floor(k/60)).padStart(2,"0")}${String(k%60).padStart(2,"0")}`};a=b(h);b=b(f);f<h?(ic(a,c,17),ic(b,d,17)):(ic(a,d,17),ic(b,c,17))},Uc:()=>performance.now(),Tc:a=>O.activeTexture(a),Sc:(a,b)=>{O.attachShader(Hc[a],Kc[b])},Rc:(a,b)=>{O.beginQuery(a,Q[b])},Qc:(a,b)=>{O.Td.beginQueryEXT(a,
|
||||
Q[b])},Pc:(a,b,c)=>{O.bindAttribLocation(Hc[a],b,c?lc(y,c):"")},Oc:(a,b)=>{35051==a?O.oe=b:35052==a&&(O.Yd=b);O.bindBuffer(a,Gc[b])},Nc:Wc,Mc:(a,b)=>{O.bindRenderbuffer(a,Jc[b])},Lc:(a,b)=>{O.bindSampler(a,Mc[b])},Kc:(a,b)=>{O.bindTexture(a,ia[b])},Jc:Xc,Ic:Xc,Hc:(a,b,c,d)=>O.blendColor(a,b,c,d),Gc:a=>O.blendEquation(a),Fc:(a,b)=>O.blendFunc(a,b),Ec:(a,b,c,d,f,h,n,k,p,t)=>O.blitFramebuffer(a,b,c,d,f,h,n,k,p,t),Dc:(a,b,c,d)=>{2<=x.version?c&&b?O.bufferData(a,y,d,c,b):O.bufferData(a,b,d):O.bufferData(a,
|
||||
c?y.subarray(c,c+b):b,d)},Cc:(a,b,c,d)=>{2<=x.version?c&&O.bufferSubData(a,b,y,d,c):O.bufferSubData(a,b,y.subarray(d,d+c))},Bc:a=>O.checkFramebufferStatus(a),Ac:Yc,zc:Zc,yc:$c,xc:(a,b,c,d)=>O.clientWaitSync(Nc[a],b,(c>>>0)+4294967296*d),wc:(a,b,c,d)=>{O.colorMask(!!a,!!b,!!c,!!d)},vc:a=>{O.compileShader(Kc[a])},uc:(a,b,c,d,f,h,n,k)=>{2<=x.version?O.Yd||!n?O.compressedTexImage2D(a,b,c,d,f,h,n,k):O.compressedTexImage2D(a,b,c,d,f,h,y,k,n):O.compressedTexImage2D(a,b,c,d,f,h,y.subarray(k,k+n))},tc:(a,
|
||||
b,c,d,f,h,n,k,p)=>{2<=x.version?O.Yd||!k?O.compressedTexSubImage2D(a,b,c,d,f,h,n,k,p):O.compressedTexSubImage2D(a,b,c,d,f,h,n,y,p,k):O.compressedTexSubImage2D(a,b,c,d,f,h,n,y.subarray(p,p+k))},sc:(a,b,c,d,f)=>O.copyBufferSubData(a,b,c,d,f),rc:(a,b,c,d,f,h,n,k)=>O.copyTexSubImage2D(a,b,c,d,f,h,n,k),qc:()=>{var a=ha(Hc),b=O.createProgram();b.name=a;b.me=b.ke=b.le=0;b.se=1;Hc[a]=b;return a},pc:a=>{var b=ha(Kc);Kc[b]=O.createShader(a);return b},oc:a=>O.cullFace(a),nc:(a,b)=>{for(var c=0;c<a;c++){var d=
|
||||
C[b+4*c>>2],f=Gc[d];f&&(O.deleteBuffer(f),f.name=0,Gc[d]=null,d==O.oe&&(O.oe=0),d==O.Yd&&(O.Yd=0))}},mc:(a,b)=>{for(var c=0;c<a;++c){var d=C[b+4*c>>2],f=Ic[d];f&&(O.deleteFramebuffer(f),f.name=0,Ic[d]=null)}},lc:a=>{if(a){var b=Hc[a];b?(O.deleteProgram(b),b.name=0,Hc[a]=null):U||=1281}},kc:(a,b)=>{for(var c=0;c<a;c++){var d=C[b+4*c>>2],f=Q[d];f&&(O.deleteQuery(f),Q[d]=null)}},jc:(a,b)=>{for(var c=0;c<a;c++){var d=C[b+4*c>>2],f=Q[d];f&&(O.Td.deleteQueryEXT(f),Q[d]=null)}},ic:(a,b)=>{for(var c=0;c<
|
||||
a;c++){var d=C[b+4*c>>2],f=Jc[d];f&&(O.deleteRenderbuffer(f),f.name=0,Jc[d]=null)}},hc:(a,b)=>{for(var c=0;c<a;c++){var d=C[b+4*c>>2],f=Mc[d];f&&(O.deleteSampler(f),f.name=0,Mc[d]=null)}},gc:a=>{if(a){var b=Kc[a];b?(O.deleteShader(b),Kc[a]=null):U||=1281}},fc:a=>{if(a){var b=Nc[a];b?(O.deleteSync(b),b.name=0,Nc[a]=null):U||=1281}},ec:(a,b)=>{for(var c=0;c<a;c++){var d=C[b+4*c>>2],f=ia[d];f&&(O.deleteTexture(f),f.name=0,ia[d]=null)}},dc:ad,cc:ad,bc:a=>{O.depthMask(!!a)},ac:a=>O.disable(a),$b:a=>{O.disableVertexAttribArray(a)},
|
||||
_b:(a,b,c)=>{O.drawArrays(a,b,c)},Zb:(a,b,c,d)=>{O.drawArraysInstanced(a,b,c,d)},Yb:(a,b,c,d,f)=>{O.ve.drawArraysInstancedBaseInstanceWEBGL(a,b,c,d,f)},Xb:(a,b)=>{for(var c=bd[a],d=0;d<a;d++)c[d]=C[b+4*d>>2];O.drawBuffers(c)},Wb:(a,b,c,d)=>{O.drawElements(a,b,c,d)},Vb:(a,b,c,d,f)=>{O.drawElementsInstanced(a,b,c,d,f)},Ub:(a,b,c,d,f,h,n)=>{O.ve.drawElementsInstancedBaseVertexBaseInstanceWEBGL(a,b,c,d,f,h,n)},Tb:(a,b,c,d,f,h)=>{O.drawElements(a,d,f,h)},Sb:a=>O.enable(a),Rb:a=>{O.enableVertexAttribArray(a)},
|
||||
Qb:a=>O.endQuery(a),Pb:a=>{O.Td.endQueryEXT(a)},Ob:(a,b)=>(a=O.fenceSync(a,b))?(b=ha(Nc),a.name=b,Nc[b]=a,b):0,Nb:()=>O.finish(),Mb:()=>O.flush(),Lb:(a,b,c,d)=>{O.framebufferRenderbuffer(a,b,c,Jc[d])},Kb:(a,b,c,d,f)=>{O.framebufferTexture2D(a,b,c,ia[d],f)},Jb:a=>O.frontFace(a),Ib:(a,b)=>{Tc(a,b,"createBuffer",Gc)},Hb:(a,b)=>{Tc(a,b,"createFramebuffer",Ic)},Gb:(a,b)=>{Tc(a,b,"createQuery",Q)},Fb:(a,b)=>{for(var c=0;c<a;c++){var d=O.Td.createQueryEXT();if(!d){for(U||=1282;c<a;)C[b+4*c++>>2]=0;break}var f=
|
||||
ha(Q);d.name=f;Q[f]=d;C[b+4*c>>2]=f}},Eb:(a,b)=>{Tc(a,b,"createRenderbuffer",Jc)},Db:(a,b)=>{Tc(a,b,"createSampler",Mc)},Cb:(a,b)=>{Tc(a,b,"createTexture",ia)},Bb:cd,Ab:cd,zb:a=>O.generateMipmap(a),yb:(a,b,c)=>{c?C[c>>2]=O.getBufferParameter(a,b):U||=1281},xb:()=>{var a=O.getError()||U;U=0;return a},wb:(a,b)=>ed(a,b,2),vb:(a,b,c,d)=>{a=O.getFramebufferAttachmentParameter(a,b,c);if(a instanceof WebGLRenderbuffer||a instanceof WebGLTexture)a=a.name|0;C[d>>2]=a},ub:fd,tb:(a,b,c,d)=>{a=O.getProgramInfoLog(Hc[a]);
|
||||
null===a&&(a="(unknown error)");b=0<b&&d?ic(a,d,b):0;c&&(C[c>>2]=b)},sb:(a,b,c)=>{if(c)if(a>=Fc)U||=1281;else if(a=Hc[a],35716==b)a=O.getProgramInfoLog(a),null===a&&(a="(unknown error)"),C[c>>2]=a.length+1;else if(35719==b){if(!a.me){var d=O.getProgramParameter(a,35718);for(b=0;b<d;++b)a.me=Math.max(a.me,O.getActiveUniform(a,b).name.length+1)}C[c>>2]=a.me}else if(35722==b){if(!a.ke)for(d=O.getProgramParameter(a,35721),b=0;b<d;++b)a.ke=Math.max(a.ke,O.getActiveAttrib(a,b).name.length+1);C[c>>2]=a.ke}else if(35381==
|
||||
b){if(!a.le)for(d=O.getProgramParameter(a,35382),b=0;b<d;++b)a.le=Math.max(a.le,O.getActiveUniformBlockName(a,b).length+1);C[c>>2]=a.le}else C[c>>2]=O.getProgramParameter(a,b);else U||=1281},rb:gd,qb:gd,pb:(a,b,c)=>{if(c){a=O.getQueryParameter(Q[a],b);var d;"boolean"==typeof a?d=a?1:0:d=a;C[c>>2]=d}else U||=1281},ob:(a,b,c)=>{if(c){a=O.Td.getQueryObjectEXT(Q[a],b);var d;"boolean"==typeof a?d=a?1:0:d=a;C[c>>2]=d}else U||=1281},nb:(a,b,c)=>{c?C[c>>2]=O.getQuery(a,b):U||=1281},mb:(a,b,c)=>{c?C[c>>2]=
|
||||
O.Td.getQueryEXT(a,b):U||=1281},lb:(a,b,c)=>{c?C[c>>2]=O.getRenderbufferParameter(a,b):U||=1281},kb:(a,b,c,d)=>{a=O.getShaderInfoLog(Kc[a]);null===a&&(a="(unknown error)");b=0<b&&d?ic(a,d,b):0;c&&(C[c>>2]=b)},jb:(a,b,c,d)=>{a=O.getShaderPrecisionFormat(a,b);C[c>>2]=a.rangeMin;C[c+4>>2]=a.rangeMax;C[d>>2]=a.precision},ib:(a,b,c)=>{c?35716==b?(a=O.getShaderInfoLog(Kc[a]),null===a&&(a="(unknown error)"),C[c>>2]=a?a.length+1:0):35720==b?(a=O.getShaderSource(Kc[a]),C[c>>2]=a?a.length+1:0):C[c>>2]=O.getShaderParameter(Kc[a],
|
||||
b):U||=1281},hb:kd,gb:ld,fb:(a,b)=>{b=b?lc(y,b):"";if(a=Hc[a]){var c=a,d=c.de,f=c.Ae,h;if(!d){c.de=d={};c.ze={};var n=O.getProgramParameter(c,35718);for(h=0;h<n;++h){var k=O.getActiveUniform(c,h);var p=k.name;k=k.size;var t=md(p);t=0<t?p.slice(0,t):p;var v=c.se;c.se+=k;f[t]=[k,v];for(p=0;p<k;++p)d[v]=p,c.ze[v++]=t}}c=a.de;d=0;f=b;h=md(b);0<h&&(d=parseInt(b.slice(h+1))>>>0,f=b.slice(0,h));if((f=a.Ae[f])&&d<f[0]&&(d+=f[1],c[d]=c[d]||O.getUniformLocation(a,b)))return d}else U||=1281;return-1},eb:(a,
|
||||
b,c)=>{for(var d=bd[b],f=0;f<b;f++)d[f]=C[c+4*f>>2];O.invalidateFramebuffer(a,d)},db:(a,b,c,d,f,h,n)=>{for(var k=bd[b],p=0;p<b;p++)k[p]=C[c+4*p>>2];O.invalidateSubFramebuffer(a,k,d,f,h,n)},cb:a=>O.isSync(Nc[a]),bb:a=>(a=ia[a])?O.isTexture(a):0,ab:a=>O.lineWidth(a),$a:a=>{a=Hc[a];O.linkProgram(a);a.de=0;a.Ae={}},_a:(a,b,c,d,f,h)=>{O.xe.multiDrawArraysInstancedBaseInstanceWEBGL(a,C,b>>2,C,c>>2,C,d>>2,D,f>>2,h)},Za:(a,b,c,d,f,h,n,k)=>{O.xe.multiDrawElementsInstancedBaseVertexBaseInstanceWEBGL(a,C,b>>
|
||||
2,c,C,d>>2,C,f>>2,C,h>>2,D,n>>2,k)},Ya:(a,b)=>{3317==a?Rc=b:3314==a&&(Sc=b);O.pixelStorei(a,b)},Xa:(a,b)=>{O.Td.queryCounterEXT(Q[a],b)},Wa:a=>O.readBuffer(a),Va:(a,b,c,d,f,h,n)=>{if(2<=x.version)if(O.oe)O.readPixels(a,b,c,d,f,h,n);else{var k=nd(h);n>>>=31-Math.clz32(k.BYTES_PER_ELEMENT);O.readPixels(a,b,c,d,f,h,k,n)}else(k=od(h,f,c,d,n))?O.readPixels(a,b,c,d,f,h,k):U||=1280},Ua:(a,b,c,d)=>O.renderbufferStorage(a,b,c,d),Ta:(a,b,c,d,f)=>O.renderbufferStorageMultisample(a,b,c,d,f),Sa:(a,b,c)=>{O.samplerParameterf(Mc[a],
|
||||
b,c)},Ra:(a,b,c)=>{O.samplerParameteri(Mc[a],b,c)},Qa:(a,b,c)=>{O.samplerParameteri(Mc[a],b,C[c>>2])},Pa:(a,b,c,d)=>O.scissor(a,b,c,d),Oa:(a,b,c,d)=>{for(var f="",h=0;h<b;++h){var n=(n=D[c+4*h>>2])?lc(y,n,d?D[d+4*h>>2]:void 0):"";f+=n}O.shaderSource(Kc[a],f)},Na:(a,b,c)=>O.stencilFunc(a,b,c),Ma:(a,b,c,d)=>O.stencilFuncSeparate(a,b,c,d),La:a=>O.stencilMask(a),Ka:(a,b)=>O.stencilMaskSeparate(a,b),Ja:(a,b,c)=>O.stencilOp(a,b,c),Ia:(a,b,c,d)=>O.stencilOpSeparate(a,b,c,d),Ha:(a,b,c,d,f,h,n,k,p)=>{if(2<=
|
||||
x.version){if(O.Yd){O.texImage2D(a,b,c,d,f,h,n,k,p);return}if(p){var t=nd(k);p>>>=31-Math.clz32(t.BYTES_PER_ELEMENT);O.texImage2D(a,b,c,d,f,h,n,k,t,p);return}}t=p?od(k,n,d,f,p):null;O.texImage2D(a,b,c,d,f,h,n,k,t)},Ga:(a,b,c)=>O.texParameterf(a,b,c),Fa:(a,b,c)=>{O.texParameterf(a,b,G[c>>2])},Ea:(a,b,c)=>O.texParameteri(a,b,c),Da:(a,b,c)=>{O.texParameteri(a,b,C[c>>2])},Ca:(a,b,c,d,f)=>O.texStorage2D(a,b,c,d,f),Ba:(a,b,c,d,f,h,n,k,p)=>{if(2<=x.version){if(O.Yd){O.texSubImage2D(a,b,c,d,f,h,n,k,p);return}if(p){var t=
|
||||
nd(k);O.texSubImage2D(a,b,c,d,f,h,n,k,t,p>>>31-Math.clz32(t.BYTES_PER_ELEMENT));return}}p=p?od(k,n,f,h,p):null;O.texSubImage2D(a,b,c,d,f,h,n,k,p)},Aa:(a,b)=>{O.uniform1f(X(a),b)},za:(a,b,c)=>{if(2<=x.version)b&&O.uniform1fv(X(a),G,c>>2,b);else{if(288>=b)for(var d=pd[b],f=0;f<b;++f)d[f]=G[c+4*f>>2];else d=G.subarray(c>>2,c+4*b>>2);O.uniform1fv(X(a),d)}},ya:(a,b)=>{O.uniform1i(X(a),b)},xa:(a,b,c)=>{if(2<=x.version)b&&O.uniform1iv(X(a),C,c>>2,b);else{if(288>=b)for(var d=qd[b],f=0;f<b;++f)d[f]=C[c+4*
|
||||
f>>2];else d=C.subarray(c>>2,c+4*b>>2);O.uniform1iv(X(a),d)}},wa:(a,b,c)=>{O.uniform2f(X(a),b,c)},va:(a,b,c)=>{if(2<=x.version)b&&O.uniform2fv(X(a),G,c>>2,2*b);else{if(144>=b){b*=2;for(var d=pd[b],f=0;f<b;f+=2)d[f]=G[c+4*f>>2],d[f+1]=G[c+(4*f+4)>>2]}else d=G.subarray(c>>2,c+8*b>>2);O.uniform2fv(X(a),d)}},ua:(a,b,c)=>{O.uniform2i(X(a),b,c)},ta:(a,b,c)=>{if(2<=x.version)b&&O.uniform2iv(X(a),C,c>>2,2*b);else{if(144>=b){b*=2;for(var d=qd[b],f=0;f<b;f+=2)d[f]=C[c+4*f>>2],d[f+1]=C[c+(4*f+4)>>2]}else d=
|
||||
C.subarray(c>>2,c+8*b>>2);O.uniform2iv(X(a),d)}},sa:(a,b,c,d)=>{O.uniform3f(X(a),b,c,d)},ra:(a,b,c)=>{if(2<=x.version)b&&O.uniform3fv(X(a),G,c>>2,3*b);else{if(96>=b){b*=3;for(var d=pd[b],f=0;f<b;f+=3)d[f]=G[c+4*f>>2],d[f+1]=G[c+(4*f+4)>>2],d[f+2]=G[c+(4*f+8)>>2]}else d=G.subarray(c>>2,c+12*b>>2);O.uniform3fv(X(a),d)}},qa:(a,b,c,d)=>{O.uniform3i(X(a),b,c,d)},pa:(a,b,c)=>{if(2<=x.version)b&&O.uniform3iv(X(a),C,c>>2,3*b);else{if(96>=b){b*=3;for(var d=qd[b],f=0;f<b;f+=3)d[f]=C[c+4*f>>2],d[f+1]=C[c+(4*
|
||||
f+4)>>2],d[f+2]=C[c+(4*f+8)>>2]}else d=C.subarray(c>>2,c+12*b>>2);O.uniform3iv(X(a),d)}},oa:(a,b,c,d,f)=>{O.uniform4f(X(a),b,c,d,f)},na:(a,b,c)=>{if(2<=x.version)b&&O.uniform4fv(X(a),G,c>>2,4*b);else{if(72>=b){var d=pd[4*b],f=G;c>>=2;b*=4;for(var h=0;h<b;h+=4){var n=c+h;d[h]=f[n];d[h+1]=f[n+1];d[h+2]=f[n+2];d[h+3]=f[n+3]}}else d=G.subarray(c>>2,c+16*b>>2);O.uniform4fv(X(a),d)}},ma:(a,b,c,d,f)=>{O.uniform4i(X(a),b,c,d,f)},la:(a,b,c)=>{if(2<=x.version)b&&O.uniform4iv(X(a),C,c>>2,4*b);else{if(72>=b){b*=
|
||||
4;for(var d=qd[b],f=0;f<b;f+=4)d[f]=C[c+4*f>>2],d[f+1]=C[c+(4*f+4)>>2],d[f+2]=C[c+(4*f+8)>>2],d[f+3]=C[c+(4*f+12)>>2]}else d=C.subarray(c>>2,c+16*b>>2);O.uniform4iv(X(a),d)}},ka:(a,b,c,d)=>{if(2<=x.version)b&&O.uniformMatrix2fv(X(a),!!c,G,d>>2,4*b);else{if(72>=b){b*=4;for(var f=pd[b],h=0;h<b;h+=4)f[h]=G[d+4*h>>2],f[h+1]=G[d+(4*h+4)>>2],f[h+2]=G[d+(4*h+8)>>2],f[h+3]=G[d+(4*h+12)>>2]}else f=G.subarray(d>>2,d+16*b>>2);O.uniformMatrix2fv(X(a),!!c,f)}},ja:(a,b,c,d)=>{if(2<=x.version)b&&O.uniformMatrix3fv(X(a),
|
||||
!!c,G,d>>2,9*b);else{if(32>=b){b*=9;for(var f=pd[b],h=0;h<b;h+=9)f[h]=G[d+4*h>>2],f[h+1]=G[d+(4*h+4)>>2],f[h+2]=G[d+(4*h+8)>>2],f[h+3]=G[d+(4*h+12)>>2],f[h+4]=G[d+(4*h+16)>>2],f[h+5]=G[d+(4*h+20)>>2],f[h+6]=G[d+(4*h+24)>>2],f[h+7]=G[d+(4*h+28)>>2],f[h+8]=G[d+(4*h+32)>>2]}else f=G.subarray(d>>2,d+36*b>>2);O.uniformMatrix3fv(X(a),!!c,f)}},ia:(a,b,c,d)=>{if(2<=x.version)b&&O.uniformMatrix4fv(X(a),!!c,G,d>>2,16*b);else{if(18>=b){var f=pd[16*b],h=G;d>>=2;b*=16;for(var n=0;n<b;n+=16){var k=d+n;f[n]=h[k];
|
||||
f[n+1]=h[k+1];f[n+2]=h[k+2];f[n+3]=h[k+3];f[n+4]=h[k+4];f[n+5]=h[k+5];f[n+6]=h[k+6];f[n+7]=h[k+7];f[n+8]=h[k+8];f[n+9]=h[k+9];f[n+10]=h[k+10];f[n+11]=h[k+11];f[n+12]=h[k+12];f[n+13]=h[k+13];f[n+14]=h[k+14];f[n+15]=h[k+15]}}else f=G.subarray(d>>2,d+64*b>>2);O.uniformMatrix4fv(X(a),!!c,f)}},ha:a=>{a=Hc[a];O.useProgram(a);O.Ie=a},ga:(a,b)=>O.vertexAttrib1f(a,b),fa:(a,b)=>{O.vertexAttrib2f(a,G[b>>2],G[b+4>>2])},ea:(a,b)=>{O.vertexAttrib3f(a,G[b>>2],G[b+4>>2],G[b+8>>2])},da:(a,b)=>{O.vertexAttrib4f(a,
|
||||
G[b>>2],G[b+4>>2],G[b+8>>2],G[b+12>>2])},ca:(a,b)=>{O.vertexAttribDivisor(a,b)},ba:(a,b,c,d,f)=>{O.vertexAttribIPointer(a,b,c,d,f)},aa:(a,b,c,d,f,h)=>{O.vertexAttribPointer(a,b,c,!!d,f,h)},$:(a,b,c,d)=>O.viewport(a,b,c,d),_:(a,b,c,d)=>{O.waitSync(Nc[a],b,(c>>>0)+4294967296*d)},Z:a=>{var b=y.length;a>>>=0;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+1/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a,d)/65536))-ua.buffer.byteLength+65535)/65536|0;try{ua.grow(d);
|
||||
Ba();var f=1;break a}catch(h){}f=void 0}if(f)return!0}return!1},Y:()=>x?x.handle:0,gd:(a,b)=>{var c=0;td().forEach((d,f)=>{var h=b+c;f=D[a+4*f>>2]=h;for(h=0;h<d.length;++h)wa[f++]=d.charCodeAt(h);wa[f]=0;c+=d.length+1});return 0},fd:(a,b)=>{var c=td();D[a>>2]=c.length;var d=0;c.forEach(f=>d+=f.length+1);D[b>>2]=d;return 0},X:a=>{Sa||(va=!0);throw new Qa(a);},ed:()=>52,O:function(){return 70},M:(a,b,c,d)=>{for(var f=0,h=0;h<c;h++){var n=D[b>>2],k=D[b+4>>2];b+=8;for(var p=0;p<k;p++){var t=y[n+p],v=
|
||||
ud[a];0===t||10===t?((1===a?qa:ta)(lc(v)),v.length=0):v.push(t)}f+=k}D[d>>2]=f;return 0},W:Wc,V:Yc,U:Zc,T:$c,D:fd,J:kd,S:ld,f:Ad,v:Bd,e:Cd,I:Dd,H:Ed,t:Fd,u:Gd,s:Hd,j:Id,R:Jd,Q:Kd,P:Ld},Z=function(){function a(c){Z=c.exports;ua=Z.hd;Ba();K=Z.kd;Da.unshift(Z.id);Fa--;0==Fa&&(null!==Ia&&(clearInterval(Ia),Ia=null),Ja&&(c=Ja,Ja=null,c()));return Z}var b={a:Md};Fa++;if(q.instantiateWasm)try{return q.instantiateWasm(b,a)}catch(c){ta(`Module.instantiateWasm callback failed with error: ${c}`),ba(c)}Ma??=
|
||||
q.locateFile?La("canvaskit.wasm")?"canvaskit.wasm":na+"canvaskit.wasm":(new URL("canvaskit.wasm",import.meta.url)).href;Pa(b,function(c){a(c.instance)}).catch(ba);return{}}(),Mb=a=>(Mb=Z.jd)(a),hd=q._malloc=a=>(hd=q._malloc=Z.ld)(a),Tb=q._free=a=>(Tb=q._free=Z.md)(a),Nd=(a,b)=>(Nd=Z.nd)(a,b),Od=a=>(Od=Z.od)(a),Pd=()=>(Pd=Z.pd)();q.dynCall_viji=(a,b,c,d,f)=>(q.dynCall_viji=Z.qd)(a,b,c,d,f);q.dynCall_vijiii=(a,b,c,d,f,h,n)=>(q.dynCall_vijiii=Z.rd)(a,b,c,d,f,h,n);
|
||||
q.dynCall_viiiiij=(a,b,c,d,f,h,n,k)=>(q.dynCall_viiiiij=Z.sd)(a,b,c,d,f,h,n,k);q.dynCall_vij=(a,b,c,d)=>(q.dynCall_vij=Z.td)(a,b,c,d);q.dynCall_jii=(a,b,c)=>(q.dynCall_jii=Z.ud)(a,b,c);q.dynCall_jiiiiii=(a,b,c,d,f,h,n)=>(q.dynCall_jiiiiii=Z.vd)(a,b,c,d,f,h,n);q.dynCall_jiiiiji=(a,b,c,d,f,h,n,k)=>(q.dynCall_jiiiiji=Z.wd)(a,b,c,d,f,h,n,k);q.dynCall_ji=(a,b)=>(q.dynCall_ji=Z.xd)(a,b);q.dynCall_iijj=(a,b,c,d,f,h)=>(q.dynCall_iijj=Z.yd)(a,b,c,d,f,h);
|
||||
q.dynCall_jiji=(a,b,c,d,f)=>(q.dynCall_jiji=Z.zd)(a,b,c,d,f);q.dynCall_viijii=(a,b,c,d,f,h,n)=>(q.dynCall_viijii=Z.Ad)(a,b,c,d,f,h,n);q.dynCall_iiiiij=(a,b,c,d,f,h,n)=>(q.dynCall_iiiiij=Z.Bd)(a,b,c,d,f,h,n);q.dynCall_iiiiijj=(a,b,c,d,f,h,n,k,p)=>(q.dynCall_iiiiijj=Z.Cd)(a,b,c,d,f,h,n,k,p);q.dynCall_iiiiiijj=(a,b,c,d,f,h,n,k,p,t)=>(q.dynCall_iiiiiijj=Z.Dd)(a,b,c,d,f,h,n,k,p,t);function Cd(a,b,c,d){var f=Pd();try{return K.get(a)(b,c,d)}catch(h){Od(f);if(h!==h+0)throw h;Nd(1,0)}}
|
||||
function Ad(a,b){var c=Pd();try{return K.get(a)(b)}catch(d){Od(c);if(d!==d+0)throw d;Nd(1,0)}}function Ld(a,b,c,d,f,h,n,k,p,t){var v=Pd();try{K.get(a)(b,c,d,f,h,n,k,p,t)}catch(z){Od(v);if(z!==z+0)throw z;Nd(1,0)}}function Hd(a,b,c,d){var f=Pd();try{K.get(a)(b,c,d)}catch(h){Od(f);if(h!==h+0)throw h;Nd(1,0)}}function Gd(a,b,c){var d=Pd();try{K.get(a)(b,c)}catch(f){Od(d);if(f!==f+0)throw f;Nd(1,0)}}function Fd(a,b){var c=Pd();try{K.get(a)(b)}catch(d){Od(c);if(d!==d+0)throw d;Nd(1,0)}}
|
||||
function Id(a,b,c,d,f){var h=Pd();try{K.get(a)(b,c,d,f)}catch(n){Od(h);if(n!==n+0)throw n;Nd(1,0)}}function Bd(a,b,c){var d=Pd();try{return K.get(a)(b,c)}catch(f){Od(d);if(f!==f+0)throw f;Nd(1,0)}}function Kd(a,b,c,d,f,h,n){var k=Pd();try{K.get(a)(b,c,d,f,h,n)}catch(p){Od(k);if(p!==p+0)throw p;Nd(1,0)}}function Ed(a,b,c,d,f,h,n,k){var p=Pd();try{return K.get(a)(b,c,d,f,h,n,k)}catch(t){Od(p);if(t!==t+0)throw t;Nd(1,0)}}
|
||||
function Jd(a,b,c,d,f,h){var n=Pd();try{K.get(a)(b,c,d,f,h)}catch(k){Od(n);if(k!==k+0)throw k;Nd(1,0)}}function Dd(a,b,c,d,f){var h=Pd();try{return K.get(a)(b,c,d,f)}catch(n){Od(h);if(n!==n+0)throw n;Nd(1,0)}}var Qd,Rd;Ja=function Sd(){Qd||Td();Qd||(Ja=Sd)};function Td(){if(!(0<Fa)){if(!Rd&&(Rd=1,Ra(Ca),0<Fa))return;Qd||(Qd=1,q.calledRun=1,va||(Ra(Da),aa(q),q.onRuntimeInitialized?.(),Ra(Ea)))}}Td();moduleRtn=ca;
|
||||
|
||||
|
||||
return moduleRtn;
|
||||
}
|
||||
);
|
||||
})();
|
||||
export default CanvasKitInit;
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -17,10 +17,10 @@ var Sa=0,Ta=0,Ua="undefined"!=typeof TextDecoder?new TextDecoder:void 0,Va=(a,b=
|
||||
Wa=(a,b)=>a?Va(q(),a,b):"",C={},Xa=1,Ya={},D=(a,b,c)=>{var e=q();if(0<c){var f=b;c=b+c-1;for(var h=0;h<a.length;++h){var l=a.charCodeAt(h);if(55296<=l&&57343>=l){var m=a.charCodeAt(++h);l=65536+((l&1023)<<10)|m&1023}if(127>=l){if(b>=c)break;e[b++]=l}else{if(2047>=l){if(b+1>=c)break;e[b++]=192|l>>6}else{if(65535>=l){if(b+2>=c)break;e[b++]=224|l>>12}else{if(b+3>=c)break;e[b++]=240|l>>18;e[b++]=128|l>>12&63}e[b++]=128|l>>6&63}e[b++]=128|l&63}}e[b]=0;a=b-f}else a=0;return a},E,Za=a=>{var b=a.getExtension("ANGLE_instanced_arrays");
|
||||
b&&(a.vertexAttribDivisor=(c,e)=>b.vertexAttribDivisorANGLE(c,e),a.drawArraysInstanced=(c,e,f,h)=>b.drawArraysInstancedANGLE(c,e,f,h),a.drawElementsInstanced=(c,e,f,h,l)=>b.drawElementsInstancedANGLE(c,e,f,h,l))},$a=a=>{var b=a.getExtension("OES_vertex_array_object");b&&(a.createVertexArray=()=>b.createVertexArrayOES(),a.deleteVertexArray=c=>b.deleteVertexArrayOES(c),a.bindVertexArray=c=>b.bindVertexArrayOES(c),a.isVertexArray=c=>b.isVertexArrayOES(c))},ab=a=>{var b=a.getExtension("WEBGL_draw_buffers");
|
||||
b&&(a.drawBuffers=(c,e)=>b.drawBuffersWEBGL(c,e))},bb=a=>{a.H=a.getExtension("WEBGL_draw_instanced_base_vertex_base_instance")},cb=a=>{a.K=a.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance")},db=a=>{var b="ANGLE_instanced_arrays EXT_blend_minmax EXT_disjoint_timer_query EXT_frag_depth EXT_shader_texture_lod EXT_sRGB OES_element_index_uint OES_fbo_render_mipmap OES_standard_derivatives OES_texture_float OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_depth_texture WEBGL_draw_buffers EXT_color_buffer_float EXT_conservative_depth EXT_disjoint_timer_query_webgl2 EXT_texture_norm16 NV_shader_noperspective_interpolation WEBGL_clip_cull_distance EXT_clip_control EXT_color_buffer_half_float EXT_depth_clamp EXT_float_blend EXT_polygon_offset_clamp EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic KHR_parallel_shader_compile OES_texture_float_linear WEBGL_blend_func_extended WEBGL_compressed_texture_astc WEBGL_compressed_texture_etc WEBGL_compressed_texture_etc1 WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context WEBGL_multi_draw WEBGL_polygon_mode".split(" ");
|
||||
return(a.getSupportedExtensions()||[]).filter(c=>b.includes(c))},eb=1,fb=[],F=[],gb=[],hb=[],G=[],H=[],ib=[],I=[],J=[],K=[],L=[],jb={},kb={},lb=4,mb=0,M=a=>{for(var b=eb++,c=a.length;c<b;c++)a[c]=null;return b},O=(a,b,c,e)=>{for(var f=0;f<a;f++){var h=E[c](),l=h&&M(e);h?(h.name=l,e[l]=h):N||=1282;r()[b+4*f>>2]=l}},ob=a=>{var b={J:2,alpha:!0,depth:!0,stencil:!0,antialias:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:"default",failIfMajorPerformanceCaveat:!1,I:!0};a.u||(a.u=a.getContext,
|
||||
a.getContext=function(e,f){f=a.u(e,f);return"webgl"==e==f instanceof WebGLRenderingContext?f:null});var c=1<b.J?a.getContext("webgl2",b):a.getContext("webgl",b);return c?nb(c,b):0},nb=(a,b)=>{var c=M(I),e={handle:c,attributes:b,version:b.J,o:a};a.canvas&&(a.canvas.N=e);I[c]=e;("undefined"==typeof b.I||b.I)&&pb(e);return c},pb=a=>{a||=P;if(!a.T){a.T=!0;var b=a.o;b.U=b.getExtension("WEBGL_multi_draw");b.R=b.getExtension("EXT_polygon_offset_clamp");b.P=b.getExtension("EXT_clip_control");b.Z=b.getExtension("WEBGL_polygon_mode");
|
||||
Za(b);$a(b);ab(b);bb(b);cb(b);2<=a.version&&(b.m=b.getExtension("EXT_disjoint_timer_query_webgl2"));if(2>a.version||!b.m)b.m=b.getExtension("EXT_disjoint_timer_query");db(b).forEach(c=>{c.includes("lose_context")||c.includes("debug")||b.getExtension(c)})}},N,P,qb=a=>{E.bindVertexArray(ib[a])},rb=(a,b)=>{for(var c=0;c<a;c++){var e=r()[b+4*c>>2],f=G[e];f&&(E.deleteTexture(f),f.name=0,G[e]=null)}},sb=(a,b)=>{for(var c=0;c<a;c++){var e=r()[b+4*c>>2];E.deleteVertexArray(ib[e]);ib[e]=null}},tb=[],ub=(a,
|
||||
b)=>{O(a,b,"createVertexArray",ib)},vb=(a,b)=>{t()[a>>2]=b;var c=t()[a>>2];t()[a+4>>2]=(b-c)/4294967296};function wb(){var a=db(E);return a=a.concat(a.map(b=>"GL_"+b))}
|
||||
return(a.getSupportedExtensions()||[]).filter(c=>b.includes(c))},eb=1,fb=[],F=[],gb=[],hb=[],G=[],H=[],ib=[],I=[],J=[],K=[],L=[],jb={},kb={},lb=4,mb=0,M=a=>{for(var b=eb++,c=a.length;c<b;c++)a[c]=null;return b},O=(a,b,c,e)=>{for(var f=0;f<a;f++){var h=E[c](),l=h&&M(e);h?(h.name=l,e[l]=h):N||=1282;r()[b+4*f>>2]=l}},ob=(a,b)=>{a.u||(a.u=a.getContext,a.getContext=function(e,f){f=a.u(e,f);return"webgl"==e==f instanceof WebGLRenderingContext?f:null});var c=1<b.J?a.getContext("webgl2",b):a.getContext("webgl",
|
||||
b);return c?nb(c,b):0},nb=(a,b)=>{var c=M(I),e={handle:c,attributes:b,version:b.J,o:a};a.canvas&&(a.canvas.N=e);I[c]=e;("undefined"==typeof b.I||b.I)&&pb(e);return c},pb=a=>{a||=P;if(!a.T){a.T=!0;var b=a.o;b.U=b.getExtension("WEBGL_multi_draw");b.R=b.getExtension("EXT_polygon_offset_clamp");b.P=b.getExtension("EXT_clip_control");b.Z=b.getExtension("WEBGL_polygon_mode");Za(b);$a(b);ab(b);bb(b);cb(b);2<=a.version&&(b.m=b.getExtension("EXT_disjoint_timer_query_webgl2"));if(2>a.version||!b.m)b.m=b.getExtension("EXT_disjoint_timer_query");
|
||||
db(b).forEach(c=>{c.includes("lose_context")||c.includes("debug")||b.getExtension(c)})}},N,P,qb=a=>{E.bindVertexArray(ib[a])},rb=(a,b)=>{for(var c=0;c<a;c++){var e=r()[b+4*c>>2],f=G[e];f&&(E.deleteTexture(f),f.name=0,G[e]=null)}},sb=(a,b)=>{for(var c=0;c<a;c++){var e=r()[b+4*c>>2];E.deleteVertexArray(ib[e]);ib[e]=null}},tb=[],ub=(a,b)=>{O(a,b,"createVertexArray",ib)},vb=(a,b)=>{t()[a>>2]=b;var c=t()[a>>2];t()[a+4>>2]=(b-c)/4294967296};
|
||||
function wb(){var a=db(E);return a=a.concat(a.map(b=>"GL_"+b))}
|
||||
var xb=(a,b,c)=>{if(b){var e=void 0;switch(a){case 36346:e=1;break;case 36344:0!=c&&1!=c&&(N||=1280);return;case 34814:case 36345:e=0;break;case 34466:var f=E.getParameter(34467);e=f?f.length:0;break;case 33309:if(2>P.version){N||=1282;return}e=wb().length;break;case 33307:case 33308:if(2>P.version){N||=1280;return}e=33307==a?3:0}if(void 0===e)switch(f=E.getParameter(a),typeof f){case "number":e=f;break;case "boolean":e=f?1:0;break;case "string":N||=1280;return;case "object":if(null===f)switch(a){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:e=
|
||||
0;break;default:N||=1280;return}else{if(f instanceof Float32Array||f instanceof Uint32Array||f instanceof Int32Array||f instanceof Array){for(a=0;a<f.length;++a)switch(c){case 0:r()[b+4*a>>2]=f[a];break;case 2:u()[b+4*a>>2]=f[a];break;case 4:d()[b+a]=f[a]?1:0}return}try{e=f.name|0}catch(h){N||=1280;y(`GL_INVALID_ENUM in glGet${c}v: Unknown object returned from WebGL getParameter(${a})! (error: ${h})`);return}}break;default:N||=1280;y(`GL_INVALID_ENUM in glGet${c}v: Native code calling glGet${c}v(${a}) and it returns ${f} of type ${typeof f}!`);
|
||||
return}switch(c){case 1:vb(b,e);break;case 0:r()[b>>2]=e;break;case 2:u()[b>>2]=e;break;case 4:d()[b]=e?1:0}}else N||=1281},yb=(a,b)=>xb(a,b,0),zb=(a,b,c)=>{if(c){a=J[a];b=2>P.version?E.m.getQueryObjectEXT(a,b):E.getQueryParameter(a,b);var e;"boolean"==typeof b?e=b?1:0:e=b;vb(c,e)}else N||=1281},Bb=a=>{for(var b=0,c=0;c<a.length;++c){var e=a.charCodeAt(c);127>=e?b++:2047>=e?b+=2:55296<=e&&57343>=e?(b+=4,++c):b+=3}b+=1;(c=Ab(b))&&D(a,c,b);return c},Cb=a=>{var b=jb[a];if(!b){switch(a){case 7939:b=Bb(wb().join(" "));
|
||||
@@ -34,9 +34,9 @@ e};S=function(f,h,l){l?C[l].postMessage(f,{transfer:h}):postMessage(f,{transfer:
|
||||
f.W,f.V,f.h,Ob());break;case "onRenderComplete":xc(f.g,f.h,{imageBitmaps:f.S,rasterStartMilliseconds:f.Y,rasterEndMilliseconds:f.X});break;case "setAssociatedObject":c.set(f.F,f.object);break;case "disposeAssociatedObject":f=f.F;h=c.get(f);h.close&&h.close();c.delete(f);break;case "disposeSurface":yc(f.g);break;case "rasterizeImage":zc(f.g,f.image,f.format,f.h);break;case "onRasterizeComplete":Ac(f.g,f.data,f.h);break;default:console.warn(`unrecognized skwasm message: ${h}`)}})};ic=function(e,f,h){S({l:"setAssociatedObject",
|
||||
F:f,object:h},[h],e)};Zb=function(e){return c.get(e)};Yb=function(e,f){S({l:"disposeAssociatedObject",F:f},[],e)};Sb=function(e,f){S({l:"disposeSurface",g:f},[],e)};Wb=function(e,f,h,l){S({l:"transferCanvas",g:f,canvas:h,h:l},[h],e)};ec=function(e,f,h){S({l:"onInitialized",g:e,$:f,h},[])};Vb=function(e,f,h,l,m){S({l:"resizeSurface",g:f,width:h,height:l,h:m},[],e)};fc=function(e,f){S({l:"onResizeComplete",g:e,h:f},[])};gc=function(e,f,h){e=b.get(e);e.width=f;e.height=h};Ub=function(e,f,h,l,m){S({l:"renderPictures",
|
||||
g:f,W:h,V:l,h:m},[],e)};hc=async function(e,f,h,l){f||=[];S({l:"onRenderComplete",g:e,h:l,S:f,Y:h,X:Ob()},[...f])};Mb=function(e,f){f||=[];e=b.get(e);f.push(e.transferToImageBitmap());return f};Tb=function(e,f,h,l,m){S({l:"rasterizeImage",g:f,image:h,format:l,h:m},[],e)};bc=function(e,f,h){S({l:"onRasterizeComplete",g:e,data:f,h})};Xb=function(e,f,h){S({l:"triggerContextLoss",g:f,h},[],e)};cc=function(e,f){S({l:"onContextLossTriggered",g:e,h:f},[])};dc=function(e,f){S({l:"reportContextLost",g:e,h:f},
|
||||
[])};jc=function(){P.o.getExtension("WEBGL_lose_context").loseContext()};$b=function(e,f){const h=ob(e);b.set(h,e);var l=function(m){m.preventDefault();Bc(f);e.removeEventListener("webglcontextlost",l)};e.addEventListener("webglcontextlost",l);a.set(h,l);return h};Rb=function(e){const f=b.get(e),h=a.get(e);f&&h&&f.removeEventListener("webglcontextlost",h);P===I[e]&&(P=null);"object"==typeof JSEvents&&JSEvents.ba(I[e].o.canvas);I[e]&&I[e].o.canvas&&(I[e].o.canvas.N=void 0);I[e]=null;b.delete(e);a.delete(e)};
|
||||
Qb=function(e,f,h){const l=P.o,m=l.createTexture();l.bindTexture(l.TEXTURE_2D,m);l.pixelStorei(l.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0);l.texImage2D(l.TEXTURE_2D,0,l.RGBA,f,h,0,l.RGBA,l.UNSIGNED_BYTE,e);l.pixelStorei(l.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1);l.bindTexture(l.TEXTURE_2D,null);e=M(G);G[e]=m;return e}})();
|
||||
var Mc={__cxa_throw:(a,b,c)=>{var e=new Ra(a);t()[e.u+16>>2]=0;t()[e.u+4>>2]=b;t()[e.u+8>>2]=c;Sa=a;Ta++;throw Sa;},__syscall_fcntl64:function(){return 0},__syscall_fstat64:()=>{},__syscall_ioctl:function(){return 0},__syscall_openat:function(){},_abort_js:()=>{Ga("")},_emscripten_create_wasm_worker:(a,b)=>{let c=C[Xa]=new Worker(ma("skwasm.ww.js"));c.postMessage({$ww:Xa,wasm:qa,js:w.mainScriptUrlOrBlob||_scriptName,wasmMemory:g,sb:a,sz:b});c.onmessage=Da;return Xa++},_emscripten_get_now_is_monotonic:()=>
|
||||
[])};jc=function(){P.o.getExtension("WEBGL_lose_context").loseContext()};$b=function(e,f,h){f=ob(e,{J:2,alpha:!0,depth:!0,stencil:!0,antialias:f,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:"default",failIfMajorPerformanceCaveat:!1,I:!0});b.set(f,e);var l=function(m){m.preventDefault();Bc(h);e.removeEventListener("webglcontextlost",l)};e.addEventListener("webglcontextlost",l);a.set(f,l);return f};Rb=function(e){const f=b.get(e),h=a.get(e);f&&h&&f.removeEventListener("webglcontextlost",
|
||||
h);P===I[e]&&(P=null);"object"==typeof JSEvents&&JSEvents.ba(I[e].o.canvas);I[e]&&I[e].o.canvas&&(I[e].o.canvas.N=void 0);I[e]=null;b.delete(e);a.delete(e)};Qb=function(e,f,h){const l=P.o,m=l.createTexture();l.bindTexture(l.TEXTURE_2D,m);l.pixelStorei(l.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0);l.texImage2D(l.TEXTURE_2D,0,l.RGBA,f,h,0,l.RGBA,l.UNSIGNED_BYTE,e);l.pixelStorei(l.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1);l.bindTexture(l.TEXTURE_2D,null);e=M(G);G[e]=m;return e}})();
|
||||
var Lc={__cxa_throw:(a,b,c)=>{var e=new Ra(a);t()[e.u+16>>2]=0;t()[e.u+4>>2]=b;t()[e.u+8>>2]=c;Sa=a;Ta++;throw Sa;},__syscall_fcntl64:function(){return 0},__syscall_fstat64:()=>{},__syscall_ioctl:function(){return 0},__syscall_openat:function(){},_abort_js:()=>{Ga("")},_emscripten_create_wasm_worker:(a,b)=>{let c=C[Xa]=new Worker(ma("skwasm.ww.js"));c.postMessage({$ww:Xa,wasm:qa,js:w.mainScriptUrlOrBlob||_scriptName,wasmMemory:g,sb:a,sz:b});c.onmessage=Da;return Xa++},_emscripten_get_now_is_monotonic:()=>
|
||||
1,_emscripten_runtime_keepalive_clear:()=>{za=!1;Oa=0},_emscripten_throw_longjmp:()=>{throw Infinity;},_mmap_js:function(){return-52},_munmap_js:function(){},_setitimer_js:(a,b)=>{Ya[a]&&(clearTimeout(Ya[a].id),delete Ya[a]);if(!b)return 0;var c=setTimeout(()=>{delete Ya[a];Qa(()=>Cc(a,performance.now()))},b);Ya[a]={id:c,ca:b};return 0},_tzset_js:(a,b,c,e)=>{var f=(new Date).getFullYear(),h=(new Date(f,0,1)).getTimezoneOffset();f=(new Date(f,6,1)).getTimezoneOffset();var l=Math.max(h,f);t()[a>>2]=
|
||||
60*l;r()[b>>2]=Number(h!=f);b=m=>{var p=Math.abs(m);return`UTC${0<=m?"-":"+"}${String(Math.floor(p/60)).padStart(2,"0")}${String(p%60).padStart(2,"0")}`};a=b(h);b=b(f);f<h?(D(a,c,17),D(b,e,17)):(D(a,e,17),D(b,c,17))},emscripten_console_warn:a=>{console.warn(Wa(a))},emscripten_get_now:()=>performance.now(),emscripten_glActiveTexture:a=>E.activeTexture(a),emscripten_glAttachShader:(a,b)=>{E.attachShader(F[a],H[b])},emscripten_glBeginQuery:(a,b)=>{E.beginQuery(a,J[b])},emscripten_glBeginQueryEXT:(a,
|
||||
b)=>{E.m.beginQueryEXT(a,J[b])},emscripten_glBindAttribLocation:(a,b,c)=>{E.bindAttribLocation(F[a],b,Wa(c))},emscripten_glBindBuffer:(a,b)=>{35051==a?E.D=b:35052==a&&(E.s=b);E.bindBuffer(a,fb[b])},emscripten_glBindFramebuffer:(a,b)=>{E.bindFramebuffer(a,gb[b])},emscripten_glBindRenderbuffer:(a,b)=>{E.bindRenderbuffer(a,hb[b])},emscripten_glBindSampler:(a,b)=>{E.bindSampler(a,K[b])},emscripten_glBindTexture:(a,b)=>{E.bindTexture(a,G[b])},emscripten_glBindVertexArray:qb,emscripten_glBindVertexArrayOES:qb,
|
||||
@@ -74,9 +74,9 @@ b,c,e,f)},emscripten_glVertexAttribPointer:(a,b,c,e,f,h)=>{E.vertexAttribPointer
|
||||
void 0}if(f)return!0}return!1},emscripten_wasm_worker_post_function_v:(a,b)=>{C[a].postMessage({_wsc:b,x:[]})},emscripten_webgl_enable_extension:function(a,b){a=I[a];b=Wa(b);b.startsWith("GL_")&&(b=b.substr(3));"ANGLE_instanced_arrays"==b&&Za(E);"OES_vertex_array_object"==b&&$a(E);"WEBGL_draw_buffers"==b&&ab(E);"WEBGL_draw_instanced_base_vertex_base_instance"==b&&bb(E);"WEBGL_multi_draw_instanced_base_vertex_base_instance"==b&&cb(E);"WEBGL_multi_draw"==b&&(E.U=E.getExtension("WEBGL_multi_draw"));
|
||||
"EXT_polygon_offset_clamp"==b&&(E.R=E.getExtension("EXT_polygon_offset_clamp"));"EXT_clip_control"==b&&(E.P=E.getExtension("EXT_clip_control"));"WEBGL_polygon_mode"==b&&(E.Z=E.getExtension("WEBGL_polygon_mode"));return!!a.o.getExtension(b)},emscripten_webgl_get_current_context:()=>P?P.handle:0,emscripten_webgl_make_context_current:a=>{P=I[a];w.aa=E=P?.o;return!a||E?0:-5},environ_get:(a,b)=>{var c=0;Kb().forEach((e,f)=>{var h=b+c;f=t()[a+4*f>>2]=h;for(h=0;h<e.length;++h)d()[f++]=e.charCodeAt(h);d()[f]=
|
||||
0;c+=e.length+1});return 0},environ_sizes_get:(a,b)=>{var c=Kb();t()[a>>2]=c.length;var e=0;c.forEach(f=>e+=f.length+1);t()[b>>2]=e;return 0},fd_close:()=>52,fd_pread:function(){return 52},fd_read:()=>52,fd_seek:function(){return 70},fd_write:(a,b,c,e)=>{for(var f=0,h=0;h<c;h++){var l=t()[b>>2],m=t()[b+4>>2];b+=8;for(var p=0;p<m;p++){var v=q()[l+p],U=Lb[a];0===v||10===v?((1===a?pa:y)(Va(U)),U.length=0):U.push(v)}f+=m}t()[e>>2]=f;return 0},glDeleteTextures:rb,glGetIntegerv:yb,glGetString:Cb,glGetStringi:Db,
|
||||
invoke_ii:Dc,invoke_iii:Ec,invoke_iiii:Fc,invoke_iiiii:Gc,invoke_iiiiiii:Hc,invoke_vi:Ic,invoke_vii:Jc,invoke_viii:Kc,invoke_viiiiiii:Lc,memory:g,proc_exit:Pa,skwasm_captureImageBitmap:Mb,skwasm_connectThread:Pb,skwasm_createGlTextureFromTextureSource:Qb,skwasm_destroyContext:Rb,skwasm_dispatchDisposeSurface:Sb,skwasm_dispatchRasterizeImage:Tb,skwasm_dispatchRenderPictures:Ub,skwasm_dispatchResizeSurface:Vb,skwasm_dispatchTransferCanvas:Wb,skwasm_dispatchTriggerContextLoss:Xb,skwasm_disposeAssociatedObjectOnThread:Yb,
|
||||
invoke_ii:Dc,invoke_iii:Ec,invoke_iiiii:Fc,invoke_iiiiiii:Gc,invoke_vi:Hc,invoke_vii:Ic,invoke_viii:Jc,invoke_viiiiiii:Kc,memory:g,proc_exit:Pa,skwasm_captureImageBitmap:Mb,skwasm_connectThread:Pb,skwasm_createGlTextureFromTextureSource:Qb,skwasm_destroyContext:Rb,skwasm_dispatchDisposeSurface:Sb,skwasm_dispatchRasterizeImage:Tb,skwasm_dispatchRenderPictures:Ub,skwasm_dispatchResizeSurface:Vb,skwasm_dispatchTransferCanvas:Wb,skwasm_dispatchTriggerContextLoss:Xb,skwasm_disposeAssociatedObjectOnThread:Yb,
|
||||
skwasm_getAssociatedObject:Zb,skwasm_getGlContextForCanvas:$b,skwasm_isSingleThreaded:ac,skwasm_postRasterizeResult:bc,skwasm_reportContextLossTriggered:cc,skwasm_reportContextLost:dc,skwasm_reportInitialized:ec,skwasm_reportResizeComplete:fc,skwasm_resizeCanvas:gc,skwasm_resolveAndPostImages:hc,skwasm_setAssociatedObjectOnThread:ic,skwasm_triggerContextLossOnCanvas:jc},W=function(){function a(c,e){W=c.exports;w.wasmExports=W;B=W.__indirect_function_table;wa.unshift(W.__wasm_call_ctors);qa=e;z--;
|
||||
0==z&&(null!==Fa&&(clearInterval(Fa),Fa=null),A&&(c=A,A=null,c()));return W}var b={env:Mc,wasi_snapshot_preview1:Mc};z++;if(w.instantiateWasm)try{return w.instantiateWasm(b,a)}catch(c){y(`Module.instantiateWasm callback failed with error: ${c}`),fa(c)}Ia??=Ha("skwasm.wasm")?"skwasm.wasm":ma("skwasm.wasm");La(b,function(c){a(c.instance,c.module)}).catch(fa);return{}}();w._canvas_saveLayer=(a,b,c,e)=>(w._canvas_saveLayer=W.canvas_saveLayer)(a,b,c,e);w._canvas_save=a=>(w._canvas_save=W.canvas_save)(a);
|
||||
0==z&&(null!==Fa&&(clearInterval(Fa),Fa=null),A&&(c=A,A=null,c()));return W}var b={env:Lc,wasi_snapshot_preview1:Lc};z++;if(w.instantiateWasm)try{return w.instantiateWasm(b,a)}catch(c){y(`Module.instantiateWasm callback failed with error: ${c}`),fa(c)}Ia??=Ha("skwasm.wasm")?"skwasm.wasm":ma("skwasm.wasm");La(b,function(c){a(c.instance,c.module)}).catch(fa);return{}}();w._canvas_saveLayer=(a,b,c,e)=>(w._canvas_saveLayer=W.canvas_saveLayer)(a,b,c,e);w._canvas_save=a=>(w._canvas_save=W.canvas_save)(a);
|
||||
w._canvas_restore=a=>(w._canvas_restore=W.canvas_restore)(a);w._canvas_restoreToCount=(a,b)=>(w._canvas_restoreToCount=W.canvas_restoreToCount)(a,b);w._canvas_getSaveCount=a=>(w._canvas_getSaveCount=W.canvas_getSaveCount)(a);w._canvas_translate=(a,b,c)=>(w._canvas_translate=W.canvas_translate)(a,b,c);w._canvas_scale=(a,b,c)=>(w._canvas_scale=W.canvas_scale)(a,b,c);w._canvas_rotate=(a,b)=>(w._canvas_rotate=W.canvas_rotate)(a,b);w._canvas_skew=(a,b,c)=>(w._canvas_skew=W.canvas_skew)(a,b,c);
|
||||
w._canvas_transform=(a,b)=>(w._canvas_transform=W.canvas_transform)(a,b);w._canvas_clear=(a,b)=>(w._canvas_clear=W.canvas_clear)(a,b);w._canvas_clipRect=(a,b,c,e)=>(w._canvas_clipRect=W.canvas_clipRect)(a,b,c,e);w._canvas_clipRRect=(a,b,c)=>(w._canvas_clipRRect=W.canvas_clipRRect)(a,b,c);w._canvas_clipPath=(a,b,c)=>(w._canvas_clipPath=W.canvas_clipPath)(a,b,c);w._canvas_drawColor=(a,b,c)=>(w._canvas_drawColor=W.canvas_drawColor)(a,b,c);
|
||||
w._canvas_drawLine=(a,b,c,e,f,h)=>(w._canvas_drawLine=W.canvas_drawLine)(a,b,c,e,f,h);w._canvas_drawPaint=(a,b)=>(w._canvas_drawPaint=W.canvas_drawPaint)(a,b);w._canvas_drawRect=(a,b,c)=>(w._canvas_drawRect=W.canvas_drawRect)(a,b,c);w._canvas_drawRRect=(a,b,c)=>(w._canvas_drawRRect=W.canvas_drawRRect)(a,b,c);w._canvas_drawDRRect=(a,b,c,e)=>(w._canvas_drawDRRect=W.canvas_drawDRRect)(a,b,c,e);w._canvas_drawOval=(a,b,c)=>(w._canvas_drawOval=W.canvas_drawOval)(a,b,c);
|
||||
@@ -102,7 +102,7 @@ w._picture_getCullRect=(a,b)=>(w._picture_getCullRect=W.picture_getCullRect)(a,b
|
||||
w._shader_createRadialGradient=(a,b,c,e,f,h,l,m)=>(w._shader_createRadialGradient=W.shader_createRadialGradient)(a,b,c,e,f,h,l,m);w._shader_createConicalGradient=(a,b,c,e,f,h,l,m)=>(w._shader_createConicalGradient=W.shader_createConicalGradient)(a,b,c,e,f,h,l,m);w._shader_createSweepGradient=(a,b,c,e,f,h,l,m,p)=>(w._shader_createSweepGradient=W.shader_createSweepGradient)(a,b,c,e,f,h,l,m,p);w._shader_dispose=a=>(w._shader_dispose=W.shader_dispose)(a);
|
||||
w._runtimeEffect_create=a=>(w._runtimeEffect_create=W.runtimeEffect_create)(a);w._runtimeEffect_dispose=a=>(w._runtimeEffect_dispose=W.runtimeEffect_dispose)(a);w._runtimeEffect_getUniformSize=a=>(w._runtimeEffect_getUniformSize=W.runtimeEffect_getUniformSize)(a);w._shader_createRuntimeEffectShader=(a,b,c,e)=>(w._shader_createRuntimeEffectShader=W.shader_createRuntimeEffectShader)(a,b,c,e);w._shader_createFromImage=(a,b,c,e,f)=>(w._shader_createFromImage=W.shader_createFromImage)(a,b,c,e,f);
|
||||
w._uniformData_create=a=>(w._uniformData_create=W.uniformData_create)(a);w._uniformData_dispose=a=>(w._uniformData_dispose=W.uniformData_dispose)(a);w._uniformData_getPointer=a=>(w._uniformData_getPointer=W.uniformData_getPointer)(a);w._skString_allocate=a=>(w._skString_allocate=W.skString_allocate)(a);w._skString_getData=a=>(w._skString_getData=W.skString_getData)(a);w._skString_getLength=a=>(w._skString_getLength=W.skString_getLength)(a);w._skString_free=a=>(w._skString_free=W.skString_free)(a);
|
||||
w._skString16_allocate=a=>(w._skString16_allocate=W.skString16_allocate)(a);w._skString16_getData=a=>(w._skString16_getData=W.skString16_getData)(a);w._skString16_free=a=>(w._skString16_free=W.skString16_free)(a);w._surface_create=()=>(w._surface_create=W.surface_create)();w._surface_setCanvas=(a,b)=>(w._surface_setCanvas=W.surface_setCanvas)(a,b);
|
||||
w._skString16_allocate=a=>(w._skString16_allocate=W.skString16_allocate)(a);w._skString16_getData=a=>(w._skString16_getData=W.skString16_getData)(a);w._skString16_free=a=>(w._skString16_free=W.skString16_free)(a);w._skwasm_isWimp=()=>(w._skwasm_isWimp=W.skwasm_isWimp)();w._surface_create=()=>(w._surface_create=W.surface_create)();w._surface_setCanvas=(a,b)=>(w._surface_setCanvas=W.surface_setCanvas)(a,b);
|
||||
var pc=w._surface_receiveCanvasOnWorker=(a,b,c)=>(pc=w._surface_receiveCanvasOnWorker=W.surface_receiveCanvasOnWorker)(a,b,c),qc=w._surface_onInitialized=(a,b)=>(qc=w._surface_onInitialized=W.surface_onInitialized)(a,b);w._surface_setSize=(a,b,c)=>(w._surface_setSize=W.surface_setSize)(a,b,c);
|
||||
var rc=w._surface_resizeOnWorker=(a,b,c,e)=>(rc=w._surface_resizeOnWorker=W.surface_resizeOnWorker)(a,b,c,e),sc=w._surface_onResizeComplete=(a,b)=>(sc=w._surface_onResizeComplete=W.surface_onResizeComplete)(a,b);w._surface_getThreadId=a=>(w._surface_getThreadId=W.surface_getThreadId)(a);w._surface_getGlContext=a=>(w._surface_getGlContext=W.surface_getGlContext)(a);w._surface_triggerContextLoss=a=>(w._surface_triggerContextLoss=W.surface_triggerContextLoss)(a);
|
||||
var tc=w._surface_triggerContextLossOnWorker=(a,b)=>(tc=w._surface_triggerContextLossOnWorker=W.surface_triggerContextLossOnWorker)(a,b),uc=w._surface_onContextLossTriggered=(a,b)=>(uc=w._surface_onContextLossTriggered=W.surface_onContextLossTriggered)(a,b),vc=w._surface_reportContextLost=(a,b)=>(vc=w._surface_reportContextLost=W.surface_reportContextLost)(a,b);w._surface_setCallbackHandler=(a,b)=>(w._surface_setCallbackHandler=W.surface_setCallbackHandler)(a,b);
|
||||
@@ -131,12 +131,12 @@ w._textStyle_setForeground=(a,b)=>(w._textStyle_setForeground=W.textStyle_setFor
|
||||
w._vertices_dispose=a=>(w._vertices_dispose=W.vertices_dispose)(a);w._animatedImage_create=(a,b,c)=>(w._animatedImage_create=W.animatedImage_create)(a,b,c);w._animatedImage_dispose=a=>(w._animatedImage_dispose=W.animatedImage_dispose)(a);w._animatedImage_getFrameCount=a=>(w._animatedImage_getFrameCount=W.animatedImage_getFrameCount)(a);w._animatedImage_getRepetitionCount=a=>(w._animatedImage_getRepetitionCount=W.animatedImage_getRepetitionCount)(a);
|
||||
w._animatedImage_getCurrentFrameDurationMilliseconds=a=>(w._animatedImage_getCurrentFrameDurationMilliseconds=W.animatedImage_getCurrentFrameDurationMilliseconds)(a);w._animatedImage_decodeNextFrame=a=>(w._animatedImage_decodeNextFrame=W.animatedImage_decodeNextFrame)(a);w._animatedImage_getCurrentFrame=a=>(w._animatedImage_getCurrentFrame=W.animatedImage_getCurrentFrame)(a);w._skwasm_isHeavy=()=>(w._skwasm_isHeavy=W.skwasm_isHeavy)();
|
||||
w._paragraphBuilder_create=(a,b)=>(w._paragraphBuilder_create=W.paragraphBuilder_create)(a,b);w._paragraphBuilder_build=a=>(w._paragraphBuilder_build=W.paragraphBuilder_build)(a);w._paragraphBuilder_setGraphemeBreaksUtf16=(a,b)=>(w._paragraphBuilder_setGraphemeBreaksUtf16=W.paragraphBuilder_setGraphemeBreaksUtf16)(a,b);w._paragraphBuilder_setWordBreaksUtf16=(a,b)=>(w._paragraphBuilder_setWordBreaksUtf16=W.paragraphBuilder_setWordBreaksUtf16)(a,b);
|
||||
w._paragraphBuilder_setLineBreaksUtf16=(a,b)=>(w._paragraphBuilder_setLineBreaksUtf16=W.paragraphBuilder_setLineBreaksUtf16)(a,b);w._skwasm_isWimp=()=>(w._skwasm_isWimp=W.skwasm_isWimp)();var Ab=a=>(Ab=W.malloc)(a),Cc=(a,b)=>(Cc=W._emscripten_timeout)(a,b),X=(a,b)=>(X=W.setThrew)(a,b),Y=a=>(Y=W._emscripten_stack_restore)(a),lc=a=>(lc=W._emscripten_stack_alloc)(a),Z=()=>(Z=W.emscripten_stack_get_current)(),Aa=(a,b)=>(Aa=W._emscripten_wasm_worker_initialize)(a,b);
|
||||
function Ec(a,b,c){var e=Z();try{return B.get(a)(b,c)}catch(f){Y(e);if(f!==f+0)throw f;X(1,0)}}function Jc(a,b,c){var e=Z();try{B.get(a)(b,c)}catch(f){Y(e);if(f!==f+0)throw f;X(1,0)}}function Dc(a,b){var c=Z();try{return B.get(a)(b)}catch(e){Y(c);if(e!==e+0)throw e;X(1,0)}}function Kc(a,b,c,e){var f=Z();try{B.get(a)(b,c,e)}catch(h){Y(f);if(h!==h+0)throw h;X(1,0)}}function Fc(a,b,c,e){var f=Z();try{return B.get(a)(b,c,e)}catch(h){Y(f);if(h!==h+0)throw h;X(1,0)}}
|
||||
function Gc(a,b,c,e,f){var h=Z();try{return B.get(a)(b,c,e,f)}catch(l){Y(h);if(l!==l+0)throw l;X(1,0)}}function Lc(a,b,c,e,f,h,l,m){var p=Z();try{B.get(a)(b,c,e,f,h,l,m)}catch(v){Y(p);if(v!==v+0)throw v;X(1,0)}}function Ic(a,b){var c=Z();try{B.get(a)(b)}catch(e){Y(c);if(e!==e+0)throw e;X(1,0)}}function Hc(a,b,c,e,f,h,l){var m=Z();try{return B.get(a)(b,c,e,f,h,l)}catch(p){Y(m);if(p!==p+0)throw p;X(1,0)}}w.wasmMemory=g;w.wasmExports=W;w.stackAlloc=mc;
|
||||
w._paragraphBuilder_setLineBreaksUtf16=(a,b)=>(w._paragraphBuilder_setLineBreaksUtf16=W.paragraphBuilder_setLineBreaksUtf16)(a,b);var Ab=a=>(Ab=W.malloc)(a),Cc=(a,b)=>(Cc=W._emscripten_timeout)(a,b),X=(a,b)=>(X=W.setThrew)(a,b),Y=a=>(Y=W._emscripten_stack_restore)(a),lc=a=>(lc=W._emscripten_stack_alloc)(a),Z=()=>(Z=W.emscripten_stack_get_current)(),Aa=(a,b)=>(Aa=W._emscripten_wasm_worker_initialize)(a,b);
|
||||
function Ec(a,b,c){var e=Z();try{return B.get(a)(b,c)}catch(f){Y(e);if(f!==f+0)throw f;X(1,0)}}function Ic(a,b,c){var e=Z();try{B.get(a)(b,c)}catch(f){Y(e);if(f!==f+0)throw f;X(1,0)}}function Dc(a,b){var c=Z();try{return B.get(a)(b)}catch(e){Y(c);if(e!==e+0)throw e;X(1,0)}}function Jc(a,b,c,e){var f=Z();try{B.get(a)(b,c,e)}catch(h){Y(f);if(h!==h+0)throw h;X(1,0)}}function Fc(a,b,c,e,f){var h=Z();try{return B.get(a)(b,c,e,f)}catch(l){Y(h);if(l!==l+0)throw l;X(1,0)}}
|
||||
function Kc(a,b,c,e,f,h,l,m){var p=Z();try{B.get(a)(b,c,e,f,h,l,m)}catch(v){Y(p);if(v!==v+0)throw v;X(1,0)}}function Hc(a,b){var c=Z();try{B.get(a)(b)}catch(e){Y(c);if(e!==e+0)throw e;X(1,0)}}function Gc(a,b,c,e,f,h,l){var m=Z();try{return B.get(a)(b,c,e,f,h,l)}catch(p){Y(m);if(p!==p+0)throw p;X(1,0)}}w.wasmMemory=g;w.wasmExports=W;w.stackAlloc=mc;
|
||||
w.addFunction=(a,b)=>{if(!T){T=new WeakMap;var c=B.length;if(T)for(var e=0;e<0+c;e++){var f=B.get(e);f&&T.set(f,e)}}if(c=T.get(a)||0)return c;if(kc.length)c=kc.pop();else{try{B.grow(1)}catch(m){if(!(m instanceof RangeError))throw m;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.";}c=B.length-1}try{B.set(c,a)}catch(m){if(!(m instanceof TypeError))throw m;if("function"==typeof WebAssembly.Function){e=WebAssembly.Function;f={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"};for(var h={parameters:[],
|
||||
results:"v"==b[0]?[]:[f[b[0]]]},l=1;l<b.length;++l)h.parameters.push(f[b[l]]);b=new e(h,a)}else{e=[1];f=b.slice(0,1);b=b.slice(1);h={i:127,p:127,j:126,f:125,d:124,e:111};e.push(96);l=b.length;128>l?e.push(l):e.push(l%128|128,l>>7);for(l=0;l<b.length;++l)e.push(h[b[l]]);"v"==f?e.push(0):e.push(1,h[f]);b=[0,97,115,109,1,0,0,0,1];f=e.length;128>f?b.push(f):b.push(f%128|128,f>>7);b.push(...e);b.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);b=new WebAssembly.Module(new Uint8Array(b));b=(new WebAssembly.Instance(b,
|
||||
{e:{f:a}})).exports.f}B.set(c,b)}T.set(a,c);return c};var Nc,Oc;A=function Pc(){Nc||Qc();Nc||(A=Pc)};function Qc(){if(!(0<z))if(ka)ea(w),ya();else{if(!Oc&&(Oc=1,Ea(va),0<z))return;Nc||(Nc=1,w.calledRun=1,ra||(ya(),ea(w),Ea(xa)))}}Qc();moduleRtn=ha;
|
||||
{e:{f:a}})).exports.f}B.set(c,b)}T.set(a,c);return c};var Mc,Nc;A=function Oc(){Mc||Pc();Mc||(A=Oc)};function Pc(){if(!(0<z))if(ka)ea(w),ya();else{if(!Nc&&(Nc=1,Ea(va),0<z))return;Mc||(Mc=1,w.calledRun=1,ra||(ya(),ea(w),Ea(xa)))}}Pc();moduleRtn=ha;
|
||||
|
||||
|
||||
return moduleRtn;
|
||||
|
||||
+12787
-12676
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -17,10 +17,10 @@ var Sa=0,Ta=0,Ua="undefined"!=typeof TextDecoder?new TextDecoder:void 0,Va=(a,b=
|
||||
Wa=(a,b)=>a?Va(q(),a,b):"",C={},Xa=1,Ya={},D=(a,b,c)=>{var e=q();if(0<c){var f=b;c=b+c-1;for(var h=0;h<a.length;++h){var l=a.charCodeAt(h);if(55296<=l&&57343>=l){var m=a.charCodeAt(++h);l=65536+((l&1023)<<10)|m&1023}if(127>=l){if(b>=c)break;e[b++]=l}else{if(2047>=l){if(b+1>=c)break;e[b++]=192|l>>6}else{if(65535>=l){if(b+2>=c)break;e[b++]=224|l>>12}else{if(b+3>=c)break;e[b++]=240|l>>18;e[b++]=128|l>>12&63}e[b++]=128|l>>6&63}e[b++]=128|l&63}}e[b]=0;a=b-f}else a=0;return a},E,Za=a=>{var b=a.getExtension("ANGLE_instanced_arrays");
|
||||
b&&(a.vertexAttribDivisor=(c,e)=>b.vertexAttribDivisorANGLE(c,e),a.drawArraysInstanced=(c,e,f,h)=>b.drawArraysInstancedANGLE(c,e,f,h),a.drawElementsInstanced=(c,e,f,h,l)=>b.drawElementsInstancedANGLE(c,e,f,h,l))},$a=a=>{var b=a.getExtension("OES_vertex_array_object");b&&(a.createVertexArray=()=>b.createVertexArrayOES(),a.deleteVertexArray=c=>b.deleteVertexArrayOES(c),a.bindVertexArray=c=>b.bindVertexArrayOES(c),a.isVertexArray=c=>b.isVertexArrayOES(c))},ab=a=>{var b=a.getExtension("WEBGL_draw_buffers");
|
||||
b&&(a.drawBuffers=(c,e)=>b.drawBuffersWEBGL(c,e))},bb=a=>{a.H=a.getExtension("WEBGL_draw_instanced_base_vertex_base_instance")},cb=a=>{a.K=a.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance")},db=a=>{var b="ANGLE_instanced_arrays EXT_blend_minmax EXT_disjoint_timer_query EXT_frag_depth EXT_shader_texture_lod EXT_sRGB OES_element_index_uint OES_fbo_render_mipmap OES_standard_derivatives OES_texture_float OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_depth_texture WEBGL_draw_buffers EXT_color_buffer_float EXT_conservative_depth EXT_disjoint_timer_query_webgl2 EXT_texture_norm16 NV_shader_noperspective_interpolation WEBGL_clip_cull_distance EXT_clip_control EXT_color_buffer_half_float EXT_depth_clamp EXT_float_blend EXT_polygon_offset_clamp EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic KHR_parallel_shader_compile OES_texture_float_linear WEBGL_blend_func_extended WEBGL_compressed_texture_astc WEBGL_compressed_texture_etc WEBGL_compressed_texture_etc1 WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context WEBGL_multi_draw WEBGL_polygon_mode".split(" ");
|
||||
return(a.getSupportedExtensions()||[]).filter(c=>b.includes(c))},eb=1,fb=[],F=[],gb=[],hb=[],G=[],H=[],ib=[],I=[],J=[],K=[],L=[],jb={},kb={},lb=4,mb=0,M=a=>{for(var b=eb++,c=a.length;c<b;c++)a[c]=null;return b},O=(a,b,c,e)=>{for(var f=0;f<a;f++){var h=E[c](),l=h&&M(e);h?(h.name=l,e[l]=h):N||=1282;r()[b+4*f>>2]=l}},ob=a=>{var b={J:2,alpha:!0,depth:!0,stencil:!0,antialias:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:"default",failIfMajorPerformanceCaveat:!1,I:!0};a.u||(a.u=a.getContext,
|
||||
a.getContext=function(e,f){f=a.u(e,f);return"webgl"==e==f instanceof WebGLRenderingContext?f:null});var c=1<b.J?a.getContext("webgl2",b):a.getContext("webgl",b);return c?nb(c,b):0},nb=(a,b)=>{var c=M(I),e={handle:c,attributes:b,version:b.J,o:a};a.canvas&&(a.canvas.N=e);I[c]=e;("undefined"==typeof b.I||b.I)&&pb(e);return c},pb=a=>{a||=P;if(!a.T){a.T=!0;var b=a.o;b.U=b.getExtension("WEBGL_multi_draw");b.R=b.getExtension("EXT_polygon_offset_clamp");b.P=b.getExtension("EXT_clip_control");b.Z=b.getExtension("WEBGL_polygon_mode");
|
||||
Za(b);$a(b);ab(b);bb(b);cb(b);2<=a.version&&(b.m=b.getExtension("EXT_disjoint_timer_query_webgl2"));if(2>a.version||!b.m)b.m=b.getExtension("EXT_disjoint_timer_query");db(b).forEach(c=>{c.includes("lose_context")||c.includes("debug")||b.getExtension(c)})}},N,P,qb=a=>{E.bindVertexArray(ib[a])},rb=(a,b)=>{for(var c=0;c<a;c++){var e=r()[b+4*c>>2],f=G[e];f&&(E.deleteTexture(f),f.name=0,G[e]=null)}},sb=(a,b)=>{for(var c=0;c<a;c++){var e=r()[b+4*c>>2];E.deleteVertexArray(ib[e]);ib[e]=null}},tb=[],ub=(a,
|
||||
b)=>{O(a,b,"createVertexArray",ib)},vb=(a,b)=>{t()[a>>2]=b;var c=t()[a>>2];t()[a+4>>2]=(b-c)/4294967296};function wb(){var a=db(E);return a=a.concat(a.map(b=>"GL_"+b))}
|
||||
return(a.getSupportedExtensions()||[]).filter(c=>b.includes(c))},eb=1,fb=[],F=[],gb=[],hb=[],G=[],H=[],ib=[],I=[],J=[],K=[],L=[],jb={},kb={},lb=4,mb=0,M=a=>{for(var b=eb++,c=a.length;c<b;c++)a[c]=null;return b},O=(a,b,c,e)=>{for(var f=0;f<a;f++){var h=E[c](),l=h&&M(e);h?(h.name=l,e[l]=h):N||=1282;r()[b+4*f>>2]=l}},ob=(a,b)=>{a.u||(a.u=a.getContext,a.getContext=function(e,f){f=a.u(e,f);return"webgl"==e==f instanceof WebGLRenderingContext?f:null});var c=1<b.J?a.getContext("webgl2",b):a.getContext("webgl",
|
||||
b);return c?nb(c,b):0},nb=(a,b)=>{var c=M(I),e={handle:c,attributes:b,version:b.J,o:a};a.canvas&&(a.canvas.N=e);I[c]=e;("undefined"==typeof b.I||b.I)&&pb(e);return c},pb=a=>{a||=P;if(!a.T){a.T=!0;var b=a.o;b.U=b.getExtension("WEBGL_multi_draw");b.R=b.getExtension("EXT_polygon_offset_clamp");b.P=b.getExtension("EXT_clip_control");b.Z=b.getExtension("WEBGL_polygon_mode");Za(b);$a(b);ab(b);bb(b);cb(b);2<=a.version&&(b.m=b.getExtension("EXT_disjoint_timer_query_webgl2"));if(2>a.version||!b.m)b.m=b.getExtension("EXT_disjoint_timer_query");
|
||||
db(b).forEach(c=>{c.includes("lose_context")||c.includes("debug")||b.getExtension(c)})}},N,P,qb=a=>{E.bindVertexArray(ib[a])},rb=(a,b)=>{for(var c=0;c<a;c++){var e=r()[b+4*c>>2],f=G[e];f&&(E.deleteTexture(f),f.name=0,G[e]=null)}},sb=(a,b)=>{for(var c=0;c<a;c++){var e=r()[b+4*c>>2];E.deleteVertexArray(ib[e]);ib[e]=null}},tb=[],ub=(a,b)=>{O(a,b,"createVertexArray",ib)},vb=(a,b)=>{t()[a>>2]=b;var c=t()[a>>2];t()[a+4>>2]=(b-c)/4294967296};
|
||||
function wb(){var a=db(E);return a=a.concat(a.map(b=>"GL_"+b))}
|
||||
var xb=(a,b,c)=>{if(b){var e=void 0;switch(a){case 36346:e=1;break;case 36344:0!=c&&1!=c&&(N||=1280);return;case 34814:case 36345:e=0;break;case 34466:var f=E.getParameter(34467);e=f?f.length:0;break;case 33309:if(2>P.version){N||=1282;return}e=wb().length;break;case 33307:case 33308:if(2>P.version){N||=1280;return}e=33307==a?3:0}if(void 0===e)switch(f=E.getParameter(a),typeof f){case "number":e=f;break;case "boolean":e=f?1:0;break;case "string":N||=1280;return;case "object":if(null===f)switch(a){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:e=
|
||||
0;break;default:N||=1280;return}else{if(f instanceof Float32Array||f instanceof Uint32Array||f instanceof Int32Array||f instanceof Array){for(a=0;a<f.length;++a)switch(c){case 0:r()[b+4*a>>2]=f[a];break;case 2:u()[b+4*a>>2]=f[a];break;case 4:d()[b+a]=f[a]?1:0}return}try{e=f.name|0}catch(h){N||=1280;y(`GL_INVALID_ENUM in glGet${c}v: Unknown object returned from WebGL getParameter(${a})! (error: ${h})`);return}}break;default:N||=1280;y(`GL_INVALID_ENUM in glGet${c}v: Native code calling glGet${c}v(${a}) and it returns ${f} of type ${typeof f}!`);
|
||||
return}switch(c){case 1:vb(b,e);break;case 0:r()[b>>2]=e;break;case 2:u()[b>>2]=e;break;case 4:d()[b]=e?1:0}}else N||=1281},yb=(a,b)=>xb(a,b,0),zb=(a,b,c)=>{if(c){a=J[a];b=2>P.version?E.m.getQueryObjectEXT(a,b):E.getQueryParameter(a,b);var e;"boolean"==typeof b?e=b?1:0:e=b;vb(c,e)}else N||=1281},Bb=a=>{for(var b=0,c=0;c<a.length;++c){var e=a.charCodeAt(c);127>=e?b++:2047>=e?b+=2:55296<=e&&57343>=e?(b+=4,++c):b+=3}b+=1;(c=Ab(b))&&D(a,c,b);return c},Cb=a=>{var b=jb[a];if(!b){switch(a){case 7939:b=Bb(wb().join(" "));
|
||||
@@ -34,9 +34,9 @@ e};S=function(f,h,l){l?C[l].postMessage(f,{transfer:h}):postMessage(f,{transfer:
|
||||
f.W,f.V,f.h,Ob());break;case "onRenderComplete":xc(f.g,f.h,{imageBitmaps:f.S,rasterStartMilliseconds:f.Y,rasterEndMilliseconds:f.X});break;case "setAssociatedObject":c.set(f.F,f.object);break;case "disposeAssociatedObject":f=f.F;h=c.get(f);h.close&&h.close();c.delete(f);break;case "disposeSurface":yc(f.g);break;case "rasterizeImage":zc(f.g,f.image,f.format,f.h);break;case "onRasterizeComplete":Ac(f.g,f.data,f.h);break;default:console.warn(`unrecognized skwasm message: ${h}`)}})};ic=function(e,f,h){S({l:"setAssociatedObject",
|
||||
F:f,object:h},[h],e)};Zb=function(e){return c.get(e)};Yb=function(e,f){S({l:"disposeAssociatedObject",F:f},[],e)};Sb=function(e,f){S({l:"disposeSurface",g:f},[],e)};Wb=function(e,f,h,l){S({l:"transferCanvas",g:f,canvas:h,h:l},[h],e)};ec=function(e,f,h){S({l:"onInitialized",g:e,$:f,h},[])};Vb=function(e,f,h,l,m){S({l:"resizeSurface",g:f,width:h,height:l,h:m},[],e)};fc=function(e,f){S({l:"onResizeComplete",g:e,h:f},[])};gc=function(e,f,h){e=b.get(e);e.width=f;e.height=h};Ub=function(e,f,h,l,m){S({l:"renderPictures",
|
||||
g:f,W:h,V:l,h:m},[],e)};hc=async function(e,f,h,l){f||=[];S({l:"onRenderComplete",g:e,h:l,S:f,Y:h,X:Ob()},[...f])};Mb=function(e,f){f||=[];e=b.get(e);f.push(e.transferToImageBitmap());return f};Tb=function(e,f,h,l,m){S({l:"rasterizeImage",g:f,image:h,format:l,h:m},[],e)};bc=function(e,f,h){S({l:"onRasterizeComplete",g:e,data:f,h})};Xb=function(e,f,h){S({l:"triggerContextLoss",g:f,h},[],e)};cc=function(e,f){S({l:"onContextLossTriggered",g:e,h:f},[])};dc=function(e,f){S({l:"reportContextLost",g:e,h:f},
|
||||
[])};jc=function(){P.o.getExtension("WEBGL_lose_context").loseContext()};$b=function(e,f){const h=ob(e);b.set(h,e);var l=function(m){m.preventDefault();Bc(f);e.removeEventListener("webglcontextlost",l)};e.addEventListener("webglcontextlost",l);a.set(h,l);return h};Rb=function(e){const f=b.get(e),h=a.get(e);f&&h&&f.removeEventListener("webglcontextlost",h);P===I[e]&&(P=null);"object"==typeof JSEvents&&JSEvents.ba(I[e].o.canvas);I[e]&&I[e].o.canvas&&(I[e].o.canvas.N=void 0);I[e]=null;b.delete(e);a.delete(e)};
|
||||
Qb=function(e,f,h){const l=P.o,m=l.createTexture();l.bindTexture(l.TEXTURE_2D,m);l.pixelStorei(l.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0);l.texImage2D(l.TEXTURE_2D,0,l.RGBA,f,h,0,l.RGBA,l.UNSIGNED_BYTE,e);l.pixelStorei(l.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1);l.bindTexture(l.TEXTURE_2D,null);e=M(G);G[e]=m;return e}})();
|
||||
var Mc={__cxa_throw:(a,b,c)=>{var e=new Ra(a);t()[e.u+16>>2]=0;t()[e.u+4>>2]=b;t()[e.u+8>>2]=c;Sa=a;Ta++;throw Sa;},__syscall_fcntl64:function(){return 0},__syscall_fstat64:()=>{},__syscall_ioctl:function(){return 0},__syscall_lstat64:()=>{},__syscall_newfstatat:()=>{},__syscall_openat:function(){},__syscall_stat64:()=>{},_abort_js:()=>{Ga("")},_emscripten_create_wasm_worker:(a,b)=>{let c=C[Xa]=new Worker(ma("skwasm_heavy.ww.js"));c.postMessage({$ww:Xa,wasm:qa,js:w.mainScriptUrlOrBlob||_scriptName,
|
||||
[])};jc=function(){P.o.getExtension("WEBGL_lose_context").loseContext()};$b=function(e,f,h){f=ob(e,{J:2,alpha:!0,depth:!0,stencil:!0,antialias:f,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:"default",failIfMajorPerformanceCaveat:!1,I:!0});b.set(f,e);var l=function(m){m.preventDefault();Bc(h);e.removeEventListener("webglcontextlost",l)};e.addEventListener("webglcontextlost",l);a.set(f,l);return f};Rb=function(e){const f=b.get(e),h=a.get(e);f&&h&&f.removeEventListener("webglcontextlost",
|
||||
h);P===I[e]&&(P=null);"object"==typeof JSEvents&&JSEvents.ba(I[e].o.canvas);I[e]&&I[e].o.canvas&&(I[e].o.canvas.N=void 0);I[e]=null;b.delete(e);a.delete(e)};Qb=function(e,f,h){const l=P.o,m=l.createTexture();l.bindTexture(l.TEXTURE_2D,m);l.pixelStorei(l.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0);l.texImage2D(l.TEXTURE_2D,0,l.RGBA,f,h,0,l.RGBA,l.UNSIGNED_BYTE,e);l.pixelStorei(l.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1);l.bindTexture(l.TEXTURE_2D,null);e=M(G);G[e]=m;return e}})();
|
||||
var Lc={__cxa_throw:(a,b,c)=>{var e=new Ra(a);t()[e.u+16>>2]=0;t()[e.u+4>>2]=b;t()[e.u+8>>2]=c;Sa=a;Ta++;throw Sa;},__syscall_fcntl64:function(){return 0},__syscall_fstat64:()=>{},__syscall_ioctl:function(){return 0},__syscall_lstat64:()=>{},__syscall_newfstatat:()=>{},__syscall_openat:function(){},__syscall_stat64:()=>{},_abort_js:()=>{Ga("")},_emscripten_create_wasm_worker:(a,b)=>{let c=C[Xa]=new Worker(ma("skwasm_heavy.ww.js"));c.postMessage({$ww:Xa,wasm:qa,js:w.mainScriptUrlOrBlob||_scriptName,
|
||||
wasmMemory:g,sb:a,sz:b});c.onmessage=Da;return Xa++},_emscripten_get_now_is_monotonic:()=>1,_emscripten_runtime_keepalive_clear:()=>{za=!1;Oa=0},_emscripten_throw_longjmp:()=>{throw Infinity;},_mmap_js:function(){return-52},_munmap_js:function(){},_setitimer_js:(a,b)=>{Ya[a]&&(clearTimeout(Ya[a].id),delete Ya[a]);if(!b)return 0;var c=setTimeout(()=>{delete Ya[a];Qa(()=>Cc(a,performance.now()))},b);Ya[a]={id:c,ca:b};return 0},_tzset_js:(a,b,c,e)=>{var f=(new Date).getFullYear(),h=(new Date(f,0,1)).getTimezoneOffset();
|
||||
f=(new Date(f,6,1)).getTimezoneOffset();var l=Math.max(h,f);t()[a>>2]=60*l;r()[b>>2]=Number(h!=f);b=m=>{var p=Math.abs(m);return`UTC${0<=m?"-":"+"}${String(Math.floor(p/60)).padStart(2,"0")}${String(p%60).padStart(2,"0")}`};a=b(h);b=b(f);f<h?(D(a,c,17),D(b,e,17)):(D(a,e,17),D(b,c,17))},emscripten_console_warn:a=>{console.warn(Wa(a))},emscripten_get_now:()=>performance.now(),emscripten_glActiveTexture:a=>E.activeTexture(a),emscripten_glAttachShader:(a,b)=>{E.attachShader(F[a],H[b])},emscripten_glBeginQuery:(a,
|
||||
b)=>{E.beginQuery(a,J[b])},emscripten_glBeginQueryEXT:(a,b)=>{E.m.beginQueryEXT(a,J[b])},emscripten_glBindAttribLocation:(a,b,c)=>{E.bindAttribLocation(F[a],b,Wa(c))},emscripten_glBindBuffer:(a,b)=>{35051==a?E.D=b:35052==a&&(E.s=b);E.bindBuffer(a,fb[b])},emscripten_glBindFramebuffer:(a,b)=>{E.bindFramebuffer(a,gb[b])},emscripten_glBindRenderbuffer:(a,b)=>{E.bindRenderbuffer(a,hb[b])},emscripten_glBindSampler:(a,b)=>{E.bindSampler(a,K[b])},emscripten_glBindTexture:(a,b)=>{E.bindTexture(a,G[b])},emscripten_glBindVertexArray:qb,
|
||||
@@ -74,9 +74,9 @@ b,c,e,f)},emscripten_glVertexAttribPointer:(a,b,c,e,f,h)=>{E.vertexAttribPointer
|
||||
void 0}if(f)return!0}return!1},emscripten_wasm_worker_post_function_v:(a,b)=>{C[a].postMessage({_wsc:b,x:[]})},emscripten_webgl_enable_extension:function(a,b){a=I[a];b=Wa(b);b.startsWith("GL_")&&(b=b.substr(3));"ANGLE_instanced_arrays"==b&&Za(E);"OES_vertex_array_object"==b&&$a(E);"WEBGL_draw_buffers"==b&&ab(E);"WEBGL_draw_instanced_base_vertex_base_instance"==b&&bb(E);"WEBGL_multi_draw_instanced_base_vertex_base_instance"==b&&cb(E);"WEBGL_multi_draw"==b&&(E.U=E.getExtension("WEBGL_multi_draw"));
|
||||
"EXT_polygon_offset_clamp"==b&&(E.R=E.getExtension("EXT_polygon_offset_clamp"));"EXT_clip_control"==b&&(E.P=E.getExtension("EXT_clip_control"));"WEBGL_polygon_mode"==b&&(E.Z=E.getExtension("WEBGL_polygon_mode"));return!!a.o.getExtension(b)},emscripten_webgl_get_current_context:()=>P?P.handle:0,emscripten_webgl_make_context_current:a=>{P=I[a];w.aa=E=P?.o;return!a||E?0:-5},environ_get:(a,b)=>{var c=0;Kb().forEach((e,f)=>{var h=b+c;f=t()[a+4*f>>2]=h;for(h=0;h<e.length;++h)d()[f++]=e.charCodeAt(h);d()[f]=
|
||||
0;c+=e.length+1});return 0},environ_sizes_get:(a,b)=>{var c=Kb();t()[a>>2]=c.length;var e=0;c.forEach(f=>e+=f.length+1);t()[b>>2]=e;return 0},fd_close:()=>52,fd_pread:function(){return 52},fd_read:()=>52,fd_seek:function(){return 70},fd_write:(a,b,c,e)=>{for(var f=0,h=0;h<c;h++){var l=t()[b>>2],m=t()[b+4>>2];b+=8;for(var p=0;p<m;p++){var v=q()[l+p],U=Lb[a];0===v||10===v?((1===a?pa:y)(Va(U)),U.length=0):U.push(v)}f+=m}t()[e>>2]=f;return 0},glDeleteTextures:rb,glGetIntegerv:yb,glGetString:Cb,glGetStringi:Db,
|
||||
invoke_ii:Dc,invoke_iii:Ec,invoke_iiii:Fc,invoke_iiiii:Gc,invoke_iiiiiii:Hc,invoke_vi:Ic,invoke_vii:Jc,invoke_viii:Kc,invoke_viiiiiii:Lc,memory:g,proc_exit:Pa,skwasm_captureImageBitmap:Mb,skwasm_connectThread:Pb,skwasm_createGlTextureFromTextureSource:Qb,skwasm_destroyContext:Rb,skwasm_dispatchDisposeSurface:Sb,skwasm_dispatchRasterizeImage:Tb,skwasm_dispatchRenderPictures:Ub,skwasm_dispatchResizeSurface:Vb,skwasm_dispatchTransferCanvas:Wb,skwasm_dispatchTriggerContextLoss:Xb,skwasm_disposeAssociatedObjectOnThread:Yb,
|
||||
invoke_ii:Dc,invoke_iii:Ec,invoke_iiiii:Fc,invoke_iiiiiii:Gc,invoke_vi:Hc,invoke_vii:Ic,invoke_viii:Jc,invoke_viiiiiii:Kc,memory:g,proc_exit:Pa,skwasm_captureImageBitmap:Mb,skwasm_connectThread:Pb,skwasm_createGlTextureFromTextureSource:Qb,skwasm_destroyContext:Rb,skwasm_dispatchDisposeSurface:Sb,skwasm_dispatchRasterizeImage:Tb,skwasm_dispatchRenderPictures:Ub,skwasm_dispatchResizeSurface:Vb,skwasm_dispatchTransferCanvas:Wb,skwasm_dispatchTriggerContextLoss:Xb,skwasm_disposeAssociatedObjectOnThread:Yb,
|
||||
skwasm_getAssociatedObject:Zb,skwasm_getGlContextForCanvas:$b,skwasm_isSingleThreaded:ac,skwasm_postRasterizeResult:bc,skwasm_reportContextLossTriggered:cc,skwasm_reportContextLost:dc,skwasm_reportInitialized:ec,skwasm_reportResizeComplete:fc,skwasm_resizeCanvas:gc,skwasm_resolveAndPostImages:hc,skwasm_setAssociatedObjectOnThread:ic,skwasm_triggerContextLossOnCanvas:jc},W=function(){function a(c,e){W=c.exports;w.wasmExports=W;B=W.__indirect_function_table;wa.unshift(W.__wasm_call_ctors);qa=e;z--;
|
||||
0==z&&(null!==Fa&&(clearInterval(Fa),Fa=null),A&&(c=A,A=null,c()));return W}var b={env:Mc,wasi_snapshot_preview1:Mc};z++;if(w.instantiateWasm)try{return w.instantiateWasm(b,a)}catch(c){y(`Module.instantiateWasm callback failed with error: ${c}`),fa(c)}Ia??=Ha("skwasm_heavy.wasm")?"skwasm_heavy.wasm":ma("skwasm_heavy.wasm");La(b,function(c){a(c.instance,c.module)}).catch(fa);return{}}();w._canvas_saveLayer=(a,b,c,e)=>(w._canvas_saveLayer=W.canvas_saveLayer)(a,b,c,e);
|
||||
0==z&&(null!==Fa&&(clearInterval(Fa),Fa=null),A&&(c=A,A=null,c()));return W}var b={env:Lc,wasi_snapshot_preview1:Lc};z++;if(w.instantiateWasm)try{return w.instantiateWasm(b,a)}catch(c){y(`Module.instantiateWasm callback failed with error: ${c}`),fa(c)}Ia??=Ha("skwasm_heavy.wasm")?"skwasm_heavy.wasm":ma("skwasm_heavy.wasm");La(b,function(c){a(c.instance,c.module)}).catch(fa);return{}}();w._canvas_saveLayer=(a,b,c,e)=>(w._canvas_saveLayer=W.canvas_saveLayer)(a,b,c,e);
|
||||
w._canvas_save=a=>(w._canvas_save=W.canvas_save)(a);w._canvas_restore=a=>(w._canvas_restore=W.canvas_restore)(a);w._canvas_restoreToCount=(a,b)=>(w._canvas_restoreToCount=W.canvas_restoreToCount)(a,b);w._canvas_getSaveCount=a=>(w._canvas_getSaveCount=W.canvas_getSaveCount)(a);w._canvas_translate=(a,b,c)=>(w._canvas_translate=W.canvas_translate)(a,b,c);w._canvas_scale=(a,b,c)=>(w._canvas_scale=W.canvas_scale)(a,b,c);w._canvas_rotate=(a,b)=>(w._canvas_rotate=W.canvas_rotate)(a,b);
|
||||
w._canvas_skew=(a,b,c)=>(w._canvas_skew=W.canvas_skew)(a,b,c);w._canvas_transform=(a,b)=>(w._canvas_transform=W.canvas_transform)(a,b);w._canvas_clear=(a,b)=>(w._canvas_clear=W.canvas_clear)(a,b);w._canvas_clipRect=(a,b,c,e)=>(w._canvas_clipRect=W.canvas_clipRect)(a,b,c,e);w._canvas_clipRRect=(a,b,c)=>(w._canvas_clipRRect=W.canvas_clipRRect)(a,b,c);w._canvas_clipPath=(a,b,c)=>(w._canvas_clipPath=W.canvas_clipPath)(a,b,c);w._canvas_drawColor=(a,b,c)=>(w._canvas_drawColor=W.canvas_drawColor)(a,b,c);
|
||||
w._canvas_drawLine=(a,b,c,e,f,h)=>(w._canvas_drawLine=W.canvas_drawLine)(a,b,c,e,f,h);w._canvas_drawPaint=(a,b)=>(w._canvas_drawPaint=W.canvas_drawPaint)(a,b);w._canvas_drawRect=(a,b,c)=>(w._canvas_drawRect=W.canvas_drawRect)(a,b,c);w._canvas_drawRRect=(a,b,c)=>(w._canvas_drawRRect=W.canvas_drawRRect)(a,b,c);w._canvas_drawDRRect=(a,b,c,e)=>(w._canvas_drawDRRect=W.canvas_drawDRRect)(a,b,c,e);w._canvas_drawOval=(a,b,c)=>(w._canvas_drawOval=W.canvas_drawOval)(a,b,c);
|
||||
@@ -102,7 +102,7 @@ w._picture_getCullRect=(a,b)=>(w._picture_getCullRect=W.picture_getCullRect)(a,b
|
||||
w._shader_createRadialGradient=(a,b,c,e,f,h,l,m)=>(w._shader_createRadialGradient=W.shader_createRadialGradient)(a,b,c,e,f,h,l,m);w._shader_createConicalGradient=(a,b,c,e,f,h,l,m)=>(w._shader_createConicalGradient=W.shader_createConicalGradient)(a,b,c,e,f,h,l,m);w._shader_createSweepGradient=(a,b,c,e,f,h,l,m,p)=>(w._shader_createSweepGradient=W.shader_createSweepGradient)(a,b,c,e,f,h,l,m,p);w._shader_dispose=a=>(w._shader_dispose=W.shader_dispose)(a);
|
||||
w._runtimeEffect_create=a=>(w._runtimeEffect_create=W.runtimeEffect_create)(a);w._runtimeEffect_dispose=a=>(w._runtimeEffect_dispose=W.runtimeEffect_dispose)(a);w._runtimeEffect_getUniformSize=a=>(w._runtimeEffect_getUniformSize=W.runtimeEffect_getUniformSize)(a);w._shader_createRuntimeEffectShader=(a,b,c,e)=>(w._shader_createRuntimeEffectShader=W.shader_createRuntimeEffectShader)(a,b,c,e);w._shader_createFromImage=(a,b,c,e,f)=>(w._shader_createFromImage=W.shader_createFromImage)(a,b,c,e,f);
|
||||
w._uniformData_create=a=>(w._uniformData_create=W.uniformData_create)(a);w._uniformData_dispose=a=>(w._uniformData_dispose=W.uniformData_dispose)(a);w._uniformData_getPointer=a=>(w._uniformData_getPointer=W.uniformData_getPointer)(a);w._skString_allocate=a=>(w._skString_allocate=W.skString_allocate)(a);w._skString_getData=a=>(w._skString_getData=W.skString_getData)(a);w._skString_getLength=a=>(w._skString_getLength=W.skString_getLength)(a);w._skString_free=a=>(w._skString_free=W.skString_free)(a);
|
||||
w._skString16_allocate=a=>(w._skString16_allocate=W.skString16_allocate)(a);w._skString16_getData=a=>(w._skString16_getData=W.skString16_getData)(a);w._skString16_free=a=>(w._skString16_free=W.skString16_free)(a);w._surface_create=()=>(w._surface_create=W.surface_create)();w._surface_setCanvas=(a,b)=>(w._surface_setCanvas=W.surface_setCanvas)(a,b);
|
||||
w._skString16_allocate=a=>(w._skString16_allocate=W.skString16_allocate)(a);w._skString16_getData=a=>(w._skString16_getData=W.skString16_getData)(a);w._skString16_free=a=>(w._skString16_free=W.skString16_free)(a);w._skwasm_isWimp=()=>(w._skwasm_isWimp=W.skwasm_isWimp)();w._surface_create=()=>(w._surface_create=W.surface_create)();w._surface_setCanvas=(a,b)=>(w._surface_setCanvas=W.surface_setCanvas)(a,b);
|
||||
var pc=w._surface_receiveCanvasOnWorker=(a,b,c)=>(pc=w._surface_receiveCanvasOnWorker=W.surface_receiveCanvasOnWorker)(a,b,c),qc=w._surface_onInitialized=(a,b)=>(qc=w._surface_onInitialized=W.surface_onInitialized)(a,b);w._surface_setSize=(a,b,c)=>(w._surface_setSize=W.surface_setSize)(a,b,c);
|
||||
var rc=w._surface_resizeOnWorker=(a,b,c,e)=>(rc=w._surface_resizeOnWorker=W.surface_resizeOnWorker)(a,b,c,e),sc=w._surface_onResizeComplete=(a,b)=>(sc=w._surface_onResizeComplete=W.surface_onResizeComplete)(a,b);w._surface_getThreadId=a=>(w._surface_getThreadId=W.surface_getThreadId)(a);w._surface_getGlContext=a=>(w._surface_getGlContext=W.surface_getGlContext)(a);w._surface_triggerContextLoss=a=>(w._surface_triggerContextLoss=W.surface_triggerContextLoss)(a);
|
||||
var tc=w._surface_triggerContextLossOnWorker=(a,b)=>(tc=w._surface_triggerContextLossOnWorker=W.surface_triggerContextLossOnWorker)(a,b),uc=w._surface_onContextLossTriggered=(a,b)=>(uc=w._surface_onContextLossTriggered=W.surface_onContextLossTriggered)(a,b),vc=w._surface_reportContextLost=(a,b)=>(vc=w._surface_reportContextLost=W.surface_reportContextLost)(a,b);w._surface_setCallbackHandler=(a,b)=>(w._surface_setCallbackHandler=W.surface_setCallbackHandler)(a,b);
|
||||
@@ -131,12 +131,12 @@ w._textStyle_setForeground=(a,b)=>(w._textStyle_setForeground=W.textStyle_setFor
|
||||
w._vertices_dispose=a=>(w._vertices_dispose=W.vertices_dispose)(a);w._animatedImage_create=(a,b,c)=>(w._animatedImage_create=W.animatedImage_create)(a,b,c);w._animatedImage_dispose=a=>(w._animatedImage_dispose=W.animatedImage_dispose)(a);w._animatedImage_getFrameCount=a=>(w._animatedImage_getFrameCount=W.animatedImage_getFrameCount)(a);w._animatedImage_getRepetitionCount=a=>(w._animatedImage_getRepetitionCount=W.animatedImage_getRepetitionCount)(a);
|
||||
w._animatedImage_getCurrentFrameDurationMilliseconds=a=>(w._animatedImage_getCurrentFrameDurationMilliseconds=W.animatedImage_getCurrentFrameDurationMilliseconds)(a);w._animatedImage_decodeNextFrame=a=>(w._animatedImage_decodeNextFrame=W.animatedImage_decodeNextFrame)(a);w._animatedImage_getCurrentFrame=a=>(w._animatedImage_getCurrentFrame=W.animatedImage_getCurrentFrame)(a);w._skwasm_isHeavy=()=>(w._skwasm_isHeavy=W.skwasm_isHeavy)();
|
||||
w._paragraphBuilder_create=(a,b)=>(w._paragraphBuilder_create=W.paragraphBuilder_create)(a,b);w._paragraphBuilder_build=a=>(w._paragraphBuilder_build=W.paragraphBuilder_build)(a);w._paragraphBuilder_setGraphemeBreaksUtf16=(a,b)=>(w._paragraphBuilder_setGraphemeBreaksUtf16=W.paragraphBuilder_setGraphemeBreaksUtf16)(a,b);w._paragraphBuilder_setWordBreaksUtf16=(a,b)=>(w._paragraphBuilder_setWordBreaksUtf16=W.paragraphBuilder_setWordBreaksUtf16)(a,b);
|
||||
w._paragraphBuilder_setLineBreaksUtf16=(a,b)=>(w._paragraphBuilder_setLineBreaksUtf16=W.paragraphBuilder_setLineBreaksUtf16)(a,b);w._skwasm_isWimp=()=>(w._skwasm_isWimp=W.skwasm_isWimp)();var Ab=a=>(Ab=W.malloc)(a),Cc=(a,b)=>(Cc=W._emscripten_timeout)(a,b),X=(a,b)=>(X=W.setThrew)(a,b),Y=a=>(Y=W._emscripten_stack_restore)(a),lc=a=>(lc=W._emscripten_stack_alloc)(a),Z=()=>(Z=W.emscripten_stack_get_current)(),Aa=(a,b)=>(Aa=W._emscripten_wasm_worker_initialize)(a,b);
|
||||
function Ec(a,b,c){var e=Z();try{return B.get(a)(b,c)}catch(f){Y(e);if(f!==f+0)throw f;X(1,0)}}function Jc(a,b,c){var e=Z();try{B.get(a)(b,c)}catch(f){Y(e);if(f!==f+0)throw f;X(1,0)}}function Dc(a,b){var c=Z();try{return B.get(a)(b)}catch(e){Y(c);if(e!==e+0)throw e;X(1,0)}}function Kc(a,b,c,e){var f=Z();try{B.get(a)(b,c,e)}catch(h){Y(f);if(h!==h+0)throw h;X(1,0)}}function Fc(a,b,c,e){var f=Z();try{return B.get(a)(b,c,e)}catch(h){Y(f);if(h!==h+0)throw h;X(1,0)}}
|
||||
function Gc(a,b,c,e,f){var h=Z();try{return B.get(a)(b,c,e,f)}catch(l){Y(h);if(l!==l+0)throw l;X(1,0)}}function Lc(a,b,c,e,f,h,l,m){var p=Z();try{B.get(a)(b,c,e,f,h,l,m)}catch(v){Y(p);if(v!==v+0)throw v;X(1,0)}}function Ic(a,b){var c=Z();try{B.get(a)(b)}catch(e){Y(c);if(e!==e+0)throw e;X(1,0)}}function Hc(a,b,c,e,f,h,l){var m=Z();try{return B.get(a)(b,c,e,f,h,l)}catch(p){Y(m);if(p!==p+0)throw p;X(1,0)}}w.wasmMemory=g;w.wasmExports=W;w.stackAlloc=mc;
|
||||
w._paragraphBuilder_setLineBreaksUtf16=(a,b)=>(w._paragraphBuilder_setLineBreaksUtf16=W.paragraphBuilder_setLineBreaksUtf16)(a,b);var Ab=a=>(Ab=W.malloc)(a),Cc=(a,b)=>(Cc=W._emscripten_timeout)(a,b),X=(a,b)=>(X=W.setThrew)(a,b),Y=a=>(Y=W._emscripten_stack_restore)(a),lc=a=>(lc=W._emscripten_stack_alloc)(a),Z=()=>(Z=W.emscripten_stack_get_current)(),Aa=(a,b)=>(Aa=W._emscripten_wasm_worker_initialize)(a,b);
|
||||
function Ec(a,b,c){var e=Z();try{return B.get(a)(b,c)}catch(f){Y(e);if(f!==f+0)throw f;X(1,0)}}function Ic(a,b,c){var e=Z();try{B.get(a)(b,c)}catch(f){Y(e);if(f!==f+0)throw f;X(1,0)}}function Dc(a,b){var c=Z();try{return B.get(a)(b)}catch(e){Y(c);if(e!==e+0)throw e;X(1,0)}}function Jc(a,b,c,e){var f=Z();try{B.get(a)(b,c,e)}catch(h){Y(f);if(h!==h+0)throw h;X(1,0)}}function Fc(a,b,c,e,f){var h=Z();try{return B.get(a)(b,c,e,f)}catch(l){Y(h);if(l!==l+0)throw l;X(1,0)}}
|
||||
function Kc(a,b,c,e,f,h,l,m){var p=Z();try{B.get(a)(b,c,e,f,h,l,m)}catch(v){Y(p);if(v!==v+0)throw v;X(1,0)}}function Hc(a,b){var c=Z();try{B.get(a)(b)}catch(e){Y(c);if(e!==e+0)throw e;X(1,0)}}function Gc(a,b,c,e,f,h,l){var m=Z();try{return B.get(a)(b,c,e,f,h,l)}catch(p){Y(m);if(p!==p+0)throw p;X(1,0)}}w.wasmMemory=g;w.wasmExports=W;w.stackAlloc=mc;
|
||||
w.addFunction=(a,b)=>{if(!T){T=new WeakMap;var c=B.length;if(T)for(var e=0;e<0+c;e++){var f=B.get(e);f&&T.set(f,e)}}if(c=T.get(a)||0)return c;if(kc.length)c=kc.pop();else{try{B.grow(1)}catch(m){if(!(m instanceof RangeError))throw m;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.";}c=B.length-1}try{B.set(c,a)}catch(m){if(!(m instanceof TypeError))throw m;if("function"==typeof WebAssembly.Function){e=WebAssembly.Function;f={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"};for(var h={parameters:[],
|
||||
results:"v"==b[0]?[]:[f[b[0]]]},l=1;l<b.length;++l)h.parameters.push(f[b[l]]);b=new e(h,a)}else{e=[1];f=b.slice(0,1);b=b.slice(1);h={i:127,p:127,j:126,f:125,d:124,e:111};e.push(96);l=b.length;128>l?e.push(l):e.push(l%128|128,l>>7);for(l=0;l<b.length;++l)e.push(h[b[l]]);"v"==f?e.push(0):e.push(1,h[f]);b=[0,97,115,109,1,0,0,0,1];f=e.length;128>f?b.push(f):b.push(f%128|128,f>>7);b.push(...e);b.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);b=new WebAssembly.Module(new Uint8Array(b));b=(new WebAssembly.Instance(b,
|
||||
{e:{f:a}})).exports.f}B.set(c,b)}T.set(a,c);return c};var Nc,Oc;A=function Pc(){Nc||Qc();Nc||(A=Pc)};function Qc(){if(!(0<z))if(ka)ea(w),ya();else{if(!Oc&&(Oc=1,Ea(va),0<z))return;Nc||(Nc=1,w.calledRun=1,ra||(ya(),ea(w),Ea(xa)))}}Qc();moduleRtn=ha;
|
||||
{e:{f:a}})).exports.f}B.set(c,b)}T.set(a,c);return c};var Mc,Nc;A=function Oc(){Mc||Pc();Mc||(A=Oc)};function Pc(){if(!(0<z))if(ka)ea(w),ya();else{if(!Nc&&(Nc=1,Ea(va),0<z))return;Mc||(Mc=1,w.calledRun=1,ra||(ya(),ea(w),Ea(xa)))}}Pc();moduleRtn=ha;
|
||||
|
||||
|
||||
return moduleRtn;
|
||||
|
||||
+14400
-14286
File diff suppressed because one or more lines are too long
Binary file not shown.
+94
-95
@@ -6,98 +6,98 @@ var wimp = (() => {
|
||||
function(moduleArg = {}) {
|
||||
var moduleRtn;
|
||||
|
||||
function c(){g.buffer!=k.buffer&&p();return k}function q(){g.buffer!=k.buffer&&p();return aa}function t(){g.buffer!=k.buffer&&p();return ba}function u(){g.buffer!=k.buffer&&p();return ca}function v(){g.buffer!=k.buffer&&p();return da}var w=moduleArg,ea,fa,ha=new Promise((a,b)=>{ea=a;fa=b}),ia="object"==typeof window,ja="function"==typeof importScripts,ka=w.$ww,la=Object.assign({},w),x="";function ma(a){return w.locateFile?w.locateFile(a,x):x+a}var na,oa;
|
||||
function c(){g.buffer!=k.buffer&&p();return k}function q(){g.buffer!=k.buffer&&p();return aa}function r(){g.buffer!=k.buffer&&p();return ba}function t(){g.buffer!=k.buffer&&p();return ca}function v(){g.buffer!=k.buffer&&p();return da}var w=moduleArg,ea,fa,ha=new Promise((a,b)=>{ea=a;fa=b}),ia="object"==typeof window,ja="function"==typeof importScripts,ka=w.$ww,la=Object.assign({},w),x="";function ma(a){return w.locateFile?w.locateFile(a,x):x+a}var na,oa;
|
||||
if(ia||ja)ja?x=self.location.href:"undefined"!=typeof document&&document.currentScript&&(x=document.currentScript.src),_scriptName&&(x=_scriptName),x.startsWith("blob:")?x="":x=x.substr(0,x.replace(/[?#].*/,"").lastIndexOf("/")+1),ja&&(oa=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),na=a=>fetch(a,{credentials:"same-origin"}).then(b=>b.ok?b.arrayBuffer():Promise.reject(Error(b.status+" : "+b.url)));
|
||||
var pa=console.log.bind(console),y=console.error.bind(console);Object.assign(w,la);la=null;var g,qa,ra=!1,sa,k,aa,ta,ua,ba,ca,da;function p(){var a=g.buffer;k=new Int8Array(a);ta=new Int16Array(a);aa=new Uint8Array(a);ua=new Uint16Array(a);ba=new Int32Array(a);ca=new Uint32Array(a);da=new Float32Array(a);new Float64Array(a)}w.wasmMemory?g=w.wasmMemory:g=new WebAssembly.Memory({initial:256,maximum:32768,shared:!0});p();var va=[],wa=[],xa=[];
|
||||
function ya(){ka?(za=1,Aa(w.sb,w.sz),removeEventListener("message",Ba),Ca=Ca.forEach(Da),addEventListener("message",Da)):Ea(wa)}var z=0,Fa=null,A=null;function Ga(a){a="Aborted("+a+")";y(a);ra=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");fa(a);throw a;}var Ha=a=>a.startsWith("data:application/octet-stream;base64,"),Ia;
|
||||
function Ja(a){return na(a).then(b=>new Uint8Array(b),()=>{if(oa)var b=oa(a);else throw"both async and sync fetching of the wasm failed";return b})}function Ka(a,b,d){return Ja(a).then(e=>WebAssembly.instantiate(e,b)).then(d,e=>{y(`failed to asynchronously prepare wasm: ${e}`);Ga(e)})}
|
||||
function La(a,b){var d=Ia;return"function"!=typeof WebAssembly.instantiateStreaming||Ha(d)||"function"!=typeof fetch?Ka(d,a,b):fetch(d,{credentials:"same-origin"}).then(e=>WebAssembly.instantiateStreaming(e,a).then(b,function(f){y(`wasm streaming compile failed: ${f}`);y("falling back to ArrayBuffer instantiation");return Ka(d,a,b)}))}function Ma(a){this.name="ExitStatus";this.message=`Program terminated with exit(${a})`;this.status=a}
|
||||
var Ca=[],Na=a=>{if(!(a instanceof Ma||"unwind"==a))throw a;},Oa=0,Pa=a=>{sa=a;za||0<Oa||(ra=!0);throw new Ma(a);},Qa=a=>{if(!ra)try{if(a(),!(za||0<Oa))try{sa=a=sa,Pa(a)}catch(b){Na(b)}}catch(b){Na(b)}},B,Da=a=>{let b=a.data,d=b._wsc;d&&Qa(()=>B.get(d)(...b.x))},Ba=a=>{Ca.push(a)},Ea=a=>{a.forEach(b=>b(w))},za=w.noExitRuntime||!0;class Ra{constructor(a){this.s=a-24}}
|
||||
var Sa=0,Ta=0,Ua="undefined"!=typeof TextDecoder?new TextDecoder:void 0,Va=(a,b=0,d=NaN)=>{var e=b+d;for(d=b;a[d]&&!(d>=e);)++d;if(16<d-b&&a.buffer&&Ua)return Ua.decode(a.slice(b,d));for(e="";b<d;){var f=a[b++];if(f&128){var h=a[b++]&63;if(192==(f&224))e+=String.fromCharCode((f&31)<<6|h);else{var l=a[b++]&63;f=224==(f&240)?(f&15)<<12|h<<6|l:(f&7)<<18|h<<12|l<<6|a[b++]&63;65536>f?e+=String.fromCharCode(f):(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else e+=String.fromCharCode(f)}return e},
|
||||
C=(a,b)=>a?Va(q(),a,b):"",D={},Wa=1,Xa={},E=(a,b,d)=>{var e=q();if(0<d){var f=b;d=b+d-1;for(var h=0;h<a.length;++h){var l=a.charCodeAt(h);if(55296<=l&&57343>=l){var m=a.charCodeAt(++h);l=65536+((l&1023)<<10)|m&1023}if(127>=l){if(b>=d)break;e[b++]=l}else{if(2047>=l){if(b+1>=d)break;e[b++]=192|l>>6}else{if(65535>=l){if(b+2>=d)break;e[b++]=224|l>>12}else{if(b+3>=d)break;e[b++]=240|l>>18;e[b++]=128|l>>12&63}e[b++]=128|l>>6&63}e[b++]=128|l&63}}e[b]=0;a=b-f}else a=0;return a},F,Ya=a=>{var b=a.getExtension("ANGLE_instanced_arrays");
|
||||
b&&(a.vertexAttribDivisor=(d,e)=>b.vertexAttribDivisorANGLE(d,e),a.drawArraysInstanced=(d,e,f,h)=>b.drawArraysInstancedANGLE(d,e,f,h),a.drawElementsInstanced=(d,e,f,h,l)=>b.drawElementsInstancedANGLE(d,e,f,h,l))},Za=a=>{var b=a.getExtension("OES_vertex_array_object");b&&(a.createVertexArray=()=>b.createVertexArrayOES(),a.deleteVertexArray=d=>b.deleteVertexArrayOES(d),a.bindVertexArray=d=>b.bindVertexArrayOES(d),a.isVertexArray=d=>b.isVertexArrayOES(d))},$a=a=>{var b=a.getExtension("WEBGL_draw_buffers");
|
||||
b&&(a.drawBuffers=(d,e)=>b.drawBuffersWEBGL(d,e))},ab=a=>{a.ba=a.getExtension("WEBGL_draw_instanced_base_vertex_base_instance")},bb=a=>{a.ca=a.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance")},cb=a=>{var b="ANGLE_instanced_arrays EXT_blend_minmax EXT_disjoint_timer_query EXT_frag_depth EXT_shader_texture_lod EXT_sRGB OES_element_index_uint OES_fbo_render_mipmap OES_standard_derivatives OES_texture_float OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_depth_texture WEBGL_draw_buffers EXT_color_buffer_float EXT_conservative_depth EXT_disjoint_timer_query_webgl2 EXT_texture_norm16 NV_shader_noperspective_interpolation WEBGL_clip_cull_distance EXT_clip_control EXT_color_buffer_half_float EXT_depth_clamp EXT_float_blend EXT_polygon_offset_clamp EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic KHR_parallel_shader_compile OES_texture_float_linear WEBGL_blend_func_extended WEBGL_compressed_texture_astc WEBGL_compressed_texture_etc WEBGL_compressed_texture_etc1 WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context WEBGL_multi_draw WEBGL_polygon_mode".split(" ");
|
||||
return(a.getSupportedExtensions()||[]).filter(d=>b.includes(d))},db=1,G=[],H=[],eb=[],I=[],J=[],K=[],fb=[],L=[],M=[],gb=[],hb={},ib={},jb=4,kb=0,N=a=>{for(var b=db++,d=a.length;d<b;d++)a[d]=null;return b},lb=(a,b,d,e)=>{for(var f=0;f<a;f++){var h=F[d](),l=h&&N(e);h?(h.name=l,e[l]=h):O||=1282;t()[b+4*f>>2]=l}},nb=a=>{var b={J:2,alpha:!0,depth:!0,stencil:!0,antialias:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:"default",failIfMajorPerformanceCaveat:!1,H:!0};a.s||(a.s=a.getContext,
|
||||
a.getContext=function(e,f){f=a.s(e,f);return"webgl"==e==f instanceof WebGLRenderingContext?f:null});var d=1<b.J?a.getContext("webgl2",b):a.getContext("webgl",b);return d?mb(d,b):0},mb=(a,b)=>{var d=N(L),e={handle:d,attributes:b,version:b.J,m:a};a.canvas&&(a.canvas.M=e);L[d]=e;("undefined"==typeof b.H||b.H)&&ob(e);return d},ob=a=>{a||=P;if(!a.S){a.S=!0;var b=a.m;b.U=b.getExtension("WEBGL_multi_draw");b.P=b.getExtension("EXT_polygon_offset_clamp");b.O=b.getExtension("EXT_clip_control");b.Z=b.getExtension("WEBGL_polygon_mode");
|
||||
Ya(b);Za(b);$a(b);ab(b);bb(b);2<=a.version&&(b.o=b.getExtension("EXT_disjoint_timer_query_webgl2"));if(2>a.version||!b.o)b.o=b.getExtension("EXT_disjoint_timer_query");cb(b).forEach(d=>{d.includes("lose_context")||d.includes("debug")||b.getExtension(d)})}},O,P,pb=(a,b)=>{F.bindFramebuffer(a,eb[b])},qb=a=>F.clear(a),rb=(a,b,d,e)=>F.clearColor(a,b,d,e),sb=a=>F.clearStencil(a),tb=(a,b)=>{u()[a>>2]=b;var d=u()[a>>2];u()[a+4>>2]=(b-d)/4294967296};
|
||||
function ub(){var a=cb(F);return a=a.concat(a.map(b=>"GL_"+b))}
|
||||
var vb=(a,b,d)=>{if(b){var e=void 0;switch(a){case 36346:e=1;break;case 36344:0!=d&&1!=d&&(O||=1280);return;case 34814:case 36345:e=0;break;case 34466:var f=F.getParameter(34467);e=f?f.length:0;break;case 33309:if(2>P.version){O||=1282;return}e=ub().length;break;case 33307:case 33308:if(2>P.version){O||=1280;return}e=33307==a?3:0}if(void 0===e)switch(f=F.getParameter(a),typeof f){case "number":e=f;break;case "boolean":e=f?1:0;break;case "string":O||=1280;return;case "object":if(null===f)switch(a){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:e=
|
||||
0;break;default:O||=1280;return}else{if(f instanceof Float32Array||f instanceof Uint32Array||f instanceof Int32Array||f instanceof Array){for(a=0;a<f.length;++a)switch(d){case 0:t()[b+4*a>>2]=f[a];break;case 2:v()[b+4*a>>2]=f[a];break;case 4:c()[b+a]=f[a]?1:0}return}try{e=f.name|0}catch(h){O||=1280;y(`GL_INVALID_ENUM in glGet${d}v: Unknown object returned from WebGL getParameter(${a})! (error: ${h})`);return}}break;default:O||=1280;y(`GL_INVALID_ENUM in glGet${d}v: Native code calling glGet${d}v(${a}) and it returns ${f} of type ${typeof f}!`);
|
||||
return}switch(d){case 1:tb(b,e);break;case 0:t()[b>>2]=e;break;case 2:v()[b>>2]=e;break;case 4:c()[b]=e?1:0}}else O||=1281},wb=(a,b)=>vb(a,b,0),xb=a=>{a-=5120;0==a?a=c():1==a?a=q():2==a?(g.buffer!=k.buffer&&p(),a=ta):4==a?a=t():6==a?a=v():5==a||28922==a||28520==a||30779==a||30782==a?a=u():(g.buffer!=k.buffer&&p(),a=ua);return a},yb=(a,b,d,e,f)=>{a=xb(a);b=e*((kb||d)*({5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[b-6402]||1)*a.BYTES_PER_ELEMENT+jb-1&-jb);return a.subarray(f>>>31-Math.clz32(a.BYTES_PER_ELEMENT),
|
||||
f+b>>>31-Math.clz32(a.BYTES_PER_ELEMENT))},zb=(a,b,d,e,f,h,l)=>{if(2<=P.version)if(F.D)F.readPixels(a,b,d,e,f,h,l);else{var m=xb(h);l>>>=31-Math.clz32(m.BYTES_PER_ELEMENT);F.readPixels(a,b,d,e,f,h,m,l)}else(m=yb(h,f,d,e,l))?F.readPixels(a,b,d,e,f,h,m):O||=1280},Ab=()=>{Ga("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER");return 0},R={},Bb=a=>{a.forEach(b=>{var d=Ab();d&&(R[d]=b)})},Cb={},Eb=()=>{if(!Db){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",
|
||||
PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:"./this.program"},b;for(b in Cb)void 0===Cb[b]?delete a[b]:a[b]=Cb[b];var d=[];for(b in a)d.push(`${b}=${a[b]}`);Db=d}return Db},Db,Fb=[null,[],[]],Hb=a=>{for(var b=0,d=0;d<a.length;++d){var e=a.charCodeAt(d);127>=e?b++:2047>=e?b+=2:55296<=e&&57343>=e?(b+=4,++d):b+=3}b+=1;(d=Gb(b))&&E(a,d,b);return d},Ib=a=>"]"==a.slice(-1)&&a.lastIndexOf("["),S=a=>{var b=F.N;
|
||||
if(b){var d=b.u[a];"number"==typeof d&&(b.u[a]=d=F.getUniformLocation(b,b.K[a]+(0<d?`[${d}]`:"")));return d}O||=1282},T=[];function Jb(){}function Kb(){}function Lb(){}function Mb(){}function Nb(){}function Ob(){}function Pb(){}function Qb(){}function Rb(){}function Sb(){}function Tb(){}function Ub(){}function Vb(){}function Wb(){}function Xb(){}function Yb(){}function Zb(){}function $b(){}function ac(){}function bc(){}function cc(){}function dc(){}function ec(){}function U(){}function fc(){}
|
||||
function gc(){}var V,hc=[],jc=a=>ic(a);w.stackAlloc=jc;ka&&(D[0]=this,addEventListener("message",Ba));for(var kc=new Float32Array(288),lc=0;288>=lc;++lc)T[lc]=kc.subarray(0,lc);
|
||||
(function(){if(w.skwasmSingleThreaded){Yb=function(){return!0};let e;Kb=function(f,h){e=h};Lb=function(){return performance.now()};U=function(f){queueMicrotask(()=>e(f))}}else{Yb=function(){return!1};let e=0;Kb=function(f,h){function l({data:m}){const n=m.l;n&&("syncTimeOrigin"==n?e=performance.timeOrigin-m.timeOrigin:h(m))}f?(D[f].addEventListener("message",l),D[f].postMessage({l:"syncTimeOrigin",timeOrigin:performance.timeOrigin})):addEventListener("message",l)};Lb=function(){return performance.now()+
|
||||
e};U=function(f,h,l){l?D[l].postMessage(f,{transfer:h}):postMessage(f,{transfer:h})}}const a=new Map,b=new Map,d=new Map;Mb=function(e){Kb(e,function(f){var h=f.l;if(h)switch(h){case "transferCanvas":mc(f.g,f.canvas,f.h);break;case "onInitialized":nc(f.g,f.h);break;case "resizeSurface":oc(f.g,f.width,f.height,f.h);break;case "onResizeComplete":pc(f.g,f.h);break;case "triggerContextLoss":qc(f.g,f.h);break;case "onContextLossTriggered":rc(f.g,f.h);break;case "reportContextLost":sc(f.g,f.h);break;case "renderPictures":tc(f.g,
|
||||
f.W,f.V,f.h,Lb());break;case "onRenderComplete":uc(f.g,f.h,{imageBitmaps:f.R,rasterStartMilliseconds:f.Y,rasterEndMilliseconds:f.X});break;case "setAssociatedObject":d.set(f.F,f.object);break;case "disposeAssociatedObject":f=f.F;h=d.get(f);h.close&&h.close();d.delete(f);break;case "disposeSurface":vc(f.g);break;case "rasterizeImage":wc(f.g,f.image,f.format,f.h);break;case "onRasterizeComplete":xc(f.g,f.data,f.h);break;default:console.warn(`unrecognized skwasm message: ${h}`)}})};fc=function(e,f,h){U({l:"setAssociatedObject",
|
||||
F:f,object:h},[h],e)};Wb=function(e){return d.get(e)};Vb=function(e,f){U({l:"disposeAssociatedObject",F:f},[],e)};Pb=function(e,f){U({l:"disposeSurface",g:f},[],e)};Tb=function(e,f,h,l){U({l:"transferCanvas",g:f,canvas:h,h:l},[h],e)};bc=function(e,f,h){U({l:"onInitialized",g:e,$:f,h},[])};Sb=function(e,f,h,l,m){U({l:"resizeSurface",g:f,width:h,height:l,h:m},[],e)};cc=function(e,f){U({l:"onResizeComplete",g:e,h:f},[])};dc=function(e,f,h){e=b.get(e);e.width=f;e.height=h};Rb=function(e,f,h,l,m){U({l:"renderPictures",
|
||||
g:f,W:h,V:l,h:m},[],e)};ec=async function(e,f,h,l){f||=[];U({l:"onRenderComplete",g:e,h:l,R:f,Y:h,X:Lb()},[...f])};Jb=function(e,f){f||=[];e=b.get(e);f.push(e.transferToImageBitmap());return f};Qb=function(e,f,h,l,m){U({l:"rasterizeImage",g:f,image:h,format:l,h:m},[],e)};Zb=function(e,f,h){U({l:"onRasterizeComplete",g:e,data:f,h})};Ub=function(e,f,h){U({l:"triggerContextLoss",g:f,h},[],e)};$b=function(e,f){U({l:"onContextLossTriggered",g:e,h:f},[])};ac=function(e,f){U({l:"reportContextLost",g:e,h:f},
|
||||
[])};gc=function(){P.m.getExtension("WEBGL_lose_context").loseContext()};Xb=function(e,f){const h=nb(e);b.set(h,e);var l=function(m){m.preventDefault();yc(f);e.removeEventListener("webglcontextlost",l)};e.addEventListener("webglcontextlost",l);a.set(h,l);return h};Ob=function(e){const f=b.get(e),h=a.get(e);f&&h&&f.removeEventListener("webglcontextlost",h);P===L[e]&&(P=null);"object"==typeof JSEvents&&JSEvents.da(L[e].m.canvas);L[e]&&L[e].m.canvas&&(L[e].m.canvas.M=void 0);L[e]=null;b.delete(e);a.delete(e)};
|
||||
Nb=function(e,f,h){const l=P.m,m=l.createTexture();l.bindTexture(l.TEXTURE_2D,m);l.pixelStorei(l.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0);l.texImage2D(l.TEXTURE_2D,0,l.RGBA,f,h,0,l.RGBA,l.UNSIGNED_BYTE,e);l.pixelStorei(l.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1);l.bindTexture(l.TEXTURE_2D,null);e=N(J);J[e]=m;return e}})();
|
||||
var Jc={__cxa_throw:(a,b,d)=>{var e=new Ra(a);u()[e.s+16>>2]=0;u()[e.s+4>>2]=b;u()[e.s+8>>2]=d;Sa=a;Ta++;throw Sa;},__syscall_fcntl64:function(){return 0},__syscall_fstat64:()=>{},__syscall_ioctl:function(){return 0},__syscall_openat:function(){},_abort_js:()=>{Ga("")},_emscripten_create_wasm_worker:(a,b)=>{let d=D[Wa]=new Worker(ma("wimp.ww.js"));d.postMessage({$ww:Wa,wasm:qa,js:w.mainScriptUrlOrBlob||_scriptName,wasmMemory:g,sb:a,sz:b});d.onmessage=Da;return Wa++},_emscripten_get_now_is_monotonic:()=>
|
||||
1,_emscripten_runtime_keepalive_clear:()=>{za=!1;Oa=0},_emscripten_throw_longjmp:()=>{throw Infinity;},_mmap_js:function(){return-52},_munmap_js:function(){},_setitimer_js:(a,b)=>{Xa[a]&&(clearTimeout(Xa[a].id),delete Xa[a]);if(!b)return 0;var d=setTimeout(()=>{delete Xa[a];Qa(()=>zc(a,performance.now()))},b);Xa[a]={id:d,ea:b};return 0},_tzset_js:(a,b,d,e)=>{var f=(new Date).getFullYear(),h=(new Date(f,0,1)).getTimezoneOffset();f=(new Date(f,6,1)).getTimezoneOffset();var l=Math.max(h,f);u()[a>>2]=
|
||||
60*l;t()[b>>2]=Number(h!=f);b=m=>{var n=Math.abs(m);return`UTC${0<=m?"-":"+"}${String(Math.floor(n/60)).padStart(2,"0")}${String(n%60).padStart(2,"0")}`};a=b(h);b=b(f);f<h?(E(a,d,17),E(b,e,17)):(E(a,e,17),E(b,d,17))},emscripten_console_warn:a=>{console.warn(C(a))},emscripten_date_now:()=>Date.now(),emscripten_errn:(a,b)=>y(C(a,b)),emscripten_get_now:()=>performance.now(),emscripten_glBindFramebuffer:pb,emscripten_glClear:qb,emscripten_glClearColor:rb,emscripten_glClearStencil:sb,emscripten_glGetIntegerv:wb,
|
||||
emscripten_glReadPixels:zb,emscripten_resize_heap:a=>{var b=q().length;a>>>=0;if(a<=b||2147483648<a)return!1;for(var d=1;4>=d;d*=2){var e=b*(1+.2/d);e=Math.min(e,a+100663296);a:{e=(Math.min(2147483648,65536*Math.ceil(Math.max(a,e)/65536))-g.buffer.byteLength+65535)/65536|0;try{g.grow(e);p();var f=1;break a}catch(h){}f=void 0}if(f)return!0}return!1},emscripten_stack_snapshot:function(){var a=Error().stack.toString().split("\n");"Error"==a[0]&&a.shift();Bb(a);R.I=Ab();R.T=a;return R.I},emscripten_stack_unwind_buffer:(a,
|
||||
b,d)=>{if(R.I==a)var e=R.T;else e=Error().stack.toString().split("\n"),"Error"==e[0]&&e.shift(),Bb(e);for(var f=3;e[f]&&Ab()!=a;)++f;for(a=0;a<d&&e[a+f];++a)t()[b+4*a>>2]=Ab();return a},emscripten_wasm_worker_post_function_v:(a,b)=>{D[a].postMessage({_wsc:b,x:[]})},emscripten_webgl_enable_extension:function(a,b){a=L[a];b=C(b);b.startsWith("GL_")&&(b=b.substr(3));"ANGLE_instanced_arrays"==b&&Ya(F);"OES_vertex_array_object"==b&&Za(F);"WEBGL_draw_buffers"==b&&$a(F);"WEBGL_draw_instanced_base_vertex_base_instance"==
|
||||
b&&ab(F);"WEBGL_multi_draw_instanced_base_vertex_base_instance"==b&&bb(F);"WEBGL_multi_draw"==b&&(F.U=F.getExtension("WEBGL_multi_draw"));"EXT_polygon_offset_clamp"==b&&(F.P=F.getExtension("EXT_polygon_offset_clamp"));"EXT_clip_control"==b&&(F.O=F.getExtension("EXT_clip_control"));"WEBGL_polygon_mode"==b&&(F.Z=F.getExtension("WEBGL_polygon_mode"));return!!a.m.getExtension(b)},emscripten_webgl_make_context_current:a=>{P=L[a];w.aa=F=P?.m;return!a||F?0:-5},environ_get:(a,b)=>{var d=0;Eb().forEach((e,
|
||||
f)=>{var h=b+d;f=u()[a+4*f>>2]=h;for(h=0;h<e.length;++h)c()[f++]=e.charCodeAt(h);c()[f]=0;d+=e.length+1});return 0},environ_sizes_get:(a,b)=>{var d=Eb();u()[a>>2]=d.length;var e=0;d.forEach(f=>e+=f.length+1);u()[b>>2]=e;return 0},fd_close:()=>52,fd_pread:function(){return 52},fd_read:()=>52,fd_seek:function(){return 70},fd_write:(a,b,d,e)=>{for(var f=0,h=0;h<d;h++){var l=u()[b>>2],m=u()[b+4>>2];b+=8;for(var n=0;n<m;n++){var r=q()[l+n],Q=Fb[a];0===r||10===r?((1===a?pa:y)(Va(Q)),Q.length=0):Q.push(r)}f+=
|
||||
m}u()[e>>2]=f;return 0},glActiveTexture:a=>F.activeTexture(a),glAttachShader:(a,b)=>{F.attachShader(H[a],K[b])},glBeginQueryEXT:(a,b)=>{F.o.beginQueryEXT(a,M[b])},glBindAttribLocation:(a,b,d)=>{F.bindAttribLocation(H[a],b,C(d))},glBindBuffer:(a,b)=>{35051==a?F.D=b:35052==a&&(F.v=b);F.bindBuffer(a,G[b])},glBindBufferRange:(a,b,d,e,f)=>{F.bindBufferRange(a,b,G[d],e,f)},glBindFramebuffer:pb,glBindRenderbuffer:(a,b)=>{F.bindRenderbuffer(a,I[b])},glBindTexture:(a,b)=>{F.bindTexture(a,J[b])},glBindVertexArray:a=>
|
||||
{F.bindVertexArray(fb[a])},glBlendEquationSeparate:(a,b)=>F.blendEquationSeparate(a,b),glBlendFuncSeparate:(a,b,d,e)=>F.blendFuncSeparate(a,b,d,e),glBlitFramebuffer:(a,b,d,e,f,h,l,m,n,r)=>F.blitFramebuffer(a,b,d,e,f,h,l,m,n,r),glBufferData:(a,b,d,e)=>{2<=P.version?d&&b?F.bufferData(a,q(),e,d,b):F.bufferData(a,b,e):F.bufferData(a,d?q().subarray(d,d+b):b,e)},glBufferSubData:(a,b,d,e)=>{2<=P.version?d&&F.bufferSubData(a,b,q(),e,d):F.bufferSubData(a,b,q().subarray(e,e+d))},glCheckFramebufferStatus:a=>
|
||||
F.checkFramebufferStatus(a),glClear:qb,glClearColor:rb,glClearDepthf:a=>F.clearDepth(a),glClearStencil:sb,glColorMask:(a,b,d,e)=>{F.colorMask(!!a,!!b,!!d,!!e)},glCompileShader:a=>{F.compileShader(K[a])},glCreateProgram:()=>{var a=N(H),b=F.createProgram();b.name=a;b.C=b.A=b.B=0;b.G=1;H[a]=b;return a},glCreateShader:a=>{var b=N(K);K[b]=F.createShader(a);return b},glCullFace:a=>F.cullFace(a),glDeleteBuffers:(a,b)=>{for(var d=0;d<a;d++){var e=t()[b+4*d>>2],f=G[e];f&&(F.deleteBuffer(f),f.name=0,G[e]=null,
|
||||
e==F.D&&(F.D=0),e==F.v&&(F.v=0))}},glDeleteFramebuffers:(a,b)=>{for(var d=0;d<a;++d){var e=t()[b+4*d>>2],f=eb[e];f&&(F.deleteFramebuffer(f),f.name=0,eb[e]=null)}},glDeleteProgram:a=>{if(a){var b=H[a];b?(F.deleteProgram(b),b.name=0,H[a]=null):O||=1281}},glDeleteQueriesEXT:(a,b)=>{for(var d=0;d<a;d++){var e=t()[b+4*d>>2],f=M[e];f&&(F.o.deleteQueryEXT(f),M[e]=null)}},glDeleteRenderbuffers:(a,b)=>{for(var d=0;d<a;d++){var e=t()[b+4*d>>2],f=I[e];f&&(F.deleteRenderbuffer(f),f.name=0,I[e]=null)}},glDeleteShader:a=>
|
||||
{if(a){var b=K[a];b?(F.deleteShader(b),K[a]=null):O||=1281}},glDeleteSync:a=>{if(a){var b=gb[a];b?(F.deleteSync(b),b.name=0,gb[a]=null):O||=1281}},glDeleteTextures:(a,b)=>{for(var d=0;d<a;d++){var e=t()[b+4*d>>2],f=J[e];f&&(F.deleteTexture(f),f.name=0,J[e]=null)}},glDeleteVertexArrays:(a,b)=>{for(var d=0;d<a;d++){var e=t()[b+4*d>>2];F.deleteVertexArray(fb[e]);fb[e]=null}},glDepthFunc:a=>F.depthFunc(a),glDepthMask:a=>{F.depthMask(!!a)},glDepthRangef:(a,b)=>F.depthRange(a,b),glDetachShader:(a,b)=>{F.detachShader(H[a],
|
||||
K[b])},glDisable:a=>F.disable(a),glDisableVertexAttribArray:a=>{F.disableVertexAttribArray(a)},glDrawArrays:(a,b,d)=>{F.drawArrays(a,b,d)},glDrawElements:(a,b,d,e)=>{F.drawElements(a,b,d,e)},glEnable:a=>F.enable(a),glEnableVertexAttribArray:a=>{F.enableVertexAttribArray(a)},glEndQueryEXT:a=>{F.o.endQueryEXT(a)},glFenceSync:(a,b)=>(a=F.fenceSync(a,b))?(b=N(gb),a.name=b,gb[b]=a,b):0,glFinish:()=>F.finish(),glFlush:()=>F.flush(),glFramebufferRenderbuffer:(a,b,d,e)=>{F.framebufferRenderbuffer(a,b,d,I[e])},
|
||||
glFramebufferTexture2D:(a,b,d,e,f)=>{F.framebufferTexture2D(a,b,d,J[e],f)},glFrontFace:a=>F.frontFace(a),glGenBuffers:(a,b)=>{lb(a,b,"createBuffer",G)},glGenFramebuffers:(a,b)=>{lb(a,b,"createFramebuffer",eb)},glGenQueriesEXT:(a,b)=>{for(var d=0;d<a;d++){var e=F.o.createQueryEXT();if(!e){for(O||=1282;d<a;)t()[b+4*d++>>2]=0;break}var f=N(M);e.name=f;M[f]=e;t()[b+4*d>>2]=f}},glGenRenderbuffers:(a,b)=>{lb(a,b,"createRenderbuffer",I)},glGenTextures:(a,b)=>{lb(a,b,"createTexture",J)},glGenVertexArrays:(a,
|
||||
b)=>{lb(a,b,"createVertexArray",fb)},glGenerateMipmap:a=>F.generateMipmap(a),glGetActiveUniform:(a,b,d,e,f,h,l)=>{a=H[a];if(b=F.getActiveUniform(a,b))d=l&&E(b.name,l,d),e&&(t()[e>>2]=d),f&&(t()[f>>2]=b.size),h&&(t()[h>>2]=b.type)},glGetActiveUniformBlockName:(a,b,d,e,f)=>{a=H[a];if(a=F.getActiveUniformBlockName(a,b))f&&0<d?(d=E(a,f,d),e&&(t()[e>>2]=d)):e&&(t()[e>>2]=0)},glGetActiveUniformBlockiv:(a,b,d,e)=>{if(e)if(a=H[a],35393==d)d=F.getActiveUniformBlockName(a,b),t()[e>>2]=d.length+1;else{if(a=
|
||||
F.getActiveUniformBlockParameter(a,b,d),null!==a)if(35395==d)for(d=0;d<a.length;d++)t()[e+4*d>>2]=a[d];else t()[e>>2]=a}else O||=1281},glGetBooleanv:(a,b)=>vb(a,b,4),glGetError:()=>{var a=F.getError()||O;O=0;return a},glGetFloatv:(a,b)=>vb(a,b,2),glGetFramebufferAttachmentParameteriv:(a,b,d,e)=>{a=F.getFramebufferAttachmentParameter(a,b,d);if(a instanceof WebGLRenderbuffer||a instanceof WebGLTexture)a=a.name|0;t()[e>>2]=a},glGetIntegerv:wb,glGetProgramInfoLog:(a,b,d,e)=>{a=F.getProgramInfoLog(H[a]);
|
||||
null===a&&(a="(unknown error)");b=0<b&&e?E(a,e,b):0;d&&(t()[d>>2]=b)},glGetProgramiv:(a,b,d)=>{if(d)if(a>=db)O||=1281;else if(a=H[a],35716==b)a=F.getProgramInfoLog(a),null===a&&(a="(unknown error)"),t()[d>>2]=a.length+1;else if(35719==b){if(!a.C){var e=F.getProgramParameter(a,35718);for(b=0;b<e;++b)a.C=Math.max(a.C,F.getActiveUniform(a,b).name.length+1)}t()[d>>2]=a.C}else if(35722==b){if(!a.A)for(e=F.getProgramParameter(a,35721),b=0;b<e;++b)a.A=Math.max(a.A,F.getActiveAttrib(a,b).name.length+1);t()[d>>
|
||||
2]=a.A}else if(35381==b){if(!a.B)for(e=F.getProgramParameter(a,35382),b=0;b<e;++b)a.B=Math.max(a.B,F.getActiveUniformBlockName(a,b).length+1);t()[d>>2]=a.B}else t()[d>>2]=F.getProgramParameter(a,b);else O||=1281},glGetQueryObjectui64vEXT:(a,b,d)=>{if(d){a=M[a];b=2>P.version?F.o.getQueryObjectEXT(a,b):F.getQueryParameter(a,b);var e;"boolean"==typeof b?e=b?1:0:e=b;tb(d,e)}else O||=1281},glGetQueryObjectuivEXT:(a,b,d)=>{if(d){a=F.o.getQueryObjectEXT(M[a],b);var e;"boolean"==typeof a?e=a?1:0:e=a;t()[d>>
|
||||
2]=e}else O||=1281},glGetShaderInfoLog:(a,b,d,e)=>{a=F.getShaderInfoLog(K[a]);null===a&&(a="(unknown error)");b=0<b&&e?E(a,e,b):0;d&&(t()[d>>2]=b)},glGetShaderSource:(a,b,d,e)=>{if(a=F.getShaderSource(K[a]))b=0<b&&e?E(a,e,b):0,d&&(t()[d>>2]=b)},glGetShaderiv:(a,b,d)=>{d?35716==b?(a=F.getShaderInfoLog(K[a]),null===a&&(a="(unknown error)"),a=a?a.length+1:0,t()[d>>2]=a):35720==b?(a=(a=F.getShaderSource(K[a]))?a.length+1:0,t()[d>>2]=a):t()[d>>2]=F.getShaderParameter(K[a],b):O||=1281},glGetString:a=>{var b=
|
||||
hb[a];if(!b){switch(a){case 7939:b=Hb(ub().join(" "));break;case 7936:case 7937:case 37445:case 37446:(b=F.getParameter(a))||(O||=1280);b=b?Hb(b):0;break;case 7938:b=F.getParameter(7938);var d=`OpenGL ES 2.0 (${b})`;2<=P.version&&(d=`OpenGL ES 3.0 (${b})`);b=Hb(d);break;case 35724:b=F.getParameter(35724);d=b.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==d&&(3==d[1].length&&(d[1]+="0"),b=`OpenGL ES GLSL ES ${d[1]} (${b})`);b=Hb(b);break;default:O||=1280}hb[a]=b}return b},glGetStringi:(a,
|
||||
b)=>{if(2>P.version)return O||=1282,0;var d=ib[a];if(d)return 0>b||b>=d.length?(O||=1281,0):d[b];switch(a){case 7939:return d=ub().map(Hb),d=ib[a]=d,0>b||b>=d.length?(O||=1281,0):d[b];default:return O||=1280,0}},glGetUniformBlockIndex:(a,b)=>F.getUniformBlockIndex(H[a],C(b)),glGetUniformLocation:(a,b)=>{b=C(b);if(a=H[a]){var d=a,e=d.u,f=d.L,h;if(!e){d.u=e={};d.K={};var l=F.getProgramParameter(d,35718);for(h=0;h<l;++h){var m=F.getActiveUniform(d,h);var n=m.name;m=m.size;var r=Ib(n);r=0<r?n.slice(0,
|
||||
r):n;var Q=d.G;d.G+=m;f[r]=[m,Q];for(n=0;n<m;++n)e[Q]=n,d.K[Q++]=r}}d=a.u;e=0;f=b;h=Ib(b);0<h&&(e=parseInt(b.slice(h+1))>>>0,f=b.slice(0,h));if((f=a.L[f])&&e<f[0]&&(e+=f[1],d[e]=d[e]||F.getUniformLocation(a,b)))return e}else O||=1281;return-1},glIsBuffer:a=>(a=G[a])?F.isBuffer(a):0,glIsFramebuffer:a=>(a=eb[a])?F.isFramebuffer(a):0,glIsProgram:a=>(a=H[a])?F.isProgram(a):0,glIsRenderbuffer:a=>(a=I[a])?F.isRenderbuffer(a):0,glIsShader:a=>(a=K[a])?F.isShader(a):0,glIsTexture:a=>(a=J[a])?F.isTexture(a):
|
||||
0,glLinkProgram:a=>{a=H[a];F.linkProgram(a);a.u=0;a.L={}},glPixelStorei:(a,b)=>{3317==a?jb=b:3314==a&&(kb=b);F.pixelStorei(a,b)},glReadPixels:zb,glRenderbufferStorage:(a,b,d,e)=>F.renderbufferStorage(a,b,d,e),glRenderbufferStorageMultisample:(a,b,d,e,f)=>F.renderbufferStorageMultisample(a,b,d,e,f),glScissor:(a,b,d,e)=>F.scissor(a,b,d,e),glShaderBinary:()=>{O||=1280},glShaderSource:(a,b,d,e)=>{for(var f="",h=0;h<b;++h){var l=e?u()[e+4*h>>2]:void 0;f+=C(u()[d+4*h>>2],l)}F.shaderSource(K[a],f)},glStencilFuncSeparate:(a,
|
||||
b,d,e)=>F.stencilFuncSeparate(a,b,d,e),glStencilMaskSeparate:(a,b)=>F.stencilMaskSeparate(a,b),glStencilOpSeparate:(a,b,d,e)=>F.stencilOpSeparate(a,b,d,e),glTexImage2D:(a,b,d,e,f,h,l,m,n)=>{if(2<=P.version){if(F.v){F.texImage2D(a,b,d,e,f,h,l,m,n);return}if(n){var r=xb(m);n>>>=31-Math.clz32(r.BYTES_PER_ELEMENT);F.texImage2D(a,b,d,e,f,h,l,m,r,n);return}}r=n?yb(m,l,e,f,n):null;F.texImage2D(a,b,d,e,f,h,l,m,r)},glTexParameterfv:(a,b,d)=>{d=v()[d>>2];F.texParameterf(a,b,d)},glTexParameteri:(a,b,d)=>F.texParameteri(a,
|
||||
b,d),glTexSubImage2D:(a,b,d,e,f,h,l,m,n)=>{if(2<=P.version){if(F.v){F.texSubImage2D(a,b,d,e,f,h,l,m,n);return}if(n){var r=xb(m);F.texSubImage2D(a,b,d,e,f,h,l,m,r,n>>>31-Math.clz32(r.BYTES_PER_ELEMENT));return}}n=n?yb(m,l,f,h,n):null;F.texSubImage2D(a,b,d,e,f,h,l,m,n)},glUniform1fv:(a,b,d)=>{if(2<=P.version)b&&F.uniform1fv(S(a),v(),d>>2,b);else{if(288>=b)for(var e=T[b],f=0;f<b;++f)e[f]=v()[d+4*f>>2];else e=v().subarray(d>>2,d+4*b>>2);F.uniform1fv(S(a),e)}},glUniform1i:(a,b)=>{F.uniform1i(S(a),b)},
|
||||
glUniform2fv:(a,b,d)=>{if(2<=P.version)b&&F.uniform2fv(S(a),v(),d>>2,2*b);else{if(144>=b){b*=2;for(var e=T[b],f=0;f<b;f+=2)e[f]=v()[d+4*f>>2],e[f+1]=v()[d+(4*f+4)>>2]}else e=v().subarray(d>>2,d+8*b>>2);F.uniform2fv(S(a),e)}},glUniform3fv:(a,b,d)=>{if(2<=P.version)b&&F.uniform3fv(S(a),v(),d>>2,3*b);else{if(96>=b){b*=3;for(var e=T[b],f=0;f<b;f+=3)e[f]=v()[d+4*f>>2],e[f+1]=v()[d+(4*f+4)>>2],e[f+2]=v()[d+(4*f+8)>>2]}else e=v().subarray(d>>2,d+12*b>>2);F.uniform3fv(S(a),e)}},glUniform4fv:(a,b,d)=>{if(2<=
|
||||
P.version)b&&F.uniform4fv(S(a),v(),d>>2,4*b);else{if(72>=b){var e=T[4*b],f=v();d>>=2;b*=4;for(var h=0;h<b;h+=4){var l=d+h;e[h]=f[l];e[h+1]=f[l+1];e[h+2]=f[l+2];e[h+3]=f[l+3]}}else e=v().subarray(d>>2,d+16*b>>2);F.uniform4fv(S(a),e)}},glUniformBlockBinding:(a,b,d)=>{a=H[a];F.uniformBlockBinding(a,b,d)},glUniformMatrix4fv:(a,b,d,e)=>{if(2<=P.version)b&&F.uniformMatrix4fv(S(a),!!d,v(),e>>2,16*b);else{if(18>=b){var f=T[16*b],h=v();e>>=2;b*=16;for(var l=0;l<b;l+=16){var m=e+l;f[l]=h[m];f[l+1]=h[m+1];f[l+
|
||||
2]=h[m+2];f[l+3]=h[m+3];f[l+4]=h[m+4];f[l+5]=h[m+5];f[l+6]=h[m+6];f[l+7]=h[m+7];f[l+8]=h[m+8];f[l+9]=h[m+9];f[l+10]=h[m+10];f[l+11]=h[m+11];f[l+12]=h[m+12];f[l+13]=h[m+13];f[l+14]=h[m+14];f[l+15]=h[m+15]}}else f=v().subarray(e>>2,e+64*b>>2);F.uniformMatrix4fv(S(a),!!d,f)}},glUseProgram:a=>{a=H[a];F.useProgram(a);F.N=a},glVertexAttribPointer:(a,b,d,e,f,h)=>{F.vertexAttribPointer(a,b,d,!!e,f,h)},glViewport:(a,b,d,e)=>F.viewport(a,b,d,e),glWaitSync:(a,b,d,e)=>{F.waitSync(gb[a],b,(d>>>0)+4294967296*e)},
|
||||
invoke_ii:Ac,invoke_iii:Bc,invoke_iiii:Cc,invoke_iiiii:Dc,invoke_iiiiiii:Ec,invoke_vi:Fc,invoke_vii:Gc,invoke_viii:Hc,invoke_viiiiiii:Ic,memory:g,proc_exit:Pa,skwasm_captureImageBitmap:Jb,skwasm_connectThread:Mb,skwasm_createGlTextureFromTextureSource:Nb,skwasm_destroyContext:Ob,skwasm_dispatchDisposeSurface:Pb,skwasm_dispatchRasterizeImage:Qb,skwasm_dispatchRenderPictures:Rb,skwasm_dispatchResizeSurface:Sb,skwasm_dispatchTransferCanvas:Tb,skwasm_dispatchTriggerContextLoss:Ub,skwasm_disposeAssociatedObjectOnThread:Vb,
|
||||
skwasm_getAssociatedObject:Wb,skwasm_getGlContextForCanvas:Xb,skwasm_isSingleThreaded:Yb,skwasm_postRasterizeResult:Zb,skwasm_reportContextLossTriggered:$b,skwasm_reportContextLost:ac,skwasm_reportInitialized:bc,skwasm_reportResizeComplete:cc,skwasm_resizeCanvas:dc,skwasm_resolveAndPostImages:ec,skwasm_setAssociatedObjectOnThread:fc,skwasm_triggerContextLossOnCanvas:gc},W=function(){function a(d,e){W=d.exports;w.wasmExports=W;B=W.__indirect_function_table;wa.unshift(W.__wasm_call_ctors);qa=e;z--;
|
||||
0==z&&(null!==Fa&&(clearInterval(Fa),Fa=null),A&&(d=A,A=null,d()));return W}var b={env:Jc,wasi_snapshot_preview1:Jc};z++;if(w.instantiateWasm)try{return w.instantiateWasm(b,a)}catch(d){y(`Module.instantiateWasm callback failed with error: ${d}`),fa(d)}Ia??=Ha("wimp.wasm")?"wimp.wasm":ma("wimp.wasm");La(b,function(d){a(d.instance,d.module)}).catch(fa);return{}}();w._canvas_saveLayer=(a,b,d,e)=>(w._canvas_saveLayer=W.canvas_saveLayer)(a,b,d,e);w._canvas_save=a=>(w._canvas_save=W.canvas_save)(a);
|
||||
w._canvas_restore=a=>(w._canvas_restore=W.canvas_restore)(a);w._canvas_restoreToCount=(a,b)=>(w._canvas_restoreToCount=W.canvas_restoreToCount)(a,b);w._canvas_getSaveCount=a=>(w._canvas_getSaveCount=W.canvas_getSaveCount)(a);w._canvas_translate=(a,b,d)=>(w._canvas_translate=W.canvas_translate)(a,b,d);w._canvas_scale=(a,b,d)=>(w._canvas_scale=W.canvas_scale)(a,b,d);w._canvas_rotate=(a,b)=>(w._canvas_rotate=W.canvas_rotate)(a,b);w._canvas_skew=(a,b,d)=>(w._canvas_skew=W.canvas_skew)(a,b,d);
|
||||
w._canvas_transform=(a,b)=>(w._canvas_transform=W.canvas_transform)(a,b);w._canvas_clear=(a,b)=>(w._canvas_clear=W.canvas_clear)(a,b);w._canvas_clipRect=(a,b,d,e)=>(w._canvas_clipRect=W.canvas_clipRect)(a,b,d,e);w._canvas_clipRRect=(a,b,d)=>(w._canvas_clipRRect=W.canvas_clipRRect)(a,b,d);w._canvas_clipPath=(a,b,d)=>(w._canvas_clipPath=W.canvas_clipPath)(a,b,d);w._canvas_drawColor=(a,b,d)=>(w._canvas_drawColor=W.canvas_drawColor)(a,b,d);
|
||||
w._canvas_drawLine=(a,b,d,e,f,h)=>(w._canvas_drawLine=W.canvas_drawLine)(a,b,d,e,f,h);w._canvas_drawPaint=(a,b)=>(w._canvas_drawPaint=W.canvas_drawPaint)(a,b);w._canvas_drawRect=(a,b,d)=>(w._canvas_drawRect=W.canvas_drawRect)(a,b,d);w._canvas_drawRRect=(a,b,d)=>(w._canvas_drawRRect=W.canvas_drawRRect)(a,b,d);w._canvas_drawDRRect=(a,b,d,e)=>(w._canvas_drawDRRect=W.canvas_drawDRRect)(a,b,d,e);w._canvas_drawOval=(a,b,d)=>(w._canvas_drawOval=W.canvas_drawOval)(a,b,d);
|
||||
w._canvas_drawCircle=(a,b,d,e,f)=>(w._canvas_drawCircle=W.canvas_drawCircle)(a,b,d,e,f);w._canvas_drawArc=(a,b,d,e,f,h)=>(w._canvas_drawArc=W.canvas_drawArc)(a,b,d,e,f,h);w._canvas_drawPath=(a,b,d)=>(w._canvas_drawPath=W.canvas_drawPath)(a,b,d);w._canvas_drawShadow=(a,b,d,e,f,h)=>(w._canvas_drawShadow=W.canvas_drawShadow)(a,b,d,e,f,h);w._canvas_drawParagraph=(a,b,d,e)=>(w._canvas_drawParagraph=W.canvas_drawParagraph)(a,b,d,e);
|
||||
w._canvas_drawPicture=(a,b)=>(w._canvas_drawPicture=W.canvas_drawPicture)(a,b);w._canvas_drawImage=(a,b,d,e,f,h)=>(w._canvas_drawImage=W.canvas_drawImage)(a,b,d,e,f,h);w._canvas_drawImageRect=(a,b,d,e,f,h)=>(w._canvas_drawImageRect=W.canvas_drawImageRect)(a,b,d,e,f,h);w._canvas_drawImageNine=(a,b,d,e,f,h)=>(w._canvas_drawImageNine=W.canvas_drawImageNine)(a,b,d,e,f,h);w._canvas_drawVertices=(a,b,d,e)=>(w._canvas_drawVertices=W.canvas_drawVertices)(a,b,d,e);
|
||||
w._canvas_drawPoints=(a,b,d,e,f)=>(w._canvas_drawPoints=W.canvas_drawPoints)(a,b,d,e,f);w._canvas_drawAtlas=(a,b,d,e,f,h,l,m,n)=>(w._canvas_drawAtlas=W.canvas_drawAtlas)(a,b,d,e,f,h,l,m,n);w._canvas_getTransform=(a,b)=>(w._canvas_getTransform=W.canvas_getTransform)(a,b);w._canvas_getLocalClipBounds=(a,b)=>(w._canvas_getLocalClipBounds=W.canvas_getLocalClipBounds)(a,b);w._canvas_getDeviceClipBounds=(a,b)=>(w._canvas_getDeviceClipBounds=W.canvas_getDeviceClipBounds)(a,b);
|
||||
w._canvas_quickReject=(a,b)=>(w._canvas_quickReject=W.canvas_quickReject)(a,b);w._contourMeasureIter_create=(a,b,d)=>(w._contourMeasureIter_create=W.contourMeasureIter_create)(a,b,d);w._contourMeasureIter_next=a=>(w._contourMeasureIter_next=W.contourMeasureIter_next)(a);w._contourMeasureIter_dispose=a=>(w._contourMeasureIter_dispose=W.contourMeasureIter_dispose)(a);w._contourMeasure_dispose=a=>(w._contourMeasure_dispose=W.contourMeasure_dispose)(a);
|
||||
w._contourMeasure_length=a=>(w._contourMeasure_length=W.contourMeasure_length)(a);w._contourMeasure_isClosed=a=>(w._contourMeasure_isClosed=W.contourMeasure_isClosed)(a);w._contourMeasure_getPosTan=(a,b,d,e)=>(w._contourMeasure_getPosTan=W.contourMeasure_getPosTan)(a,b,d,e);w._contourMeasure_getSegment=(a,b,d,e)=>(w._contourMeasure_getSegment=W.contourMeasure_getSegment)(a,b,d,e);w._skData_create=a=>(w._skData_create=W.skData_create)(a);w._skData_getPointer=a=>(w._skData_getPointer=W.skData_getPointer)(a);
|
||||
w._skData_getConstPointer=a=>(w._skData_getConstPointer=W.skData_getConstPointer)(a);w._skData_getSize=a=>(w._skData_getSize=W.skData_getSize)(a);w._skData_dispose=a=>(w._skData_dispose=W.skData_dispose)(a);w._imageFilter_createBlur=(a,b,d)=>(w._imageFilter_createBlur=W.imageFilter_createBlur)(a,b,d);w._imageFilter_createDilate=(a,b)=>(w._imageFilter_createDilate=W.imageFilter_createDilate)(a,b);w._imageFilter_createErode=(a,b)=>(w._imageFilter_createErode=W.imageFilter_createErode)(a,b);
|
||||
w._imageFilter_createMatrix=(a,b)=>(w._imageFilter_createMatrix=W.imageFilter_createMatrix)(a,b);w._imageFilter_createFromColorFilter=a=>(w._imageFilter_createFromColorFilter=W.imageFilter_createFromColorFilter)(a);w._imageFilter_compose=(a,b)=>(w._imageFilter_compose=W.imageFilter_compose)(a,b);w._imageFilter_dispose=a=>(w._imageFilter_dispose=W.imageFilter_dispose)(a);w._imageFilter_getFilterBounds=(a,b)=>(w._imageFilter_getFilterBounds=W.imageFilter_getFilterBounds)(a,b);
|
||||
w._colorFilter_createMode=(a,b)=>(w._colorFilter_createMode=W.colorFilter_createMode)(a,b);w._colorFilter_createMatrix=a=>(w._colorFilter_createMatrix=W.colorFilter_createMatrix)(a);w._colorFilter_createSRGBToLinearGamma=()=>(w._colorFilter_createSRGBToLinearGamma=W.colorFilter_createSRGBToLinearGamma)();w._colorFilter_createLinearToSRGBGamma=()=>(w._colorFilter_createLinearToSRGBGamma=W.colorFilter_createLinearToSRGBGamma)();w._colorFilter_dispose=a=>(w._colorFilter_dispose=W.colorFilter_dispose)(a);
|
||||
w._maskFilter_createBlur=(a,b)=>(w._maskFilter_createBlur=W.maskFilter_createBlur)(a,b);w._maskFilter_dispose=a=>(w._maskFilter_dispose=W.maskFilter_dispose)(a);w._fontCollection_create=()=>(w._fontCollection_create=W.fontCollection_create)();w._fontCollection_dispose=a=>(w._fontCollection_dispose=W.fontCollection_dispose)(a);w._typeface_create=a=>(w._typeface_create=W.typeface_create)(a);w._typeface_dispose=a=>(w._typeface_dispose=W.typeface_dispose)(a);
|
||||
w._typefaces_filterCoveredCodePoints=(a,b,d,e)=>(w._typefaces_filterCoveredCodePoints=W.typefaces_filterCoveredCodePoints)(a,b,d,e);w._fontCollection_registerTypeface=(a,b,d)=>(w._fontCollection_registerTypeface=W.fontCollection_registerTypeface)(a,b,d);w._fontCollection_clearCaches=a=>(w._fontCollection_clearCaches=W.fontCollection_clearCaches)(a);w._image_createFromPicture=(a,b,d)=>(w._image_createFromPicture=W.image_createFromPicture)(a,b,d);
|
||||
w._image_createFromPixels=(a,b,d,e,f)=>(w._image_createFromPixels=W.image_createFromPixels)(a,b,d,e,f);w._image_createFromTextureSource=(a,b,d,e)=>(w._image_createFromTextureSource=W.image_createFromTextureSource)(a,b,d,e);w._image_ref=a=>(w._image_ref=W.image_ref)(a);w._image_dispose=a=>(w._image_dispose=W.image_dispose)(a);w._image_getWidth=a=>(w._image_getWidth=W.image_getWidth)(a);w._image_getHeight=a=>(w._image_getHeight=W.image_getHeight)(a);
|
||||
w._skwasm_getLiveObjectCounts=a=>(w._skwasm_getLiveObjectCounts=W.skwasm_getLiveObjectCounts)(a);w._paint_create=(a,b,d,e,f,h,l,m,n)=>(w._paint_create=W.paint_create)(a,b,d,e,f,h,l,m,n);w._paint_dispose=a=>(w._paint_dispose=W.paint_dispose)(a);w._paint_setShader=(a,b)=>(w._paint_setShader=W.paint_setShader)(a,b);w._paint_setImageFilter=(a,b)=>(w._paint_setImageFilter=W.paint_setImageFilter)(a,b);w._paint_setColorFilter=(a,b)=>(w._paint_setColorFilter=W.paint_setColorFilter)(a,b);
|
||||
w._paint_setMaskFilter=(a,b)=>(w._paint_setMaskFilter=W.paint_setMaskFilter)(a,b);w._path_create=()=>(w._path_create=W.path_create)();w._path_dispose=a=>(w._path_dispose=W.path_dispose)(a);w._path_copy=a=>(w._path_copy=W.path_copy)(a);w._path_setFillType=(a,b)=>(w._path_setFillType=W.path_setFillType)(a,b);w._path_getFillType=a=>(w._path_getFillType=W.path_getFillType)(a);w._path_moveTo=(a,b,d)=>(w._path_moveTo=W.path_moveTo)(a,b,d);
|
||||
w._path_relativeMoveTo=(a,b,d)=>(w._path_relativeMoveTo=W.path_relativeMoveTo)(a,b,d);w._path_lineTo=(a,b,d)=>(w._path_lineTo=W.path_lineTo)(a,b,d);w._path_relativeLineTo=(a,b,d)=>(w._path_relativeLineTo=W.path_relativeLineTo)(a,b,d);w._path_quadraticBezierTo=(a,b,d,e,f)=>(w._path_quadraticBezierTo=W.path_quadraticBezierTo)(a,b,d,e,f);w._path_relativeQuadraticBezierTo=(a,b,d,e,f)=>(w._path_relativeQuadraticBezierTo=W.path_relativeQuadraticBezierTo)(a,b,d,e,f);
|
||||
w._path_cubicTo=(a,b,d,e,f,h,l)=>(w._path_cubicTo=W.path_cubicTo)(a,b,d,e,f,h,l);w._path_relativeCubicTo=(a,b,d,e,f,h,l)=>(w._path_relativeCubicTo=W.path_relativeCubicTo)(a,b,d,e,f,h,l);w._path_conicTo=(a,b,d,e,f,h)=>(w._path_conicTo=W.path_conicTo)(a,b,d,e,f,h);w._path_relativeConicTo=(a,b,d,e,f,h)=>(w._path_relativeConicTo=W.path_relativeConicTo)(a,b,d,e,f,h);w._path_arcToOval=(a,b,d,e,f)=>(w._path_arcToOval=W.path_arcToOval)(a,b,d,e,f);
|
||||
w._path_arcToRotated=(a,b,d,e,f,h,l,m)=>(w._path_arcToRotated=W.path_arcToRotated)(a,b,d,e,f,h,l,m);w._path_relativeArcToRotated=(a,b,d,e,f,h,l,m)=>(w._path_relativeArcToRotated=W.path_relativeArcToRotated)(a,b,d,e,f,h,l,m);w._path_addRect=(a,b)=>(w._path_addRect=W.path_addRect)(a,b);w._path_addOval=(a,b)=>(w._path_addOval=W.path_addOval)(a,b);w._path_addArc=(a,b,d,e)=>(w._path_addArc=W.path_addArc)(a,b,d,e);w._path_addPolygon=(a,b,d,e)=>(w._path_addPolygon=W.path_addPolygon)(a,b,d,e);
|
||||
w._path_addRRect=(a,b)=>(w._path_addRRect=W.path_addRRect)(a,b);w._path_addPath=(a,b,d,e)=>(w._path_addPath=W.path_addPath)(a,b,d,e);w._path_close=a=>(w._path_close=W.path_close)(a);w._path_reset=a=>(w._path_reset=W.path_reset)(a);w._path_contains=(a,b,d)=>(w._path_contains=W.path_contains)(a,b,d);w._path_transform=(a,b)=>(w._path_transform=W.path_transform)(a,b);w._path_getBounds=(a,b)=>(w._path_getBounds=W.path_getBounds)(a,b);w._path_combine=(a,b,d)=>(w._path_combine=W.path_combine)(a,b,d);
|
||||
w._path_getSvgString=a=>(w._path_getSvgString=W.path_getSvgString)(a);w._pictureRecorder_create=()=>(w._pictureRecorder_create=W.pictureRecorder_create)();w._pictureRecorder_dispose=a=>(w._pictureRecorder_dispose=W.pictureRecorder_dispose)(a);w._pictureRecorder_beginRecording=(a,b)=>(w._pictureRecorder_beginRecording=W.pictureRecorder_beginRecording)(a,b);w._pictureRecorder_endRecording=a=>(w._pictureRecorder_endRecording=W.pictureRecorder_endRecording)(a);
|
||||
w._picture_getCullRect=(a,b)=>(w._picture_getCullRect=W.picture_getCullRect)(a,b);w._picture_ref=a=>(w._picture_ref=W.picture_ref)(a);w._picture_dispose=a=>(w._picture_dispose=W.picture_dispose)(a);w._picture_approximateBytesUsed=a=>(w._picture_approximateBytesUsed=W.picture_approximateBytesUsed)(a);w._shader_createLinearGradient=(a,b,d,e,f,h)=>(w._shader_createLinearGradient=W.shader_createLinearGradient)(a,b,d,e,f,h);
|
||||
w._shader_createRadialGradient=(a,b,d,e,f,h,l,m)=>(w._shader_createRadialGradient=W.shader_createRadialGradient)(a,b,d,e,f,h,l,m);w._shader_createConicalGradient=(a,b,d,e,f,h,l,m)=>(w._shader_createConicalGradient=W.shader_createConicalGradient)(a,b,d,e,f,h,l,m);w._shader_createSweepGradient=(a,b,d,e,f,h,l,m,n)=>(w._shader_createSweepGradient=W.shader_createSweepGradient)(a,b,d,e,f,h,l,m,n);w._shader_dispose=a=>(w._shader_dispose=W.shader_dispose)(a);
|
||||
w._runtimeEffect_create=a=>(w._runtimeEffect_create=W.runtimeEffect_create)(a);w._runtimeEffect_dispose=a=>(w._runtimeEffect_dispose=W.runtimeEffect_dispose)(a);w._runtimeEffect_getUniformSize=a=>(w._runtimeEffect_getUniformSize=W.runtimeEffect_getUniformSize)(a);w._shader_createRuntimeEffectShader=(a,b,d,e)=>(w._shader_createRuntimeEffectShader=W.shader_createRuntimeEffectShader)(a,b,d,e);w._shader_createFromImage=(a,b,d,e,f)=>(w._shader_createFromImage=W.shader_createFromImage)(a,b,d,e,f);
|
||||
w._uniformData_create=a=>(w._uniformData_create=W.uniformData_create)(a);w._uniformData_dispose=a=>(w._uniformData_dispose=W.uniformData_dispose)(a);w._uniformData_getPointer=a=>(w._uniformData_getPointer=W.uniformData_getPointer)(a);w._skString_allocate=a=>(w._skString_allocate=W.skString_allocate)(a);w._skString_getData=a=>(w._skString_getData=W.skString_getData)(a);w._skString_getLength=a=>(w._skString_getLength=W.skString_getLength)(a);w._skString_free=a=>(w._skString_free=W.skString_free)(a);
|
||||
w._skString16_allocate=a=>(w._skString16_allocate=W.skString16_allocate)(a);w._skString16_getData=a=>(w._skString16_getData=W.skString16_getData)(a);w._skString16_free=a=>(w._skString16_free=W.skString16_free)(a);w._surface_create=()=>(w._surface_create=W.surface_create)();w._surface_setCanvas=(a,b)=>(w._surface_setCanvas=W.surface_setCanvas)(a,b);
|
||||
var mc=w._surface_receiveCanvasOnWorker=(a,b,d)=>(mc=w._surface_receiveCanvasOnWorker=W.surface_receiveCanvasOnWorker)(a,b,d),nc=w._surface_onInitialized=(a,b)=>(nc=w._surface_onInitialized=W.surface_onInitialized)(a,b);w._surface_setSize=(a,b,d)=>(w._surface_setSize=W.surface_setSize)(a,b,d);
|
||||
var oc=w._surface_resizeOnWorker=(a,b,d,e)=>(oc=w._surface_resizeOnWorker=W.surface_resizeOnWorker)(a,b,d,e),pc=w._surface_onResizeComplete=(a,b)=>(pc=w._surface_onResizeComplete=W.surface_onResizeComplete)(a,b);w._surface_getThreadId=a=>(w._surface_getThreadId=W.surface_getThreadId)(a);w._surface_getGlContext=a=>(w._surface_getGlContext=W.surface_getGlContext)(a);w._surface_triggerContextLoss=a=>(w._surface_triggerContextLoss=W.surface_triggerContextLoss)(a);
|
||||
var qc=w._surface_triggerContextLossOnWorker=(a,b)=>(qc=w._surface_triggerContextLossOnWorker=W.surface_triggerContextLossOnWorker)(a,b),rc=w._surface_onContextLossTriggered=(a,b)=>(rc=w._surface_onContextLossTriggered=W.surface_onContextLossTriggered)(a,b),sc=w._surface_reportContextLost=(a,b)=>(sc=w._surface_reportContextLost=W.surface_reportContextLost)(a,b);w._surface_setCallbackHandler=(a,b)=>(w._surface_setCallbackHandler=W.surface_setCallbackHandler)(a,b);
|
||||
w._surface_destroy=a=>(w._surface_destroy=W.surface_destroy)(a);var vc=w._surface_dispose=a=>(vc=w._surface_dispose=W.surface_dispose)(a);w._surface_setResourceCacheLimitBytes=(a,b)=>(w._surface_setResourceCacheLimitBytes=W.surface_setResourceCacheLimitBytes)(a,b);w._surface_renderPictures=(a,b,d)=>(w._surface_renderPictures=W.surface_renderPictures)(a,b,d);var tc=w._surface_renderPicturesOnWorker=(a,b,d,e,f)=>(tc=w._surface_renderPicturesOnWorker=W.surface_renderPicturesOnWorker)(a,b,d,e,f);
|
||||
function ya(){ka?(za=1,Aa(w.sb,w.sz),removeEventListener("message",Ba),Ca=Ca.forEach(Da),addEventListener("message",Da)):Ea(wa)}var z=0,Fa=null,Ga=null;function Ha(a){a="Aborted("+a+")";y(a);ra=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");fa(a);throw a;}var Ia=a=>a.startsWith("data:application/octet-stream;base64,"),Ja;
|
||||
function Ka(a){return na(a).then(b=>new Uint8Array(b),()=>{if(oa)var b=oa(a);else throw"both async and sync fetching of the wasm failed";return b})}function La(a,b,d){return Ka(a).then(e=>WebAssembly.instantiate(e,b)).then(d,e=>{y(`failed to asynchronously prepare wasm: ${e}`);Ha(e)})}
|
||||
function Ma(a,b){var d=Ja;return"function"!=typeof WebAssembly.instantiateStreaming||Ia(d)||"function"!=typeof fetch?La(d,a,b):fetch(d,{credentials:"same-origin"}).then(e=>WebAssembly.instantiateStreaming(e,a).then(b,function(f){y(`wasm streaming compile failed: ${f}`);y("falling back to ArrayBuffer instantiation");return La(d,a,b)}))}function Na(a){this.name="ExitStatus";this.message=`Program terminated with exit(${a})`;this.status=a}
|
||||
var Ca=[],Oa=a=>{if(!(a instanceof Na||"unwind"==a))throw a;},Pa=0,Qa=a=>{sa=a;za||0<Pa||(ra=!0);throw new Na(a);},Ra=a=>{if(!ra)try{if(a(),!(za||0<Pa))try{sa=a=sa,Qa(a)}catch(b){Oa(b)}}catch(b){Oa(b)}},A,Da=a=>{let b=a.data,d=b._wsc;d&&Ra(()=>A.get(d)(...b.x))},Ba=a=>{Ca.push(a)},Ea=a=>{a.forEach(b=>b(w))},za=w.noExitRuntime||!0;class Sa{constructor(a){this.s=a-24}}
|
||||
var Ta=0,Ua=0,Va="undefined"!=typeof TextDecoder?new TextDecoder:void 0,Wa=(a,b=0,d=NaN)=>{var e=b+d;for(d=b;a[d]&&!(d>=e);)++d;if(16<d-b&&a.buffer&&Va)return Va.decode(a.slice(b,d));for(e="";b<d;){var f=a[b++];if(f&128){var h=a[b++]&63;if(192==(f&224))e+=String.fromCharCode((f&31)<<6|h);else{var l=a[b++]&63;f=224==(f&240)?(f&15)<<12|h<<6|l:(f&7)<<18|h<<12|l<<6|a[b++]&63;65536>f?e+=String.fromCharCode(f):(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else e+=String.fromCharCode(f)}return e},
|
||||
B=(a,b)=>a?Wa(q(),a,b):"",C={},Xa=1,Ya={},D=(a,b,d)=>{var e=q();if(0<d){var f=b;d=b+d-1;for(var h=0;h<a.length;++h){var l=a.charCodeAt(h);if(55296<=l&&57343>=l){var m=a.charCodeAt(++h);l=65536+((l&1023)<<10)|m&1023}if(127>=l){if(b>=d)break;e[b++]=l}else{if(2047>=l){if(b+1>=d)break;e[b++]=192|l>>6}else{if(65535>=l){if(b+2>=d)break;e[b++]=224|l>>12}else{if(b+3>=d)break;e[b++]=240|l>>18;e[b++]=128|l>>12&63}e[b++]=128|l>>6&63}e[b++]=128|l&63}}e[b]=0;a=b-f}else a=0;return a},E,Za=a=>{var b=a.getExtension("ANGLE_instanced_arrays");
|
||||
b&&(a.vertexAttribDivisor=(d,e)=>b.vertexAttribDivisorANGLE(d,e),a.drawArraysInstanced=(d,e,f,h)=>b.drawArraysInstancedANGLE(d,e,f,h),a.drawElementsInstanced=(d,e,f,h,l)=>b.drawElementsInstancedANGLE(d,e,f,h,l))},$a=a=>{var b=a.getExtension("OES_vertex_array_object");b&&(a.createVertexArray=()=>b.createVertexArrayOES(),a.deleteVertexArray=d=>b.deleteVertexArrayOES(d),a.bindVertexArray=d=>b.bindVertexArrayOES(d),a.isVertexArray=d=>b.isVertexArrayOES(d))},ab=a=>{var b=a.getExtension("WEBGL_draw_buffers");
|
||||
b&&(a.drawBuffers=(d,e)=>b.drawBuffersWEBGL(d,e))},bb=a=>{a.ba=a.getExtension("WEBGL_draw_instanced_base_vertex_base_instance")},cb=a=>{a.ca=a.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance")},db=a=>{var b="ANGLE_instanced_arrays EXT_blend_minmax EXT_disjoint_timer_query EXT_frag_depth EXT_shader_texture_lod EXT_sRGB OES_element_index_uint OES_fbo_render_mipmap OES_standard_derivatives OES_texture_float OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_depth_texture WEBGL_draw_buffers EXT_color_buffer_float EXT_conservative_depth EXT_disjoint_timer_query_webgl2 EXT_texture_norm16 NV_shader_noperspective_interpolation WEBGL_clip_cull_distance EXT_clip_control EXT_color_buffer_half_float EXT_depth_clamp EXT_float_blend EXT_polygon_offset_clamp EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic KHR_parallel_shader_compile OES_texture_float_linear WEBGL_blend_func_extended WEBGL_compressed_texture_astc WEBGL_compressed_texture_etc WEBGL_compressed_texture_etc1 WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context WEBGL_multi_draw WEBGL_polygon_mode".split(" ");
|
||||
return(a.getSupportedExtensions()||[]).filter(d=>b.includes(d))},eb=1,F=[],G=[],fb=[],H=[],I=[],J=[],gb=[],K=[],L=[],hb=[],ib={},jb={},kb=4,lb=0,M=a=>{for(var b=eb++,d=a.length;d<b;d++)a[d]=null;return b},mb=(a,b,d,e)=>{for(var f=0;f<a;f++){var h=E[d](),l=h&&M(e);h?(h.name=l,e[l]=h):N||=1282;r()[b+4*f>>2]=l}},ob=(a,b)=>{a.s||(a.s=a.getContext,a.getContext=function(e,f){f=a.s(e,f);return"webgl"==e==f instanceof WebGLRenderingContext?f:null});var d=1<b.J?a.getContext("webgl2",b):a.getContext("webgl",
|
||||
b);return d?nb(d,b):0},nb=(a,b)=>{var d=M(K),e={handle:d,attributes:b,version:b.J,m:a};a.canvas&&(a.canvas.M=e);K[d]=e;("undefined"==typeof b.H||b.H)&&pb(e);return d},pb=a=>{a||=O;if(!a.S){a.S=!0;var b=a.m;b.U=b.getExtension("WEBGL_multi_draw");b.P=b.getExtension("EXT_polygon_offset_clamp");b.O=b.getExtension("EXT_clip_control");b.Z=b.getExtension("WEBGL_polygon_mode");Za(b);$a(b);ab(b);bb(b);cb(b);2<=a.version&&(b.o=b.getExtension("EXT_disjoint_timer_query_webgl2"));if(2>a.version||!b.o)b.o=b.getExtension("EXT_disjoint_timer_query");
|
||||
db(b).forEach(d=>{d.includes("lose_context")||d.includes("debug")||b.getExtension(d)})}},N,O,qb=(a,b)=>{E.bindFramebuffer(a,fb[b])},rb=a=>E.clear(a),sb=(a,b,d,e)=>E.clearColor(a,b,d,e),tb=a=>E.clearStencil(a),ub=(a,b)=>{t()[a>>2]=b;var d=t()[a>>2];t()[a+4>>2]=(b-d)/4294967296};function vb(){var a=db(E);return a=a.concat(a.map(b=>"GL_"+b))}
|
||||
var wb=(a,b,d)=>{if(b){var e=void 0;switch(a){case 36346:e=1;break;case 36344:0!=d&&1!=d&&(N||=1280);return;case 34814:case 36345:e=0;break;case 34466:var f=E.getParameter(34467);e=f?f.length:0;break;case 33309:if(2>O.version){N||=1282;return}e=vb().length;break;case 33307:case 33308:if(2>O.version){N||=1280;return}e=33307==a?3:0}if(void 0===e)switch(f=E.getParameter(a),typeof f){case "number":e=f;break;case "boolean":e=f?1:0;break;case "string":N||=1280;return;case "object":if(null===f)switch(a){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:e=
|
||||
0;break;default:N||=1280;return}else{if(f instanceof Float32Array||f instanceof Uint32Array||f instanceof Int32Array||f instanceof Array){for(a=0;a<f.length;++a)switch(d){case 0:r()[b+4*a>>2]=f[a];break;case 2:v()[b+4*a>>2]=f[a];break;case 4:c()[b+a]=f[a]?1:0}return}try{e=f.name|0}catch(h){N||=1280;y(`GL_INVALID_ENUM in glGet${d}v: Unknown object returned from WebGL getParameter(${a})! (error: ${h})`);return}}break;default:N||=1280;y(`GL_INVALID_ENUM in glGet${d}v: Native code calling glGet${d}v(${a}) and it returns ${f} of type ${typeof f}!`);
|
||||
return}switch(d){case 1:ub(b,e);break;case 0:r()[b>>2]=e;break;case 2:v()[b>>2]=e;break;case 4:c()[b]=e?1:0}}else N||=1281},xb=(a,b)=>wb(a,b,0),yb=a=>{a-=5120;0==a?a=c():1==a?a=q():2==a?(g.buffer!=k.buffer&&p(),a=ta):4==a?a=r():6==a?a=v():5==a||28922==a||28520==a||30779==a||30782==a?a=t():(g.buffer!=k.buffer&&p(),a=ua);return a},zb=(a,b,d,e,f)=>{a=yb(a);b=e*((lb||d)*({5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[b-6402]||1)*a.BYTES_PER_ELEMENT+kb-1&-kb);return a.subarray(f>>>31-Math.clz32(a.BYTES_PER_ELEMENT),
|
||||
f+b>>>31-Math.clz32(a.BYTES_PER_ELEMENT))},Ab=(a,b,d,e,f,h,l)=>{if(2<=O.version)if(E.D)E.readPixels(a,b,d,e,f,h,l);else{var m=yb(h);l>>>=31-Math.clz32(m.BYTES_PER_ELEMENT);E.readPixels(a,b,d,e,f,h,m,l)}else(m=zb(h,f,d,e,l))?E.readPixels(a,b,d,e,f,h,m):N||=1280},Bb=()=>{Ha("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER");return 0},P={},Cb=a=>{a.forEach(b=>{var d=Bb();d&&(P[d]=b)})},Db={},Fb=()=>{if(!Eb){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",
|
||||
PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:"./this.program"},b;for(b in Db)void 0===Db[b]?delete a[b]:a[b]=Db[b];var d=[];for(b in a)d.push(`${b}=${a[b]}`);Eb=d}return Eb},Eb,Gb=[null,[],[]],Ib=a=>{for(var b=0,d=0;d<a.length;++d){var e=a.charCodeAt(d);127>=e?b++:2047>=e?b+=2:55296<=e&&57343>=e?(b+=4,++d):b+=3}b+=1;(d=Hb(b))&&D(a,d,b);return d},Jb=a=>"]"==a.slice(-1)&&a.lastIndexOf("["),Kb=[],Q=a=>{var b=
|
||||
E.N;if(b){var d=b.u[a];"number"==typeof d&&(b.u[a]=d=E.getUniformLocation(b,b.K[a]+(0<d?`[${d}]`:"")));return d}N||=1282},R=[];function Lb(){}function Mb(){}function Nb(){}function Ob(){}function Pb(){}function Qb(){}function Rb(){}function Sb(){}function Tb(){}function Ub(){}function Vb(){}function Wb(){}function Xb(){}function Yb(){}function Zb(){}function $b(){}function ac(){}function bc(){}function cc(){}function dc(){}function ec(){}function fc(){}function gc(){}function T(){}
|
||||
function hc(){}function ic(){}var U,jc=[],lc=a=>kc(a);w.stackAlloc=lc;ka&&(C[0]=this,addEventListener("message",Ba));for(var V=0;32>V;++V)Kb.push(Array(V));var mc=new Float32Array(288);for(V=0;288>=V;++V)R[V]=mc.subarray(0,V);
|
||||
(function(){if(w.skwasmSingleThreaded){$b=function(){return!0};let e;Mb=function(f,h){e=h};Nb=function(){return performance.now()};T=function(f){queueMicrotask(()=>e(f))}}else{$b=function(){return!1};let e=0;Mb=function(f,h){function l({data:m}){const n=m.l;n&&("syncTimeOrigin"==n?e=performance.timeOrigin-m.timeOrigin:h(m))}f?(C[f].addEventListener("message",l),C[f].postMessage({l:"syncTimeOrigin",timeOrigin:performance.timeOrigin})):addEventListener("message",l)};Nb=function(){return performance.now()+
|
||||
e};T=function(f,h,l){l?C[l].postMessage(f,{transfer:h}):postMessage(f,{transfer:h})}}const a=new Map,b=new Map,d=new Map;Ob=function(e){Mb(e,function(f){var h=f.l;if(h)switch(h){case "transferCanvas":nc(f.g,f.canvas,f.h);break;case "onInitialized":oc(f.g,f.h);break;case "resizeSurface":pc(f.g,f.width,f.height,f.h);break;case "onResizeComplete":qc(f.g,f.h);break;case "triggerContextLoss":rc(f.g,f.h);break;case "onContextLossTriggered":sc(f.g,f.h);break;case "reportContextLost":tc(f.g,f.h);break;case "renderPictures":uc(f.g,
|
||||
f.W,f.V,f.h,Nb());break;case "onRenderComplete":vc(f.g,f.h,{imageBitmaps:f.R,rasterStartMilliseconds:f.Y,rasterEndMilliseconds:f.X});break;case "setAssociatedObject":d.set(f.F,f.object);break;case "disposeAssociatedObject":f=f.F;h=d.get(f);h.close&&h.close();d.delete(f);break;case "disposeSurface":wc(f.g);break;case "rasterizeImage":xc(f.g,f.image,f.format,f.h);break;case "onRasterizeComplete":yc(f.g,f.data,f.h);break;default:console.warn(`unrecognized skwasm message: ${h}`)}})};hc=function(e,f,h){T({l:"setAssociatedObject",
|
||||
F:f,object:h},[h],e)};Yb=function(e){return d.get(e)};Xb=function(e,f){T({l:"disposeAssociatedObject",F:f},[],e)};Rb=function(e,f){T({l:"disposeSurface",g:f},[],e)};Vb=function(e,f,h,l){T({l:"transferCanvas",g:f,canvas:h,h:l},[h],e)};dc=function(e,f,h){T({l:"onInitialized",g:e,$:f,h},[])};Ub=function(e,f,h,l,m){T({l:"resizeSurface",g:f,width:h,height:l,h:m},[],e)};ec=function(e,f){T({l:"onResizeComplete",g:e,h:f},[])};fc=function(e,f,h){e=b.get(e);e.width=f;e.height=h};Tb=function(e,f,h,l,m){T({l:"renderPictures",
|
||||
g:f,W:h,V:l,h:m},[],e)};gc=async function(e,f,h,l){f||=[];T({l:"onRenderComplete",g:e,h:l,R:f,Y:h,X:Nb()},[...f])};Lb=function(e,f){f||=[];e=b.get(e);f.push(e.transferToImageBitmap());return f};Sb=function(e,f,h,l,m){T({l:"rasterizeImage",g:f,image:h,format:l,h:m},[],e)};ac=function(e,f,h){T({l:"onRasterizeComplete",g:e,data:f,h})};Wb=function(e,f,h){T({l:"triggerContextLoss",g:f,h},[],e)};bc=function(e,f){T({l:"onContextLossTriggered",g:e,h:f},[])};cc=function(e,f){T({l:"reportContextLost",g:e,h:f},
|
||||
[])};ic=function(){O.m.getExtension("WEBGL_lose_context").loseContext()};Zb=function(e,f,h){f=ob(e,{J:2,alpha:!0,depth:!0,stencil:!0,antialias:f,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:"default",failIfMajorPerformanceCaveat:!1,H:!0});b.set(f,e);var l=function(m){m.preventDefault();zc(h);e.removeEventListener("webglcontextlost",l)};e.addEventListener("webglcontextlost",l);a.set(f,l);return f};Qb=function(e){const f=b.get(e),h=a.get(e);f&&h&&f.removeEventListener("webglcontextlost",
|
||||
h);O===K[e]&&(O=null);"object"==typeof JSEvents&&JSEvents.da(K[e].m.canvas);K[e]&&K[e].m.canvas&&(K[e].m.canvas.M=void 0);K[e]=null;b.delete(e);a.delete(e)};Pb=function(e,f,h){const l=O.m,m=l.createTexture();l.bindTexture(l.TEXTURE_2D,m);l.pixelStorei(l.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0);l.texImage2D(l.TEXTURE_2D,0,l.RGBA,f,h,0,l.RGBA,l.UNSIGNED_BYTE,e);l.pixelStorei(l.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1);l.bindTexture(l.TEXTURE_2D,null);e=M(I);I[e]=m;return e}})();
|
||||
var Jc={__cxa_throw:(a,b,d)=>{var e=new Sa(a);t()[e.s+16>>2]=0;t()[e.s+4>>2]=b;t()[e.s+8>>2]=d;Ta=a;Ua++;throw Ta;},__syscall_fcntl64:function(){return 0},__syscall_fstat64:()=>{},__syscall_ioctl:function(){return 0},__syscall_openat:function(){},_abort_js:()=>{Ha("")},_emscripten_create_wasm_worker:(a,b)=>{let d=C[Xa]=new Worker(ma("wimp.ww.js"));d.postMessage({$ww:Xa,wasm:qa,js:w.mainScriptUrlOrBlob||_scriptName,wasmMemory:g,sb:a,sz:b});d.onmessage=Da;return Xa++},_emscripten_get_now_is_monotonic:()=>
|
||||
1,_emscripten_runtime_keepalive_clear:()=>{za=!1;Pa=0},_emscripten_throw_longjmp:()=>{throw Infinity;},_mmap_js:function(){return-52},_munmap_js:function(){},_setitimer_js:(a,b)=>{Ya[a]&&(clearTimeout(Ya[a].id),delete Ya[a]);if(!b)return 0;var d=setTimeout(()=>{delete Ya[a];Ra(()=>Ac(a,performance.now()))},b);Ya[a]={id:d,ea:b};return 0},_tzset_js:(a,b,d,e)=>{var f=(new Date).getFullYear(),h=(new Date(f,0,1)).getTimezoneOffset();f=(new Date(f,6,1)).getTimezoneOffset();var l=Math.max(h,f);t()[a>>2]=
|
||||
60*l;r()[b>>2]=Number(h!=f);b=m=>{var n=Math.abs(m);return`UTC${0<=m?"-":"+"}${String(Math.floor(n/60)).padStart(2,"0")}${String(n%60).padStart(2,"0")}`};a=b(h);b=b(f);f<h?(D(a,d,17),D(b,e,17)):(D(a,e,17),D(b,d,17))},emscripten_console_warn:a=>{console.warn(B(a))},emscripten_date_now:()=>Date.now(),emscripten_errn:(a,b)=>y(B(a,b)),emscripten_get_now:()=>performance.now(),emscripten_glBindFramebuffer:qb,emscripten_glClear:rb,emscripten_glClearColor:sb,emscripten_glClearStencil:tb,emscripten_glGetIntegerv:xb,
|
||||
emscripten_glReadPixels:Ab,emscripten_resize_heap:a=>{var b=q().length;a>>>=0;if(a<=b||2147483648<a)return!1;for(var d=1;4>=d;d*=2){var e=b*(1+.2/d);e=Math.min(e,a+100663296);a:{e=(Math.min(2147483648,65536*Math.ceil(Math.max(a,e)/65536))-g.buffer.byteLength+65535)/65536|0;try{g.grow(e);p();var f=1;break a}catch(h){}f=void 0}if(f)return!0}return!1},emscripten_stack_snapshot:function(){var a=Error().stack.toString().split("\n");"Error"==a[0]&&a.shift();Cb(a);P.I=Bb();P.T=a;return P.I},emscripten_stack_unwind_buffer:(a,
|
||||
b,d)=>{if(P.I==a)var e=P.T;else e=Error().stack.toString().split("\n"),"Error"==e[0]&&e.shift(),Cb(e);for(var f=3;e[f]&&Bb()!=a;)++f;for(a=0;a<d&&e[a+f];++a)r()[b+4*a>>2]=Bb();return a},emscripten_wasm_worker_post_function_v:(a,b)=>{C[a].postMessage({_wsc:b,x:[]})},emscripten_webgl_enable_extension:function(a,b){a=K[a];b=B(b);b.startsWith("GL_")&&(b=b.substr(3));"ANGLE_instanced_arrays"==b&&Za(E);"OES_vertex_array_object"==b&&$a(E);"WEBGL_draw_buffers"==b&&ab(E);"WEBGL_draw_instanced_base_vertex_base_instance"==
|
||||
b&&bb(E);"WEBGL_multi_draw_instanced_base_vertex_base_instance"==b&&cb(E);"WEBGL_multi_draw"==b&&(E.U=E.getExtension("WEBGL_multi_draw"));"EXT_polygon_offset_clamp"==b&&(E.P=E.getExtension("EXT_polygon_offset_clamp"));"EXT_clip_control"==b&&(E.O=E.getExtension("EXT_clip_control"));"WEBGL_polygon_mode"==b&&(E.Z=E.getExtension("WEBGL_polygon_mode"));return!!a.m.getExtension(b)},emscripten_webgl_make_context_current:a=>{O=K[a];w.aa=E=O?.m;return!a||E?0:-5},environ_get:(a,b)=>{var d=0;Fb().forEach((e,
|
||||
f)=>{var h=b+d;f=t()[a+4*f>>2]=h;for(h=0;h<e.length;++h)c()[f++]=e.charCodeAt(h);c()[f]=0;d+=e.length+1});return 0},environ_sizes_get:(a,b)=>{var d=Fb();t()[a>>2]=d.length;var e=0;d.forEach(f=>e+=f.length+1);t()[b>>2]=e;return 0},fd_close:()=>52,fd_pread:function(){return 52},fd_read:()=>52,fd_seek:function(){return 70},fd_write:(a,b,d,e)=>{for(var f=0,h=0;h<d;h++){var l=t()[b>>2],m=t()[b+4>>2];b+=8;for(var n=0;n<m;n++){var u=q()[l+n],S=Gb[a];0===u||10===u?((1===a?pa:y)(Wa(S)),S.length=0):S.push(u)}f+=
|
||||
m}t()[e>>2]=f;return 0},glActiveTexture:a=>E.activeTexture(a),glAttachShader:(a,b)=>{E.attachShader(G[a],J[b])},glBeginQueryEXT:(a,b)=>{E.o.beginQueryEXT(a,L[b])},glBindAttribLocation:(a,b,d)=>{E.bindAttribLocation(G[a],b,B(d))},glBindBuffer:(a,b)=>{35051==a?E.D=b:35052==a&&(E.v=b);E.bindBuffer(a,F[b])},glBindBufferRange:(a,b,d,e,f)=>{E.bindBufferRange(a,b,F[d],e,f)},glBindFramebuffer:qb,glBindRenderbuffer:(a,b)=>{E.bindRenderbuffer(a,H[b])},glBindTexture:(a,b)=>{E.bindTexture(a,I[b])},glBindVertexArray:a=>
|
||||
{E.bindVertexArray(gb[a])},glBlendEquationSeparate:(a,b)=>E.blendEquationSeparate(a,b),glBlendFuncSeparate:(a,b,d,e)=>E.blendFuncSeparate(a,b,d,e),glBlitFramebuffer:(a,b,d,e,f,h,l,m,n,u)=>E.blitFramebuffer(a,b,d,e,f,h,l,m,n,u),glBufferData:(a,b,d,e)=>{2<=O.version?d&&b?E.bufferData(a,q(),e,d,b):E.bufferData(a,b,e):E.bufferData(a,d?q().subarray(d,d+b):b,e)},glBufferSubData:(a,b,d,e)=>{2<=O.version?d&&E.bufferSubData(a,b,q(),e,d):E.bufferSubData(a,b,q().subarray(e,e+d))},glCheckFramebufferStatus:a=>
|
||||
E.checkFramebufferStatus(a),glClear:rb,glClearColor:sb,glClearDepthf:a=>E.clearDepth(a),glClearStencil:tb,glColorMask:(a,b,d,e)=>{E.colorMask(!!a,!!b,!!d,!!e)},glCompileShader:a=>{E.compileShader(J[a])},glCreateProgram:()=>{var a=M(G),b=E.createProgram();b.name=a;b.C=b.A=b.B=0;b.G=1;G[a]=b;return a},glCreateShader:a=>{var b=M(J);J[b]=E.createShader(a);return b},glCullFace:a=>E.cullFace(a),glDeleteBuffers:(a,b)=>{for(var d=0;d<a;d++){var e=r()[b+4*d>>2],f=F[e];f&&(E.deleteBuffer(f),f.name=0,F[e]=null,
|
||||
e==E.D&&(E.D=0),e==E.v&&(E.v=0))}},glDeleteFramebuffers:(a,b)=>{for(var d=0;d<a;++d){var e=r()[b+4*d>>2],f=fb[e];f&&(E.deleteFramebuffer(f),f.name=0,fb[e]=null)}},glDeleteProgram:a=>{if(a){var b=G[a];b?(E.deleteProgram(b),b.name=0,G[a]=null):N||=1281}},glDeleteQueriesEXT:(a,b)=>{for(var d=0;d<a;d++){var e=r()[b+4*d>>2],f=L[e];f&&(E.o.deleteQueryEXT(f),L[e]=null)}},glDeleteRenderbuffers:(a,b)=>{for(var d=0;d<a;d++){var e=r()[b+4*d>>2],f=H[e];f&&(E.deleteRenderbuffer(f),f.name=0,H[e]=null)}},glDeleteShader:a=>
|
||||
{if(a){var b=J[a];b?(E.deleteShader(b),J[a]=null):N||=1281}},glDeleteSync:a=>{if(a){var b=hb[a];b?(E.deleteSync(b),b.name=0,hb[a]=null):N||=1281}},glDeleteTextures:(a,b)=>{for(var d=0;d<a;d++){var e=r()[b+4*d>>2],f=I[e];f&&(E.deleteTexture(f),f.name=0,I[e]=null)}},glDeleteVertexArrays:(a,b)=>{for(var d=0;d<a;d++){var e=r()[b+4*d>>2];E.deleteVertexArray(gb[e]);gb[e]=null}},glDepthFunc:a=>E.depthFunc(a),glDepthMask:a=>{E.depthMask(!!a)},glDepthRangef:(a,b)=>E.depthRange(a,b),glDetachShader:(a,b)=>{E.detachShader(G[a],
|
||||
J[b])},glDisable:a=>E.disable(a),glDisableVertexAttribArray:a=>{E.disableVertexAttribArray(a)},glDrawArrays:(a,b,d)=>{E.drawArrays(a,b,d)},glDrawElements:(a,b,d,e)=>{E.drawElements(a,b,d,e)},glEnable:a=>E.enable(a),glEnableVertexAttribArray:a=>{E.enableVertexAttribArray(a)},glEndQueryEXT:a=>{E.o.endQueryEXT(a)},glFenceSync:(a,b)=>(a=E.fenceSync(a,b))?(b=M(hb),a.name=b,hb[b]=a,b):0,glFinish:()=>E.finish(),glFlush:()=>E.flush(),glFramebufferRenderbuffer:(a,b,d,e)=>{E.framebufferRenderbuffer(a,b,d,H[e])},
|
||||
glFramebufferTexture2D:(a,b,d,e,f)=>{E.framebufferTexture2D(a,b,d,I[e],f)},glFrontFace:a=>E.frontFace(a),glGenBuffers:(a,b)=>{mb(a,b,"createBuffer",F)},glGenFramebuffers:(a,b)=>{mb(a,b,"createFramebuffer",fb)},glGenQueriesEXT:(a,b)=>{for(var d=0;d<a;d++){var e=E.o.createQueryEXT();if(!e){for(N||=1282;d<a;)r()[b+4*d++>>2]=0;break}var f=M(L);e.name=f;L[f]=e;r()[b+4*d>>2]=f}},glGenRenderbuffers:(a,b)=>{mb(a,b,"createRenderbuffer",H)},glGenTextures:(a,b)=>{mb(a,b,"createTexture",I)},glGenVertexArrays:(a,
|
||||
b)=>{mb(a,b,"createVertexArray",gb)},glGenerateMipmap:a=>E.generateMipmap(a),glGetActiveUniform:(a,b,d,e,f,h,l)=>{a=G[a];if(b=E.getActiveUniform(a,b))d=l&&D(b.name,l,d),e&&(r()[e>>2]=d),f&&(r()[f>>2]=b.size),h&&(r()[h>>2]=b.type)},glGetActiveUniformBlockName:(a,b,d,e,f)=>{a=G[a];if(a=E.getActiveUniformBlockName(a,b))f&&0<d?(d=D(a,f,d),e&&(r()[e>>2]=d)):e&&(r()[e>>2]=0)},glGetActiveUniformBlockiv:(a,b,d,e)=>{if(e)if(a=G[a],35393==d)d=E.getActiveUniformBlockName(a,b),r()[e>>2]=d.length+1;else{if(a=
|
||||
E.getActiveUniformBlockParameter(a,b,d),null!==a)if(35395==d)for(d=0;d<a.length;d++)r()[e+4*d>>2]=a[d];else r()[e>>2]=a}else N||=1281},glGetBooleanv:(a,b)=>wb(a,b,4),glGetError:()=>{var a=E.getError()||N;N=0;return a},glGetFloatv:(a,b)=>wb(a,b,2),glGetFramebufferAttachmentParameteriv:(a,b,d,e)=>{a=E.getFramebufferAttachmentParameter(a,b,d);if(a instanceof WebGLRenderbuffer||a instanceof WebGLTexture)a=a.name|0;r()[e>>2]=a},glGetIntegerv:xb,glGetProgramInfoLog:(a,b,d,e)=>{a=E.getProgramInfoLog(G[a]);
|
||||
null===a&&(a="(unknown error)");b=0<b&&e?D(a,e,b):0;d&&(r()[d>>2]=b)},glGetProgramiv:(a,b,d)=>{if(d)if(a>=eb)N||=1281;else if(a=G[a],35716==b)a=E.getProgramInfoLog(a),null===a&&(a="(unknown error)"),r()[d>>2]=a.length+1;else if(35719==b){if(!a.C){var e=E.getProgramParameter(a,35718);for(b=0;b<e;++b)a.C=Math.max(a.C,E.getActiveUniform(a,b).name.length+1)}r()[d>>2]=a.C}else if(35722==b){if(!a.A)for(e=E.getProgramParameter(a,35721),b=0;b<e;++b)a.A=Math.max(a.A,E.getActiveAttrib(a,b).name.length+1);r()[d>>
|
||||
2]=a.A}else if(35381==b){if(!a.B)for(e=E.getProgramParameter(a,35382),b=0;b<e;++b)a.B=Math.max(a.B,E.getActiveUniformBlockName(a,b).length+1);r()[d>>2]=a.B}else r()[d>>2]=E.getProgramParameter(a,b);else N||=1281},glGetQueryObjectui64vEXT:(a,b,d)=>{if(d){a=L[a];b=2>O.version?E.o.getQueryObjectEXT(a,b):E.getQueryParameter(a,b);var e;"boolean"==typeof b?e=b?1:0:e=b;ub(d,e)}else N||=1281},glGetQueryObjectuivEXT:(a,b,d)=>{if(d){a=E.o.getQueryObjectEXT(L[a],b);var e;"boolean"==typeof a?e=a?1:0:e=a;r()[d>>
|
||||
2]=e}else N||=1281},glGetShaderInfoLog:(a,b,d,e)=>{a=E.getShaderInfoLog(J[a]);null===a&&(a="(unknown error)");b=0<b&&e?D(a,e,b):0;d&&(r()[d>>2]=b)},glGetShaderSource:(a,b,d,e)=>{if(a=E.getShaderSource(J[a]))b=0<b&&e?D(a,e,b):0,d&&(r()[d>>2]=b)},glGetShaderiv:(a,b,d)=>{d?35716==b?(a=E.getShaderInfoLog(J[a]),null===a&&(a="(unknown error)"),a=a?a.length+1:0,r()[d>>2]=a):35720==b?(a=(a=E.getShaderSource(J[a]))?a.length+1:0,r()[d>>2]=a):r()[d>>2]=E.getShaderParameter(J[a],b):N||=1281},glGetString:a=>{var b=
|
||||
ib[a];if(!b){switch(a){case 7939:b=Ib(vb().join(" "));break;case 7936:case 7937:case 37445:case 37446:(b=E.getParameter(a))||(N||=1280);b=b?Ib(b):0;break;case 7938:b=E.getParameter(7938);var d=`OpenGL ES 2.0 (${b})`;2<=O.version&&(d=`OpenGL ES 3.0 (${b})`);b=Ib(d);break;case 35724:b=E.getParameter(35724);d=b.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==d&&(3==d[1].length&&(d[1]+="0"),b=`OpenGL ES GLSL ES ${d[1]} (${b})`);b=Ib(b);break;default:N||=1280}ib[a]=b}return b},glGetStringi:(a,
|
||||
b)=>{if(2>O.version)return N||=1282,0;var d=jb[a];if(d)return 0>b||b>=d.length?(N||=1281,0):d[b];switch(a){case 7939:return d=vb().map(Ib),d=jb[a]=d,0>b||b>=d.length?(N||=1281,0):d[b];default:return N||=1280,0}},glGetUniformBlockIndex:(a,b)=>E.getUniformBlockIndex(G[a],B(b)),glGetUniformLocation:(a,b)=>{b=B(b);if(a=G[a]){var d=a,e=d.u,f=d.L,h;if(!e){d.u=e={};d.K={};var l=E.getProgramParameter(d,35718);for(h=0;h<l;++h){var m=E.getActiveUniform(d,h);var n=m.name;m=m.size;var u=Jb(n);u=0<u?n.slice(0,
|
||||
u):n;var S=d.G;d.G+=m;f[u]=[m,S];for(n=0;n<m;++n)e[S]=n,d.K[S++]=u}}d=a.u;e=0;f=b;h=Jb(b);0<h&&(e=parseInt(b.slice(h+1))>>>0,f=b.slice(0,h));if((f=a.L[f])&&e<f[0]&&(e+=f[1],d[e]=d[e]||E.getUniformLocation(a,b)))return e}else N||=1281;return-1},glInvalidateFramebuffer:(a,b,d)=>{for(var e=Kb[b],f=0;f<b;f++)e[f]=r()[d+4*f>>2];E.invalidateFramebuffer(a,e)},glIsBuffer:a=>(a=F[a])?E.isBuffer(a):0,glIsFramebuffer:a=>(a=fb[a])?E.isFramebuffer(a):0,glIsProgram:a=>(a=G[a])?E.isProgram(a):0,glIsRenderbuffer:a=>
|
||||
(a=H[a])?E.isRenderbuffer(a):0,glIsShader:a=>(a=J[a])?E.isShader(a):0,glIsTexture:a=>(a=I[a])?E.isTexture(a):0,glLinkProgram:a=>{a=G[a];E.linkProgram(a);a.u=0;a.L={}},glPixelStorei:(a,b)=>{3317==a?kb=b:3314==a&&(lb=b);E.pixelStorei(a,b)},glReadPixels:Ab,glRenderbufferStorage:(a,b,d,e)=>E.renderbufferStorage(a,b,d,e),glRenderbufferStorageMultisample:(a,b,d,e,f)=>E.renderbufferStorageMultisample(a,b,d,e,f),glScissor:(a,b,d,e)=>E.scissor(a,b,d,e),glShaderBinary:()=>{N||=1280},glShaderSource:(a,b,d,e)=>
|
||||
{for(var f="",h=0;h<b;++h){var l=e?t()[e+4*h>>2]:void 0;f+=B(t()[d+4*h>>2],l)}E.shaderSource(J[a],f)},glStencilFuncSeparate:(a,b,d,e)=>E.stencilFuncSeparate(a,b,d,e),glStencilMaskSeparate:(a,b)=>E.stencilMaskSeparate(a,b),glStencilOpSeparate:(a,b,d,e)=>E.stencilOpSeparate(a,b,d,e),glTexImage2D:(a,b,d,e,f,h,l,m,n)=>{if(2<=O.version){if(E.v){E.texImage2D(a,b,d,e,f,h,l,m,n);return}if(n){var u=yb(m);n>>>=31-Math.clz32(u.BYTES_PER_ELEMENT);E.texImage2D(a,b,d,e,f,h,l,m,u,n);return}}u=n?zb(m,l,e,f,n):null;
|
||||
E.texImage2D(a,b,d,e,f,h,l,m,u)},glTexParameterfv:(a,b,d)=>{d=v()[d>>2];E.texParameterf(a,b,d)},glTexParameteri:(a,b,d)=>E.texParameteri(a,b,d),glTexSubImage2D:(a,b,d,e,f,h,l,m,n)=>{if(2<=O.version){if(E.v){E.texSubImage2D(a,b,d,e,f,h,l,m,n);return}if(n){var u=yb(m);E.texSubImage2D(a,b,d,e,f,h,l,m,u,n>>>31-Math.clz32(u.BYTES_PER_ELEMENT));return}}n=n?zb(m,l,f,h,n):null;E.texSubImage2D(a,b,d,e,f,h,l,m,n)},glUniform1fv:(a,b,d)=>{if(2<=O.version)b&&E.uniform1fv(Q(a),v(),d>>2,b);else{if(288>=b)for(var e=
|
||||
R[b],f=0;f<b;++f)e[f]=v()[d+4*f>>2];else e=v().subarray(d>>2,d+4*b>>2);E.uniform1fv(Q(a),e)}},glUniform1i:(a,b)=>{E.uniform1i(Q(a),b)},glUniform2fv:(a,b,d)=>{if(2<=O.version)b&&E.uniform2fv(Q(a),v(),d>>2,2*b);else{if(144>=b){b*=2;for(var e=R[b],f=0;f<b;f+=2)e[f]=v()[d+4*f>>2],e[f+1]=v()[d+(4*f+4)>>2]}else e=v().subarray(d>>2,d+8*b>>2);E.uniform2fv(Q(a),e)}},glUniform3fv:(a,b,d)=>{if(2<=O.version)b&&E.uniform3fv(Q(a),v(),d>>2,3*b);else{if(96>=b){b*=3;for(var e=R[b],f=0;f<b;f+=3)e[f]=v()[d+4*f>>2],
|
||||
e[f+1]=v()[d+(4*f+4)>>2],e[f+2]=v()[d+(4*f+8)>>2]}else e=v().subarray(d>>2,d+12*b>>2);E.uniform3fv(Q(a),e)}},glUniform4fv:(a,b,d)=>{if(2<=O.version)b&&E.uniform4fv(Q(a),v(),d>>2,4*b);else{if(72>=b){var e=R[4*b],f=v();d>>=2;b*=4;for(var h=0;h<b;h+=4){var l=d+h;e[h]=f[l];e[h+1]=f[l+1];e[h+2]=f[l+2];e[h+3]=f[l+3]}}else e=v().subarray(d>>2,d+16*b>>2);E.uniform4fv(Q(a),e)}},glUniformBlockBinding:(a,b,d)=>{a=G[a];E.uniformBlockBinding(a,b,d)},glUniformMatrix2fv:(a,b,d,e)=>{if(2<=O.version)b&&E.uniformMatrix2fv(Q(a),
|
||||
!!d,v(),e>>2,4*b);else{if(72>=b){b*=4;for(var f=R[b],h=0;h<b;h+=4)f[h]=v()[e+4*h>>2],f[h+1]=v()[e+(4*h+4)>>2],f[h+2]=v()[e+(4*h+8)>>2],f[h+3]=v()[e+(4*h+12)>>2]}else f=v().subarray(e>>2,e+16*b>>2);E.uniformMatrix2fv(Q(a),!!d,f)}},glUniformMatrix3fv:(a,b,d,e)=>{if(2<=O.version)b&&E.uniformMatrix3fv(Q(a),!!d,v(),e>>2,9*b);else{if(32>=b){b*=9;for(var f=R[b],h=0;h<b;h+=9)f[h]=v()[e+4*h>>2],f[h+1]=v()[e+(4*h+4)>>2],f[h+2]=v()[e+(4*h+8)>>2],f[h+3]=v()[e+(4*h+12)>>2],f[h+4]=v()[e+(4*h+16)>>2],f[h+5]=v()[e+
|
||||
(4*h+20)>>2],f[h+6]=v()[e+(4*h+24)>>2],f[h+7]=v()[e+(4*h+28)>>2],f[h+8]=v()[e+(4*h+32)>>2]}else f=v().subarray(e>>2,e+36*b>>2);E.uniformMatrix3fv(Q(a),!!d,f)}},glUniformMatrix4fv:(a,b,d,e)=>{if(2<=O.version)b&&E.uniformMatrix4fv(Q(a),!!d,v(),e>>2,16*b);else{if(18>=b){var f=R[16*b],h=v();e>>=2;b*=16;for(var l=0;l<b;l+=16){var m=e+l;f[l]=h[m];f[l+1]=h[m+1];f[l+2]=h[m+2];f[l+3]=h[m+3];f[l+4]=h[m+4];f[l+5]=h[m+5];f[l+6]=h[m+6];f[l+7]=h[m+7];f[l+8]=h[m+8];f[l+9]=h[m+9];f[l+10]=h[m+10];f[l+11]=h[m+11];
|
||||
f[l+12]=h[m+12];f[l+13]=h[m+13];f[l+14]=h[m+14];f[l+15]=h[m+15]}}else f=v().subarray(e>>2,e+64*b>>2);E.uniformMatrix4fv(Q(a),!!d,f)}},glUseProgram:a=>{a=G[a];E.useProgram(a);E.N=a},glVertexAttribPointer:(a,b,d,e,f,h)=>{E.vertexAttribPointer(a,b,d,!!e,f,h)},glViewport:(a,b,d,e)=>E.viewport(a,b,d,e),glWaitSync:(a,b,d,e)=>{E.waitSync(hb[a],b,(d>>>0)+4294967296*e)},invoke_ii:Bc,invoke_iii:Cc,invoke_iiiii:Dc,invoke_iiiiiii:Ec,invoke_vi:Fc,invoke_vii:Gc,invoke_viii:Hc,invoke_viiiiiii:Ic,memory:g,proc_exit:Qa,
|
||||
skwasm_captureImageBitmap:Lb,skwasm_connectThread:Ob,skwasm_createGlTextureFromTextureSource:Pb,skwasm_destroyContext:Qb,skwasm_dispatchDisposeSurface:Rb,skwasm_dispatchRasterizeImage:Sb,skwasm_dispatchRenderPictures:Tb,skwasm_dispatchResizeSurface:Ub,skwasm_dispatchTransferCanvas:Vb,skwasm_dispatchTriggerContextLoss:Wb,skwasm_disposeAssociatedObjectOnThread:Xb,skwasm_getAssociatedObject:Yb,skwasm_getGlContextForCanvas:Zb,skwasm_isSingleThreaded:$b,skwasm_postRasterizeResult:ac,skwasm_reportContextLossTriggered:bc,
|
||||
skwasm_reportContextLost:cc,skwasm_reportInitialized:dc,skwasm_reportResizeComplete:ec,skwasm_resizeCanvas:fc,skwasm_resolveAndPostImages:gc,skwasm_setAssociatedObjectOnThread:hc,skwasm_triggerContextLossOnCanvas:ic},W=function(){function a(d,e){W=d.exports;w.wasmExports=W;A=W.__indirect_function_table;wa.unshift(W.__wasm_call_ctors);qa=e;z--;0==z&&(null!==Fa&&(clearInterval(Fa),Fa=null),Ga&&(d=Ga,Ga=null,d()));return W}var b={env:Jc,wasi_snapshot_preview1:Jc};z++;if(w.instantiateWasm)try{return w.instantiateWasm(b,
|
||||
a)}catch(d){y(`Module.instantiateWasm callback failed with error: ${d}`),fa(d)}Ja??=Ia("wimp.wasm")?"wimp.wasm":ma("wimp.wasm");Ma(b,function(d){a(d.instance,d.module)}).catch(fa);return{}}();w._canvas_saveLayer=(a,b,d,e)=>(w._canvas_saveLayer=W.canvas_saveLayer)(a,b,d,e);w._canvas_save=a=>(w._canvas_save=W.canvas_save)(a);w._canvas_restore=a=>(w._canvas_restore=W.canvas_restore)(a);w._canvas_restoreToCount=(a,b)=>(w._canvas_restoreToCount=W.canvas_restoreToCount)(a,b);
|
||||
w._canvas_getSaveCount=a=>(w._canvas_getSaveCount=W.canvas_getSaveCount)(a);w._canvas_translate=(a,b,d)=>(w._canvas_translate=W.canvas_translate)(a,b,d);w._canvas_scale=(a,b,d)=>(w._canvas_scale=W.canvas_scale)(a,b,d);w._canvas_rotate=(a,b)=>(w._canvas_rotate=W.canvas_rotate)(a,b);w._canvas_skew=(a,b,d)=>(w._canvas_skew=W.canvas_skew)(a,b,d);w._canvas_transform=(a,b)=>(w._canvas_transform=W.canvas_transform)(a,b);w._canvas_clear=(a,b)=>(w._canvas_clear=W.canvas_clear)(a,b);
|
||||
w._canvas_clipRect=(a,b,d,e)=>(w._canvas_clipRect=W.canvas_clipRect)(a,b,d,e);w._canvas_clipRRect=(a,b,d)=>(w._canvas_clipRRect=W.canvas_clipRRect)(a,b,d);w._canvas_clipPath=(a,b,d)=>(w._canvas_clipPath=W.canvas_clipPath)(a,b,d);w._canvas_drawColor=(a,b,d)=>(w._canvas_drawColor=W.canvas_drawColor)(a,b,d);w._canvas_drawLine=(a,b,d,e,f,h)=>(w._canvas_drawLine=W.canvas_drawLine)(a,b,d,e,f,h);w._canvas_drawPaint=(a,b)=>(w._canvas_drawPaint=W.canvas_drawPaint)(a,b);
|
||||
w._canvas_drawRect=(a,b,d)=>(w._canvas_drawRect=W.canvas_drawRect)(a,b,d);w._canvas_drawRRect=(a,b,d)=>(w._canvas_drawRRect=W.canvas_drawRRect)(a,b,d);w._canvas_drawDRRect=(a,b,d,e)=>(w._canvas_drawDRRect=W.canvas_drawDRRect)(a,b,d,e);w._canvas_drawOval=(a,b,d)=>(w._canvas_drawOval=W.canvas_drawOval)(a,b,d);w._canvas_drawCircle=(a,b,d,e,f)=>(w._canvas_drawCircle=W.canvas_drawCircle)(a,b,d,e,f);w._canvas_drawArc=(a,b,d,e,f,h)=>(w._canvas_drawArc=W.canvas_drawArc)(a,b,d,e,f,h);
|
||||
w._canvas_drawPath=(a,b,d)=>(w._canvas_drawPath=W.canvas_drawPath)(a,b,d);w._canvas_drawShadow=(a,b,d,e,f,h)=>(w._canvas_drawShadow=W.canvas_drawShadow)(a,b,d,e,f,h);w._canvas_drawParagraph=(a,b,d,e)=>(w._canvas_drawParagraph=W.canvas_drawParagraph)(a,b,d,e);w._canvas_drawPicture=(a,b)=>(w._canvas_drawPicture=W.canvas_drawPicture)(a,b);w._canvas_drawImage=(a,b,d,e,f,h)=>(w._canvas_drawImage=W.canvas_drawImage)(a,b,d,e,f,h);
|
||||
w._canvas_drawImageRect=(a,b,d,e,f,h)=>(w._canvas_drawImageRect=W.canvas_drawImageRect)(a,b,d,e,f,h);w._canvas_drawImageNine=(a,b,d,e,f,h)=>(w._canvas_drawImageNine=W.canvas_drawImageNine)(a,b,d,e,f,h);w._canvas_drawVertices=(a,b,d,e)=>(w._canvas_drawVertices=W.canvas_drawVertices)(a,b,d,e);w._canvas_drawPoints=(a,b,d,e,f)=>(w._canvas_drawPoints=W.canvas_drawPoints)(a,b,d,e,f);w._canvas_drawAtlas=(a,b,d,e,f,h,l,m,n)=>(w._canvas_drawAtlas=W.canvas_drawAtlas)(a,b,d,e,f,h,l,m,n);
|
||||
w._canvas_getTransform=(a,b)=>(w._canvas_getTransform=W.canvas_getTransform)(a,b);w._canvas_getLocalClipBounds=(a,b)=>(w._canvas_getLocalClipBounds=W.canvas_getLocalClipBounds)(a,b);w._canvas_getDeviceClipBounds=(a,b)=>(w._canvas_getDeviceClipBounds=W.canvas_getDeviceClipBounds)(a,b);w._canvas_quickReject=(a,b)=>(w._canvas_quickReject=W.canvas_quickReject)(a,b);w._contourMeasureIter_create=(a,b,d)=>(w._contourMeasureIter_create=W.contourMeasureIter_create)(a,b,d);
|
||||
w._contourMeasureIter_next=a=>(w._contourMeasureIter_next=W.contourMeasureIter_next)(a);w._contourMeasureIter_dispose=a=>(w._contourMeasureIter_dispose=W.contourMeasureIter_dispose)(a);w._contourMeasure_dispose=a=>(w._contourMeasure_dispose=W.contourMeasure_dispose)(a);w._contourMeasure_length=a=>(w._contourMeasure_length=W.contourMeasure_length)(a);w._contourMeasure_isClosed=a=>(w._contourMeasure_isClosed=W.contourMeasure_isClosed)(a);
|
||||
w._contourMeasure_getPosTan=(a,b,d,e)=>(w._contourMeasure_getPosTan=W.contourMeasure_getPosTan)(a,b,d,e);w._contourMeasure_getSegment=(a,b,d,e)=>(w._contourMeasure_getSegment=W.contourMeasure_getSegment)(a,b,d,e);w._skData_create=a=>(w._skData_create=W.skData_create)(a);w._skData_getPointer=a=>(w._skData_getPointer=W.skData_getPointer)(a);w._skData_getConstPointer=a=>(w._skData_getConstPointer=W.skData_getConstPointer)(a);w._skData_getSize=a=>(w._skData_getSize=W.skData_getSize)(a);
|
||||
w._skData_dispose=a=>(w._skData_dispose=W.skData_dispose)(a);w._imageFilter_createBlur=(a,b,d)=>(w._imageFilter_createBlur=W.imageFilter_createBlur)(a,b,d);w._imageFilter_createDilate=(a,b)=>(w._imageFilter_createDilate=W.imageFilter_createDilate)(a,b);w._imageFilter_createErode=(a,b)=>(w._imageFilter_createErode=W.imageFilter_createErode)(a,b);w._imageFilter_createMatrix=(a,b)=>(w._imageFilter_createMatrix=W.imageFilter_createMatrix)(a,b);
|
||||
w._imageFilter_createFromColorFilter=a=>(w._imageFilter_createFromColorFilter=W.imageFilter_createFromColorFilter)(a);w._imageFilter_compose=(a,b)=>(w._imageFilter_compose=W.imageFilter_compose)(a,b);w._imageFilter_dispose=a=>(w._imageFilter_dispose=W.imageFilter_dispose)(a);w._imageFilter_getFilterBounds=(a,b)=>(w._imageFilter_getFilterBounds=W.imageFilter_getFilterBounds)(a,b);w._colorFilter_createMode=(a,b)=>(w._colorFilter_createMode=W.colorFilter_createMode)(a,b);
|
||||
w._colorFilter_createMatrix=a=>(w._colorFilter_createMatrix=W.colorFilter_createMatrix)(a);w._colorFilter_createSRGBToLinearGamma=()=>(w._colorFilter_createSRGBToLinearGamma=W.colorFilter_createSRGBToLinearGamma)();w._colorFilter_createLinearToSRGBGamma=()=>(w._colorFilter_createLinearToSRGBGamma=W.colorFilter_createLinearToSRGBGamma)();w._colorFilter_dispose=a=>(w._colorFilter_dispose=W.colorFilter_dispose)(a);w._maskFilter_createBlur=(a,b)=>(w._maskFilter_createBlur=W.maskFilter_createBlur)(a,b);
|
||||
w._maskFilter_dispose=a=>(w._maskFilter_dispose=W.maskFilter_dispose)(a);w._fontCollection_create=()=>(w._fontCollection_create=W.fontCollection_create)();w._fontCollection_dispose=a=>(w._fontCollection_dispose=W.fontCollection_dispose)(a);w._typeface_create=a=>(w._typeface_create=W.typeface_create)(a);w._typeface_dispose=a=>(w._typeface_dispose=W.typeface_dispose)(a);w._typefaces_filterCoveredCodePoints=(a,b,d,e)=>(w._typefaces_filterCoveredCodePoints=W.typefaces_filterCoveredCodePoints)(a,b,d,e);
|
||||
w._fontCollection_registerTypeface=(a,b,d)=>(w._fontCollection_registerTypeface=W.fontCollection_registerTypeface)(a,b,d);w._fontCollection_clearCaches=a=>(w._fontCollection_clearCaches=W.fontCollection_clearCaches)(a);w._image_createFromPicture=(a,b,d)=>(w._image_createFromPicture=W.image_createFromPicture)(a,b,d);w._image_createFromPixels=(a,b,d,e,f)=>(w._image_createFromPixels=W.image_createFromPixels)(a,b,d,e,f);
|
||||
w._image_createFromTextureSource=(a,b,d,e)=>(w._image_createFromTextureSource=W.image_createFromTextureSource)(a,b,d,e);w._image_ref=a=>(w._image_ref=W.image_ref)(a);w._image_dispose=a=>(w._image_dispose=W.image_dispose)(a);w._image_getWidth=a=>(w._image_getWidth=W.image_getWidth)(a);w._image_getHeight=a=>(w._image_getHeight=W.image_getHeight)(a);w._skwasm_getLiveObjectCounts=a=>(w._skwasm_getLiveObjectCounts=W.skwasm_getLiveObjectCounts)(a);
|
||||
w._paint_create=(a,b,d,e,f,h,l,m,n)=>(w._paint_create=W.paint_create)(a,b,d,e,f,h,l,m,n);w._paint_dispose=a=>(w._paint_dispose=W.paint_dispose)(a);w._paint_setShader=(a,b)=>(w._paint_setShader=W.paint_setShader)(a,b);w._paint_setImageFilter=(a,b)=>(w._paint_setImageFilter=W.paint_setImageFilter)(a,b);w._paint_setColorFilter=(a,b)=>(w._paint_setColorFilter=W.paint_setColorFilter)(a,b);w._paint_setMaskFilter=(a,b)=>(w._paint_setMaskFilter=W.paint_setMaskFilter)(a,b);
|
||||
w._path_create=()=>(w._path_create=W.path_create)();w._path_dispose=a=>(w._path_dispose=W.path_dispose)(a);w._path_copy=a=>(w._path_copy=W.path_copy)(a);w._path_setFillType=(a,b)=>(w._path_setFillType=W.path_setFillType)(a,b);w._path_getFillType=a=>(w._path_getFillType=W.path_getFillType)(a);w._path_moveTo=(a,b,d)=>(w._path_moveTo=W.path_moveTo)(a,b,d);w._path_relativeMoveTo=(a,b,d)=>(w._path_relativeMoveTo=W.path_relativeMoveTo)(a,b,d);w._path_lineTo=(a,b,d)=>(w._path_lineTo=W.path_lineTo)(a,b,d);
|
||||
w._path_relativeLineTo=(a,b,d)=>(w._path_relativeLineTo=W.path_relativeLineTo)(a,b,d);w._path_quadraticBezierTo=(a,b,d,e,f)=>(w._path_quadraticBezierTo=W.path_quadraticBezierTo)(a,b,d,e,f);w._path_relativeQuadraticBezierTo=(a,b,d,e,f)=>(w._path_relativeQuadraticBezierTo=W.path_relativeQuadraticBezierTo)(a,b,d,e,f);w._path_cubicTo=(a,b,d,e,f,h,l)=>(w._path_cubicTo=W.path_cubicTo)(a,b,d,e,f,h,l);w._path_relativeCubicTo=(a,b,d,e,f,h,l)=>(w._path_relativeCubicTo=W.path_relativeCubicTo)(a,b,d,e,f,h,l);
|
||||
w._path_conicTo=(a,b,d,e,f,h)=>(w._path_conicTo=W.path_conicTo)(a,b,d,e,f,h);w._path_relativeConicTo=(a,b,d,e,f,h)=>(w._path_relativeConicTo=W.path_relativeConicTo)(a,b,d,e,f,h);w._path_arcToOval=(a,b,d,e,f)=>(w._path_arcToOval=W.path_arcToOval)(a,b,d,e,f);w._path_arcToRotated=(a,b,d,e,f,h,l,m)=>(w._path_arcToRotated=W.path_arcToRotated)(a,b,d,e,f,h,l,m);w._path_relativeArcToRotated=(a,b,d,e,f,h,l,m)=>(w._path_relativeArcToRotated=W.path_relativeArcToRotated)(a,b,d,e,f,h,l,m);
|
||||
w._path_addRect=(a,b)=>(w._path_addRect=W.path_addRect)(a,b);w._path_addOval=(a,b)=>(w._path_addOval=W.path_addOval)(a,b);w._path_addArc=(a,b,d,e)=>(w._path_addArc=W.path_addArc)(a,b,d,e);w._path_addPolygon=(a,b,d,e)=>(w._path_addPolygon=W.path_addPolygon)(a,b,d,e);w._path_addRRect=(a,b)=>(w._path_addRRect=W.path_addRRect)(a,b);w._path_addPath=(a,b,d,e)=>(w._path_addPath=W.path_addPath)(a,b,d,e);w._path_close=a=>(w._path_close=W.path_close)(a);w._path_reset=a=>(w._path_reset=W.path_reset)(a);
|
||||
w._path_contains=(a,b,d)=>(w._path_contains=W.path_contains)(a,b,d);w._path_transform=(a,b)=>(w._path_transform=W.path_transform)(a,b);w._path_getBounds=(a,b)=>(w._path_getBounds=W.path_getBounds)(a,b);w._path_combine=(a,b,d)=>(w._path_combine=W.path_combine)(a,b,d);w._path_getSvgString=a=>(w._path_getSvgString=W.path_getSvgString)(a);w._pictureRecorder_create=()=>(w._pictureRecorder_create=W.pictureRecorder_create)();w._pictureRecorder_dispose=a=>(w._pictureRecorder_dispose=W.pictureRecorder_dispose)(a);
|
||||
w._pictureRecorder_beginRecording=(a,b)=>(w._pictureRecorder_beginRecording=W.pictureRecorder_beginRecording)(a,b);w._pictureRecorder_endRecording=a=>(w._pictureRecorder_endRecording=W.pictureRecorder_endRecording)(a);w._picture_getCullRect=(a,b)=>(w._picture_getCullRect=W.picture_getCullRect)(a,b);w._picture_ref=a=>(w._picture_ref=W.picture_ref)(a);w._picture_dispose=a=>(w._picture_dispose=W.picture_dispose)(a);w._picture_approximateBytesUsed=a=>(w._picture_approximateBytesUsed=W.picture_approximateBytesUsed)(a);
|
||||
w._shader_createLinearGradient=(a,b,d,e,f,h)=>(w._shader_createLinearGradient=W.shader_createLinearGradient)(a,b,d,e,f,h);w._shader_createRadialGradient=(a,b,d,e,f,h,l,m)=>(w._shader_createRadialGradient=W.shader_createRadialGradient)(a,b,d,e,f,h,l,m);w._shader_createConicalGradient=(a,b,d,e,f,h,l,m)=>(w._shader_createConicalGradient=W.shader_createConicalGradient)(a,b,d,e,f,h,l,m);
|
||||
w._shader_createSweepGradient=(a,b,d,e,f,h,l,m,n)=>(w._shader_createSweepGradient=W.shader_createSweepGradient)(a,b,d,e,f,h,l,m,n);w._shader_dispose=a=>(w._shader_dispose=W.shader_dispose)(a);w._runtimeEffect_create=a=>(w._runtimeEffect_create=W.runtimeEffect_create)(a);w._runtimeEffect_dispose=a=>(w._runtimeEffect_dispose=W.runtimeEffect_dispose)(a);w._runtimeEffect_getUniformSize=a=>(w._runtimeEffect_getUniformSize=W.runtimeEffect_getUniformSize)(a);
|
||||
w._shader_createRuntimeEffectShader=(a,b,d,e)=>(w._shader_createRuntimeEffectShader=W.shader_createRuntimeEffectShader)(a,b,d,e);w._shader_createFromImage=(a,b,d,e,f)=>(w._shader_createFromImage=W.shader_createFromImage)(a,b,d,e,f);w._uniformData_create=a=>(w._uniformData_create=W.uniformData_create)(a);w._uniformData_dispose=a=>(w._uniformData_dispose=W.uniformData_dispose)(a);w._uniformData_getPointer=a=>(w._uniformData_getPointer=W.uniformData_getPointer)(a);
|
||||
w._skString_allocate=a=>(w._skString_allocate=W.skString_allocate)(a);w._skString_getData=a=>(w._skString_getData=W.skString_getData)(a);w._skString_getLength=a=>(w._skString_getLength=W.skString_getLength)(a);w._skString_free=a=>(w._skString_free=W.skString_free)(a);w._skString16_allocate=a=>(w._skString16_allocate=W.skString16_allocate)(a);w._skString16_getData=a=>(w._skString16_getData=W.skString16_getData)(a);w._skString16_free=a=>(w._skString16_free=W.skString16_free)(a);
|
||||
w._skwasm_isWimp=()=>(w._skwasm_isWimp=W.skwasm_isWimp)();w._surface_create=()=>(w._surface_create=W.surface_create)();w._surface_setCanvas=(a,b)=>(w._surface_setCanvas=W.surface_setCanvas)(a,b);var nc=w._surface_receiveCanvasOnWorker=(a,b,d)=>(nc=w._surface_receiveCanvasOnWorker=W.surface_receiveCanvasOnWorker)(a,b,d),oc=w._surface_onInitialized=(a,b)=>(oc=w._surface_onInitialized=W.surface_onInitialized)(a,b);w._surface_setSize=(a,b,d)=>(w._surface_setSize=W.surface_setSize)(a,b,d);
|
||||
var pc=w._surface_resizeOnWorker=(a,b,d,e)=>(pc=w._surface_resizeOnWorker=W.surface_resizeOnWorker)(a,b,d,e),qc=w._surface_onResizeComplete=(a,b)=>(qc=w._surface_onResizeComplete=W.surface_onResizeComplete)(a,b);w._surface_getThreadId=a=>(w._surface_getThreadId=W.surface_getThreadId)(a);w._surface_getGlContext=a=>(w._surface_getGlContext=W.surface_getGlContext)(a);w._surface_triggerContextLoss=a=>(w._surface_triggerContextLoss=W.surface_triggerContextLoss)(a);
|
||||
var rc=w._surface_triggerContextLossOnWorker=(a,b)=>(rc=w._surface_triggerContextLossOnWorker=W.surface_triggerContextLossOnWorker)(a,b),sc=w._surface_onContextLossTriggered=(a,b)=>(sc=w._surface_onContextLossTriggered=W.surface_onContextLossTriggered)(a,b),tc=w._surface_reportContextLost=(a,b)=>(tc=w._surface_reportContextLost=W.surface_reportContextLost)(a,b);w._surface_setCallbackHandler=(a,b)=>(w._surface_setCallbackHandler=W.surface_setCallbackHandler)(a,b);
|
||||
w._surface_destroy=a=>(w._surface_destroy=W.surface_destroy)(a);var wc=w._surface_dispose=a=>(wc=w._surface_dispose=W.surface_dispose)(a);w._surface_setResourceCacheLimitBytes=(a,b)=>(w._surface_setResourceCacheLimitBytes=W.surface_setResourceCacheLimitBytes)(a,b);w._surface_renderPictures=(a,b,d)=>(w._surface_renderPictures=W.surface_renderPictures)(a,b,d);var uc=w._surface_renderPicturesOnWorker=(a,b,d,e,f)=>(uc=w._surface_renderPicturesOnWorker=W.surface_renderPicturesOnWorker)(a,b,d,e,f);
|
||||
w._surface_rasterizeImage=(a,b,d)=>(w._surface_rasterizeImage=W.surface_rasterizeImage)(a,b,d);
|
||||
var wc=w._surface_rasterizeImageOnWorker=(a,b,d,e)=>(wc=w._surface_rasterizeImageOnWorker=W.surface_rasterizeImageOnWorker)(a,b,d,e),uc=w._surface_onRenderComplete=(a,b,d)=>(uc=w._surface_onRenderComplete=W.surface_onRenderComplete)(a,b,d),xc=w._surface_onRasterizeComplete=(a,b,d)=>(xc=w._surface_onRasterizeComplete=W.surface_onRasterizeComplete)(a,b,d),yc=w._surface_onContextLost=a=>(yc=w._surface_onContextLost=W.surface_onContextLost)(a);
|
||||
var xc=w._surface_rasterizeImageOnWorker=(a,b,d,e)=>(xc=w._surface_rasterizeImageOnWorker=W.surface_rasterizeImageOnWorker)(a,b,d,e),vc=w._surface_onRenderComplete=(a,b,d)=>(vc=w._surface_onRenderComplete=W.surface_onRenderComplete)(a,b,d),yc=w._surface_onRasterizeComplete=(a,b,d)=>(yc=w._surface_onRasterizeComplete=W.surface_onRasterizeComplete)(a,b,d),zc=w._surface_onContextLost=a=>(zc=w._surface_onContextLost=W.surface_onContextLost)(a);
|
||||
w._skwasm_isMultiThreaded=()=>(w._skwasm_isMultiThreaded=W.skwasm_isMultiThreaded)();w._lineMetrics_create=(a,b,d,e,f,h,l,m,n)=>(w._lineMetrics_create=W.lineMetrics_create)(a,b,d,e,f,h,l,m,n);w._lineMetrics_dispose=a=>(w._lineMetrics_dispose=W.lineMetrics_dispose)(a);w._lineMetrics_getHardBreak=a=>(w._lineMetrics_getHardBreak=W.lineMetrics_getHardBreak)(a);w._lineMetrics_getAscent=a=>(w._lineMetrics_getAscent=W.lineMetrics_getAscent)(a);w._lineMetrics_getDescent=a=>(w._lineMetrics_getDescent=W.lineMetrics_getDescent)(a);
|
||||
w._lineMetrics_getUnscaledAscent=a=>(w._lineMetrics_getUnscaledAscent=W.lineMetrics_getUnscaledAscent)(a);w._lineMetrics_getHeight=a=>(w._lineMetrics_getHeight=W.lineMetrics_getHeight)(a);w._lineMetrics_getWidth=a=>(w._lineMetrics_getWidth=W.lineMetrics_getWidth)(a);w._lineMetrics_getLeft=a=>(w._lineMetrics_getLeft=W.lineMetrics_getLeft)(a);w._lineMetrics_getBaseline=a=>(w._lineMetrics_getBaseline=W.lineMetrics_getBaseline)(a);w._lineMetrics_getLineNumber=a=>(w._lineMetrics_getLineNumber=W.lineMetrics_getLineNumber)(a);
|
||||
w._lineMetrics_getStartIndex=a=>(w._lineMetrics_getStartIndex=W.lineMetrics_getStartIndex)(a);w._lineMetrics_getEndIndex=a=>(w._lineMetrics_getEndIndex=W.lineMetrics_getEndIndex)(a);w._paragraph_dispose=a=>(w._paragraph_dispose=W.paragraph_dispose)(a);w._paragraph_getWidth=a=>(w._paragraph_getWidth=W.paragraph_getWidth)(a);w._paragraph_getHeight=a=>(w._paragraph_getHeight=W.paragraph_getHeight)(a);w._paragraph_getLongestLine=a=>(w._paragraph_getLongestLine=W.paragraph_getLongestLine)(a);
|
||||
@@ -120,13 +120,12 @@ w._textStyle_setForeground=(a,b)=>(w._textStyle_setForeground=W.textStyle_setFor
|
||||
w._vertices_dispose=a=>(w._vertices_dispose=W.vertices_dispose)(a);w._animatedImage_create=(a,b,d)=>(w._animatedImage_create=W.animatedImage_create)(a,b,d);w._animatedImage_dispose=a=>(w._animatedImage_dispose=W.animatedImage_dispose)(a);w._animatedImage_getFrameCount=a=>(w._animatedImage_getFrameCount=W.animatedImage_getFrameCount)(a);w._animatedImage_getRepetitionCount=a=>(w._animatedImage_getRepetitionCount=W.animatedImage_getRepetitionCount)(a);
|
||||
w._animatedImage_getCurrentFrameDurationMilliseconds=a=>(w._animatedImage_getCurrentFrameDurationMilliseconds=W.animatedImage_getCurrentFrameDurationMilliseconds)(a);w._animatedImage_decodeNextFrame=a=>(w._animatedImage_decodeNextFrame=W.animatedImage_decodeNextFrame)(a);w._animatedImage_getCurrentFrame=a=>(w._animatedImage_getCurrentFrame=W.animatedImage_getCurrentFrame)(a);w._skwasm_isHeavy=()=>(w._skwasm_isHeavy=W.skwasm_isHeavy)();
|
||||
w._paragraphBuilder_create=(a,b)=>(w._paragraphBuilder_create=W.paragraphBuilder_create)(a,b);w._paragraphBuilder_build=a=>(w._paragraphBuilder_build=W.paragraphBuilder_build)(a);w._paragraphBuilder_setGraphemeBreaksUtf16=(a,b)=>(w._paragraphBuilder_setGraphemeBreaksUtf16=W.paragraphBuilder_setGraphemeBreaksUtf16)(a,b);w._paragraphBuilder_setWordBreaksUtf16=(a,b)=>(w._paragraphBuilder_setWordBreaksUtf16=W.paragraphBuilder_setWordBreaksUtf16)(a,b);
|
||||
w._paragraphBuilder_setLineBreaksUtf16=(a,b)=>(w._paragraphBuilder_setLineBreaksUtf16=W.paragraphBuilder_setLineBreaksUtf16)(a,b);w._dummyAPICalls=()=>(w._dummyAPICalls=W.dummyAPICalls)();w._skwasm_isWimp=()=>(w._skwasm_isWimp=W.skwasm_isWimp)();
|
||||
var Gb=a=>(Gb=W.malloc)(a),zc=(a,b)=>(zc=W._emscripten_timeout)(a,b),X=(a,b)=>(X=W.setThrew)(a,b),Y=a=>(Y=W._emscripten_stack_restore)(a),ic=a=>(ic=W._emscripten_stack_alloc)(a),Z=()=>(Z=W.emscripten_stack_get_current)(),Aa=(a,b)=>(Aa=W._emscripten_wasm_worker_initialize)(a,b);function Bc(a,b,d){var e=Z();try{return B.get(a)(b,d)}catch(f){Y(e);if(f!==f+0)throw f;X(1,0)}}function Gc(a,b,d){var e=Z();try{B.get(a)(b,d)}catch(f){Y(e);if(f!==f+0)throw f;X(1,0)}}
|
||||
function Ac(a,b){var d=Z();try{return B.get(a)(b)}catch(e){Y(d);if(e!==e+0)throw e;X(1,0)}}function Hc(a,b,d,e){var f=Z();try{B.get(a)(b,d,e)}catch(h){Y(f);if(h!==h+0)throw h;X(1,0)}}function Cc(a,b,d,e){var f=Z();try{return B.get(a)(b,d,e)}catch(h){Y(f);if(h!==h+0)throw h;X(1,0)}}function Dc(a,b,d,e,f){var h=Z();try{return B.get(a)(b,d,e,f)}catch(l){Y(h);if(l!==l+0)throw l;X(1,0)}}function Ic(a,b,d,e,f,h,l,m){var n=Z();try{B.get(a)(b,d,e,f,h,l,m)}catch(r){Y(n);if(r!==r+0)throw r;X(1,0)}}
|
||||
function Fc(a,b){var d=Z();try{B.get(a)(b)}catch(e){Y(d);if(e!==e+0)throw e;X(1,0)}}function Ec(a,b,d,e,f,h,l){var m=Z();try{return B.get(a)(b,d,e,f,h,l)}catch(n){Y(m);if(n!==n+0)throw n;X(1,0)}}w.wasmMemory=g;w.wasmExports=W;w.stackAlloc=jc;
|
||||
w.addFunction=(a,b)=>{if(!V){V=new WeakMap;var d=B.length;if(V)for(var e=0;e<0+d;e++){var f=B.get(e);f&&V.set(f,e)}}if(d=V.get(a)||0)return d;if(hc.length)d=hc.pop();else{try{B.grow(1)}catch(m){if(!(m instanceof RangeError))throw m;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.";}d=B.length-1}try{B.set(d,a)}catch(m){if(!(m instanceof TypeError))throw m;if("function"==typeof WebAssembly.Function){e=WebAssembly.Function;f={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"};for(var h={parameters:[],
|
||||
w._paragraphBuilder_setLineBreaksUtf16=(a,b)=>(w._paragraphBuilder_setLineBreaksUtf16=W.paragraphBuilder_setLineBreaksUtf16)(a,b);w._dummyAPICalls=()=>(w._dummyAPICalls=W.dummyAPICalls)();var Hb=a=>(Hb=W.malloc)(a),Ac=(a,b)=>(Ac=W._emscripten_timeout)(a,b),X=(a,b)=>(X=W.setThrew)(a,b),Y=a=>(Y=W._emscripten_stack_restore)(a),kc=a=>(kc=W._emscripten_stack_alloc)(a),Z=()=>(Z=W.emscripten_stack_get_current)(),Aa=(a,b)=>(Aa=W._emscripten_wasm_worker_initialize)(a,b);
|
||||
function Cc(a,b,d){var e=Z();try{return A.get(a)(b,d)}catch(f){Y(e);if(f!==f+0)throw f;X(1,0)}}function Gc(a,b,d){var e=Z();try{A.get(a)(b,d)}catch(f){Y(e);if(f!==f+0)throw f;X(1,0)}}function Bc(a,b){var d=Z();try{return A.get(a)(b)}catch(e){Y(d);if(e!==e+0)throw e;X(1,0)}}function Hc(a,b,d,e){var f=Z();try{A.get(a)(b,d,e)}catch(h){Y(f);if(h!==h+0)throw h;X(1,0)}}function Dc(a,b,d,e,f){var h=Z();try{return A.get(a)(b,d,e,f)}catch(l){Y(h);if(l!==l+0)throw l;X(1,0)}}
|
||||
function Ic(a,b,d,e,f,h,l,m){var n=Z();try{A.get(a)(b,d,e,f,h,l,m)}catch(u){Y(n);if(u!==u+0)throw u;X(1,0)}}function Fc(a,b){var d=Z();try{A.get(a)(b)}catch(e){Y(d);if(e!==e+0)throw e;X(1,0)}}function Ec(a,b,d,e,f,h,l){var m=Z();try{return A.get(a)(b,d,e,f,h,l)}catch(n){Y(m);if(n!==n+0)throw n;X(1,0)}}w.wasmMemory=g;w.wasmExports=W;w.stackAlloc=lc;
|
||||
w.addFunction=(a,b)=>{if(!U){U=new WeakMap;var d=A.length;if(U)for(var e=0;e<0+d;e++){var f=A.get(e);f&&U.set(f,e)}}if(d=U.get(a)||0)return d;if(jc.length)d=jc.pop();else{try{A.grow(1)}catch(m){if(!(m instanceof RangeError))throw m;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.";}d=A.length-1}try{A.set(d,a)}catch(m){if(!(m instanceof TypeError))throw m;if("function"==typeof WebAssembly.Function){e=WebAssembly.Function;f={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"};for(var h={parameters:[],
|
||||
results:"v"==b[0]?[]:[f[b[0]]]},l=1;l<b.length;++l)h.parameters.push(f[b[l]]);b=new e(h,a)}else{e=[1];f=b.slice(0,1);b=b.slice(1);h={i:127,p:127,j:126,f:125,d:124,e:111};e.push(96);l=b.length;128>l?e.push(l):e.push(l%128|128,l>>7);for(l=0;l<b.length;++l)e.push(h[b[l]]);"v"==f?e.push(0):e.push(1,h[f]);b=[0,97,115,109,1,0,0,0,1];f=e.length;128>f?b.push(f):b.push(f%128|128,f>>7);b.push(...e);b.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);b=new WebAssembly.Module(new Uint8Array(b));b=(new WebAssembly.Instance(b,
|
||||
{e:{f:a}})).exports.f}B.set(d,b)}V.set(a,d);return d};var Kc,Lc;A=function Mc(){Kc||Nc();Kc||(A=Mc)};function Nc(){if(!(0<z))if(ka)ea(w),ya();else{if(!Lc&&(Lc=1,Ea(va),0<z))return;Kc||(Kc=1,w.calledRun=1,ra||(ya(),ea(w),Ea(xa)))}}Nc();moduleRtn=ha;
|
||||
{e:{f:a}})).exports.f}A.set(d,b)}U.set(a,d);return d};var Kc,Lc;Ga=function Mc(){Kc||Nc();Kc||(Ga=Mc)};function Nc(){if(!(0<z))if(ka)ea(w),ya();else{if(!Lc&&(Lc=1,Ea(va),0<z))return;Kc||(Kc=1,w.calledRun=1,ra||(ya(),ea(w),Ea(xa)))}}Nc();moduleRtn=ha;
|
||||
|
||||
|
||||
return moduleRtn;
|
||||
|
||||
+11333
-11171
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -1,5 +1,10 @@
|
||||
(()=>{var _={blink:!0,gecko:!1,webkit:!1,unknown:!1},K=()=>navigator.vendor==="Google Inc."||navigator.userAgent.includes("Edg/")?"blink":navigator.vendor==="Apple Computer, Inc."?"webkit":navigator.vendor===""&&navigator.userAgent.includes("Firefox")?"gecko":"unknown",C=K(),R=()=>typeof ImageDecoder>"u"?!1:C==="blink",B=()=>typeof Intl.v8BreakIterator<"u"&&typeof Intl.Segmenter<"u",z=()=>{let i=[0,97,115,109,1,0,0,0,1,5,1,95,1,120,0];return WebAssembly.validate(new Uint8Array(i))},M=()=>{let i=document.createElement("canvas");return i.width=1,i.height=1,i.getContext("webgl2")!=null?2:i.getContext("webgl")!=null?1:-1},D=()=>window.chrome&&chrome.runtime&&chrome.runtime.id,w={browserEngine:C,hasImageCodecs:R(),hasChromiumBreakIterators:B(),supportsWasmGC:z(),crossOriginIsolated:window.crossOriginIsolated,webGLVersion:M(),isChromeExtension:D()};function c(...i){return new URL(I(...i),document.baseURI).toString()}function I(...i){return i.filter(e=>!!e).map((e,n)=>n===0?S(e):F(S(e))).filter(e=>e.length).join("/")}function F(i){let e=0;for(;e<i.length&&i.charAt(e)==="/";)e++;return i.substring(e)}function S(i){let e=i.length;for(;e>0&&i.charAt(e-1)==="/";)e--;return i.substring(0,e)}function E(i,e){return i.canvasKitBaseUrl?i.canvasKitBaseUrl:e.engineRevision&&!e.useLocalCanvasKit?I("https://www.gstatic.com/flutter-canvaskit",e.engineRevision):"canvaskit"}var v=class{constructor(){this._scriptLoaded=!1}setTrustedTypesPolicy(e){this._ttPolicy=e}async loadEntrypoint(e){let{entrypointUrl:n=c("main.dart.js"),onEntrypointLoaded:t,nonce:r}=e||{};return this._loadJSEntrypoint(n,t,r)}async load(e,n,t,r,a){a??=l=>{l.initializeEngine(t).then(u=>u.runApp())};let{entrypointBaseUrl:s}=t,{entryPointBaseUrl:o}=t;if(!s&&o&&(console.warn("[deprecated] `entryPointBaseUrl` is deprecated and will be removed in a future release. Use `entrypointBaseUrl` instead."),s=o),e.compileTarget==="dart2wasm")return this._loadWasmEntrypoint(e,n,s,a);{let l=e.mainJsPath??"main.dart.js",u=c(s,l);return this._loadJSEntrypoint(u,a,r)}}didCreateEngineInitializer(e){typeof this._didCreateEngineInitializerResolve=="function"&&(this._didCreateEngineInitializerResolve(e),this._didCreateEngineInitializerResolve=null,delete _flutter.loader.didCreateEngineInitializer),typeof this._onEntrypointLoaded=="function"&&this._onEntrypointLoaded(e)}_loadJSEntrypoint(e,n,t){let r=typeof n=="function";if(!this._scriptLoaded){this._scriptLoaded=!0;let a=this._createScriptTag(e,t);if(r)console.debug("Injecting <script> tag. Using callback."),this._onEntrypointLoaded=n,document.head.append(a);else return new Promise((s,o)=>{console.debug("Injecting <script> tag. Using Promises. Use the callback approach instead!"),this._didCreateEngineInitializerResolve=s,a.addEventListener("error",o),document.head.append(a)})}}async _loadWasmEntrypoint(e,n,t,r){if(!this._scriptLoaded){this._scriptLoaded=!0,this._onEntrypointLoaded=r;let{mainWasmPath:a,jsSupportRuntimePath:s}=e,o=c(t,a),l=c(t,s);this._ttPolicy!=null&&(l=this._ttPolicy.createScriptURL(l));let d=(await import(l)).compileStreaming(fetch(o)),p;e.renderer==="skwasm"?p=(async()=>{let h=await n.skwasm;return window._flutter_skwasmInstance=h,{skwasm:h.wasmExports,skwasmWrapper:h,ffi:{memory:h.wasmMemory}}})():p=Promise.resolve({}),await(await(await d).instantiate(await p,{loadDynamicModule:async(h,j)=>{let A=fetch(c(t,h)),L=c(t,j);this._ttPolicy!=null&&(L=this._ttPolicy.createScriptURL(L));let x=import(L);return[await A,await x]}})).invokeMain()}}_createScriptTag(e,n){let t=document.createElement("script");t.type="application/javascript",n&&(t.nonce=n);let r=e;return this._ttPolicy!=null&&(r=this._ttPolicy.createScriptURL(e)),t.src=r,t}};async function T(i,e,n){if(e<0)return i;let t,r=new Promise((a,s)=>{t=setTimeout(()=>{s(new Error(`${n} took more than ${e}ms to resolve. Moving on.`,{cause:T}))},e)});return Promise.race([i,r]).finally(()=>{clearTimeout(t)})}var g=class{setTrustedTypesPolicy(e){this._ttPolicy=e}loadServiceWorker(e){if(!e||!("serviceWorker"in navigator))return Promise.resolve();let n=()=>{console.warn(`Loading the service worker using Flutter bootstrap is deprecated and will stop working in a future release.
|
||||
For more details, see: https://github.com/flutter/flutter/issues/156910`)},t=()=>{let{serviceWorkerVersion:r,serviceWorkerUrl:a=c(`flutter_service_worker.js?v=${r}`),timeoutMillis:s=4e3}=e,o=a;this._ttPolicy!=null&&(o=this._ttPolicy.createScriptURL(o));let l=navigator.serviceWorker.register(o).then(u=>this._getNewServiceWorker(u,r)).then(this._waitForServiceWorkerActivation);return T(l,s,"prepareServiceWorker")};return e.serviceWorkerUrl!=null?(n(),t()):navigator.serviceWorker.getRegistration().then(r=>r?t():Promise.resolve())}async _getNewServiceWorker(e,n){if(!e.active&&(e.installing||e.waiting))return console.debug("Installing/Activating first service worker."),e.installing||e.waiting;if(e.active.scriptURL.endsWith(n))return console.debug("Loading from existing service worker."),e.active;{let t=await e.update();return console.debug("Updating service worker."),t.installing||t.waiting||t.active}}async _waitForServiceWorkerActivation(e){if(!e||e.state==="activated")if(e){console.debug("Service worker already active.");return}else throw new Error("Cannot activate a null service worker!");return new Promise((n,t)=>{e.addEventListener("statechange",()=>{e.state==="activated"&&(console.debug("Activated new service worker."),n())})})}};var y=class{constructor(e,n="flutter-js"){let t=e||[/\.js$/,/\.mjs$/];window.trustedTypes&&(this.policy=trustedTypes.createPolicy(n,{createScriptURL:function(r){if(r.startsWith("blob:"))return r;let a=new URL(r,window.location),s=a.pathname.split("/").pop();if(t.some(l=>l.test(s)))return a.toString();console.error("URL rejected by TrustedTypes policy",n,":",r,"(download prevented)")}}))}};var k=i=>{let e=WebAssembly.compileStreaming(fetch(i));return(n,t)=>((async()=>{let r=await e,a=await WebAssembly.instantiate(r,n);t(a,r)})(),{})};var U=(i,e,n,t)=>(window.flutterCanvasKitLoaded=(async()=>{if(window.flutterCanvasKit)return window.flutterCanvasKit;let r=n.hasChromiumBreakIterators&&n.hasImageCodecs;if(!r&&e.canvasKitVariant=="chromium")throw"Chromium CanvasKit variant specifically requested, but unsupported in this browser";let a=r&&e.canvasKitVariant!=="full",s=t;e.canvasKitVariant=="experimentalWebParagraph"?s=c(s,"experimental_webparagraph"):a&&(s=c(s,"chromium"));let o=c(s,"canvaskit.js");i.flutterTT.policy&&(o=i.flutterTT.policy.createScriptURL(o));let l=k(c(s,"canvaskit.wasm")),u=await import(o);return window.flutterCanvasKit=await u.default({instantiateWasm:l}),window.flutterCanvasKit})(),window.flutterCanvasKitLoaded);var W=async(i,e,n,t)=>{let a=!n.hasImageCodecs||!n.hasChromiumBreakIterators?"skwasm_heavy":e.enableWimp?"wimp":"skwasm",s=c(t,`${a}.js`),o=s;i.flutterTT.policy&&(o=i.flutterTT.policy.createScriptURL(o));let l=k(c(t,`${a}.wasm`));return await(await import(o)).default({skwasmSingleThreaded:e.enableWimp||!n.crossOriginIsolated||n.isChromeExtension||e.forceSingleThreadedSkwasm,instantiateWasm:l,locateFile:(d,p)=>d.endsWith(".ww.js")?URL.createObjectURL(new Blob([`
|
||||
(()=>{var C={blink:!0,gecko:!1,webkit:!1,unknown:!1},A=()=>navigator.vendor==="Google Inc."||navigator.userAgent.includes("Edg/")?"blink":navigator.vendor==="Apple Computer, Inc."?"webkit":navigator.vendor===""&&navigator.userAgent.includes("Firefox")?"gecko":"unknown",T=A(),x=()=>typeof ImageDecoder>"u"?!1:T==="blink",R=()=>typeof Intl.v8BreakIterator<"u"&&typeof Intl.Segmenter<"u",j=()=>typeof window.TextCluster<"u",B=()=>{let n=[0,97,115,109,1,0,0,0,1,5,1,95,1,120,0];return WebAssembly.validate(new Uint8Array(n))},K=()=>{let n=document.createElement("canvas");return n.width=1,n.height=1,n.getContext("webgl2")!=null?2:n.getContext("webgl")!=null?1:-1},$=()=>window.chrome&&chrome.runtime&&chrome.runtime.id,f={browserEngine:T,hasImageCodecs:x(),hasChromiumBreakIterators:R(),hasTextCluster:j(),supportsWasmGC:B(),crossOriginIsolated:window.crossOriginIsolated,webGLVersion:K(),isChromeExtension:$()};function m(...n){return new URL(W(...n),document.baseURI).toString()}function W(...n){return n.filter(e=>!!e).map((e,s)=>s===0?L(e):F(L(e))).filter(e=>e.length).join("/")}function F(n){let e=0;for(;e<n.length&&n.charAt(e)==="/";)e++;return n.substring(e)}function L(n){let e=n.length;for(;e>0&&n.charAt(e-1)==="/";)e--;return n.substring(0,e)}function _(n,e){return n.canvasKitBaseUrl?n.canvasKitBaseUrl:e.engineRevision&&!e.useLocalCanvasKit?W("https://www.gstatic.com/flutter-canvaskit",e.engineRevision):"canvaskit"}var g=class{constructor(){this._scriptLoaded=!1}setTrustedTypesPolicy(e){this._ttPolicy=e}async loadEntrypoint(e){let{entrypointUrl:s=m("main.dart.js"),onEntrypointLoaded:t,nonce:r}=e||{};return this._loadJSEntrypoint(s,t,r)}async load(e,s,t,r,i){i??=a=>{a.initializeEngine(t).then(l=>l.runApp())};let{entrypointBaseUrl:o}=t,{entryPointBaseUrl:c}=t;if(!o&&c&&(console.warn("[deprecated] `entryPointBaseUrl` is deprecated and will be removed in a future release. Use `entrypointBaseUrl` instead."),o=c),e.compileTarget==="dart2wasm")return this._loadWasmEntrypoint(e,s,o,i);{let a=e.mainJsPath??"main.dart.js",l=m(o,a);return this._loadJSEntrypoint(l,i,r)}}didCreateEngineInitializer(e){typeof this._didCreateEngineInitializerResolve=="function"&&(this._didCreateEngineInitializerResolve(e),this._didCreateEngineInitializerResolve=null,delete _flutter.loader.didCreateEngineInitializer),typeof this._onEntrypointLoaded=="function"&&this._onEntrypointLoaded(e)}_loadJSEntrypoint(e,s,t){let r=typeof s=="function";if(!this._scriptLoaded){this._scriptLoaded=!0;let i=this._createScriptTag(e,t);if(r)console.debug("Injecting <script> tag. Using callback."),this._onEntrypointLoaded=s,document.head.append(i);else return new Promise((o,c)=>{console.debug("Injecting <script> tag. Using Promises. Use the callback approach instead!"),this._didCreateEngineInitializerResolve=o,i.addEventListener("error",c),document.head.append(i)})}}async _loadWasmEntrypoint(e,s,t,r){if(!this._scriptLoaded){this._scriptLoaded=!0,this._onEntrypointLoaded=r;let{mainWasmPath:i,jsSupportRuntimePath:o}=e,c=m(t,i),a=m(t,o);this._ttPolicy!=null&&(a=this._ttPolicy.createScriptURL(a));let p=(await import(a)).compileStreaming(fetch(c)),d;e.renderer==="skwasm"?d=(async()=>{let u=await s.skwasm;return window._flutter_skwasmInstance=u,{skwasm:u.wasmExports,skwasmWrapper:u,ffi:{memory:u.wasmMemory}}})():d=Promise.resolve({}),await(await(await p).instantiate(await d)).invokeMain()}}_createScriptTag(e,s){let t=document.createElement("script");t.type="application/javascript",s&&(t.nonce=s);let r=e;return this._ttPolicy!=null&&(r=this._ttPolicy.createScriptURL(e)),t.src=r,t}};async function E(n,e,s){if(e<0)return n;let t,r=new Promise((i,o)=>{t=setTimeout(()=>{o(new Error(`${s} took more than ${e}ms to resolve. Moving on.`,{cause:E}))},e)});return Promise.race([n,r]).finally(()=>{clearTimeout(t)})}var v=class{setTrustedTypesPolicy(e){this._ttPolicy=e}loadServiceWorker(e){if(!e||!("serviceWorker"in navigator))return Promise.resolve();let s=()=>{console.warn(`Loading the service worker using Flutter bootstrap is deprecated and will stop working in a future release.
|
||||
For more details, see: https://github.com/flutter/flutter/issues/156910`)},t=()=>{let{serviceWorkerVersion:r,serviceWorkerUrl:i=m(`flutter_service_worker.js?v=${r}`),timeoutMillis:o=4e3}=e,c=i;this._ttPolicy!=null&&(c=this._ttPolicy.createScriptURL(c));let a=navigator.serviceWorker.register(c).then(l=>this._getNewServiceWorker(l,r)).then(this._waitForServiceWorkerActivation);return E(a,o,"prepareServiceWorker")};return e.serviceWorkerUrl!=null?(s(),t()):navigator.serviceWorker.getRegistration().then(r=>r?t():Promise.resolve())}async _getNewServiceWorker(e,s){if(!e.active&&(e.installing||e.waiting))return console.debug("Installing/Activating first service worker."),e.installing||e.waiting;if(e.active.scriptURL.endsWith(s))return console.debug("Loading from existing service worker."),e.active;{let t=await e.update();return console.debug("Updating service worker."),t.installing||t.waiting||t.active}}async _waitForServiceWorkerActivation(e){if(!e||e.state==="activated")if(e){console.debug("Service worker already active.");return}else throw new Error("Cannot activate a null service worker!");return new Promise((s,t)=>{e.addEventListener("statechange",()=>{e.state==="activated"&&(console.debug("Activated new service worker."),s())})})}};var y=class{constructor(e,s="flutter-js"){let t=e||[/\.js$/,/\.mjs$/];window.trustedTypes&&(this.policy=trustedTypes.createPolicy(s,{createScriptURL:function(r){if(r.startsWith("blob:"))return r;let i=new URL(r,window.location),o=i.pathname.split("/").pop();if(t.some(a=>a.test(o)))return i.toString();console.error("URL rejected by TrustedTypes policy",s,":",r,"(download prevented)")}}))}};var b=(n,e)=>{let s=window._flutter?.buildConfig?.wasmHashes,t=s?.[e];if(!t&&e.includes("/")){let a=e.split("/").pop();t=s?.[a]}let r="crossOriginStorage"in navigator&&"requestFileHandles"in navigator.crossOriginStorage;r&&console.log("Cross-Origin Storage is supported. See https://wicg.github.io/cross-origin-storage/ for more details.");let i=async a=>{let l={algorithm:"SHA-256",value:a};try{let[p]=await navigator.crossOriginStorage.requestFileHandles([l]),d=await p.getFile();return new Response(d,{headers:{"Content-Type":"application/wasm"}})}catch(p){p.name==="NotAllowedError"?console.warn(`Not allowed to retrieve ${e} (hash: ${a}).`):p.name!=="NotFoundError"&&console.warn(`Unexpected error during retrieval of ${e} (hash: ${a}).`,p)}},o=async()=>{if(r&&t){let l=await i(t);if(l)return l}let a=await fetch(n);if(r&&t&&a.ok){let l={algorithm:"SHA-256",value:t},p=a.clone();(async()=>{try{let d=await p.blob(),[h]=await navigator.crossOriginStorage.requestFileHandles([l],{create:!0}),w=await h.createWritable();await w.write(d),await w.close()}catch(d){console.warn(`Error storing ${e} (hash: ${t}):`,d)}})()}return a},c=WebAssembly.compileStreaming(o());return(a,l)=>((async()=>{let p=await c,d=await WebAssembly.instantiate(p,a);l(d,p)})(),{})};var I=(n,e,s,t)=>(window.flutterCanvasKitLoaded=(async()=>{if(window.flutterCanvasKit)return window.flutterCanvasKit;let r=s.hasChromiumBreakIterators&&s.hasImageCodecs;if(!r&&e.canvasKitVariant=="chromium")throw"Chromium CanvasKit variant specifically requested, but unsupported in this browser";let i=r&&e.canvasKitVariant!=="full",o=i&&e.preferWebParagraph&&s.hasTextCluster,c=t;o?c=m(c,"webparagraph"):i&&(c=m(c,"chromium"));let a=m(c,"canvaskit.js");n.flutterTT.policy&&(a=n.flutterTT.policy.createScriptURL(a));let l="canvaskit.wasm";o?l="webparagraph/canvaskit.wasm":i&&(l="chromium/canvaskit.wasm");let p=b(m(c,"canvaskit.wasm"),l),d=await import(a);return window.flutterCanvasKit=await d.default({instantiateWasm:p}),window.flutterCanvasKit})(),window.flutterCanvasKitLoaded);var U=async(n,e,s,t)=>{let i=!s.hasImageCodecs||!s.hasChromiumBreakIterators?"skwasm_heavy":e.enableWimp?"wimp":"skwasm",o=m(t,`${i}.js`),c=o;n.flutterTT.policy&&(c=n.flutterTT.policy.createScriptURL(c));let a=b(m(t,`${i}.wasm`),`${i}.wasm`),l=await import(c);return!s.crossOriginIsolated&&!e.forceSingleThreadedSkwasm&&!e.suppressMultithreadingWarning&&console.warn(`Flutter Web: Skwasm uses multi-threading and web workers for better performance, but your page needs to be cross-origin isolated to support multi-threading. Skwasm will run in single-threaded mode.
|
||||
To enable multithreading, serve your app with these HTTP response headers:
|
||||
Cross-Origin-Opener-Policy: same-origin
|
||||
Cross-Origin-Embedder-Policy: require-corp
|
||||
See https://web.dev/articles/coop-coep for guidance.
|
||||
To silence this warning, set \`suppressMultithreadingWarning: true\` in your Flutter configuration.`),await l.default({skwasmSingleThreaded:e.enableWimp||!s.crossOriginIsolated||s.isChromeExtension||e.forceSingleThreadedSkwasm,instantiateWasm:a,locateFile:(p,d)=>p.endsWith(".ww.js")?URL.createObjectURL(new Blob([`
|
||||
"use strict";
|
||||
|
||||
let eventListener;
|
||||
@@ -27,16 +32,16 @@ eventListener = (message) => {
|
||||
addEventListener("message", eventListener);
|
||||
};
|
||||
addEventListener("message", eventListener);
|
||||
`],{type:"application/javascript"})):c(t,d),mainScriptUrlOrBlob:s})};var P=w.supportsWasmGC,G=P&&w.webGLVersion>0,b=class{async loadEntrypoint(e){let{serviceWorker:n,...t}=e||{},r=new y,a=new g;a.setTrustedTypesPolicy(r.policy),await a.loadServiceWorker(n).catch(o=>{console.warn("Exception while loading service worker:",o)});let s=new v;return s.setTrustedTypesPolicy(r.policy),this.didCreateEngineInitializer=s.didCreateEngineInitializer.bind(s),s.loadEntrypoint(t)}async load({serviceWorkerSettings:e,onEntrypointLoaded:n,nonce:t,config:r}={}){r??={};let a=_flutter.buildConfig;if(!a)throw"FlutterLoader.load requires _flutter.buildConfig to be set";let s=r.wasmAllowList?.[w.browserEngine]??_[w.browserEngine],o=m=>{switch(m){case"skwasm":return G&&s;default:return!0}},l=m=>m.compileTarget==="dart2wasm"&&!P||r.renderer&&r.renderer!=m.renderer?!1:o(m.renderer),u=a.builds.find(l);if(!u)throw"FlutterLoader could not find a build compatible with configuration and environment.";let d={};d.flutterTT=new y,e&&(d.serviceWorkerLoader=new g,d.serviceWorkerLoader.setTrustedTypesPolicy(d.flutterTT.policy),await d.serviceWorkerLoader.loadServiceWorker(e).catch(m=>{console.warn("Exception while loading service worker:",m)}));let p=E(r,a);u.renderer==="canvaskit"?d.canvasKit=U(d,r,w,p):u.renderer==="skwasm"&&(d.skwasm=W(d,r,w,p));let f=new v;return f.setTrustedTypesPolicy(d.flutterTT.policy),this.didCreateEngineInitializer=f.didCreateEngineInitializer.bind(f),f.load(u,d,r,t,n)}};window._flutter||(window._flutter={});window._flutter.loader||(window._flutter.loader=new b);})();
|
||||
`],{type:"application/javascript"})):m(t,p),mainScriptUrlOrBlob:o})};var P=f.supportsWasmGC,k=class{async loadEntrypoint(e){let{serviceWorker:s,...t}=e||{},r=new y,i=new v;i.setTrustedTypesPolicy(r.policy),await i.loadServiceWorker(s).catch(c=>{console.warn("Exception while loading service worker:",c)});let o=new g;return o.setTrustedTypesPolicy(r.policy),this.didCreateEngineInitializer=o.didCreateEngineInitializer.bind(o),o.loadEntrypoint(t)}async load({serviceWorkerSettings:e,onEntrypointLoaded:s,nonce:t,config:r}={}){r??={};let i=_flutter.buildConfig;if(!i)throw"FlutterLoader.load requires _flutter.buildConfig to be set";let o=r.wasmAllowList?.[f.browserEngine]??C[f.browserEngine],c=u=>{switch(u){case"skwasm":return P?f.webGLVersion>0?o?null:`Skwasm is disabled by your wasmAllowList configuration for browser engine "${f.browserEngine}".`:"Skwasm requires WebGL support; this browser does not provide it.":"Skwasm requires WasmGC support; this browser does not implement it yet.";default:return null}},a=u=>u.compileTarget==="dart2wasm"&&!P?"dart2wasm requires WasmGC support; this browser does not implement it yet.":r.renderer&&r.renderer!=u.renderer?`The application is configured to use the "${r.renderer}" renderer; this build targets "${u.renderer}".`:c(u.renderer),l,p=[];for(let u of i.builds){let S=a(u);if(S===null){l=u;break}p.push({candidate:u,reason:S})}if(r.verboseBuildSelection)for(let u of p)console.warn(`Flutter Web: build ${u.candidate.compileTarget}/${u.candidate.renderer} was skipped: ${u.reason}`);if(!l)throw console.warn("Flutter Web: no compatible build found for this browser."+(r.verboseBuildSelection?"":" Set `verboseBuildSelection: true` in your Flutter configuration to see why each candidate was rejected.")),new Error("FlutterLoader could not find a build compatible with configuration and environment.");let d={};d.flutterTT=new y,e&&(d.serviceWorkerLoader=new v,d.serviceWorkerLoader.setTrustedTypesPolicy(d.flutterTT.policy),await d.serviceWorkerLoader.loadServiceWorker(e).catch(u=>{console.warn("Exception while loading service worker:",u)}));let h=_(r,i);l.renderer==="canvaskit"?d.canvasKit=I(d,r,f,h):l.renderer==="skwasm"&&(d.skwasm=U(d,r,f,h));let w=new g;return w.setTrustedTypesPolicy(d.flutterTT.policy),this.didCreateEngineInitializer=w.didCreateEngineInitializer.bind(w),w.load(l,d,r,t,s)}};window._flutter||(window._flutter={});window._flutter.loader||(window._flutter.loader=new k);})();
|
||||
//# sourceMappingURL=flutter.js.map
|
||||
|
||||
if (!window._flutter) {
|
||||
window._flutter = {};
|
||||
}
|
||||
_flutter.buildConfig = {"engineRevision":"3452d735bd38224ef2db85ca763d862d6326b17f","builds":[{"compileTarget":"dart2js","renderer":"canvaskit","mainJsPath":"main.dart.js"}]};
|
||||
_flutter.buildConfig = {"engineRevision":"af7e796e161ae0bb1ff0758c71a7105418bd9ded","wasmHashes":{"canvaskit.wasm":"fbed517a43e82452404446683f00f2e876d835aed84410695759e67b6bb01cd3","chromium/canvaskit.wasm":"ae8ff1d858140f7b1300ced3fa89fb8c9dce0a400a0f4f1e11f6dcfb3315fdcf","skwasm.wasm":"e540fd5e8303b7b68ec2718cb49e9c421f8ade3075b15e02a7059a62654df9a1","skwasm_heavy.wasm":"565f5cc1cca6ab120f11934b105f01fec4b58b480c82e0889dca93af8e6f8635","webparagraph/canvaskit.wasm":"0ce1b05082efdc8529550e8a01f6ff0593972d55525035010e26f5600aa9f254","wimp.wasm":"e924eaafd801d41e017d178f3fd5cf8a417f641fe35c9ed34a4e1d7582283e0c"},"builds":[{"compileTarget":"dart2js","renderer":"canvaskit","mainJsPath":"main.dart.js"}]};
|
||||
|
||||
_flutter.loader.load({
|
||||
serviceWorkerSettings: {
|
||||
serviceWorkerVersion: "585429632" /* Flutter's service worker is deprecated and will be removed in a future Flutter release. */
|
||||
serviceWorkerVersion: "2875783503" /* Flutter's service worker is deprecated and will be removed in a future Flutter release. */
|
||||
}
|
||||
});
|
||||
|
||||
+64363
-63903
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
{"app_name":"flutter_tank_web_app","version":"1.0.0","build_number":"1","package_name":"flutter_tank_web_app"}
|
||||
{"app_name":"flutter_tank_web_app","version":"1.1.0","build_number":"2","package_name":"flutter_tank_web_app"}
|
||||
Reference in New Issue
Block a user