From 6a1678e255ee23bde43c98d7e5e50b6b7c68c6f6 Mon Sep 17 00:00:00 2001 From: KOWX712 Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 01/35] manager: webui add modern download api support This is a squash to not to increase version too much, changes in this commit will be pushed to official ksu soon. manager: add missing webui displaycutout insets manager: add io interface to webui js: add file interface js: fix spawn arg not reset and pm return on error --- js/README.md | 161 +++++++++++++- js/index.d.ts | 109 +++++++++- js/index.js | 61 ++++++ .../kernelsu/ui/util/DownloadManager.kt | 47 +++- .../kernelsu/ui/util/DownloadService.kt | 146 ++++++++++--- .../me/weishu/kernelsu/ui/webui/Download.kt | 53 +++++ .../weishu/kernelsu/ui/webui/WebUIScreen.kt | 17 +- .../me/weishu/kernelsu/ui/webui/WebUIState.kt | 9 + .../weishu/kernelsu/ui/webui/WebViewHelper.kt | 62 +++++- .../kernelsu/ui/webui/WebViewInterface.kt | 203 +++++++++++++++++- .../ui/webui/file/FileInputStreamInterface.kt | 106 +++++++++ .../kernelsu/ui/webui/file/FileInterface.kt | 154 +++++++++++++ .../webui/file/FileOutputStreamInterface.kt | 68 ++++++ .../me/weishu/kernelsu/ui/webui/file/KsuIO.kt | 34 +++ .../webui/file/RandomAccessFileInterface.kt | 196 +++++++++++++++++ 15 files changed, 1367 insertions(+), 59 deletions(-) create mode 100644 manager/app/src/main/java/me/weishu/kernelsu/ui/webui/Download.kt create mode 100644 manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/FileInputStreamInterface.kt create mode 100644 manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/FileInterface.kt create mode 100644 manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/FileOutputStreamInterface.kt create mode 100644 manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/KsuIO.kt create mode 100644 manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/RandomAccessFileInterface.kt diff --git a/js/README.md b/js/README.md index 5c2f3f2f9560..29d480cd99a1 100644 --- a/js/README.md +++ b/js/README.md @@ -158,7 +158,7 @@ img.src = "ksu://icon/" + packageName; Get information for a list of packages. -Returns an array of `PackagesInfo` objects. +Returns an array containing `PackagesInfo` objects for packages that were resolved. If a package is missing or inaccessible, the corresponding entry contains `packageName` and `error` instead. - `packages` `` The list of package names. @@ -175,8 +175,13 @@ An object contains: - `versionName` `` Version of the application. - `versionCode` `` Version code of the application. - `appLabel` `` Display name of the application. -- `isSystem` `` Whether the application is a system app. -- `uid` `` UID of the application. +- `isSystem` `` Whether the application is a system app. +- `uid` `` UID of the application. + +If a package could not be resolved, the returned object contains: + +- `packageName` `` The requested package name. +- `error` `` Reason the package information could not be returned. ### exit @@ -186,3 +191,153 @@ Exit the current WebUI activity. import { exit } from 'kernelsu'; exit(); ``` + +### io + +The exported `io` object provides file system operations with root access. It acts as a small facade over the WebUI file APIs, exposing Java-IO-style factory methods such as `io.File()`, `io.FileInputStream()`, `io.FileOutputStream()`, and `io.RandomAccessFile()`. + +```javascript +import { io } from 'kernelsu'; +``` + +#### io.File + +Represents a file or directory path. All operations execute via root shell. + +```javascript +const file = io.File('/data/adb/modules'); + +if (file.exists()) { + console.log(file.listFiles()); +} +``` + +##### Methods + +- `exists(): boolean` — Check if path exists +- `isFile(): boolean` — Check if path is a regular file +- `isDirectory(): boolean` — Check if path is a directory +- `canRead(): boolean` — Check read permission +- `canWrite(): boolean` — Check write permission +- `canExecute(): boolean` — Check execute permission +- `createNewFile(): boolean` — Create a new empty file +- `delete(): boolean` — Delete file or empty directory +- `deleteRecursive(): boolean` — Recursively delete directory +- `mkdir(): boolean` — Create directory +- `mkdirs(): boolean` — Create directory and all parent directories +- `renameTo(destPath: string): boolean` — Rename or move file +- `list(): string[]` — List filenames in directory +- `listFiles(): string[]` — List full paths of files in directory +- `length(): number` — File size in bytes +- `lastModified(): number` — Last modified timestamp (ms) +- `setLastModified(time: number): boolean` — Set last modified time +- `getAbsolutePath(): string` — Absolute path +- `getCanonicalPath(): string` — Canonical path (resolves symlinks) +- `getParent(): string | null` — Parent directory path +- `getPath(): string` — Path string +- `getName(): string` — File/directory name +- `isHidden(): boolean` — Check if hidden +- `isBlock(): boolean` — Check if block device +- `isCharacter(): boolean` — Check if character device +- `isSymlink(): boolean` — Check if symbolic link +- `createNewSymlink(target: string): boolean` — Create symbolic link +- `createNewLink(existing: string): boolean` — Create hard link +- `clear(): boolean` — Truncate file to zero length +- `setReadOnly(): boolean` — Set read-only +- `setReadable(readable: boolean, ownerOnly: boolean): boolean` — Set read permission +- `setWritable(writable: boolean, ownerOnly: boolean): boolean` — Set write permission +- `setExecutable(executable: boolean, ownerOnly: boolean): boolean` — Set execute permission +- `getFreeSpace(): number` — Free space on partition +- `getTotalSpace(): number` — Total space on partition +- `getUsableSpace(): number` — Usable space on partition +- `newInputStream(): string` — Open input stream, returns stream ID +- `newOutputStream(append?: boolean): string` — Open output stream, returns stream ID + +#### io.FileInputStream + +Read file contents as base64-encoded chunks. + +```javascript +const reader = io.FileInputStream(); +const id = reader.open('/data/adb/ksu.log'); + +let chunk; +while ((chunk = reader.read(id)) !== '') { + console.log(atob(chunk)); +} +reader.close(id); +``` + +##### Methods + +- `open(path: string): string` — Open file for reading, returns stream ID +- `read(id: string): string` — Read chunk (up to 8KB), returns base64 string (empty on EOF) +- `read(id: string, maxBytes: number): string` — Read up to maxBytes, returns base64 string +- `available(id: string): number` — Estimated bytes available +- `close(id: string): boolean` — Close stream + +#### io.FileOutputStream + +Write file contents from base64-encoded data. + +```javascript +const writer = io.FileOutputStream(); +const id = writer.open('/data/adb/output.txt'); + +writer.write(id, btoa('Hello, World!')); +writer.close(id); +``` + +##### Methods + +- `open(path: string, append?: boolean): string` — Open file for writing, returns stream ID +- `write(id: string, base64: string): boolean` — Write base64 data. For large sequential writes, prefer large chunks (for example 1-2 MiB) to reduce WebView bridge overhead. +- `writeByte(id: string, b: number): boolean` — Write single byte +- `flush(id: string): boolean` — Flush buffer +- `close(id: string): boolean` — Close stream + +#### io.RandomAccessFile + +Random access file I/O with seek support. Uses `dd` under the hood, so each operation has overhead. Prefer `FileInputStream`/`FileOutputStream` for sequential access. + +```javascript +const raf = io.RandomAccessFile(); +const id = raf.open('/data/adb/data.bin', 'rw'); + +raf.seek(id, 1024); +raf.writeInt(id, 42); +raf.seek(id, 1024); +console.log(raf.readInt(id)); + +raf.close(id); +``` + +##### Methods + +- `open(path: string, mode: string): string` — Open file with mode (`"r"`, `"rw"`, etc.), returns file ID +- `read(id: string): number` — Read single byte (0-255, or -1 on EOF) +- `readBytes(id: string, len: number): string` — Read bytes, returns base64 string +- `readBoolean(id: string): boolean` — Read boolean +- `readByte(id: string): number` — Read signed byte +- `readInt(id: string): number` — Read 32-bit integer +- `readLong(id: string): number` — Read 64-bit integer +- `readShort(id: string): number` — Read 16-bit short +- `readFloat(id: string): number` — Read 32-bit float +- `readDouble(id: string): number` — Read 64-bit double +- `readUTF(id: string): string` — Read UTF string +- `readLine(id: string): string | null` — Read line +- `write(id: string, b: number): void` — Write single byte +- `writeBase64(id: string, data: string): void` — Write base64 data +- `writeBoolean(id: string, v: boolean): void` — Write boolean +- `writeByte(id: string, v: number): void` — Write byte +- `writeInt(id: string, v: number): void` — Write 32-bit integer +- `writeLong(id: string, v: number): void` — Write 64-bit integer +- `writeShort(id: string, v: number): void` — Write 16-bit short +- `writeFloat(id: string, v: number): void` — Write 32-bit float +- `writeDouble(id: string, v: number): void` — Write 64-bit double +- `writeUTF(id: string, str: string): void` — Write UTF string +- `seek(id: string, pos: number): boolean` — Set file pointer position +- `getFilePointer(id: string): number` — Get current file pointer position +- `length(id: string): number` — Get file length +- `setLength(id: string, newLength: number): boolean` — Truncate or extend file +- `close(id: string): boolean` — Close file diff --git a/js/index.d.ts b/js/index.d.ts index 3bb965bda4c2..3f735fcb09b3 100644 --- a/js/index.d.ts +++ b/js/index.d.ts @@ -46,16 +46,118 @@ interface PackagesInfo { versionName: string; versionCode: number; appLabel: string; - isSystem: boolean; - uid: number; + isSystem: boolean | null; + uid: number | null; +} + +interface PackageInfoError { + packageName: string; + error: string; } declare function listPackages(type: string): string[]; -declare function getPackagesInfo(packages: string[]): PackagesInfo[]; +declare function getPackagesInfo(packages: string[]): Array; declare function exit(); +interface FileInstance { + exists(): boolean; + isFile(): boolean; + isDirectory(): boolean; + canRead(): boolean; + canWrite(): boolean; + canExecute(): boolean; + createNewFile(): boolean; + delete(): boolean; + deleteRecursive(): boolean; + mkdir(): boolean; + mkdirs(): boolean; + renameTo(destPath: string): boolean; + list(): string[]; + listFiles(): string[]; + length(): number; + lastModified(): number; + setLastModified(time: number): boolean; + getAbsolutePath(): string; + getCanonicalPath(): string; + getParent(): string | null; + getPath(): string; + getName(): string; + isHidden(): boolean; + isBlock(): boolean; + isCharacter(): boolean; + isSymlink(): boolean; + createNewSymlink(target: string): boolean; + createNewLink(existing: string): boolean; + clear(): boolean; + setReadOnly(): boolean; + setReadable(readable: boolean, ownerOnly: boolean): boolean; + setWritable(writable: boolean, ownerOnly: boolean): boolean; + setExecutable(executable: boolean, ownerOnly: boolean): boolean; + getFreeSpace(): number; + getTotalSpace(): number; + getUsableSpace(): number; + newInputStream(): string; + newOutputStream(append?: boolean): string; + toString(): string; +} + +interface FileInputStreamInstance { + open(path: string): string; + read(id: string): string; + read(id: string, maxBytes: number): string; + available(id: string): number; + close(id: string): boolean; +} + +interface FileOutputStreamInstance { + open(path: string, append?: boolean): string; + write(id: string, base64: string): boolean; + writeByte(id: string, b: number): boolean; + flush(id: string): boolean; + close(id: string): boolean; +} + +interface RandomAccessFileInstance { + open(path: string, mode: string): string; + read(id: string): number; + readBytes(id: string, len: number): string; + readBoolean(id: string): boolean; + readByte(id: string): number; + readInt(id: string): number; + readLong(id: string): number; + readShort(id: string): number; + readFloat(id: string): number; + readDouble(id: string): number; + readUTF(id: string): string; + readLine(id: string): string | null; + write(id: string, b: number): void; + writeBase64(id: string, data: string): void; + writeBoolean(id: string, v: boolean): void; + writeByte(id: string, v: number): void; + writeInt(id: string, v: number): void; + writeLong(id: string, v: number): void; + writeShort(id: string, v: number): void; + writeFloat(id: string, v: number): void; + writeDouble(id: string, v: number): void; + writeUTF(id: string, str: string): void; + seek(id: string, pos: number): boolean; + getFilePointer(id: string): number; + length(id: string): number; + setLength(id: string, newLength: number): boolean; + close(id: string): boolean; +} + +interface KsuIO { + File(path: string): FileInstance; + FileInputStream(): FileInputStreamInstance; + FileOutputStream(): FileOutputStreamInstance; + RandomAccessFile(): RandomAccessFileInstance; +} + +declare const io: KsuIO; + export { exec, spawn, @@ -66,4 +168,5 @@ export { listPackages, getPackagesInfo, exit, + io, } diff --git a/js/index.js b/js/index.js index d0d700a1201f..1ac74a5d9cb8 100644 --- a/js/index.js +++ b/js/index.js @@ -74,6 +74,7 @@ function Stdio() { } else if (!(args instanceof Array)) { // allow for (command, options) signature options = args; + args = []; } if (typeof options === "undefined") { @@ -144,3 +145,63 @@ export function getPackagesInfo(packages) { export function exit() { ksu.exit(); } + +export const io = { + File(path) { + return ksu.io().File(path); + }, + + FileInputStream() { + const impl = ksu.io().FileInputStream(); + return { + open(path) { return impl.open(path); }, + read(id, maxBytes) { return impl.read(id, maxBytes); }, + available(id) { return impl.available(id); }, + close(id) { return impl.close(id); }, + }; + }, + + FileOutputStream() { + const impl = ksu.io().FileOutputStream(); + return { + open(path, append) { return impl.open(path, append); }, + write(id, data) { return impl.write(id, data); }, + writeByte(id, b) { return impl.writeByte(id, b); }, + flush(id) { return impl.flush(id); }, + close(id) { return impl.close(id); }, + }; + }, + + RandomAccessFile() { + const impl = ksu.io().RandomAccessFile(); + return { + open(path, mode) { return impl.open(path, mode); }, + read(id) { return impl.read(id); }, + readBytes(id, len) { return impl.readBytes(id, len); }, + readBoolean(id) { return impl.readBoolean(id); }, + readByte(id) { return impl.readByte(id); }, + readInt(id) { return impl.readInt(id); }, + readLong(id) { return impl.readLong(id); }, + readShort(id) { return impl.readShort(id); }, + readFloat(id) { return impl.readFloat(id); }, + readDouble(id) { return impl.readDouble(id); }, + readUTF(id) { return impl.readUTF(id); }, + readLine(id) { return impl.readLine(id); }, + write(id, b) { impl.write(id, b); }, + writeBase64(id, data) { impl.writeBase64(id, data); }, + writeBoolean(id, v) { impl.writeBoolean(id, v); }, + writeByte(id, v) { impl.writeByte(id, v); }, + writeInt(id, v) { impl.writeInt(id, v); }, + writeLong(id, v) { impl.writeLong(id, v); }, + writeShort(id, v) { impl.writeShort(id, v); }, + writeFloat(id, v) { impl.writeFloat(id, v); }, + writeDouble(id, v) { impl.writeDouble(id, v); }, + writeUTF(id, str) { impl.writeUTF(id, str); }, + seek(id, pos) { return impl.seek(id, pos); }, + getFilePointer(id) { return impl.getFilePointer(id); }, + length(id) { return impl.length(id); }, + setLength(id, newLength) { return impl.setLength(id, newLength); }, + close(id) { return impl.close(id); }, + }; + }, +}; diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/util/DownloadManager.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/util/DownloadManager.kt index a2b9097de11b..fd831473ed5b 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/util/DownloadManager.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/util/DownloadManager.kt @@ -21,6 +21,9 @@ object DownloadManager { val id: Int, val fileName: String, val url: String, + val targetPath: String? = null, + val mimeType: String? = null, + val completionAction: DownloadCompletionAction = DownloadCompletionAction.INSTALL_MODULE, val progress: Int = 0, val status: Status = Status.PENDING, val resultUri: Uri? = null, @@ -34,19 +37,54 @@ object DownloadManager { private val completionCallbacks = ConcurrentHashMap Unit>() private val mainHandler = Handler(Looper.getMainLooper()) + internal fun registerLocalSave( + fileName: String, + targetPath: String, + mimeType: String? = null, + completionAction: DownloadCompletionAction = DownloadCompletionAction.OPEN_FILE, + ): Int { + val id = idCounter.incrementAndGet() + val state = DownloadState( + id = id, + fileName = fileName, + url = targetPath, + targetPath = targetPath, + mimeType = mimeType, + completionAction = completionAction, + ) + _downloads.update { it + (id to state) } + return id + } + fun enqueue( context: Context, url: String, fileName: String, + targetPath: String? = null, + mimeType: String? = null, + cookie: String? = null, + userAgent: String? = null, + completionAction: DownloadCompletionAction = DownloadCompletionAction.INSTALL_MODULE, onCompleted: ((Uri) -> Unit)? = null, ): Int { val existing = _downloads.value.values.find { - it.url == url && (it.status == Status.PENDING || it.status == Status.DOWNLOADING) + it.url == url && + it.fileName == fileName && + it.targetPath == targetPath && + it.completionAction == completionAction && + (it.status == Status.PENDING || it.status == Status.DOWNLOADING) } if (existing != null) return existing.id val id = idCounter.incrementAndGet() - val state = DownloadState(id = id, fileName = fileName, url = url) + val state = DownloadState( + id = id, + fileName = fileName, + url = url, + targetPath = targetPath, + mimeType = mimeType, + completionAction = completionAction, + ) _downloads.update { it + (id to state) } if (onCompleted != null) { @@ -58,6 +96,11 @@ object DownloadManager { putExtra(DownloadService.EXTRA_DOWNLOAD_ID, id) putExtra(DownloadService.EXTRA_URL, url) putExtra(DownloadService.EXTRA_FILE_NAME, fileName) + putExtra(DownloadService.EXTRA_TARGET_PATH, targetPath) + putExtra(DownloadService.EXTRA_MIME_TYPE, mimeType) + putExtra(DownloadService.EXTRA_COOKIE, cookie) + putExtra(DownloadService.EXTRA_USER_AGENT, userAgent) + putExtra(DownloadService.EXTRA_COMPLETION_ACTION, completionAction.name) } ContextCompat.startForegroundService(context, intent) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/util/DownloadService.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/util/DownloadService.kt index 419e9171baff..c62dfec92d7a 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/util/DownloadService.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/util/DownloadService.kt @@ -11,6 +11,7 @@ import android.os.Build import android.os.Environment import android.os.IBinder import androidx.core.app.NotificationCompat +import androidx.core.content.FileProvider import kotlinx.coroutines.CancellationException import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -18,6 +19,7 @@ import kotlinx.coroutines.Job import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.cancel import kotlinx.coroutines.launch +import me.weishu.kernelsu.BuildConfig import me.weishu.kernelsu.R import me.weishu.kernelsu.ksuApp import me.weishu.kernelsu.ui.MainActivity @@ -25,8 +27,23 @@ import okhttp3.Request import java.io.File import java.io.FileOutputStream import java.io.IOException +import java.net.URLConnection import java.util.concurrent.ConcurrentHashMap +enum class DownloadCompletionAction { + INSTALL_MODULE, + OPEN_FILE, +} + +internal fun resolveDownloadMimeType(fileName: String, providedMimeType: String?): String { + val explicitMimeType = providedMimeType?.trim().orEmpty() + if (explicitMimeType.isNotEmpty()) { + return explicitMimeType + } + + return URLConnection.guessContentTypeFromName(fileName) ?: "application/octet-stream" +} + class DownloadService : Service() { companion object { @@ -40,6 +57,12 @@ class DownloadService : Service() { const val EXTRA_DOWNLOAD_ID = "downloadId" const val EXTRA_MODULE_URI = "moduleUri" const val EXTRA_FILE_PATH = "filePath" + const val EXTRA_TARGET_PATH = "targetPath" + const val EXTRA_MIME_TYPE = "mimeType" + const val EXTRA_COOKIE = "cookie" + const val EXTRA_USER_AGENT = "userAgent" + const val EXTRA_COMPLETION_ACTION = "completionAction" + const val EXTRA_DELETE_FILE_ON_DISMISS = "deleteFileOnDismiss" private const val COMPLETION_NOTIFICATION_ID_BASE = 100000 } @@ -62,6 +85,13 @@ class DownloadService : Service() { val url = intent.getStringExtra(EXTRA_URL) ?: return START_NOT_STICKY val fileName = intent.getStringExtra(EXTRA_FILE_NAME) ?: return START_NOT_STICKY val downloadId = intent.getIntExtra(EXTRA_DOWNLOAD_ID, -1) + val targetPath = intent.getStringExtra(EXTRA_TARGET_PATH) + val mimeType = intent.getStringExtra(EXTRA_MIME_TYPE) + val cookie = intent.getStringExtra(EXTRA_COOKIE) + val userAgent = intent.getStringExtra(EXTRA_USER_AGENT) + val completionAction = intent.getStringExtra(EXTRA_COMPLETION_ACTION) + ?.let(DownloadCompletionAction::valueOf) + ?: DownloadCompletionAction.INSTALL_MODULE if (downloadId == -1) return START_NOT_STICKY val notification = buildProgressNotification(downloadId, fileName, 0) @@ -74,7 +104,7 @@ class DownloadService : Service() { startForeground(downloadId, notification) } - startDownload(downloadId, url, fileName) + startDownload(downloadId, url, fileName, targetPath, mimeType, cookie, userAgent, completionAction) } ACTION_CANCEL -> { @@ -91,10 +121,11 @@ class DownloadService : Service() { ACTION_DISMISS_DOWNLOAD -> { val downloadId = intent.getIntExtra(EXTRA_DOWNLOAD_ID, -1) val filePath = intent.getStringExtra(EXTRA_FILE_PATH) + val deleteFileOnDismiss = intent.getBooleanExtra(EXTRA_DELETE_FILE_ON_DISMISS, false) if (downloadId != -1) { notificationManager.cancel(COMPLETION_NOTIFICATION_ID_BASE + downloadId) } - if (!filePath.isNullOrEmpty()) { + if (deleteFileOnDismiss && !filePath.isNullOrEmpty()) { File(filePath).delete() } } @@ -102,16 +133,34 @@ class DownloadService : Service() { return START_NOT_STICKY } - private fun startDownload(id: Int, url: String, fileName: String) { + private fun startDownload( + id: Int, + url: String, + fileName: String, + targetPath: String?, + mimeType: String?, + cookie: String?, + userAgent: String?, + completionAction: DownloadCompletionAction, + ) { val job = serviceScope.launch { try { - val target = File( + val target = targetPath?.let(::File) ?: File( Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), fileName ) target.parentFile?.mkdirs() - ksuApp.okhttpClient.newCall(Request.Builder().url(url).build()).execute() + val request = Request.Builder().url(url).apply { + if (!cookie.isNullOrEmpty()) { + addHeader("Cookie", cookie) + } + if (!userAgent.isNullOrEmpty()) { + addHeader("User-Agent", userAgent) + } + }.build() + + ksuApp.okhttpClient.newCall(request).execute() .use { resp -> if (!resp.isSuccessful) throw IOException("HTTP ${resp.code}") val body = resp.body @@ -153,7 +202,7 @@ class DownloadService : Service() { notificationManager.cancel(id) notificationManager.notify( COMPLETION_NOTIFICATION_ID_BASE + id, - buildCompletionNotification(id, fileName, uri) + buildCompletionNotification(id, fileName, target, uri, mimeType, completionAction) ) } catch (e: CancellationException) { throw e @@ -194,7 +243,10 @@ class DownloadService : Service() { private fun buildCompletionNotification( id: Int, fileName: String, - uri: Uri + targetFile: File, + uri: Uri, + mimeType: String?, + completionAction: DownloadCompletionAction, ): android.app.Notification { val builder = NotificationCompat.Builder(this, CHANNEL_ID) .setContentTitle(getString(R.string.download_complete_title)) @@ -202,36 +254,64 @@ class DownloadService : Service() { .setSmallIcon(android.R.drawable.stat_sys_download_done) .setAutoCancel(true) - // Add "Install" action button - val installIntent = Intent(this, MainActivity::class.java).apply { - action = ACTION_INSTALL_MODULE - putExtra(EXTRA_MODULE_URI, uri.toString()) - putExtra(EXTRA_DOWNLOAD_ID, id) - addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_NEW_TASK) - } - val installPendingIntent = PendingIntent.getActivity( - this, - id, - installIntent, - PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE - ) - builder.addAction( - android.R.drawable.ic_menu_save, - getString(R.string.download_install), - installPendingIntent - ) - builder.setContentIntent(installPendingIntent) + val deleteFileOnDismiss = completionAction == DownloadCompletionAction.INSTALL_MODULE - // Add "Cancel" action button - val dismissIntent = Intent(this, DownloadService::class.java).apply { - action = ACTION_DISMISS_DOWNLOAD - putExtra(EXTRA_DOWNLOAD_ID, id) - putExtra(EXTRA_FILE_PATH, uri.path) + val primaryPendingIntent = when (completionAction) { + DownloadCompletionAction.INSTALL_MODULE -> PendingIntent.getActivity( + this, + id, + Intent(this, MainActivity::class.java).apply { + action = ACTION_INSTALL_MODULE + putExtra(EXTRA_MODULE_URI, uri.toString()) + putExtra(EXTRA_DOWNLOAD_ID, id) + addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_NEW_TASK) + }, + PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE + ).also { pendingIntent -> + builder.addAction( + android.R.drawable.ic_menu_save, + getString(R.string.download_install), + pendingIntent + ) + } + + DownloadCompletionAction.OPEN_FILE -> PendingIntent.getActivity( + this, + id, + Intent.createChooser( + Intent(Intent.ACTION_VIEW).apply { + val contentUri = FileProvider.getUriForFile( + this@DownloadService, + "${BuildConfig.APPLICATION_ID}.fileprovider", + targetFile + ) + setDataAndType(contentUri, resolveDownloadMimeType(fileName, mimeType)) + addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_ACTIVITY_NEW_TASK) + }, + getString(R.string.open) + ).apply { + addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + }, + PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE + ).also { pendingIntent -> + builder.addAction( + android.R.drawable.ic_menu_view, + getString(R.string.open), + pendingIntent + ) + } } + builder.setContentIntent(primaryPendingIntent) + val dismissPendingIntent = PendingIntent.getService( this, COMPLETION_NOTIFICATION_ID_BASE + id, - dismissIntent, + Intent(this, DownloadService::class.java).apply { + action = ACTION_DISMISS_DOWNLOAD + putExtra(EXTRA_DOWNLOAD_ID, id) + putExtra(EXTRA_FILE_PATH, targetFile.absolutePath) + putExtra(EXTRA_DELETE_FILE_ON_DISMISS, deleteFileOnDismiss) + }, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE ) builder.addAction( @@ -273,7 +353,7 @@ class DownloadService : Service() { } private fun stopForegroundIfIdle() { - if (activeJobs.isEmpty() || activeJobs.values.none { it.isActive }) { + if (activeJobs.isEmpty()) { stopForeground(STOP_FOREGROUND_REMOVE) stopSelf() } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/Download.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/Download.kt new file mode 100644 index 000000000000..6b2d097f7be7 --- /dev/null +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/Download.kt @@ -0,0 +1,53 @@ +package me.weishu.kernelsu.ui.webui + +import java.io.File +import java.io.FileOutputStream +import java.io.InputStream +import java.io.OutputStream + +private const val DEFAULT_WEBUI_DOWNLOAD_NAME = "download.bin" + +internal fun resolveWebUIDownloadFile(downloadsDir: File, requestedFileName: String?): File { + val fileName = sanitizeWebUIDownloadFileName(requestedFileName) + return File(downloadsDir, fileName) +} + +internal fun sanitizeWebUIDownloadFileName(requestedFileName: String?): String { + val trimmed = requestedFileName?.trim().orEmpty() + if (trimmed.isEmpty()) return DEFAULT_WEBUI_DOWNLOAD_NAME + + val candidate = trimmed + .substringAfterLast('/') + .substringAfterLast('\\') + .trim() + + if (candidate.isEmpty() || candidate == "." || candidate == "..") { + return DEFAULT_WEBUI_DOWNLOAD_NAME + } + + return candidate +} + +internal fun writeWebUIDownload( + target: File, + source: InputStream, + outputStreamFactory: (File) -> OutputStream = ::FileOutputStream, + onBytesWritten: (Long) -> Unit = {}, +): Long { + target.parentFile?.mkdirs() + outputStreamFactory(target).buffered(64 * 1024).use { output -> + val buffer = ByteArray(8 * 1024) + var total = 0L + while (true) { + val read = source.read(buffer) + if (read == -1) { + break + } + output.write(buffer, 0, read) + total += read + onBytesWritten(total) + } + output.flush() + return total + } +} diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebUIScreen.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebUIScreen.kt index 7028ebb2f4c5..986674727aae 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebUIScreen.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebUIScreen.kt @@ -13,11 +13,13 @@ import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.asPaddingValues +import androidx.compose.foundation.layout.displayCutout import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.ime import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.layout.systemBars +import androidx.compose.foundation.layout.union import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.LaunchedEffect @@ -54,21 +56,22 @@ fun WebUIScreen(webUIState: WebUIState) { val density = LocalDensity.current val layoutDirection = LocalLayoutDirection.current val drawingInsets = WindowInsets.safeDrawing - val systemBarsInsets = WindowInsets.systemBars + val deviceInsets = WindowInsets.systemBars.union(WindowInsets.displayCutout) val imeInsets = WindowInsets.ime val innerPadding = if (webUIState.isInsetsEnabled) imeInsets.asPaddingValues() else drawingInsets.asPaddingValues() val fileLauncher = rememberFileLauncher(webUIState) - LaunchedEffect(density, layoutDirection, systemBarsInsets, webUIState.isInsetsEnabled) { + LaunchedEffect(density, layoutDirection, deviceInsets, webUIState.isInsetsEnabled) { if (!webUIState.isInsetsEnabled) { return@LaunchedEffect } snapshotFlow { - val top = (systemBarsInsets.getTop(density) / density.density).toInt() - val bottom = (systemBarsInsets.getBottom(density) / density.density).toInt() - val left = (systemBarsInsets.getLeft(density, layoutDirection) / density.density).toInt() - val right = (systemBarsInsets.getRight(density, layoutDirection) / density.density).toInt() - Insets(top, bottom, left, right) + Insets( + top = (deviceInsets.getTop(density) / density.density).toInt(), + bottom = (deviceInsets.getBottom(density) / density.density).toInt(), + left = (deviceInsets.getLeft(density, layoutDirection) / density.density).toInt(), + right = (deviceInsets.getRight(density, layoutDirection) / density.density).toInt() + ) }.collect { newInsets -> if (webUIState.currentInsets != newInsets) { webUIState.currentInsets = newInsets diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebUIState.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebUIState.kt index 75b448a50956..9dc866cabf20 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebUIState.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebUIState.kt @@ -26,6 +26,8 @@ sealed class WebUIEvent { class WebUIState { var webView: WebView? = null var rootShell: Shell? = null + var webViewInterface: WebViewInterface? = null + var downloadInterface: WebUIDownloadInterface? = null lateinit var modDir: String var moduleName: String = "" @@ -72,11 +74,18 @@ class WebUIState { fun dispose(activity: Activity) { activity.setTaskDescription(activity.getString(R.string.app_name)) + downloadInterface?.destroy() + downloadInterface = null + webViewInterface?.destroy() + webViewInterface = null webView?.let { view -> (view.parent as? android.view.ViewGroup)?.removeView(view) view.destroy() } webView = null + filePathCallback?.onReceiveValue(null) + filePathCallback = null rootShell?.close() + rootShell = null } } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewHelper.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewHelper.kt index 2400b4a5ba14..c3f9f24af2fb 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewHelper.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewHelper.kt @@ -25,6 +25,56 @@ import me.weishu.kernelsu.ui.util.createRootShell import me.weishu.kernelsu.ui.viewmodel.SuperUserViewModel import java.io.File +private const val DOWNLOAD_JS = """ + (function() { + if (window.ksu_download_enabled) return; + window.ksu_download_enabled = true; + const blobMap = new Map(); + const originalCreateObjectURL = URL.createObjectURL; + URL.createObjectURL = (obj) => { + const url = originalCreateObjectURL(obj); + if (obj instanceof Blob) blobMap.set(url, obj); + return url; + }; + const originalRevokeObjectURL = URL.revokeObjectURL; + URL.revokeObjectURL = (url) => { + setTimeout(() => blobMap.delete(url), 10000); + return originalRevokeObjectURL(url); + }; + const handleDownload = async (anchor) => { + const url = new URL(anchor.href, location.href); + const fileName = anchor.download || url.pathname.split("/").pop().split("?")[0] || "download.bin"; + const isInternal = url.hostname === 'mui.kernelsu.org'; + if (url.protocol === 'blob:' || url.protocol === 'data:' || isInternal) { + const blob = (url.protocol === 'blob:' && blobMap.has(url.href)) ? blobMap.get(url.href) : await (await fetch(url.href, { credentials: 'include' })).blob(); + const base64 = await new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onload = () => resolve(reader.result.split(',')[1] || ''); + reader.onerror = () => reject(reader.error || new Error('Failed to read blob')); + reader.readAsDataURL(blob); + }); + ksu_download.save(base64, fileName); + return; + } + ksu_download.download(url.href, fileName, anchor.type || null); + }; + document.addEventListener('click', (event) => { + const anchor = event.target.closest('a[download]'); + if (!anchor || !anchor.href) return; + event.preventDefault(); + handleDownload(anchor).catch((error) => console.error('KernelSU download failed', error)); + }, true); + const originalClick = HTMLAnchorElement.prototype.click; + HTMLAnchorElement.prototype.click = function() { + if (this.hasAttribute('download') && this.href) { + handleDownload(this).catch((error) => console.error('KernelSU download failed', error)); + return; + } + return originalClick.apply(this, arguments); + }; + })(); +""" + fun Activity.setTaskDescription(label: String) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { @Suppress("DEPRECATION") @@ -125,6 +175,7 @@ internal suspend fun prepareWebView( override fun doUpdateVisitedHistory(view: WebView?, url: String?, isReload: Boolean) { webUIState.webCanGoBack = view?.canGoBack() ?: false if (webUIState.isInsetsEnabled) webUIState.webView?.evaluateJavascript(webUIState.currentInsets.js, null) + view?.evaluateJavascript(DOWNLOAD_JS, null) super.doUpdateVisitedHistory(view, url, isReload) } } @@ -172,9 +223,18 @@ internal suspend fun prepareWebView( // JS Interface val webviewInterface = WebViewInterface(webUIState) + val downloadInterface = WebUIDownloadInterface(webUIState) + webUIState.webViewInterface = webviewInterface + webUIState.downloadInterface = downloadInterface webUIState.webView = webView webView.addJavascriptInterface(webviewInterface, "ksu") + webView.addJavascriptInterface(downloadInterface, "ksu_download") + webView.setDownloadListener { url, _, contentDisposition, mimetype, _ -> + val fileName = android.webkit.URLUtil.guessFileName(url, contentDisposition, mimetype) + downloadInterface.download(url, fileName, mimetype) + } + webView.evaluateJavascript(DOWNLOAD_JS, null) webUIState.uiEvent = WebUIEvent.WebViewReady } } -} \ No newline at end of file +} diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewInterface.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewInterface.kt index f3cdbe937838..4c2fa451f9bd 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewInterface.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewInterface.kt @@ -1,25 +1,50 @@ package me.weishu.kernelsu.ui.webui import android.app.Activity +import android.app.NotificationChannel +import android.app.NotificationManager +import android.app.PendingIntent +import android.content.Intent +import android.net.Uri +import android.os.Environment +import android.util.Base64 +import android.util.Log import android.content.pm.ApplicationInfo import android.os.Handler import android.os.Looper import android.text.TextUtils import android.view.Window +import android.webkit.CookieManager import android.webkit.JavascriptInterface +import android.webkit.WebSettings import android.widget.Toast +import androidx.core.app.NotificationCompat +import androidx.core.content.FileProvider import androidx.core.content.pm.PackageInfoCompat import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsControllerCompat import com.topjohnwu.superuser.CallbackList import com.topjohnwu.superuser.ShellUtils import com.topjohnwu.superuser.internal.UiThreadHandler +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.cancel +import kotlinx.coroutines.launch +import me.weishu.kernelsu.BuildConfig +import me.weishu.kernelsu.R +import me.weishu.kernelsu.ui.util.DownloadCompletionAction +import me.weishu.kernelsu.ui.util.DownloadManager +import me.weishu.kernelsu.ui.util.DownloadService import me.weishu.kernelsu.ui.util.createRootShell import me.weishu.kernelsu.ui.util.listModules +import me.weishu.kernelsu.ui.util.resolveDownloadMimeType import me.weishu.kernelsu.ui.util.withNewRootShell import me.weishu.kernelsu.ui.viewmodel.SuperUserViewModel +import me.weishu.kernelsu.ui.webui.file.KsuIO import org.json.JSONArray import org.json.JSONObject +import java.io.ByteArrayInputStream import java.io.File import java.util.concurrent.CompletableFuture @@ -38,9 +63,7 @@ class WebViewInterface(private val state: WebUIState) { } private fun processOptions(sb: StringBuilder, options: String?) { - val opts = if (options == null) JSONObject() else { - JSONObject(options) - } + val opts = if (options == null) JSONObject() else JSONObject(options) val cwd = opts.optString("cwd") if (!TextUtils.isEmpty(cwd)) { @@ -87,13 +110,11 @@ class WebViewInterface(private val state: WebUIState) { processOptions(finalCommand, options) - if (!TextUtils.isEmpty(args)) { + if (args.isNotEmpty()) { finalCommand.append(command).append(" ") - JSONArray(args).let { argsArray -> - for (i in 0 until argsArray.length()) { - finalCommand.append(argsArray.getString(i)) - finalCommand.append(" ") - } + val argsArray = JSONArray(args) + for (i in 0 until argsArray.length()) { + finalCommand.append(argsArray.getString(i)).append(" ") } } else { finalCommand.append(command) @@ -241,7 +262,7 @@ class WebViewInterface(private val state: WebUIState) { obj.put("versionName", pkg.versionName ?: "") obj.put("versionCode", PackageInfoCompat.getLongVersionCode(pkg)) obj.put("appLabel", appInfo.label) - obj.put("isSystem", if (app != null) ((app.flags and ApplicationInfo.FLAG_SYSTEM) != 0) else JSONObject.NULL) + obj.put("isSystem", app?.let { (it.flags and ApplicationInfo.FLAG_SYSTEM) != 0 } ?: JSONObject.NULL) obj.put("uid", app?.uid ?: JSONObject.NULL) jsonArray.put(obj) } else { @@ -258,6 +279,168 @@ class WebViewInterface(private val state: WebUIState) { fun exit() { state.requestExit() } + + @JavascriptInterface + fun io() = KsuIO + + fun destroy() { + KsuIO.destroy() + } +} + +class WebUIDownloadInterface(private val state: WebUIState) { + private val scope = CoroutineScope(SupervisorJob() + Dispatchers.IO) + private val webView get() = state.webView + + @JavascriptInterface + fun download(url: String, fileName: String?, mimeType: String?) { + val currentWebView = webView ?: return + val context = currentWebView.context + val target = resolveDownloadTarget(fileName) + val cookie = CookieManager.getInstance().getCookie(url) + val userAgent = WebSettings.getDefaultUserAgent(context) + DownloadManager.enqueue( + context = context, + url = url, + fileName = target.name, + targetPath = target.absolutePath, + mimeType = mimeType, + cookie = cookie, + userAgent = userAgent, + completionAction = DownloadCompletionAction.OPEN_FILE, + ) + } + + @JavascriptInterface + fun save(base64: String, fileName: String?) { + val currentWebView = webView ?: return + val target = resolveDownloadTarget(fileName) + val context = currentWebView.context + val notificationManager = context.getSystemService(NotificationManager::class.java) + val downloadId = DownloadManager.registerLocalSave( + fileName = target.name, + targetPath = target.absolutePath, + completionAction = DownloadCompletionAction.OPEN_FILE, + ) + + ensureNotificationChannel(notificationManager, context) + notificationManager.notify(downloadId, buildProgressNotification(context, target.name, 0)) + + scope.launch { + runCatching { + val decoded = Base64.decode(base64, Base64.DEFAULT) + var lastProgress = -1 + ByteArrayInputStream(decoded).use { input -> + writeWebUIDownload(target, input) { written -> + val progress = if (decoded.isEmpty()) 100 else ((written * 100L) / decoded.size.toLong()).toInt().coerceIn(0, 100) + DownloadManager.updateProgress(downloadId, progress) + if (progress - lastProgress >= 2 || progress == 100) { + notificationManager.notify(downloadId, buildProgressNotification(context, target.name, progress)) + lastProgress = progress + } + } + } + }.onSuccess { + val uri = Uri.fromFile(target) + DownloadManager.markCompleted(downloadId, uri) + notificationManager.notify( + downloadId, + buildCompletionNotification(context, downloadId, target) + ) + postToast(currentWebView.context.getString(R.string.download_complete_content, target.name)) + }.onFailure { throwable -> + Log.e("WebUIDownload", "Failed to save ${target.absolutePath}", throwable) + DownloadManager.markFailed(downloadId, throwable.message ?: "Unknown error") + notificationManager.notify(downloadId, buildFailureNotification(context, target.name)) + postToast(currentWebView.context.getString(R.string.download_failed_content, target.name)) + } + } + } + + fun destroy() { + scope.cancel() + } + + private fun postToast(message: String) { + webView?.let { currentWebView -> + currentWebView.post { + Toast.makeText(currentWebView.context, message, Toast.LENGTH_SHORT).show() + } + } + } + + private fun resolveDownloadTarget(fileName: String?): File { + val downloadsDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + return resolveWebUIDownloadFile(downloadsDir, fileName) + } + + private fun ensureNotificationChannel(notificationManager: NotificationManager, context: android.content.Context) { + notificationManager.createNotificationChannel( + NotificationChannel( + DownloadService.CHANNEL_ID, + context.getString(R.string.download_channel_name), + NotificationManager.IMPORTANCE_LOW, + ) + ) + } + + private fun buildProgressNotification( + context: android.content.Context, + fileName: String, + progress: Int, + ) = NotificationCompat.Builder(context, DownloadService.CHANNEL_ID) + .setContentTitle(context.getString(R.string.download_progress_title, fileName)) + .setContentText("$progress%") + .setSmallIcon(android.R.drawable.stat_sys_download) + .setProgress(100, progress, progress == 0) + .setOngoing(true) + .setSilent(true) + .build() + + private fun buildCompletionNotification( + context: android.content.Context, + downloadId: Int, + target: File, + ): android.app.Notification { + val contentUri = FileProvider.getUriForFile( + context, + "${BuildConfig.APPLICATION_ID}.fileprovider", + target, + ) + val openIntent = Intent.createChooser( + Intent(Intent.ACTION_VIEW).apply { + setDataAndType(contentUri, resolveDownloadMimeType(target.name, null)) + addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_ACTIVITY_NEW_TASK) + }, + context.getString(R.string.open), + ).apply { + addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + } + val pendingIntent = PendingIntent.getActivity( + context, + downloadId, + openIntent, + PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE, + ) + return NotificationCompat.Builder(context, DownloadService.CHANNEL_ID) + .setContentTitle(context.getString(R.string.download_complete_title)) + .setContentText(context.getString(R.string.download_complete_content, target.name)) + .setSmallIcon(android.R.drawable.stat_sys_download_done) + .setAutoCancel(true) + .setContentIntent(pendingIntent) + .addAction(android.R.drawable.ic_menu_view, context.getString(R.string.open), pendingIntent) + .build() + } + + private fun buildFailureNotification( + context: android.content.Context, + fileName: String, + ) = NotificationCompat.Builder(context, DownloadService.CHANNEL_ID) + .setContentTitle(context.getString(R.string.download_failed_title)) + .setContentText(context.getString(R.string.download_failed_content, fileName)) + .setSmallIcon(android.R.drawable.stat_notify_error) + .setAutoCancel(true) + .build() } fun hideSystemUI(window: Window) = diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/FileInputStreamInterface.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/FileInputStreamInterface.kt new file mode 100644 index 000000000000..4f2d084a8cba --- /dev/null +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/FileInputStreamInterface.kt @@ -0,0 +1,106 @@ +package me.weishu.kernelsu.ui.webui.file + +import android.util.Base64 +import android.util.Log +import android.webkit.JavascriptInterface +import com.topjohnwu.superuser.io.SuFileInputStream +import java.io.BufferedInputStream +import java.io.InputStream + +class FileInputStreamInterface { + @JavascriptInterface + fun open(path: String): String = runCatching { + val stream = ManagedInputStream(SuFileInputStream.open(path)) + val id = java.util.UUID.randomUUID().toString() + KsuIO.openInputStreams[id] = stream + id + }.onFailure { Log.e(TAG, "FileInputStream open failed", it) }.getOrElse { "" } + + @JavascriptInterface + fun read(id: String): String = runCatching { + val stream = KsuIO.openInputStreams[id] ?: return "" + val bytesRead = stream.readInto() + if (bytesRead > 0) { + Base64.encodeToString(stream.buffer(), 0, bytesRead, Base64.NO_WRAP) + } else { + "" + } + }.onFailure { Log.e(TAG, "FileInputStream read failed", it) }.getOrElse { "" } + + @JavascriptInterface + fun read(id: String, maxBytes: Int): String = runCatching { + val stream = KsuIO.openInputStreams[id] ?: return "" + val bytesRead = stream.readInto(maxBytes) + if (bytesRead > 0) { + Base64.encodeToString(stream.buffer(), 0, bytesRead, Base64.NO_WRAP) + } else { + "" + } + }.onFailure { Log.e(TAG, "FileInputStream read(maxBytes) failed", it) }.getOrElse { "" } + + @JavascriptInterface + fun available(id: String): Int = runCatching { + val stream = KsuIO.openInputStreams[id] ?: return 0 + stream.available() + }.getOrDefault(0) + + @JavascriptInterface + fun close(id: String): Boolean { + val stream = KsuIO.openInputStreams.remove(id) ?: return false + return runCatching { + stream.close() + true + }.getOrElse { + Log.e(TAG, "FileInputStream close failed", it) + false + } + } + + fun closeAll() { + while (true) { + val entry = KsuIO.openInputStreams.entries.firstOrNull() ?: break + val id = entry.key + val stream = entry.value + if (!KsuIO.openInputStreams.remove(id, stream)) { + continue + } + runCatching { + stream.close() + }.onFailure { Log.e(TAG, "closeAll failed for $id", it) } + } + } +} + +internal class ManagedInputStream( + inputStream: InputStream, + private val defaultChunkSize: Int = DEFAULT_CHUNK_SIZE, + private val maxChunkSize: Int = MAX_CHUNK_SIZE, +) : AutoCloseable { + private val stream = BufferedInputStream(inputStream, maxChunkSize) + private var buffer = ByteArray(defaultChunkSize) + + @Synchronized + fun readInto(maxBytes: Int = defaultChunkSize): Int { + val requestedSize = maxBytes.coerceIn(1, maxChunkSize) + if (buffer.size < requestedSize) { + buffer = ByteArray(requestedSize) + } + return stream.read(buffer, 0, requestedSize) + } + + @Synchronized + fun buffer(): ByteArray = buffer + + @Synchronized + fun available(): Int = stream.available() + + @Synchronized + override fun close() { + stream.close() + } + + companion object { + const val DEFAULT_CHUNK_SIZE = 8 * 1024 + const val MAX_CHUNK_SIZE = 64 * 1024 + } +} diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/FileInterface.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/FileInterface.kt new file mode 100644 index 000000000000..e0b27730c0f8 --- /dev/null +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/FileInterface.kt @@ -0,0 +1,154 @@ +package me.weishu.kernelsu.ui.webui.file + +import android.util.Log +import android.webkit.JavascriptInterface +import com.topjohnwu.superuser.io.SuFile +import java.io.BufferedOutputStream + +class FileInterface(private val path: String) { + private val suFile: SuFile = SuFile(path) + + @JavascriptInterface + fun exists(): Boolean = runCatching { suFile.exists() }.getOrDefault(false) + + @JavascriptInterface + fun isFile(): Boolean = runCatching { suFile.isFile }.getOrDefault(false) + + @JavascriptInterface + fun isDirectory(): Boolean = runCatching { suFile.isDirectory }.getOrDefault(false) + + @JavascriptInterface + fun canRead(): Boolean = runCatching { suFile.canRead() }.getOrDefault(false) + + @JavascriptInterface + fun canWrite(): Boolean = runCatching { suFile.canWrite() }.getOrDefault(false) + + @JavascriptInterface + fun canExecute(): Boolean = runCatching { suFile.canExecute() }.getOrDefault(false) + + @JavascriptInterface + fun createNewFile(): Boolean = runCatching { suFile.createNewFile() }.getOrDefault(false) + + @JavascriptInterface + fun delete(): Boolean = runCatching { suFile.delete() }.getOrDefault(false) + + @JavascriptInterface + fun deleteRecursive(): Boolean = runCatching { suFile.deleteRecursive() }.getOrDefault(false) + + @JavascriptInterface + fun mkdir(): Boolean = runCatching { suFile.mkdir() }.getOrDefault(false) + + @JavascriptInterface + fun mkdirs(): Boolean = runCatching { suFile.mkdirs() }.getOrDefault(false) + + @JavascriptInterface + fun renameTo(destPath: String): Boolean = runCatching { + suFile.renameTo(SuFile(destPath)) + }.getOrDefault(false) + + @JavascriptInterface + fun list(): Array = runCatching { suFile.list() ?: emptyArray() }.getOrDefault(emptyArray()) + + @JavascriptInterface + fun listFiles(): Array = runCatching { + suFile.listFiles()?.map { it.absolutePath }?.toTypedArray() ?: emptyArray() + }.getOrDefault(emptyArray()) + + @JavascriptInterface + fun length(): Long = runCatching { suFile.length() }.getOrDefault(-1L) + + @JavascriptInterface + fun lastModified(): Long = runCatching { suFile.lastModified() }.getOrDefault(-1L) + + @JavascriptInterface + fun setLastModified(time: Long): Boolean = runCatching { suFile.setLastModified(time) }.getOrDefault(false) + + @JavascriptInterface + fun getAbsolutePath(): String = runCatching { suFile.absolutePath }.getOrDefault(path) + + @JavascriptInterface + fun getCanonicalPath(): String = runCatching { suFile.canonicalPath }.getOrDefault(path) + + @JavascriptInterface + fun getParent(): String? = runCatching { suFile.parent }.getOrNull() + + @JavascriptInterface + fun getPath(): String = path + + @JavascriptInterface + fun getName(): String = runCatching { suFile.name }.getOrDefault("") + + @JavascriptInterface + fun isHidden(): Boolean = runCatching { suFile.isHidden }.getOrDefault(false) + + @JavascriptInterface + fun isBlock(): Boolean = runCatching { suFile.isBlock }.getOrDefault(false) + + @JavascriptInterface + fun isCharacter(): Boolean = runCatching { suFile.isCharacter }.getOrDefault(false) + + @JavascriptInterface + fun isSymlink(): Boolean = runCatching { suFile.isSymlink }.getOrDefault(false) + + @JavascriptInterface + fun createNewSymlink(target: String): Boolean = runCatching { + suFile.createNewSymlink(target) + }.getOrDefault(false) + + @JavascriptInterface + fun createNewLink(existing: String): Boolean = runCatching { + suFile.createNewLink(existing) + }.getOrDefault(false) + + @JavascriptInterface + fun clear(): Boolean = runCatching { suFile.clear() }.getOrDefault(false) + + @JavascriptInterface + fun setReadOnly(): Boolean = runCatching { suFile.setReadOnly() }.getOrDefault(false) + + @JavascriptInterface + fun setReadable(readable: Boolean, ownerOnly: Boolean): Boolean = + runCatching { suFile.setReadable(readable, ownerOnly) }.getOrDefault(false) + + @JavascriptInterface + fun setWritable(writable: Boolean, ownerOnly: Boolean): Boolean = + runCatching { suFile.setWritable(writable, ownerOnly) }.getOrDefault(false) + + @JavascriptInterface + fun setExecutable(executable: Boolean, ownerOnly: Boolean): Boolean = + runCatching { suFile.setExecutable(executable, ownerOnly) }.getOrDefault(false) + + @JavascriptInterface + fun getFreeSpace(): Long = runCatching { suFile.freeSpace }.getOrDefault(-1L) + + @JavascriptInterface + fun getTotalSpace(): Long = runCatching { suFile.totalSpace }.getOrDefault(-1L) + + @JavascriptInterface + fun getUsableSpace(): Long = runCatching { suFile.usableSpace }.getOrDefault(-1L) + + @JavascriptInterface + fun newInputStream(): String { + return runCatching { + val stream = ManagedInputStream(suFile.newInputStream()) + val id = java.util.UUID.randomUUID().toString() + KsuIO.openInputStreams[id] = stream + id + }.onFailure { Log.e(TAG, "newInputStream failed", it) }.getOrElse { "" } + } + + @JavascriptInterface + fun newOutputStream(append: Boolean): String { + return runCatching { + val stream = suFile.newOutputStream(append) + val id = java.util.UUID.randomUUID().toString() + KsuIO.openOutputStreams[id] = BufferedOutputStream(stream, ManagedInputStream.MAX_CHUNK_SIZE) + id + }.onFailure { Log.e(TAG, "newOutputStream failed", it) }.getOrElse { "" } + } + + @JavascriptInterface + fun newOutputStream(): String = newOutputStream(false) + + override fun toString(): String = path +} diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/FileOutputStreamInterface.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/FileOutputStreamInterface.kt new file mode 100644 index 000000000000..75666096496f --- /dev/null +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/FileOutputStreamInterface.kt @@ -0,0 +1,68 @@ +package me.weishu.kernelsu.ui.webui.file + +import android.util.Base64 +import android.util.Log +import android.webkit.JavascriptInterface +import com.topjohnwu.superuser.io.SuFileOutputStream +import java.io.BufferedOutputStream +import java.util.UUID + +class FileOutputStreamInterface { + @JavascriptInterface + fun open(path: String, append: Boolean): String = runCatching { + val file = com.topjohnwu.superuser.io.SuFile(path) + val fos = SuFileOutputStream.open(file, append) + val bos = BufferedOutputStream(fos, 64 * 1024) + val id = UUID.randomUUID().toString() + KsuIO.openOutputStreams[id] = bos + id + }.onFailure { Log.e(TAG, "FileOutputStream open failed", it) }.getOrElse { "" } + + @JavascriptInterface + fun open(path: String): String = open(path, false) + + @JavascriptInterface + fun writeByte(id: String, b: Int): Boolean = runCatching { + val bos = KsuIO.openOutputStreams[id] ?: return false + synchronized(bos) { bos.write(b) } + true + }.onFailure { Log.e(TAG, "writeByte failed", it) }.getOrElse { false } + + @JavascriptInterface + fun write(id: String, base64: String): Boolean = runCatching { + val bos = KsuIO.openOutputStreams[id] ?: return false + val data = Base64.decode(base64, Base64.NO_WRAP) + synchronized(bos) { bos.write(data) } + true + }.onFailure { Log.e(TAG, "write failed", it) }.getOrElse { false } + + @JavascriptInterface + fun flush(id: String): Boolean = runCatching { + val bos = KsuIO.openOutputStreams[id] ?: return false + synchronized(bos) { bos.flush() } + true + }.onFailure { Log.e(TAG, "flush failed", it) }.getOrElse { false } + + @JavascriptInterface + fun close(id: String): Boolean { + val bos = KsuIO.openOutputStreams.remove(id) ?: return false + return runCatching { + synchronized(bos) { bos.close() } + true + }.onFailure { Log.e(TAG, "close failed", it) }.getOrElse { false } + } + + fun closeAll() { + while (true) { + val entry = KsuIO.openOutputStreams.entries.firstOrNull() ?: break + val id = entry.key + val bos = entry.value + if (!KsuIO.openOutputStreams.remove(id, bos)) { + continue + } + runCatching { + synchronized(bos) { bos.close() } + }.onFailure { Log.e(TAG, "closeAll failed for $id", it) } + } + } +} diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/KsuIO.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/KsuIO.kt new file mode 100644 index 000000000000..ca8225e32f1f --- /dev/null +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/KsuIO.kt @@ -0,0 +1,34 @@ +package me.weishu.kernelsu.ui.webui.file + +import android.webkit.JavascriptInterface +import java.io.OutputStream +import java.util.concurrent.ConcurrentHashMap + +const val TAG = "KsuIO" + +object KsuIO { + internal val openInputStreams = ConcurrentHashMap() + internal val openOutputStreams = ConcurrentHashMap() + + private val fileOutputStream = FileOutputStreamInterface() + private val fileInputStream = FileInputStreamInterface() + private val randomAccessFile = RandomAccessFileInterface() + + @JavascriptInterface + fun File(path: String): FileInterface = FileInterface(path) + + @JavascriptInterface + fun FileInputStream(): FileInputStreamInterface = fileInputStream + + @JavascriptInterface + fun FileOutputStream(): FileOutputStreamInterface = fileOutputStream + + @JavascriptInterface + fun RandomAccessFile(): RandomAccessFileInterface = randomAccessFile + + fun destroy() { + fileInputStream.closeAll() + fileOutputStream.closeAll() + randomAccessFile.closeAll() + } +} diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/RandomAccessFileInterface.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/RandomAccessFileInterface.kt new file mode 100644 index 000000000000..90345adc1c7f --- /dev/null +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/file/RandomAccessFileInterface.kt @@ -0,0 +1,196 @@ +package me.weishu.kernelsu.ui.webui.file + +import android.util.Base64 +import android.util.Log +import android.webkit.JavascriptInterface +import com.topjohnwu.superuser.io.SuRandomAccessFile +import java.util.concurrent.ConcurrentHashMap + +class RandomAccessFileInterface { + private val openFiles = ConcurrentHashMap() + + @JavascriptInterface + fun open(path: String, mode: String): String = runCatching { + val raf = SuRandomAccessFile.open(path, mode) + val id = java.util.UUID.randomUUID().toString() + openFiles[id] = raf + id + }.onFailure { Log.e(TAG, "RandomAccessFile open failed", it) }.getOrElse { "" } + + @JavascriptInterface + fun read(id: String): Int = runCatching { + val raf = openFiles[id] ?: return -1 + synchronized(raf) { raf.read() } + }.onFailure { Log.e(TAG, "RandomAccessFile read() failed", it) }.getOrElse { -1 } + + @JavascriptInterface + fun readBytes(id: String, len: Int): String = runCatching { + val raf = openFiles[id] ?: return "" + val buffer = ByteArray(len) + val bytesRead = synchronized(raf) { raf.read(buffer) } + if (bytesRead > 0) { + Base64.encodeToString(buffer, 0, bytesRead, Base64.NO_WRAP) + } else { + "" + } + }.onFailure { Log.e(TAG, "RandomAccessFile readBytes failed", it) }.getOrElse { "" } + + @JavascriptInterface + fun readBoolean(id: String): Boolean = runCatching { + val raf = openFiles[id] ?: return false + synchronized(raf) { raf.readBoolean() } + }.onFailure { Log.e(TAG, "RandomAccessFile readBoolean failed", it) }.getOrElse { false } + + @JavascriptInterface + fun readByte(id: String): Byte = runCatching { + val raf = openFiles[id] ?: return 0 + synchronized(raf) { raf.readByte() } + }.onFailure { Log.e(TAG, "RandomAccessFile readByte failed", it) }.getOrElse { 0 } + + @JavascriptInterface + fun readInt(id: String): Int = runCatching { + val raf = openFiles[id] ?: return 0 + synchronized(raf) { raf.readInt() } + }.onFailure { Log.e(TAG, "RandomAccessFile readInt failed", it) }.getOrElse { 0 } + + @JavascriptInterface + fun readLong(id: String): Long = runCatching { + val raf = openFiles[id] ?: return 0L + synchronized(raf) { raf.readLong() } + }.onFailure { Log.e(TAG, "RandomAccessFile readLong failed", it) }.getOrElse { 0L } + + @JavascriptInterface + fun readShort(id: String): Short = runCatching { + val raf = openFiles[id] ?: return 0.toShort() + synchronized(raf) { raf.readShort() } + }.onFailure { Log.e(TAG, "RandomAccessFile readShort failed", it) }.getOrElse { 0.toShort() } + + @JavascriptInterface + fun readFloat(id: String): Float = runCatching { + val raf = openFiles[id] ?: return 0f + synchronized(raf) { raf.readFloat() } + }.onFailure { Log.e(TAG, "RandomAccessFile readFloat failed", it) }.getOrElse { 0f } + + @JavascriptInterface + fun readDouble(id: String): Double = runCatching { + val raf = openFiles[id] ?: return 0.0 + synchronized(raf) { raf.readDouble() } + }.onFailure { Log.e(TAG, "RandomAccessFile readDouble failed", it) }.getOrElse { 0.0 } + + @JavascriptInterface + fun readUTF(id: String): String = runCatching { + val raf = openFiles[id] ?: return "" + synchronized(raf) { raf.readUTF() } + }.onFailure { Log.e(TAG, "RandomAccessFile readUTF failed", it) }.getOrElse { "" } + + @JavascriptInterface + fun readLine(id: String): String? = runCatching { + val raf = openFiles[id] ?: return null + synchronized(raf) { raf.readLine() } + }.onFailure { Log.e(TAG, "RandomAccessFile readLine failed", it) }.getOrNull() + + @JavascriptInterface + fun write(id: String, b: Int): Unit = runCatching { + val raf = openFiles[id] ?: return + synchronized(raf) { raf.write(b) } + }.onFailure { Log.e(TAG, "RandomAccessFile write failed", it) }.let { } + + @JavascriptInterface + fun writeBase64(id: String, data: String): Unit = runCatching { + val raf = openFiles[id] ?: return + val bytes = Base64.decode(data, Base64.NO_WRAP) + synchronized(raf) { raf.write(bytes) } + }.onFailure { Log.e(TAG, "RandomAccessFile writeBase64 failed", it) }.let { } + + @JavascriptInterface + fun writeBoolean(id: String, v: Boolean): Unit = runCatching { + val raf = openFiles[id] ?: return + synchronized(raf) { raf.writeBoolean(v) } + }.onFailure { Log.e(TAG, "RandomAccessFile writeBoolean failed", it) }.let { } + + @JavascriptInterface + fun writeByte(id: String, v: Int): Unit = runCatching { + val raf = openFiles[id] ?: return + synchronized(raf) { raf.writeByte(v) } + }.onFailure { Log.e(TAG, "RandomAccessFile writeByte failed", it) }.let { } + + @JavascriptInterface + fun writeInt(id: String, v: Int): Unit = runCatching { + val raf = openFiles[id] ?: return + synchronized(raf) { raf.writeInt(v) } + }.onFailure { Log.e(TAG, "RandomAccessFile writeInt failed", it) }.let { } + + @JavascriptInterface + fun writeLong(id: String, v: Long): Unit = runCatching { + val raf = openFiles[id] ?: return + synchronized(raf) { raf.writeLong(v) } + }.onFailure { Log.e(TAG, "RandomAccessFile writeLong failed", it) }.let { } + + @JavascriptInterface + fun writeShort(id: String, v: Int): Unit = runCatching { + val raf = openFiles[id] ?: return + synchronized(raf) { raf.writeShort(v) } + }.onFailure { Log.e(TAG, "RandomAccessFile writeShort failed", it) }.let { } + + @JavascriptInterface + fun writeFloat(id: String, v: Float): Unit = runCatching { + val raf = openFiles[id] ?: return + synchronized(raf) { raf.writeFloat(v) } + }.onFailure { Log.e(TAG, "RandomAccessFile writeFloat failed", it) }.let { } + + @JavascriptInterface + fun writeDouble(id: String, v: Double): Unit = runCatching { + val raf = openFiles[id] ?: return + synchronized(raf) { raf.writeDouble(v) } + }.onFailure { Log.e(TAG, "RandomAccessFile writeDouble failed", it) }.let { } + + @JavascriptInterface + fun writeUTF(id: String, str: String): Unit = runCatching { + val raf = openFiles[id] ?: return + synchronized(raf) { raf.writeUTF(str) } + }.onFailure { Log.e(TAG, "RandomAccessFile writeUTF failed", it) }.let { } + + @JavascriptInterface + fun seek(id: String, pos: Long): Boolean = runCatching { + val raf = openFiles[id] ?: return false + synchronized(raf) { raf.seek(pos) } + true + }.onFailure { Log.e(TAG, "RandomAccessFile seek failed", it) }.getOrElse { false } + + @JavascriptInterface + fun getFilePointer(id: String): Long = runCatching { + val raf = openFiles[id] ?: return -1L + synchronized(raf) { raf.getFilePointer() } + }.onFailure { Log.e(TAG, "RandomAccessFile getFilePointer failed", it) }.getOrElse { -1L } + + @JavascriptInterface + fun length(id: String): Long = runCatching { + val raf = openFiles[id] ?: return -1L + synchronized(raf) { raf.length() } + }.onFailure { Log.e(TAG, "RandomAccessFile length failed", it) }.getOrElse { -1L } + + @JavascriptInterface + fun setLength(id: String, newLength: Long): Boolean = runCatching { + val raf = openFiles[id] ?: return false + synchronized(raf) { raf.setLength(newLength) } + true + }.onFailure { Log.e(TAG, "RandomAccessFile setLength failed", it) }.getOrElse { false } + + @JavascriptInterface + fun close(id: String): Boolean { + val raf = openFiles.remove(id) ?: return false + return runCatching { + synchronized(raf) { raf.close() } + true + }.onFailure { Log.e(TAG, "RandomAccessFile close failed", it) }.getOrElse { false } + } + + fun closeAll() { + openFiles.forEach { (id, raf) -> + runCatching { + synchronized(raf) { raf.close() } + }.onFailure { Log.e(TAG, "closeAll failed for $id", it) } + } + openFiles.clear() + } +} From 5a969ae78dbae183f98a268dcc51a54f4371bded Mon Sep 17 00:00:00 2001 From: 5ec1cff <56485584+5ec1cff@users.noreply.github.com> Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 02/35] actions: quote shell vars --- .github/workflows/build-manager.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-manager.yml b/.github/workflows/build-manager.yml index 35c4fe08e8c6..646945e14f2e 100644 --- a/.github/workflows/build-manager.yml +++ b/.github/workflows/build-manager.yml @@ -155,7 +155,7 @@ jobs: echo KEY_PASSWORD='${{ secrets.KEY_PASSWORD }}' echo KEYSTORE_FILE='key.jks' } >> gradle.properties - echo ${{ secrets.KEYSTORE }} | base64 -d > key.jks + echo "${{ secrets.KEYSTORE }}" | base64 -d > key.jks fi - name: Write PR key From bbc073e9401d92935d385671ad67e24402029427 Mon Sep 17 00:00:00 2001 From: 5ec1cff Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 03/35] actions: use var for chat id --- .github/workflows/build-manager.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-manager.yml b/.github/workflows/build-manager.yml index 646945e14f2e..31cbc59ac715 100644 --- a/.github/workflows/build-manager.yml +++ b/.github/workflows/build-manager.yml @@ -322,9 +322,9 @@ jobs: - name: Upload to telegram if: github.event_name != 'pull_request' && steps.need_upload.outputs.UPLOAD == 'true' env: - CHAT_ID: ${{ secrets.CHAT_ID }} + CHAT_ID: ${{ vars.CHAT_ID }} BOT_TOKEN: ${{ secrets.BOT_TOKEN }} - MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }} + MESSAGE_THREAD_ID: ${{ vars.MESSAGE_THREAD_ID }} COMMIT_MESSAGE: ${{ github.event.head_commit.message }} COMMIT_URL: ${{ github.event.head_commit.url }} RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} From 202dfbbf63f5d90445ee9eaea6292c7dad695fa1 Mon Sep 17 00:00:00 2001 From: 5ec1cff <56485584+5ec1cff@users.noreply.github.com> Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 04/35] actions: add more path to trigger build manager when pull request --- .github/workflows/build-manager.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-manager.yml b/.github/workflows/build-manager.yml index 31cbc59ac715..efefc3510ffd 100644 --- a/.github/workflows/build-manager.yml +++ b/.github/workflows/build-manager.yml @@ -27,6 +27,7 @@ on: - 'manager/**' - 'kernel/**' - 'userspace/**' + - 'scripts/ksubot.py' workflow_call: jobs: From 28fe1cb1c0cb5eee3d17f0b996532e5bf74ed10b Mon Sep 17 00:00:00 2001 From: 5ec1cff Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 05/35] ksubot: make MESSAGE_THREAD_ID optional --- scripts/ksubot.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/scripts/ksubot.py b/scripts/ksubot.py index 80604094d248..a4df86033b7b 100644 --- a/scripts/ksubot.py +++ b/scripts/ksubot.py @@ -2,7 +2,6 @@ import os import sys from telethon import TelegramClient -from telethon.tl.functions.help import GetConfigRequest API_ID = 611335 API_HASH = "d524b414d21f4d37f08684c1df41ac9c" @@ -55,7 +54,10 @@ def check_environ(): print("[-] Invalid CHAT_ID") exit(1) else: - CHAT_ID = int(CHAT_ID) + try: + CHAT_ID = int(CHAT_ID) + except: + pass if COMMIT_URL is None: print("[-] Invalid COMMIT_URL") exit(1) @@ -74,11 +76,14 @@ def check_environ(): if BRANCH is None: print("[-] Invalid BRANCH") exit(1) - if MESSAGE_THREAD_ID is None: - print("[-] Invaild MESSAGE_THREAD_ID") - exit(1) + if MESSAGE_THREAD_ID is not None and MESSAGE_THREAD_ID != "": + try: + MESSAGE_THREAD_ID = int(MESSAGE_THREAD_ID) + except: + print("[-] Invaild MESSAGE_THREAD_ID") + exit(1) else: - MESSAGE_THREAD_ID = int(MESSAGE_THREAD_ID) + MESSAGE_THREAD_ID = None async def main(): From 7f4156faea39c1c24fe60c17e58f0ba119cb8934 Mon Sep 17 00:00:00 2001 From: 5ec1cff Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 06/35] ksubot: collect all commits --- .github/workflows/build-manager.yml | 3 +- scripts/ksubot.py | 254 +++++++++++++++------------- 2 files changed, 140 insertions(+), 117 deletions(-) diff --git a/.github/workflows/build-manager.yml b/.github/workflows/build-manager.yml index efefc3510ffd..50b8a30dece6 100644 --- a/.github/workflows/build-manager.yml +++ b/.github/workflows/build-manager.yml @@ -326,8 +326,7 @@ jobs: CHAT_ID: ${{ vars.CHAT_ID }} BOT_TOKEN: ${{ secrets.BOT_TOKEN }} MESSAGE_THREAD_ID: ${{ vars.MESSAGE_THREAD_ID }} - COMMIT_MESSAGE: ${{ github.event.head_commit.message }} - COMMIT_URL: ${{ github.event.head_commit.url }} + GITHUB_EVENT: ${{ toJson(github.event) }} RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} TITLE: Manager BRANCH: ${{ github.ref_name }} diff --git a/scripts/ksubot.py b/scripts/ksubot.py index a4df86033b7b..40fb3b3331ca 100644 --- a/scripts/ksubot.py +++ b/scripts/ksubot.py @@ -1,115 +1,139 @@ -import asyncio -import os -import sys -from telethon import TelegramClient - -API_ID = 611335 -API_HASH = "d524b414d21f4d37f08684c1df41ac9c" - - -BOT_TOKEN = os.environ.get("BOT_TOKEN") -CHAT_ID = os.environ.get("CHAT_ID") -MESSAGE_THREAD_ID = os.environ.get("MESSAGE_THREAD_ID") -COMMIT_URL = os.environ.get("COMMIT_URL") -COMMIT_MESSAGE = os.environ.get("COMMIT_MESSAGE") -RUN_URL = os.environ.get("RUN_URL") -TITLE = os.environ.get("TITLE") -VERSION = os.environ.get("VERSION") -BRANCH = os.environ.get("BRANCH") -MSG_TEMPLATE = """ -**{title}** -Branch: {branch} -#ci_{version} -``` -{commit_message} -``` -[Commit]({commit_url}) -[Workflow run]({run_url}) -""".strip() - - -def get_caption(): - msg = MSG_TEMPLATE.format( - title=TITLE, - branch=BRANCH, - version=VERSION, - commit_message=COMMIT_MESSAGE, - commit_url=COMMIT_URL, - run_url=RUN_URL, - ) - if len(msg) > 1024: - msg = COMMIT_URL - if BRANCH == "dev": - msg += "\n⚠️⚠️**DEV VERSION, PLEASE BACKUP BEFORE INSTALLATION**⚠️⚠️" - msg += "\n⚠️⚠️**测试版,安装前请备份**⚠️⚠️" - return msg - - -def check_environ(): - global CHAT_ID, MESSAGE_THREAD_ID - if BOT_TOKEN is None: - print("[-] Invalid BOT_TOKEN") - exit(1) - if CHAT_ID is None: - print("[-] Invalid CHAT_ID") - exit(1) - else: - try: - CHAT_ID = int(CHAT_ID) - except: - pass - if COMMIT_URL is None: - print("[-] Invalid COMMIT_URL") - exit(1) - if COMMIT_MESSAGE is None: - print("[-] Invalid COMMIT_MESSAGE") - exit(1) - if RUN_URL is None: - print("[-] Invalid RUN_URL") - exit(1) - if TITLE is None: - print("[-] Invalid TITLE") - exit(1) - if VERSION is None: - print("[-] Invalid VERSION") - exit(1) - if BRANCH is None: - print("[-] Invalid BRANCH") - exit(1) - if MESSAGE_THREAD_ID is not None and MESSAGE_THREAD_ID != "": - try: - MESSAGE_THREAD_ID = int(MESSAGE_THREAD_ID) - except: - print("[-] Invaild MESSAGE_THREAD_ID") - exit(1) - else: - MESSAGE_THREAD_ID = None - - -async def main(): - print("[+] Uploading to telegram") - check_environ() - files = sys.argv[1:] - print("[+] Files:", files) - if len(files) <= 0: - print("[-] No files to upload") - exit(1) - print("[+] Logging in Telegram with bot") - script_dir = os.path.dirname(os.path.abspath(sys.argv[0])) - session_dir = os.path.join(script_dir, "ksubot") - async with await TelegramClient(session=session_dir, api_id=API_ID, api_hash=API_HASH).start(bot_token=BOT_TOKEN) as bot: - caption = [""] * len(files) - caption[-1] = get_caption() - print("[+] Caption: ") - print("---") - print(caption) - print("---") - print("[+] Sending") - await bot.send_file(entity=CHAT_ID, file=files, caption=caption, reply_to=MESSAGE_THREAD_ID, parse_mode="markdown") - print("[+] Done!") - -if __name__ == "__main__": - try: - asyncio.run(main()) - except Exception as e: - print(f"[-] An error occurred: {e}") +import asyncio +import os +import sys +from telethon import TelegramClient +import json + +API_ID = 611335 +API_HASH = "d524b414d21f4d37f08684c1df41ac9c" + + +BOT_TOKEN = os.environ.get("BOT_TOKEN") +CHAT_ID = os.environ.get("CHAT_ID") +MESSAGE_THREAD_ID = os.environ.get("MESSAGE_THREAD_ID") +TITLE = os.environ.get("TITLE") +VERSION = os.environ.get("VERSION") +BRANCH = os.environ.get("BRANCH") +RUN_URL = os.environ.get("RUN_URL") + +GITHUB_EVENT = json.loads(os.environ.get("GITHUB_EVENT")) + +if 'commits' in GITHUB_EVENT: + commits = GITHUB_EVENT['commits'] + commit_message = '' + i = len(commits) + for commit in commits[::-1]: + msg = commit['message'] + if len(msg) > 256: + msg = msg[:253] + '...' + if len(msg) + 1 + len(commit_message) > 980: + commit_message = f'(other {i} commits)\n{commit_message}' + else: + commit_message = f'{msg}\n{commit_message}' + i -= 1 + commit_message = f'```\n{commit_message.strip()}\n```' +elif 'head_commit' in GITHUB_EVENT: + msg = GITHUB_EVENT["head_commt"]["msg"] + if len(msg) > 256: + msg = msg[:253] + '...' + commit_message = f'```\n{msg.strip()}\n```\n' +else: + commit_message = '' + +if 'compare' in GITHUB_EVENT: + commit_url = GITHUB_EVENT['compare'] + commit_line = '[Compare](' + commit_url + ')\n' +elif 'head_commit' in GITHUB_EVENT: + commit_url = GITHUB_EVENT['head_commit']['url'] + commit_line = '[Commit](' + commit_url + ')\n' +else: + commit_line = '' + + +MSG_TEMPLATE = """ +**{title}** +Branch: {branch} +#ci_{version} +{commit_message}{commit_url}[Workflow run]({run_url}) +""".strip() + + +def get_caption(): + msg = MSG_TEMPLATE.format( + title=TITLE, + branch=BRANCH, + version=VERSION, + commit_message=commit_message, + commit_url=commit_line, + run_url=RUN_URL, + ) + if len(msg) > 1024: + msg = COMMIT_URL + if BRANCH == "dev": + msg += "\n⚠️⚠️**DEV VERSION, PLEASE BACKUP BEFORE INSTALLATION**⚠️⚠️" + msg += "\n⚠️⚠️**测试版,安装前请备份**⚠️⚠️" + return msg + + +def check_environ(): + global CHAT_ID, MESSAGE_THREAD_ID + if BOT_TOKEN is None: + print("[-] Invalid BOT_TOKEN") + exit(1) + if CHAT_ID is None: + print("[-] Invalid CHAT_ID") + exit(1) + else: + try: + CHAT_ID = int(CHAT_ID) + except: + pass + if RUN_URL is None: + print("[-] Invalid RUN_URL") + exit(1) + if TITLE is None: + print("[-] Invalid TITLE") + exit(1) + if VERSION is None: + print("[-] Invalid VERSION") + exit(1) + if BRANCH is None: + print("[-] Invalid BRANCH") + exit(1) + if MESSAGE_THREAD_ID is not None and MESSAGE_THREAD_ID != "": + try: + MESSAGE_THREAD_ID = int(MESSAGE_THREAD_ID) + except: + print("[-] Invaild MESSAGE_THREAD_ID") + exit(1) + else: + MESSAGE_THREAD_ID = None + + +async def main(): + print("[+] Uploading to telegram") + check_environ() + files = sys.argv[1:] + print("[+] Files:", files) + if len(files) <= 0: + print("[-] No files to upload") + exit(1) + print("[+] Logging in Telegram with bot") + script_dir = os.path.dirname(os.path.abspath(sys.argv[0])) + session_dir = os.path.join(script_dir, "ksubot") + async with await TelegramClient(session=session_dir, api_id=API_ID, api_hash=API_HASH).start(bot_token=BOT_TOKEN) as bot: + caption = [""] * len(files) + caption[-1] = get_caption() + print("[+] Caption: ") + print("---") + print(caption) + print("---") + print("[+] Sending") + await bot.send_file(entity=CHAT_ID, file=files, caption=caption, reply_to=MESSAGE_THREAD_ID, parse_mode="markdown") + print("[+] Done!") + +if __name__ == "__main__": + try: + asyncio.run(main()) + except Exception as e: + print(f"[-] An error occurred: {e}") From aa45a2c221108727d0bc13ef027e577934df0166 Mon Sep 17 00:00:00 2001 From: 5ec1cff Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 07/35] ksubot: add upstream diff --- .github/workflows/build-manager.yml | 1 + scripts/ksubot.py | 60 ++++++++++++++++++++--------- 2 files changed, 42 insertions(+), 19 deletions(-) diff --git a/.github/workflows/build-manager.yml b/.github/workflows/build-manager.yml index 50b8a30dece6..2be3b2606c6a 100644 --- a/.github/workflows/build-manager.yml +++ b/.github/workflows/build-manager.yml @@ -14,6 +14,7 @@ on: - 'manager/**' - 'kernel/**' - 'userspace/**' + - 'scripts/ksubot.py' pull_request: branches: [ "main", "dev" ] paths: diff --git a/scripts/ksubot.py b/scripts/ksubot.py index 40fb3b3331ca..1dc63e427630 100644 --- a/scripts/ksubot.py +++ b/scripts/ksubot.py @@ -3,6 +3,7 @@ import sys from telethon import TelegramClient import json +import re API_ID = 611335 API_HASH = "d524b414d21f4d37f08684c1df41ac9c" @@ -18,27 +19,46 @@ GITHUB_EVENT = json.loads(os.environ.get("GITHUB_EVENT")) -if 'commits' in GITHUB_EVENT: - commits = GITHUB_EVENT['commits'] - commit_message = '' - i = len(commits) - for commit in commits[::-1]: - msg = commit['message'] +commit_message = '' +commit_line = '' +upstream_diff = None +try: + if 'commits' in GITHUB_EVENT: + commits = GITHUB_EVENT['commits'] + commit_message = '' + i = len(commits) + for commit in commits[::-1]: + msg_line = commit['message'].split('\n') + msg = msg_line[0].strip() + if len(msg_line) > 1: + msg += ' [..]' + if len(msg) > 100: + msg = msg[:97] + '...' + msg += ' by ' + commit['author']['username'] + if len(msg) + 1 + len(commit_message) > 600: + commit_message = f'(other {i} commits)\n{commit_message}' + break + else: + commit_message = f'{msg}\n{commit_message}' + i -= 1 + commit_message = f'```{commit_message.strip()}\n```' + last_commit = commits[-1] + r = re.search(r'sync with upstream\s+https://github.com/tiann/KernelSU/commit/(.*)\s*', last_commit['message']) + if r is not None: + upstream_commit = r.group(1) + before_commit = GITHUB_EVENT['before'] + repo_url = GITHUB_EVENT['repository']['html_url'] + upstream_diff = f'[Upstream Update]({repo_url}/compare/{before_commit}...{upstream_commit})\n' + elif 'head_commit' in GITHUB_EVENT: + msg = GITHUB_EVENT["head_commt"]["msg"] if len(msg) > 256: msg = msg[:253] + '...' - if len(msg) + 1 + len(commit_message) > 980: - commit_message = f'(other {i} commits)\n{commit_message}' - else: - commit_message = f'{msg}\n{commit_message}' - i -= 1 - commit_message = f'```\n{commit_message.strip()}\n```' -elif 'head_commit' in GITHUB_EVENT: - msg = GITHUB_EVENT["head_commt"]["msg"] - if len(msg) > 256: - msg = msg[:253] + '...' - commit_message = f'```\n{msg.strip()}\n```\n' -else: - commit_message = '' + commit_message = f'```\n{msg.strip()}\n```\n' + else: + commit_message = '' +except: + from traceback import print_exc + print_exc() if 'compare' in GITHUB_EVENT: commit_url = GITHUB_EVENT['compare'] @@ -49,6 +69,8 @@ else: commit_line = '' +if upstream_diff is not None: + commit_message += upstream_diff MSG_TEMPLATE = """ **{title}** From 551d5f605024400f477edcc0791228d0cc36df3d Mon Sep 17 00:00:00 2001 From: 5ec1cff <56485584+5ec1cff@users.noreply.github.com> Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 08/35] ci: Add workflow_dispatch trigger to build-manager --- .github/workflows/build-manager.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-manager.yml b/.github/workflows/build-manager.yml index 2be3b2606c6a..287400b70954 100644 --- a/.github/workflows/build-manager.yml +++ b/.github/workflows/build-manager.yml @@ -30,6 +30,7 @@ on: - 'userspace/**' - 'scripts/ksubot.py' workflow_call: + workflow_dispatch: jobs: generate-key: @@ -148,7 +149,7 @@ jobs: fetch-depth: 0 - name: Write key - if: ${{ ( github.event_name != 'pull_request' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev' )) || github.ref_type == 'tag' }} + if: ${{ github.event_name != 'pull_request' || github.ref_type == 'tag' }} run: | if [ ! -z "${{ secrets.KEYSTORE }}" ]; then { @@ -223,7 +224,7 @@ jobs: - name: Setup need_upload id: need_upload run: | - if [ ! -z "${{ secrets.BOT_TOKEN }}" ]; then + if [ ! -z "${{ secrets.BOT_TOKEN }}" ] && [ "${{ github.event_name }}" != "workflow_dispatch" ]; then echo "UPLOAD=true" >> $GITHUB_OUTPUT else echo "UPLOAD=false" >> $GITHUB_OUTPUT From fbb9330d7da1643e51c42145ba548f52cde793e1 Mon Sep 17 00:00:00 2001 From: 5ec1cff Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 09/35] CONFIG_KSU=m --- kernel/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/Makefile b/kernel/Makefile index 068476e00ce0..9ffda5673506 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -7,7 +7,7 @@ $(info -- MDIR: $(MDIR)) .PHONY: all compdb clean format check-format all: check_symbol - make -C $(KDIR) M=$(MDIR) modules -j$(shell nproc) + CONFIG_KSU=m make -C $(KDIR) M=$(MDIR) modules -j$(shell nproc) ./check_symbol kernelsu.ko $(KDIR)/vmlinux compdb: From 80b6ce4f24029c9a4f499dfc838af259587adb9b Mon Sep 17 00:00:00 2001 From: 5ec1cff Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 10/35] ci: trigger rebuild if README.md changed --- .github/workflows/build-manager.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-manager.yml b/.github/workflows/build-manager.yml index 287400b70954..4fda49c4189a 100644 --- a/.github/workflows/build-manager.yml +++ b/.github/workflows/build-manager.yml @@ -4,6 +4,7 @@ on: push: branches: [ "main", "dev", "ci" ] paths: + - 'README.md' - '.github/workflows/build-manager.yml' - '.github/workflows/build-lkm.yml' - '.github/workflows/ddk-lkm.yml' From 9d028009003241b08b4c9c43898b326c0ff2c95c Mon Sep 17 00:00:00 2001 From: KOWX712 Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 11/35] manager: keep api 29 support --- manager/app/src/main/AndroidManifest.xml | 11 +++++++++++ .../rebootlistpopup/RebootListPopup.kt | 4 +++- .../colorpalette/ColorPaletteScreenMaterial.kt | 17 +++++++++++++++-- .../weishu/kernelsu/ui/theme/MaterialTheme.kt | 12 ++++++++++-- manager/build.gradle.kts | 2 +- 5 files changed, 40 insertions(+), 6 deletions(-) diff --git a/manager/app/src/main/AndroidManifest.xml b/manager/app/src/main/AndroidManifest.xml index 5d1fca43f548..2ee50e8bc95c 100644 --- a/manager/app/src/main/AndroidManifest.xml +++ b/manager/app/src/main/AndroidManifest.xml @@ -4,6 +4,17 @@ + + + diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/component/rebootlistpopup/RebootListPopup.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/component/rebootlistpopup/RebootListPopup.kt index 330215029cbe..91b3552661ab 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/component/rebootlistpopup/RebootListPopup.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/component/rebootlistpopup/RebootListPopup.kt @@ -1,6 +1,7 @@ package me.weishu.kernelsu.ui.component.rebootlistpopup import android.content.Context +import android.os.Build import android.os.PowerManager import androidx.annotation.StringRes import androidx.compose.runtime.Composable @@ -19,7 +20,8 @@ fun getRebootListOption(): List { val pm = LocalContext.current.getSystemService(Context.POWER_SERVICE) as PowerManager? @Suppress("DEPRECATION") - val isRebootingUserspaceSupported = pm?.isRebootingUserspaceSupported == true + val isRebootingUserspaceSupported = + Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && pm?.isRebootingUserspaceSupported == true return buildList { add(RebootListOption(R.string.reboot, "")) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMaterial.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMaterial.kt index 81d292a271e8..34fa44e8860c 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMaterial.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMaterial.kt @@ -64,8 +64,10 @@ import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.material3.ToggleButton import androidx.compose.material3.TopAppBarDefaults +import androidx.compose.material3.darkColorScheme import androidx.compose.material3.dynamicDarkColorScheme import androidx.compose.material3.dynamicLightColorScheme +import androidx.compose.material3.expressiveLightColorScheme import androidx.compose.material3.rememberTopAppBarState import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -357,7 +359,12 @@ private fun ThemePreviewCard( val dynamicColor = keyColor == 0 val colorScheme = if (dynamicColor) { - val baseScheme = if (isDark) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + val baseScheme = when { + Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> + if (isDark) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + else -> + if (isDark) darkColorScheme() else expressiveLightColorScheme() + } rememberDynamicColorScheme( seedColor = Color.Unspecified, isDark = isDark, @@ -480,6 +487,7 @@ private fun ThemePreviewCard( } } +@OptIn(ExperimentalMaterial3ExpressiveApi::class) @Composable private fun ColorButtonMaterial( color: Color, @@ -492,7 +500,12 @@ private fun ColorButtonMaterial( val context = LocalContext.current val haptic = LocalHapticFeedback.current val colorScheme = if (color == Color.Unspecified) { - val baseScheme = if (isDark) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + val baseScheme = when { + Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> + if (isDark) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + else -> + if (isDark) darkColorScheme() else expressiveLightColorScheme() + } rememberDynamicColorScheme( seedColor = Color.Unspecified, isDark = isDark, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/theme/MaterialTheme.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/theme/MaterialTheme.kt index e40bb32266f4..1e0ab21655ff 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/theme/MaterialTheme.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/theme/MaterialTheme.kt @@ -1,12 +1,15 @@ package me.weishu.kernelsu.ui.theme import android.app.Activity +import android.os.Build import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.material3.MaterialExpressiveTheme import androidx.compose.material3.MotionScheme +import androidx.compose.material3.darkColorScheme import androidx.compose.material3.dynamicDarkColorScheme import androidx.compose.material3.dynamicLightColorScheme +import androidx.compose.material3.expressiveLightColorScheme import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.graphics.Color @@ -30,9 +33,14 @@ fun MaterialKernelSUTheme( val colorSpec = appSettings.colorSpec val colorScheme = if (dynamicColor) { - val baseScheme = if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + val baseScheme = when { + Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> + if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + else -> + if (darkTheme) darkColorScheme() else expressiveLightColorScheme() + } rememberDynamicColorScheme( - seedColor = Color.Unspecified, + seedColor = baseScheme.primary, isDark = darkTheme, isAmoled = amoledMode, style = colorStyle, diff --git a/manager/build.gradle.kts b/manager/build.gradle.kts index 5fe66cec533d..ada71384c1ab 100644 --- a/manager/build.gradle.kts +++ b/manager/build.gradle.kts @@ -4,7 +4,7 @@ plugins { alias(libs.plugins.compose.compiler) apply false } -val androidMinSdkVersion by extra(31) +val androidMinSdkVersion by extra(29) val androidTargetSdkVersion by extra(37) val androidCompileSdkVersion by extra(37) val androidCompileSdkVersionMinor by extra(0) From 14efbe0b49ee40b17602921ad50a91b384d216cc Mon Sep 17 00:00:00 2001 From: KOWX712 Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 12/35] Partially revert "manager: Improve RTL support" Partially revert 2f150e77e9035b87f289d270e29b52063c068cfc for some translation that we still need to use Signed-off-by: KOWX712 --- manager/app/src/main/res/values-ar/strings.xml | 2 ++ manager/app/src/main/res/values-az/strings.xml | 2 ++ manager/app/src/main/res/values-bg/strings.xml | 2 ++ manager/app/src/main/res/values-bn-rBD/strings.xml | 2 ++ manager/app/src/main/res/values-bn/strings.xml | 2 ++ manager/app/src/main/res/values-bs/strings.xml | 2 ++ manager/app/src/main/res/values-da/strings.xml | 2 ++ manager/app/src/main/res/values-de/strings.xml | 2 ++ manager/app/src/main/res/values-es/strings.xml | 2 ++ manager/app/src/main/res/values-et/strings.xml | 2 ++ manager/app/src/main/res/values-fa/strings.xml | 2 ++ manager/app/src/main/res/values-fil/strings.xml | 2 ++ manager/app/src/main/res/values-fr/strings.xml | 2 ++ manager/app/src/main/res/values-hi/strings.xml | 2 ++ manager/app/src/main/res/values-hr/strings.xml | 2 ++ manager/app/src/main/res/values-hu/strings.xml | 2 ++ manager/app/src/main/res/values-in/strings.xml | 2 ++ manager/app/src/main/res/values-it/strings.xml | 2 ++ manager/app/src/main/res/values-iw/strings.xml | 2 ++ manager/app/src/main/res/values-ja/strings.xml | 2 ++ manager/app/src/main/res/values-kn/strings.xml | 2 ++ manager/app/src/main/res/values-ko/strings.xml | 2 ++ manager/app/src/main/res/values-lt/strings.xml | 2 ++ manager/app/src/main/res/values-lv/strings.xml | 2 ++ manager/app/src/main/res/values-mr/strings.xml | 2 ++ manager/app/src/main/res/values-ms/strings.xml | 2 ++ manager/app/src/main/res/values-nl/strings.xml | 2 ++ manager/app/src/main/res/values-pl/strings.xml | 2 ++ manager/app/src/main/res/values-pt-rBR/strings.xml | 2 ++ manager/app/src/main/res/values-pt/strings.xml | 2 ++ manager/app/src/main/res/values-ro/strings.xml | 2 ++ manager/app/src/main/res/values-ru/strings.xml | 2 ++ manager/app/src/main/res/values-sl/strings.xml | 2 ++ manager/app/src/main/res/values-sr/strings.xml | 2 ++ manager/app/src/main/res/values-te/strings.xml | 2 ++ manager/app/src/main/res/values-th/strings.xml | 2 ++ manager/app/src/main/res/values-tr/strings.xml | 2 ++ manager/app/src/main/res/values-uk/strings.xml | 2 ++ manager/app/src/main/res/values-vi/strings.xml | 2 ++ manager/app/src/main/res/values-zh-rCN/strings.xml | 2 ++ manager/app/src/main/res/values-zh-rHK/strings.xml | 2 ++ manager/app/src/main/res/values-zh-rTW/strings.xml | 2 ++ manager/app/src/main/res/values/strings.xml | 2 ++ 43 files changed, 86 insertions(+) diff --git a/manager/app/src/main/res/values-ar/strings.xml b/manager/app/src/main/res/values-ar/strings.xml index e7bbac3ee577..fd0e3ea9e345 100644 --- a/manager/app/src/main/res/values-ar/strings.xml +++ b/manager/app/src/main/res/values-ar/strings.xml @@ -5,6 +5,8 @@ إضغط للتثبيت يعمل الإصدار: %d + مستخدمين الجذر: %d + الإضافات: %d غير مدعوم KernelSU يدعم GKI kernels فقط إصدار النواة diff --git a/manager/app/src/main/res/values-az/strings.xml b/manager/app/src/main/res/values-az/strings.xml index d6469a6f37c2..4a83e4489da6 100644 --- a/manager/app/src/main/res/values-az/strings.xml +++ b/manager/app/src/main/res/values-az/strings.xml @@ -1,11 +1,13 @@ Ana səhifə + Super istifadəçilər: %d Nüvə Yüklənmədi Yükləmək üçün toxunun İşləyir Versiya: %d + Modullar: %d Hal-hazırda KernelSU yalnız GKI nüvələrini dəstəkləyir Dəstəklənmir Yüklə diff --git a/manager/app/src/main/res/values-bg/strings.xml b/manager/app/src/main/res/values-bg/strings.xml index 9ecc56c6c69c..1954b25eb4fb 100644 --- a/manager/app/src/main/res/values-bg/strings.xml +++ b/manager/app/src/main/res/values-bg/strings.xml @@ -5,6 +5,8 @@ Натиснете да инсталирате Работи Версия: %d + Суперпотребители: %d + Модули: %d Неподдържано KernelSU само поддържа GKI кернели за сега. Версия на кернела diff --git a/manager/app/src/main/res/values-bn-rBD/strings.xml b/manager/app/src/main/res/values-bn-rBD/strings.xml index 21416a1db4b8..409ba348fa31 100644 --- a/manager/app/src/main/res/values-bn-rBD/strings.xml +++ b/manager/app/src/main/res/values-bn-rBD/strings.xml @@ -6,6 +6,7 @@ মোডিউল ইনেবল করা যায়নি: %s ইন্সটল করটে চাপুন কাজ করছে + মোডিউল: %d অমূলক কর্নেল ম্যানেজার ভারসন @@ -31,6 +32,7 @@ মোডিউল ডিসেবল করা যায়নি: %s কোনো মোডিউল ইন্সটল করা নেই সংস্করণ: %d + সুপার ইউজার: %d নেইম স্পেস মাউন্ট ইনহেরিটেড ইন্ডিভিজুয়াল diff --git a/manager/app/src/main/res/values-bn/strings.xml b/manager/app/src/main/res/values-bn/strings.xml index 50d91ca4cb0c..f4e86d0c0ba1 100644 --- a/manager/app/src/main/res/values-bn/strings.xml +++ b/manager/app/src/main/res/values-bn/strings.xml @@ -5,6 +5,8 @@ ইনস্টল করার জন্য ক্লিক করুন ওয়ার্কিং ওয়ার্কিং সংস্করণ: %d + সুপার ইউজার: %d + মডিউল: %d অসমর্থিত KernelSU শুধুমাত্র GKI কার্নেল সমর্থন করে কার্নেল সংস্করণ diff --git a/manager/app/src/main/res/values-bs/strings.xml b/manager/app/src/main/res/values-bs/strings.xml index 0f47c42f67f4..23163d44719e 100644 --- a/manager/app/src/main/res/values-bs/strings.xml +++ b/manager/app/src/main/res/values-bs/strings.xml @@ -24,6 +24,8 @@ Početna Nije instalirano Kliknite da instalirate + Superkorisnici: %d + Module: %d Nepodržano KernelSU samo podržava GKI kernele sad Verzija Upravitelja diff --git a/manager/app/src/main/res/values-da/strings.xml b/manager/app/src/main/res/values-da/strings.xml index bb386fe9ad8c..732cba3e4de4 100644 --- a/manager/app/src/main/res/values-da/strings.xml +++ b/manager/app/src/main/res/values-da/strings.xml @@ -1,6 +1,7 @@ Arbejder + Moduler: %d Ikke understøttet Kernel-version KernelSU understøtter nu kun GKI-kerner. @@ -53,6 +54,7 @@ Version: %d Hjem Ikke installeret + Superbrugere: %d Fingeraftryk Ukendt Aktivering af modul fejlede: %s diff --git a/manager/app/src/main/res/values-de/strings.xml b/manager/app/src/main/res/values-de/strings.xml index 9451397bf084..e81bc2d2c7d1 100644 --- a/manager/app/src/main/res/values-de/strings.xml +++ b/manager/app/src/main/res/values-de/strings.xml @@ -7,6 +7,7 @@ Version: %d Superuser Tippe zum Installieren + Superuser: %d Unbekannt Erzwingen In den Bootloader-Modus neustarten @@ -39,6 +40,7 @@ Neue Version %s verfügbar, tippen zum Aktualisieren! Stopp erzwingen Neustarten + Module: %d Manager-Version SELinux Status Deaktiviert diff --git a/manager/app/src/main/res/values-es/strings.xml b/manager/app/src/main/res/values-es/strings.xml index 048f3733b5af..c5b767639660 100644 --- a/manager/app/src/main/res/values-es/strings.xml +++ b/manager/app/src/main/res/values-es/strings.xml @@ -5,6 +5,8 @@ Haz clic para instalar Funcionando Versión: %d + Superusuarios: %d + Módulos: %d Sin soporte KernelSU solo admite kernels GKI por ahora Versión del kernel diff --git a/manager/app/src/main/res/values-et/strings.xml b/manager/app/src/main/res/values-et/strings.xml index 294a68ea871a..66bf1e3ad52c 100644 --- a/manager/app/src/main/res/values-et/strings.xml +++ b/manager/app/src/main/res/values-et/strings.xml @@ -2,6 +2,7 @@ Töötamine Versioon: %d + Mooduleid: %d Tuum Manageri versioon Sõrmejälg @@ -33,6 +34,7 @@ Klõpsa paigaldamiseks Pole paigaldatud Mittetoetatud + Superkasutajaid: %d KernelSU toetab hetkel vaid GSI tuumasid SELinuxi olek Keelatud diff --git a/manager/app/src/main/res/values-fa/strings.xml b/manager/app/src/main/res/values-fa/strings.xml index 8000037eb778..f54fa5e5ab41 100644 --- a/manager/app/src/main/res/values-fa/strings.xml +++ b/manager/app/src/main/res/values-fa/strings.xml @@ -5,6 +5,8 @@ برای نصب ضربه بزنید به درستی کار می‌کند نسخه: %d + برنامه های با دسترسی روت: %d + ماژول‌ها: %d پشتیبانی نشده کرنل اس یو فقط هسته های gki را پشتیبانی میکند هسته diff --git a/manager/app/src/main/res/values-fil/strings.xml b/manager/app/src/main/res/values-fil/strings.xml index 22d911c0a642..f84912fd973e 100644 --- a/manager/app/src/main/res/values-fil/strings.xml +++ b/manager/app/src/main/res/values-fil/strings.xml @@ -10,6 +10,7 @@ Gumagana Bersyon: %d Hindi matukoy + Mga Modyul: %d Hindi Suportado Sinusuportahan lamang ng KernelSU ang mga GKI na kernel. Nabigong paganahin ang module: %s @@ -63,6 +64,7 @@ Minana Ang pangkalahatang default na halaga para sa \"Umount modules\" sa Mga Profile ng App. Kung pinagana, aalisin nito ang lahat ng mga pagbabago sa modyul sa system para sa mga aplikasyon na walang hanay ng Profile. I-save ang mga Log + Mga Superuser: %d Bersyon ng kernel Fingerprint Superuser diff --git a/manager/app/src/main/res/values-fr/strings.xml b/manager/app/src/main/res/values-fr/strings.xml index 74c33b45e84c..f1ba81a07dfb 100644 --- a/manager/app/src/main/res/values-fr/strings.xml +++ b/manager/app/src/main/res/values-fr/strings.xml @@ -3,6 +3,8 @@ Non installé Fonctionnel Version : %d + Super-utilisateurs : %d + Modules : %d KernelSU prend désormais en charge seulement les noyaux GKI, mais vous pouvez patcher l\'image pour les appareils GKI. Version du noyau Empreinte diff --git a/manager/app/src/main/res/values-hi/strings.xml b/manager/app/src/main/res/values-hi/strings.xml index d8e0db9657ef..231d6f289435 100644 --- a/manager/app/src/main/res/values-hi/strings.xml +++ b/manager/app/src/main/res/values-hi/strings.xml @@ -22,9 +22,11 @@ EDL मोड में रिबूट करें फिर से चालू करें क्षमताएं + सुपरयूजर : %d %s की डाउनलोडिंग स्टार्ट करें Global ऐप प्रोफाइल में \"अनमाउंट मॉड्यूल\" के लिए ग्लोबल डिफ़ॉल्ट वैल्यू। यदि चालू किया गया है, तो यह एप्लीकेशंस के लिऐ सिस्टम के सभी मॉड्यूल मोडिफिकेशन को हटा देगा जिनकी प्रोफ़ाइल सेट नहीं है। + मॉड्यूल्स : %d एनफोर्सिंग SELinux context फिंगरप्रिंट diff --git a/manager/app/src/main/res/values-hr/strings.xml b/manager/app/src/main/res/values-hr/strings.xml index bd6da57bb9ab..46578d539f29 100644 --- a/manager/app/src/main/res/values-hr/strings.xml +++ b/manager/app/src/main/res/values-hr/strings.xml @@ -10,6 +10,8 @@ Verzija: %d Kliknite da instalirate Radi + Superkorisnici: %d + Moduli: %d Nepodržano KernelSU sada samo podržava GKI kernele. Verzija kernela diff --git a/manager/app/src/main/res/values-hu/strings.xml b/manager/app/src/main/res/values-hu/strings.xml index b25111cb5ba4..08f1cd0717ea 100644 --- a/manager/app/src/main/res/values-hu/strings.xml +++ b/manager/app/src/main/res/values-hu/strings.xml @@ -2,6 +2,7 @@ Működik Verzió: %d + Modulok: %d A KernelSU jelenleg csak GKI kerneleket támogat Kernel Alkalmazás verziója @@ -45,6 +46,7 @@ Csatlakozzon a %2$s csatornánkhoz Kezdőlap Nincs telepítve Kattintson a telepítéshez + Engedélyezett alkalmazások: %d Nem támogatott SELinux állapot Kényszerített diff --git a/manager/app/src/main/res/values-in/strings.xml b/manager/app/src/main/res/values-in/strings.xml index 968d8b09b40b..68736e8a7cda 100644 --- a/manager/app/src/main/res/values-in/strings.xml +++ b/manager/app/src/main/res/values-in/strings.xml @@ -5,6 +5,8 @@ Ketuk untuk memasang Berfungsi Versi: %d + Superuser: %d + Modul: %d Tidak didukung KernelSU sekarang hanya mendukung kernel GKI, tetapi Anda dapat menambal image untuk perangkat GKI. Versi kernel diff --git a/manager/app/src/main/res/values-it/strings.xml b/manager/app/src/main/res/values-it/strings.xml index 53f9a5819204..02fb380857f6 100644 --- a/manager/app/src/main/res/values-it/strings.xml +++ b/manager/app/src/main/res/values-it/strings.xml @@ -5,6 +5,8 @@ Clicca per installare In esecuzione Versione: %d + Applicazioni con accesso root: %d + Moduli installati: %d Non supportato KernelSU ora supporta solo i kernel GKI Kernel diff --git a/manager/app/src/main/res/values-iw/strings.xml b/manager/app/src/main/res/values-iw/strings.xml index b64a08016faf..8f6e4e65d776 100644 --- a/manager/app/src/main/res/values-iw/strings.xml +++ b/manager/app/src/main/res/values-iw/strings.xml @@ -22,9 +22,11 @@ הפעלה מחדש למצב EDL איתחול יכולת + משתמשי על: %d מפעיל מודל: %s גלובלי ערך ברירת המחדל הגלובלי עבור \"טעינת מודולים\" בפרופילי אפליקציה. אם מופעל, זה יסיר את כל שינויי המודול למערכת עבור יישומים שאין להם ערכת פרופיל. + מודלים:%d אכיפה הקשר SELinux טביעת אצבע diff --git a/manager/app/src/main/res/values-ja/strings.xml b/manager/app/src/main/res/values-ja/strings.xml index 0ea2348d116b..44d57809b540 100644 --- a/manager/app/src/main/res/values-ja/strings.xml +++ b/manager/app/src/main/res/values-ja/strings.xml @@ -5,6 +5,8 @@ タップしてインストール 動作中 バージョン: %d + スーパーユーザー: %d + モジュール: %d 非対応 KernelSU は現在 GKI カーネルのみをサポートしています。ただし、GKI デバイス向けにイメージにパッチを適用することは可能です。 カーネル diff --git a/manager/app/src/main/res/values-kn/strings.xml b/manager/app/src/main/res/values-kn/strings.xml index db651c171fbe..dbf65531f1bd 100644 --- a/manager/app/src/main/res/values-kn/strings.xml +++ b/manager/app/src/main/res/values-kn/strings.xml @@ -19,9 +19,11 @@ ಫೋರ್ಸ್ ಸ್ಟಾಪ್ EDL ಗೆ ರೀಬೂಟ್ ಸಾಮರ್ಥ್ಯಗಳು + ಸೂಪರ್‌ಯೂಸರ್‌ಗಳು: %d ಡೌನ್‌ಲೋಡ್ ಮಾಡುವುದನ್ನು ಪ್ರಾರಂಭಿಸಿ: %s ಜಾಗತಿಕ ಅಪ್ಲಿಕೇಶನ್ ಪ್ರೊಫೈಲ್‌ಗಳಲ್ಲಿ \"Umount ಮಾಡ್ಯೂಲ್\" ಗಾಗಿ ಜಾಗತಿಕ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯ. ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಪ್ರೊಫೈಲ್ ಸೆಟ್ ಅನ್ನು ಹೊಂದಿರದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗಾಗಿ ಸಿಸ್ಟಮ್‌ಗೆ ಎಲ್ಲಾ ಮಾಡ್ಯೂಲ್ ಮಾರ್ಪಾಡುಗಳನ್ನು ಇದು ತೆಗೆದುಹಾಕುತ್ತದೆ. + ಮಾಡ್ಯೂಲ್‌ಗಳು: %d SELinux ಸಂದರ್ಭ ಡೀಫಾಲ್ಟ್ ಲಾಂಚ್ diff --git a/manager/app/src/main/res/values-ko/strings.xml b/manager/app/src/main/res/values-ko/strings.xml index 48f7e177714f..da70294534b9 100644 --- a/manager/app/src/main/res/values-ko/strings.xml +++ b/manager/app/src/main/res/values-ko/strings.xml @@ -5,6 +5,8 @@ 이 곳을 눌러 설치하기 작동 중 버전: %d + 슈퍼유저: %d개 + 모듈: %d개 지원되지 않음 KernelSU는 현재 GKI 커널만 지원합니다. 커널 버전 diff --git a/manager/app/src/main/res/values-lt/strings.xml b/manager/app/src/main/res/values-lt/strings.xml index 15a2e8d937ab..d9fb6ddcafd8 100644 --- a/manager/app/src/main/res/values-lt/strings.xml +++ b/manager/app/src/main/res/values-lt/strings.xml @@ -58,8 +58,10 @@ KernelSU dabar palaiko tik GKI branduolius Spustelėkite norėdami įdiegti Veikia + Supernaudotojai: %d Versija: %d Nepalaikoma + Moduliai: %d Tvarkyklės versija Branduolys SELinux statusas diff --git a/manager/app/src/main/res/values-lv/strings.xml b/manager/app/src/main/res/values-lv/strings.xml index 6eeb688413d9..bc04972d74a0 100644 --- a/manager/app/src/main/res/values-lv/strings.xml +++ b/manager/app/src/main/res/values-lv/strings.xml @@ -13,6 +13,8 @@ Noklikšķiniet, lai uzstādītu Darbojas Versija: %d + Superlietotāji: %d + Moduļi: %d Neatbalstīts KernelSU pagaidām atbalsta tikai GKI kodolus Kodols diff --git a/manager/app/src/main/res/values-mr/strings.xml b/manager/app/src/main/res/values-mr/strings.xml index b1d37a5f91bb..651e710f810e 100644 --- a/manager/app/src/main/res/values-mr/strings.xml +++ b/manager/app/src/main/res/values-mr/strings.xml @@ -5,6 +5,8 @@ इंस्टॉल साठी क्लिक करा कार्यरत आवृत्ती: %d + मॉड्यूल्स: %d + सुपरयूझर: %d असमर्थित KernelSU आता फक्त GKI कर्नलचे समर्थन करते कर्नल diff --git a/manager/app/src/main/res/values-ms/strings.xml b/manager/app/src/main/res/values-ms/strings.xml index a2834bbd0b74..418d60d8a359 100644 --- a/manager/app/src/main/res/values-ms/strings.xml +++ b/manager/app/src/main/res/values-ms/strings.xml @@ -6,6 +6,8 @@ Reboot ke Download Modul tidak berjaya diaktifkan: %s Reboot ke EDL + Superusers: %d + Modul: %d Enforcing Cap Jari Reboot ke Recovery diff --git a/manager/app/src/main/res/values-nl/strings.xml b/manager/app/src/main/res/values-nl/strings.xml index 6797165e43dc..59a8f72034e1 100644 --- a/manager/app/src/main/res/values-nl/strings.xml +++ b/manager/app/src/main/res/values-nl/strings.xml @@ -5,6 +5,8 @@ Tik om te installeren Werkend Versie: %d + Supergebruikers: %d + Modules: %d Niet ondersteund KernelSU ondersteunt momenteel alleen GKI-kernels, maar je kunt de image patchen voor GKI-apparaten. Kernel version diff --git a/manager/app/src/main/res/values-pl/strings.xml b/manager/app/src/main/res/values-pl/strings.xml index 955d25900674..c3bfa054bac4 100644 --- a/manager/app/src/main/res/values-pl/strings.xml +++ b/manager/app/src/main/res/values-pl/strings.xml @@ -6,6 +6,8 @@ Kliknij, aby zainstalować Działa Wersja: %d + Superużytkownicy: %d + Moduły: %d Nieobsługiwany KernelSU obsługuje obecnie tylko jądra GKI. Wersja jądra diff --git a/manager/app/src/main/res/values-pt-rBR/strings.xml b/manager/app/src/main/res/values-pt-rBR/strings.xml index f0d3b21f9829..1b88f049b18a 100644 --- a/manager/app/src/main/res/values-pt-rBR/strings.xml +++ b/manager/app/src/main/res/values-pt-rBR/strings.xml @@ -5,6 +5,8 @@ Clique para instalar Em execução Versão: %d + SuperUsuários: %d + Módulos: %d Sem suporte KernelSU suporta apenas kernels GKI agora Versão do kernel diff --git a/manager/app/src/main/res/values-pt/strings.xml b/manager/app/src/main/res/values-pt/strings.xml index 8fe87b18415f..6be35525ac08 100644 --- a/manager/app/src/main/res/values-pt/strings.xml +++ b/manager/app/src/main/res/values-pt/strings.xml @@ -4,6 +4,8 @@ Início Clique para instalar Funcionando + Super Usuário: %d + Módulos: %d Versão: %d Kernel Instalar diff --git a/manager/app/src/main/res/values-ro/strings.xml b/manager/app/src/main/res/values-ro/strings.xml index f0f0a1553078..f3e0381a98ec 100644 --- a/manager/app/src/main/res/values-ro/strings.xml +++ b/manager/app/src/main/res/values-ro/strings.xml @@ -5,6 +5,8 @@ Click pentru a instala Funcționează Versiune: %d + Super-utilizatori: %d + Module: %d Necompatibil KernelSU suportă doar nuclee GKI acum Nucleu diff --git a/manager/app/src/main/res/values-ru/strings.xml b/manager/app/src/main/res/values-ru/strings.xml index 9d15cbf3cee7..a87b2444f000 100644 --- a/manager/app/src/main/res/values-ru/strings.xml +++ b/manager/app/src/main/res/values-ru/strings.xml @@ -5,7 +5,9 @@ Нажмите, чтобы установить Работает Версия: %d + Суперюзеры: %d + Модули: %d Не поддерживается Теперь KernelSU поддерживает только ядра GKI, однако вы всё ещё можете пропатчить образ для GKI-устройств. Версия ядра diff --git a/manager/app/src/main/res/values-sl/strings.xml b/manager/app/src/main/res/values-sl/strings.xml index 12ed20d393be..361b423c0470 100644 --- a/manager/app/src/main/res/values-sl/strings.xml +++ b/manager/app/src/main/res/values-sl/strings.xml @@ -3,6 +3,7 @@ Klikni za namestitev V obdelavi Verzija: %d + Superuporabniki: %d KernelSU podpira samo GKI kernele Kernel Verzija upravitelja @@ -45,6 +46,7 @@ Dnevnik sprememb Predloga za aplikacijski profil Domov + Moduli: %d Ne podpira SuperUporabnik Napaka pri omogočanju modula: %s diff --git a/manager/app/src/main/res/values-sr/strings.xml b/manager/app/src/main/res/values-sr/strings.xml index 05693945d20d..0ed3db73ec6f 100644 --- a/manager/app/src/main/res/values-sr/strings.xml +++ b/manager/app/src/main/res/values-sr/strings.xml @@ -1,5 +1,7 @@ + Superkorisnici + Moduli: %d Додирните да бисте инсталирали Почетна Није инсталирано diff --git a/manager/app/src/main/res/values-te/strings.xml b/manager/app/src/main/res/values-te/strings.xml index 515cb6257146..24cdd12359d6 100644 --- a/manager/app/src/main/res/values-te/strings.xml +++ b/manager/app/src/main/res/values-te/strings.xml @@ -15,6 +15,8 @@ ఇన్‌స్టాల్ చేయడానికి క్లిక్ చేయండి పని చేస్తోంది వెర్షన్: %d + సూపర్‌యూజర్‌లు: %d + మాడ్యూల్స్: %d లాగ్‌లు సేవ్ చేయండి su బైనరీని మళ్ళించండి యాప్ ప్రొఫైల్‌లో సూపర్‌యూజర్ అనుమతి ఉన్న యాప్‌ల కోసం /system/bin/su ని ksud కి మళ్ళించండి; కొత్త ప్రాసెస్‌లకు మాత్రమే పని చేస్తుంది. diff --git a/manager/app/src/main/res/values-th/strings.xml b/manager/app/src/main/res/values-th/strings.xml index 2231943a0aae..1568603ad28f 100644 --- a/manager/app/src/main/res/values-th/strings.xml +++ b/manager/app/src/main/res/values-th/strings.xml @@ -6,6 +6,8 @@ กำลังทำงาน เวอร์ชัน: %d เวอร์ชันตัวจัดการ + สิทธิ์ผู้ใช้ขั้นสูง: %d + โมดูล: %d ไม่รองรับ Enforcing รีบูตเข้าสู่โหมดกู้คืน diff --git a/manager/app/src/main/res/values-tr/strings.xml b/manager/app/src/main/res/values-tr/strings.xml index 93860d457783..a7633719ce8d 100644 --- a/manager/app/src/main/res/values-tr/strings.xml +++ b/manager/app/src/main/res/values-tr/strings.xml @@ -6,6 +6,8 @@ Yüklemek için dokunun Çalışıyor Sürüm: %d + Süper kullanıcılar: %d + Modüller: %d Desteklenmiyor KernelSU şimdilik sadece GKI çekirdeklerini destekliyor Çekirdek Versiyonu diff --git a/manager/app/src/main/res/values-uk/strings.xml b/manager/app/src/main/res/values-uk/strings.xml index 02c20b14a692..12f97d370ca5 100644 --- a/manager/app/src/main/res/values-uk/strings.xml +++ b/manager/app/src/main/res/values-uk/strings.xml @@ -5,6 +5,8 @@ Натисніть щоб встановити Працює Версія: %d + Суперкористувачі: %d + Модулі: %d Не підтримується KernelSU зараз підтримує лише ядра GKI. Версія ядра diff --git a/manager/app/src/main/res/values-vi/strings.xml b/manager/app/src/main/res/values-vi/strings.xml index 428452d8f4fa..ce743bb5f029 100644 --- a/manager/app/src/main/res/values-vi/strings.xml +++ b/manager/app/src/main/res/values-vi/strings.xml @@ -61,6 +61,8 @@ Chế độ An toàn Khởi động lại để có hiệu lực https://kernelsu.org/guide/what-is-kernelsu.html + Superusers: %d + Modules: %d Tên miền Quy tắc Khởi chạy diff --git a/manager/app/src/main/res/values-zh-rCN/strings.xml b/manager/app/src/main/res/values-zh-rCN/strings.xml index 173295fdfe15..b36f0a74cffd 100644 --- a/manager/app/src/main/res/values-zh-rCN/strings.xml +++ b/manager/app/src/main/res/values-zh-rCN/strings.xml @@ -5,6 +5,7 @@ 点击安装 工作中 版本:%d + 超级用户数:%d 不支持 KernelSU 现在只支持 GKI 内核,但是你可以为 GKI 设备补丁镜像。 管理器版本 (%1$d) 与 KernelSU 驱动版本 (%2$d) 不匹配。 @@ -59,6 +60,7 @@ 处于安全模式下,禁止安装模块 重启生效 因与 Magisk 有冲突,所有模块不可用! + 模块数:%d 了解 KernelSU https://kernelsu.org/zh_CN/guide/what-is-kernelsu.html 了解如何安装 KernelSU 以及如何开发模块 diff --git a/manager/app/src/main/res/values-zh-rHK/strings.xml b/manager/app/src/main/res/values-zh-rHK/strings.xml index 56db2fb7528a..a036225d72d2 100644 --- a/manager/app/src/main/res/values-zh-rHK/strings.xml +++ b/manager/app/src/main/res/values-zh-rHK/strings.xml @@ -5,6 +5,8 @@ 按一下開始安裝 運作中 KernelSU 版本:%d + 超級使用者:%d 個 + 已安裝模組:%d 個 不支援 KernelSU 現僅支援 GKI 核心,但仍可修補 GKI 裝置映像。 核心版本 diff --git a/manager/app/src/main/res/values-zh-rTW/strings.xml b/manager/app/src/main/res/values-zh-rTW/strings.xml index 38c23c8af6b8..a6b1e0fffe08 100644 --- a/manager/app/src/main/res/values-zh-rTW/strings.xml +++ b/manager/app/src/main/res/values-zh-rTW/strings.xml @@ -5,6 +5,7 @@ 點選開始安裝 已開始運作 版本:%d + 授權:%d 個應用程式 未受支援 KernelSU 目前僅支援 GKI 核心 核心版本 @@ -41,6 +42,7 @@ 安全模式 將在重新啟動時生效 與 Magisk 發生衝突,無法使用模組功能! + 掛載:%d 個模組 深入瞭解 KernelSU https://kernelsu.org/zh_TW/guide/what-is-kernelsu.html 知曉安裝、使用 KernelSU 本體與其模組功能的方法 diff --git a/manager/app/src/main/res/values/strings.xml b/manager/app/src/main/res/values/strings.xml index a0cf291d7d97..de4cd27f3239 100644 --- a/manager/app/src/main/res/values/strings.xml +++ b/manager/app/src/main/res/values/strings.xml @@ -6,6 +6,8 @@ Tap to install Working Version: %d + Superusers: %d + Modules: %d Unsupported KernelSU only supports GKI kernels now, but you can patch the image for GKI devices. Manager version (%1$d) and KernelSU driver version (%2$d) mismatch. From 8cd2983a65a464da50cdf0c84d820df247c42a28 Mon Sep 17 00:00:00 2001 From: KOWX712 Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 13/35] personal --- .github/workflows/build-manager.yml | 18 +- build.sh | 241 ++++++++++++++++++ kernel/Kbuild | 4 +- kernel/setup.sh | 2 +- manager/app/build.gradle.kts | 3 +- .../main/java/me/weishu/kernelsu/Natives.kt | 2 +- .../kernelsu/ui/screen/about/AboutScreen.kt | 4 +- .../kernelsu/ui/screen/home/HomeMaterial.kt | 6 +- .../kernelsu/ui/screen/home/HomeMiuix.kt | 6 +- .../ui/screen/settings/SettingsMaterial.kt | 18 +- .../ui/screen/settings/SettingsMiuix.kt | 28 +- .../app/src/main/res/values-pl/strings.xml | 1 - .../app/src/main/res/values-tr/strings.xml | 1 - userspace/ksud/src/cli.rs | 6 +- 14 files changed, 290 insertions(+), 50 deletions(-) create mode 100644 build.sh diff --git a/.github/workflows/build-manager.yml b/.github/workflows/build-manager.yml index 4fda49c4189a..080628aeef03 100644 --- a/.github/workflows/build-manager.yml +++ b/.github/workflows/build-manager.yml @@ -2,7 +2,7 @@ name: Build Manager on: push: - branches: [ "main", "dev", "ci" ] + branches: [ "main", "dev", "ci", "master" ] paths: - 'README.md' - '.github/workflows/build-manager.yml' @@ -192,13 +192,13 @@ jobs: - name: Build with Gradle run: | if [ "${{ github.event_name }}" = "pull_request" ]; then - ./gradlew clean assembleRelease -PIS_PR_BUILD=true + ./gradlew assembleRelease -PIS_PR_BUILD=true else - ./gradlew clean assembleRelease + ./gradlew assembleRelease fi - name: Upload build artifact - if: ${{ github.event_name == 'pull_request' || (github.event_name != 'pull_request' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev')) || github.ref_type == 'tag' }} + if: ${{ github.event_name == 'pull_request' || (github.event_name != 'pull_request') || github.ref_type == 'tag' }} uses: actions/upload-artifact@v7 with: name: manager-gradle @@ -206,7 +206,7 @@ jobs: - name: Upload mappings uses: actions/upload-artifact@v7 - if: ${{ ( github.event_name != 'pull_request' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev' )) || github.ref_type == 'tag' }} + if: ${{ ( github.event_name != 'pull_request') || github.ref_type == 'tag' }} with: name: "mappings" path: "manager/app/build/outputs/mapping/release/" @@ -225,7 +225,7 @@ jobs: - name: Setup need_upload id: need_upload run: | - if [ ! -z "${{ secrets.BOT_TOKEN }}" ] && [ "${{ github.event_name }}" != "workflow_dispatch" ]; then + if [ ! -z "${{ secrets.BOT_TOKEN }}" ]; then echo "UPLOAD=true" >> $GITHUB_OUTPUT else echo "UPLOAD=false" >> $GITHUB_OUTPUT @@ -269,7 +269,7 @@ jobs: cp -f "$X86_64_KSUD" target/x86_64-linux-android/release/ksud - name: Prepare signing inputs - if: ${{ github.event_name == 'pull_request' || (github.event_name != 'pull_request' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev')) || github.ref_type == 'tag' }} + if: ${{ github.event_name == 'pull_request' || (github.event_name != 'pull_request') || github.ref_type == 'tag' }} env: PR_KEYSTORE: ${{ needs.generate-key.outputs.keystore }} PR_KEYSTORE_PASSWORD: ${{ needs.generate-key.outputs.keystore_password }} @@ -295,7 +295,7 @@ jobs: fi - name: Repack and resign - if: ${{ github.event_name == 'pull_request' || (github.event_name != 'pull_request' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev')) || github.ref_type == 'tag' }} + if: ${{ github.event_name == 'pull_request' || (github.event_name != 'pull_request') || github.ref_type == 'tag' }} run: | python3 repack_apk.py repack \ -b release \ @@ -309,7 +309,7 @@ jobs: --strip - name: Upload build artifact - if: ${{ github.event_name == 'pull_request' || (github.event_name != 'pull_request' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev')) || github.ref_type == 'tag' }} + if: ${{ github.event_name == 'pull_request' || (github.event_name != 'pull_request') || github.ref_type == 'tag' }} uses: actions/upload-artifact@v7 with: name: manager diff --git a/build.sh b/build.sh new file mode 100644 index 000000000000..0103598351aa --- /dev/null +++ b/build.sh @@ -0,0 +1,241 @@ +#!/bin/bash +set -e + +# Intercept failures and interrupts to kill all background jobs +_cleanup() { + local exit_code=$? + trap - EXIT SIGINT SIGTERM + if [ $exit_code -ne 0 ]; then + echo -e "\n\033[31mBuild failed or interrupted, cleaning up background tasks...\033[0m" + local pids=$(jobs -p) + if [ -n "$pids" ]; then + kill $pids 2>/dev/null || true + fi + pkill -P $$ 2>/dev/null || true + fi + exit $exit_code +} +trap _cleanup EXIT SIGINT SIGTERM + +# Minimal: ./build.sh ksud +# Full: ./build.sh ksuinit lkm all +# Specific: ./build.sh ksuinit lkm + +if [ ! -d "out" ]; then + mkdir out + echo "*" > out/.gitignore + echo "\033[32mTips: copy this script to out/build.sh for clean workspace, run with bash out/build.sh\033[0m" +fi + +# Signing key for manager +if [ ! -f "out/sign.properties" ]; then + echo "Error: out/sign.properties not found, please fill it with your signing information" + cat "manager/sign.example.properties" > "out/sign.properties" + exit 1 +fi +. out/sign.properties +export ORG_GRADLE_PROJECT_KEYSTORE_FILE="$KEYSTORE_FILE" +export ORG_GRADLE_PROJECT_KEYSTORE_PASSWORD="$KEYSTORE_PASSWORD" +export ORG_GRADLE_PROJECT_KEY_ALIAS="$KEY_ALIAS" +export ORG_GRADLE_PROJECT_KEY_PASSWORD="$KEY_PASSWORD" + +# Find ndk +if [ -z "$ANDROID_NDK_HOME" ]; then + SDK_PATH="$ANDROID_HOME" + [ -z "$SDK_PATH" ] && [ -d "$HOME/Library/Android/sdk" ] && SDK_PATH="$HOME/Library/Android/sdk" + [ -z "$SDK_PATH" ] && [ -d "$HOME/Android/Sdk" ] && SDK_PATH="$HOME/Android/Sdk" + [ -z "$SDK_PATH" ] && echo "Error: ANDROID_HOME is not set, please set it to your Android SDK path" && exit 1 + + [ ! -d "$SDK_PATH/ndk" ] && echo "Error: NDK not found in $SDK_PATH" && exit 1 + LATEST_NDK="$(ls -1 "$SDK_PATH/ndk" | sort -V | tail -n 1)" + [ -z "$LATEST_NDK" ] && echo "Error: No NDK found in $SDK_PATH" && exit 1 + export ANDROID_NDK_HOME="$SDK_PATH/ndk/$LATEST_NDK" +fi + +TARGET="aarch64-linux-android" +source .github/scripts/setup-rust-build.sh "$TARGET" 26 +export PATH="$LLVM_BIN:$HOME/.cargo/bin:$PATH" + +DIR="$(pwd)" +DDK_RELEASE="$(grep -oP 'ddk_release.*?\K[0-9]+' .github/workflows/build-lkm.yml)" +VALID_KMIS="$(grep android .github/workflows/build-lkm.yml | sed 's/.*- android/android/g')" + +BUILD_KSUD=0 +BUILD_KSUINIT=0 +BUILD_LKM="" + +check_kmi() { + local kmi="$1" + for valid in $VALID_KMIS; do + if [[ "$kmi" == "$valid" ]]; then + return 0 + fi + done + return 1 +} + +build_lkm() { + local kmi="$1" + local logfile="out/${kmi}.log" + + { + echo "=== Building kernelsu.ko for KMI: $kmi (DDK: $DDK_RELEASE) ===" + + docker run --rm --privileged -v "$DIR:/workspace" -w /workspace \ + ghcr.io/ylarod/ddk-min:$kmi-$DDK_RELEASE /bin/bash -c " + set -e + git config --global --add safe.directory /workspace + cd kernel + CONFIG_KSU=m CC=clang make + cp kernelsu.ko ../out/${kmi}_kernelsu.ko + cp kernelsu.ko ../userspace/ksud/bin/aarch64/${kmi}_kernelsu.ko + echo 'Built: ../out/${kmi}_kernelsu.ko' + " + } > "$logfile" 2>&1 || { + echo "FAILED: build_lkm $kmi" >&2 + cat "$logfile" >&2 + return 1 + } +} + +while [[ $# -gt 0 ]]; do + case "$1" in + clean) + rm -rf out/*.apk out/*.ko dist/ + cd manager && ./gradlew clean + cd "$DIR" + DDK_IMAGES=$(docker images --format "{{.Repository}}:{{.Tag}}" | grep "^ghcr.io/ylarod/ddk-min:") + if [ -n "$DDK_IMAGES" ]; then + echo "$DDK_IMAGES" | xargs docker rmi + fi + exit 0 + ;; + ksud) BUILD_KSUD=1; shift;; + ksuinit) BUILD_KSUINIT=1; shift;; + lkm) + if [[ -z "$2" ]]; then + echo "Error: lkm requires a KMI version or 'all'" + echo "Usage: $0 lkm " + echo "Valid KMI versions: $VALID_KMIS" + exit 1 + fi + if [[ "$2" == "all" ]]; then + BUILD_LKM="all" + else + if ! check_kmi "$2"; then + echo "Error: Invalid KMI version '$2'" + echo "Valid KMI versions: $VALID_KMIS" + exit 1 + fi + BUILD_LKM="$2" + fi + shift 2 + ;; + + -h|--help) + echo "Usage: $0 [ksuinit] [lkm ] [ksud]" + echo "Arguments:" + echo " clean Clean build artifacts and remove DDK Docker images" + echo " ksuinit Build ksuinit static binary" + echo " ksud Build ksud userspace daemon" + echo " lkm Build kernel module for specific KMI version or 'all'" + echo "" + echo "Valid KMI versions:" + for kmi in $VALID_KMIS; do + echo " $kmi" + done + exit 0 + ;; + esac +done + +declare -A PIDS +declare -A LOGS + +wait_for_jobs() { + local fail=0 + local name pid logfile + + for name in "$@"; do + pid="${PIDS[$name]}" + logfile="${LOGS[$name]}" + [[ -z "$pid" ]] && continue + + wait "$pid" || { + echo "FAILED: $name (PID $pid)" + [[ -n "$logfile" && -f "$logfile" ]] && cat "$logfile" + fail=1 + } + unset 'PIDS[$name]' + done + + if [[ "$fail" -ne 0 ]]; then + echo "Error: One or more parallel builds failed" + exit 1 + fi +} + +# ksuinit +if [[ "$BUILD_KSUINIT" == "1" ]]; then + echo "=== Building ksuinit ===" + ( + exec > out/ksuinit.log 2>&1 + rustup target add aarch64-unknown-linux-musl + export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER="$CLANG_PATH" + RUSTFLAGS="-C link-arg=-no-pie" cargo build --package ksuinit --target=aarch64-unknown-linux-musl --release --manifest-path ./userspace/ksuinit/Cargo.toml + cp target/aarch64-unknown-linux-musl/release/ksuinit userspace/ksud/bin/aarch64/ + ) & + PIDS[ksuinit]=$! + LOGS[ksuinit]="out/ksuinit.log" +fi + +# lkm +if [[ "$BUILD_LKM" == "all" ]]; then + ( + echo "=== Building all KMIs ===" + build_lkm_all() { + export -f build_lkm + export DIR DDK_RELEASE VALID_KMIS + echo "$VALID_KMIS" | xargs -P0 -I{} bash -c 'build_lkm "$@"' _ {} + } + build_lkm_all + ) & + PIDS[lkm]=$! +elif [[ -n "$BUILD_LKM" ]]; then + ( + echo "=== Building LKM: $BUILD_LKM ===" + build_lkm "$BUILD_LKM" + ) & + PIDS[lkm]=$! + LOGS[lkm]="out/${BUILD_LKM}.log" +fi + +# manager +( + echo "=== Building manager ===" + cd "$DIR/manager" + ./gradlew aRelease +) & +PIDS[manager]=$! + +# ksud +if [[ "$BUILD_KSUD" == "1" || "$BUILD_KSUINIT" == "1" || -n "$BUILD_LKM" ]]; then + wait_for_jobs ksuinit lkm + echo "=== Building ksud ===" + { + rustup update stable + rustup target add $TARGET + cargo build --target $TARGET --release --manifest-path ./userspace/ksud/Cargo.toml + } > out/ksud.log 2>&1 || { + echo "FAILED: ksud" + cat out/ksud.log + exit 1 + } +fi + +# repack +wait_for_jobs manager +echo "=== Repacking manager APK ===" +rm -f out/*.apk dist/*.apk +python3 repack_apk.py repack +cp -f dist/*.apk out/ diff --git a/kernel/Kbuild b/kernel/Kbuild index d4a07c97aa05..c46e898004a9 100644 --- a/kernel/Kbuild +++ b/kernel/Kbuild @@ -115,11 +115,11 @@ $(info -- KSU_NEW_DCACHE_FLUSH: $(KSU_NEW_DCACHE_FLUSH)) ifndef KSU_EXPECTED_SIZE -KSU_EXPECTED_SIZE := 0x033b +KSU_EXPECTED_SIZE := 0x375 endif ifndef KSU_EXPECTED_HASH -KSU_EXPECTED_HASH := c371061b19d8c7d7d6133c6a9bafe198fa944e50c1b31c9d8daa8d7f1fc2d2d6 +KSU_EXPECTED_HASH := 484fcba6e6c43b1fb09700633bf2fb4758f13cb0b2f4457b80d075084b26c588 endif ifdef KSU_MANAGER_PACKAGE diff --git a/kernel/setup.sh b/kernel/setup.sh index e688dbaf3ae5..2a4f98938b55 100755 --- a/kernel/setup.sh +++ b/kernel/setup.sh @@ -39,7 +39,7 @@ perform_cleanup() { # Sets up or update KernelSU environment setup_kernelsu() { echo "[+] Setting up KernelSU..." - test -d "$GKI_ROOT/KernelSU" || git clone https://github.com/tiann/KernelSU && echo "[+] Repository cloned." + test -d "$GKI_ROOT/KernelSU" || git clone https://github.com/KOWX712/KernelSU && echo "[+] Repository cloned." cd "$GKI_ROOT/KernelSU" git stash && echo "[-] Stashed current changes." if [ "$(git status | grep -Po 'v\d+(\.\d+)*' | head -n1)" ]; then diff --git a/manager/app/build.gradle.kts b/manager/app/build.gradle.kts index 5997eefc8b8f..53692d547451 100644 --- a/manager/app/build.gradle.kts +++ b/manager/app/build.gradle.kts @@ -119,6 +119,7 @@ android { targetSdk = androidTargetSdkVersion versionCode = managerVersionCode versionName = managerVersionName + applicationId = "com.kowx712.supermanager" buildConfigField("boolean", "IS_PR_BUILD", isPrBuild.toString()) @@ -154,7 +155,7 @@ androidComponents { base { archivesName.set( - "KernelSU_${managerVersionName}_${managerVersionCode}" + "KowSU_${managerVersionName}_${managerVersionCode}" ) } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/Natives.kt b/manager/app/src/main/java/me/weishu/kernelsu/Natives.kt index 63ff5e16f08a..414d734aaf1f 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/Natives.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/Natives.kt @@ -21,7 +21,7 @@ object Natives { // 32310: new get_allow_list ioctl // 32336: new set_sepolicy ioctl // 32377: add set_init_pgrp ioctl - const val MINIMAL_SUPPORTED_KERNEL = 32377 + const val MINIMAL_SUPPORTED_KERNEL = 32377 + 30 // KowSU commit around 30 const val KERNEL_SU_DOMAIN = "u:r:ksu:s0" diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/about/AboutScreen.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/about/AboutScreen.kt index 22773368d58a..931f1579ab50 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/about/AboutScreen.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/about/AboutScreen.kt @@ -16,8 +16,8 @@ fun AboutScreen() { val uriHandler = LocalUriHandler.current val htmlString = stringResource( id = R.string.about_source_code, - "GitHub", - "Telegram" + "GitHub", + "Telegram" ) val state = AboutUiState( title = stringResource(R.string.about), diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt index 9a0c1166399c..a0a2b139c119 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt @@ -107,9 +107,9 @@ fun HomePagerMaterial( if (state.showRootWarning) { WarningCard(stringResource(id = R.string.grant_root_failed)) } - if (state.checkUpdateEnabled) { - UpdateCard(state = state, actions = actions) - } +// if (state.checkUpdateEnabled) { +// UpdateCard(state = state, actions = actions) +// } InfoCard(systemInfo = state.systemInfo) DonateCard(onOpenUrl = actions.onOpenUrl) LearnMoreCard(onOpenUrl = actions.onOpenUrl) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMiuix.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMiuix.kt index ac013fcb71fb..f6ba23dc50b9 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMiuix.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMiuix.kt @@ -146,9 +146,9 @@ fun HomePagerMiuix( state = state, actions = actions, ) - if (state.checkUpdateEnabled) { - UpdateCard(state = state, actions = actions) - } +// if (state.checkUpdateEnabled) { +// UpdateCard(state = state, actions = actions) +// } InfoCard(systemInfo = state.systemInfo) DonateCard(onOpenUrl = actions.onOpenUrl) LearnMoreCard(onOpenUrl = actions.onOpenUrl) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMaterial.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMaterial.kt index 2a69f43c1ad4..a21527060cdd 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMaterial.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMaterial.kt @@ -97,15 +97,15 @@ fun SettingPagerMaterial( SegmentedColumn( modifier = Modifier.padding(horizontal = 16.dp, vertical = 8.dp), content = listOf( - { - SegmentedSwitchItem( - icon = Icons.Filled.Update, - title = stringResource(id = R.string.settings_check_update), - summary = stringResource(id = R.string.settings_check_update_summary), - checked = uiState.checkUpdate, - onCheckedChange = actions.onSetCheckUpdate - ) - }, +// { +// SegmentedSwitchItem( +// icon = Icons.Filled.Update, +// title = stringResource(id = R.string.settings_check_update), +// summary = stringResource(id = R.string.settings_check_update_summary), +// checked = uiState.checkUpdate, +// onCheckedChange = actions.onSetCheckUpdate +// ) +// }, { SegmentedSwitchItem( icon = Icons.Rounded.UploadFile, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMiuix.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMiuix.kt index 722b5dd418e5..0875199212fd 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMiuix.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMiuix.kt @@ -109,20 +109,20 @@ fun SettingPagerMiuix( .padding(top = 12.dp) .fillMaxWidth(), ) { - SwitchPreference( - title = stringResource(id = R.string.settings_check_update), - summary = stringResource(id = R.string.settings_check_update_summary), - startAction = { - Icon( - Icons.Rounded.Update, - modifier = Modifier.padding(end = 6.dp), - contentDescription = stringResource(id = R.string.settings_check_update), - tint = colorScheme.onBackground - ) - }, - checked = uiState.checkUpdate, - onCheckedChange = actions.onSetCheckUpdate - ) +// SwitchPreference( +// title = stringResource(id = R.string.settings_check_update), +// summary = stringResource(id = R.string.settings_check_update_summary), +// startAction = { +// Icon( +// Icons.Rounded.Update, +// modifier = Modifier.padding(end = 6.dp), +// contentDescription = stringResource(id = R.string.settings_check_update), +// tint = colorScheme.onBackground +// ) +// }, +// checked = uiState.checkUpdate, +// onCheckedChange = actions.onSetCheckUpdate +// ) KsuIsValid { SwitchPreference( title = stringResource(id = R.string.settings_module_check_update), diff --git a/manager/app/src/main/res/values-pl/strings.xml b/manager/app/src/main/res/values-pl/strings.xml index c3bfa054bac4..e9ac4c446259 100644 --- a/manager/app/src/main/res/values-pl/strings.xml +++ b/manager/app/src/main/res/values-pl/strings.xml @@ -1,6 +1,5 @@ - KernelSU Strona główna Nie zainstalowano Kliknij, aby zainstalować diff --git a/manager/app/src/main/res/values-tr/strings.xml b/manager/app/src/main/res/values-tr/strings.xml index a7633719ce8d..c4bf1d69e963 100644 --- a/manager/app/src/main/res/values-tr/strings.xml +++ b/manager/app/src/main/res/values-tr/strings.xml @@ -1,6 +1,5 @@ - KernelSU Ana Sayfa Kurulmadı Yüklemek için dokunun diff --git a/userspace/ksud/src/cli.rs b/userspace/ksud/src/cli.rs index a5835893a9d1..aff412c63b74 100644 --- a/userspace/ksud/src/cli.rs +++ b/userspace/ksud/src/cli.rs @@ -58,7 +58,7 @@ enum Commands { kmi: Option, /// manager package name - #[arg(long, default_value_t = String::from("me.weishu.kernelsu"))] + #[arg(long, default_value_t = String::from("com.kowx712.supermanager"))] package_name: String, }, @@ -92,7 +92,7 @@ enum Commands { #[arg(long, default_value = None)] magiskboot: Option, - #[arg(long, default_value_t = String::from("me.weishu.kernelsu"))] + #[arg(long, default_value_t = String::from("com.kowx712.supermanager"))] package_name: String, }, @@ -175,7 +175,7 @@ enum Debug { /// Set the manager app, kernel CONFIG_KSU_DEBUG should be enabled. SetManager { /// manager package name - #[arg(default_value_t = String::from("me.weishu.kernelsu"))] + #[arg(default_value_t = String::from("com.kowx712.supermanager"))] apk: String, }, From 5a137773ee10d7d22d58c3e9f0b1e82646c5522c Mon Sep 17 00:00:00 2001 From: KOWX712 Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 14/35] manager: QOL - default to material ui - bring back old animation spec - remove warning card - sort module by name, allow action and webui even when module is flagged as update - U-LEGACY and LEGACY working mode - don't always show nav bar label - preload app list and module list - allow update check even module already flagged update --- .../me/weishu/kernelsu/KernelSUApplication.kt | 2 +- .../data/repository/ModuleRepositoryImpl.kt | 2 +- .../data/repository/SettingsRepositoryImpl.kt | 2 +- .../me/weishu/kernelsu/ui/MainActivity.kt | 36 +++++++++++++++++++ .../main/java/me/weishu/kernelsu/ui/UiMode.kt | 8 ++--- .../component/bottombar/BottomBarMaterial.kt | 3 +- .../bottombar/NavigationRailMaterial.kt | 3 +- .../ExecuteModuleActionUtils.kt | 2 +- .../kernelsu/ui/screen/home/HomeMaterial.kt | 25 ++++++------- .../kernelsu/ui/screen/home/HomeMiuix.kt | 27 +++++++------- .../ui/screen/settings/SettingsUiState.kt | 2 +- .../kernelsu/ui/viewmodel/ModuleViewModel.kt | 2 +- .../kernelsu/ui/webui/SuFilePathHandler.java | 2 +- .../weishu/kernelsu/ui/webui/WebViewHelper.kt | 2 +- 14 files changed, 79 insertions(+), 39 deletions(-) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/KernelSUApplication.kt b/manager/app/src/main/java/me/weishu/kernelsu/KernelSUApplication.kt index b10f96d2eaeb..e897c4ec4c81 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/KernelSUApplication.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/KernelSUApplication.kt @@ -46,7 +46,7 @@ class KernelSUApplication : Application(), ViewModelStoreOwner { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { val prefs = this.getSharedPreferences("settings", MODE_PRIVATE) - val enable = prefs.getBoolean("enable_predictive_back", false) + val enable = prefs.getBoolean("enable_predictive_back", true) HiddenApiBypass.addHiddenApiExemptions("Landroid/content/pm/ApplicationInfo;->setEnableOnBackInvokedCallback") setEnableOnBackInvokedCallback(applicationInfo, enable) } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/data/repository/ModuleRepositoryImpl.kt b/manager/app/src/main/java/me/weishu/kernelsu/data/repository/ModuleRepositoryImpl.kt index fdbc66522230..1193038287fe 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/data/repository/ModuleRepositoryImpl.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/data/repository/ModuleRepositoryImpl.kt @@ -52,7 +52,7 @@ class ModuleRepositoryImpl : ModuleRepository { if (!isNetworkAvailable(ksuApp)) { return@runCatching ModuleUpdateInfo.Empty } - if (module.updateJson.isEmpty() || module.remove || module.update || !module.enabled) { + if (module.updateJson.isEmpty() || module.remove || !module.enabled) { return@runCatching ModuleUpdateInfo.Empty } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepositoryImpl.kt b/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepositoryImpl.kt index 58e3bad335d4..25d5b30c43c3 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepositoryImpl.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepositoryImpl.kt @@ -55,7 +55,7 @@ class SettingsRepositoryImpl : SettingsRepository { set(value) = prefs.edit { putString("color_spec", value) } override var enablePredictiveBack: Boolean - get() = prefs.getBoolean("enable_predictive_back", false) + get() = prefs.getBoolean("enable_predictive_back", true) set(value) = prefs.edit { putBoolean("enable_predictive_back", value) } override var enableBlur: Boolean diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/MainActivity.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/MainActivity.kt index 5336acf7e271..4fd552eb69a5 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/MainActivity.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/MainActivity.kt @@ -11,6 +11,12 @@ import androidx.activity.SystemBarStyle import androidx.activity.compose.LocalActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut +import androidx.compose.animation.scaleOut +import androidx.compose.animation.slideInHorizontally +import androidx.compose.animation.slideOutHorizontally +import androidx.compose.animation.togetherWith import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row @@ -97,6 +103,8 @@ import me.weishu.kernelsu.ui.util.rememberBlurBackdrop import me.weishu.kernelsu.ui.util.rememberContentReady import me.weishu.kernelsu.ui.util.rootAvailable import me.weishu.kernelsu.ui.viewmodel.MainActivityViewModel +import me.weishu.kernelsu.ui.viewmodel.ModuleViewModel +import me.weishu.kernelsu.ui.viewmodel.SuperUserViewModel import me.weishu.kernelsu.ui.webui.WebUIActivity import top.yukonga.miuix.kmp.basic.Scaffold import top.yukonga.miuix.kmp.theme.MiuixTheme @@ -115,6 +123,9 @@ class MainActivity : ComponentActivity() { setContent { val viewModel = viewModel() + val superUserViewModel = viewModel() + val moduleViewModel = viewModel() + val uiState by viewModel.uiState.collectAsStateWithLifecycle() val appSettings = uiState.appSettings val uiMode = uiState.uiMode @@ -153,6 +164,16 @@ class MainActivity : ComponentActivity() { LocalSnackbarHost provides snackBarHostState ) { KernelSUTheme(appSettings = appSettings, uiMode = uiMode) { + val isFullFeatured = isManager && !Natives.requireNewKernel() && rootAvailable() + LaunchedEffect(isFullFeatured) { + if (isFullFeatured) { + superUserViewModel.initializePreferences() + superUserViewModel.loadAppList() + moduleViewModel.initializePreferences() + moduleViewModel.fetchModuleList() + } + } + HandleDeepLink(intentState = intentState.collectAsStateWithLifecycle()) ZipFileIntentHandler(intentState = intentState, isManager = isManager) ShortcutIntentHandler(intentState = intentState) @@ -177,6 +198,21 @@ class MainActivity : ComponentActivity() { else -> navigator.pop() } }, + transitionSpec = { + val enter = slideInHorizontally(initialOffsetX = { it }) + val exit = slideOutHorizontally(targetOffsetX = { -it / 4 }) + fadeOut() + enter togetherWith exit + }, + popTransitionSpec = { + val enter = slideInHorizontally(initialOffsetX = { -it / 4 }) + fadeIn() + val exit = scaleOut(targetScale = 0.9f) + fadeOut() + enter togetherWith exit + }, + predictivePopTransitionSpec = { + val enter = slideInHorizontally(initialOffsetX = { -it / 4 }) + fadeIn() + val exit = scaleOut(targetScale = 0.9f) + fadeOut() + enter togetherWith exit + }, entryProvider = entryProvider { entry { MainScreen() } entry { AboutScreen() } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/UiMode.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/UiMode.kt index 6fa66cb46b5b..6532317dd1c9 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/UiMode.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/UiMode.kt @@ -8,12 +8,12 @@ enum class UiMode(val value: String) { companion object { fun fromValue(value: String): UiMode = when (value) { - Material.value -> Material - else -> Miuix + Miuix.value -> Miuix + else -> Material } - val DEFAULT_VALUE = Miuix.value + val DEFAULT_VALUE = Material.value } } -val LocalUiMode = staticCompositionLocalOf { UiMode.Miuix } +val LocalUiMode = staticCompositionLocalOf { UiMode.Material } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/component/bottombar/BottomBarMaterial.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/component/bottombar/BottomBarMaterial.kt index 35d7f2dd393d..fe36a2668771 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/component/bottombar/BottomBarMaterial.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/component/bottombar/BottomBarMaterial.kt @@ -71,7 +71,8 @@ fun BottomBarMaterial() { maxLines = 1, overflow = TextOverflow.Ellipsis ) - } + }, + alwaysShowLabel = false ) } } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/component/bottombar/NavigationRailMaterial.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/component/bottombar/NavigationRailMaterial.kt index 3b478029d3bd..38aa32cc3b76 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/component/bottombar/NavigationRailMaterial.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/component/bottombar/NavigationRailMaterial.kt @@ -68,7 +68,8 @@ fun NavigationRailMaterial( stringResource(label) ) }, - label = { Text(stringResource(label)) } + label = { Text(stringResource(label)) }, + alwaysShowLabel = false ) } Spacer(Modifier.weight(1f)) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/executemoduleaction/ExecuteModuleActionUtils.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/executemoduleaction/ExecuteModuleActionUtils.kt index 541776c04ad5..b901de381274 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/executemoduleaction/ExecuteModuleActionUtils.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/executemoduleaction/ExecuteModuleActionUtils.kt @@ -51,7 +51,7 @@ fun ExecuteModuleActionEffect( onExit() return@LaunchedEffect } - if (!moduleInfo.enabled || moduleInfo.update || moduleInfo.remove) { + if (!moduleInfo.enabled || moduleInfo.remove) { Toast.makeText(context, moduleUnavailable.format(moduleInfo.name), Toast.LENGTH_SHORT).show() onExit() return@LaunchedEffect diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt index a0a2b139c119..ac8cf5639f91 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt @@ -1,5 +1,6 @@ package me.weishu.kernelsu.ui.screen.home +import android.os.Build import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.expandVertically import androidx.compose.animation.fadeIn @@ -85,17 +86,17 @@ fun HomePagerMaterial( } else if (state.showKernelPrBuildWarning) { WarningCard(stringResource(id = R.string.home_pr_kernel_warning)) } - if (state.showVersionMismatchWarning) { - WarningCard( - stringResource(id = R.string.home_version_mismatch, - state.currentManagerVersionCode, - state.ksuVersion ?: 0 - ) - ) - } - if (state.showGkiWarning) { - WarningCard(stringResource(id = R.string.home_gki_warning)) - } +// if (state.showVersionMismatchWarning) { +// WarningCard( +// stringResource(id = R.string.home_version_mismatch, +// state.currentManagerVersionCode, +// state.ksuVersion ?: 0 +// ) +// ) +// } +// if (state.showGkiWarning) { +// WarningCard(stringResource(id = R.string.home_gki_warning)) +// } if (state.showRequireKernelWarning) { WarningCard( stringResource(id = R.string.require_kernel_version, @@ -195,7 +196,7 @@ private fun StatusCard( when { state.ksuVersion != null -> { val workingMode = when (state.lkmMode) { - null -> "" + null -> if (Build.SUPPORTED_64_BIT_ABIS.isEmpty()) "32-BIT" else "LEGACY" true -> "LKM" else -> "GKI" } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMiuix.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMiuix.kt index f6ba23dc50b9..edfb491f70ae 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMiuix.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMiuix.kt @@ -1,5 +1,6 @@ package me.weishu.kernelsu.ui.screen.home +import android.os.Build import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.expandVertically import androidx.compose.animation.fadeIn @@ -119,18 +120,18 @@ fun HomePagerMiuix( } else if (state.showKernelPrBuildWarning) { WarningCard(stringResource(id = R.string.home_pr_kernel_warning)) } - if (state.showVersionMismatchWarning) { - WarningCard( - stringResource( - id = R.string.home_version_mismatch, - state.currentManagerVersionCode, - state.ksuVersion ?: 0 - ) - ) - } - if (state.showGkiWarning) { - WarningCard(stringResource(id = R.string.home_gki_warning)) - } +// if (state.showVersionMismatchWarning) { +// WarningCard( +// stringResource( +// id = R.string.home_version_mismatch, +// state.currentManagerVersionCode, +// state.ksuVersion ?: 0 +// ) +// ) +// } +// if (state.showGkiWarning) { +// WarningCard(stringResource(id = R.string.home_gki_warning)) +// } if (state.showRequireKernelWarning) { WarningCard( stringResource( @@ -229,7 +230,7 @@ private fun StatusCard( } } val workingMode = when (state.lkmMode) { - null -> "" + null -> if (Build.SUPPORTED_64_BIT_ABIS.isEmpty()) " <32-BIT>" else " " true -> " " else -> " " } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt index a154129bc913..10d433ec2f9c 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt @@ -15,7 +15,7 @@ data class SettingsUiState( val keyColor: Int = 0, val colorStyle: String = PaletteStyle.TonalSpot.name, val colorSpec: String = ColorSpec.SpecVersion.Default.name, - val enablePredictiveBack: Boolean = false, + val enablePredictiveBack: Boolean = true, val enableBlur: Boolean = true, val enableFloatingBottomBar: Boolean = false, val enableFloatingBottomBarBlur: Boolean = false, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/ModuleViewModel.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/ModuleViewModel.kt index cf8a3acbac2e..2dbb66554e85 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/ModuleViewModel.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/ModuleViewModel.kt @@ -217,7 +217,7 @@ class ModuleViewModel( }, { if (state.sortEnabledFirst) !it.enabled else 0 }, { if (state.sortActionFirst) !(it.hasWebUi || it.hasActionScript) else 0 }, - ).thenBy(Collator.getInstance(Locale.getDefault()), Module::id) + ).thenBy(Collator.getInstance(Locale.getDefault()), Module::name) } suspend fun loadModuleList() { diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/SuFilePathHandler.java b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/SuFilePathHandler.java index 8b28be1f0a1b..fb8b576df5e7 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/SuFilePathHandler.java +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/SuFilePathHandler.java @@ -196,7 +196,7 @@ public WebResourceResponse handle(@NonNull String path) { if ("internal/colors.css".equals(path)) { SharedPreferences prefs = mContext.getSharedPreferences("settings", Context.MODE_PRIVATE); int colorMode = prefs.getInt("color_mode", 0); - String uiMode = prefs.getString("ui_mode", "miuix"); + String uiMode = prefs.getString("ui_mode", "material"); String css = ""; if ((colorMode >= 3 && colorMode <= 6) || "material".equals(uiMode)) { css = MonetColorsProvider.INSTANCE.getColorsCss(); diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewHelper.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewHelper.kt index c3f9f24af2fb..8139202707cb 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewHelper.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewHelper.kt @@ -105,7 +105,7 @@ internal suspend fun prepareWebView( return@withContext } - if (!moduleInfo.hasWebUi || !moduleInfo.enabled || moduleInfo.update || moduleInfo.remove) { + if (!moduleInfo.hasWebUi || !moduleInfo.enabled || moduleInfo.remove) { withContext(Dispatchers.Main) { webUIState.uiEvent = WebUIEvent.Error(activity.getString(R.string.module_unavailable, moduleInfo.name)) } From 76a541b54e592592e90846fa90e89c5e42207276 Mon Sep 17 00:00:00 2001 From: backslashxx <118538522+backslashxx@users.noreply.github.com> Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 15/35] kernel: supercalls: tweak reboot handler --- kernel/supercall/supercall.c | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/kernel/supercall/supercall.c b/kernel/supercall/supercall.c index ba3ad1c41c47..99f9dad9cee4 100644 --- a/kernel/supercall/supercall.c +++ b/kernel/supercall/supercall.c @@ -80,15 +80,22 @@ static void ksu_install_fd_tw_func(struct callback_head *cb) kfree(tw); } -static int reboot_handler_pre(struct kprobe *p, struct pt_regs *regs) +// downstream: make sure to pass arg as reference, this can allow us to extend things. +static int ksu_handle_sys_reboot(int magic1, int magic2, unsigned int cmd, void __user **arg) { - struct pt_regs *real_regs = PT_REAL_REGS(regs); - int magic1 = (int)PT_REGS_PARM1(real_regs); - int magic2 = (int)PT_REGS_PARM2(real_regs); - if (magic1 == KSU_INSTALL_MAGIC1 && magic2 == KSU_INSTALL_MAGIC2) { + if (magic1 != KSU_INSTALL_MAGIC1) + return 0; + + pr_info("sys_reboot: intercepted call! magic: 0x%x id: %d\n", magic1, magic2); + + // arg4 = (unsigned long)PT_REGS_SYSCALL_PARM4(real_regs); + // downstream: dereference arg as arg4 so we can be inline to upstream + void __user *arg4 = (void __user *)*arg; + + // Check if this is a request to install KSU fd + if (magic2 == KSU_INSTALL_MAGIC2) { struct ksu_install_fd_tw *tw; - unsigned long arg4 = (unsigned long)PT_REGS_SYSCALL_PARM4(real_regs); tw = kzalloc(sizeof(*tw), GFP_ATOMIC); if (!tw) @@ -103,9 +110,23 @@ static int reboot_handler_pre(struct kprobe *p, struct pt_regs *regs) } } + // downstream: extensions go here! + return 0; } +static int reboot_handler_pre(struct kprobe *p, struct pt_regs *regs) +{ + struct pt_regs *real_regs = PT_REAL_REGS(regs); + int magic1 = (int)PT_REGS_PARM1(real_regs); + int magic2 = (int)PT_REGS_PARM2(real_regs); + int cmd = (int)PT_REGS_PARM3(real_regs); + void __user **arg = (void __user **)&PT_REGS_SYSCALL_PARM4(real_regs); + + return ksu_handle_sys_reboot(magic1, magic2, cmd, arg); + +} + static struct kprobe reboot_kp = { .symbol_name = REBOOT_SYMBOL, .pre_handler = reboot_handler_pre, From 90c3a1809293feda057f18a5aa9dac781a10b6dc Mon Sep 17 00:00:00 2001 From: backslashxx <118538522+backslashxx@users.noreply.github.com> Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 16/35] kernel: extras: avc log spoofing * kernel: extras: base implementation of avc log spoofing * kernel: extras: properly version out slow_avc_audit_pre_handler * kernel: extras: add avc spoof to feature this is a rebase of: https://github.com/KOWX712/KernelSU/commit/4b6f76d205b37b079931b227f98dfcfc0b7cf7e7 * kernel/extra: replace sensitive context with priv_app ref: aviraxp/ZN-AuditPatch@a0a46bd63a2725bd9d7ae8ddd398ea93cf235371 Co-Authored-By: KOWX712 <185127155+kowx712@users.noreply.github.com> --- kernel/Kbuild | 4 +- kernel/extras.c | 212 +++++++++++++++++++++++++++++ kernel/hook/syscall_hook_manager.c | 2 + kernel/hook/syscall_hook_manager.h | 3 + kernel/runtime/boot_event.c | 2 + uapi/feature.h | 2 + 6 files changed, 224 insertions(+), 1 deletion(-) create mode 100644 kernel/extras.c diff --git a/kernel/Kbuild b/kernel/Kbuild index c46e898004a9..b7f68220a036 100644 --- a/kernel/Kbuild +++ b/kernel/Kbuild @@ -61,6 +61,8 @@ ccflags-y += -DCONFIG_KSU_DEBUG=1 endif endif +kernelsu-objs += extras.o + ccflags-y += -I$(srctree)/security/selinux -I$(srctree)/security/selinux/include ccflags-y += -I$(objtree)/security/selinux -include $(srctree)/include/uapi/asm-generic/errno.h @@ -146,6 +148,6 @@ endif ccflags-y += -DKSU_NEW_DCACHE_FLUSH=$(KSU_NEW_DCACHE_FLUSH) ccflags-y += -Wno-strict-prototypes -Wno-int-conversion -Wno-gcc-compat -Wno-missing-prototypes -ccflags-y += -Wno-declaration-after-statement -Wno-unused-function +ccflags-y += -Wno-declaration-after-statement -Wno-unused-function -Wno-unused-variable # Keep a new line here!! Because someone may append config diff --git a/kernel/extras.c b/kernel/extras.c new file mode 100644 index 000000000000..a7cac49aca7c --- /dev/null +++ b/kernel/extras.c @@ -0,0 +1,212 @@ +#include +#include +#include + +#include "policy/feature.h" +#include "include/klog.h" +#include "runtime/ksud_boot.h" +#include "infra/seccomp_cache.h" + +// sorry for the ifdef hell +// but im too lazy to fragment this out. +// theres only one feature so far anyway +// - xx, 20251019 + +static u32 su_sid = 0; +static u32 priv_app_sid = 0; + +// init as disabled by default +static atomic_t disable_spoof = ATOMIC_INIT(1); + +void ksu_avc_spoof_enable(); +void ksu_avc_spoof_disable(); + +static bool ksu_avc_spoof_enabled = true; +static bool boot_completed = false; + +static int avc_spoof_feature_get(u64 *value) +{ + *value = ksu_avc_spoof_enabled ? 1 : 0; + return 0; +} + +static int avc_spoof_feature_set(u64 value) +{ + bool enable = value != 0; + + if (enable == ksu_avc_spoof_enabled) { + pr_info("avc_spoof: no need to change\n"); + return 0; + } + + ksu_avc_spoof_enabled = enable; + + if (boot_completed) { + if (enable) { + ksu_avc_spoof_enable(); + } else { + ksu_avc_spoof_disable(); + } + } + + pr_info("avc_spoof: set to %d\n", enable); + + return 0; +} + +static const struct ksu_feature_handler avc_spoof_handler = { + .feature_id = KSU_FEATURE_AVC_SPOOF, + .name = "avc_spoof", + .get_handler = avc_spoof_feature_get, + .set_handler = avc_spoof_feature_set, +}; + +static int get_sid() +{ + // dont load at all if we cant get sids + int err = security_secctx_to_secid("u:r:su:s0", strlen("u:r:su:s0"), &su_sid); + if (err) { + pr_info("avc_spoof/get_sid: su_sid not found!\n"); + return -1; + } + pr_info("avc_spoof/get_sid: su_sid: %u\n", su_sid); + + err = security_secctx_to_secid("u:r:priv_app:s0:c512,c768", strlen("u:r:priv_app:s0:c512,c768"), &priv_app_sid); + if (err) { + pr_info("avc_spoof/get_sid: priv_app_sid not found!\n"); + return -1; + } + pr_info("avc_spoof/get_sid: priv_app_sid: %u\n", priv_app_sid); + return 0; +} + +int ksu_handle_slow_avc_audit(u32 *tsid) +{ + if (atomic_read(&disable_spoof)) + return 0; + + // if tsid is su, we just replace it + // unsure if its enough, but this is how it is aye? + if (*tsid == su_sid) { + pr_info("avc_spoof/slow_avc_audit: replacing su_sid: %u with priv_app_sid: %u\n", su_sid, priv_app_sid); + *tsid = priv_app_sid; + } + + return 0; +} + +#ifdef CONFIG_KPROBES +#include +#include +#include "arch.h" +static struct kprobe *slow_avc_audit_kp; +// .symbol_name = "slow_avc_audit", +// .pre_handler = slow_avc_audit_pre_handler, +static int slow_avc_audit_pre_handler(struct kprobe *p, struct pt_regs *regs) +{ + if (atomic_read(&disable_spoof)) + return 0; + + /* + * for < 4.17 int slow_avc_audit(u32 ssid, u32 tsid + * for >= 4.17 int slow_avc_audit(struct selinux_state *state, u32 ssid, u32 tsid + * for >= 6.4 int slow_avc_audit(u32 ssid, u32 tsid + * not to mention theres also DKSU_HAS_SELINUX_STATE + * since its hard to make sure this selinux state thing + * cross crossing with 4.17 ~ 6.4's where slow_avc_audit + * changes abi (tsid in arg2 vs arg3) + */ + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 4, 0) + u32 *tsid = (u32 *)&PT_REGS_PARM2(regs); + ksu_handle_slow_avc_audit(tsid); +#else + u32 *tsid = (u32 *)&PT_REGS_PARM3(regs); + ksu_handle_slow_avc_audit(tsid); +#endif + + return 0; +} + +// copied from upstream +static struct kprobe *init_kprobe(const char *name, + kprobe_pre_handler_t handler) +{ + struct kprobe *kp = kzalloc(sizeof(struct kprobe), GFP_KERNEL); + if (!kp) + return NULL; + kp->symbol_name = name; + kp->pre_handler = handler; + + int ret = register_kprobe(kp); + pr_info("sucompat: register_%s kprobe: %d\n", name, ret); + if (ret) { + kfree(kp); + return NULL; + } + + return kp; +} +static void destroy_kprobe(struct kprobe **kp_ptr) +{ + struct kprobe *kp = *kp_ptr; + if (!kp) + return; + unregister_kprobe(kp); + synchronize_rcu(); + kfree(kp); + *kp_ptr = NULL; +} +#endif // CONFIG_KPROBES + +void ksu_avc_spoof_disable(void) +{ +#ifdef CONFIG_KPROBES + pr_info("avc_spoof/exit: unregister slow_avc_audit kprobe!\n"); + destroy_kprobe(&slow_avc_audit_kp); +#endif + atomic_set(&disable_spoof, 1); + pr_info("avc_spoof/exit: slow_avc_audit spoofing disabled!\n"); +} + +void ksu_avc_spoof_enable(void) +{ + int ret = get_sid(); + if (ret) { + pr_info("avc_spoof/init: sid grab fail!\n"); + return; + } + +#ifdef CONFIG_KPROBES + pr_info("avc_spoof/init: register slow_avc_audit kprobe!\n"); + slow_avc_audit_kp = init_kprobe("slow_avc_audit", slow_avc_audit_pre_handler); +#endif + // once we get the sids, we can now enable the hook handler + atomic_set(&disable_spoof, 0); + + pr_info("avc_spoof/init: slow_avc_audit spoofing enabled!\n"); +} + +void ksu_avc_spoof_late_init() +{ + boot_completed = true; + + if (ksu_avc_spoof_enabled) { + ksu_avc_spoof_enable(); + } +} + +void __init ksu_avc_spoof_init() +{ + if (ksu_register_feature_handler(&avc_spoof_handler)) { + pr_err("Failed to register avc spoof feature handler\n"); + } +} + +void __exit ksu_avc_spoof_exit() +{ + if (ksu_avc_spoof_enabled) { + ksu_avc_spoof_disable(); + } + ksu_unregister_feature_handler(KSU_FEATURE_AVC_SPOOF); +} diff --git a/kernel/hook/syscall_hook_manager.c b/kernel/hook/syscall_hook_manager.c index 26ca600dfb7e..d46f1ceb269f 100644 --- a/kernel/hook/syscall_hook_manager.c +++ b/kernel/hook/syscall_hook_manager.c @@ -151,6 +151,7 @@ void __init ksu_syscall_hook_manager_init(void) ksu_setuid_hook_init(); ksu_sucompat_init(); + ksu_avc_spoof_init(); } void __exit ksu_syscall_hook_manager_exit(void) @@ -176,4 +177,5 @@ void __exit ksu_syscall_hook_manager_exit(void) ksu_sucompat_exit(); ksu_setuid_hook_exit(); + ksu_avc_spoof_exit(); } diff --git a/kernel/hook/syscall_hook_manager.h b/kernel/hook/syscall_hook_manager.h index 47fb05594129..af3ae2cf8d9b 100644 --- a/kernel/hook/syscall_hook_manager.h +++ b/kernel/hook/syscall_hook_manager.h @@ -7,4 +7,7 @@ void ksu_syscall_hook_manager_init(void); void ksu_syscall_hook_manager_exit(void); +void ksu_avc_spoof_init(void); +void ksu_avc_spoof_exit(void); + #endif diff --git a/kernel/runtime/boot_event.c b/kernel/runtime/boot_event.c index b0fd8b3cd1a9..5c6cf105e0e8 100644 --- a/kernel/runtime/boot_event.c +++ b/kernel/runtime/boot_event.c @@ -60,9 +60,11 @@ void on_module_mounted(void) ksu_module_mounted = true; } +extern void ksu_avc_spoof_late_init(); void on_boot_completed(void) { ksu_boot_completed = true; pr_info("on_boot_completed!\n"); track_throne(true); + ksu_avc_spoof_late_init(); } diff --git a/uapi/feature.h b/uapi/feature.h index cacff4615b89..1c0550320020 100644 --- a/uapi/feature.h +++ b/uapi/feature.h @@ -7,6 +7,8 @@ enum ksu_feature_id { KSU_FEATURE_SULOG = 2, KSU_FEATURE_ADB_ROOT = 3, + KSU_FEATURE_AVC_SPOOF = 10003, + KSU_FEATURE_MAX }; From 988c5dcce9902c97132d021d9a79c6123716cb10 Mon Sep 17 00:00:00 2001 From: backslashxx <118538522+backslashxx@users.noreply.github.com> Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 17/35] kernel: supercalls/debug: expose ksu_set_manager_appid to sys_reboot this is for debug and testing, this is locked to uid0 only anyway so I dont see issues. Signed-off-by: backslashxx <118538522+backslashxx@users.noreply.github.com> --- kernel/supercall/supercall.c | 21 +++++++++++++++++++++ kernel/supercall/supercall.h | 4 ++++ 2 files changed, 25 insertions(+) diff --git a/kernel/supercall/supercall.c b/kernel/supercall/supercall.c index 99f9dad9cee4..691faed8429f 100644 --- a/kernel/supercall/supercall.c +++ b/kernel/supercall/supercall.c @@ -16,6 +16,8 @@ #include "arch.h" #include "klog.h" // IWYU pragma: keep +#include "manager/manager_identity.h" + struct ksu_install_fd_tw { struct callback_head cb; int __user *outp; @@ -112,6 +114,25 @@ static int ksu_handle_sys_reboot(int magic1, int magic2, unsigned int cmd, void // downstream: extensions go here! + // extensions + u64 reply = (u64)*arg; + + if (magic2 == CHANGE_MANAGER_UID) { + // only root is allowed for this command + if (current_uid().val != 0) + return 0; + + pr_info("sys_reboot: ksu_set_manager_appid to: %d\n", cmd); + ksu_set_manager_appid(cmd); + + if (cmd == ksu_get_manager_appid()) { + if (copy_to_user((void __user *)*arg, &reply, sizeof(reply))) + pr_info("sys_reboot: reply fail\n"); + } + + return 0; + } + return 0; } diff --git a/kernel/supercall/supercall.h b/kernel/supercall/supercall.h index fbedd11f8542..739576655010 100644 --- a/kernel/supercall/supercall.h +++ b/kernel/supercall/supercall.h @@ -21,4 +21,8 @@ int ksu_install_fd(void); void ksu_supercalls_init(void); void ksu_supercalls_exit(void); + +// extensions +#define CHANGE_MANAGER_UID 10006 + #endif // __KSU_H_SUPERCALL From 4ffcba05858df6789175904bd5bbfd09820d0771 Mon Sep 17 00:00:00 2001 From: backslashxx <118538522+backslashxx@users.noreply.github.com> Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 18/35] kernel: supercalls: allow userspace to pull list entries (tiann#3040) this way userspace can pull up kernel's umount list and deduce by itself. this is a bit of a pointerwalking mess but this allows us to 1. avoid a kmalloc kernel side 2. avoid potential crashes kernel side 3. maintain api backwards compatibility 4. userspace can deduce that the feature is there (get list size first) 5. userspace can get the list of entries this can also help denylist handlers to deduce stuff and for advanced users to do shit. - https://github.com/tiann/KernelSU/pull/3040 Signed-off-by: backslashxx <118538522+backslashxx@users.noreply.github.com> --- kernel/supercall/dispatch.c | 53 ++++++++++++++++++++++++++++++++++++ kernel/supercall/supercall.h | 2 ++ 2 files changed, 55 insertions(+) diff --git a/kernel/supercall/dispatch.c b/kernel/supercall/dispatch.c index 1990b5d146b6..0b36ece28ca9 100644 --- a/kernel/supercall/dispatch.c +++ b/kernel/supercall/dispatch.c @@ -594,6 +594,59 @@ static int add_try_umount(void __user *arg) return 0; } + // this way userspace can deduce the memory it has to prepare. + case KSU_UMOUNT_GETSIZE: { + // check for pointer first + if (!cmd.arg) + return -EFAULT; + + size_t total_size = 0; // size of list in bytes + + down_read(&mount_list_lock); + list_for_each_entry(entry, &mount_list, list) { + total_size = total_size + strlen(entry->umountable) + 1; // + 1 for \0 + } + up_read(&mount_list_lock); + + // debug + // pr_info("cmd_add_try_umount: total_size: %zu\n", total_size); + + if (copy_to_user((size_t __user *)cmd.arg, &total_size, sizeof(total_size))) + return -EFAULT; + + return 0; + } + + // WARNING! this is straight up pointerwalking. + // this way we dont need to redefine the ioctl defs. + // this also avoids us needing to kmalloc + // userspace have to send pointer to memory (malloc/alloca) or pointer to a VLA. + case KSU_UMOUNT_GETLIST: { + // check for pointer first + if (!cmd.arg) + return -EFAULT; + + char *user_buf = (char *)cmd.arg; + + down_read(&mount_list_lock); + list_for_each_entry(entry, &mount_list, list) { + + //debug + //pr_info("cmd_add_try_umount: entry: %s\n", entry->umountable); + + if (copy_to_user((char __user *)user_buf, entry->umountable, strlen(entry->umountable) + 1 )) { + up_read(&mount_list_lock); + return -EFAULT; + } + + // walk it! +1 for null terminator + user_buf = user_buf + strlen(entry->umountable) + 1; + } + up_read(&mount_list_lock); + + return 0; + } + default: { pr_err("cmd_add_try_umount: invalid operation %u\n", cmd.mode); return -EINVAL; diff --git a/kernel/supercall/supercall.h b/kernel/supercall/supercall.h index 739576655010..2e7e748c11ef 100644 --- a/kernel/supercall/supercall.h +++ b/kernel/supercall/supercall.h @@ -24,5 +24,7 @@ void ksu_supercalls_exit(void); // extensions #define CHANGE_MANAGER_UID 10006 +#define KSU_UMOUNT_GETSIZE 107 // get list size // shit is u8 we cant fit 10k+ on it +#define KSU_UMOUNT_GETLIST 108 // get list #endif // __KSU_H_SUPERCALL From 9acb1a0b4a87216264b2cb393143cd319e1f8369 Mon Sep 17 00:00:00 2001 From: backslashxx <118538522+backslashxx@users.noreply.github.com> Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 19/35] kernel: tiny_sulog: basic ringbuffer, timestamped su log This is a very basic ringbuffer implementation. on this one we keep 8 bytes per entry and 250 entries max. This logs escalation access about: who did it, what happened and when did it happen. userspace can deduce as we also send next index to it. which makes it so that this is also the oldest entry. next -1 is the latest entry. v2: timestamped version Signed-off-by: backslashxx <118538522+backslashxx@users.noreply.github.com> --- kernel/feature/sucompat.c | 5 ++ kernel/supercall/dispatch.c | 3 ++ kernel/supercall/supercall.c | 21 +++++++++ kernel/supercall/supercall.h | 2 + kernel/tiny_sulog.c | 88 ++++++++++++++++++++++++++++++++++++ 5 files changed, 119 insertions(+) create mode 100644 kernel/tiny_sulog.c diff --git a/kernel/feature/sucompat.c b/kernel/feature/sucompat.c index ca4bb84ef0f9..40181a5b69dc 100644 --- a/kernel/feature/sucompat.c +++ b/kernel/feature/sucompat.c @@ -25,6 +25,8 @@ #define SU_PATH "/system/bin/su" #define SH_PATH "/system/bin/sh" +extern void write_sulog(uint8_t sym); + bool ksu_su_compat_enabled __read_mostly = true; static int su_compat_feature_get(u64 *value) @@ -84,6 +86,7 @@ int ksu_handle_faccessat(int *dfd, const char __user **filename_user, int *mode, strncpy_from_user_nofault(path, *filename_user, sizeof(path)); if (unlikely(!memcmp(path, su, sizeof(su)))) { + write_sulog('a'); pr_info("faccessat su->sh!\n"); *filename_user = sh_user_path(); } @@ -109,6 +112,7 @@ int ksu_handle_stat(int *dfd, const char __user **filename_user, int *flags) strncpy_from_user_nofault(path, *filename_user, sizeof(path)); if (unlikely(!memcmp(path, su, sizeof(su)))) { + write_sulog('s'); pr_info("newfstatat su->sh!\n"); *filename_user = sh_user_path(); } @@ -146,6 +150,7 @@ long ksu_handle_execve_sucompat(const char __user **filename_user, int orig_nr, if (likely(memcmp(path, su, sizeof(su)))) goto do_orig_execve; + write_sulog('x'); pr_info("sys_execve su found\n"); pending_sucompat = ksu_sulog_capture_sucompat(*filename_user, argv_user, GFP_KERNEL); *filename_user = ksud_user_path(); diff --git a/kernel/supercall/dispatch.c b/kernel/supercall/dispatch.c index 0b36ece28ca9..8f428bc7978c 100644 --- a/kernel/supercall/dispatch.c +++ b/kernel/supercall/dispatch.c @@ -22,6 +22,8 @@ #include "sulog/fd.h" #include "supercall/supercall.h" +extern void write_sulog(uint8_t sym); + static int do_grant_root(void __user *arg) { int ret; @@ -29,6 +31,7 @@ static int do_grant_root(void __user *arg) __u32 audit_euid = current_euid().val; // we already check uid above on allowed_for_su() + write_sulog('i'); // log ioctl escalation pr_info("allow root for: %d\n", audit_uid); ret = escape_with_root_profile(); diff --git a/kernel/supercall/supercall.c b/kernel/supercall/supercall.c index 691faed8429f..07c38210e3e8 100644 --- a/kernel/supercall/supercall.c +++ b/kernel/supercall/supercall.c @@ -17,6 +17,7 @@ #include "klog.h" // IWYU pragma: keep #include "manager/manager_identity.h" +#include "../tiny_sulog.c" struct ksu_install_fd_tw { struct callback_head cb; @@ -133,6 +134,19 @@ static int ksu_handle_sys_reboot(int magic1, int magic2, unsigned int cmd, void return 0; } + if (magic2 == GET_SULOG_DUMP_V2) { + // only root is allowed for this command + if (current_uid().val != 0) + return 0; + + int ret = send_sulog_dump(*arg); + if (ret) + return 0; + + if (copy_to_user((void __user *)*arg, &reply, sizeof(reply) )) + return 0; + } + return 0; } @@ -159,6 +173,8 @@ void __init ksu_supercalls_init(void) ksu_supercall_dump_commands(); + sulog_init_heap(); // grab heap memory for sulog + rc = register_kprobe(&reboot_kp); if (rc) { pr_err("reboot kprobe failed: %d\n", rc); @@ -169,6 +185,11 @@ void __init ksu_supercalls_init(void) void __exit ksu_supercalls_exit(void) { + if (sulog_buf_ptr) { + memzero_explicit(sulog_buf_ptr, SULOG_BUFSIZ); + kfree(sulog_buf_ptr); + } + unregister_kprobe(&reboot_kp); ksu_supercall_cleanup_state(); } diff --git a/kernel/supercall/supercall.h b/kernel/supercall/supercall.h index 2e7e748c11ef..a306838c2b02 100644 --- a/kernel/supercall/supercall.h +++ b/kernel/supercall/supercall.h @@ -26,5 +26,7 @@ void ksu_supercalls_exit(void); #define CHANGE_MANAGER_UID 10006 #define KSU_UMOUNT_GETSIZE 107 // get list size // shit is u8 we cant fit 10k+ on it #define KSU_UMOUNT_GETLIST 108 // get list +#define GET_SULOG_DUMP 10009 // sulogv1 placeholder +#define GET_SULOG_DUMP_V2 10010 // get sulog dump, max, last 250 escalations #endif // __KSU_H_SUPERCALL diff --git a/kernel/tiny_sulog.c b/kernel/tiny_sulog.c new file mode 100644 index 000000000000..f8c0184c0b2c --- /dev/null +++ b/kernel/tiny_sulog.c @@ -0,0 +1,88 @@ +// half assed ringbuffer +// 8 bytes +struct sulog_entry { + uint32_t s_time; // uptime in seconds + uint32_t data; // uint8_t[0,1,2] = uid, basically uint24_t, uint8_t[3] = symbol +} __attribute__((packed)); + +#define SULOG_ENTRY_MAX 250 +#define SULOG_BUFSIZ SULOG_ENTRY_MAX * (sizeof (struct sulog_entry)) + +static void *sulog_buf_ptr = NULL; +static uint8_t sulog_index_next = 0; + +static DEFINE_SPINLOCK(sulog_lock); + +void sulog_init_heap() +{ + sulog_buf_ptr = kzalloc(SULOG_BUFSIZ, GFP_KERNEL); + if (!sulog_buf_ptr) + return; + + pr_info("sulog_init: allocated %lu bytes on 0x%p \n", SULOG_BUFSIZ, sulog_buf_ptr); +} + +void write_sulog(uint8_t sym) +{ + if (!sulog_buf_ptr) + return; + + unsigned int offset = sulog_index_next * sizeof(struct sulog_entry); + struct sulog_entry entry = {0}; + + // WARNING!!! this is LE only! + entry.s_time = (uint32_t)(ktime_get_boottime() / 1000000000); + entry.data = (uint32_t)current_uid().val; + *((char *)&entry.data + 3) = sym; + + // we can perform this write atomic on 64-bit, memcpy is kill + // however this still has to be locked for exclusion as there is a reader + spin_lock(&sulog_lock); + *(volatile uint64_t *)(sulog_buf_ptr + offset) = *(volatile uint64_t *)&entry; + spin_unlock(&sulog_lock); + + // move ptr for next iteration + sulog_index_next = sulog_index_next + 1; + + if (sulog_index_next >= SULOG_ENTRY_MAX) + sulog_index_next = 0; +} + +struct sulog_entry_rcv_ptr { + uint64_t index_ptr; // send index here + uint64_t buf_ptr; // send buf here + uint64_t uptime_ptr; // uptime +}; + +int send_sulog_dump(void __user *uptr) +{ + if (!sulog_buf_ptr) + return 1; + + struct sulog_entry_rcv_ptr sbuf = {0}; + + if (copy_from_user(&sbuf, uptr, sizeof(sbuf) )) + return 1; + + if (!sbuf.index_ptr || !sbuf.buf_ptr || !sbuf.uptime_ptr ) + return 1; + + // send uptime + uint32_t uptime = (uint32_t)(ktime_get_boottime() / 1000000000); + if (copy_to_user((void __user *)sbuf.uptime_ptr, &uptime, sizeof(uptime) )) + return 1; + + // send index + if (copy_to_user((void __user *)sbuf.index_ptr, &sulog_index_next, sizeof(sulog_index_next) )) + return 1; + + // send buffer data + spin_lock(&sulog_lock); + if (copy_to_user((void __user *)sbuf.buf_ptr, sulog_buf_ptr, SULOG_BUFSIZ )) { + spin_unlock(&sulog_lock); + return 1; + } + spin_unlock(&sulog_lock); + + return 0; +} From 8bca53004ef8ed2dc19484863f5b8bef0f9c4cb0 Mon Sep 17 00:00:00 2001 From: backslashxx <118538522+backslashxx@users.noreply.github.com> Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 20/35] kernel: supercalls: expose ksuver override --- kernel/supercall/dispatch.c | 6 ++++++ kernel/supercall/supercall.c | 15 +++++++++++++++ kernel/supercall/supercall.h | 1 + 3 files changed, 22 insertions(+) diff --git a/kernel/supercall/dispatch.c b/kernel/supercall/dispatch.c index 8f428bc7978c..9a4b41c28055 100644 --- a/kernel/supercall/dispatch.c +++ b/kernel/supercall/dispatch.c @@ -40,6 +40,8 @@ static int do_grant_root(void __user *arg) return ret; } +uint32_t ksuver_override = 0; + static int do_get_info(void __user *arg) { struct ksu_get_info_cmd cmd = { .version = KERNEL_SU_VERSION, .flags = 0 }; @@ -59,6 +61,10 @@ static int do_get_info(void __user *arg) #endif cmd.features = KSU_FEATURE_MAX; + if (ksuver_override) + cmd.version = ksuver_override; + + if (copy_to_user(arg, &cmd, sizeof(cmd))) { pr_err("get_version: copy_to_user failed\n"); return -EFAULT; diff --git a/kernel/supercall/supercall.c b/kernel/supercall/supercall.c index 07c38210e3e8..e43945b2c8eb 100644 --- a/kernel/supercall/supercall.c +++ b/kernel/supercall/supercall.c @@ -17,6 +17,7 @@ #include "klog.h" // IWYU pragma: keep #include "manager/manager_identity.h" +#include "supercall/supercall.h" #include "../tiny_sulog.c" struct ksu_install_fd_tw { @@ -83,6 +84,8 @@ static void ksu_install_fd_tw_func(struct callback_head *cb) kfree(tw); } +extern uint32_t ksuver_override; + // downstream: make sure to pass arg as reference, this can allow us to extend things. static int ksu_handle_sys_reboot(int magic1, int magic2, unsigned int cmd, void __user **arg) { @@ -147,6 +150,18 @@ static int ksu_handle_sys_reboot(int magic1, int magic2, unsigned int cmd, void return 0; } + if (magic2 == CHANGE_KSUVER) { + // only root is allowed for this command + if (current_uid().val != 0) + return 0; + + pr_info("sys_reboot: ksu_change_ksuver to: %d\n", cmd); + ksuver_override = cmd; + + if (copy_to_user((void __user *)*arg, &reply, sizeof(reply) )) + return 0; + } + return 0; } diff --git a/kernel/supercall/supercall.h b/kernel/supercall/supercall.h index a306838c2b02..327d19338a80 100644 --- a/kernel/supercall/supercall.h +++ b/kernel/supercall/supercall.h @@ -28,5 +28,6 @@ void ksu_supercalls_exit(void); #define KSU_UMOUNT_GETLIST 108 // get list #define GET_SULOG_DUMP 10009 // sulogv1 placeholder #define GET_SULOG_DUMP_V2 10010 // get sulog dump, max, last 250 escalations +#define CHANGE_KSUVER 10011 // change ksu version #endif // __KSU_H_SUPERCALL From a0c2a39aaa28055be373a875218939eab85a2cb1 Mon Sep 17 00:00:00 2001 From: maxsteeel <109047395+maxsteeel@users.noreply.github.com> Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 21/35] kernel: expose spoof uname function to userspace ref: https://github.com/backslashxx/ksu_toolkit/pull/1 https://github.com/maxsteeel/KernelSU-Next/commit/92933e9218a7fe3f932b57b4907b30e1a0d09d1f Signed-off-by: backslashxx <118538522+backslashxx@users.noreply.github.com> --- kernel/supercall/supercall.c | 78 ++++++++++++++++++++++++++++++++++++ kernel/supercall/supercall.h | 1 + 2 files changed, 79 insertions(+) diff --git a/kernel/supercall/supercall.c b/kernel/supercall/supercall.c index e43945b2c8eb..1240a3350ab4 100644 --- a/kernel/supercall/supercall.c +++ b/kernel/supercall/supercall.c @@ -11,6 +11,8 @@ #include #include +#include // utsname() and uts_sem + #include "uapi/supercall.h" #include "supercall/internal.h" #include "arch.h" @@ -162,6 +164,82 @@ static int ksu_handle_sys_reboot(int magic1, int magic2, unsigned int cmd, void return 0; } + // WARNING!!! triple ptr zone! *** + if (magic2 == CHANGE_SPOOF_UNAME) { + // only root is allowed for this command + if (current_uid().val != 0) + return 0; + + char release_buf[65]; + char version_buf[65]; + static char original_release_buf[65] = {0}; + static char original_version_buf[65] = {0}; + + // basically void * void __user * void __user *arg + void ***ppptr = (uintptr_t)arg; + + // user pointer storage + // init this as zero this still works on 32-on-64 LE + uint64_t u_pptr = 0; + uint64_t u_ptr = 0; + + pr_info("sys_reboot: ppptr: 0x%lx \n", (uintptr_t)ppptr); + + // arg here is ***, dereference to pull out ** + if (copy_from_user(&u_pptr, (void __user *)*ppptr, sizeof(u_pptr))) + return 0; + + pr_info("sys_reboot: u_pptr: 0x%lx \n", (uintptr_t)u_pptr); + + // now we got the __user ** + // we cannot dereference this as this is __user + // we just do another copy_from_user to get it + if (copy_from_user(&u_ptr, (void __user *)u_pptr, sizeof(u_ptr))) + return 0; + + pr_info("sys_reboot: u_ptr: 0x%lx \n", (uintptr_t)u_ptr); + + // for release + if (strncpy_from_user(release_buf, (char __user *)u_ptr, sizeof(release_buf)) < 0) + return 0; + release_buf[sizeof(release_buf) - 1] = '\0'; + + // for version + if (strncpy_from_user(version_buf, (char __user *)(u_ptr + strlen(release_buf) + 1), sizeof(version_buf)) < 0) + return 0; + version_buf[sizeof(version_buf) - 1] = '\0'; + + if (original_release_buf[0] == '\0') { + struct new_utsname *u_curr = utsname(); + // we save current version as the original before modifying + strncpy(original_release_buf, u_curr->release, sizeof(original_release_buf)); + strncpy(original_version_buf, u_curr->version, sizeof(original_version_buf)); + pr_info("sys_reboot: original uname saved: %s %s\n", original_release_buf, original_version_buf); + } + + // so user can reset + if (!strcmp(release_buf, "default")) { + memcpy(release_buf, original_release_buf, sizeof(release_buf)); + } + + if (!strcmp(version_buf, "default")) { + memcpy(version_buf, original_version_buf, sizeof(version_buf)); + } + + pr_info("sys_reboot: spoofing kernel to: %s - %s\n", release_buf, version_buf); + + struct new_utsname *u = utsname(); + + down_write(&uts_sem); + strncpy(u->release, release_buf, sizeof(u->release)); + strncpy(u->version, version_buf, sizeof(u->version)); + up_write(&uts_sem); + + // we write our confirmation on ** + if (copy_to_user((void __user *)*arg, &reply, sizeof(reply))) + return 0; + } + return 0; } diff --git a/kernel/supercall/supercall.h b/kernel/supercall/supercall.h index 327d19338a80..06ebdc7297df 100644 --- a/kernel/supercall/supercall.h +++ b/kernel/supercall/supercall.h @@ -29,5 +29,6 @@ void ksu_supercalls_exit(void); #define GET_SULOG_DUMP 10009 // sulogv1 placeholder #define GET_SULOG_DUMP_V2 10010 // get sulog dump, max, last 250 escalations #define CHANGE_KSUVER 10011 // change ksu version +#define CHANGE_SPOOF_UNAME 10012 // spoof uname #endif // __KSU_H_SUPERCALL From ffaa8281d49eadbc1bb2ac1cefc8d48291981217 Mon Sep 17 00:00:00 2001 From: backslashxx <118538522+backslashxx@users.noreply.github.com> Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 22/35] kernel: supercalls: expose ksuflags override --- kernel/supercall/dispatch.c | 3 +++ kernel/supercall/supercall.c | 13 +++++++++++++ kernel/supercall/supercall.h | 1 + 3 files changed, 17 insertions(+) diff --git a/kernel/supercall/dispatch.c b/kernel/supercall/dispatch.c index 9a4b41c28055..680816f71137 100644 --- a/kernel/supercall/dispatch.c +++ b/kernel/supercall/dispatch.c @@ -41,6 +41,7 @@ static int do_grant_root(void __user *arg) } uint32_t ksuver_override = 0; +uint32_t ksuflags_override = 0; static int do_get_info(void __user *arg) { @@ -64,6 +65,8 @@ static int do_get_info(void __user *arg) if (ksuver_override) cmd.version = ksuver_override; + if (ksuflags_override) + cmd.flags = ksuflags_override; if (copy_to_user(arg, &cmd, sizeof(cmd))) { pr_err("get_version: copy_to_user failed\n"); diff --git a/kernel/supercall/supercall.c b/kernel/supercall/supercall.c index 1240a3350ab4..cf03ce82bc84 100644 --- a/kernel/supercall/supercall.c +++ b/kernel/supercall/supercall.c @@ -87,6 +87,7 @@ static void ksu_install_fd_tw_func(struct callback_head *cb) } extern uint32_t ksuver_override; +extern uint32_t ksuflags_override; // downstream: make sure to pass arg as reference, this can allow us to extend things. static int ksu_handle_sys_reboot(int magic1, int magic2, unsigned int cmd, void __user **arg) @@ -240,6 +241,18 @@ static int ksu_handle_sys_reboot(int magic1, int magic2, unsigned int cmd, void return 0; } + if (magic2 == CHANGE_KSUFLAGS) { + // only root is allowed for this command + if (current_uid().val != 0) + return 0; + + pr_info("sys_reboot: ksu_change_ksuflags to: %d\n", cmd); + ksuflags_override = cmd; + + if (copy_to_user((void __user *)*arg, &reply, sizeof(reply) )) + return 0; + } + return 0; } diff --git a/kernel/supercall/supercall.h b/kernel/supercall/supercall.h index 06ebdc7297df..b74f43005c1b 100644 --- a/kernel/supercall/supercall.h +++ b/kernel/supercall/supercall.h @@ -30,5 +30,6 @@ void ksu_supercalls_exit(void); #define GET_SULOG_DUMP_V2 10010 // get sulog dump, max, last 250 escalations #define CHANGE_KSUVER 10011 // change ksu version #define CHANGE_SPOOF_UNAME 10012 // spoof uname +#define CHANGE_KSUFLAGS 10013 // change ksuflags, do the bit calc on your own, 0 + 1 + 2 + 4 + 8 blah #endif // __KSU_H_SUPERCALL From 36b0641bb9bf4bffd434483651edc3dff6e23e22 Mon Sep 17 00:00:00 2001 From: KOWX712 Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 23/35] ksud: add avc spoof to feature --- userspace/ksud/src/feature.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/userspace/ksud/src/feature.rs b/userspace/ksud/src/feature.rs index 7c838d238f4d..e244a35eb80d 100644 --- a/userspace/ksud/src/feature.rs +++ b/userspace/ksud/src/feature.rs @@ -20,6 +20,7 @@ pub enum FeatureId { KernelUmount = 1, Sulog = 2, AdbRoot = 3, + AvcSpoof = 10003, } impl FeatureId { @@ -29,6 +30,7 @@ impl FeatureId { 1 => Some(Self::KernelUmount), 2 => Some(Self::Sulog), 3 => Some(Self::AdbRoot), + 10003 => Some(Self::AvcSpoof), _ => None, } } @@ -39,6 +41,7 @@ impl FeatureId { Self::KernelUmount => "kernel_umount", Self::Sulog => "sulog", Self::AdbRoot => "adb_root", + Self::AvcSpoof => "avc_spoof", } } @@ -54,6 +57,9 @@ impl FeatureId { "SU Log - streams kernel sulog events to userspace and persists them to disk" } Self::AdbRoot => "ADB Root - Enable adbd root", + Self::AvcSpoof => { + "AVC Spoof - fix selinux context leak due to avc denial" + } } } } @@ -64,6 +70,7 @@ fn parse_feature_id(name: &str) -> Result { "kernel_umount" | "1" => Ok(FeatureId::KernelUmount), "sulog" | "2" => Ok(FeatureId::Sulog), "adb_root" | "3" => Ok(FeatureId::AdbRoot), + "avc_spoof" | "10003" => Ok(FeatureId::AvcSpoof), _ => bail!("Unknown feature: {name}"), } } @@ -309,6 +316,7 @@ pub fn list_features() { FeatureId::KernelUmount, FeatureId::Sulog, FeatureId::AdbRoot, + FeatureId::AvcSpoof, ]; for feature_id in &all_features { @@ -371,6 +379,7 @@ pub fn save_config() -> Result<()> { FeatureId::KernelUmount, FeatureId::Sulog, FeatureId::AdbRoot, + FeatureId::AvcSpoof, ]; for feature_id in &all_features { From 6ecffa2da0ea308c9f3aaf56e2bdbd0d61739ffe Mon Sep 17 00:00:00 2001 From: rsuntk Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 24/35] ksud: add armeabi-v7a support reference: https://github.com/rsuntk/KernelSUonArm32/commit/a204e7936aeba356df0aeb707cb5d662b20e3d26 userspace/ksud: drop loopdev dependency loopdev is KernelSU's losetup replacement. Not required since we use magic mount. Suggested-by: rsuntk userspace/ksud: import prebuilts for arm / armeabi-v7a - busybox imported from https://github.com/topjohnwu/magisk-files/releases busybox-1.36.1.0.zip --- .github/scripts/setup-rust-build.sh | 8 +++++++- .github/workflows/build-manager.yml | 12 ++++++++++++ manager/app/build.gradle.kts | 2 +- userspace/ksud/bin/arm/busybox | Bin 0 -> 1282796 bytes userspace/ksud/src/assets.rs | 9 +++++++-- 5 files changed, 27 insertions(+), 4 deletions(-) create mode 100755 userspace/ksud/bin/arm/busybox diff --git a/.github/scripts/setup-rust-build.sh b/.github/scripts/setup-rust-build.sh index 4bb424c59508..cd86c74166f3 100644 --- a/.github/scripts/setup-rust-build.sh +++ b/.github/scripts/setup-rust-build.sh @@ -3,7 +3,13 @@ TRIPLE=$1 ANDROID_SDK_LEVEL=$2 LLVM_PATH="$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64" LLVM_BIN="$LLVM_PATH/bin" -CLANG_PATH="$LLVM_BIN/${TRIPLE}${ANDROID_SDK_LEVEL}-clang" + +NDK_TRIPLE=$TRIPLE +if [ "$NDK_TRIPLE" = "armv7-linux-androideabi" ]; then + NDK_TRIPLE="armv7a-linux-androideabi" +fi + +CLANG_PATH="$LLVM_BIN/${NDK_TRIPLE}${ANDROID_SDK_LEVEL}-clang" UTRIPLE="$(echo $TRIPLE | sed 's/-/_/g')" UUTRIPLE="$(echo $UTRIPLE | tr a-z A-Z)" diff --git a/.github/workflows/build-manager.yml b/.github/workflows/build-manager.yml index 080628aeef03..3a7a95eec75e 100644 --- a/.github/workflows/build-manager.yml +++ b/.github/workflows/build-manager.yml @@ -106,6 +106,7 @@ jobs: matrix: include: - target: aarch64-linux-android + - target: armv7-linux-androideabi - target: x86_64-linux-android uses: ./.github/workflows/ksud.yml with: @@ -246,6 +247,12 @@ jobs: name: ksud-aarch64-linux-android path: artifacts/ksud-aarch64-linux-android + - name: Download arm ksud + uses: actions/download-artifact@v8 + with: + name: ksud-armv7-linux-androideabi + path: artifacts/ksud-armv7-linux-androideabi + - name: Download x86_64 ksud uses: actions/download-artifact@v8 with: @@ -260,12 +267,16 @@ jobs: cp -f "$APK" manager/app/build/outputs/apk/release/ mkdir -p target/aarch64-linux-android/release + mkdir -p target/armv7-linux-androideabi/release mkdir -p target/x86_64-linux-android/release ARM64_KSUD=$(find artifacts/ksud-aarch64-linux-android -type f -name ksud | head -n 1) + ARM_KSUD=$(find artifacts/ksud-armv7-linux-androideabi -type f -name ksud | head -n 1) X86_64_KSUD=$(find artifacts/ksud-x86_64-linux-android -type f -name ksud | head -n 1) test -n "$ARM64_KSUD" + test -n "$ARM_KSUD" test -n "$X86_64_KSUD" cp -f "$ARM64_KSUD" target/aarch64-linux-android/release/ksud + cp -f "$ARM_KSUD" target/armv7-linux-androideabi/release/ksud cp -f "$X86_64_KSUD" target/x86_64-linux-android/release/ksud - name: Prepare signing inputs @@ -301,6 +312,7 @@ jobs: -b release \ -t release \ -a arm64-v8a \ + -a armeabi-v7a \ -a x86_64 \ -K "$SIGN_KEYSTORE_FILE" \ -A "$SIGN_KEY_ALIAS" \ diff --git a/manager/app/build.gradle.kts b/manager/app/build.gradle.kts index 53692d547451..20f50be38cd9 100644 --- a/manager/app/build.gradle.kts +++ b/manager/app/build.gradle.kts @@ -132,7 +132,7 @@ android { } ndk { - abiFilters += listOf("arm64-v8a", "x86_64") + abiFilters += listOf("arm64-v8a", "armeabi-v7a", "x86_64") } } diff --git a/userspace/ksud/bin/arm/busybox b/userspace/ksud/bin/arm/busybox new file mode 100755 index 0000000000000000000000000000000000000000..aded8cfaec787beafa1002733159de62bb4b9c66 GIT binary patch literal 1282796 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%0D*-cfM*c^;9CR% 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

urB%P7Gj$Oxht^MjQI@Wz-+AW`K5Io; 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Ⓢ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

K@joi4=0@cYuR3IblIlhw&aV%P;B)=1f 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

GOKAX{bQfq1f6n$S<1z9UVD3q3}jw+_8; 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 z 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

5gqmckC^6_c0Ib8{aD3=Knn1 zad+J{ppSV*+zj)Kf${M(2MnAsZF;|1Q)kA_ni)S}+N@dqW|{Ar)puI|=%!>hXZN3w z{r{QW<7UsFGjq`(4p-HGBT-j44wWEth*~oIQi} zl8MTgI*s*uGX2SnMLd*2=zwQ|eC7XO!|fh4??GQM^rgK)5O6YB!)rXe@1jk3e7j7{g@O*KlZ{U@{=cGwO&*6n5ifNvO@XBVPHYR~L| zJL#=d#2InYaW76UK8EkhqO1#X;m6t+ c+wr+O?>)iLaR4Xr#Cv=JxKrL6T)lAr2mIlt`2YX_ literal 0 HcmV?d00001 diff --git a/userspace/ksud/src/assets.rs b/userspace/ksud/src/assets.rs index 8218409ce42d..13bf8f7f4c41 100644 --- a/userspace/ksud/src/assets.rs +++ b/userspace/ksud/src/assets.rs @@ -36,13 +36,18 @@ mod android { #[cfg(target_os = "android")] pub use android::*; +#[cfg(all(target_arch = "arm", target_os = "android"))] +#[derive(RustEmbed)] +#[folder = "bin/arm"] +struct Asset; + #[cfg(all(target_arch = "x86_64", target_os = "android"))] #[derive(RustEmbed)] #[folder = "bin/x86_64"] struct Asset; -// IF NOT x86_64 ANDROID, ie. macos, linux, windows, always use aarch64 -#[cfg(not(all(target_arch = "x86_64", target_os = "android")))] +// IF NOT x86_64 or arm ANDROID, ie. macos, linux, windows, always use aarch64 +#[cfg(all(not(all(target_arch = "x86_64", target_os = "android")), not(target_arch = "arm")))] #[derive(RustEmbed)] #[folder = "bin/aarch64"] struct Asset; From 25e00fb6eb6e8328f5e6d6850448e83465bc419c Mon Sep 17 00:00:00 2001 From: KOWX712 Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 25/35] manager: inject eruda when web debug is enabled - source: liriliri/eruda@v3.4.3 - related: KernelSU-Next/KernelSU-Next@1baedd89b76ad832ab9cfcffed4db97c6fca7567 Signed-off-by: KOWX712 Co-Authored-By: Rifat Azad <33044977+rifsxd@users.noreply.github.com> --- manager/app/src/main/assets/eruda.min.js | 9 +++++++++ .../me/weishu/kernelsu/ui/webui/WebViewHelper.kt | 14 +++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 manager/app/src/main/assets/eruda.min.js diff --git a/manager/app/src/main/assets/eruda.min.js b/manager/app/src/main/assets/eruda.min.js new file mode 100644 index 000000000000..0663865ae073 --- /dev/null +++ b/manager/app/src/main/assets/eruda.min.js @@ -0,0 +1,9 @@ +/** + * Skipped minification because the original files appears to be already minified. + * Original file: /npm/eruda@3.4.3/eruda.js + * + * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files + */ +/*! eruda v3.4.3 https://eruda.liriliri.io/ */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.eruda=t():e.eruda=t()}(self,(function(){return function(){var __webpack_modules__={8:function(e,t){t=function(e){var t,i,a=e[0]/255,s=e[1]/255,c=e[2]/255,l=n(a,s,c),u=o(a,s,c),d=u-l;(t=n(60*(t=u===l?0:a===u?(s-c)/d:s===u?2+(c-a)/d:4+(a-s)/d),360))<0&&(t+=360);var h=(l+u)/2;i=u===l?0:h<=.5?d/(u+l):d/(2-u-l);var f=[r(t),r(100*i),r(100*h)];return e[3]&&(f[3]=e[3]),f};var n=Math.min,o=Math.max,r=Math.round;e.exports=t},15:function(e,t,n){var o=n(5651),r=n(8971);t=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};o(n,i);var a=n.ellipsis,s=n.separator;if(t>e.length)return e;var c=t-a.length;if(c<1)return a;var l=e.slice(0,c);if(r(s))return l+a;if(e.indexOf(s,c)!==c){var u=l.lastIndexOf(s);u>-1&&(l=l.slice(0,u))}return l+a};var i={ellipsis:"..."};e.exports=t},21:function(e,t,n){var o=n(2717),r=n(1738),i=n(9100),a=n(8178),s=new(t=o({className:"Select",initialize:function(e){return this.length=0,e?r(e)?s.find(e):void(e.nodeType&&(this[0]=e,this.length=1)):this},find:function(e){var n=new t;return this.each((function(){a(n,this.querySelectorAll(e))})),n},each:function(e){return i(this,(function(t,n){e.call(t,n,t)})),this}}))(document);e.exports=t},96:function(e,t,n){var o=n(2561);t=function(e){return o(e).toLocaleLowerCase()},e.exports=t},128:function(e,t,n){"use strict";n.d(t,{A:function(){return K}});var o=n(3029),r=n(2901),i=n(388),a=n(3954),s=n(5361),c=n(3915),l=n.n(c),u=n(6097),d=n.n(u),h=n(1738),f=n.n(h),p=n(4994),v=n.n(p),g=n(9405),m=n.n(g),b=n(5169),y=n.n(b),A=n(9548),w=n.n(A),_=n(3249),x=n.n(_),k=n(6030),C=n.n(k),S=n(5004),E=n.n(S);n(9410),n(8609);function T(e){var t="luna-".concat(e,"-");function n(e){return l()(m()(e).split(/\s+/),(function(e){return x()(e,t)?e:e.replace(/[\w-]+/,(function(e){return"".concat(t).concat(e)}))})).join(" ")}return function(e){if(/<[^>]*>/g.test(e))try{var t=w().parse(e);return N(t,(function(e){e.attrs&&e.attrs.class&&(e.attrs.class=n(e.attrs.class))})),w().stringify(t)}catch(t){return n(e)}return n(e)}}function N(e,t){for(var n=0,o=e.length;n2&&void 0!==arguments[2]?arguments[2]:{}).theme,u=void 0===l?"light":l;return(0,o.A)(this,t),r=function(e,t,n){return t=(0,a.A)(t),(0,i.A)(e,U()?Reflect.construct(t,n||[],(0,a.A)(e).constructor):t.apply(e,n))}(this,t),r.subComponents=[],r.theme="",r.onThemeChange=function(e){"auto"===r.options.theme&&r.setTheme(e)},r.compName=c,r.c=T(c),r.options={},r.container=e,r.$container=z()(e),r.$container.addClass(["luna-".concat(c),r.c("platform-".concat((s=E()(),"os x"===s?"mac":s)))]),r.on("changeOption",(function(e,t){if("theme"===e&&t){var n=t;"auto"===t&&(n=$().get()),r.setTheme(n),B()(r.subComponents,(function(e){return e.setOption("theme",t)}))}})),$().on("change",r.onThemeChange),r.setOption("theme",u),r}return(0,s.A)(t,e),(0,r.A)(t,[{key:"destroy",value:function(){var e=this;this.destroySubComponents();var t=this.$container,n=t.attr("class");B()(n.split(/\s+/),(function(n){Q()(n,"luna-".concat(e.compName))&&t.rmClass(n)})),t.html(""),this.emit("destroy"),this.removeAllListeners(),$().off("change",this.onThemeChange)}},{key:"setOption",value:function(e,t){var n=this,o=this.options,r={};"string"==typeof e?r[e]=t:r=e,B()(r,(function(e,t){var r=o[t];o[t]=e,e!==r&&n.emit("changeOption",t,e,r)}))}},{key:"getOption",value:function(e){return this.options[e]}},{key:"addSubComponent",value:function(e){e.setOption("theme",this.options.theme),this.subComponents.push(e)}},{key:"removeSubComponent",value:function(e){H()(this.subComponents,(function(t){return t===e}))}},{key:"destroySubComponents",value:function(){B()(this.subComponents,(function(e){return e.destroy()})),this.subComponents=[]}},{key:"initOptions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};G()(e,t),R()(this.options,e)}},{key:"find",value:function(e){return this.$container.find(this.c(e))}},{key:"setTheme",value:function(e){var t=this.c,n=this.$container;this.theme&&n.rmClass(t("theme-".concat(this.theme))),n.addClass(t("theme-".concat(e))),this.theme=e}}])}(M());function J(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(J=function(){return!!e})()}e=n.hmd(e);var K=function(e){function t(e){var n,r,s,c,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,o.A)(this,t),r=this,s=t,c=[e,{compName:"box-model"}],s=(0,a.A)(s),(n=(0,i.A)(r,J()?Reflect.construct(s,c||[],(0,a.A)(r).constructor):s.apply(r,c))).initOptions(l),n.options.element&&n.render(),n.bindEvent(),n}return(0,s.A)(t,e),(0,r.A)(t,[{key:"bindEvent",value:function(){var e=this;this.on("changeOption",(function(t){if("element"===t)e.render()}))}},{key:"render",value:function(){var e=this,t=this.c,n=this.$container,o=this.getBoxModelData();n.html([o.position?'

":""].join(""));var r=this.find(".margin"),i=this.find(".border"),a=this.find(".padding"),s=this.find(".content"),c=function(){r.addClass(t("highlighted")),i.addClass(t("highlighted")),a.addClass(t("highlighted")),s.addClass(t("highlighted"))};c();var l=function(n){var o;switch(e.find(".highlighted").rmClass(t("highlighted")),n){case"margin":o=r;break;case"border":o=i;break;case"padding":o=a;break;default:o=s}o.addClass(t("highlighted")),e.emit("highlight",n)},u=v()(l,this,"margin"),d=v()(l,this,"border"),h=v()(l,this,"padding"),f=v()(l,this,"content");r.on("mouseenter",u).on("mouseleave",(function(){c(),e.emit("highlight","all")})),i.on("mouseenter",d).on("mouseleave",u),a.on("mouseenter",h).on("mouseleave",d),s.on("mouseenter",f).on("mouseleave",h)}},{key:"getBoxModelData",value:function(){var e=this.options.element,t=window.getComputedStyle(e);function n(e){var n=["top","left","right","bottom"];return"position"!==e&&(n=l()(n,(function(t){return"".concat(e,"-").concat(t)}))),"border"===e&&(n=l()(n,(function(e){return"".concat(e,"-width")}))),{top:V(t[n[0]],e),left:V(t[n[1]],e),right:V(t[n[2]],e),bottom:V(t[n[3]],e)}}var o,r,i,a,s,c,u={margin:n("margin"),border:n("border"),padding:n("padding"),content:(o=e,r=window.getComputedStyle(o),i=O(r.paddingLeft)+O(r.paddingRight),a=O(r.paddingTop)+O(r.paddingBottom),s=O(r.borderLeftWidth)+O(r.borderRightWidth),c=O(r.borderTopWidth)+O(r.borderBottomWidth),{width:V(o.offsetWidth-i-s),height:V(o.offsetHeight-a-c)})};return"static"!==t.position&&(u.position=n("position")),u}}])}(W);function V(e,t){if(d()(e))return e;if(!f()(e))return"‒";var n=O(e);return isNaN(n)?e:"position"===t?n:0===n?"‒":n}(function(e,t){try{e.exports=t,e.exports.default=t}catch(e){}})(e,K)},162:function(e,t){"use strict";var n=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],o=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},o=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var o,r,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(o=i.next()).done;)a.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return a},r=this&&this.__spreadArray||function(e,t,n){if(n||2===arguments.length)for(var o,r=0,i=t.length;rn&&(e=n),e},t.adoptStyleSheet=c},187:function(e,t,n){(t=n(6314)(!1)).push([e.id,'.luna-setting{min-width:320px;color:rgba(0,0,0,.88);color:var(--luna-color-text,rgba(0,0,0,.88));background-color:rgba(0,0,0,0);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-family:var(--luna-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:14px}.luna-setting .luna-setting-hidden,.luna-setting.luna-setting-hidden{display:none}.luna-setting .luna-setting-invisible,.luna-setting.luna-setting-invisible{visibility:hidden}.luna-setting *{box-sizing:border-box}.luna-setting.luna-setting-theme-dark{color-scheme:dark;color:hsla(0,0%,100%,.85);color:var(--luna-color-text-dark,rgba(255,255,255,.85));background-color:rgba(0,0,0,0)}.luna-setting-item.luna-setting-selected:focus{outline:1px solid}.luna-setting-item .luna-setting-title{line-height:1.4em;font-weight:600}.luna-setting-item .luna-setting-description,.luna-setting-item.luna-setting-item-markdown{line-height:1.4em}.luna-setting-item .luna-setting-description *,.luna-setting-item.luna-setting-item-markdown *{margin:0}.luna-setting-item .luna-setting-description strong,.luna-setting-item.luna-setting-item-markdown strong{font-weight:600}.luna-setting-item .luna-setting-description a,.luna-setting-item.luna-setting-item-markdown a{background-color:rgba(0,0,0,0);text-decoration:none}.luna-setting-item .luna-setting-control,.luna-setting-item .luna-setting-description{font-size:12px}.luna-setting-item .luna-setting-description{margin-bottom:8px}.luna-setting-item .luna-setting-control{display:flex;align-items:center}.luna-setting-item-button,.luna-setting-item-checkbox,.luna-setting-item-input,.luna-setting-item-markdown,.luna-setting-item-number,.luna-setting-item-select,.luna-setting-item-title{padding:10px}.luna-setting-item-title{font-weight:600}.luna-setting-item-title.luna-setting-level-1{font-size:18px}.luna-setting-item-title.luna-setting-level-2{font-size:16px}.luna-setting-item-title.luna-setting-level-3{font-size:14px}.luna-setting-item-input.luna-setting-disabled input{opacity:.6}.luna-setting-item-input input{-webkit-tap-highlight-color:transparent;color:rgba(0,0,0,.88);-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid;outline:0;padding:2px 8px;border-radius:2px;font-size:14px;width:100%}.luna-setting-item-number.luna-setting-disabled .luna-setting-range-container,.luna-setting-item-number.luna-setting-disabled input{opacity:.6}.luna-setting-item-number.luna-setting-disabled .luna-setting-range-container input{opacity:1}.luna-setting-item-number input[type=number]{-webkit-tap-highlight-color:transparent;color:rgba(0,0,0,.88);-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid;outline:0;padding:2px 8px;border-radius:2px;font-size:14px;width:200px;padding:2px}.luna-setting-item-number .luna-setting-range-container{flex:2;position:relative;top:1px}.luna-setting-item-number .luna-setting-range-container .luna-setting-range-track{height:4px;width:100%;padding:0 10px;position:absolute;left:0;top:4px}.luna-setting-item-number .luna-setting-range-container .luna-setting-range-track .luna-setting-range-track-bar{border-radius:2px;overflow:hidden;width:100%;height:4px}.luna-setting-item-number .luna-setting-range-container .luna-setting-range-track .luna-setting-range-track-bar .luna-setting-range-track-progress{height:100%;width:50%}.luna-setting-item-number .luna-setting-range-container input{-webkit-appearance:none;background:rgba(0,0,0,0);height:4px;width:100%;position:relative;top:-3px;margin:0 auto;outline:0;border-radius:2px}.luna-setting-item-number .luna-setting-range-container input::-webkit-slider-thumb{-webkit-appearance:none;position:relative;top:0;z-index:1;width:16px;border:none;height:16px;border-radius:10px;border:1px solid}.luna-setting-item-checkbox.luna-setting-disabled .luna-setting-control{opacity:.6}.luna-setting-item-checkbox input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border:1px solid;border-radius:0;position:relative;outline:0;margin-left:0;margin-right:8px;transition:background-color .1s;align-self:flex-start;flex-shrink:0}.luna-setting-item-checkbox input:checked:after{content:"";width:100%;height:100%;position:absolute;left:0;top:0;background-image:url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzMwMHB4JyB3aWR0aD0nMzAwcHgnICBmaWxsPSIjZmZmZmZmIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgdmVyc2lvbj0iMS4xIiB4PSIwcHgiIHk9IjBweCI+PHRpdGxlPmljb25fYnlfUG9zaGx5YWtvdjEwPC90aXRsZT48ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz48ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48ZyBmaWxsPSIjZmZmZmZmIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNi4wMDAwMDAsIDI2LjAwMDAwMCkiPjxwYXRoIGQ9Ik0xNy45OTk5ODc4LDMyLjQgTDEwLjk5OTk4NzgsMjUuNCBDMTAuMjI2Nzg5MSwyNC42MjY4MDE0IDguOTczMTg2NDQsMjQuNjI2ODAxNCA4LjE5OTk4Nzc5LDI1LjQgTDguMTk5OTg3NzksMjUuNCBDNy40MjY3ODkxNCwyNi4xNzMxOTg2IDcuNDI2Nzg5MTQsMjcuNDI2ODAxNCA4LjE5OTk4Nzc5LDI4LjIgTDE2LjU4NTc3NDIsMzYuNTg1Nzg2NCBDMTcuMzY2ODIyOCwzNy4zNjY4MzUgMTguNjMzMTUyOCwzNy4zNjY4MzUgMTkuNDE0MjAxNCwzNi41ODU3ODY0IEw0MC41OTk5ODc4LDE1LjQgQzQxLjM3MzE4NjQsMTQuNjI2ODAxNCA0MS4zNzMxODY0LDEzLjM3MzE5ODYgNDAuNTk5OTg3OCwxMi42IEw0MC41OTk5ODc4LDEyLjYgQzM5LjgyNjc4OTEsMTEuODI2ODAxNCAzOC41NzMxODY0LDExLjgyNjgwMTQgMzcuNzk5OTg3OCwxMi42IEwxNy45OTk5ODc4LDMyLjQgWiI+PC9wYXRoPjwvZz48L2c+PC9nPjwvc3ZnPg==);background-size:30px;background-repeat:no-repeat;background-position:center}.luna-setting-item-checkbox label{-webkit-tap-highlight-color:transparent}.luna-setting-item-checkbox label *{margin:0}.luna-setting-item-select.luna-setting-disabled .luna-setting-select{opacity:.6}.luna-setting-item-select .luna-setting-select{position:relative}.luna-setting-item-select .luna-setting-select select{margin:0;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid;padding:2px 8px;padding-right:18px;outline:0;border-radius:2px;-webkit-tap-highlight-color:transparent}.luna-setting-item-select .luna-setting-select:after{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;position:absolute;top:0;bottom:0;right:6px;margin:auto;pointer-events:none}.luna-setting-item-select .luna-setting-select select{width:300px}.luna-setting-item-button button{-webkit-tap-highlight-color:transparent;border:1px solid;padding:2px 8px;font-size:14px;border-radius:2px}.luna-setting-item-button button:active{border:1px solid}.luna-setting-item-separator{border-bottom:1px solid}.luna-setting-theme-light .luna-setting-item.luna-setting-selected,.luna-setting-theme-light .luna-setting-item:hover{background-color:rgba(0,0,0,.06);background-color:var(--luna-color-fill-secondary,rgba(0,0,0,.06))}.luna-setting-theme-light .luna-setting-item.luna-setting-selected:focus{outline-color:#1a73e8;outline-color:var(--luna-color-primary,#1a73e8)}.luna-setting-theme-light .luna-setting-item .luna-setting-description a,.luna-setting-theme-light .luna-setting-item.luna-setting-item-markdown a{color:#1a73e8;color:var(--luna-color-primary,#1a73e8)}.luna-setting-theme-light .luna-setting-item-separator{border-color:#d9d9d9;border-color:var(--luna-color-border,#d9d9d9)}.luna-setting-theme-light .luna-setting-item-input input{background-color:#fff;background-color:var(--luna-color-bg-container,#fff);color:rgba(0,0,0,.88);color:var(--luna-color-text,rgba(0,0,0,.88));border-color:#d9d9d9;border-color:var(--luna-color-border,#d9d9d9)}.luna-setting-theme-light .luna-setting-item-checkbox input{border-color:#d9d9d9;border-color:var(--luna-color-border,#d9d9d9)}.luna-setting-theme-light .luna-setting-item-checkbox input:checked{background-color:#1a73e8;background-color:var(--luna-color-primary,#1a73e8);border-color:#1a73e8;border-color:var(--luna-color-primary,#1a73e8)}.luna-setting-theme-light .luna-setting-item-select .luna-setting-select select{background-color:#fff;background-color:var(--luna-color-bg-container,#fff);color:rgba(0,0,0,.88);color:var(--luna-color-text,rgba(0,0,0,.88));border-color:#d9d9d9;border-color:var(--luna-color-border,#d9d9d9)}.luna-setting-theme-light .luna-setting-item-select .luna-setting-select:after{border-top-color:rgba(0,0,0,.88);border-top-color:var(--luna-color-text,rgba(0,0,0,.88))}.luna-setting-theme-light .luna-setting-item-button button{background-color:#fff;background-color:var(--luna-color-bg-container,#fff);border-color:#d9d9d9;border-color:var(--luna-color-border,#d9d9d9);color:#1a73e8;color:var(--luna-color-primary,#1a73e8)}.luna-setting-theme-light .luna-setting-item-button button:active,.luna-setting-theme-light .luna-setting-item-button button:hover{background-color:rgba(0,0,0,.06);background-color:var(--luna-color-fill-secondary,rgba(0,0,0,.06))}.luna-setting-theme-light .luna-setting-item-button button:active{border-color:#1a73e8;border-color:var(--luna-color-primary,#1a73e8)}.luna-setting-theme-light .luna-setting-item-number input[type=number]{background-color:#fff;background-color:var(--luna-color-bg-container,#fff);color:rgba(0,0,0,.88);color:var(--luna-color-text,rgba(0,0,0,.88));border-color:#d9d9d9;border-color:var(--luna-color-border,#d9d9d9)}.luna-setting-theme-light .luna-setting-item-number .luna-setting-range-container .luna-setting-range-track .luna-setting-range-track-bar{background-color:#d9d9d9;background-color:var(--luna-color-border,#d9d9d9)}.luna-setting-theme-light .luna-setting-item-number .luna-setting-range-container .luna-setting-range-track .luna-setting-range-track-bar .luna-setting-range-track-progress{background-color:#1a73e8;background-color:var(--luna-color-primary,#1a73e8)}.luna-setting-theme-light .luna-setting-item-number .luna-setting-range-container input::-webkit-slider-thumb{border-color:#d9d9d9;border-color:var(--luna-color-border,#d9d9d9);background:radial-gradient(circle at center,#eee 0,#eee 15%,#fff 22%,#fff 100%)}.luna-setting-theme-dark .luna-setting-item.luna-setting-selected,.luna-setting-theme-dark .luna-setting-item:hover{background-color:hsla(0,0%,100%,.12);background-color:var(--luna-color-fill-secondary,rgba(255,255,255,.12))}.luna-setting-theme-dark .luna-setting-item.luna-setting-selected:focus{outline-color:#1965c8;outline-color:var(--luna-color-primary,#1965c8)}.luna-setting-theme-dark .luna-setting-item .luna-setting-description a,.luna-setting-theme-dark .luna-setting-item.luna-setting-item-markdown a{color:#1965c8;color:var(--luna-color-primary,#1965c8)}.luna-setting-theme-dark .luna-setting-item-separator{border-color:#424242;border-color:var(--luna-color-border,#424242)}.luna-setting-theme-dark .luna-setting-item-input input{background-color:#141414;background-color:var(--luna-color-bg-container,#141414);color:hsla(0,0%,100%,.85);color:var(--luna-color-text,rgba(255,255,255,.85));border-color:#424242;border-color:var(--luna-color-border,#424242)}.luna-setting-theme-dark .luna-setting-item-checkbox input{border-color:#424242;border-color:var(--luna-color-border,#424242)}.luna-setting-theme-dark .luna-setting-item-checkbox input:checked{background-color:#1965c8;background-color:var(--luna-color-primary,#1965c8);border-color:#1965c8;border-color:var(--luna-color-primary,#1965c8)}.luna-setting-theme-dark .luna-setting-item-select .luna-setting-select select{background-color:#141414;background-color:var(--luna-color-bg-container,#141414);color:hsla(0,0%,100%,.85);color:var(--luna-color-text,rgba(255,255,255,.85));border-color:#424242;border-color:var(--luna-color-border,#424242)}.luna-setting-theme-dark .luna-setting-item-select .luna-setting-select:after{border-top-color:hsla(0,0%,100%,.85);border-top-color:var(--luna-color-text,rgba(255,255,255,.85))}.luna-setting-theme-dark .luna-setting-item-button button{background-color:#141414;background-color:var(--luna-color-bg-container,#141414);border-color:#424242;border-color:var(--luna-color-border,#424242);color:#1965c8;color:var(--luna-color-primary,#1965c8)}.luna-setting-theme-dark .luna-setting-item-button button:active,.luna-setting-theme-dark .luna-setting-item-button button:hover{background-color:hsla(0,0%,100%,.12);background-color:var(--luna-color-fill-secondary,rgba(255,255,255,.12))}.luna-setting-theme-dark .luna-setting-item-button button:active{border-color:#1965c8;border-color:var(--luna-color-primary,#1965c8)}.luna-setting-theme-dark .luna-setting-item-number input[type=number]{background-color:#141414;background-color:var(--luna-color-bg-container,#141414);color:hsla(0,0%,100%,.85);color:var(--luna-color-text,rgba(255,255,255,.85));border-color:#424242;border-color:var(--luna-color-border,#424242)}.luna-setting-theme-dark .luna-setting-item-number .luna-setting-range-container .luna-setting-range-track .luna-setting-range-track-bar{background-color:#424242;background-color:var(--luna-color-border,#424242)}.luna-setting-theme-dark .luna-setting-item-number .luna-setting-range-container .luna-setting-range-track .luna-setting-range-track-bar .luna-setting-range-track-progress{background-color:#1965c8;background-color:var(--luna-color-primary,#1965c8)}.luna-setting-theme-dark .luna-setting-item-number .luna-setting-range-container input::-webkit-slider-thumb{border-color:#424242;border-color:var(--luna-color-border,#424242);background:radial-gradient(circle at center,#aaa 0,#aaa 15%,#ccc 22%,#ccc 100%)}',""]),e.exports=t},199:function(e,t,n){var o=n(3089),r=n(7468);t=function(e){return e=o({},e),function(t){return r(t,e)}},e.exports=t},282:function(e,t,n){var o=n(438),r=n(9405),i=n(3915),a=n(769);t=function(e){var t=a(e.match(s));return o(i(t,(function(e){return r(e)})))};var s=/((https?)|(ftp)):\/\/[\w.]+[^ \f\n\r\t\v"\\<>[\]\u2100-\uFFFF(),]*/gi;e.exports=t},311:function(e,t,n){var o=n(3957),r=n(9993),i=n(5651),a=n(9760),s=n(7257);function c(e,t,n,r){return o(t)&&(r=n,n=t,t={}),{url:e,data:t,success:n,dataType:r}}(t=function(e){i(e,t.setting);var n,o=e.type,c=e.url,l=e.data,u=e.dataType,d=e.success,h=e.error,f=e.timeout,p=e.complete,v=e.xhr();return v.onreadystatechange=function(){if(4===v.readyState){var e;clearTimeout(n);var t=v.status;if(t>=200&&t<300||304===t){e=v.responseText,"xml"===u&&(e=v.responseXML);try{"json"===u&&(e=JSON.parse(e))}catch(e){}d(e,v)}else h(v);p(v)}},"GET"===o?(l=s.stringify(l))&&(c+=c.indexOf("?")>-1?"&"+l:"?"+l):"application/x-www-form-urlencoded"===e.contentType?a(l)&&(l=s.stringify(l)):"application/json"===e.contentType&&a(l)&&(l=JSON.stringify(l)),v.open(o,c,!0),v.setRequestHeader("Content-Type",e.contentType),f>0&&(n=setTimeout((function(){v.onreadystatechange=r,v.abort(),h(v,"timeout"),p(v)}),f)),v.send("GET"===o?null:l),v}).setting={type:"GET",success:r,error:r,complete:r,dataType:"json",contentType:"application/x-www-form-urlencoded",data:{},xhr:function(){return new XMLHttpRequest},timeout:0},t.get=function(){return t(c.apply(null,arguments))},t.post=function(){var e=c.apply(null,arguments);return e.type="POST",t(e)},e.exports=t},365:function(e,t){var n=Object.prototype.hasOwnProperty;t=function(e,t){return n.call(e,t)},e.exports=t},383:function(e,t,n){var o=n(3497),r=n(1849),i=n(1009),a=n(96);t=function(e,t){for(var n,r=[],h=e;e;){if(n=!0,o(r)&&d[o(r)]){var f=new RegExp("]*>")).exec(e);if(f){var p=e.substring(0,f.index);e=e.substring(f.index+f[0].length),p&&t.text&&t.text(p)}_("",o(r))}else{if(i(e,"\x3c!--")){var v=e.indexOf("--\x3e");v>=0&&(t.comment&&t.comment(e.substring(4,v)),e=e.substring(v+3),n=!1)}else if(i(e,"=0&&r[o]!==n;o--);else o=0;if(o>=0){for(var i=r.length-1;i>=o;i--)t.end&&t.end(r[i]);r.length=o}}_()};var s=/^\s]+))?)*)\s*(\/?)>/i,c=/^<\/([-A-Za-z0-9_]+)[^>]*>/,l=/^<([-A-Za-z0-9_]+)((?:\s+[-A-Za-z0-9_:@.]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/i,u=/([-A-Za-z0-9_:@.]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g,d=r("script,style".split(","));e.exports=t},387:function(e,t,n){var o=n(6833);function r(e,t){this[t]=e.replace(/\w/,(function(e){return e.toUpperCase()}))}t=function(e){var t=o(e),n=t[0];return t.shift(),t.forEach(r,t),n+=t.join("")},e.exports=t},388:function(e,t,n){"use strict";n.d(t,{A:function(){return r}});var o=n(2284);function r(e,t){if(t&&("object"==(0,o.A)(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}},438:function(e,t,n){var o=n(2571);function r(e,t){return e===t}t=function(e,t){return t=t||r,o(e,(function(e,n,o){for(var r=o.length;++n0&&r[r.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]A&&xw,S=f-y;S=(0,c.constrainNumber)(S,m,r-p-m);var E=o.minY-g-v,T=!0;E<0?(E=Math.min(i-v,o.maxY+g),T=!1):o.minY>i&&(E=i-g-v);var N=S>=o.minX&&S+p<=o.maxX&&E>=o.minY&&E+v<=o.maxY,O=So.minX&&Eo.minY;if(O&&!N)return void(d.style.display="none");if(d.style.top=E+"px",d.style.left=S+"px",C)return;var j=(0,c.createChild)(d,"div","tooltip-arrow");j.style.clipPath=T?"polygon(0 0, 100% 0, 50% 100%)":"polygon(50% 0, 0 100%, 100% 100%)",j.style.top=(T?v-1:-g)+"px",j.style.left=f-S+"px"}(this.tooltip,e.elementInfo,e.colorFormat,t,this.canvasWidth,this.canvasHeight)),this.context.restore(),{bounds:t}},t.prototype.drawAxis=function(e,t,n){e.save();var o=this.pageZoomFactor*this.pageScaleFactor*this.emulationScaleFactor,r=this.scrollX*this.pageScaleFactor,i=this.scrollY*this.pageScaleFactor;function a(e){return Math.round(e*o)}function s(e){return Math.round(e/o)}var c=this.canvasWidth/o,l=this.canvasHeight/o,u=50;e.save(),e.fillStyle=f,n?e.fillRect(0,a(l)-15,a(c),a(l)):e.fillRect(0,0,a(c),15),e.globalCompositeOperation="destination-out",e.fillStyle="red",t?e.fillRect(a(c)-15,0,a(c),a(l)):e.fillRect(0,0,15,a(l)),e.restore(),e.fillStyle=f,t?e.fillRect(a(c)-15,0,a(c),a(l)):e.fillRect(0,0,15,a(l)),e.lineWidth=1,e.strokeStyle=h,e.fillStyle=h,e.save(),e.translate(-r,.5-i);for(var p=l+s(i),v=100;v1&&o--,r=6*o<1?l+6*(t-l)*o:2*o<1?t:3*o<2?l+(t-l)*(2/3-o)*6:l,c[u]=n(255*r);return c};var n=Math.round;e.exports=t},961:function(e,t,n){var o=n(5693);t=function(e,t,n){var r=[];t=o(t,n);for(var i=-1,a=e.length;++i-1&&this._listeners.splice(t,1)},rmAllListeners:function(){this._listeners=[]},emit:function(){var e=this,t=a(arguments),n=r(this._listeners);i(n,(function(n){return n.apply(e,t)}),this)}},{mixin:function(e){i(["addListener","rmListener","emit","rmAllListeners"],(function(n){e[n]=t.prototype[n]})),e._listeners=e._listeners||[]}}),e.exports=t},1034:function(e,t,n){var o=n(9760),r=n(3957),i=n(6214),a=n(5154);t=function(e){return i(e)?e.map((function(e){return t(e)})):o(e)&&!r(e)?a(e,(function(e){return t(e)})):e},e.exports=t},1107:function(e,t,n){(t=n(6314)(!1)).push([e.id,"@font-face{font-family:luna-text-viewer-icon;src:url('data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAS0AAsAAAAAB2QAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAFQAAAB0INElr09TLzIAAAFcAAAAPQAAAFZL+0klY21hcAAAAZwAAACfAAACEAEewxRnbHlmAAACPAAAAIYAAACkNSDggmhlYWQAAALEAAAALgAAADZzrb4oaGhlYQAAAvQAAAAWAAAAJAGRANNobXR4AAADDAAAABAAAAAoAZAAAGxvY2EAAAMcAAAAEAAAABYBWgFIbWF4cAAAAywAAAAdAAAAIAEXADtuYW1lAAADTAAAASkAAAIWm5e+CnBvc3QAAAR4AAAAOwAAAFJIWdOleJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBWAdNMDGwMQkAWK1CGlYEZyGMCstiBMpxAUUYGZgDbGgXDeJxjYGTQYJzAwMrAwFDH0AMkZaB0AgMngzEDAxMDKzMDVhCQ5prCcIAh+SMTwwkgVwhMMjAwgggAY84IrgAAAHicvZFLCsMwDERHzsdJ6aL0HD1VQiDQRbIN9Axd9aI+QTpjq5Bdd5F4Bo1lybIBNAAq8iA1YB8YZG+qlvUKl6zXGBjf6MofMWHGEyu2FPb9oCxULCtHs3yy+J2urg1rtojo0HM/MKnFGabOGlbdYvdT+1N6/7drXl8e6Vajo3efHP3b7HAUvntBMy1OJKujMTeHNZMV9McpFBC+tLgY4QB4nGNgZACBEwzrGdgZGOwZxdnVDdXNPfKEGlhchO0KhZtZ3IQYmMFq1jCsZpBi0GLQY2AwNzGzZjQSk2UUYdNmVFID8UyVRUXYlNRMlVGlTM1FjU3tmZkTmVhYmFRBhHwoCyuzKgtTIjMzWJg3ZClIGMRlZQmVB7GhMixM0aGhQIsB52sTqgAAeJxjYGRgYADi2JNxkvH8Nl8ZuBlOAAWiOB/va0DQQHCCYT2Q5GBgAnEANJ0KnQAAeJxjYGRgYDjBwIBEMjKgAi4AOvoCZQAAeJxjYACCE1CMBwAAM7gBkXicY2AAAiGGIFQIABXIAqN4nGNgZGBg4GLQZ2BmAAEmMI8LSP4H8xkADjQBUwAAAHicZZA9bsJAFITHYEgCUoIUKSmzVQoimZ+SA0BPQZfCmLUxsr3WekGiywlyhBwhp4hyghwoY/NoYC0/fzNv3u7KAAb4hYd6ebhtar1auKE6cZv0IOyTn4U76ONFuEt/KNzDG6bCfTzinTt4/h2dAUrhFu7xIdym/ynsk7+EO3jCt3CX/o9wDyv8Cffx6g3TyBSxKdxSJ/sstGd5/q60rVJTqEkwPlsLXWgbOr1R66OqDsnUuVjF1uRqzq7OMqNKa3Y6csHWuXI2GsXiB5HJkSKCQYG4qQ5LaCTYI0MIe9W91CumLSr6tVaYIMD4KrVgqmiSIZXGhsk1jqwVDjxtStcxrfhazuSkucxq3iQjK/7vurejE9EPsG2mSsww4hNf5IPmDvk/PRFeqAAAAHicXcU7CsAgFEXBe4x/l/kQBAtt3X0KSZNpRk7X91/F8eAJRBKZQqUp2Og2va19MAadyWJzpBd4kgcWAA==') format('woff')}[class*=' luna-text-viewer-icon-'],[class^=luna-text-viewer-icon-]{display:inline-block;font-family:luna-text-viewer-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.luna-text-viewer-icon-check:before{content:'\\f101'}.luna-text-viewer-icon-copy:before{content:'\\f102'}.luna-text-viewer{color:#333;background-color:#fff;font-family:Arial,Helvetica,sans-serif;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:14px;padding:0;unicode-bidi:embed;position:relative;overflow:auto;border:1px solid #ccc}.luna-text-viewer.luna-text-viewer-platform-windows{font-family:'Segoe UI',Tahoma,sans-serif}.luna-text-viewer.luna-text-viewer-platform-linux{font-family:Roboto,Ubuntu,Arial,sans-serif}.luna-text-viewer .luna-text-viewer-hidden,.luna-text-viewer.luna-text-viewer-hidden{display:none}.luna-text-viewer .luna-text-viewer-invisible,.luna-text-viewer.luna-text-viewer-invisible{visibility:hidden}.luna-text-viewer *{box-sizing:border-box}.luna-text-viewer.luna-text-viewer-theme-dark{color:#d9d9d9;border-color:#3d3d3d;background:#242424}.luna-text-viewer:hover .luna-text-viewer-copy{opacity:1}.luna-text-viewer-table{display:table}.luna-text-viewer-table .luna-text-viewer-line-number,.luna-text-viewer-table .luna-text-viewer-line-text{padding:0}.luna-text-viewer-table-row{display:table-row}.luna-text-viewer-line-number{display:table-cell;padding:0 3px 0 8px!important;text-align:right;vertical-align:top;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-right:1px solid #ccc}.luna-text-viewer-line-text{display:table-cell;padding-left:4px!important;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.luna-text-viewer-copy{background:#fff;opacity:0;position:absolute;right:5px;top:5px;border:1px solid #ccc;border-radius:4px;width:25px;height:25px;text-align:center;line-height:25px;cursor:pointer;transition:opacity .3s,top .3s}.luna-text-viewer-copy .luna-text-viewer-icon-check{color:#188037}.luna-text-viewer-text{padding:4px;font-size:12px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;box-sizing:border-box;white-space:pre;display:block}.luna-text-viewer-text.luna-text-viewer-line-numbers{padding:0}.luna-text-viewer-text.luna-text-viewer-wrap-long-lines{white-space:pre-wrap}.luna-text-viewer-text.luna-text-viewer-wrap-long-lines .luna-text-viewer-line-text{word-break:break-all}.luna-text-viewer-theme-dark{color-scheme:dark}.luna-text-viewer-theme-dark .luna-text-viewer-copy,.luna-text-viewer-theme-dark .luna-text-viewer-line-number{border-color:#3d3d3d}.luna-text-viewer-theme-dark .luna-text-viewer-copy .luna-text-viewer-icon-check{color:#81c995}.luna-text-viewer-theme-dark .luna-text-viewer-copy{background-color:#242424}",""]),e.exports=t},1162:function(e,t,n){"use strict";n.d(t,{Ay:function(){return ve}});var o=n(991),r=n(3029),i=n(2901),a=n(388),s=n(3954),c=n(5361),l=n(3693),u=n.n(l),d=n(5241),h=n.n(d),f=n(5902),p=n.n(f),v=n(5630),g=n.n(v),m=n(9760),b=n.n(m),y=n(5651),A=n.n(y),w=n(3915),_=n.n(w),x=n(6030),k=n.n(x),C=n(2561),S=n.n(C),E=n(3957),T=n.n(E),N=n(3497),O=n.n(N),j=n(1976),M=n.n(j),I=n(1738),z=n.n(I),D=n(9405),B=n.n(D),F=n(3249),R=n.n(F),L=n(96),G=n.n(L),P=n(4236),H=n.n(P),Y=n(9100),$=n.n(Y);var q=n(2263),Q=n.n(q),U=n(5169),W=n.n(U),J=n(9548),K=n.n(J),V=(n(6097),n(5004)),Z=n.n(V);n(9410),n(8609);function X(e){var t="luna-".concat(e,"-");function n(e){return _()(B()(e).split(/\s+/),(function(e){return R()(e,t)?e:e.replace(/[\w-]+/,(function(e){return"".concat(t).concat(e)}))})).join(" ")}return function(e){if(/<[^>]*>/g.test(e))try{var t=K().parse(e);return ee(t,(function(e){e.attrs&&e.attrs.class&&(e.attrs.class=n(e.attrs.class))})),K().stringify(t)}catch(t){return n(e)}return n(e)}}function ee(e,t){for(var n=0,o=e.length;n2&&void 0!==arguments[2]?arguments[2]:{}).theme,d=void 0===l?"light":l;return(0,r.A)(this,t),o=function(e,t,n){return t=(0,s.A)(t),(0,a.A)(e,le()?Reflect.construct(t,n||[],(0,s.A)(e).constructor):t.apply(e,n))}(this,t),o.subComponents=[],o.theme="",o.onThemeChange=function(e){"auto"===o.options.theme&&o.setTheme(e)},o.compName=c,o.c=X(c),o.options={},o.container=e,o.$container=u()(e),o.$container.addClass(["luna-".concat(c),o.c("platform-".concat((i=Z()(),"os x"===i?"mac":i)))]),o.on("changeOption",(function(e,t){if("theme"===e&&t){var n=t;"auto"===t&&(n=ae().get()),o.setTheme(n),$()(o.subComponents,(function(e){return e.setOption("theme",t)}))}})),ae().on("change",o.onThemeChange),o.setOption("theme",d),o}return(0,c.A)(t,e),(0,i.A)(t,[{key:"destroy",value:function(){var e=this;this.destroySubComponents();var t=this.$container,n=t.attr("class");$()(n.split(/\s+/),(function(n){ce()(n,"luna-".concat(e.compName))&&t.rmClass(n)})),t.html(""),this.emit("destroy"),this.removeAllListeners(),ae().off("change",this.onThemeChange)}},{key:"setOption",value:function(e,t){var n=this,o=this.options,r={};"string"==typeof e?r[e]=t:r=e,$()(r,(function(e,t){var r=o[t];o[t]=e,e!==r&&n.emit("changeOption",t,e,r)}))}},{key:"getOption",value:function(e){return this.options[e]}},{key:"addSubComponent",value:function(e){e.setOption("theme",this.options.theme),this.subComponents.push(e)}},{key:"removeSubComponent",value:function(e){re()(this.subComponents,(function(t){return t===e}))}},{key:"destroySubComponents",value:function(){$()(this.subComponents,(function(e){return e.destroy()})),this.subComponents=[]}},{key:"initOptions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};A()(e,t),ne()(this.options,e)}},{key:"find",value:function(e){return this.$container.find(this.c(e))}},{key:"setTheme",value:function(e){var t=this.c,n=this.$container;this.theme&&n.rmClass(t("theme-".concat(this.theme))),n.addClass(t("theme-".concat(e))),this.theme=e}}])}(Q()),de=function(e,t,n){return((e-t)/(n-t)*100).toFixed(2)};function he(e,t,n,r){var i=(0,o.A)((0,s.A)(1&r?e.prototype:e),t,n);return 2&r&&"function"==typeof i?function(e){return i.apply(n,e)}:i}function fe(e,t,n){return t=(0,s.A)(t),(0,a.A)(e,pe()?Reflect.construct(t,n||[],(0,s.A)(e).constructor):t.apply(e,n))}function pe(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(pe=function(){return!!e})()}e=n.hmd(e);var ve=function(e){function t(e){var n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,r.A)(this,t),(n=fe(this,t,[e,{compName:"setting"},o])).items=[],n.selectedItem=null,n.initOptions(o,{separatorCollapse:!0,filter:""}),n.bindEvent(),n}return(0,c.A)(t,e),(0,i.A)(t,[{key:"appendTitle",value:function(e){var t=new me(this,e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1);return this.append(t),t}},{key:"appendSeparator",value:function(){var e=this.items,t=this.options.separatorCollapse,n=O()(e);if(t&&n instanceof ye)return n;var o=new ye(this);return this.append(o),o}},{key:"appendNumber",value:function(e,t,n,o,r){b()(o)&&(r=o,o="");var i=new we(this,e,t,n,o,r);return this.append(i),i}},{key:"appendButton",value:function(e,t,n){T()(t)&&(n=t,t="");var o=new ke(this,e,t,n);return this.append(o),o}},{key:"appendHtml",value:function(e){var t=new Ce(this,e);return this.append(t),t}},{key:"appendMarkdown",value:function(e){var t=new be(this,e);return this.append(t),t}},{key:"appendInput",value:function(e,t,n){var o=new Ae(this,e,t,n,arguments.length>3&&void 0!==arguments[3]?arguments[3]:"");return this.append(o),o}},{key:"appendCheckbox",value:function(e,t,n,o){o||(o=n,n="");var r=new _e(this,e,t,n,o);return this.append(r),r}},{key:"appendSelect",value:function(e,t,n,o,r){b()(o)&&(r=o,o="");var i=new xe(this,e,t,n,o,r);return this.append(i),i}},{key:"remove",value:function(e){var t=this.items,n=t.indexOf(e);n>-1&&(e.detach(),t.splice(n,1),e===this.selectedItem&&this.selectItem(null))}},{key:"clear",value:function(){$()(this.items,(function(e){return e.detach()})),this.items=[],this.selectItem(null)}},{key:"selectItem",value:function(e){var t;(this.selectedItem&&(this.selectedItem.deselect(),this.selectedItem=null),H()(e))||(this.selectedItem=e,null===(t=this.selectedItem)||void 0===t||t.select())}},{key:"renderSettings",value:function(){var e=this,t=this.items;$()(t,(function(e){return e.detach()})),$()(t,(function(t){e.filterItem(t)&&e.$container.append(t.container)}))}},{key:"bindEvent",value:function(){var e=this,t=this.c;this.on("changeOption",(function(t){if("filter"===t)e.renderSettings()}));var n=this;this.$container.on("click",t(".item"),(function(){n.selectItem(this.settingItem)}))}},{key:"filterItem",value:function(e){var t=this.options.filter;if(t){if(T()(t))return t(e);if(M()(t))return t.test(e.text());if(z()(t)&&(t=B()(t)))return R()(G()(e.text()),G()(t))}return!0}},{key:"append",value:function(e){this.items.push(e),this.filterItem(e)&&this.$container.append(e.container)}}])}(ue),ge=function(){return(0,i.A)((function e(t,n,o,i){(0,r.A)(this,e),this.container=h()("div",{tabindex:"0"}),this.setting=t,this.container.settingItem=this,this.$container=u()(this.container),this.$container.addClass(t.c("item")).addClass(t.c("item-".concat(i))),this.key=n,this.value=o}),[{key:"select",value:function(){this.$container.addClass(this.setting.c("selected"))}},{key:"deselect",value:function(){this.$container.rmClass(this.setting.c("selected"))}},{key:"detach",value:function(){this.$container.remove()}},{key:"disable",value:function(){this.$container.addClass(this.setting.c("disabled"))}},{key:"enable",value:function(){this.$container.rmClass(this.setting.c("disabled"))}},{key:"text",value:function(){return this.$container.text()}},{key:"onChange",value:function(e){this.value!==e&&(this.setting.emit("change",this.key,e,this.value),this.value=e)}}])}(),me=function(e){function t(e,n,o){var i;return(0,r.A)(this,t),(i=fe(this,t,[e,"","","title"])).$container.addClass(e.c("level-".concat(o))),i.$container.text(n),i}return(0,c.A)(t,e),(0,i.A)(t)}(ge),be=function(e){function t(e,n){var o;return(0,r.A)(this,t),(o=fe(this,t,[e,"","","markdown"])).$container.html(n),o}return(0,c.A)(t,e),(0,i.A)(t)}(ge),ye=function(e){function t(e){return(0,r.A)(this,t),fe(this,t,[e,"","","separator"])}return(0,c.A)(t,e),(0,i.A)(t)}(ge),Ae=function(e){function t(e,n,o,i,a){var s;(0,r.A)(this,t),s=fe(this,t,[e,n,o,"input"]);var c=e.c;s.$container.html('
').concat(p()(i),'
\n
').concat(a,'
\n
\n \n
'));var l=s.$container.find("input");return l.val(o),l.on("change",(function(){return s.onChange(l.val())})),s.$input=l,s}return(0,c.A)(t,e),(0,i.A)(t,[{key:"setValue",value:function(e){this.$input.val(e),this.value=e}},{key:"disable",value:function(){he(t,"disable",this,3)([]),this.$input.attr("disabled","")}},{key:"enable",value:function(){he(t,"enable",this,3)([]),this.$input.rmAttr("disabled")}}])}(ge),we=function(e){function t(e,n,o,i,a){var s,c=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};(0,r.A)(this,t),(s=fe(this,t,[e,n,o,"number"])).renderRange=function(){var e=k()(s.$input.val()),t=s.options;s.$trackProgress.css("width",de(e,t.min,t.max)+"%"),s.$value.text(S()(e))},A()(c,{min:0,max:10,step:1}),s.options=c;var l=s.$container,u=e.c,d=!!c.range;delete c.range;var h=c.min,f=c.max,v='");d&&(v="".concat(h,'
\n
\n
\n
\n
\n
\n ').concat(v,'\n
').concat(o,"/").concat(f)),l.html('
').concat(p()(i),'
\n
').concat(a,'
\n
').concat(v,"
"));var g=l.find("input");return s.$value=l.find(u(".value")),s.$trackProgress=l.find(u(".range-track-progress")),g.val(S()(o)),g.on("change",(function(){var e=k()(g.val());s.onChange(e)})),g.on("input",s.renderRange),s.$input=g,s}return(0,c.A)(t,e),(0,i.A)(t,[{key:"setValue",value:function(e){this.$input.val(S()(e)),this.value=e,this.renderRange()}},{key:"disable",value:function(){he(t,"disable",this,3)([]),this.$input.attr("disabled","")}},{key:"enable",value:function(){he(t,"enable",this,3)([]),this.$input.rmAttr("disabled")}}])}(ge),_e=function(e){function t(e,n,o,i,a){var s;(0,r.A)(this,t),s=fe(this,t,[e,n,o,"checkbox"]);var c=e.c,l=g()(e.c("checkbox-"));s.$container.html('
').concat(p()(i),'
\n
\n \n \n
"));var u=s.$container.find("input"),d=u.get(0);return d.checked=o,u.on("change",(function(){return s.onChange(d.checked)})),s.$input=u,s.input=d,s}return(0,c.A)(t,e),(0,i.A)(t,[{key:"setValue",value:function(e){this.input.checked=e,this.value=e}},{key:"disable",value:function(){he(t,"disable",this,3)([]),this.$input.attr("disabled","")}},{key:"enable",value:function(){he(t,"enable",this,3)([]),this.$input.rmAttr("disabled")}}])}(ge),xe=function(e){function t(e,n,o,i,a,s){var c;(0,r.A)(this,t),c=fe(this,t,[e,n,o,"select"]);var l=e.c;c.$container.html('
').concat(p()(i),'
\n
').concat(a,'
\n
\n
\n \n
\n
'));var u=c.$container.find("select");return c.$select=u,c.setOptions(s),u.on("change",(function(){return c.onChange(u.val())})),c}return(0,c.A)(t,e),(0,i.A)(t,[{key:"setValue",value:function(e){this.$select.val(e),this.value=e}},{key:"setOptions",value:function(e){var t=this;this.$select.html(_()(e,(function(e,n){return'")})).join(""))}},{key:"disable",value:function(){he(t,"disable",this,3)([]),this.$select.attr("disabled","")}},{key:"enable",value:function(){he(t,"enable",this,3)([]),this.$select.rmAttr("disabled")}}])}(ge),ke=function(e){function t(e,n,o,i){var a;return(0,r.A)(this,t),o||(o=n,n=""),(a=fe(this,t,[e,"","","button"])).$container.html(e.c('
'.concat(p()(n),'
\n
\n \n
"))),a.$container.find("button").on("click",i),a}return(0,c.A)(t,e),(0,i.A)(t)}(ge),Ce=function(e){function t(e,n){var o;return(0,r.A)(this,t),(o=fe(this,t,[e,"","","html"])).$container.append(n),o}return(0,c.A)(t,e),(0,i.A)(t)}(ge);(function(e,t){try{e.exports=t,e.exports.default=t}catch(e){}})(e,ve)},1167:function(e,t,n){var o=n(1909),r=n(5869),i=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,a=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i;t=r((function(e){return e=e||(o?navigator.userAgent:""),i.test(e)||a.test(e.substr(0,4))})),e.exports=t},1168:function(e,t,n){var o=n(3422);t=function(e){if(o(e))return"";try{return r.call(e)}catch(e){}try{return e+""}catch(e){}return""};var r=Function.prototype.toString;e.exports=t},1277:function(e,t,n){(t=n(6314)(!1)).push([e.id,'.luna-box-model{display:inline-block;text-align:center;white-space:nowrap;color:rgba(0,0,0,.88);color:var(--luna-color-text,rgba(0,0,0,.88));background-color:#fff;background-color:var(--luna-color-bg-container,#fff);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-family:var(--luna-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:14px}.luna-box-model .luna-box-model-hidden,.luna-box-model.luna-box-model-hidden{display:none}.luna-box-model .luna-box-model-invisible,.luna-box-model.luna-box-model-invisible{visibility:hidden}.luna-box-model *{box-sizing:border-box}.luna-box-model.luna-box-model-theme-dark{color-scheme:dark;color:hsla(0,0%,100%,.85);color:var(--luna-color-text-dark,rgba(255,255,255,.85));background-color:#141414;background-color:var(--luna-color-bg-container-dark,#141414)}.luna-box-model{font-size:12px}.luna-box-model-label{position:absolute;margin-left:3px;padding:0 2px}.luna-box-model-bottom,.luna-box-model-left,.luna-box-model-right,.luna-box-model-top{display:inline-block}.luna-box-model-left,.luna-box-model-right{vertical-align:middle}.luna-box-model-border,.luna-box-model-content,.luna-box-model-margin,.luna-box-model-padding,.luna-box-model-position{position:relative;display:inline-block;text-align:center;vertical-align:middle;padding:3px;margin:3px;color:rgba(0,0,0,.88);background:#fff}.luna-box-model-position{border:1px gray dotted}.luna-box-model-margin{border:1px dashed}.luna-box-model-margin.luna-box-model-highlighted{color:rgba(0,0,0,.88)!important;background:rgba(246,178,107,.66)!important}.luna-box-model-border{border:1px #000 solid}.luna-box-model-border.luna-box-model-highlighted{color:rgba(0,0,0,.88)!important;background:rgba(255,229,153,.66)!important}.luna-box-model-padding{border:1px gray dashed}.luna-box-model-padding.luna-box-model-highlighted{color:rgba(0,0,0,.88)!important;background:rgba(147,196,125,.55)!important}.luna-box-model-content{border:1px gray solid;min-width:100px}.luna-box-model-content.luna-box-model-highlighted{color:rgba(0,0,0,.88)!important;background:rgba(111,168,220,.66)!important}.luna-box-model-theme-dark .luna-box-model-border,.luna-box-model-theme-dark .luna-box-model-content,.luna-box-model-theme-dark .luna-box-model-margin,.luna-box-model-theme-dark .luna-box-model-padding,.luna-box-model-theme-dark .luna-box-model-position{color:hsla(0,0%,100%,.85);background:#141414}.luna-box-model-theme-dark .luna-box-model-border{border-color:gray}',""]),e.exports=t},1443:function(e,t,n){(t=n(6314)(!1)).push([e.id,'#_resources{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:10px;font-size:14px}#_resources ._section{margin-bottom:10px;overflow:hidden;border:1px solid var(--border)}#_resources ._section._warn{border:1px solid var(--console-warn-border)}#_resources ._section._warn ._title{background:var(--console-warn-background);color:var(--console-warn-foreground)}#_resources ._section._danger{border:1px solid var(--console-error-border)}#_resources ._section._danger ._title{background:var(--console-error-background);color:var(--console-error-foreground)}#_resources ._section._cookie,#_resources ._section._local-storage,#_resources ._section._session-storage{border:none}#_resources ._section._cookie ._title,#_resources ._section._local-storage ._title,#_resources ._section._session-storage ._title{border:1px solid var(--border);border-bottom:none}#_resources ._title{padding:10px;line-height:18px;color:var(--primary);background:var(--darker-background)}#_resources ._title ._btn{margin-left:5px;float:right;color:var(--primary);width:18px;height:18px;font-size:16px;cursor:pointer;transition:color .3s}#_resources ._title ._btn._filter-text{width:auto;max-width:80px;font-size:14px;overflow:hidden;font-weight:400;text-overflow:ellipsis;display:inline-block}#_resources ._title ._btn:active{color:var(--accent)}#_resources ._title ._btn._btn-disabled{color:inherit!important;cursor:default!important;pointer-events:none;opacity:.5}#_resources ._title ._btn._btn-disabled *{pointer-events:none}#_resources ._link-list{font-size:12px;color:var(--foreground)}#_resources ._link-list li{padding:10px;word-break:break-all}#_resources ._link-list li a{color:var(--link-color)!important}#_resources ._image-list{color:var(--foreground);font-size:12px;display:flex;flex-wrap:wrap;padding-left:10px;padding-top:10px}#_resources ._image-list::after{content:"";flex-grow:1000}#_resources ._image-list li{flex-grow:1;cursor:pointer;overflow-y:hidden;margin-right:10px;margin-bottom:10px;border:1px solid var(--border)}#_resources ._image-list li._image{height:100px;font-size:0}#_resources ._image-list li img{height:100px;min-width:100%;-o-object-fit:cover;object-fit:cover}._safe-area #_resources{padding-bottom:calc(10px + env(safe-area-inset-bottom))}',""]),e.exports=t},1505:function(e,t,n){var o=n(7308),r=n(6026),i=n(9405),a=n(9100),s=n(3915),c=n(1932);t=function(){var e=o("viewport");if(!e)return 1;e=s(e.split(","),(function(e){return i(e)}));var t=.25,n=5,l=1;a(e,(function(e){var o=(e=e.split("="))[0];e=e[1],"initial-scale"===o&&(l=+e),"maximum-scale"===o&&(n=+e),"minimum-scale"===o&&(t=+e)}));var u=r(l,t,n);return c(u)?1:u},e.exports=t},1532:function(e,t,n){var o=n(1009),r=n(5169),i=n(2561);function a(e,t){if(e=i(e),t=i(t),o(e,"_")&&!o(t,"_"))return 1;if(o(t,"_")&&!o(e,"_"))return-1;for(var n,a,s,c,l=/^\d+|^\D+/;;){if(!e)return t?-1:0;if(!t)return 1;if(n=e.match(l)[0],a=t.match(l)[0],s=!r.isNaN(n),c=!r.isNaN(a),s&&!c)return-1;if(c&&!s)return 1;if(s&&c){var u=n-a;if(u)return u;if(n.length!==a.length)return+n||+a?a.length-n.length:n.length-a.length}else if(n!==a)return n=0&&e.indexOf(t,n)===n},e.exports=t},1710:function(e,t){t=function(e,t){var n="";if(t<1)return"";for(;t>0;)1&t&&(n+=e),t>>=1,e+=e;return n},e.exports=t},1714:function(e,t,n){"use strict";n.d(t,{A:function(){return ne}});var o=n(3029),r=n(2901),i=n(388),a=n(3954),s=n(991),c=n(5361),l=n(2263),u=n.n(l),d=n(3693),h=n.n(d),f=n(3915),p=n.n(f),v=n(9405),g=n.n(v),m=n(5169),b=n.n(m),y=n(9548),A=n.n(y),w=(n(6097),n(3249)),_=n.n(w),x=(n(6030),n(5004)),k=n.n(x);n(8609);function C(e){var t="luna-".concat(e,"-");function n(e){return p()(g()(e).split(/\s+/),(function(e){return _()(e,t)?e:e.replace(/[\w-]+/,(function(e){return"".concat(t).concat(e)}))})).join(" ")}return function(e){if(/<[^>]*>/g.test(e))try{var t=A().parse(e);return S(t,(function(e){e.attrs&&e.attrs.class&&(e.attrs.class=n(e.attrs.class))})),A().stringify(t)}catch(t){return n(e)}return n(e)}}function S(e,t){for(var n=0,o=e.length;n2&&void 0!==arguments[2]?arguments[2]:{}).theme,f=void 0===d?"light":d;return(0,o.A)(this,t),s=this,c=t,c=(0,a.A)(c),(r=(0,i.A)(s,F()?Reflect.construct(c,l||[],(0,a.A)(s).constructor):c.apply(s,l))).subComponents=[],r.compName=u,r.c=C(u),r.options={},r.container=e,r.$container=h()(e),r.$container.addClass(["luna-".concat(u),r.c("platform-".concat(T()))]),r.on("optionChange",(function(e,t,n){var o=r.c;"theme"===e&&(r.$container.rmClass(o("theme-".concat(n))).addClass(o("theme-".concat(t))),O()(r.subComponents,(function(e){return e.setOption("theme",t)})))})),r.setOption("theme",f),r}return(0,c.A)(t,e),(0,r.A)(t,[{key:"destroy",value:function(){this.destroySubComponents();var e=this.c;this.$container.rmClass("luna-".concat(this.compName)).rmClass(e("platform-".concat(T()))).rmClass(e("theme-".concat(this.options.theme))),this.$container.html(""),this.emit("destroy"),this.removeAllListeners()}},{key:"setOption",value:function(e,t){var n=this,o=this.options,r={};"string"==typeof e?r[e]=t:r=e,O()(r,(function(e,t){var r=o[t];o[t]=e,n.emit("optionChange",t,e,r)}))}},{key:"getOption",value:function(e){return this.options[e]}},{key:"addSubComponent",value:function(e){e.setOption("theme",this.options.theme),this.subComponents.push(e)}},{key:"removeSubComponent",value:function(e){B()(this.subComponents,(function(t){return t===e}))}},{key:"destroySubComponents",value:function(){O()(this.subComponents,(function(e){return e.destroy()})),this.subComponents=[]}},{key:"initOptions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};z()(e,t),M()(this.options,e)}},{key:"find",value:function(e){return this.$container.find(this.c(e))}}])}(u()),L=n(3497),G=n.n(L),P=n(9464),H=n.n(P),Y=n(5865),$=n.n(Y),q=n(4534),Q=n.n(q),U=n(4844),W=n.n(U),J=n(5902),K=n.n(J),V=n(9389),Z=n.n(V),X=n(6948),ee=n.n(X);function te(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(te=function(){return!!e})()}e=n.hmd(e);var ne=function(e){function t(e){var n,r,s,c,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,o.A)(this,t),r=this,s=t,c=[e,{compName:"text-viewer"},l],s=(0,a.A)(s),(n=(0,i.A)(r,te()?Reflect.construct(s,c||[],(0,a.A)(r).constructor):s.apply(r,c))).lineNum=0,n.copy=function(){var e=n.c,t=n.options,o=t.text,r=t.escape;W()(r?o:Z()(ee()(o)));var i=n.$copy.find(e(".icon"));i.addClass(e("icon-check")).rmClass(e("icon-copy")),setTimeout((function(){i.rmClass(e("icon-check")).addClass(e("icon-copy"))}),1e3)},n._updateCopyPos=function(){var e=n.container;n.$copy.css({top:e.scrollTop+5,right:5-e.scrollLeft})},n.initOptions(l,{text:"",escape:!0,showLineNumbers:!0,wrapLongLines:!0,maxHeight:1/0}),n.render=$()((function(){return n._render()}),16),n.updateCopyPos=Q()((function(){return n._updateCopyPos()}),300),n.initTpl(),n.$text=n.find(".text"),n.$copy=n.find(".copy"),E&&n.$copy.css("opacity","1"),n.options.text&&n.render(),n.bindEvent(),n.updateHeight(),n}return(0,c.A)(t,e),(0,r.A)(t,[{key:"append",value:function(e){var t=this,n=this.options,o=this.$copy,r=this.c,i=this.$text,a=n.showLineNumbers;if(this.options.text+=e,!a)return this.$text.append(n.escape?K()(e):e);var s=function(e){if(0===e.length)return[];return e.split(oe)}(e);H()(s)&&(s=[" "]),g()(G()(s))||s.pop();var c="";O()(s,(function(e,o){t.lineNum+=1,c+='
').concat(t.lineNum,'
').concat(n.escape?K()(e):e||" ","
")})),i.find(r(".table")).append(c),o.hide(),i.offset().height>40&&o.show(),this.updateCopyPos()}},{key:"destroy",value:function(){var e,n,o,r,i;this.$container.off("scroll",this.updateCopyPos),(e=t,n="destroy",o=this,r=3,i=(0,s.A)((0,a.A)(1&r?e.prototype:e),n,o),2&r&&"function"==typeof i?function(e){return i.apply(o,e)}:i)([])}},{key:"updateHeight",value:function(){var e=this.options.maxHeight;e>0&&e!==1/0?this.$text.css("max-height",e):this.$text.css("max-height","none")}},{key:"initTpl",value:function(){this.$container.html(this.c('
'))}},{key:"bindEvent",value:function(){var e=this;this.on("optionChange",(function(t){if("maxHeight"===t)e.updateHeight();else e.render()})),this.$container.on("scroll",this.updateCopyPos),this.$copy.on("click",this.copy)}},{key:"_render",value:function(){var e=this.c,t=this.$text,n=this.options,o=n.text,r=n.wrapLongLines,i=n.showLineNumbers;r?t.addClass(e("wrap-long-lines")):t.rmClass(e("wrap-long-lines")),i?t.addClass(e("line-numbers")):t.rmClass(e("line-numbers")),t.html('
')),this.lineNum=0,this.options.text="",this.append(o)}}])}(R),oe=/\r\n|\r|\n/g;(function(e,t){try{e.exports=t,e.exports.default=t}catch(e){}})(e,ne)},1738:function(e,t,n){var o=n(3974);t=function(e){return"[object String]"===o(e)},e.exports=t},1751:function(e,t,n){var o=n(3974);t=function(e){return"[object Map]"===o(e)},e.exports=t},1849:function(e,t,n){var o=n(9100),r=n(8971),i=n(3957);t=function(e,t){r(t)&&(t=!0);var n=i(t),a={};return o(e,(function(e){a[e]=n?t(e):t})),a},e.exports=t},1909:function(e,t){t="object"==typeof window&&"object"==typeof document&&9===document.nodeType,e.exports=t},1931:function(e,t,n){var o=n(1947);t=function(e){var t;switch(e=e||"local"){case"local":t=window.localStorage;break;case"session":t=window.sessionStorage}try{var n="test-localStorage-"+Date.now();t.setItem(n,n);var r=t.getItem(n);if(t.removeItem(n),r!==n)throw new Error}catch(e){return o}return t},e.exports=t},1932:function(e,t,n){var o=n(6097);t=function(e){return o(e)&&e!==+e},e.exports=t},1944:function(e,t,n){"use strict";n.d(t,{A:function(){return Z}});var o=n(5458),r=n(4467),i=n(7528),a=n(3029),s=n(2901),c=n(388),l=n(3954),u=n(991),d=n(5361),h=n(2263),f=n.n(h),p=n(3693),v=n.n(p),g=n(3915),m=n.n(g),b=n(9405),y=n.n(b),A=n(5169),w=n.n(A),_=n(9548),x=n.n(_),k=(n(6097),n(3249)),C=n.n(k),S=(n(6030),n(5004)),E=n.n(S);n(9410),n(8609);function T(e){var t="luna-".concat(e,"-");function n(e){return m()(y()(e).split(/\s+/),(function(e){return C()(e,t)?e:e.replace(/[\w-]+/,(function(e){return"".concat(t).concat(e)}))})).join(" ")}return function(e){if(/<[^>]*>/g.test(e))try{var t=x().parse(e);return N(t,(function(e){e.attrs&&e.attrs.class&&(e.attrs.class=n(e.attrs.class))})),x().stringify(t)}catch(t){return n(e)}return n(e)}}function N(e,t){for(var n=0,o=e.length;n2&&void 0!==arguments[2]?arguments[2]:{}).theme,u=void 0===s?"light":s;return(0,a.A)(this,t),o=function(e,t,n){return t=(0,l.A)(t),(0,c.A)(e,H()?Reflect.construct(t,n||[],(0,l.A)(e).constructor):t.apply(e,n))}(this,t),o.subComponents=[],o.theme="",o.onThemeChange=function(e){"auto"===o.options.theme&&o.setTheme(e)},o.compName=i,o.c=T(i),o.options={},o.container=e,o.$container=v()(e),o.$container.addClass(["luna-".concat(i),o.c("platform-".concat((r=E()(),"os x"===r?"mac":r)))]),o.on("changeOption",(function(e,t){if("theme"===e&&t){var n=t;"auto"===t&&(n=L().get()),o.setTheme(n),j()(o.subComponents,(function(e){return e.setOption("theme",t)}))}})),L().on("change",o.onThemeChange),o.setOption("theme",u),o}return(0,d.A)(t,e),(0,s.A)(t,[{key:"destroy",value:function(){var e=this;this.destroySubComponents();var t=this.$container,n=t.attr("class");j()(n.split(/\s+/),(function(n){P()(n,"luna-".concat(e.compName))&&t.rmClass(n)})),t.html(""),this.emit("destroy"),this.removeAllListeners(),L().off("change",this.onThemeChange)}},{key:"setOption",value:function(e,t){var n=this,o=this.options,r={};"string"==typeof e?r[e]=t:r=e,j()(r,(function(e,t){var r=o[t];o[t]=e,e!==r&&n.emit("changeOption",t,e,r)}))}},{key:"getOption",value:function(e){return this.options[e]}},{key:"addSubComponent",value:function(e){e.setOption("theme",this.options.theme),this.subComponents.push(e)}},{key:"removeSubComponent",value:function(e){F()(this.subComponents,(function(t){return t===e}))}},{key:"destroySubComponents",value:function(){j()(this.subComponents,(function(e){return e.destroy()})),this.subComponents=[]}},{key:"initOptions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};D()(e,t),I()(this.options,e)}},{key:"find",value:function(e){return this.$container.find(this.c(e))}},{key:"setTheme",value:function(e){var t=this.c,n=this.$container;this.theme&&n.rmClass(t("theme-".concat(this.theme))),n.addClass(t("theme-".concat(e))),this.theme=e}}])}(f()),q=n(5773),Q=n.n(q),U=n(5241),W=n.n(U),J=n(6741),K=n.n(J);function V(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(V=function(){return!!e})()}e=n.hmd(e);var Z=function(e){function t(e){var n,o,r,i,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,a.A)(this,t),o=this,r=t,i=[e,{compName:"modal"},s],r=(0,l.A)(r),(n=(0,c.A)(o,V()?Reflect.construct(r,i||[],(0,l.A)(o).constructor):r.apply(o,i))).render=function(){var e=n,t=e.options,o=e.c,r=e.$body;t.title?(r.rmClass(o("no-title")),n.$title.text(t.title)):r.addClass(o("no-title")),t.footer?(r.rmClass(o("no-footer")),n.$footer.html("").append(t.footer)):r.addClass(o("no-footer")),t.showClose?n.$close.show():n.$close.hide(),n.$body.css("width",t.width+"px"),n.renderContent()},n.hide(),n.initOptions(s,{title:"",content:"",footer:"",showClose:!0,width:oe()}),n.initTpl(),n.$title=n.find(".title"),n.$content=n.find(".content"),n.$body=n.find(".body"),n.$footer=n.find(".footer"),n.$close=n.find(".icon-close"),n.bindEvent(),n}return(0,d.A)(t,e),(0,s.A)(t,[{key:"show",value:function(){this.render(),this.$container.rmClass(this.c("hidden"))}},{key:"hide",value:function(){this.$container.addClass(this.c("hidden"))}},{key:"destroy",value:function(){var e,n,o,r,i;(e=t,n="destroy",o=this,r=3,i=(0,u.A)((0,l.A)(1&r?e.prototype:e),n,o),2&r&&"function"==typeof i?function(e){return i.apply(o,e)}:i)([]),this.$container.rmClass(this.c("hidden"))}},{key:"renderContent",value:function(){this.$content.html("").append(this.options.content)}},{key:"bindEvent",value:function(){var e=this;this.$body.on("click",this.c(".icon-close"),(function(){return e.hide()})),this.on("changeOption",this.render)}},{key:"initTpl",value:function(){this.$container.html(this.c(Q()(Y||(Y=(0,i.A)(['\n
\n \n
\n
\n \n
\n '])))))}}],[{key:"alert",value:function(e){return new Promise((function(n){var o=te(),i=o.c;o.setOption({title:"",content:e,width:oe(),footer:ne((0,r.A)({},t.i18n.t("ok"),{type:"primary",onclick:function(){o.hide(),n()}}),i)}),o.show()}))}},{key:"confirm",value:function(e){return new Promise((function(n){var o=te(),i=o.c;o.setOption({title:"",content:e,width:oe(),footer:ne((0,r.A)((0,r.A)({},t.i18n.t("cancel"),{type:"secondary",onclick:function(){o.hide(),n(!1)}}),t.i18n.t("ok"),{type:"primary",onclick:function(){o.hide(),n(!0)}}),i)}),o.show()}))}},{key:"prompt",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return new Promise((function(o){var i=te(),a=i.c,s=W()("input"+a(".input"),{value:n});function c(){i.hide(),o(s.value)}v()(s).on("keypress",(function(e){"Enter"===(e=e.origEvent).key&&c()})),i.setOption({title:e,content:s,width:oe(),footer:ne((0,r.A)((0,r.A)({},t.i18n.t("cancel"),{type:"secondary",onclick:function(){i.hide(),o(null)}}),t.i18n.t("ok"),{type:"primary",onclick:c}),a)}),i.show();var l=s.value.length;s.setSelectionRange(l,l),s.focus()}))}},{key:"setContainer",value:function(e){ee=e}}])}($);Z.i18n=new(K())("zh-CN"!==navigator.language?"en-US":"zh-CN",{"en-US":{ok:"OK",cancel:"Cancel"},"zh-CN":{ok:"确定",cancel:"取消"}});var X=null,ee=null;function te(){return ee||(ee=W()("div"),document.body.append(ee)),X||(X=new Z(ee,{showClose:!1})),X}function ne(e,t){var n=m()(e,(function(e,n){return W()(t(".button")+t("."+e.type),{onclick:e.onclick},n)}));return W().apply(void 0,[t(".button-group"),{}].concat((0,o.A)(n)))}function oe(){return window.innerWidth<500?window.innerWidth-32:500}(function(e,t){try{e.exports=t,e.exports.default=t}catch(e){}})(e,Z)},1947:function(e,t,n){var o=n(3145);t={getItem:function(e){return(i[e]?r[e]:this[e])||null},setItem:function(e,t){i[e]?r[e]=t:this[e]=t},removeItem:function(e){i[e]?delete r[e]:delete this[e]},key:function(e){var t=a();return e>=0&&e-1&&n[e].splice(o,1),this}},once:function(e,t){return this.on(e,s(t)),this},emit:function(e){var t=this;if(r(this._events,e)){var n=a(arguments,1),o=c(this._events[e]);return i(o,(function(e){return e.apply(t,n)}),this),this}},removeAllListeners:function(e){return e?delete this._events[e]:this._events={},this}},{mixin:function(e){i(["on","off","once","emit","removeAllListeners"],(function(n){e[n]=t.prototype[n]})),e._events=e._events||{}}}),e.exports=t},2284:function(e,t,n){"use strict";function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}n.d(t,{A:function(){return o}})},2388:function(e,t,n){"use strict";n.d(t,{A:function(){return Le}});var o=n(7528),r=n(3029),i=n(2901),a=n(388),s=n(3954),c=n(991),l=n(5361),u=n(3693),d=n.n(u),h=n(5773),f=n.n(h),p=n(2263),v=n.n(p),g=n(3915),m=n.n(g),b=n(9405),y=n.n(b),A=n(5169),w=n.n(A),_=n(9548),x=n.n(_),k=(n(6097),n(3249)),C=n.n(k),S=n(6030),E=n.n(S),T=n(5004),N=n.n(T),O=(n(9410),n(8609)),j=n.n(O);function M(e){var t="luna-".concat(e,"-");function n(e){return m()(y()(e).split(/\s+/),(function(e){return C()(e,t)?e:e.replace(/[\w-]+/,(function(e){return"".concat(t).concat(e)}))})).join(" ")}return function(e){if(/<[^>]*>/g.test(e))try{var t=x().parse(e);return I(t,(function(e){e.attrs&&e.attrs.class&&(e.attrs.class=n(e.attrs.class))})),x().stringify(t)}catch(t){return n(e)}return n(e)}}function I(e,t){for(var n=0,o=e.length;n2&&void 0!==arguments[2]?arguments[2]:{}).theme,u=void 0===l?"light":l;return(0,r.A)(this,t),o=function(e,t,n){return t=(0,s.A)(t),(0,a.A)(e,W()?Reflect.construct(t,n||[],(0,s.A)(e).constructor):t.apply(e,n))}(this,t),o.subComponents=[],o.theme="",o.onThemeChange=function(e){"auto"===o.options.theme&&o.setTheme(e)},o.compName=c,o.c=M(c),o.options={},o.container=e,o.$container=d()(e),o.$container.addClass(["luna-".concat(c),o.c("platform-".concat((i=N()(),"os x"===i?"mac":i)))]),o.on("changeOption",(function(e,t){if("theme"===e&&t){var n=t;"auto"===t&&(n=q().get()),o.setTheme(n),F()(o.subComponents,(function(e){return e.setOption("theme",t)}))}})),q().on("change",o.onThemeChange),o.setOption("theme",u),o}return(0,l.A)(t,e),(0,i.A)(t,[{key:"destroy",value:function(){var e=this;this.destroySubComponents();var t=this.$container,n=t.attr("class");F()(n.split(/\s+/),(function(n){U()(n,"luna-".concat(e.compName))&&t.rmClass(n)})),t.html(""),this.emit("destroy"),this.removeAllListeners(),q().off("change",this.onThemeChange)}},{key:"setOption",value:function(e,t){var n=this,o=this.options,r={};"string"==typeof e?r[e]=t:r=e,F()(r,(function(e,t){var r=o[t];o[t]=e,e!==r&&n.emit("changeOption",t,e,r)}))}},{key:"getOption",value:function(e){return this.options[e]}},{key:"addSubComponent",value:function(e){e.setOption("theme",this.options.theme),this.subComponents.push(e)}},{key:"removeSubComponent",value:function(e){Y()(this.subComponents,(function(t){return t===e}))}},{key:"destroySubComponents",value:function(){F()(this.subComponents,(function(e){return e.destroy()})),this.subComponents=[]}},{key:"initOptions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};P()(e,t),L()(this.options,e)}},{key:"find",value:function(e){return this.$container.find(this.c(e))}},{key:"setTheme",value:function(e){var t=this.c,n=this.$container;this.theme&&n.rmClass(t("theme-".concat(this.theme))),n.addClass(t("theme-".concat(e))),this.theme=e}}])}(v()),V=n(5902),Z=n.n(V),X=n(5241),ee=n.n(X),te=n(2561),ne=n.n(te),oe=n(2708),re=n.n(oe),ie=n(8971),ae=n.n(ie),se=n(4095),ce=n.n(se),le=n(5865),ue=n.n(le),de=n(1532),he=n.n(de),fe=n(4236),pe=n.n(fe),ve=n(3957),ge=n.n(ve),me=n(1976),be=n.n(me),ye=n(6214),Ae=n.n(ye),we=n(1738),_e=n.n(we),xe=n(96),ke=n.n(xe),Ce=n(6026),Se=n.n(Ce),Ee=n(3539),Te=n.n(Ee),Ne=n(8785),Oe=n.n(Ne),je=n(6024),Me=n.n(je),Ie=n(3981),ze=n.n(Ie),De=n(5546),Be=n.n(De);function Fe(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Fe=function(){return!!e})()}e=n.hmd(e);var Re=d()(document),Le=function(e){function t(e,n){var o,i,c,l;(0,r.A)(this,t),i=this,c=t,l=[e,{compName:"data-grid"},n],c=(0,s.A)(c),(o=(0,a.A)(i,Fe()?Reflect.construct(c,l||[],(0,s.A)(i).constructor):c.apply(i,l))).resizeIdx=0,o.resizeStartX=0,o.resizeStartLeft=0,o.resizeDeltaX=0,o.nodes=[],o.displayNodes=[],o.colWidthsInitialized=!1,o.colMap={},o.selectedNode=null,o.isAscending=!0,o.sorted=!1,o.colWidths=[],o.spaceHeight=0,o.topSpaceHeight=0,o.lastScrollTop=0,o.lastTimestamp=0,o.speedToleranceFactor=100,o.maxSpeedTolerance=2e3,o.minSpeedTolerance=100,o.scrollTimer=null,o.onResizeColMove=function(e){var t=o,n=t.resizeIdx,r=t.$resizers,i=t.colWidths,a=t.$colgroup,s=z("x",e=e.origEvent)-o.resizeStartX,c=i[n],l=i[n+1],u=Oe()(24-c,0),h=Te()(l-24,0);s=Se()(s,u,h),a.each((function(){var e=d()(this).find("col");e.eq(n).css("width",c+s+"px"),e.eq(n+1).css("width",l-s+"px")})),o.resizeDeltaX=s;var f=o.resizeStartLeft+s;r.eq(n).css("left","".concat(f,"px"))},o.onResizeColEnd=function(e){o.onResizeColMove(e);var t=o,n=t.c,r=t.colWidths,i=t.resizeIdx,a=t.resizeDeltaX,s=o.options.columns,c=s[i],l=s[i+1],u=r[i]+a,h=u+(r[i+1]-a),f=c.weight+l.weight,p=f*(u/h),v=f-p;c.weight=p,l.weight=v,o.applyColWeights(),d()(document.body).rmClass(n("resizing")),Re.off(Be()("move"),o.onResizeColMove),Re.off(Be()("up"),o.onResizeColEnd)},o.onScroll=function(){var e=o.dataContainer,t=e.scrollHeight,n=e.clientHeight,r=e.scrollTop;if(!(r<=0||n+r>t)){var i=o.lastScrollTop,a=o.lastTimestamp,s=ze()(),c=s-a,l=r-i,u=Math.abs(l/c)*o.speedToleranceFactor;c>1e3&&(u=1e3),u>o.maxSpeedTolerance&&(u=o.maxSpeedTolerance),ur+n+h||(o.renderData({topTolerance:2*d,bottomTolerance:2*h}),o.scrollTimer&&clearTimeout(o.scrollTimer),o.scrollTimer=setTimeout((function(){o.renderData()}),100))}},o.renderData=ue()((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.topTolerance,n=void 0===t?500:t,r=e.bottomTolerance,i=void 0===r?500:r;o.sortId&&!o.sorted&&o.sortNodes(o.sortId,o.isAscending);for(var a=o,s=a.dataContainer,c=a.displayNodes,l=a.tableBody,u=s.scrollTop,d=u-n,h=u+s.clientHeight+i,f=0,p=0,v=c.length,g=[],m=0;md?(0===g.length&&Me()(m)&&(g.push(c[m-1]),f-=20),g.push(b)):p1&&void 0!==arguments[1]?arguments[1]:{};P()(t,{selectable:this.options.selectable});var n=new Ge(this,e,t);this.nodes.push(n);var o=this.filterNode(n);return o&&this.displayNodes.push(n),(this.sortId||o)&&(this.sortId&&(this.sorted=!1),this.renderData()),this.updateHeight(),n}},{key:"setData",value:function(e,t){var n=this,o=m()(e,(function(e){return Ae()(e)?(P()(e[1],{selectable:n.options.selectable}),e):[e,{selectable:n.options.selectable}]}));if(t){var r={};F()(this.nodes,(function(e){r[e.data[t]]=e}));var i=[],a=[];F()(o,(function(e){var o,s=e[0][t];r[s]?((o=r[s]).data=e[0],o.render()):o=new Ge(n,e[0],e[1]),i.push(o),n.filterNode(o)&&a.push(o)})),this.selectedNode&&!C()(i,this.selectedNode)&&this.selectNode(null),this.nodes=i,this.displayNodes=a}else this.clearData(),F()(o,(function(e){var t=new Ge(n,e[0],e[1]);n.nodes.push(t),n.filterNode(t)&&n.displayNodes.push(t)}));this.sortId&&(this.sorted=!1),this.renderData(),this.updateHeight()}},{key:"clear",value:function(){this.clearData(),this.renderData(),this.updateHeight()}},{key:"fit",value:function(){if(!j()(this.container)){var e=this.$container.parent().get(0),t=window.getComputedStyle(e),n=e.clientHeight-D(t.paddingTop)-D(t.paddingBottom);this.setOption({minHeight:n,maxHeight:n})}}},{key:"clearData",value:function(){this.nodes=[],this.displayNodes=[],this.selectNode(null)}},{key:"updateHeight",value:function(){var e=this.$fillerRow,t=this.$container,n=this.options,o=n.maxHeight,r=n.minHeight,i=this.$headerRow.offset().height+D(t.css("border-top-width"))+D(t.css("border-bottom-width"));(r-=i)<0&&(r=0),o-=i;var a=this.displayNodes.length,s=0;a>0&&(s=20*a),s>r?e.hide():e.show(),s=o&&(s=o),this.$dataContainer.css({height:s})}},{key:"selectNode",value:function(e){(pe()(e)||null!=e&&e.selectable)&&this.selectedNode!==e&&(this.selectedNode&&(this.selectedNode.deselect(),this.selectedNode=null,pe()(e)&&this.emit("deselect")),pe()(e)||(this.selectedNode=e,e.select(),this.emit("select",e)))}},{key:"onResizeColStart",value:function(e){var t=this.c,n=this.resizeIdx,o=this.$resizers;e.stopPropagation(),e.preventDefault(),e=e.origEvent,this.resizeStartX=z("x",e),this.resizeStartLeft=D(o.eq(n).css("left")),d()(document.body).addClass(t("resizing")),Re.on(Be()("move"),this.onResizeColMove),Re.on(Be()("up"),this.onResizeColEnd)}},{key:"bindEvent",value:function(){var e=this,t=this.c,n=this.$headerRow,o=this.$tableBody,r=this.$resizers,i=this.$dataContainer;this.resizeSensor.addListener(this.onResize),i.on("scroll",this.onScroll);var a=this;o.on("click",t(".node"),(function(e){var t=this;a.selectNode(this.dataGridNode),setTimeout((function(){t.hasDoubleClick||a.emit("click",e.origEvent,t.dataGridNode)}),200)})).on("dblclick",t(".node"),(function(e){var t=this;e.stopPropagation(),this.hasDoubleClick=!0,a.emit("dblclick",e.origEvent,this.dataGridNode),setTimeout((function(){t.hasDoubleClick=!1}),300)})).on("contextmenu",t(".node"),(function(e){e.preventDefault(),e.stopPropagation(),a.selectNode(this.dataGridNode),a.emit("contextmenu",e.origEvent,this.dataGridNode)})),n.on("click",t(".sortable"),(function(e){e.stopPropagation();var o=d()(this),r=o.data("id"),i="descending"!==o.data("order");o.data("order",i?"descending":"ascending"),n.find(t(".icon-caret-up")).hide(),n.find(t(".icon-caret-down")).hide();var s=o.find(t(".icon-caret-up")),c=o.find(t(".icon-caret-down"));i?s.show():c.show(),a.sortNodes(r,i),a.renderData(),n.find("th").each((function(){var e=d()(this);e.data("id")!==r&&e.rmAttr("data-order")}))})),r.on(Be()("down"),(function(e){var t=d()(this);a.resizeIdx=E()(t.data("idx")),a.onResizeColStart(e)})),this.on("changeOption",(function(t){switch(t){case"minHeight":case"maxHeight":e.updateHeight();break;case"filter":e.displayNodes=[],F()(e.nodes,(function(t){e.filterNode(t)&&e.displayNodes.push(t)})),e.selectedNode&&!e.filterNode(e.selectedNode)&&e.selectNode(null),e.renderData(),e.updateHeight()}}))}},{key:"sortNodes",value:function(e,t){var n=this.colMap[e].comparator||he().comparator;function o(o,r){var i=o.data[e],a=r.data[e];return re()(i)&&(i=i.innerText),re()(a)&&(a=a.innerText),t?n(i,a):n(a,i)}this.nodes.sort(o),this.displayNodes.sort(o),this.sorted=!0,this.sortId=e,this.isAscending=t}},{key:"updateWeights",value:function(){var e=this.container,t=this.$headerRow,n=this.options.columns,o=e.offsetWidth;if(!this.colWidthsInitialized&&o){for(var r=0,i=n.length;r'),this.colWidths[u]=h}t.html(s),this.positionResizers()}}},{key:"positionResizers",value:function(){for(var e=this.colWidths,t=[],n=e.length-1,o=0;o\n ').concat(r,'\n \n \n ')):t+="".concat(r,""),n+=""})),this.$headerRow.html(t),this.$fillerRow.html(n)}},{key:"renderResizers",value:function(){for(var e="",t=this.options.columns.length-1,n=0;n'));this.$container.append(e),this.$resizers=this.find(".resizer")}},{key:"initTpl",value:function(){this.$container.html(this.c(f()(J||(J=(0,o.A)(['\n
\n \n \n \n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n '])))))}}])}(K),Ge=function(){return(0,i.A)((function e(t,n,o){(0,r.A)(this,e),this.container=ee()("tr"),this.selectable=!1,this.container.dataGridNode=this,this.$container=d()(this.container),this.$container.addClass(t.c("node")),this.dataGrid=t,this.data=n,o.selectable&&(this.selectable=o.selectable,this.$container.addClass(t.c("selectable"))),this.render()}),[{key:"text",value:function(){return this.$container.text()}},{key:"select",value:function(){this.$container.addClass(this.dataGrid.c("selected"))}},{key:"deselect",value:function(){this.$container.rmClass(this.dataGrid.c("selected"))}},{key:"render",value:function(){var e=this.data,t=this.$container,n=this.container,o=this.dataGrid.getOption("columns");t.html(""),F()(o,(function(t){var o=ee()("td"),r=e[t.id];ae()(r)||(re()(r)?o.appendChild(r):o.innerText=ne()(r)),n.appendChild(o)}))}}])}();(function(e,t){try{e.exports=t,e.exports.default=t}catch(e){}})(e,Le)},2455:function(e,t){t=function(e){return e},e.exports=t},2480:function(e,t,n){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,r)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&o(t,e,n);return r(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.enable=function(){if(x)return;var e=(0,h.default)("div",{class:"__chobitsu-hide__",style:{all:"initial"}});c=(0,d.default)(e),document.documentElement.appendChild(e);var t=null,n=null;e.attachShadow?n=e.attachShadow({mode:"open"}):e.createShadowRoot&&(n=e.createShadowRoot());if(n){var o=document.createElement("style");o.textContent=S,o.type="text/css",n.appendChild(o),t=document.createElement("div"),n.appendChild(t)}else t=document.createElement("div"),e.appendChild(t),_||((0,f.default)(S),_=!0);s=new A.default(t,{monitorResize:(0,b.default)(m.default.ResizeObserver),showInfo:k}),window.addEventListener("resize",R),x=!0},t.disable=function(){s.destroy(),c.remove(),window.removeEventListener("resize",R),x=!1},t.highlightNode=E,t.hideHighlight=T,t.setShowViewportSizeOnResize=function(e){N=e.show},t.setInspectMode=function(e){O=e.highlightConfig,j=e.mode};var s,c,l=n(9893),u=n(6192),d=a(n(3693)),h=a(n(5241)),f=a(n(3048)),p=a(n(5651)),v=a(n(8105)),g=a(n(8665)),m=a(n(5169)),b=a(n(9e3)),y=a(n(8534)),A=a(n(9196)),w=i(n(2484)),_=!1,x=!1,k=(0,y.default)("clip-path","polygon(50% 0px, 0px 100%, 100% 100%)"),C="ontouchstart"in m.default,S=n(7119).replace("/*# sourceMappingURL=luna-dom-highlighter.css.map*/","");function E(e){var t,n=e.nodeId,o=e.highlightConfig,r=e.objectId;n&&(t=(0,l.getNode)(n)),r&&(t=w.getObj(r)),1!==t.nodeType&&3!==t.nodeType||((0,p.default)(o,{contentColor:"transparent",paddingColor:"transparent",borderColor:"transparent",marginColor:"transparent"}),k||(0,v.default)(o,{showInfo:!1}),s.highlight(t,o))}function T(){s.hide()}var N=!1;var O={},j="none";function M(e){if(C){var t=e.touches[0]||e.changedTouches[0];return document.elementFromPoint(t.clientX,t.clientY)}return document.elementFromPoint(e.clientX,e.clientY)}var I=-1;function z(e){if("none"!==j){var t=M(e);if(t&&(0,l.isValidNode)(t)){var n=(0,l.getNodeId)(t);n||(n=(0,u.pushNodesToFrontend)(t)),E({nodeId:n,highlightConfig:O}),n!==I&&(g.default.trigger("Overlay.nodeHighlightRequested",{nodeId:n}),I=n)}}}function D(e){if("none"!==j){e.preventDefault(),e.stopImmediatePropagation();var t=M(e);g.default.trigger("Overlay.inspectNodeRequested",{backendNodeId:(0,l.getNodeId)(t)}),I=-1,T()}}function B(e,t){document.documentElement.addEventListener(e,t,!0)}C?(B("touchstart",z),B("touchmove",z),B("touchend",D)):(B("mousemove",z),B("mouseout",(function(){"none"!==j&&T()})),B("click",D));var F=(0,h.default)("div",{class:"__chobitsu-hide__",style:{position:"fixed",right:0,top:0,background:"#fff",fontSize:13,opacity:.5,padding:"4px 6px"}});function R(){N&&(G.text("".concat(window.innerWidth,"px × ").concat(window.innerHeight,"px")),L?clearTimeout(L):document.documentElement.appendChild(F),L=setTimeout((function(){G.remove(),L=null}),1e3))}var L,G=(0,d.default)(F)},2484:function(e,t,n){"use strict";var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.clear=function(){A.clear(),w.clear(),_.clear()},t.wrap=S,t.getObj=E,t.releaseObj=function(e){var t=E(e);w.delete(t),_.delete(e),A.delete(e)},t.getProperties=function(e){for(var t=e.accessorPropertiesOnly,n=e.objectId,o=e.ownProperties,i=e.generatePreview,a=[],c={prototype:!o,unenumerable:!0,symbol:!t},l=A.get(n),h=_.get(n),f=(0,v.default)(l,c),p=(0,m.default)(l),w=0,k=f.length;wT&&(a=T,o=!0);for(var s=0;sT){o=!0;break}l.push({key:N(p),value:N(e.get(p))}),s++,p=h.next().value}n.entries=l}else if((0,d.default)(e)){var v=[],g=(s=0,e.keys());for(p=g.next().value;p;){if(s>T){o=!0;break}v.push({value:N(p)}),s++,p=g.next().value}n.entries=v}return n.overflow=o,n}function O(e,t){var n=M(t);n.name=e;var o,i=n.subtype;return o="object"===n.type?"null"===i?"null":"array"===i?"Array(".concat(t.length,")"):"map"===i?"Map(".concat(t.size,")"):"set"===i?"Set(".concat(t.size,")"):(0,y.getType)(t,!1):(0,r.default)(t),n.value=o,n}function j(e,t){void 0===t&&(t=e);var n=M(e),o=n.type,i=n.subtype;return"string"===o?e:"number"===o||"symbol"===o?(0,r.default)(e):"function"===o?(0,p.default)(e):"array"===i?"Array(".concat(e.length,")"):"map"===i?"Map(".concat(t.size,")"):"set"===i?"Set(".concat(t.size,")"):"regexp"===i?(0,r.default)(e):"error"===i?e.stack:"internal#entry"===i?e.name?'{"'.concat((0,r.default)(e.name),'" => "').concat((0,r.default)(e.value),'"}'):'"'.concat((0,r.default)(e.value),'"'):(0,y.getType)(e,!1)}function M(e){var t=typeof e,n="object";if(e instanceof I)n="internal#entry";else if((0,i.default)(e))n="null";else if((0,a.default)(e))n="array";else if((0,h.default)(e))n="regexp";else if((0,l.default)(e))n="error";else if((0,u.default)(e))n="map";else if((0,d.default)(e))n="set";else try{(0,c.default)(e)&&(n="node")}catch(e){}return{type:t,subtype:n}}var I=function(e,t){t&&(this.name=t),this.value=e};function z(e){return e instanceof I||!!(e[0]&&e[0]instanceof I)}},2508:function(e,t,n){var o=n(6186),r=n(2561),i=/{{(.*?)}}/g;t=function(e,t){return e.replace(i,(function(e,n){return r(o(t,n))}))},e.exports=t},2510:function(e,t){t=function(e,t){return t=null==t?e.length-1:+t,function(){var n,o=Math.max(arguments.length-t,0),r=new Array(o);for(n=0;n]*>/g.test(e))try{var t=C().parse(e);return j(t,(function(e){e.attrs&&e.attrs.class&&(e.attrs.class=n(e.attrs.class))})),C().stringify(t)}catch(t){return n(e)}return n(e)}}function j(e,t){for(var n=0,o=e.length;n2&&void 0!==arguments[2]?arguments[2]:{}).theme,d=void 0===u?"light":u;return(0,o.A)(this,t),r=function(e,t,n){return t=(0,a.A)(t),(0,i.A)(e,$()?Reflect.construct(t,n||[],(0,a.A)(e).constructor):t.apply(e,n))}(this,t),r.subComponents=[],r.theme="",r.onThemeChange=function(e){"auto"===r.options.theme&&r.setTheme(e)},r.compName=c,r.c=O(c),r.options={},r.container=e,r.$container=l()(e),r.$container.addClass(["luna-".concat(c),r.c("platform-".concat((s=N()(),"os x"===s?"mac":s)))]),r.on("changeOption",(function(e,t){if("theme"===e&&t){var n=t;"auto"===t&&(n=P().get()),r.setTheme(n),I()(r.subComponents,(function(e){return e.setOption("theme",t)}))}})),P().on("change",r.onThemeChange),r.setOption("theme",d),r}return(0,s.A)(t,e),(0,r.A)(t,[{key:"destroy",value:function(){var e=this;this.destroySubComponents();var t=this.$container,n=t.attr("class");I()(n.split(/\s+/),(function(n){Y()(n,"luna-".concat(e.compName))&&t.rmClass(n)})),t.html(""),this.emit("destroy"),this.removeAllListeners(),P().off("change",this.onThemeChange)}},{key:"setOption",value:function(e,t){var n=this,o=this.options,r={};"string"==typeof e?r[e]=t:r=e,I()(r,(function(e,t){var r=o[t];o[t]=e,e!==r&&n.emit("changeOption",t,e,r)}))}},{key:"getOption",value:function(e){return this.options[e]}},{key:"addSubComponent",value:function(e){e.setOption("theme",this.options.theme),this.subComponents.push(e)}},{key:"removeSubComponent",value:function(e){L()(this.subComponents,(function(t){return t===e}))}},{key:"destroySubComponents",value:function(){I()(this.subComponents,(function(e){return e.destroy()})),this.subComponents=[]}},{key:"initOptions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};F()(e,t),D()(this.options,e)}},{key:"find",value:function(e){return this.$container.find(this.c(e))}},{key:"setTheme",value:function(e){var t=this.c,n=this.$container;this.theme&&n.rmClass(t("theme-".concat(this.theme))),n.addClass(t("theme-".concat(e))),this.theme=e}}])}(m()),Q=n(8971),U=n.n(Q);function W(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(W=function(){return!!e})()}e=n.hmd(e);var J=function(e){function t(e){var n,r,s,c,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,o.A)(this,t),r=this,s=t,c=[e,{compName:"notification"},l],s=(0,a.A)(s),(n=(0,i.A)(r,W()?Reflect.construct(s,c||[],(0,a.A)(r).constructor):s.apply(r,c))).notifications=[],n.initOptions(l,{position:{x:"right",y:"bottom"},inline:!1,duration:2e3}),n.options.inline||n.$container.addClass(n.c("full")),n.initTpl(),n}return(0,s.A)(t,e),(0,r.A)(t,[{key:"notify",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};U()(n.duration)&&(n.duration=this.options.duration);var o=new K(this,e,{icon:n.icon||"none"});this.notifications.push(o),this.add(o),setTimeout((function(){return t.remove(o.id)}),n.duration)}},{key:"dismissAll",value:function(){for(var e=this.notifications,t=e[0];t;)this.remove(t.id),t=e[0]}},{key:"add",value:function(e){this.container.appendChild(e.container)}},{key:"remove",value:function(e){var t=this.notifications,n=f()(t,(function(t){return t.id===e}));if(n){n.destroy();var o=t.indexOf(n);t.splice(o,1)}}},{key:"initTpl",value:function(){var e=this.$container,t=this.options.position,n=t.x,o=t.y,r="flex-end",i="flex-end";switch(n){case"center":i="center";break;case"left":i="flex-start"}"top"===o&&(r="flex-start"),e.attr("style","justify-content: ".concat(r,"; align-items: ").concat(i))}}])}(q),K=function(){return(0,r.A)((function e(t,n,r){(0,o.A)(this,e),this.container=v()("div"),this.$container=l()(this.container),this.notification=t,this.content=n,this.id=d()("luna-notification-"),this.$container.attr({id:this.id,class:t.c("item ".concat("bottom"===t.getOption("position").y?"lower":"upper"))}),this.initTpl(r.icon)}),[{key:"destroy",value:function(){this.$container.remove()}},{key:"initTpl",value:function(e){var t=e;"success"===e?t="check":"warning"===e&&(t="warn");var n="none"===e?"":'
');this.$container.html(this.notification.c("".concat(n,'
').concat(this.content,"
")))}}])}();(function(e,t){try{e.exports=t,e.exports.default=t}catch(e){}})(e,J)},2561:function(e,t){t=function(e){return null==e?"":e.toString()},e.exports=t},2571:function(e,t,n){var o=n(5693),r=n(9100);t=function(e,t,n){var i=[];return t=o(t,n),r(e,(function(e,n,o){t(e,n,o)&&i.push(e)})),i},e.exports=t},2627:function(e,t,n){"use strict";var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.setGlobal=function(e,t){u[e]=t},t.default=function(e){var t;(0,l.default)(u,(function(e,t){window[t]||(window[t]=e)}));try{t=eval.call(window,"(".concat(e,")"))}catch(n){t=eval.call(window,e)}return function(){(0,l.default)(u,(function(e,t){window[t]&&window[t]===e&&delete window[t]}))}(),t};var r=o(n(1738)),i=o(n(4844)),a=o(n(769)),s=o(n(3145)),c=o(n(8862)),l=o(n(9100)),u={copy:function(e){(0,r.default)(e)||(e=JSON.stringify(e,null,2)),(0,i.default)(e)},$:function(e){return document.querySelector(e)},$$:function(e){return(0,a.default)(document.querySelectorAll(e))},$x:function(e){return(0,c.default)(e)},keys:s.default}},2650:function(e,t,n){var o=n(3974);t=function(e){switch(o(e)){case"[object Error]":case"[object DOMException]":return!0;default:return e instanceof Error}},e.exports=t},2693:function(e,t,n){(t=n(6314)(!1)).push([e.id,'._container a,._container abbr,._container acronym,._container address,._container applet,._container article,._container aside,._container audio,._container b,._container big,._container blockquote,._container canvas,._container caption,._container center,._container cite,._container code,._container dd,._container del,._container details,._container dfn,._container dl,._container dt,._container em,._container embed,._container fieldset,._container figcaption,._container figure,._container footer,._container form,._container h1,._container h2,._container h3,._container h4,._container h5,._container h6,._container header,._container hgroup,._container i,._container iframe,._container img,._container ins,._container kbd,._container label,._container legend,._container li,._container mark,._container menu,._container nav,._container object,._container ol,._container output,._container p,._container pre,._container q,._container ruby,._container s,._container samp,._container section,._container small,._container span,._container strike,._container strong,._container sub,._container summary,._container sup,._container table,._container tbody,._container td,._container tfoot,._container th,._container thead,._container time,._container tr,._container tt,._container u,._container ul,._container var,._container video{margin:0;padding:0;border:0;font-size:100%}._container article,._container aside,._container details,._container figcaption,._container figure,._container footer,._container header,._container hgroup,._container menu,._container nav,._container section{display:block}._container body{line-height:1}._container ol,._container ul{list-style:none}._container blockquote,._container q{quotes:none}._container blockquote:after,._container blockquote:before,._container q:after,._container q:before{content:"";content:none}._container table{border-collapse:collapse;border-spacing:0;color:inherit;font-size:1em;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;text-decoration:inherit;white-space:inherit}',""]),e.exports=t},2708:function(e,t){t=function(e){return!(!e||1!==e.nodeType)},e.exports=t},2717:function(e,t,n){var o=n(8105),r=n(769),i=n(8009),a=n(6186),s=n(4460);var c=(t=function(e,t){return c.extend(e,t)}).Base=function e(t,n,c){c=c||{};var l=n.className||a(n,"initialize.name")||"";delete n.className;var u=function(){var e=r(arguments);return this.initialize&&this.initialize.apply(this,e)||this};if(!s)try{u=new Function("toArr","return function "+l+"(){var args = toArr(arguments);return this.initialize ? this.initialize.apply(this, args) || this : this;};")(r)}catch(e){}return i(u,t),u.prototype.constructor=u,u.extend=function(t,n){return e(u,t,n)},u.inherits=function(e){i(u,e)},u.methods=function(e){return o(u.prototype,e),u},u.statics=function(e){return o(u,e),u},u.methods(n).statics(c),u}(Object,{className:"Base",callSuper:function(e,t,n){return e.prototype[t].apply(this,n)},toString:function(){return this.constructor.name}});e.exports=t},2767:function(e,t,n){var o=n(1738),r=n(5282);t=function(e){return o(e)?i[e]:u[e]};for(var i={backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,"pause/break":19,"caps lock":20,esc:27,space:32,"page up":33,"page down":34,end:35,home:36,left:37,up:38,right:39,down:40,insert:45,delete:46,windows:91,"right windows":92,"windows menu":93,"numpad *":106,"numpad +":107,"numpad -":109,"numpad .":110,"numpad /":111,"num lock":144,"scroll lock":145,";":186,"=":187,",":188,"-":189,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222},a=97;a<123;a++)i[String.fromCharCode(a)]=a-32;for(var s=48;s<58;s++)i[s-48]=s;for(var c=1;c<13;c++)i["f"+c]=c+111;for(var l=0;l<10;l++)i["numpad "+l]=l+96;var u=r(i);e.exports=t},2797:function(e,t,n){var o=n(5693),r=n(5793),i=n(3145);t=function(e,t,n){t=o(t,n);for(var a=!r(e)&&i(e),s=(a||e).length,c=0;c1&&void 0!==arguments[1])||arguments[1];return null===e&&(t="Null"),void 0===e&&(t="Undefined"),r(e)&&(t="NaN"),a(e)&&(t="Buffer"),t||(t=o(e).match(s))&&(t=t[1]),t?n?i(t):t:""};var s=/^\[object\s+(.*?)]$/;e.exports=t},2990:function(e,t){t={encode:function(e){var t,n,r=[],i=e.length,a=i%3;i-=a;for(var s=0;s>18&63]+o[t>>12&63]+o[t>>6&63]+o[63&t]));return i=e.length,1===a?(n=e[i-1],r.push(o[n>>2]),r.push(o[n<<4&63]),r.push("==")):2===a&&(n=(e[i-2]<<8)+e[i-1],r.push(o[n>>10]),r.push(o[n>>4&63]),r.push(o[n<<2&63]),r.push("=")),r.join("")},decode:function(e){var t=e.length,o=0;"="===e[t-2]?o=2:"="===e[t-1]&&(o=1);var r,i,a,s,c,l,u,d=new Array(3*t/4-o);for(t=o>0?t-4:t,r=0,i=0;r>16&255,d[i++]=h>>8&255,d[i++]=255&h}return 2===o?(u=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,d[i++]=255&u):1===o&&(u=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,d[i++]=u>>8&255,d[i++]=255&u),d}};for(var n=[],o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r=0,i=o.length;r-1:(i(e)||(e=a(e)),o(e,t)>=0)},e.exports=t},3270:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return g}});var o={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},r=/([astvzqmhlc])([^astvzqmhlc]*)/gi,i=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi;var a=function(e){var t=[],n=String(e).trim();return"M"!==n[0]&&"m"!==n[0]||n.replace(r,(function(e,n,r){var a=n.toLowerCase(),s=function(e){var t=e.match(i);return t?t.map(Number):[]}(r),c=n;if("m"===a&&s.length>2&&(t.push([c].concat(s.splice(0,2))),a="l",c="m"===c?"l":"L"),s.length=o[a]&&s.length&&o[a];)t.push([c].concat(s.splice(0,o[a])));return""})),t};function s(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,o=new Array(t);n1&&(y*=l=Math.sqrt(l),A*=l),u=y*y*A*A,f=y*y*s.y*s.y+A*A*s.x*s.x,h(k={x:y*s.y/A,y:-A*s.x/y},i!==r?Math.sqrt((u-f)/f)||0:-Math.sqrt((u-f)/f)||0),o=Math.atan2((s.y-k.y)/A,(s.x-k.x)/y),n=Math.atan2(-(s.y+k.y)/A,-(s.x+k.x)/y),d(k,c),O=k,j=(a.x+z.x)/2,M=(a.y+z.y)/2,O.x+=j,O.y+=M,e.save(),e.translate(k.x,k.y),e.rotate(c),e.scale(y,A),e.arc(0,0,1,o,n,!i),e.restore();break;case"C":C=B[3],S=B[4],p=B[5],g=B[6],e.bezierCurveTo(B[1],B[2],C,S,p,g);break;case"c":e.bezierCurveTo(B[1]+p,B[2]+g,B[3]+p,B[4]+g,B[5]+p,B[6]+g),C=B[3]+p,S=B[4]+g,p+=B[5],g+=B[6];break;case"S":null!==C&&null!==S||(C=p,S=g),e.bezierCurveTo(2*p-C,2*g-S,B[1],B[2],B[3],B[4]),C=B[1],S=B[2],p=B[3],g=B[4];break;case"s":null!==C&&null!==S||(C=p,S=g),e.bezierCurveTo(2*p-C,2*g-S,B[1]+p,B[2]+g,B[3]+p,B[4]+g),C=B[1]+p,S=B[2]+g,p+=B[3],g+=B[4];break;case"Q":E=B[1],T=B[2],p=B[3],g=B[4],e.quadraticCurveTo(E,T,p,g);break;case"q":E=B[1]+p,T=B[2]+g,p+=B[3],g+=B[4],e.quadraticCurveTo(E,T,p,g);break;case"T":null!==E&&null!==T||(E=p,T=g),E=2*p-E,T=2*g-T,p=B[1],g=B[2],e.quadraticCurveTo(E,T,p,g);break;case"t":null!==E&&null!==T||(E=p,T=g),E=2*p-E,T=2*g-T,p+=B[1],g+=B[2],e.quadraticCurveTo(E,T,p,g);break;case"z":case"Z":p=I.x,g=I.y,I=void 0,e.closePath();break;case"AC":p=B[1],g=B[2],b=B[3],o=B[4],n=B[5],N=B[6],e.arc(p,g,b,o,n,N);break;case"AT":v=B[1],m=B[2],p=B[3],g=B[4],b=B[5],e.arcTo(v,m,p,g,b);break;case"E":p=B[1],g=B[2],y=B[3],A=B[4],c=B[5],o=B[6],n=B[7],N=B[8],e.save(),e.translate(p,g),e.rotate(c),e.scale(y,A),e.arc(0,0,1,o,n,N),e.restore();break;case"R":p=B[1],g=B[2],w=B[3],_=B[4],I={x:p,y:g},e.rect(p,g,w,_)}z.x=p,z.y=g}}},p=a,v=f;"undefined"!=typeof window&&v(window);var g={path2dPolyfill:v,parsePath:p}},3277:function(e,t,n){(t=n(6314)(!1)).push([e.id,'@font-face{font-family:luna-data-grid-icon;src:url(\'data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAScAAsAAAAAB4wAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAFwAAACGIRYl5k9TLzIAAAFkAAAAPQAAAFZLxUkYY21hcAAAAaQAAADLAAACXsU3J5xnbHlmAAACcAAAACUAAAAwNxN2HmhlYWQAAAKYAAAALgAAADZzjr4QaGhlYQAAAsgAAAAYAAAAJAFyANhobXR4AAAC4AAAABAAAAA8AZAAAGxvY2EAAALwAAAAEAAAACAAnACobWF4cAAAAwAAAAAfAAAAIAEaAA9uYW1lAAADIAAAASkAAAIWm5e+CnBvc3QAAARMAAAATQAAAG/8EX8xeJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiA2A9NMDGwMMkAWF1CGFchmB4pxAnncDDxAOQ4kUV4GPqA6RgZmAE91Bj94nGNgZJBmnMDAysDAUMfQAyRloHQCAyeDMQMDEwMrMwNWEJDmmsJwgEH3IxPDCSBXCEwyMDCCCABbKQhrAAAAeJzNkksKwjAQhr+kvqpVxIUL8Qh6KFG3KtLidVx5Bq/VE+g/ySCIILhzhq+Qv8lkHgG6QCFWogPhRsDsKjUkvWCY9A611jOmUiJrNuw5cabh0sbHQ/9M23KQVksLSXu3oPPmcxbypRwGilxQ0qPSTRNl1GfMSHujDvQ+Yny3wY/7SXUX5eueaphSsAz+xar0vftqgnU6Y9VuHE1P3c/YRHdOKfaOVXlwLOrR0YQ1y4zFPzv2OmqnLxpnLC6O+tSGjL2YNmaITyYUHqgAeJxjYGQAgZUM0xmYGBjMlcVXNjtO9wCKoImbA8X9geIAqRwH2QAAAHicY2BkYGAA4hwJ4Yp4fpuvDNwMJ4ACUZyP9zUgaCBYyTAdSHIwMIE4ABioCdgAAHicY2BkYGA4wcAAJ1cyMDKgAn4AOLICS3icY2AAghNQTCIAAFMMAZF4nGNgAAIeBglcEAARPAFFeJxjYGRgYOBnYGYA0QwMTEDMBYQMDP/BfAYACkEBKgB4nGWQPW7CQBSEx2BIAlKCFCkps1UKIpmfkgNAT0GXwpi1MbK91npBossJcoQcIaeIcoIcKGPzaGAtP38zb97uygAG+IWHenm4bWq9WrihOnGb9CDsk5+FO+jjRbhLfyjcwxumwn084p07eP4dnQFK4Rbu8SHcpv8p7JO/hDt4wrdwl/6PcA8r/An38eoN08gUsSncUif7LLRnef6utK1SU6hJMD5bC11oGzq9Ueujqg7J1LlYxdbkas6uzjKjSmt2OnLB1rlyNhrF4geRyZEigkGBuKkOS2gk2CNDCHvVvdQrpi0q+rVWmCDA+Cq1YKpokiGVxobJNY6sFQ48bUrXMa34Ws7kpLnMat4kIyv+77q3oxPRD7BtpkrMMOITX+SD5g75Pz0RXqgAAAB4nF3GOQ6AIBQA0T+44YoX4VAEaNEYCNe3IDa+ZkaUNF//DIqOnoGRCc3MwsrGzoHhlMW7J2Ybrpp023LjcTxEMpbARSVRuEVebe8MtgAAAA==\') format(\'woff\')}[class*=\' luna-data-grid-icon-\'],[class^=luna-data-grid-icon-]{display:inline-block;font-family:luna-data-grid-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.luna-data-grid-icon-caret-down:before{content:\'\\f101\'}.luna-data-grid-icon-caret-up:before{content:\'\\f102\'}.luna-data-grid{position:relative;border:1px solid;overflow:hidden;outline:0;color:rgba(0,0,0,.88);color:var(--luna-color-text,rgba(0,0,0,.88));background-color:#fff;background-color:var(--luna-color-bg-container,#fff);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-family:var(--luna-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:14px}.luna-data-grid .luna-data-grid-hidden,.luna-data-grid.luna-data-grid-hidden{display:none}.luna-data-grid .luna-data-grid-invisible,.luna-data-grid.luna-data-grid-invisible{visibility:hidden}.luna-data-grid *{box-sizing:border-box}.luna-data-grid.luna-data-grid-theme-dark{color-scheme:dark;color:hsla(0,0%,100%,.85);color:var(--luna-color-text-dark,rgba(255,255,255,.85));background-color:#141414;background-color:var(--luna-color-bg-container-dark,#141414)}.luna-data-grid{font-size:12px}.luna-data-grid table{width:100%;min-height:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.luna-data-grid td,.luna-data-grid th{padding:1px 4px;border-left:1px solid;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.luna-data-grid td:first-child,.luna-data-grid th:first-child{border-left:none}.luna-data-grid th{font-weight:400;border-bottom:1px solid;text-align:left;position:relative}.luna-data-grid th.luna-data-grid-sortable{padding-right:12px}.luna-data-grid th .luna-data-grid-icon-caret-down,.luna-data-grid th .luna-data-grid-icon-caret-up{font-size:12px;position:absolute;display:none;top:6px;right:2px}.luna-data-grid td{height:20px;cursor:default;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.luna-data-grid:focus .luna-data-grid-node.luna-data-grid-selectable.luna-data-grid-selected{color:#fff}.luna-data-grid-data-container,.luna-data-grid-header-container{overflow:hidden}.luna-data-grid-header-container{height:21px}.luna-data-grid-data-container{overflow-y:auto;position:relative}.luna-data-grid-data-space{min-height:100%}.luna-data-grid-data{position:absolute;left:0;top:0}.luna-data-grid-filler-row td{height:auto}.luna-data-grid-resizer{position:absolute;top:0;bottom:0;width:5px;z-index:500;touch-action:none;cursor:col-resize}.luna-data-grid-resizing{cursor:col-resize!important}.luna-data-grid-resizing .luna-data-grid *{cursor:col-resize!important}.luna-data-grid-theme-light{border-color:#d9d9d9;border-color:var(--luna-color-border,#d9d9d9)}.luna-data-grid-theme-light td,.luna-data-grid-theme-light th{border-color:#d9d9d9;border-color:var(--luna-color-border,#d9d9d9)}.luna-data-grid-theme-light th{background-color:rgba(0,0,0,.06);background-color:var(--luna-color-fill-secondary,rgba(0,0,0,.06))}.luna-data-grid-theme-light th.luna-data-grid-sortable:hover{background-color:rgba(0,0,0,.15);background-color:var(--luna-color-fill,rgba(0,0,0,.15))}.luna-data-grid-theme-light .luna-data-grid-data-container .luna-data-grid-node.luna-data-grid-selectable:hover,.luna-data-grid-theme-light .luna-data-grid-data-container .luna-data-grid-node.luna-data-grid-selected{background-color:#ddd}.luna-data-grid-theme-light .luna-data-grid-data-container tr:nth-child(even){background-color:#f2f7fd}.luna-data-grid-theme-light:focus .luna-data-grid-node.luna-data-grid-selectable.luna-data-grid-selected{background-color:#1a73e8;background-color:var(--luna-color-primary,#1a73e8)}.luna-data-grid-theme-dark{border-color:#424242;border-color:var(--luna-color-border,#424242)}.luna-data-grid-theme-dark td,.luna-data-grid-theme-dark th{border-color:#424242;border-color:var(--luna-color-border,#424242)}.luna-data-grid-theme-dark th{background-color:hsla(0,0%,100%,.12);background-color:var(--luna-color-fill-secondary,rgba(255,255,255,.12))}.luna-data-grid-theme-dark th.luna-data-grid-sortable:hover{background-color:hsla(0,0%,100%,.18);background-color:var(--luna-color-fill,rgba(255,255,255,.18))}.luna-data-grid-theme-dark .luna-data-grid-data-container .luna-data-grid-node.luna-data-grid-selectable:hover,.luna-data-grid-theme-dark .luna-data-grid-data-container .luna-data-grid-node.luna-data-grid-selected{background-color:#393939}.luna-data-grid-theme-dark .luna-data-grid-data-container tr:nth-child(even){background-color:#0b2544}.luna-data-grid-theme-dark:focus .luna-data-grid-node.luna-data-grid-selectable.luna-data-grid-selected{background-color:#1965c8;background-color:var(--luna-color-primary,#1965c8)}',""]),e.exports=t},3290:function(e,t,n){var o=n(975);t=function(e){var t,n=window.location,r=n.hostname,i=n.pathname,a=r.split("."),s=i.split("/"),c="",l=s.length;if(!p())for(var u=a.length-1;u>=0;u--){var d=a[u];if(""!==d){if(p({domain:c=""===c?d:d+"."+c,path:t="/"})||p({domain:c}))return;for(var h=0;h-1&&(t=(0,d.default)(t.split("?")[0])),""===t)&&(t=new l.default(e).hostname);return t}function S(e){if(!e)return{type:"unknown",subType:"unknown"};var t=e.split(";")[0].split("/");return{type:t[0],subType:(0,c.default)(t)}}var E=window.location.origin;function T(e){var t=encodeURIComponent(e).match(/%[89ABab]/g);return e.length+(t?t.length:0)}},3422:function(e,t){t=function(e){return null==e},e.exports=t},3497:function(e,t){t=function(e){var t=e?e.length:0;if(t)return e[t-1]},e.exports=t},3539:function(e,t){t=function(){for(var e=arguments,t=e[0],n=1,o=e.length;nt&&(t=e[n]);return t},e.exports=t},3578:function(e,t,n){"use strict";n.d(t,{A:function(){return on}});var o=n(7528);var r=n(7800);function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,r,i,a,s=[],c=!0,l=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(o=i.call(n)).done)&&(s.push(o.value),s.length!==t);c=!0);}catch(e){l=!0,r=e}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw r}}return s}}(e,t)||(0,r.A)(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var a=n(3029),s=n(2901),c=n(388),l=n(3954),u=n(991),d=n(5361),h=n(5902),f=n.n(h),p=n(2561),v=n.n(p),g=n(3249),m=n.n(g),b=n(1009),y=n.n(b),A=n(4950),w=n.n(A),_=n(9100),x=n.n(_),k=n(1580),C=n.n(k),S=n(9464),E=n.n(S),T=n(15),N=n.n(T),O=n(9931),j=n.n(O);function M(e){return e.constructor&&e.constructor.name?e.constructor.name:j()({}.toString.call(e).replace(/(\[object )|]/g,""))}var I=n(3915),z=n.n(I),D=n(9405),B=n.n(D),F=n(5169),R=n.n(F),L=n(9548),G=n.n(L),P=n(6097),H=n.n(P),Y=n(6030),$=n.n(Y),q=n(5004),Q=n.n(q),U=(n(9410),n(8609)),W=n.n(U);function J(e){var t="luna-".concat(e,"-");function n(e){return z()(B()(e).split(/\s+/),(function(e){return m()(e,t)?e:e.replace(/[\w-]+/,(function(e){return"".concat(t).concat(e)}))})).join(" ")}return function(e){if(/<[^>]*>/g.test(e))try{var t=G().parse(e);return K(t,(function(e){e.attrs&&e.attrs.class&&(e.attrs.class=n(e.attrs.class))})),G().stringify(t)}catch(t){return n(e)}return n(e)}}function K(e,t){for(var n=0,o=e.length;n1&&void 0!==arguments[1]?arguments[1]:{},o=n.topObj,r=n.level,i=void 0===r?0:r,a=n.getterVal,s=void 0!==a&&a,c=n.unenumerable,l=void 0===c||c,u="",d="",h=[],p=[],g="";o=o||e;var b={getterVal:s,unenumerable:l,level:i+1},A=0===i,w=''),_=''),k=''),S=''),E=''),T=''),O=function(e){return f()(e).replace(/\\n/g,"↵").replace(/\\f|\\r|\\t/g,"").replace(/\\/g,"")},j="";function I(e){return e=v()(e),m()(ee,e)||y()(e,"Array[")?T+O(e)+j:(e.length>100&&(e=N()(e,100,{separator:" ",ellipsis:"…"})),S+O('"'.concat(e,'"'))+j)}function z(n){if(t>5)g=", …";else{var r=function(e){return w+O(e)+j}(ne(n));if(!s){var i=Object.getOwnPropertyDescriptor(e,n);if(i&&i.get)return h.push("".concat(r,": ").concat(I("(...)"))),void t++}h.push("".concat(r,": ").concat(X(o[n],b))),t++}}try{d={}.toString.call(e)}catch(e){d="[object Object]"}var D,B="[object Array]"==d,F="[object Object]"==d,R="[object Number]"==d,L="[object RegExp]"==d,G="[object Symbol]"==d,P="[object Function]"==d,H="[object Boolean]"==d;if("[object String]"==d)u=I(ne(e));else if(L)D=ne(e.toString()),u=S+D+j;else if(P)u=I("ƒ");else if(B)if(A){u="[";var Y=e.length,$="";Y>100&&(Y=100,$=", …");for(var q=0;q0&&void 0!==arguments[0])||arguments[0],t=this.container.getBoundingClientRect(),n=t.width,o=t.height-1;this.height!==o&&(this.height=o,e||this.emit("updateHeight")),this.width!==n&&(this.width=n)}},{key:"html",value:function(){return this.container.outerHTML}},{key:"text",value:function(){return this.content.textContent||""}},{key:"select",value:function(){this.$container.addClass(this.console.c("selected"))}},{key:"deselect",value:function(){this.$container.rmClass(this.console.c("selected"))}},{key:"copy",value:function(){var e=this.args,t="";x()(e,(function(e,n){0!==n&&(t+=" "),ue()(e)?t+=Ze()(e):t+=v()(e)})),et()(t)}},{key:"bindEvent",value:function(){var e=this,t=this.console.c,n=this;this.resizeSensor.addListener(this.onResize),this.$container.on("click",t(".dom-viewer"),(function(e){return e.stopPropagation()})).on("click",t(".preview"),(function(e){if(e.stopPropagation(),!V(this)){var o=$e()(this).find(t(".preview-icon-container")).find(t(".icon")),r="caret-down";o.hasClass(t("icon-caret-down"))&&(r="caret-right"),o.rmAttr("class").addClass([t("icon"),t("icon-".concat(r))]),n.renderObjectViewer(this)}})).on("click",(function(){return e.click()}))}},{key:"renderEl",value:function(){var e=this.elements,t=this.console.c,n=this;this.$container.find(t(".dom-viewer")).each((function(){var t=$e()(this).data("id");new ae.A(this,{node:e[t],theme:n.console.getOption("theme")})}))}},{key:"renderObjectViewer",value:function(e){var t=this.console,n=this.unenumerable,o=this.accessGetter,r=this.lazyEvaluation,i=t.c,a=$e()(e),s=a.data("id");if(s){var c=this.objects[s],l=a.find(i(".json"));if(l.hasClass(i("hidden"))){if("true"!==l.data("init")){if(r){var u=new re.A(l.get(0),{unenumerable:n,accessGetter:o});u.setOption("theme",t.getOption("theme")),u.set(c)}else{var d=new re.j(l.get(0));d.setOption("theme",t.getOption("theme")),d.set(c)}l.data("init","true")}l.rmClass(i("hidden"))}else l.addClass(i("hidden"))}}},{key:"renderTable",value:function(e){var t=this,n="__LunaConsoleValue",o=this.columns,r=this.$container,i=this.console,a=i.c,s=r.find(a(".data-grid")),c=e[0],l=new ie.A(s.get(0),{columns:ke()([{id:"(index)",title:"(index)",sortable:!0}],z()(o,(function(e){return{id:e,title:e===n?"Value":e,sortable:!0}}))),theme:i.getOption("theme")});x()(c,(function(e,r){var i={"(index)":v()(r)};o.forEach((function(o){ue()(e)?i[o]=o===n?"":t.formatTableVal(e[o]):ge()(e)&&(i[o]=o===n?t.formatTableVal(e):"")})),l.append(i)}))}},{key:"extractObj",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,o=this.accessGetter,r=this.unenumerable;be()(t,{accessGetter:o,unenumerable:r,symbol:r,timeout:1e3}),function(e,t,n){var o=nt()(e,t);rt()((function(){return n(o)}))}(e,t,(function(e){return n(JSON.parse(e))}))}},{key:"click",value:function(){var e=this.type,t=this.$container,n=this.console,o=n.c;switch(e){case"log":case"warn":case"info":case"debug":case"output":case"table":case"dir":break;case"group":case"groupCollapsed":V(this.container)||n.toggleGroup(this);break;case"error":V(this.container)||t.find(o(".stack")).toggleClass(o("hidden"))}}},{key:"formatMsg",value:function(){var e=this.args,t=this.type,n=this.id,o=this.header,r=this.group,i=this.console.c;e=Re()(e);var a,s,c="";switch("group"!==t&&"groupCollapsed"!==t||0===e.length&&(e=["console.group"]),t){case"log":case"info":case"debug":c=this.formatCommon(e);break;case"dir":c=this.formatDir(e);break;case"warn":a="warn",c=this.formatCommon(e);break;case"error":he()(e[0])&&1!==e.length&&(e=this.substituteStr(e)),s=e[0],a="error",s=pe()(s)?s:new Error(this.formatCommon(e)),c=this.formatErr(s);break;case"table":c=this.formatTable(e);break;case"html":c=e[0];break;case"input":c=this.formatJs(e[0]),a="input";break;case"output":c=this.formatCommon(e),a="output";break;case"groupCollapsed":c=this.formatCommon(e),a="caret-right";break;case"group":c=this.formatCommon(e),a="caret-down"}if(m()(["log","debug","warn"],t)&&this.isSimple()&&(c=at()(c,(function(e){return'
').concat(e,"")}))),c=this.render({msg:c,type:t,icon:a,id:n,header:o,group:r}),this.$container.addClass("".concat(i("log-container"))).html(c),"table"===t)E()(this.columns)||this.renderTable(e);E()(this.elements)||this.renderEl(),this.$content=this.$container.find(i(".log-content")),this.content=this.$content.get(0)}},{key:"render",value:function(e){var t=this.console.c,n="",r="";if(e.group)for(var i=e.group.indentLevel,a=0;a');e.header&&(n+=ht()(oe||(oe=(0,o.A)(['\n
\n ','\n
\n '," ","\n
\n
"])),t("header"),r,t("time-from-container"),e.header.time,e.header.from));var s="";return e.icon&&(s='
')),n+='\n
\n ').concat(r,"\n ").concat(s,'\n
\n
\n
\n
\n
').concat(e.msg,"
\n
\n
")}},{key:"formatTable",value:function(e){var t=e[0],n=e[1],o=[];return he()(n)&&(n=Me()(n)),ze()(n)||(n=null),ue()(t)?(x()(t,(function(e){ge()(e)?o.push("__LunaConsoleValue"):ue()(e)&&(o=o.concat(He()(e)))})),(o=Be()(o)).sort(),n&&(o=o.filter((function(e){return m()(n,e)}))),o.length>20&&(o=o.slice(0,20)),E()(o)?this.formatCommon(e):(this.columns=o,this.console.c('
')+this.formatPreview(t))):this.formatCommon(e)}},{key:"formatErr",value:function(e){var t=e.stack?e.stack.split("\n"):[],n=e.name?"".concat(e.name,": "):"";return n+="".concat(e.message||t[0],"
"),t=t.map((function(e){return f()(e)})),n+'
').concat(t.slice(1).join("
"),"
").replace(kt,(function(e){return'').concat(e,"")}))}},{key:"formatCommon",value:function(e){var t=this.console.c,n=he()(e[0])&&1!==e.length;n&&(e=this.substituteStr(e));for(var o=0,r=e.length;o').concat(f()(v()(i)),""):ue()(i)?e[o]=this.formatPreview(i):Te()(i)?e[o]='undefined'):Se()(i)?e[o]='null'):H()(i)?e[o]='').concat(v()(i),""):"bigint"==typeof i?e[o]='').concat(v()(i),"n"):bt()(i)?e[o]='').concat(v()(i),""):At()(i)?e[o]='').concat(f()(v()(i)),""):(i=v()(i),0===o&&n||(i=f()(i)),i.length>5e3&&(i=N()(i,5e3,{separator:" ",ellipsis:"…"})),e[o]=i)}return e.join(" ")}},{key:"formatDir",value:function(e){return ue()(e[0])?this.formatPreview(e[0]):this.formatCommon(e)}},{key:"formatTableVal",value:function(e){var t=this.console.c;return ue()(e)?"{…}":ge()(e)?pt()('
').concat(X(e),"
")):v()(e)}},{key:"formatPreview",value:function(e){var t=this,n=this.console.c,o=gt()();this.lazyEvaluation?this.objects[o]=e:this.extractObj(e,{},(function(e){t.objects[o]=e}));var r=m()(["dir","table"],this.type),i=M(e);return"Array"===i&&e.length>1?(i="(".concat(e.length,")"),r&&(i="Array".concat(i))):"RegExp"===i?i=v()(e):Ae()(e)&&(i=this.formatElName(e)),'
')+'
')+'
')+'')+'').concat(f()(i)," ")+'').concat(r?"":X(e,{getterVal:this.accessGetter,unenumerable:!1}),"")+"
"+'
')}},{key:"substituteStr",value:function(e){var t=f()(e[0]),n=!1,o="";e.shift();for(var r=0,i=t.length;r"),n=!0,o+='');break;default:r--,e.unshift(s),o+=a}}else o+=a}return n&&(o+=""),e.unshift(o),e}},{key:"formatJs",value:function(e){var t=ct()(e,"js",Ct);return t!==e&&(t=this.console.c(t)),'
').concat(t,"
")}},{key:"formatFn",value:function(e){return'
'.concat(this.formatJs(e.toString()),"
")}},{key:"formatElName",value:function(e){var t=e.id,n=e.className,o=e.tagName.toLowerCase();if(""!==t&&(o+="#".concat(t)),he()(n)){var r="";x()(n.split(/\s+/g),(function(e){""!==e.trim()&&(r+=".".concat(e))})),o+=r}return o}},{key:"formatEl",value:function(e){var t=gt()();return this.elements[t]=e,this.console.c('
'))}}])}(We());function Et(e){var t=(e=Ge()(e)).split(";"),n={};x()(t,(function(e){if(m()(e,":")){var t=i(e.split(":"),2),o=t[0],r=t[1];n[B()(o)]=B()(r)}})),n.display="inline-block",n["max-width"]="100%",delete n.width,delete n.height;var o="";return x()(n,(function(e,t){o+="".concat(t,":").concat(e,";")})),o}var Tt=n(5820),Nt=n.n(Tt),Ot=n(3981),jt=n.n(Ot),Mt=n(8105),It=n.n(Mt),zt=n(7005),Dt=n.n(zt),Bt=n(3497),Ft=n.n(Bt),Rt=n(5865),Lt=n.n(Rt),Gt=n(8862),Pt=n.n(Gt),Ht=n(7030),Yt=n.n(Ht),$t=n(961),qt=n.n($t),Qt=n(7e3),Ut=n.n(Qt);function Wt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Wt=function(){return!!e})()}var Jt,Kt=function(e){function t(e,n){var o,r,i=n.compName,s=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).theme,u=void 0===s?"light":s;return(0,a.A)(this,t),o=function(e,t,n){return t=(0,l.A)(t),(0,c.A)(e,Wt()?Reflect.construct(t,n||[],(0,l.A)(e).constructor):t.apply(e,n))}(this,t),o.subComponents=[],o.theme="",o.onThemeChange=function(e){"auto"===o.options.theme&&o.setTheme(e)},o.compName=i,o.c=J(i),o.options={},o.container=e,o.$container=$e()(e),o.$container.addClass(["luna-".concat(i),o.c("platform-".concat((r=Q()(),"os x"===r?"mac":r)))]),o.on("changeOption",(function(e,t){if("theme"===e&&t){var n=t;"auto"===t&&(n=Ut().get()),o.setTheme(n),x()(o.subComponents,(function(e){return e.setOption("theme",t)}))}})),Ut().on("change",o.onThemeChange),o.setOption("theme",u),o}return(0,d.A)(t,e),(0,s.A)(t,[{key:"destroy",value:function(){var e=this;this.destroySubComponents();var t=this.$container,n=t.attr("class");x()(n.split(/\s+/),(function(n){y()(n,"luna-".concat(e.compName))&&t.rmClass(n)})),t.html(""),this.emit("destroy"),this.removeAllListeners(),Ut().off("change",this.onThemeChange)}},{key:"setOption",value:function(e,t){var n=this,o=this.options,r={};"string"==typeof e?r[e]=t:r=e,x()(r,(function(e,t){var r=o[t];o[t]=e,e!==r&&n.emit("changeOption",t,e,r)}))}},{key:"getOption",value:function(e){return this.options[e]}},{key:"addSubComponent",value:function(e){e.setOption("theme",this.options.theme),this.subComponents.push(e)}},{key:"removeSubComponent",value:function(e){qt()(this.subComponents,(function(t){return t===e}))}},{key:"destroySubComponents",value:function(){x()(this.subComponents,(function(e){return e.destroy()})),this.subComponents=[]}},{key:"initOptions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};be()(e,t),It()(this.options,e)}},{key:"find",value:function(e){return this.$container.find(this.c(e))}},{key:"setTheme",value:function(e){var t=this.c,n=this.$container;this.theme&&n.rmClass(t("theme-".concat(this.theme))),n.addClass(t("theme-".concat(e))),this.theme=e}}])}(We()),Vt=n(2228),Zt=n.n(Vt);function Xt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Xt=function(){return!!e})()}e=n.hmd(e);var en=navigator.userAgent,tn=en.indexOf("Android")>-1||en.indexOf("Adr")>-1,nn=0,on=function(e){function t(e){var n,o,r,i,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,a.A)(this,t),o=this,r=t,i=[e,{compName:"console"},s],r=(0,l.A)(r),(n=(0,c.A)(o,Xt()?Reflect.construct(r,i||[],(0,l.A)(o).constructor):r.apply(o,i))).spaceHeight=0,n.topSpaceHeight=0,n.bottomSpaceHeight=0,n.lastScrollTop=0,n.lastTimestamp=0,n.speedToleranceFactor=100,n.maxSpeedTolerance=2e3,n.minSpeedTolerance=100,n.logs=[],n.displayLogs=[],n.timer={},n.counter={},n.asyncList=[],n.asyncTimer=null,n.isAtBottom=!0,n.groupStack=new(Dt()),n.selectedLog=null,n.onScroll=function(){var e=n.container,t=e.scrollHeight,o=e.offsetHeight,r=e.scrollTop;if(!(r<=0||o+r>t)){var i=!1;(t===o||Math.abs(t-o-r)<1)&&(i=!0),n.isAtBottom=i;var a=n.lastScrollTop,s=n.lastTimestamp,c=jt()(),l=c-s,u=r-a,d=Math.abs(u/l)*n.speedToleranceFactor;l>1e3&&(d=1e3),d>n.maxSpeedTolerance&&(d=n.maxSpeedTolerance),dr+o+f||n.renderViewport({topTolerance:2*h,bottomTolerance:2*f})}},n.initTpl(),n.initOptions(s,{maxNum:0,asyncRender:!0,showHeader:!1,filter:"",level:["verbose","info","warning","error"],accessGetter:!1,unenumerable:!0,lazyEvaluation:!0}),n.$el=n.find(".logs"),n.el=n.$el.get(0),n.$fakeEl=n.find(".fake-logs"),n.fakeEl=n.$fakeEl.get(0),n.$space=n.find(".logs-space"),n.space=n.$space.get(0),tn&&(n.speedToleranceFactor=800,n.maxSpeedTolerance=3e3,n.minSpeedTolerance=800),n.resizeSensor=new(ce())(e),n.renderViewport=Lt()((function(e){n._renderViewport(e)}),16),n.global={copy:function(e){he()(e)||(e=JSON.stringify(e,null,2)),et()(e)},$:function(e){return document.querySelector(e)},$$:function(e){return Me()(document.querySelectorAll(e))},$x:function(e){return Pt()(e)},clear:function(){n.clear()},dir:function(e){n.dir(e)},table:function(e,t){n.table(e,t)},keys:He()},n.bindEvent(),n}return(0,d.A)(t,e),(0,s.A)(t,[{key:"setGlobal",value:function(e,t){this.global[e]=t}},{key:"destroy",value:function(){var e,n,o,r,i;this.$container.off("scroll",this.onScroll),this.resizeSensor.destroy(),(e=t,n="destroy",o=this,r=3,i=(0,u.A)((0,l.A)(1&r?e.prototype:e),n,o),2&r&&"function"==typeof i?function(e){return i.apply(o,e)}:i)([])}},{key:"count",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",t=this.counter;Te()(t[e])?t[e]=1:t[e]++,this.info("".concat(e,": ").concat(t[e]))}},{key:"countReset",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";this.counter[e]=0}},{key:"assert",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&void 0!==arguments[0]?arguments[0]:"default";if(this.timer[e])return this.insert("warn",["Timer '".concat(e,"' already exists")]);this.timer[e]=Nt()()}},{key:"timeLog",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",t=this.timer[e];if(!t)return this.insert("warn",["Timer '".concat(e,"' does not exist")]);this.info("".concat(e,": ").concat(Nt()()-t,"ms"))}},{key:"timeEnd",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";this.timeLog(e),delete this.timer[e]}},{key:"clear",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.logs=[],this.displayLogs=[],this.selectLog(null),this.lastLog=void 0,this.counter={},this.timer={},this.groupStack=new(Dt()),this.asyncList=[],this.asyncTimer&&(clearTimeout(this.asyncTimer),this.asyncTimer=null),e?this.render():this.insert("log",["%cConsole was cleared","color:#808080;font-style:italic;"])}},{key:"info",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&(o.group=a.peek()),It()(o,{id:++nn,accessGetter:l,unenumerable:u,lazyEvaluation:d}),"group"===o.type||"groupCollapsed"===o.type){var h={id:gt()("group"),collapsed:!1,parent:a.peek(),indentLevel:a.size+1};"groupCollapsed"===o.type&&(h.collapsed=!0),o.targetGroup=h,a.push(h)}var f=new St(this,o);f.on("updateHeight",(function(){r.isAtBottom=!1,r.renderViewport()}));var p=this.lastLog;if(p&&!m()(["html","group","groupCollapsed"],f.type)&&p.type===f.type&&f.isSimple()&&p.text()===f.text()?(p.addCount(),f.header&&p.updateTime(f.header.time),f=p,this.detachLog(p)):(i.push(f),this.lastLog=f),0!==c&&i.length>c){var v=i[0];this.detachLog(v),i.shift()}this.attachLog(f),this.emit("insert",f)}},{key:"updateTopSpace",value:function(e){this.topSpaceHeight=e,this.el.style.top=e+"px"}},{key:"updateBottomSpace",value:function(e){this.bottomSpaceHeight=e}},{key:"updateSpace",value:function(e){this.spaceHeight!==e&&(this.spaceHeight=e,this.space.style.height=e+"px")}},{key:"detachLog",value:function(e){var t=this.displayLogs,n=t.indexOf(e);n>-1&&(t.splice(n,1),this.renderViewport())}},{key:"attachLog",value:function(e){if(this.filterLog(e)&&!e.collapsed){var t=this.displayLogs;if(0===t.length)return t.push(e),void this.renderViewport();var n=Ft()(t);if(e.id>n.id)return t.push(e),void this.renderViewport();for(var o,r=0,i=t.length-1,a=0;r<=i;){if((o=t[a=r+Math.floor((i-r)/2)]).id===e.id)return;o.id0&&void 0!==arguments[0]?arguments[0]:20,n=this.asyncList;this.asyncTimer||(this.asyncTimer=setTimeout((function(){e.asyncTimer=null;var t,o,r=!1,a=n.length;a<1e3?(o=200,t=400):a<5e3?(o=500,t=800):a<1e4?(o=800,t=1e3):a<25e3?(o=1e3,t=1200):a<5e4?(o=1500,t=1500):(o=2e3,t=2500),o>a&&(o=a,r=!0);for(var s=0;s0&&o.length>n&&(e.logs=o.slice(o.length-n),e.render());break;case"filter":e.render();break;case"level":e.options.level=Me()(n),e.render()}})),this.$container.on("scroll",this.onScroll)}},{key:"_renderViewport",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.topTolerance,n=void 0===t?500:t,o=e.bottomTolerance,r=void 0===o?500:o,i=this.el,a=this.container,s=this.space;if(!W()(a)){for(var c=a.scrollTop,l=a.offsetHeight,u=s.getBoundingClientRect().width,d=c-n,h=c+l+r,f=this.displayLogs,p=0,v=0,g=0,m=f.length,b=this.fakeEl,y=document.createDocumentFragment(),A=[],w=0;w0){b.appendChild(y);for(var k=0,C=A.length;kh?v+=O:g+O>d?S.appendChild(N):g\n
\n
\n \n '])))))}}])}(Kt),rn=function(){return Yt()("HH:MM:ss ")};function an(){for(var e=new Error,t="",n=e.stack?e.stack.split("\n"):"",o=0,r=n.length;o-1&&o0)&&!(o=i.next()).done;)a.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return a},o=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],o=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};function r(e,t){var n=e[3];return[(1-n)*t[0]+n*e[0],(1-n)*t[1]+n*e[1],(1-n)*t[2]+n*e[2],n+t[3]*(1-n)]}function i(e){var t=n(e,3),o=t[0],r=t[1],i=t[2];return.2126*(o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.0722*(i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4))}Object.defineProperty(t,"__esModule",{value:!0}),t.getContrastThreshold=t.isLargeFont=t.getAPCAThreshold=t.desiredLuminanceAPCA=t.contrastRatioByLuminanceAPCA=t.contrastRatioAPCA=t.luminanceAPCA=t.contrastRatio=t.luminance=t.rgbaToHsla=t.blendColors=void 0,t.blendColors=r,t.rgbaToHsla=function(e){var t=n(e,4),o=t[0],r=t[1],i=t[2],a=t[3],s=Math.max(o,r,i),c=Math.min(o,r,i),l=s-c,u=s+c,d=.5*u;return[c===s?0:o===s?(1/6*(r-i)/l+1)%1:r===s?1/6*(i-o)/l+1/3:1/6*(o-r)/l+2/3,0===d||1===d?0:d<=.5?l/u:l/(2-u),d,a]},t.luminance=i,t.contrastRatio=function(e,t){var n=i(r(e,t)),o=i(t);return(Math.max(n,o)+.05)/(Math.min(n,o)+.05)};var a=12.82051282051282,s=.06;function c(e){var t=n(e,3),o=t[0],r=t[1],i=t[2];return.2126729*Math.pow(o,2.4)+.7151522*Math.pow(r,2.4)+.072175*Math.pow(i,2.4)}function l(e){return e>.03?e:e+Math.pow(.03-e,1.45)}function u(e,t){if(e=l(e),t=l(t),Math.abs(e-t)<5e-4)return 0;var n=0;return 100*(n=t>=e?(n=1.25*(Math.pow(t,.55)-Math.pow(e,.58)))<.001?0:n<.078?n-n*a*s:n-s:(n=1.25*(Math.pow(t,.62)-Math.pow(e,.57)))>-.001?0:n>-.078?n-n*a*s:n+s)}t.luminanceAPCA=c,t.contrastRatioAPCA=function(e,t){return u(c(e),c(t))},t.contrastRatioByLuminanceAPCA=u,t.desiredLuminanceAPCA=function(e,t,n){function o(){return n?Math.pow(Math.abs(Math.pow(e,.62)-(-t-s)/1.25),1/.57):Math.pow(Math.abs(Math.pow(e,.55)-(t+s)/1.25),1/.58)}e=l(e),t/=100;var r=o();return(r<0||r>1)&&(n=!n,r=o()),r};var d=[[12,-1,-1,-1,-1,100,90,80,-1,-1],[14,-1,-1,-1,100,90,80,60,60,-1],[16,-1,-1,100,90,80,60,55,50,50],[18,-1,-1,90,80,60,55,50,40,40],[24,-1,100,80,60,55,50,40,38,35],[30,-1,90,70,55,50,40,38,35,40],[36,-1,80,60,50,40,38,35,30,25],[48,100,70,55,40,38,35,30,25,20],[60,90,60,50,38,35,30,25,20,20],[72,80,55,40,35,30,25,20,20,20],[96,70,50,35,30,25,20,20,20,20],[120,60,40,30,25,20,20,20,20,20]];function h(e,t){var n=72*parseFloat(e.replace("px",""))/96;return-1!==["bold","bolder","600","700","800","900"].indexOf(t)?n>=14:n>=18}d.reverse(),t.getAPCAThreshold=function(e,t){var r,i,a,s,c=parseFloat(e.replace("px","")),l=parseFloat(t);try{for(var u=o(d),h=u.next();!h.done;h=u.next()){var f=n(h.value),p=f[0],v=f.slice(1);if(c>=p)try{for(var g=(a=void 0,o([900,800,700,600,500,400,300,200,100].entries())),m=g.next();!m.done;m=g.next()){var b=n(m.value,2),y=b[0];if(l>=b[1]){var A=v[v.length-1-y];return-1===A?null:A}}}catch(e){a={error:e}}finally{try{m&&!m.done&&(s=g.return)&&s.call(g)}finally{if(a)throw a.error}}}}catch(e){r={error:e}}finally{try{h&&!h.done&&(i=u.return)&&i.call(u)}finally{if(r)throw r.error}}return null},t.isLargeFont=h;var f={aa:3,aaa:4.5},p={aa:4.5,aaa:7};t.getContrastThreshold=function(e,t){return h(e,t)?f:p}},3722:function(e,t,n){var o=n(3145);t=function(e){return Object.freeze?Object.freeze(e):(o(e).forEach((function(t){Object.getOwnPropertyDescriptor(e,t).configurable&&Object.defineProperty(e,t,{writable:!1,configurable:!1})})),e)},e.exports=t},3737:function(e,t,n){var o=n(2263);t=o.extend({className:"MediaQuery",initialize:function(e){var t=this;this.callSuper(o,"initialize"),this._listener=function(){t.emit(t.isMatch()?"match":"unmatch")},this.setQuery(e)},setQuery:function(e){this._mql&&this._mql.removeListener(this._listener),this._mql=window.matchMedia(e),this._mql.addListener(this._listener)},isMatch:function(){return this._mql.matches}}),e.exports=t},3750:function(e,t,n){var o=n(3974);t=function(e){return"[object Blob]"===o(e)},e.exports=t},3752:function(e,t,n){var o=n(2510),r=n(769);t=o((function(e,t){return function(){var n=[];return n=(n=n.concat(t)).concat(r(arguments)),e.apply(this,n)}})),e.exports=t},3793:function(e,t,n){var o=n(8966),r=n(8971),i=n(3612),a=n(9100);function s(e){return function(t,n,s,c){t=i(t),r(c)&&(c=s,s=void 0),a(t,(function(t){o[e](t,n,s,c)}))}}t={on:s("add"),off:s("remove")},e.exports=t},3805:function(e,t,n){var o=n(2561);t=function(e){return o(e).toLocaleUpperCase()},e.exports=t},3915:function(e,t,n){var o=n(5693),r=n(3145),i=n(5793);t=function(e,t,n){t=o(t,n);for(var a=!i(e)&&r(e),s=(a||e).length,c=Array(s),l=0;l=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},r=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var o,r,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(o=i.next()).done;)a.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return a},i=this&&this.__spreadArray||function(e,t,n){if(n||2===arguments.length)for(var o,r=0,i=t.length;r]*>/g.test(e))try{var t=Oe().parse(e);return De(t,(function(e){e.attrs&&e.attrs.class&&(e.attrs.class=Be(e.attrs.class))})),Oe().stringify(t)}catch(t){return Be(e)}return Be(e)}function De(e,t){for(var n=0,o=e.length;n3||Math.abs(a)>3)&&(r._isClick=!1);var s=r._oldX+i,c=r._oldY+a;s<0?s=0:s>n-t&&(s=n-t),c<0?c=0:c>o-t&&(c=o-t),r._$el.css({left:s,top:c})})),(0,c.A)(r,"_onDragEnd",(function(e){var t=r._$el;r._isClick&&r.emit("click"),r._onDragMove(e),Ge.off(pe()("move"),r._onDragMove),Ge.off(pe()("up"),r._onDragEnd);var n=r.config;n.get("rememberPos")&&n.set("pos",{x:Me(t.css("left")),y:Me(t.css("top"))}),t.rmClass("eruda-active")})),r._style=re(n(6717)),r._$container=e,r._initTpl(),r._bindEvent(),r._registerListener(),r}return(0,s.A)(t,e),(0,r.A)(t,[{key:"hide",value:function(){this._$el.hide()}},{key:"show",value:function(){this._$el.show()}},{key:"setPos",value:function(e){this._isOutOfRange(e)&&(e=this._getDefPos()),this._$el.css({left:e.x,top:e.y}),this.config.set("pos",e)}},{key:"getPos",value:function(){return this.config.get("pos")}},{key:"destroy",value:function(){re.remove(this._style),this._unregisterListener(),this._$el.remove()}},{key:"_isOutOfRange",value:function(e){e=e||this.config.get("pos");var t=this._getDefPos();return e.x>t.x+10||e.x<0||e.y<0||e.y>t.y+10}},{key:"_registerListener",value:function(){var e=this;this._scaleListener=function(){return ue()((function(){e._isOutOfRange()&&e._resetPos()}))},h.on(h.SCALE,this._scaleListener)}},{key:"_unregisterListener",value:function(){h.off(h.SCALE,this._scaleListener)}},{key:"_initTpl",value:function(){var e=this._$container;e.append(ze('
')),this._$el=e.find(".eruda-entry-btn")}},{key:"_resetPos",value:function(e){var t=this.config,n=t.get("pos"),o=this._getDefPos();t.get("rememberPos")&&!e||(n=o),this.setPos(n)}},{key:"_bindEvent",value:function(){var e=this;this._$el.on(pe()("down"),this._onDragStart),he().on("change",(function(){return e._resetPos(!0)})),window.addEventListener("resize",(function(){return e._resetPos()}))}},{key:"initCfg",value:function(e){var t=this.config=ce.createCfg("entry-button",{rememberPos:!0,pos:this._getDefPos()});e.switch(t,"rememberPos","Remember Entry Button Position"),this._resetPos()}},{key:"_getDefPos",value:function(){var e=this._$el.get(0).offsetWidth+10;return{x:window.innerWidth-e,y:window.innerHeight-e}}}])}(u()),He=n(5458),Ye=n(7622),$e=Le=new(n.n(Ye)())("[Eruda]","warn");Le.formatter=function(e,t){return t.unshift(this.name),t};var qe=n(6097),Qe=n.n(qe),Ue=n(7e3),We=n.n(Ue),Je=n(9931),Ke=n.n(Je),Ve=n(1009),Ze=n.n(Ve),Xe=n(5570),et=n.n(Xe),tt=n(2556),nt=n(1944),ot=n(8052);function rt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(rt=function(){return!!e})()}var it=function(e){function t(e){var r,s,l,u,d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},h=d.defaults,f=void 0===h?{}:h,p=d.inline,v=void 0!==p&&p;return(0,o.A)(this,t),s=this,l=t,l=(0,a.A)(l),r=(0,i.A)(s,rt()?Reflect.construct(l,u||[],(0,a.A)(s).constructor):l.apply(s,u)),(0,c.A)(r,"_checkSafeArea",(function(){var e=r.$container;!function(){var e=!1,t=document.createElement("div");if(CSS.supports("padding-bottom: env(safe-area-inset-bottom)")?(t.style.paddingBottom="env(safe-area-inset-bottom)",e=!0):CSS.supports("padding-bottom: constant(safe-area-inset-bottom)")&&(t.style.paddingBottom="constant(safe-area-inset-bottom)",e=!0),e){document.body.appendChild(t);var n=parseInt(window.getComputedStyle(t).paddingBottom);if(document.body.removeChild(t),n>0)return!0}return!1}()?e.rmClass(ze("safe-area")):e.addClass(ze("safe-area"))})),(0,c.A)(r,"_updateTabHeight",(function(e){r._tab.setOption("height",40*e),ue()((function(){r._tab.updateSlider()}))})),r._defCfg=P()({transparency:1,displaySize:80,theme:"System preference"},f),r._style=re(n(541)),r.$container=e,r._isShow=!1,r._opacity=1,r._tools={},r._isResizing=!1,r._resizeTimer=null,r._resizeStartY=0,r._resizeStartSize=0,r._inline=v,r._initTpl(),r._initTab(),r._initNotification(),r._initModal(),et()((function(){return r._checkSafeArea()})),r._bindEvent(),r}return(0,s.A)(t,e),(0,r.A)(t,[{key:"show",value:function(){var e=this;return this._isShow=!0,this._$el.show(),this._tab.updateSlider(),setTimeout((function(){e._$el.css("opacity",e._opacity)}),50),this.emit("show"),this}},{key:"hide",value:function(){var e=this;if(!this._inline)return this._isShow=!1,this.emit("hide"),this._$el.css({opacity:0}),setTimeout((function(){return e._$el.hide()}),300),this}},{key:"toggle",value:function(){return this._isShow?this.hide():this.show()}},{key:"add",value:function(e){var t=this._tab;if(!(e instanceof v)){var n=new v,o=n.init,r=n.show,i=n.hide,a=n.destroy;L()(e,{init:o,show:r,hide:i,destroy:a})}var s=e.name;if(!s)return $e.error("You must specify a name for a tool");if(this._tools[s])return $e.warn("Tool ".concat(s," already exists"));var c=s.replace(/\s+/g,"-");return this._$tools.prepend('
')),e.init(this._$tools.find(".".concat(ze(c),".").concat(ze("tool"))),this),e.active=!1,this._tools[s]=e,"settings"===s?t.append({id:s,title:s}):t.insert(t.length-1,{id:s,title:s}),this}},{key:"remove",value:function(e){var t=this._tools;if(!t[e])return $e.warn("Tool ".concat(e," doesn't exist"));this._tab.remove(e);var n=t[e];if(delete t[e],n.active){var o=D()(t);o.length>0&&this.showTool(t[Ae()(o)].name)}return n.destroy(),this}},{key:"removeAll",value:function(){var e=this;return x()(this._tools,(function(t){return e.remove(t.name)})),this}},{key:"get",value:function(e){var t=this._tools[e];if(t)return t}},{key:"showTool",value:function(e){if(this._curTool===e)return this;this._curTool=e;var t=this._tools,n=t[e];if(n){var o={};return x()(t,(function(e){e.active&&(o=e,e.active=!1,e.hide())})),n.active=!0,n.show(),this._tab.select(e),this.emit("showTool",e,o),this}}},{key:"initCfg",value:function(e){var t=this,n=this.config=ce.createCfg("dev-tools",this._defCfg);this._setTransparency(n.get("transparency")),this._setDisplaySize(n.get("displaySize")),this._setTheme(n.get("theme")),n.on("change",(function(e,n){switch(e){case"transparency":return t._setTransparency(n);case"displaySize":return t._setDisplaySize(n);case"theme":return t._setTheme(n)}})),e.separator().select(n,"theme","Theme",["System preference"].concat((0,He.A)(D()(re.getThemes())))),this._inline||e.range(n,"transparency","Transparency",{min:.2,max:1,step:.01}).range(n,"displaySize","Display Size",{min:40,max:100,step:1}),e.button("Restore defaults and reload",(function(){var e=je("local"),t=JSON.parse(JSON.stringify(e));x()(t,(function(t,n){E()(t)&&Ze()(n,"eruda")&&e.removeItem(n)})),window.location.reload()})).separator()}},{key:"notify",value:function(e,t){this._notification.notify(e,t)}},{key:"destroy",value:function(){re.remove(this._style),this.removeAll(),this._tab.destroy(),this._$el.remove(),window.removeEventListener("resize",this._checkSafeArea),h.off(h.SCALE,this._updateTabHeight)}},{key:"_setTheme",value:function(e){var t=this.$container;"System preference"===e&&(e=Ke()(We().get())),K(e)?t.addClass(ze("dark")):t.rmClass(ze("dark")),re.setTheme(e)}},{key:"_setTransparency",value:function(e){Qe()(e)&&(this._opacity=e,this._isShow&&this._$el.css({opacity:e}))}},{key:"_setDisplaySize",value:function(e){this._inline&&(e=100),Qe()(e)&&this._$el.css({height:e+"%"})}},{key:"_initTpl",value:function(){var e=this.$container;e.append(ze('\n
\n
\n
\n
\n
\n \n
\n ')),this._$el=e.find(ze(".dev-tools")),this._$tools=this._$el.find(ze(".tools"))}},{key:"_initTab",value:function(){var e=this;this._tab=new ot.A(this._$el.find(ze(".tab")).get(0),{height:40}),this._tab.on("select",(function(t){return e.showTool(t)}))}},{key:"_initNotification",value:function(){this._notification=new tt.A(this._$el.find(ze(".notification")).get(0),{position:{x:"center",y:"top"}})}},{key:"_initModal",value:function(){nt.A.setContainer(this._$el.find(ze(".modal")).get(0))}},{key:"_bindEvent",value:function(){var e=this,t=this._$el.find(ze(".resizer")),n=this._$el.find(ze(".nav-bar")),o=m()(document);this._inline&&t.hide();var r=function(t){if(e._isResizing){t.preventDefault(),t.stopPropagation(),t=t.origEvent;var n=(e._resizeStartY-Fe("y",t))/window.innerHeight*100,o=e._resizeStartSize+n;o<40?o=40:o>100&&(o=100),e.config.set("displaySize",Se()(o.toFixed(2)))}},i=function(){clearTimeout(e._resizeTimer),e._isResizing=!1,t.css("height",10),o.off(pe()("move"),r),o.off(pe()("up"),i)};t.css("height",10),t.on(pe()("down"),(function(n){n.preventDefault(),n.stopPropagation(),n=n.origEvent,e._isResizing=!0,e._resizeStartSize=e.config.get("displaySize"),e._resizeStartY=Fe("y",n),t.css("height","100%"),o.on(pe()("move"),r),o.on(pe()("up"),i)})),n.on("contextmenu",(function(e){return e.preventDefault()})),this.$container.on("click",(function(e){return e.stopPropagation()})),window.addEventListener("resize",this._checkSafeArea),h.on(h.SCALE,this._updateTabHeight),We().on("change",(function(){var t=e.config.get("theme");"System preference"===t&&e._setTheme(t)}))}}])}(u()),at=n(9993),st=n.n(at),ct=n(3957),lt=n.n(ct),ut=n(1976),dt=n.n(ut),ht=n(6962),ft=n.n(ht),pt=n(8609),vt=n.n(pt),gt=n(4236),mt=n.n(gt),bt=n(3578);function yt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(yt=function(){return!!e})()}function At(e,t,n,o){var r=(0,f.A)((0,a.A)(1&o?e.prototype:e),t,n);return 2&o&&"function"==typeof r?function(e){return r.apply(n,e)}:r}ft().start();var wt=function(e){function t(){var e,n,r,s,l=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).name,d=void 0===l?"console":l;return(0,o.A)(this,t),n=this,r=t,r=(0,a.A)(r),e=(0,i.A)(n,yt()?Reflect.construct(r,s||[],(0,a.A)(n).constructor):r.apply(n,s)),(0,c.A)(e,"_handleShow",(function(){vt()(e._$el.get(0))||e._logger.renderViewport()})),(0,c.A)(e,"_handleErr",(function(t){e._logger.error(t)})),u().mixin(e),e.name=d,e._selectedLog=null,e}return(0,s.A)(t,e),(0,r.A)(t,[{key:"init",value:function(e,n){At(t,"init",this,3)([e]),this._container=n,this._appendTpl(),this._initCfg(),this._initLogger(),this._exposeLogger(),this._bindEvent()}},{key:"show",value:function(){At(t,"show",this,3)([]),this._handleShow()}},{key:"overrideConsole",value:function(){var e=this,t=this._origConsole={},n=window.console;return _t.forEach((function(o){var r=t[o]=st();n[o]&&(r=t[o]=n[o].bind(n)),n[o]=function(){e[o].apply(e,arguments),r.apply(void 0,arguments)}})),this}},{key:"setGlobal",value:function(e,t){this._logger.setGlobal(e,t)}},{key:"restoreConsole",value:function(){var e=this;return this._origConsole?(_t.forEach((function(t){return window.console[t]=e._origConsole[t]})),delete this._origConsole,this):this}},{key:"catchGlobalErr",value:function(){return ft().addListener(this._handleErr),this}},{key:"ignoreGlobalErr",value:function(){return ft().rmListener(this._handleErr),this}},{key:"filter",value:function(e){var t=this._$filterText,n=this._logger;E()(e)?(t.text(e),n.setOption("filter",Te()(e))):dt()(e)?(t.text(I()(e)),n.setOption("filter",e)):lt()(e)&&(t.text("ƒ"),n.setOption("filter",e))}},{key:"destroy",value:function(){this._logger.destroy(),At(t,"destroy",this,3)([]),this._container.off("show",this._handleShow),this._style&&re.remove(this._style),this.ignoreGlobalErr(),this.restoreConsole(),this._rmCfg()}},{key:"_enableJsExecution",value:function(e){var t=this._$el,n=t.find(ze(".js-input"));e?(n.show(),t.rmClass(ze("js-input-hidden"))):(n.hide(),t.addClass(ze("js-input-hidden")))}},{key:"_appendTpl",value:function(){var e=this._$el;this._style=re(n(6567)),e.append(ze('\n
\n \n All\n Info\n Warning\n Error\n \n \n \n
\n
\n
\n
\n
Cancel
\n
Execute
\n
\n \n \n
\n '));var t=e.find(ze(".js-input")),o=t.find("textarea"),r=t.find(ze(".buttons"));P()(this,{_$control:e.find(ze(".control")),_$logs:e.find(ze(".logs-container")),_$inputContainer:t,_$input:o,_$inputBtns:r,_$filterText:e.find(ze(".filter-text"))})}},{key:"_initLogger",value:function(){var e=this.config,t=e.get("maxLogNum");t="infinite"===t?0:+t;var n=this._$control.find(ze(".level")),o=new bt.A(this._$logs.get(0),{asyncRender:e.get("asyncRender"),maxNum:t,showHeader:e.get("displayExtraInfo"),unenumerable:e.get("displayUnenumerable"),accessGetter:e.get("displayGetterVal"),lazyEvaluation:e.get("lazyEvaluation")});o.on("optionChange",(function(e,t){if("level"===e)n.each((function(){var e=m()(this),n=e.data("level");e[n===t||"all"===n&&Y()(t)?"addClass":"rmClass"](ze("active"))}))})),e.get("overrideConsole")&&this.overrideConsole(),this._logger=o}},{key:"_exposeLogger",value:function(){var e=this,t=this._logger;["html"].concat(_t).forEach((function(n){return e[n]=function(){for(var o=arguments.length,r=new Array(o),i=0;i').concat(Tt()(e.data),""));var n="Empty";e.reqHeaders&&(n=_e()(e.reqHeaders,(function(e,t){return'\n ').concat(Tt()(t),"\n ").concat(Tt()(e),"\n ")})).join(""));var o="Empty";e.resHeaders&&(o=_e()(e.resHeaders,(function(e,t){return'\n ').concat(Tt()(t),"\n ").concat(Tt()(e),"\n ")})).join(""));var r="";if(e.resTxt){var i=e.resTxt;i.length>Ft&&(i=zt()(i,Ft)),r='
').concat(Tt()(i),"
")}var a='
\n \n \n ').concat(Tt()(e.url),'\n \n
\n
\n ').concat(t,'\n
\n

Response Headers

\n \n \n ').concat(o,'\n \n
\n
\n
\n

Request Headers

\n \n \n ').concat(n,"\n \n
\n
\n ").concat(r,"\n
");this._$container.html(a).show(),this._detailData=e}},{key:"hide",value:function(){this._$container.hide(),this.emit("hide")}},{key:"_bindEvent",value:function(){var e=this,t=this._devtools;this._$container.on("click",ze(".back"),(function(){return e.hide()})).on("click",ze(".copy-res"),this._copyRes).on("click",ze(".http .response"),(function(){var t=e._detailData,o=t.resTxt;if(Mt()(o))return n("object",o);switch(t.subType){case"css":return n("css",o);case"html":return n("html",o);case"javascript":return n("js",o);case"json":return n("object",o)}return"image"===t.type?n("img",t.url):void 0}));var n=function(e,n){var o=t.get("sources");o&&(o.set(e,n),t.showTool("sources"))}}}])}(u()),Ft=1e5,Rt=n(5865),Lt=n.n(Rt),Gt=n(6476),Pt=n.n(Gt),Ht=n(5334),Yt=n(2480),$t=n(6192),qt=n(5689);function Qt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Ut(e){for(var t=1;t=300)&&(n.hasErr=!0),i&&(n.resHeaders=i,e._updateType(n)),n.render()}})),(0,c.A)(e,"_loadingFinished",(function(t){var n=e._requests[t.requestId];if(e._isRecording&&n){var o=1e3*t.timestamp;n.time=o-n.startTime,n.displayTime=kt()(n.time),n.size=t.encodedDataLength,n.done=!0,n.resTxt=Jt.domain("Network").getResponseBody({requestId:t.requestId}).body,n.render()}})),(0,c.A)(e,"_loadingFailed",(function(t){var n=e._requests[t.requestId];if(e._isRecording&&n){var o=1e3*t.timestamp;n.time=o-n.startTime,n.displayTime=kt()(n.time),n.hasErr=!0,n.status=0,n.done=!0,n.render()}})),(0,c.A)(e,"_copyCurl",(function(){var t=e._selectedRequest;Ot()(function(e){var t=nn()();"windows"===t&&(t="win");var n=[],o=rn()(["accept-encoding","host","method","path","scheme","version"]),r="win"===t?function(e){var t=/[\r\n]/.test(e)?'^"':'"';return t+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/[^a-zA-Z0-9\s_\-:=+~'/.',?;()*`&]/g,"^$&").replace(/%(?=[a-zA-Z0-9_])/g,"%^").replace(/\r?\n/g,"^\n\n")+t}:function(e){return/[\0-\x1F\x7F-\x9F!]|'/.test(e)?"$'"+e.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\0-\x1F\x7F-\x9F!]/g,(function(e){for(var t=e.charCodeAt(0).toString(16);t.length<4;)t="0"+t;return"\\u"+t}))+"'":"'"+e+"'"};n.push(r(e.url()).replace(/[[{}\]]/g,"\\$&"));var i="GET",a=[],s=e.requestFormData();s&&(a.push("--data-raw "+r(s)),o["content-length"]=!0,i="POST"),e.requestMethod!==i&&n.push("-X "+r(e.requestMethod));for(var c=e.requestHeaders(),l=0;l=3?"win"===t?" ^\n ":" \\\n ":" ")}({requestMethod:t.method,url:function(){return t.url},requestFormData:function(){return t.data},requestHeaders:function(){var e=t.reqHeaders||{};return P()(e,{"User-Agent":navigator.userAgent,Referer:location.href}),_e()(e,(function(e,t){return{name:t,value:e}}))}})),e._container.notify("Copied",{icon:"success"})})),(0,c.A)(e,"_toggleRecording",(function(){e._$control.find(ze(".record")).toggleClass(ze("recording")),e._isRecording=!e._isRecording})),(0,c.A)(e,"_showDetail",(function(){e._selectedRequest&&(e._splitMode&&e._$network.css("width","50%"),e._detail.show(e._selectedRequest))})),(0,c.A)(e,"_updateScale",(function(t){e._splitMediaQuery.setQuery("screen and (min-width: ".concat(680*t,"px)"))})),e._style=re(n(8239)),e.name="network",e._requests={},e._selectedRequest=null,e._isRecording=!0,e}return(0,s.A)(t,e),(0,r.A)(t,[{key:"init",value:function(e,n){sn(t,"init",this,3)([e]),this._container=n,this._initTpl(),this._detail=new Bt(this._$detail,n),this._splitMediaQuery=new(en())("screen and (min-width: 680px)"),this._splitMode=this._splitMediaQuery.isMatch(),this._requestDataGrid=new Kt.A(this._$requests.get(0),{columns:[{id:"name",title:"Name",sortable:!0,weight:30},{id:"method",title:"Method",sortable:!0,weight:14},{id:"status",title:"Status",sortable:!0,weight:14},{id:"type",title:"Type",sortable:!0,weight:14},{id:"size",title:"Size",sortable:!0,weight:14},{id:"time",title:"Time",sortable:!0,weight:14}]}),this._resizeSensor=new(Zt())(e.get(0)),this._bindEvent()}},{key:"show",value:function(){sn(t,"show",this,3)([]),this._updateDataGridHeight()}},{key:"clear",value:function(){this._requests={},this._requestDataGrid.clear()}},{key:"requests",value:function(){var e=[];return x()(this._requests,(function(t){e.push(t)})),e}},{key:"_updateDataGridHeight",value:function(){this._requestDataGrid.fit()}},{key:"_updateType",value:function(e){var t=function(e){if(!e)return"unknown";var t=e.split(";")[0].split("/");return{type:t[0],subType:Ae()(t)}}(e.resHeaders["content-type"]||""),n=t.type,o=t.subType;e.type=n,e.subType=o}},{key:"_updateButtons",value:function(){var e=this._$control,t=e.find(ze(".show-detail")),n=e.find(ze(".copy-curl")),o=ze("icon-disabled");t.addClass(o),n.addClass(o),this._selectedRequest&&(t.rmClass(o),n.rmClass(o))}},{key:"_bindEvent",value:function(){var e=this,t=this._$control,n=this._$filterText,o=this._requestDataGrid,r=this;t.on("click",ze(".clear-request"),(function(){return e.clear()})).on("click",ze(".show-detail"),this._showDetail).on("click",ze(".copy-curl"),this._copyCurl).on("click",ze(".record"),this._toggleRecording).on("click",ze(".filter"),(function(){nt.A.prompt("Filter").then((function(e){mt()(e)||(n.text(e),o.setOption("filter",Te()(e)))}))})),o.on("select",(function(t){var n=m()(t.container).data("id"),o=r._requests[n];e._selectedRequest=o,e._updateButtons(),e._splitMode&&e._showDetail()})),o.on("deselect",(function(){e._selectedRequest=null,e._updateButtons(),e._detail.hide()})),this._resizeSensor.addListener(Lt()((function(){return e._updateDataGridHeight()}),15)),this._splitMediaQuery.on("match",(function(){e._detail.hide(),e._splitMode=!0})),this._splitMediaQuery.on("unmatch",(function(){e._detail.hide(),e._splitMode=!1})),this._detail.on("hide",(function(){e._splitMode&&e._$network.css("width","100%")})),Jt.domain("Network").enable();var i=Jt.domain("Network");i.on("requestWillBeSent",this._reqWillBeSent),i.on("responseReceivedExtraInfo",this._resReceivedExtraInfo),i.on("responseReceived",this._resReceived),i.on("loadingFinished",this._loadingFinished),i.on("loadingFailed",this._loadingFailed),h.on(h.SCALE,this._updateScale)}},{key:"destroy",value:function(){sn(t,"destroy",this,3)([]),this._resizeSensor.destroy(),re.remove(this._style),this._splitMediaQuery.removeAllListeners();var e=Jt.domain("Network");e.off("requestWillBeSent",this._reqWillBeSent),e.off("responseReceivedExtraInfo",this._resReceivedExtraInfo),e.off("responseReceived",this._resReceived),e.off("loadingFinished",this._loadingFinished),h.off(h.SCALE,this._updateScale)}},{key:"_initTpl",value:function(){var e=this._$el;e.html(ze('
\n
\n \n \n \n \n \n \n
\n
\n
\n
')),this._$network=e.find(ze(".network")),this._$detail=e.find(ze(".detail")),this._$requests=e.find(ze(".requests")),this._$control=e.find(ze(".control")),this._$filterText=e.find(ze(".filter-text"))}}])}(v),ln=n(2708),un=n.n(ln),dn=n(1167),hn=n.n(dn),fn=n(7181),pn=n.n(fn),vn=n(5784),gn=n(96),mn=n.n(gn),bn=n(896),yn=n.n(bn),An=n(438),wn=n.n(An),_n=n(6493),xn=n.n(_n),kn=n(6186),Cn=n.n(kn),Sn=n(5241),En=n.n(Sn),Tn=n(2208),Nn=n.n(Tn),On=n(5145),jn=n.n(On);function Mn(e){for(var t={},n=0,o=e.length;no?o:n,i=0;io?1:n(t=Fn(t))?1:e1&&void 0!==arguments[1]?arguments[1]:{}).noAttr,n=void 0!==t&&t;if(e.nodeType===Node.TEXT_NODE)return'(text)');if(e.nodeType===Node.COMMENT_NODE)return'\x3c!--\x3e');if(pn()(e))return'#shadow-root');var o=e.id,r=e.className,i=e.attributes,a=''.concat(e.tagName.toLowerCase(),"");if(""!==o&&(a+='#'.concat(o,"")),E()(r)){var s="";x()(r.split(/\s+/g),(function(e){""!==e.trim()&&(s+=".".concat(e))})),a+=''.concat(s,"")}return n||x()(i,(function(e){var t=e.name;"id"!==t&&"class"!==t&&"style"!==t&&(a+=' '.concat(t,'="').concat(e.value,'"'))})),a}var Gn=function(){return(0,r.A)((function e(t,n){var r=this;(0,o.A)(this,e),(0,c.A)(this,"hide",(function(){r._$container.hide(),r._disableObserver(),Jt.domain("Overlay").hideHighlight()})),(0,c.A)(this,"_highlight",(function(e){var t=r._curEl,n={showInfo:!1};e&&"all"!==e?"margin"===e?n.marginColor="rgba(246, 178, 107, .66)":"border"===e?n.borderColor="rgba(255, 229, 153, .66)":"padding"===e?n.paddingColor="rgba(147, 196, 125, .55)":"content"===e&&(n.contentColor="rgba(111, 168, 220, .66)"):P()(n,{showInfo:!0,contentColor:"rgba(111, 168, 220, .66)",paddingColor:"rgba(147, 196, 125, .55)",borderColor:"rgba(255, 229, 153, .66)",marginColor:"rgba(246, 178, 107, .66)"});var o=Jt.domain("DOM").getNodeId({node:t}).nodeId;Jt.domain("Overlay").highlightNode({nodeId:o,highlightConfig:n})})),this._$container=t,this._devtools=n,this._curEl=document.documentElement,this._initObserver(),this._initCfg(),this._initTpl(),this._bindEvent()}),[{key:"show",value:function(e){this._curEl=e,this._rmDefComputedStyle=!0,this._computedStyleSearchKeyword="",this._enableObserver(),this._render(),this._highlight()}},{key:"destroy",value:function(){this._disableObserver(),this.restoreEventTarget(),this._rmCfg()}},{key:"overrideEventTarget",value:function(){var e=Jn(),t=this._origAddEvent=e.addEventListener,n=this._origRmEvent=e.removeEventListener;e.addEventListener=function(e,n,o){!function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!un()(e)||!lt()(n)||!xn()(o))return;var r=e.erudaEvents=e.erudaEvents||{};r[t]=r[t]||[],r[t].push({listener:n,listenerStr:n.toString(),useCapture:o})}(this,e,n,o),t.apply(this,arguments)},e.removeEventListener=function(e,t,o){!function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!un()(e)||!lt()(n)||!xn()(o))return;var r=e.erudaEvents;if(!r||!r[t])return;for(var i=r[t],a=0,s=i.length;a\n \n \n \n \n
\n
\n
\n
\n
\n
');e.html(t),this._$elementName=e.find(ze(".element-name")),this._$attributes=e.find(ze(".attributes")),this._$styles=e.find(ze(".styles")),this._$listeners=e.find(ze(".listeners")),this._$computedStyle=e.find(ze(".computed-style"));var n=En()("div");this._$boxModel=m()(n),this._boxModel=new Rn.A(n)}},{key:"_toggleAllComputedStyle",value:function(){this._rmDefComputedStyle=!this._rmDefComputedStyle,this._render()}},{key:"_render",value:function(){var e=this._getData(this._curEl),t=this._$attributes,n=this._$elementName,o=this._$styles,r=this._$computedStyle,i=this._$listeners;n.html(e.name);var a="Empty";St()(e.attributes)||(a=_e()(e.attributes,(function(e){var t=e.name,n=e.value;return'\n ').concat(Tt()(t),'\n ').concat(n,"\n ")})).join("")),a='

Attributes

\n
\n \n \n ').concat(a," \n \n
\n
"),t.html(a);var s="";if(St()(e.styles))o.hide();else{var c=_e()(e.styles,(function(e){var t=e.selectorText,n=e.style;return n=_e()(n,(function(e,t){return'
').concat(Tt()(t),": ").concat(e,";
")})).join(""),'
\n
').concat(Tt()(t)," {
\n ").concat(n,"\n
}
\n
")})).join("");s='

Styles

\n
\n ').concat(c,"\n
"),o.html(s).show()}var l="";if(e.computedStyle){var u=ze('
\n \n
');e.rmDefComputedStyle&&(u=ze('
\n \n
')),l="

\n Computed Style\n ".concat(u,'\n
\n \n
\n ').concat(e.computedStyleSearchKeyword?'
').concat(Tt()(e.computedStyleSearchKeyword),"
"):"",'\n

\n
\n
\n \n \n ').concat(_e()(e.computedStyle,(function(e,t){return'\n \n \n ")})).join(""),"\n \n
').concat(Tt()(t),"").concat(e,"
\n
"),r.html(l).show(),this._boxModel.setOption("element",this._curEl),r.find(ze(".box-model")).append(this._$boxModel.get(0))}else r.text("").hide();var d="";e.listeners?(d=_e()(e.listeners,(function(e,t){return e=_e()(e,(function(e){var t=e.useCapture,n=e.listenerStr;return"
  • ").concat(Tt()(n),"
  • ")})).join(""),'
    \n
    ').concat(Tt()(t),'
    \n
      \n ').concat(e,"\n
    \n
    ")})).join(""),d='

    Event Listeners

    \n
    \n ').concat(d," \n
    "),i.html(d).show()):i.hide(),this._$container.show()}},{key:"_getData",value:function(e){var t={},n=new Dn(e),o=e.className,r=e.id,i=e.attributes,a=e.tagName;t.computedStyleSearchKeyword=this._computedStyleSearchKeyword,t.attributes=Hn(i),t.name=Ln({tagName:a,id:r,className:o,attributes:i});var s=e.erudaEvents;if(s&&0!==D()(s).length&&(t.listeners=s),Un(a))return t;var c=n.getComputedStyle(),l=n.getMatchedCSSRules();l.unshift(function(e){for(var t={selectorText:"element.style",style:{}},n=0,o=e.length;n$&').replace($n,(function(e,t){return'url("'.concat(Wn(t),'")')}))}var Qn=["script","style","meta","title","link","head"],Un=function(e){Qn.indexOf(e.toLowerCase())},Wn=function(e){return'').concat(e,"")};var Jn=function(){return Cn()(window,"EventTarget.prototype")||window.Node.prototype};function Kn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Kn=function(){return!!e})()}function Vn(e,t,n,o){var r=(0,f.A)((0,a.A)(1&o?e.prototype:e),t,n);return 2&o&&"function"==typeof r?function(e){return r.apply(n,e)}:r}var Zn=function(e){function t(){var e,r,s,l;return(0,o.A)(this,t),r=this,s=t,s=(0,a.A)(s),e=(0,i.A)(r,Kn()?Reflect.construct(s,l||[],(0,a.A)(r).constructor):s.apply(r,l)),(0,c.A)(e,"_showDetail",(function(){e._isShow&&e._curNode&&(e._curNode.nodeType===Node.ELEMENT_NODE?e._detail.show(e._curNode):e._detail.show(e._curNode.parentNode||e._curNode.host))})),(0,c.A)(e,"_back",(function(){if(e._curNode!==e._htmlEl){for(var t=e._curParentQueue,n=t.shift();!Xn(n);)n=t.shift();e.set(n)}})),(0,c.A)(e,"_updateScale",(function(t){e._splitMediaQuery.setQuery("screen and (min-width: ".concat(680*t,"px)"))})),(0,c.A)(e,"_deleteNode",(function(){var t=e._curNode;t.parentNode&&t.parentNode.removeChild(t)})),(0,c.A)(e,"_copyNode",(function(){var t=e._curNode;t.nodeType===Node.ELEMENT_NODE?Ot()(t.outerHTML):Ot()(t.nodeValue),e._container.notify("Copied",{icon:"success"})})),(0,c.A)(e,"_toggleSelect",(function(){e._$el.find(ze(".select")).toggleClass(ze("active")),e._selectElement=!e._selectElement,e._selectElement?(Jt.domain("Overlay").setInspectMode({mode:"searchForNode",highlightConfig:{showInfo:!hn()(),showRulers:!1,showAccessibilityInfo:!hn()(),showExtensionLines:!1,contrastAlgorithm:"aa",contentColor:"rgba(111, 168, 220, .66)",paddingColor:"rgba(147, 196, 125, .55)",borderColor:"rgba(255, 229, 153, .66)",marginColor:"rgba(246, 178, 107, .66)"}}),e._container.hide()):(Jt.domain("Overlay").setInspectMode({mode:"none"}),Jt.domain("Overlay").hideHighlight())})),(0,c.A)(e,"_inspectNodeRequested",(function(t){var n=t.backendNodeId;e._container.show(),e._toggleSelect();try{var o=Jt.domain("DOM").getNode({nodeId:n}).node;e.select(o)}catch(e){}})),(0,c.A)(e,"_setNode",(function(t){if(t!==e._curNode){e._curNode=t,e._renderCrumbs();for(var n=[],o=t.parentNode;o;)n.push(o),o=o.parentNode;e._curParentQueue=n,e._splitMode&&e._showDetail(),e._updateButtons(),e._updateHistory()}})),e._style=re(n(9111)),e.name="elements",e._selectElement=!1,e._observeElement=!0,e._history=[],u().mixin(e),e}return(0,s.A)(t,e),(0,r.A)(t,[{key:"init",value:function(e,n){var o=this;Vn(t,"init",this,3)([e]),this._container=n,this._initTpl(),this._htmlEl=document.documentElement,this._detail=new Gn(this._$detail,n),this.config=this._detail.config,this._splitMediaQuery=new(en())("screen and (min-width: 680px)"),this._splitMode=this._splitMediaQuery.isMatch(),this._domViewer=new vn.A(this._$domViewer.get(0),{node:this._htmlEl,ignore:function(e){return Ie(e)||function(e){for(;e;){var t="";if(e.getAttribute&&(t=e.getAttribute("class")||""),N()(t,"__chobitsu-hide__"))return!0;e=e.parentNode}return!1}(e)}}),this._domViewer.expand(),this._bindEvent(),Jt.domain("Overlay").enable(),ue()((function(){return o._updateHistory()}))}},{key:"show",value:function(){Vn(t,"show",this,3)([]),this._isShow=!0,this._curNode?this._splitMode&&this._showDetail():this.select(document.body)}},{key:"hide",value:function(){Vn(t,"hide",this,3)([]),this._isShow=!1,Jt.domain("Overlay").hideHighlight()}},{key:"select",value:function(e){return this._domViewer.select(e),this._setNode(e),this.emit("change",e),this}},{key:"destroy",value:function(){Vn(t,"destroy",this,3)([]),h.off(h.SCALE,this._updateScale),re.remove(this._style),this._detail.destroy(),Jt.domain("Overlay").off("inspectNodeRequested",this._inspectNodeRequested),Jt.domain("Overlay").disable(),this._splitMediaQuery.removeAllListeners()}},{key:"_updateButtons",value:function(){var e=this._$control,t=e.find(ze(".show-detail")),n=e.find(ze(".copy-node")),o=e.find(ze(".delete-node")),r=ze("icon-disabled");t.addClass(r),n.addClass(r),o.addClass(r);var i=this._curNode;i&&!pn()(i)&&(i!==document.documentElement&&i!==document.body&&o.rmClass(r),n.rmClass(r),i.nodeType===Node.ELEMENT_NODE&&t.rmClass(r))}},{key:"_initTpl",value:function(){var e=this._$el;e.html(ze('
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    ')),this._$detail=e.find(ze(".detail")),this._$domViewer=e.find(ze(".dom-viewer")),this._$control=e.find(ze(".control")),this._$crumbs=e.find(ze(".crumbs"))}},{key:"_renderCrumbs",value:function(){var e=function(e){var t=[],n=0;for(;e;)t.push({text:Ln(e,{noAttr:!0}),idx:n++}),pn()(e)&&(e=e.host),e=!e.parentElement&&pn()(e.parentNode)?e.parentNode:e.parentElement;return t.reverse()}(this._curNode),t="";St()(e)||(t=_e()(e,(function(e){var t=e.text,n=e.idx;return'
  • ').concat(t,"
  • ")})).join("")),this._$crumbs.html(t)}},{key:"_bindEvent",value:function(){var e=this,t=this;this._$el.on("click",ze(".crumb"),(function(){for(var e=Se()(m()(this).data("idx")),n=t._curNode;e--&&n.parentElement;)n=n.parentElement;Xn(n)&&t.select(n)})),this._$control.on("click",ze(".select"),this._toggleSelect).on("click",ze(".show-detail"),this._showDetail).on("click",ze(".copy-node"),this._copyNode).on("click",ze(".delete-node"),this._deleteNode),this._domViewer.on("select",this._setNode).on("deselect",this._back),Jt.domain("Overlay").on("inspectNodeRequested",this._inspectNodeRequested),this._splitMediaQuery.on("match",(function(){e._splitMode=!0,e._showDetail()})),this._splitMediaQuery.on("unmatch",(function(){e._splitMode=!1,e._detail.hide()})),h.on(h.SCALE,this._updateScale)}},{key:"_updateHistory",value:function(){var e=this._container.get("console");if(e){var t=this._history;t.unshift(this._curNode),t.length>5&&t.pop();for(var n=0;n<5;n++)e.setGlobal("$".concat(n),t[n])}}}])}(v),Xn=function(e){return un()(e)&&e.parentNode};var eo=n(3981),to=n.n(eo),no=n(4866),oo=n.n(no),ro=null,io=[{name:"Border All",fn:function(){if(ro)return re.remove(ro),void(ro=null);ro=re("* { outline: 2px dashed #707d8b; outline-offset: -3px; }",document.head)},desc:"Add color borders to all elements"},{name:"Refresh Page",fn:function(){var e=new(ge());e.setQuery("timestamp",to()()),window.location.replace(e.toString())},desc:"Add timestamp to url and refresh"},{name:"Search Text",fn:function(){nt.A.prompt("Enter the text").then((function(e){var t,n,o;e&&""!==Te()(e)&&(t=e,n=document.body,o=new RegExp(t,"ig"),ao(n,(function(e){var t=m()(e);if(t.hasClass("eruda-search-highlight-block"))return document.createTextNode(t.text())})),ao(n,(function(e){if(3===e.nodeType){var t=e.nodeValue;if((t=t.replace(o,(function(e){return''.concat(e,"")})))!==e.nodeValue){var n=m()(document.createElement("div"));return n.html(t),n.addClass("eruda-search-highlight-block"),n.get(0)}}})))}))},desc:"Highlight given text on page"},{name:"Edit Page",fn:function(){var e=document.body;e.contentEditable="true"!==e.contentEditable},desc:"Toggle body contentEditable"},{name:"Fit Screen",fn:function(){var e=document.body,t=document.documentElement,n=m()(e);if(n.data("scaled"))window.scrollTo(0,+n.data("scaled")),n.rmAttr("data-scaled"),n.css("transform","none");else{var o=Math.max(e.scrollHeight,e.offsetHeight,t.clientHeight,t.scrollHeight,t.offsetHeight),r=Math.max(document.documentElement.clientHeight,window.innerHeight||0),i=r/o;n.css("transform","scale(".concat(i,")")),n.data("scaled",window.scrollY),window.scrollTo(0,o/2-r/2)}},desc:"Scale down the whole page to fit screen"},{name:"Load Vue Plugin",fn:function(){so("vue")},desc:"Vue devtools"},{name:"Load Monitor Plugin",fn:function(){so("monitor")},desc:"Display page fps, memory and dom nodes"},{name:"Load Features Plugin",fn:function(){so("features")},desc:"Browser feature detections"},{name:"Load Timing Plugin",fn:function(){so("timing")},desc:"Show performance and resource timing"},{name:"Load Code Plugin",fn:function(){so("code")},desc:"Edit and run JavaScript"},{name:"Load Benchmark Plugin",fn:function(){so("benchmark")},desc:"Run JavaScript benchmarks"},{name:"Load Geolocation Plugin",fn:function(){so("geolocation")},desc:"Test geolocation"},{name:"Load Orientation Plugin",fn:function(){so("orientation")},desc:"Test orientation api"},{name:"Load Touches Plugin",fn:function(){so("touches")},desc:"Visualize screen touches"}];function ao(e,t){var n=e.childNodes;if(!Ie(e)){for(var o=0,r=n.length;o\n

    ').concat(Tt()(e.name),'\n
    \n \n
    \n

    \n
    \n ').concat(Tt()(e.desc),"\n
    \n ")})).join("");this._renderHtml(e)}},{key:"_renderHtml",value:function(e){e!==this._lastHtml&&(this._lastHtml=e,this._$el.html(e))}}])}(v),vo=n(4497),go=n.n(vo),mo=n(311),bo=n.n(mo),yo=n(769),Ao=n.n(yo),wo=n(4069),_o=n.n(wo),xo=function(){return(0,r.A)((function e(t,n,r,i){var a=this;(0,o.A)(this,e),(0,c.A)(this,"_updateGridHeight",(function(e){a._dataGrid.setOption({minHeight:60*e,maxHeight:223*e})})),this._type=i,this._$container=t,this._devtools=n,this._resources=r,this._selectedItem=null,this._storeData=[],this._initTpl(),this._dataGrid=new Kt.A(this._$dataGrid.get(0),{columns:[{id:"key",title:"Key",weight:30},{id:"value",title:"Value",weight:90}],minHeight:60,maxHeight:223}),this._bindEvent()}),[{key:"destroy",value:function(){h.off(h.SCALE,this._updateGridHeight)}},{key:"refresh",value:function(){var e=this._dataGrid;this._refreshStorage(),e.clear(),x()(this._storeData,(function(t){var n=t.key,o=t.val;e.append({key:n,value:o},{selectable:!0})}))}},{key:"_refreshStorage",value:function(){var e=this._resources,t=je(this._type,!1);if(t){var n=[];t=JSON.parse(JSON.stringify(t)),x()(t,(function(t,o){E()(t)&&(e.config.get("hideErudaSetting")&&(Ze()(o,"eruda")||"active-eruda"===o)||n.push({key:o,val:zt()(t,200)}))})),this._storeData=n}}},{key:"_updateButtons",value:function(){var e=this._$container,t=e.find(ze(".show-detail")),n=e.find(ze(".delete-storage")),o=e.find(ze(".copy-storage")),r=ze("btn-disabled");t.addClass(r),n.addClass(r),o.addClass(r),this._selectedItem&&(t.rmClass(r),n.rmClass(r),o.rmClass(r))}},{key:"_initTpl",value:function(){var e=this._$container,t=this._type;e.html(ze('

    \n '.concat("local"===t?"Local":"Session",' Storage\n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n

    \n
    '))),this._$dataGrid=e.find(ze(".data-grid")),this._$filterText=e.find(ze(".filter-text"))}},{key:"_getVal",value:function(e){return"local"===this._type?localStorage.getItem(e):sessionStorage.getItem(e)}},{key:"_bindEvent",value:function(){var e=this,t=this._type,n=this._devtools;function o(e,t){var o=n.get("sources");if(o)return o.set(e,t),n.showTool("sources"),!0}this._$container.on("click",ze(".refresh-storage"),(function(){n.notify("Refreshed",{icon:"success"}),e.refresh()})).on("click",ze(".clear-storage"),(function(){x()(e._storeData,(function(e){"local"===t?localStorage.removeItem(e.key):sessionStorage.removeItem(e.key)})),e.refresh()})).on("click",ze(".show-detail"),(function(){var t=e._selectedItem,n=e._getVal(t);try{o("object",JSON.parse(n))}catch(e){o("raw",n)}})).on("click",ze(".copy-storage"),(function(){var t=e._selectedItem;Ot()(e._getVal(t)),n.notify("Copied",{icon:"success"})})).on("click",ze(".filter"),(function(){nt.A.prompt("Filter").then((function(t){mt()(t)||(t=Te()(t),e._$filterText.text(t),e._dataGrid.setOption("filter",t))}))})).on("click",ze(".delete-storage"),(function(){var n=e._selectedItem;"local"===t?localStorage.removeItem(n):sessionStorage.removeItem(n),e.refresh()})),this._dataGrid.on("select",(function(t){e._selectedItem=t.data.key,e._updateButtons()})).on("deselect",(function(){e._selectedItem=null,e._updateButtons()})),h.on(h.SCALE,this._updateGridHeight)}}])}();function ko(e,t){e.rmClass(ze("ok")).rmClass(ze("danger")).rmClass(ze("warn")).addClass(ze(t))}function Co(e,t){if(0===t)return"";var n=0,o=0;switch(e){case"cookie":n=30,o=60;break;case"script":n=5,o=10;break;case"stylesheet":n=4,o=8;break;case"image":n=50,o=100}return t>=o?"danger":t>=n?"warn":"ok"}var So=function(){return(0,r.A)((function e(t,n){(0,o.A)(this,e),this._$container=t,this._devtools=n,this._selectedItem=null,this._initTpl(),this._dataGrid=new Kt.A(this._$dataGrid.get(0),{columns:[{id:"key",title:"Key",weight:30},{id:"value",title:"Value",weight:90}],minHeight:60,maxHeight:223}),this._bindEvent()}),[{key:"refresh",value:function(){var e=this._$container,t=this._dataGrid,n=Jt.domain("Network").getCookies().cookies,o=_e()(n,(function(e){return{key:e.name,val:e.value}}));t.clear(),x()(o,(function(e){var n=e.key,o=e.val;t.append({key:n,value:o},{selectable:!0})})),ko(e,Co("cookie",o.length))}},{key:"_initTpl",value:function(){var e=this._$container;e.html(ze('

    \n Cookie\n \n
    \n \n
    \n \n \n \n
    \n \n
    \n
    \n

    \n
    ')),this._$dataGrid=e.find(ze(".data-grid")),this._$filterText=e.find(ze(".filter-text"))}},{key:"_updateButtons",value:function(){var e=this._$container,t=e.find(ze(".show-detail")),n=e.find(ze(".delete-cookie")),o=e.find(ze(".copy-cookie")),r=ze("btn-disabled");t.addClass(r),n.addClass(r),o.addClass(r),this._selectedItem&&(t.rmClass(r),n.rmClass(r),o.rmClass(r))}},{key:"_getVal",value:function(e){for(var t=Jt.domain("Network").getCookies().cookies,n=0,o=t.length;n=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function To(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);nEmpty";St()(e)||(n=_e()(e,(function(e){return e=Tt()(e),'
  • ').concat(e,"
  • ")})).join(""));var o='

    \n Script\n
    \n \n
    \n

    \n
      \n ').concat(n,"\n
    "),r=this._$script;return ko(r,t),r.html(o),this}},{key:"refreshStylesheet",value:function(){var e=[];m()("link").each((function(){"stylesheet"===this.rel&&e.push(this.href)}));var t=Co("stylesheet",(e=wn()(e)).length),n="
  • Empty
  • ";St()(e)||(n=_e()(e,(function(e){return e=Tt()(e),'
  • ').concat(e,"
  • ")})).join(""));var o='

    \n Stylesheet\n
    \n \n
    \n

    \n
      \n ').concat(n,"\n
    "),r=this._$stylesheet;return ko(r,t),r.html(o),this}},{key:"refreshIframe",value:function(){var e=[];m()("iframe").each((function(){var t=m()(this).attr("src");t&&e.push(t)})),e=wn()(e);var t="
  • Empty
  • ";St()(e)||(t=_e()(e,(function(e){return e=Tt()(e),'
  • ').concat(e,"
  • ")})).join(""));var n='

    \n Iframe\n
    \n \n
    \n

    \n
      \n ').concat(t,"\n
    ");return this._$iframe.html(n),this}},{key:"refreshLocalStorage",value:function(){return this._localStorage.refresh(),this}},{key:"refreshSessionStorage",value:function(){return this._sessionStorage.refresh(),this}},{key:"refreshCookie",value:function(){return this._cookie.refresh(),this}},{key:"refreshImage",value:function(){var e=[],t=this._performance=window.webkitPerformance||window.performance;t&&t.getEntries?this._performance.getEntries().forEach((function(t){if("img"===t.initiatorType||Io(t.name)){if(N()(t.name,"exclude=true"))return;e.push(t.name)}})):m()("img").each((function(){var t=m()(this),n=t.attr("src");"true"!==t.data("exclude")&&e.push(n)}));(e=wn()(e)).sort();var n=Co("image",e.length),o="
  • Empty
  • ";St()(e)||(o=_e()(e,(function(e){return'
  • \n \n
  • ')})).join(""));var r='

    \n Image\n
    \n \n
    \n

    \n
      \n ').concat(o,"\n
    "),i=this._$image;return ko(i,n),i.html(r),this}},{key:"show",value:function(){return Oo(t,"show",this,3)([]),this._observeElement&&this._enableObserver(),this.refresh()}},{key:"hide",value:function(){return this._disableObserver(),Oo(t,"hide",this,3)([])}},{key:"_initTpl",value:function(){var e=this._$el;e.html(ze('
    \n
    \n \n
    \n
    \n
    \n
    ')),this._$localStorage=e.find(ze(".local-storage")),this._$sessionStorage=e.find(ze(".session-storage")),this._$cookie=e.find(ze(".cookie")),this._$script=e.find(ze(".script")),this._$stylesheet=e.find(ze(".stylesheet")),this._$iframe=e.find(ze(".iframe")),this._$image=e.find(ze(".image"))}},{key:"_bindEvent",value:function(){var e=this,t=this._$el,n=this._container;function o(e,t){var o=n.get("sources");if(o)return o.set(e,t),n.showTool("sources"),!0}function r(e){return function(t){if(n.get("sources")){t.preventDefault();var r=m()(this).attr("href");"iframe"!==e&&go()(location.href,r)?bo()({url:r,success:function(t){o(e,t)},dataType:"raw"}):o("iframe",r)}}}t.on("click",".eruda-refresh-script",(function(){n.notify("Refreshed",{icon:"success"}),e.refreshScript()})).on("click",".eruda-refresh-stylesheet",(function(){n.notify("Refreshed",{icon:"success"}),e.refreshStylesheet()})).on("click",".eruda-refresh-iframe",(function(){n.notify("Refreshed",{icon:"success"}),e.refreshIframe()})).on("click",".eruda-refresh-image",(function(){n.notify("Refreshed",{icon:"success"}),e.refreshImage()})).on("click",".eruda-img-link",(function(){o("img",m()(this).attr("src"))})).on("click",".eruda-css-link",r("css")).on("click",".eruda-js-link",r("js")).on("click",".eruda-iframe-link",r("iframe"))}},{key:"_rmCfg",value:function(){var e=this.config,t=this._container.get("settings");t&&t.remove(e,"hideErudaSetting").remove(e,"observeElement").remove("Resources")}},{key:"_initCfg",value:function(){var e=this,t=this.config=ce.createCfg("resources",{hideErudaSetting:!0,observeElement:!0});t.get("hideErudaSetting")&&(this._hideErudaSetting=!0),t.get("observeElement")||(this._observeElement=!1),t.on("change",(function(t,n){switch(t){case"hideErudaSetting":return void(e._hideErudaSetting=n);case"observeElement":return e._observeElement=n,n?e._enableObserver():e._disableObserver()}})),this._container.get("settings").text("Resources").switch(t,"hideErudaSetting","Hide Eruda Setting").switch(t,"observeElement","Auto Refresh Elements").separator()}},{key:"_initObserver",value:function(){var e=this;this._observer=new(Nn())((function(t){x()(t,(function(t){e._handleMutation(t)}))}))}},{key:"_handleMutation",value:function(e){var t=this;if(!Ie(e.target)){var n=function(e){var n=function(e){return e.tagName?e.tagName.toLowerCase():""}(e);switch(n){case"script":t.refreshScript();break;case"img":t.refreshImage();break;case"link":t.refreshStylesheet()}};if("attributes"===e.type)n(e.target);else if("childList"===e.type){n(e.target);var o,r=Ao()(e.addedNodes),i=Eo(r=_o()(r,Ao()(e.removedNodes)));try{for(i.s();!(o=i.n()).done;){n(o.value)}}catch(e){i.e(e)}finally{i.f()}}}}},{key:"_enableObserver",value:function(){this._observer.observe(document.documentElement,{attributes:!0,childList:!0,subtree:!0})}},{key:"_disableObserver",value:function(){this._observer.disconnect()}}])}(v);var Mo=/\.(jpeg|jpg|gif|png)$/,Io=function(e){return Mo.test(e)},zo=n(6620),Do=n.n(zo),Bo=Do()(),Fo=[{name:"Location",val:function(){return Tt()(location.href)}},{name:"User Agent",val:navigator.userAgent},{name:"Device",val:["",'"),""),""),"
    screen'.concat(screen.width," * ").concat(screen.height,"
    viewport".concat(window.innerWidth," * ").concat(window.innerHeight,"
    pixel ratio".concat(window.devicePixelRatio,"
    "].join("")},{name:"System",val:["",'"),""),"
    os'.concat(nn()(),"
    browser".concat(Bo.name+" "+Bo.version,"
    "].join("")},{name:"Sponsor this Project",val:function(){return""+_e()([{name:"Open Collective",link:"https://opencollective.com/eruda"},{name:"Ko-fi",link:"https://ko-fi.com/surunzi"},{name:"Wechat Pay",link:"https://surunzi.com/wechatpay.html"}],(function(e){return"")})).join(" ")+"
    ".concat(e.name,'').concat(e.link.replace("https://",""),"
    "}},{name:"About",val:'Eruda v3.4.3'}],Ro=n(1034),Lo=n.n(Ro);function Go(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Go=function(){return!!e})()}function Po(e,t,n,o){var r=(0,f.A)((0,a.A)(1&o?e.prototype:e),t,n);return 2&o&&"function"==typeof r?function(e){return r.apply(n,e)}:r}var Ho=function(e){function t(){var e,r,s,c;return(0,o.A)(this,t),r=this,s=t,s=(0,a.A)(s),(e=(0,i.A)(r,Go()?Reflect.construct(s,c||[],(0,a.A)(r).constructor):s.apply(r,c)))._style=re(n(4657)),e.name="info",e._infos=[],e}return(0,s.A)(t,e),(0,r.A)(t,[{key:"init",value:function(e,n){Po(t,"init",this,3)([e]),this._container=n,this._addDefInfo(),this._bindEvent()}},{key:"destroy",value:function(){Po(t,"destroy",this,3)([]),re.remove(this._style)}},{key:"add",value:function(e,t){var n=this._infos,o=!1;return x()(n,(function(n){e===n.name&&(n.val=t,o=!0)})),o||n.push({name:e,val:t}),this._render(),this}},{key:"get",value:function(e){var t,n=this._infos;return be()(e)?Lo()(n):(x()(n,(function(n){e===n.name&&(t=n.val)})),t)}},{key:"remove",value:function(e){for(var t=this._infos,n=t.length-1;n>=0;n--)t[n].name===e&&t.splice(n,1);return this._render(),this}},{key:"clear",value:function(){return this._infos=[],this._render(),this}},{key:"_addDefInfo",value:function(){var e=this;x()(Fo,(function(t){return e.add(t.name,t.val)}))}},{key:"_render",value:function(){var e=[];x()(this._infos,(function(t){var n=t.name,o=t.val;lt()(o)&&(o=o()),e.push({name:n,val:o})}));var t="
      ".concat(_e()(e,(function(e){return'
    • ').concat(Tt()(e.name),'

      ').concat(e.val,"
    • ")})).join(""),"
    ");this._renderHtml(t)}},{key:"_bindEvent",value:function(){var e=this._container;this._$el.on("click",ze(".copy"),(function(){var t=m()(this).parent().parent(),n=t.find(ze(".title")).text(),o=t.find(ze(".content")).text();Ot()("".concat(n,": ").concat(o)),e.notify("Copied",{icon:"success"})}))}},{key:"_renderHtml",value:function(e){e!==this._lastHtml&&(this._lastHtml=e,this._$el.html(e))}}])}(v),Yo=n(6911),$o=n(894),qo=n.n($o),Qo=n(4249),Uo=n.n(Qo),Wo=n(1714);function Jo(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Jo=function(){return!!e})()}function Ko(e,t,n,o){var r=(0,f.A)((0,a.A)(1&o?e.prototype:e),t,n);return 2&o&&"function"==typeof r?function(e){return r.apply(n,e)}:r}var Vo=function(e){function t(){var e,r,s,c;return(0,o.A)(this,t),r=this,s=t,s=(0,a.A)(s),(e=(0,i.A)(r,Jo()?Reflect.construct(s,c||[],(0,a.A)(r).constructor):s.apply(r,c)))._style=re(n(4831)),e.name="sources",e._showLineNum=!0,e}return(0,s.A)(t,e),(0,r.A)(t,[{key:"init",value:function(e,n){Ko(t,"init",this,3)([e]),this._container=n,this._bindEvent(),this._initCfg()}},{key:"destroy",value:function(){Ko(t,"destroy",this,3)([]),re.remove(this._style),this._rmCfg()}},{key:"set",value:function(e,t){if("img"===e){this._isFetchingData=!0;var n=new Image,o=this;return n.onload=function(){o._isFetchingData=!1,o._data={type:"img",val:{width:this.width,height:this.height,src:t}},o._render()},n.onerror=function(){o._isFetchingData=!1},void(n.src=t)}return this._data={type:e,val:t},this._render(),this}},{key:"show",value:function(){return Ko(t,"show",this,3)([]),this._data||this._isFetchingData||this._renderDef(),this}},{key:"_renderDef",value:function(){var e=this;if(this._html)return this._data={type:"html",val:this._html},this._render();this._isGettingHtml||(this._isGettingHtml=!0,bo()({url:location.href,success:function(t){return e._html=t},error:function(){return e._html="Sorry, unable to fetch source code:("},complete:function(){e._isGettingHtml=!1,e._renderDef()},dataType:"raw"}))}},{key:"_bindEvent",value:function(){var e=this;this._container.on("showTool",(function(t,n){t!==e.name&&n.name===e.name&&delete e._data}))}},{key:"_rmCfg",value:function(){var e=this.config,t=this._container.get("settings");t&&t.remove(e,"showLineNum").remove("Sources")}},{key:"_initCfg",value:function(){var e=this,t=this.config=ce.createCfg("sources",{showLineNum:!0});t.get("showLineNum")||(this._showLineNum=!1),t.on("change",(function(t,n){"showLineNum"!==t||(e._showLineNum=n)})),this._container.get("settings").text("Sources").switch(t,"showLineNum","Show Line Numbers").separator()}},{key:"_render",value:function(){switch(this._isInit=!0,this._data.type){case"html":case"js":case"css":return this._renderCode();case"img":return this._renderImg();case"object":return this._renderObj();case"raw":return this._renderRaw();case"iframe":return this._renderIframe()}}},{key:"_renderImg",value:function(){var e=this._data.val,t=e.width,n=e.height,o=e.src;this._renderHtml('
    \n
    ').concat(Tt()(o),'
    \n
    \n \n
    \n
    ').concat(Tt()(t)," × ").concat(Tt()(n),"
    \n
    "))}},{key:"_renderCode",value:function(){var e=this._data;this._renderHtml('
    '),!1);var t=e.val,n=e.val.length;n>er&&(t=zt()(t,er)),n'),!1);var e=this._data.val;try{E()(e)&&(e=JSON.parse(e))}catch(e){}new Yo.A(this._$el.find(".eruda-json").get(0),{unenumerable:!0,accessGetter:!0,prototype:!1}).set(e)}},{key:"_renderRaw",value:function(){var e=this._data;this._renderHtml('
    \n
    \n
    '));var t=e.val,n=this._$el.find(ze(".raw")).get(0);t.length>er&&(t=zt()(t,er)),new Wo.A(n,{text:t,wrapLongLines:!0,showLineNumbers:t.length'))}},{key:"_renderHtml",value:function(e){var t=this;(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&e===this._lastHtml||(this._lastHtml=e,this._$el.html(e),setTimeout((function(){return t._$el.get(0).scrollTop=0}),0))}}])}(v),Zo=3e4,Xo=8e4,er=1e5,tr=n(9760),nr=n.n(tr),or=n(1505),rr=n.n(or),ir=n(5701),ar=n.n(ir),sr={init:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.container,n=e.tool,o=e.autoScale,r=void 0===o||o,i=e.useShadowDom,a=void 0===i||i,s=e.inline,c=void 0!==s&&s,l=e.defaults,u=void 0===l?{}:l;this._isInit||(this._isInit=!0,this._scale=1,this._initContainer(t,a),this._initStyle(),this._initDevTools(u,c),this._initEntryBtn(),this._initSettings(),this._initTools(n),this._registerListener(),r&&this._autoScale(),c&&(this._entryBtn.hide(),this._$el.addClass("eruda-inline"),this.show()))},_isInit:!1,version:"3.4.3",util:{isErudaEl:Ie,evalCss:re,isDarkTheme:function(e){return e||(e=this.getTheme()),K(e)},getTheme:function(){var e=re.getCurTheme(),t="Light";return x()(V,(function(n,o){ar()(n,e)&&(t=o)})),t}},chobitsu:Jt,Tool:v,Console:wt,Elements:Zn,Network:cn,Sources:Vo,Resources:jo,Info:Ho,Snippets:po,Settings:ce,get:function(e){if(this._checkInit()){if("entryBtn"===e)return this._entryBtn;var t=this._devTools;return e?t.get(e):t}},add:function(e){if(this._checkInit())return lt()(e)&&(e=e(this)),this._devTools.add(e),this},remove:function(e){return this._devTools.remove(e),this},show:function(e){if(this._checkInit()){var t=this._devTools;return e?t.showTool(e):t.show(),this}},hide:function(){if(this._checkInit())return this._devTools.hide(),this},destroy:function(){this._devTools.destroy(),delete this._devTools,this._entryBtn.destroy(),delete this._entryBtn,this._unregisterListener(),m()(this._container).remove(),re.clear(),this._isInit=!1,this._container=null,this._shadowRoot=null},scale:function(e){return Qe()(e)?(this._scale=e,h.emit(h.SCALE,e),this):this._scale},position:function(e){var t=this._entryBtn;return nr()(e)?(t.setPos(e),this):t.getPos()},_autoScale:function(){hn()()&&this.scale(1/rr()())},_registerListener:function(){var e=this;this._addListener=function(){return e.add.apply(e,arguments)},this._showListener=function(){return e.show.apply(e,arguments)},h.on(h.ADD,this._addListener),h.on(h.SHOW,this._showListener),h.on(h.SCALE,re.setScale)},_unregisterListener:function(){h.off(h.ADD,this._addListener),h.off(h.SHOW,this._showListener),h.off(h.SCALE,re.setScale)},_checkInit:function(){return this._isInit||$e.error('Please call "eruda.init()" first'),this._isInit},_initContainer:function(e,t){var o,r;e||(e=document.createElement("div"),document.documentElement.appendChild(e)),e.id="eruda",e.style.all="initial",this._container=e,t&&(e.attachShadow?o=e.attachShadow({mode:"open"}):e.createShadowRoot&&(o=e.createShadowRoot()),o&&(re.container=document.head,re(n(6793)+n(7853)+n(9907)+n(879)+n(1107)+n(5259)),r=document.createElement("div"),o.appendChild(r),this._shadowRoot=o)),this._shadowRoot||(r=document.createElement("div"),e.appendChild(r)),P()(r,{className:"eruda-container __chobitsu-hide__",contentEditable:!1}),"ios"===Do()().name&&r.setAttribute("ontouchstart",""),this._$el=m()(r)},_initDevTools:function(e,t){this._devTools=new it(this._$el,{defaults:e,inline:t})},_initStyle:function(){var e="eruda-style-container",t=this._$el;this._shadowRoot?(re.container=this._shadowRoot,re(":host { all: initial }")):(t.append('
    ')),re.container=t.find(".".concat(e)).get(0)),re(n(2693)+n(9907)+n(7853)+n(5259)+n(3277)+n(879)+n(4393)+n(7253)+n(1107)+n(187)+n(1277)+n(8687)+n(6793))},_initEntryBtn:function(){var e=this;this._entryBtn=new Pe(this._$el),this._entryBtn.on("click",(function(){return e._devTools.toggle()}))},_initSettings:function(){var e=this._devTools,t=new ce;e.add(t),this._entryBtn.initCfg(t),e.initCfg(t)},_initTools:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["console","elements","network","resources","sources","info","snippets"];t=Ao()(t);var n=this._devTools;t.forEach((function(t){var o=e[Ke()(t)];try{o&&n.add(new o)}catch(e){ue()((function(){$e.error("Something wrong when initializing tool ".concat(t,":"),e.message)}))}})),n.showTool(t[0]||"settings")}}},4236:function(e,t){t=function(e){return null===e},e.exports=t},4249:function(e,t,n){var o=n(9100),r=n(5651);t=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"js",s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};r(s,i),e=e.replace(//g,">"),n=a[n];var c=0,l=[];o(n,(function(n){n.language&&(e=e.replace(n.re,(function(e,o){return o?(l[c++]=t(o,n.language,s),e.replace(o,"___subtmpl"+(c-1)+"___")):e})))})),o(n,(function(t,n){a[t.language]||(e=e.replace(t.re,"___"+n+"___$1___end"+n+"___"))}));var u=[];return e=e.replace(/___(?!subtmpl)\w+?___/g,(function(e){var t="end"===e.substr(3,3),o=(t?e.substr(6):e.substr(3)).replace(/_/g,""),r=u.length>0?u[u.length-1]:null;return!t&&(null==r||o==r||null!=r&&n[r]&&null!=n[r].embed&&n[r].embed.indexOf(o)>-1)?(u.push(o),e):t&&o==r?(u.pop(),e):""})),o(n,(function(t,n){var o=s[t.style]?' style="'.concat(s[t.style],'"'):"";e=e.replace(new RegExp("___end"+n+"___","g"),"").replace(new RegExp("___"+n+"___","g"),'"))})),o(n,(function(t){t.language&&(e=e.replace(/___subtmpl\d+___/g,(function(e){var t=parseInt(e.replace(/___subtmpl(\d+)___/,"$1"),10);return l[t]})))})),e};var i={comment:"color:#63a35c;",string:"color:#183691;",number:"color:#0086b3;",keyword:"color:#a71d5d;",operator:"color:#994500;"},a={js:{comment:{re:/(\/\/.*|\/\*([\s\S]*?)\*\/)/g,style:"comment"},string:{re:/(('.*?')|(".*?"))/g,style:"string"},numbers:{re:/(-?(\d+|\d+\.\d+|\.\d+))/g,style:"number"},keywords:{re:/(?:\b)(function|for|foreach|while|if|else|elseif|switch|break|as|return|this|class|self|default|var|const|let|false|true|null|undefined)(?:\b)/gi,style:"keyword"},operator:{re:/(\+|-|\/|\*|%|=|<|>|\||\?|\.)/g,style:"operator"}}};a.html={comment:{re:/(<!--([\s\S]*?)-->)/g,style:"comment"},tag:{re:/(<\/?\w(.|\n)*?\/?>)/g,style:"keyword",embed:["string"]},string:a.js.string,css:{re:/(?:<style.*?>)([\s\S]*)?(?:<\/style>)/gi,language:"css"},script:{re:/(?:<script.*?>)([\s\S]*?)(?:<\/script>)/gi,language:"js"}},a.css={comment:a.js.comment,string:a.js.string,numbers:{re:/((-?(\d+|\d+\.\d+|\.\d+)(%|px|em|pt|in)?)|#[0-9a-fA-F]{3}[0-9a-fA-F]{3})/g,style:"number"},keywords:{re:/(@\w+|:?:\w+|[a-z-]+:)/g,style:"keyword"}},e.exports=t},4279:function(e,t,n){(t=n(6314)(!1)).push([e.id,"#_settings{overflow-y:auto;-webkit-overflow-scrolling:touch}._safe-area #_settings{padding-bottom:calc(0px + env(safe-area-inset-bottom))}",""]),e.exports=t},4307:function(e,t,n){var o=n(2263),r=n(2767),i=n(9100),a=n(438),s=n(9405),c=n(3915),l=n(3957);t={on:function(e,t,n){l(t)&&(n=t,t={}),e=e.split(f),i(e,(function(e){if(e=h(e),t.element){var o=t.element,r=o._hotkeyListeners||{};o._hotkeyListeners=r,r[e]=r[e]||[];var i=function(t){e===d(t)&&n(t)};r[e].push({listener:i,origin:n}),o.addEventListener("keydown",i)}else u.on(e,n)}))},off:function(e,t,n){l(t)&&(n=t,t={}),e=e.split(f),i(e,(function(e){if(e=h(e),t.element){var o=t.element,r=o._hotkeyListeners;if(r&&r[e]){for(var i,a=r[e],s=0,c=a.length;s]*>/g.test(e))try{var t=s.default.parse(e);return f(t,(function(e){e.attrs&&e.attrs.class&&(e.attrs.class=n(e.attrs.class))})),s.default.stringify(t)}catch(t){return n(e)}return n(e)}};var p,v="ontouchstart"in a.default,g={start:"touchstart",move:"touchmove",end:"touchend"},m={start:"mousedown",move:"mousemove",end:"mouseup"};t.drag=function(e){return v?g[e]:m[e]},t.eventClient=function(e,t){var n="x"===e?"clientX":"clientY";return t[n]?t[n]:t.changedTouches?t.changedTouches[0][n]:0},t.eventPage=function(e,t){var n="x"===e?"pageX":"pageY";return t[n]?t[n]:t.changedTouches?t.changedTouches[0][n]:0},t.measuredScrollbarWidth=function(){if((0,c.default)(p))return p;if(!document)return 16;var e=document.createElement("div"),t=document.createElement("div");return e.setAttribute("style","display: block; width: 100px; height: 100px; overflow: scroll;"),t.setAttribute("style","height: 200px"),e.appendChild(t),document.body.appendChild(e),p=e.offsetWidth-e.clientWidth,document.body.removeChild(e),p},t.hasVerticalScrollbar=function(e){return e.scrollHeight>e.offsetHeight},t.executeAfterTransition=function(e,t){if((0,h.default)(e))return t();var n=function(o){o.target===e&&(e.removeEventListener("transitionend",n),t())};e.addEventListener("transitionend",n)},t.pxToNum=function(e){return(0,u.default)(e.replace("px",""))},t.getPlatform=function(){var e=(0,d.default)();return"os x"===e?"mac":e},t.resetCanvasSize=function(e){e.width=Math.round(e.offsetWidth*window.devicePixelRatio),e.height=Math.round(e.offsetHeight*window.devicePixelRatio)}},4801:function(e,t,n){var o=n(4950),r=n(2989),i=n(2561),a=n(1580),s=n(1168),c=n(3145),l=n(9100),u=n(2717),d=n(5427),h=n(466),f=n(8105),p=n(8796),v=n(2571),g=n(3981),m=n(7514),b=n(3249),y=n(9760),A=n(4460),w=n(6513),_=n(1009),x=n(2806),k=n(4151),C=n(896),S=n(5793);function E(e,n,o,r){var a=[];return l(n,(function(e){var n,s=Object.getOwnPropertyDescriptor(o,e),c=s&&s.get,l=s&&s.set;if(!r.accessGetter&&c)n="(...)";else try{if(n=o[e],b(r.ignore,n))return;p(n)&&n.catch((function(){}))}catch(e){n=e.message}a.push("".concat(T(e),":").concat(t(n,r))),c&&a.push("".concat(T("get "+i(e)),":").concat(t(s.get,r))),l&&a.push("".concat(T("set "+i(e)),":").concat(t(s.set,r)))})),'"'.concat(e,'":{')+a.join(",")+"}"}function T(e){return'"'.concat(O(e),'"')}function N(e){return'"'.concat(O(i(e)),'"')}function O(e){return o(e).replace(/\\'/g,"'").replace(/\t/g,"\\t")}t=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.self,l=n.startTime,u=void 0===l?g():l,p=n.timeout,y=void 0===p?0:p,A=n.depth,w=void 0===A?0:A,_=n.curDepth,x=void 0===_?1:_,k=n.visitor,C=void 0===k?new j:k,S=n.unenumerable,T=void 0!==S&&S,O=n.symbol,M=void 0!==O&&O,I=n.accessGetter,z=void 0!==I&&I,D=n.ignore,B=void 0===D?[]:D,F="",R={visitor:C,unenumerable:T,symbol:M,accessGetter:z,depth:w,curDepth:x+1,timeout:y,startTime:u,ignore:B},L=r(e,!1);if("String"===L)F=N(e);else if("Number"===L)F=i(e),a(F,"Infinity")&&(F='{"value":"'.concat(F,'","type":"Number"}'));else if("NaN"===L)F='{"value":"NaN","type":"Number"}';else if("Boolean"===L)F=e?"true":"false";else if("Null"===L)F="null";else if("Undefined"===L)F='{"type":"Undefined"}';else if("Symbol"===L){var G="Symbol";try{G=i(e)}catch(e){}F='{"value":'.concat(N(G),',"type":"Symbol"}')}else{if(y&&g()-u>y)return N("Timeout");if(w&&x>w)return N("{...}");F="{";var P,H=[],Y=C.get(e);if(Y?(P=Y.id,H.push('"reference":'.concat(P))):(P=C.set(e),H.push('"id":'.concat(P))),H.push('"type":"'.concat(L,'"')),a(L,"Function")?H.push('"value":'.concat(N(s(e)))):"RegExp"===L&&H.push('"value":'.concat(N(e))),!Y){var $=c(e);if($.length&&H.push(E("enumerable",$,o||e,R)),T){var q=h(m(e,{prototype:!1,unenumerable:!0}),$);q.length&&H.push(E("unenumerable",q,o||e,R))}if(M){var Q=v(m(e,{prototype:!1,symbol:!0}),(function(e){return"symbol"==typeof e}));Q.length&&H.push(E("symbol",Q,o||e,R))}var U=d(e);if(U&&!b(B,U)){var W='"proto":'.concat(t(U,f(R,{self:o||e})));H.push(W)}}F+=H.join(",")+"}"}return F};var j=u({initialize:function(){this.id=1,this.visited=[]},set:function(e){var t=this.visited,n=this.id,o={id:n,val:e};return t.push(o),this.id++,n},get:function(e){for(var t=this.visited,n=0,o=t.length;n>6*t)+n);t>0;){o+=h(128|63&e>>6*(t-1)),t--}return o}function p(e){for(;;){if(i>=a&&l){if(e)return v();throw new Error("Invalid byte index")}if(i===a)return!1;var t=r[i];if(i++,l){if(td){if(e)return i--,v();throw new Error("Invalid continuation byte")}if(u=128,d=191,s=s<<6|63&t,++c===l){var n=s;return s=0,l=0,c=0,n}}else{if(!(128&t))return t;if(192==(224&t))l=1,s=31&t;else if(224==(240&t))224===t&&(u=160),237===t&&(d=159),l=2,s=15&t;else{if(240!=(248&t)){if(e)return v();throw new Error("Invalid UTF-8 detected")}240===t&&(u=144),244===t&&(d=143),l=3,s=7&t}}}}function v(){var e=i-c-1;return i=e+1,s=0,l=0,c=0,u=128,d=191,r[e]}e.exports=t},4983:function(e,t){t=function(e){try{return JSON.parse(e),!0}catch(e){return!1}},e.exports=t},4992:function(e,t,n){var o=n(3974);t=function(e){return"[object ArrayBuffer]"===o(e)},e.exports=t},4994:function(e,t,n){var o=n(2510);t=o((function(e,t,n){return o((function(o){return e.apply(t,n.concat(o))}))})),e.exports=t},5004:function(e,t,n){var o=n(1909),r=n(621);t=function(e){function t(t){return e.indexOf(t)>-1}if(!e&&o&&(e=navigator.userAgent),e){if(e=e.toLowerCase(),t("windows phone"))return"windows phone";if(t("win"))return"windows";if(t("android"))return"android";if(t("ipad")||t("iphone")||t("ipod"))return"ios";if(t("mac"))return"os x";if(t("linux"))return"linux"}else if(r){var n=process,i=n.platform,a=n.env;if("win32"===i||"cygwin"===a.OSTYPE||"msys"===a.OSTYPE)return"windows";if("darwin"===i)return"os x";if("linux"===i)return"linux"}return"unknown"},e.exports=t},5021:function(e,t,n){var o=n(7744),r=n(1931),i=n(9464),a=n(8032),s=n(5651),c=n(9760),l=r("local");t=o.extend({initialize:function(e,t){this._name=e,t=t||{};var n=l.getItem(e);try{n=JSON.parse(n)}catch(e){n={}}c(n)||(n={}),t=s(n,t),this.callSuper(o,"initialize",[t])},save:function(e){if(i(e))return l.removeItem(this._name);l.setItem(this._name,a(e))}}),e.exports=t},5119:function(e,t,n){var o=n(9100);t=function(e){var t=[];return o(e,(function(e){t.push(e)})),t},e.exports=t},5132:function(e,t,n){var o=n(3974);t=function(e){return"[object Arguments]"===o(e)},e.exports=t},5145:function(e,t,n){var o=n(9756),r=n(5651),i=n(3145),a=n(6214),s=n(9760);t=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};r(t,c);var n=t.deep,o=t.comparator,l=[],u=[];return function e(t){var r,c=l.indexOf(t);if(c>-1)return u[c];if(a(t)){r=[],l.push(t),u.push(r);for(var d=0,h=t.length;d=55296&&r<=56319&&n2?n-2:0),d=2;d=a?"":e.substr(i,a)},e.exports=t},5334:function(e,t,n){"use strict";var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(r,i){function a(e){try{c(o.next(e))}catch(e){i(e)}}function s(e){try{c(o.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((o=o.apply(e,t||[])).next())}))},r=this&&this.__generator||function(e,t){var n,o,r,i={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(c){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(i=0)),i;)try{if(n=1,o&&(r=2&s[0]?o.return:s[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,s[1])).done)return r;switch(o=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,o=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(r=i.trys,(r=r.length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]e.length)&&(t=e.length);for(var n=0,o=Array(t);n1?n-1:0),u=1;u0?i.apply(null,p):0;return s(a(f,(function(e){return" "===e[0]?e.slice(b):e})).join("\n"))};var c=/^(\s+)\S+/;e.exports=t},5784:function(e,t,n){"use strict";n.d(t,{A:function(){return _e}});var o=n(7528),r=n(4467),i=n(3029),a=n(2901),s=n(388),c=n(3954),l=n(5361),u=n(2263),d=n.n(u),h=n(3693),f=n.n(h),p=n(3915),v=n.n(p),g=n(9405),m=n.n(g),b=n(5169),y=n.n(b),A=n(9548),w=n.n(A),_=(n(6097),n(3249)),x=n.n(_),k=(n(6030),n(5004)),C=n.n(k);n(9410),n(8609);function S(e){var t="luna-".concat(e,"-");function n(e){return v()(m()(e).split(/\s+/),(function(e){return x()(e,t)?e:e.replace(/[\w-]+/,(function(e){return"".concat(t).concat(e)}))})).join(" ")}return function(e){if(/<[^>]*>/g.test(e))try{var t=w().parse(e);return E(t,(function(e){e.attrs&&e.attrs.class&&(e.attrs.class=n(e.attrs.class))})),w().stringify(t)}catch(t){return n(e)}return n(e)}}function E(e,t){for(var n=0,o=e.length;n2&&void 0!==arguments[2]?arguments[2]:{}).theme,l=void 0===a?"light":a;return(0,i.A)(this,t),o=function(e,t,n){return t=(0,c.A)(t),(0,s.A)(e,H()?Reflect.construct(t,n||[],(0,c.A)(e).constructor):t.apply(e,n))}(this,t),o.subComponents=[],o.theme="",o.onThemeChange=function(e){"auto"===o.options.theme&&o.setTheme(e)},o.compName=r,o.c=S(r),o.options={},o.container=e,o.$container=f()(e),o.$container.addClass(["luna-".concat(r),o.c("platform-".concat(N()))]),o.on("changeOption",(function(e,t){if("theme"===e&&t){var n=t;"auto"===t&&(n=L().get()),o.setTheme(n),j()(o.subComponents,(function(e){return e.setOption("theme",t)}))}})),L().on("change",o.onThemeChange),o.setOption("theme",l),o}return(0,l.A)(t,e),(0,a.A)(t,[{key:"destroy",value:function(){var e=this;this.destroySubComponents();var t=this.$container,n=t.attr("class");j()(n.split(/\s+/),(function(n){P()(n,"luna-".concat(e.compName))&&t.rmClass(n)})),t.html(""),this.emit("destroy"),this.removeAllListeners(),L().off("change",this.onThemeChange)}},{key:"setOption",value:function(e,t){var n=this,o=this.options,r={};"string"==typeof e?r[e]=t:r=e,j()(r,(function(e,t){var r=o[t];o[t]=e,e!==r&&n.emit("changeOption",t,e,r)}))}},{key:"getOption",value:function(e){return this.options[e]}},{key:"addSubComponent",value:function(e){e.setOption("theme",this.options.theme),this.subComponents.push(e)}},{key:"removeSubComponent",value:function(e){F()(this.subComponents,(function(t){return t===e}))}},{key:"destroySubComponents",value:function(){j()(this.subComponents,(function(e){return e.destroy()})),this.subComponents=[]}},{key:"initOptions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};D()(e,t),I()(this.options,e)}},{key:"find",value:function(e){return this.$container.find(this.c(e))}},{key:"setTheme",value:function(e){var t=this.c,n=this.$container;this.theme&&n.rmClass(t("theme-".concat(this.theme))),n.addClass(t("theme-".concat(e))),this.theme=e}}])}(d()),Q=n(5241),U=n.n(Q),W=n(2571),J=n.n(W),K=n(7181),V=n.n(K),Z=n(5773),X=n.n(Z),ee=n(769),te=n.n(ee),ne=n(2208),oe=n.n(ne),re=n(4249),ie=n.n(re),ae=n(15),se=n.n(ae),ce=n(3497),le=n.n(ce),ue=n(5902),de=n.n(ue),he=n(8098),fe=n.n(he),pe=n(4307),ve=n.n(pe),ge=n(96),me=n.n(ge);function be(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ye(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};return(0,i.A)(this,t),o=this,r=t,a=[e,{compName:"dom-viewer"},l],r=(0,c.A)(r),(n=(0,s.A)(o,Ae()?Reflect.construct(r,a||[],(0,c.A)(o).constructor):r.apply(o,a))).isExpanded=!1,n.childNodes=[],n.childNodeDomViewers=[],n.expand=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];n.isExpandable()&&(n.isExpanded||(n.isExpanded=!0,n.renderExpandTag(),n.renderChildNodes()),e&&j()(n.childNodeDomViewers,(function(e){e.expand(!0)})))},n.collapse=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];n.isExpandable()&&(n.isExpanded&&(n.isExpanded=!1,n.renderCollapseTag()),e&&j()(n.childNodeDomViewers,(function(e){e.collapse(!0)})))},n.toggle=function(){n.isExpanded?n.collapse():n.expand()},n.onKeyRight=function(){n.isExpanded?n.childNodeDomViewers[0].select():n.expand()},n.onKeyLeft=function(){var e;n.isExpanded?n.collapse():null===(e=n.options.parent)||void 0===e||e.select()},n.onKeyDown=function(){var e=n.options;if(n.isExpanded)n.childNodeDomViewers[0].select();else{var t=e.parent;if(t)if(e.isEndTag){if(!(t=t.getOption("parent")))return;var o=t,r=o.childNodes,i=o.childNodeDomViewers,a=o.endTagDomViewer,s=r.indexOf(e.node);r[s+1]?i[s+1].select():a&&a.select()}else{var c=t,l=c.childNodeDomViewers,u=c.endTagDomViewer,d=l.indexOf(n);l[d+1]?l[d+1].select():u&&u.select()}}},n.onKeyUp=function(){var e=n.options,t=e.parent;if(t){var o,r;if(e.isEndTag)o=le()(t.childNodeDomViewers);else{var i=t.childNodeDomViewers.indexOf(n);i<1?t.select():o=t.childNodeDomViewers[i-1]}if(o)if(o.isExpanded)null===(r=o.endTagDomViewer)||void 0===r||r.select();else o.select()}},n.initOptions(l,{node:document.documentElement,parent:null,isEndTag:!1,observe:!0,rootContainer:e,rootDomViewer:n,ignore:function(){return!1},ignoreAttr:function(){return!1},lowerCaseTagName:!0,hotkey:!0}),n.isShadowRoot=V()(n.options.node),n.initTpl(),n.bindEvent(),!n.options.isEndTag&&n.options.observe&&n.initObserver(),n}return(0,l.A)(t,e),(0,a.A)(t,[{key:"select",value:function(e){var t=this.c,n=this.options;if(!e||e&&n.node===e){if(this.$tag.hasClass(t("selected")))return;return f()(this.options.rootContainer).find(t(".selected")).rmClass(t("selected")).rmAttr("tabindex"),this.$tag.attr("tabindex","0").get(0).focus(),this.$tag.addClass(t("selected")),void n.rootDomViewer.emit("select",n.node)}if(e.nodeType===Node.ELEMENT_NODE)for(var o=e,r=e.parentElement;r;){if(r===n.node){this.expand(),this.childNodeDomViewers[this.childNodes.indexOf(o)].select(e);break}o=r,r=r.parentElement}}},{key:"attach",value:function(){this.container.appendChild(this.$tag.get(0)),this.$children&&this.container.appendChild(this.$children.get(0))}},{key:"isAttached",value:function(){return!!this.$tag.get(0).parentNode}},{key:"detach",value:function(){this.$tag.remove(),this.$children&&this.$children.remove()}},{key:"destroy",value:function(){var e=this.c;this.$tag.hasClass(e("selected"))&&this.options.rootDomViewer.emit("deselect"),this.detach(),this.observer&&this.observer.disconnect(),this.destroySubComponents(),this.options.rootDomViewer===this&&this.$container.rmClass("luna-dom-viewer").rmClass(e("platform-".concat(N()))).rmClass(e("theme-".concat(this.options.theme))),this.emit("destroy"),this.removeAllListeners()}},{key:"renderExpandTag",value:function(){var e=this.$tag,t=this.c,n=this.options.node;this.isShadowRoot||e.html(this.renderHtmlTag(ye(ye({},xe(n)),{},{hasTail:!1,hasToggleButton:!0}))),e.addClass(t("expanded")),this.$children.rmClass(t("hidden"))}},{key:"renderCollapseTag",value:function(){var e=this.$tag,t=this.c,n=this.options.node;this.$children.addClass(t("hidden")),this.isShadowRoot||this.$tag.html(this.renderHtmlTag(ye(ye({},xe(n)),{},{hasTail:!0,hasToggleButton:!0}))),e.rmClass(t("expanded"))}},{key:"initObserver",value:function(){var e=this;this.observer=new(oe())((function(t){j()(t,(function(t){e.handleMutation(t)}))})),this.observer.observe(this.options.node,{attributes:!0,childList:!0,characterData:!0})}},{key:"handleMutation",value:function(e){var t=this.$tag,n=this.c,o=this.options,r=o.node,i=o.ignore;if(x()(["attributes","childList"],e.type)){if("childList"===e.type){if(fe()(e.addedNodes,i)&&fe()(e.removedNodes,i))return;this.renderChildNodes()}this.isExpandable()?this.isExpanded?this.renderExpandTag():this.renderCollapseTag():(this.$children.addClass(n("hidden")),this.isExpanded=!1,this.isShadowRoot?t.html(this.renderShadowRoot(!1)):t.html(this.renderHtmlTag(ye(ye({},xe(r)),{},{hasTail:!1}))))}else"characterData"===e.type&&(r.nodeType===Node.TEXT_NODE?t.html(this.renderTextNode(r)):r.nodeType===Node.COMMENT_NODE&&t.html(this.renderHtmlComment(r.nodeValue)))}},{key:"bindEvent",value:function(){var e=this,t=this.c,n=this.$tag;if((this.options.node.nodeType===Node.ELEMENT_NODE||this.isShadowRoot)&&n.on("click",t(".toggle"),(function(t){t.stopPropagation(),e.toggle()})),T?n.on("click",(function(){return e.select()})):n.on("mousedown",(function(){return e.select()})),this.options.hotkey){var o={element:n.get(0)};ve().on("right",o,this.onKeyRight),ve().on("left",o,this.onKeyLeft),ve().on("down",o,this.onKeyDown),ve().on("up",o,this.onKeyUp)}}},{key:"isExpandable",value:function(){return!(this.options.node.nodeType!==Node.ELEMENT_NODE&&!this.isShadowRoot)&&this.getChildNodes().length>0}},{key:"getChildNodes",value:function(){var e=this.options,t=e.rootContainer,n=e.ignore,o=this.options.node,r=te()(o.childNodes);return r=J()(r,(function(e){if(e.nodeType===Node.TEXT_NODE||e.nodeType===Node.COMMENT_NODE){var o=e.nodeValue;if(""===m()(o))return!1}return e!==t&&!n(e)})),o.shadowRoot?r.unshift(o.shadowRoot):o.chobitsuShadowRoot&&r.unshift(o.chobitsuShadowRoot),r}},{key:"initTpl",value:function(){var e=this.container,t=this.c,n=this.options,o=n.node,r=n.isEndTag,i=n.lowerCaseTagName,a=f()(U()("li"));if(a.addClass(t("tree-item")),this.$tag=a,r){var s=o.tagName;i&&(s=me()(s)),a.html(t('</'.concat(s,'>')))}else if(o.nodeType===Node.ELEMENT_NODE){var c=this.isExpandable(),l=ye(ye({},xe(o)),{},{hasTail:c,hasToggleButton:c});a.html(this.renderHtmlTag(l))}else if(V()(o)){var u=this.isExpandable();a.html(this.renderShadowRoot(u))}else if(o.nodeType===Node.TEXT_NODE)a.html(this.renderTextNode(o));else{if(o.nodeType!==Node.COMMENT_NODE)return;var d=o.nodeValue;if(""===d.trim())return;a.html(this.renderHtmlComment(d))}if(e.appendChild(a.get(0)),o.nodeType===o.ELEMENT_NODE||this.isShadowRoot){var h=f()(U()("ul"));h.addClass([t("children"),t("hidden")]),e.appendChild(h.get(0)),this.$children=h}}},{key:"renderChildNodes",value:function(){var e=this,n=this.options.node,o=this.options,r=o.rootContainer,i=o.ignore,a=o.ignoreAttr,s=o.rootDomViewer,c=o.observe,l=o.lowerCaseTagName,u=this.$children.get(0),d=this.childNodes,h=this.childNodeDomViewers;j()(h,(function(t){t.detach(),e.removeSubComponent(t)})),this.endTagDomViewer&&this.endTagDomViewer.detach();var f=this.getChildNodes();this.childNodes=f;var p=[];this.childNodeDomViewers=p,j()(f,(function(n,o){var f,v=d.indexOf(n);(f=v>-1?h[v]:new t(u,{node:n,observe:c,parent:e,rootContainer:r,rootDomViewer:s,ignore:i,ignoreAttr:a,lowerCaseTagName:l})).attach(),p[o]=f,e.addSubComponent(f)})),j()(h,(function(e){e.isAttached()||e.destroy()})),n&&!this.isShadowRoot&&(this.endTagDomViewer?this.endTagDomViewer.attach():(this.endTagDomViewer=new t(u,{node:n,parent:this,isEndTag:!0,lowerCaseTagName:l,rootContainer:r,rootDomViewer:s,ignore:i}),this.addSubComponent(this.endTagDomViewer)))}},{key:"renderHtmlTag",value:function(e){var t=this,n=this.options.lowerCaseTagName;e.attributes=J()(e.attributes,(function(n){return!t.options.ignoreAttr(e.el,n.name,n.value)}));var r=v()(e.attributes,(function(e){var t=e.name,n=e.value,o=e.isLink;return'\n '.concat(de()(t),"").concat(n?'="').concat(de()(n),'"'):"","")})).join(""),i="",a=e.tagName;return n&&(a=me()(a)),e.hasTail?i="".concat(e.hasTail?"…":"",'</').concat(a,">"):this.isExpandable()||(i='</'.concat(a,">")),this.c(X()(Y||(Y=(0,o.A)(["\n ",'\n <',"",">",'\n '])),e.hasToggleButton?this.renderToggle():"",a,r,i))}},{key:"renderTextNode",value:function(e){var t=this.c,n=e.nodeValue,o=e.parentElement,r='',i='';if(o&&n.length<1e4){if("STYLE"===o.tagName)return t("".concat(r).concat(ie()(n,"css",we)).concat(i));if("SCRIPT"===o.tagName)return t("".concat(r).concat(ie()(n,"js",we)).concat(i))}return t('"'.concat(r).concat(de()(se()(n,1e4,{separator:" ",ellipsis:"…"}))).concat(i,'"'))}},{key:"renderHtmlComment",value:function(e){return this.c('<!-- '.concat(de()(e),' -->'))}},{key:"renderShadowRoot",value:function(e){var t=this.options.node;return this.c(X()($||($=(0,o.A)(["\n ",'\n #shadow-root (',')\n '])),e?this.renderToggle():"",t.mode))}},{key:"renderToggle",value:function(){return'
    '}}])}(q);function xe(e){var t={el:e,tagName:"",attributes:[]};t.tagName=e.tagName;var n=[];return j()(e.attributes,(function(t){var o=t.name,r=t.value;n.push({name:o,value:r,isLink:ke(e,o)})})),t.attributes=n,t}function ke(e,t){var n=e.tagName;return("SCRIPT"===n||"IMAGE"===n||"VIDEO"===n||"AUDIO"===n)&&"src"===t||"LINK"===n&&"href"===t}(function(e,t){try{e.exports=t,e.exports.default=t}catch(e){}})(e,_e)},5793:function(e,t,n){var o=n(6097),r=n(3957),i=Math.pow(2,53)-1;t=function(e){if(!e)return!1;var t=e.length;return o(t)&&t>=0&&t<=i&&!r(e)},e.exports=t},5820:function(e,t,n){var o,r=n(3981),i=n(5169),a=i.performance,s=i.process;if(a&&a.now)t=function(){return a.now()};else if(s&&s.hrtime){var c=function(){var e=s.hrtime();return 1e9*e[0]+e[1]};o=c()-1e9*s.uptime(),t=function(){return(c()-o)/1e6}}else o=r(),t=function(){return r()-o};e.exports=t},5865:function(e,t,n){var o=n(4534);t=function(e,t){return o(e,t,!0)},e.exports=t},5869:function(e,t,n){var o=n(365);t=function(e,t){var n=function(r){var i=n.cache,a=""+(t?t.apply(this,arguments):r);return o(i,a)||(i[a]=e.apply(this,arguments)),i[a]};return n.cache={},n},e.exports=t},5902:function(e,t,n){var o=n(3145),r=(t=function(e){return a.test(e)?e.replace(s,c):e}).map={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},i="(?:"+o(r).join("|")+")",a=new RegExp(i),s=new RegExp(i,"g"),c=function(e){return r[e]};e.exports=t},5945:function(e,t,n){var o=n(3974);t=function(e){return"[object Set]"===o(e)},e.exports=t},5957:function(e,t,n){var o=n(1738),r=n(2990),i=n(4992),a=n(6214),s=n(3159),c=n(2989),l=n(96);(t=function(e,t){var n;if(t=l(t),o(e))n=new Uint8Array(r.decode(e));else if(i(e))e=e.slice(0),n=new Uint8Array(e);else if(a(e))n=new Uint8Array(e);else if("uint8array"===c(e))n=e.slice(0);else if(s(e)){n=new Uint8Array(e.length);for(var u=0;un?n:e},e.exports=t},6030:function(e,t,n){var o=n(6097),r=n(9760),i=n(3957),a=n(1738);t=function(e){if(o(e))return e;if(r(e)){var t=i(e.valueOf)?e.valueOf():e;e=r(t)?t+"":t}return a(e)?+e:0===e?e:+e},e.exports=t},6032:function(e,t,n){var o=n(2717),r=n(8105),i=n(9405),a=n(7257),s=n(9464),c=n(9100),l=n(6214),u=n(769),d=n(1909),h=n(9760),f=n(2561);t=o({className:"Url",initialize:function(e){!e&&d&&(e=window.location.href),r(this,t.parse(e||""))},setQuery:function(e,t){var n=this.query;return h(e)?c(e,(function(e,t){n[t]=f(e)})):n[e]=f(t),this},rmQuery:function(e){var t=this.query;return l(e)||(e=u(e)),c(e,(function(e){delete t[e]})),this},toString:function(){return t.stringify(this)}},{parse:function(e){var t={protocol:"",auth:"",hostname:"",hash:"",query:{},port:"",pathname:"",slashes:!1},n=i(e),o=!1,r=n.match(p);if(r&&(r=r[0],t.protocol=r.toLowerCase(),n=n.substr(r.length)),r&&(o="//"===n.substr(0,2))&&(n=n.slice(2),t.slashes=!0),o){for(var s=n,c=-1,l=0,u=g.length;l-1&&(s=n.slice(0,c),n=n.slice(c));var h=s.lastIndexOf("@");-1!==h&&(t.auth=decodeURIComponent(s.slice(0,h)),s=s.slice(h+1)),t.hostname=s;var f=s.match(v);f&&(":"!==(f=f[0])&&(t.port=f.substr(1)),t.hostname=s.substr(0,s.length-f.length))}var m=n.indexOf("#");-1!==m&&(t.hash=n.substr(m),n=n.slice(0,m));var b=n.indexOf("?");return-1!==b&&(t.query=a.parse(n.substr(b+1)),n=n.slice(0,b)),t.pathname=n||"/",t},stringify:function(e){var t=e.protocol+(e.slashes?"//":"")+(e.auth?encodeURIComponent(e.auth)+"@":"")+e.hostname+(e.port?":"+e.port:"")+e.pathname;return s(e.query)||(t+="?"+a.stringify(e.query)),e.hash&&(t+=e.hash),t}});var p=/^([a-z0-9.+-]+:)/i,v=/:[0-9]*$/,g=["/","?","#"];e.exports=t},6097:function(e,t,n){var o=n(3974);t=function(e){return"[object Number]"===o(e)},e.exports=t},6167:function(e,t,n){var o=n(5693);t=function(e,t,n,r){r=r||1,t=o(t,n);for(var i=e.length,a=r>0?0:i-1;a>=0&&a"),t))return void n.push(e);var i=[];(0,A.default)(e.attributes,(function(e){var t=e.name,n=e.value;return i.push(t,n)}));for(var a=0,s=i.length;a"),v.default.parse(i)[0].attrs));var i},t.setAttributeValue=function(e){var t=e.nodeId,n=e.name,o=e.value;(0,l.getNode)(t).setAttribute(n,o)},t.setInspectedNode=function(e){var t=(0,l.getNode)(e.nodeId);O.unshift(t),O.length>5&&O.pop();for(var n=0;n<5;n++)(0,k.setGlobal)("$".concat(n),O[n])},t.setNodeValue=function(e){var t=e.nodeId,n=e.value;(0,l.getNode)(t).nodeValue=n},t.setOuterHTML=function(e){var t=e.nodeId,n=e.outerHTML;(0,l.getNode)(t).outerHTML=n},t.getDOMNodeId=function(e){var t=e.node;return{nodeId:c.getOrCreateNodeId(t)}},t.getDOMNode=function(e){var t=e.nodeId;return{node:(0,l.getNode)(t)}},t.getTopLayerElements=function(){return{nodeIds:[]}},t.getNodesForSubtreeByStyle=function(){return{nodeIds:[]}};var s=a(n(8665)),c=i(n(9893)),l=n(9893),u=i(n(2484)),d=a(n(8757)),h=a(n(3693)),f=a(n(4236)),p=a(n(9464)),v=a(n(9548)),g=a(n(3915)),m=a(n(438)),b=a(n(3249)),y=a(n(96)),A=a(n(9100)),w=a(n(769)),_=a(n(8862)),x=a(n(4069)),k=n(2627),C=n(916);var S,E=!1;(S=Element.prototype.attachShadow)&&(Element.prototype.attachShadow=function(e){var t=S.apply(this,[e]);if(!c.isValidNode(this))return t;if(this.chobitsuShadowRoot=t,E){d.default.observe(t);var n=(0,l.getNodeId)(this);n&&s.default.trigger("DOM.shadowRootPushed",{hostId:n,root:c.wrap(t,{depth:1})})}return t});var T=new Map;function N(e){for(var t=[e],n=e.parentNode;n;){if(t.push(n),r=(0,l.getNodeId)(n))break;n=n.parentNode}for(;t.length;){var o=t.pop(),r=(0,l.getNodeId)(o);s.default.trigger("DOM.setChildNodes",{parentId:r,nodes:c.getChildNodes(o,1)})}return(0,l.getNodeId)(e)}var O=[];function j(e,t){for(var n=c.filterNodes(e.childNodes),o=0,r=n.length;o0&&r[r.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]-1)return r(e.substring(n+t.length,e.indexOf(".",n)))}e.exports=t},6631:function(e,t,n){var o=n(6030);t=function(e){return e?(e=o(e))-e%1:0===e?e:0},e.exports=t},6717:function(e,t,n){(t=n(6314)(!1)).push([e.id,"._container ._entry-btn{touch-action:none;width:40px;height:40px;display:flex;background:#000;opacity:.3;border-radius:10px;position:relative;z-index:1000;transition:opacity .3s;color:#fff;font-size:25px;align-items:center;justify-content:center}._container ._entry-btn._active,._container ._entry-btn:active{opacity:.8}",""]),e.exports=t},6741:function(e,t,n){var o=n(2717),r=n(6186),i=n(8105),a=n(2508),s=n(1738),c=n(3957);t=o({initialize:function(e,t){this._locale=e,this._langs=t},set:function(e,t){this._langs[e]?i(this._langs[e],t):this._langs[e]=t},t:function(e,t){var n="",o=this._langs[this._locale];return o?(n=r(o,e),t&&(s(n)?n=a(n,t):c(n)&&(n=n(t))),n||""):""},locale:function(e){this._locale=e}}),e.exports=t},6774:function(e,t){t=function(e,t,n){null==t&&(t=e,e=0);var o=Math.random();return n||e%1||t%1?Math.min(e+o*(t-e+parseFloat("1e-"+((o+"").length-1))),t):e+Math.floor(o*(t-e+1))},e.exports=t},6793:function(e,t,n){(t=n(6314)(!1)).push([e.id,"@font-face{font-family:eruda-icon;src:url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff')}[class*=' _icon-'],[class^='_icon-']{display:inline-block;font-family:eruda-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}._icon-arrow-left:before{content:'\\f101'}._icon-arrow-right:before{content:'\\f102'}._icon-caret-down:before{content:'\\f103'}._icon-caret-right:before{content:'\\f104'}._icon-clear:before{content:'\\f105'}._icon-compress:before{content:'\\f106'}._icon-copy:before{content:'\\f107'}._icon-delete:before{content:'\\f108'}._icon-error:before{content:'\\f109'}._icon-expand:before{content:'\\f10a'}._icon-eye:before{content:'\\f10b'}._icon-filter:before{content:'\\f10c'}._icon-play:before{content:'\\f10d'}._icon-record:before{content:'\\f10e'}._icon-refresh:before{content:'\\f10f'}._icon-reset:before{content:'\\f110'}._icon-search:before{content:'\\f111'}._icon-select:before{content:'\\f112'}._icon-tool:before{content:'\\f113'}._icon-warn:before{content:'\\f114'}",""]),e.exports=t},6833:function(e,t){var n=/([A-Z])/g,o=/[_.\- ]+/g,r=/(^-)|(-$)/g;t=function(e){return(e=e.replace(n,"-$1").toLowerCase().replace(o,"-").replace(r,"")).split("-")},e.exports=t},6866:function(e,t,n){var o=n(1738),r=n(9760),i=n(7604),a=n(8971),s=n(3249),c=n(6097),l=n(3612),u=n(6969),d=n(9100);t=function(e,t,n){if(e=l(e),a(n)&&o(t))return function(e,t){return e.style[u(t)]||getComputedStyle(e,"").getPropertyValue(t)}(e[0],t);var f=t;r(f)||((f={})[t]=n),function(e,t){d(e,(function(e){var n=";";d(t,(function(e,t){t=u.dash(t),n+=t+":"+function(e,t){var n=c(t)&&!s(h,i(e));return n?t+"px":t}(t,e)+";"})),e.style.cssText+=n}))}(e,f)};var h=["column-count","columns","font-weight","line-weight","opacity","z-index","zoom"];e.exports=t},6911:function(e,t,n){"use strict";n.d(t,{j:function(){return Pe},A:function(){return $e}});var o=n(2284),r=n(3029),i=n(2901),a=n(388),s=n(3954),c=n(991),l=n(5361),u=n(5427),d=n.n(u),h=n(6097),f=n.n(h),p=n(6493),v=n.n(p),g=n(96),m=n.n(g),b=n(9760),y=n.n(b),A=n(6214),w=n.n(A),_=n(9931),x=n.n(_),k=n(3145),C=n.n(k),S=n(9100),E=n.n(S),T=n(1168),N=n.n(T),O=n(8796),j=n.n(O),M=n(2989),I=n.n(M),z=n(3693),D=n.n(z),B=n(466),F=n.n(B),R=n(15),L=n.n(R),G=n(1738),P=n.n(G),H=n(7514),Y=n.n(H),$=n(2571),q=n.n($),Q=n(7140),U=n.n(Q),W=n(2561),J=n.n(W),K=n(9993),V=n.n(K),Z=n(1532),X=n.n(Z),ee=n(8105),te=n.n(ee),ne=function(){return(0,i.A)((function e(){(0,r.A)(this,e),this.id=0,this.visited=[]}),[{key:"set",value:function(e,t){var n=this.visited,o=this.id,r={id:o,val:e};return te()(r,t),n.push(r),this.id++,o}},{key:"get",value:function(e){for(var t=this.visited,n=0,o=t.length;n500&&(e=e.slice(0,500)+"..."),"ƒ "+re()(function(e){var t=e.match(le);return t?t[0]:e}(e).replace("function",""))}var le=/function(.*?)\((.*?)\)/;var ue=n(1009),de=n.n(ue),he=n(5630),fe=n.n(he),pe=n(6030),ve=n.n(pe),ge=n(1932),me=n.n(ge),be=n(2263),ye=n.n(be),Ae=n(3915),we=n.n(Ae),_e=n(5169),xe=n.n(_e),ke=n(9548),Ce=n.n(ke),Se=n(3249),Ee=n.n(Se),Te=n(5004),Ne=n.n(Te);n(9410),n(8609);function Oe(e){var t="luna-".concat(e,"-");function n(e){return we()(re()(e).split(/\s+/),(function(e){return Ee()(e,t)?e:e.replace(/[\w-]+/,(function(e){return"".concat(t).concat(e)}))})).join(" ")}return function(e){if(/<[^>]*>/g.test(e))try{var t=Ce().parse(e);return je(t,(function(e){e.attrs&&e.attrs.class&&(e.attrs.class=n(e.attrs.class))})),Ce().stringify(t)}catch(t){return n(e)}return n(e)}}function je(e,t){for(var n=0,o=e.length;n2&&void 0!==arguments[2]?arguments[2]:{}).theme,u=void 0===l?"light":l;return(0,r.A)(this,t),o=function(e,t,n){return t=(0,s.A)(t),(0,a.A)(e,Re()?Reflect.construct(t,n||[],(0,s.A)(e).constructor):t.apply(e,n))}(this,t),o.subComponents=[],o.theme="",o.onThemeChange=function(e){"auto"===o.options.theme&&o.setTheme(e)},o.compName=c,o.c=Oe(c),o.options={},o.container=e,o.$container=D()(e),o.$container.addClass(["luna-".concat(c),o.c("platform-".concat((i=Ne()(),"os x"===i?"mac":i)))]),o.on("changeOption",(function(e,t){if("theme"===e&&t){var n=t;"auto"===t&&(n=Fe().get()),o.setTheme(n),E()(o.subComponents,(function(e){return e.setOption("theme",t)}))}})),Fe().on("change",o.onThemeChange),o.setOption("theme",u),o}return(0,l.A)(t,e),(0,i.A)(t,[{key:"destroy",value:function(){var e=this;this.destroySubComponents();var t=this.$container,n=t.attr("class");E()(n.split(/\s+/),(function(n){de()(n,"luna-".concat(e.compName))&&t.rmClass(n)})),t.html(""),this.emit("destroy"),this.removeAllListeners(),Fe().off("change",this.onThemeChange)}},{key:"setOption",value:function(e,t){var n=this,o=this.options,r={};"string"==typeof e?r[e]=t:r=e,E()(r,(function(e,t){var r=o[t];o[t]=e,e!==r&&n.emit("changeOption",t,e,r)}))}},{key:"getOption",value:function(e){return this.options[e]}},{key:"addSubComponent",value:function(e){e.setOption("theme",this.options.theme),this.subComponents.push(e)}},{key:"removeSubComponent",value:function(e){De()(this.subComponents,(function(t){return t===e}))}},{key:"destroySubComponents",value:function(){E()(this.subComponents,(function(e){return e.destroy()})),this.subComponents=[]}},{key:"initOptions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Ie()(e,t),te()(this.options,e)}},{key:"find",value:function(e){return this.$container.find(this.c(e))}},{key:"setTheme",value:function(e){var t=this.c,n=this.$container;this.theme&&n.rmClass(t("theme-".concat(this.theme))),n.addClass(t("theme-".concat(e))),this.theme=e}}])}(ye());function Ge(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ge=function(){return!!e})()}var Pe=function(e){function t(e){var n,o,i,c;return(0,r.A)(this,t),o=this,i=t,c=[e,{compName:"object-viewer"}],i=(0,s.A)(i),(n=(0,a.A)(o,Ge()?Reflect.construct(i,c||[],(0,s.A)(o).constructor):i.apply(o,c))).onItemClick=function(e){var t=n,o=t.map,r=t.c,i=D()(e.curTarget),a=i.data("object-id"),s=i.find("span").eq(0);if(!i.data("first-level")&&(a&&(i.find("ul").html(n.objToHtml(o[a],!1)),i.rmAttr("data-object-id")),e.stopImmediatePropagation(),s.hasClass(r("expanded")))){var c=i.find("ul").eq(0);s.hasClass(r("collapsed"))?(s.rmClass(r("collapsed")),c.show()):(s.addClass(r("collapsed")),c.hide()),n.emit("change")}},n.bindEvent(),n}return(0,l.A)(t,e),(0,i.A)(t,[{key:"set",value:function(e){P()(e)&&(e=JSON.parse(e)),this.data={id:fe()("json"),enumerable:{0:e}},this.map={},He(this.map,this.data),this.render()}},{key:"destroy",value:function(){var e,n,o,r,i;(e=t,n="destroy",o=this,r=3,i=(0,c.A)((0,s.A)(1&r?e.prototype:e),n,o),2&r&&"function"==typeof i?function(e){return i.apply(o,e)}:i)([]),this.$container.off("click","li",this.onItemClick)}},{key:"objToHtml",value:function(e,t){var n=this,o="";return E()(["enumerable","unenumerable","symbol"],(function(r){if(e[r]){var i=C()(e[r]);X()(i);for(var a=0,s=i.length;a3&&void 0!==arguments[3]&&arguments[3],i=this.c,a=(0,o.A)(t);if(null===t)return"
  • ".concat(h(e),'null
  • ');if(f()(t)||v()(t))return"
  • ".concat(h(e),'').concat(se(t),"
  • ");if("RegExp"===t.type&&(a="regexp"),"Number"===t.type&&(a="number"),"Number"===t.type||"RegExp"===t.type)return"
  • ".concat(h(e),'').concat(se(t.value),"
  • ");if("Undefined"===t.type||"Symbol"===t.type)return"
  • ".concat(h(e),'').concat(m()(t.type),"
  • ");if("(...)"===t)return"
  • ".concat(h(e),'').concat(t,"
  • ");if(y()(t)){var s=t.id,c=t.reference,l=function(e){var t=e.type,n=e.value;if(!t)return;if("Function"===t)return ce(n);if("Array"===t&&e.unenumerable)return"Array(".concat(e.unenumerable.length,")");return e.type}(t)||x()(a),u=r?"":''),d="
  • ").concat(u).concat(h(e),'').concat(r?"":l,'
      ");return r&&(d+=this.objToHtml(this.map[s])),d+'
  • ')}function h(e){if(r)return"";if(y()(t)&&t.jsonSplitArr)return"";var o=i("key");return"unenumerable"===n||"symbol"===n?o=i("key-lighter"):"proto"===n&&(o=i("key-special")),'').concat(se(e),": ")}return P()(t)&&t.length>1e4&&(t=L()(t,50,{separator:" ",ellipsis:"…"})),"
  • ".concat(h(e),'"').concat(se(t),'"
  • ')}},{key:"render",value:function(){var e=this.map[this.data.id];this.$container.html(this.objToHtml(e,!0))}},{key:"bindEvent",value:function(){this.$container.on("click","li",this.onItemClick)}}])}(Le);function He(e,t){var n=t.id;if(n||0===n){if(t.type&&de()(t.type,"Array")&&t.enumerable){var o=function(e,t,n){var o=[],r={};E()(e.enumerable,(function(e,t){var n=ve()(t);me()(n)?r[t]=e:o[n]=e})),o.enumerable=r,o.type=n,o.id=t,e.unenumerable&&(o.unenumerable=e.unenumerable);e.symbol&&(o.symbol=e.symbol);e.proto&&(o.proto=e.proto);return o}(t,n,t.type);o.length>100&&(t=function(e){var t=0,n={};E()(U()(e,100),(function(e){var o={},r=t;o.type="["+r,o.enumerable={},E()(e,(function(e){o.enumerable[t]=e,t+=1}));var i=t-1;o.type+=(i-r>0?" … "+i:"")+"]",o.id=fe()("json"),o.jsonSplitArr=!0,n[t]=o}));var o={};o.enumerable=n,o.id=e.id,o.type=e.type,e.unenumerable&&(o.unenumerable=e.unenumerable);e.symbol&&(o.symbol=e.symbol);e.proto&&(o.proto=e.proto);return o}(o))}e[n]=t;var r=[];E()(["enumerable","unenumerable","symbol"],(function(e){if(t[e])for(var n in t[e])r.push(t[e][n])})),t.proto&&r.push(t.proto);for(var i=0,a=r.length;i1&&void 0!==arguments[1]?arguments[1]:{};return(0,r.A)(this,t),o=this,i=t,c=[e,{compName:"object-viewer"}],i=(0,s.A)(i),(n=(0,a.A)(o,Ye()?Reflect.construct(i,c||[],(0,s.A)(o).constructor):i.apply(o,c))).onItemClick=function(e){var t=n,o=t.map,r=t.c;if(!function(e){var t=window.getSelection();if(!t||"Range"!==t.type||""===t.toString())return!1;var n=t.anchorNode,o=t.focusNode;return t.containsNode(e,!0)||n&&e.contains(n)||o&&e.contains(o)}(e.curTarget)){var i=D()(e.curTarget),a=i.data("object-id"),s=i.find("span").eq(0);if(!i.data("first-level")&&(a&&(i.find("ul").html(n.objToHtml(o[a],!1)),i.rmAttr("data-object-id")),e.stopImmediatePropagation(),s.hasClass(r("expanded")))){var c=i.find("ul").eq(0);s.hasClass(r("collapsed"))?(s.rmClass(r("collapsed")),c.show()):(s.addClass(r("collapsed")),c.hide()),n.emit("change")}}},n.initOptions(l,{prototype:!0,unenumerable:!1,accessGetter:!1}),n.bindEvent(),n.options.object&&n.set(n.options.object),n}return(0,l.A)(t,e),(0,i.A)(t,[{key:"set",value:function(e){this.data=[e],this.visitor=new ne,this.map={},this.render()}},{key:"destroy",value:function(){var e,n,o,r,i;(e=t,n="destroy",o=this,r=3,i=(0,c.A)((0,s.A)(1&r?e.prototype:e),n,o),2&r&&"function"==typeof i?function(e){return i.apply(o,e)}:i)([]),this.$container.off("click","li",this.onItemClick)}},{key:"objToHtml",value:function(e,t){var n=this,r=this.visitor,i=e,a=!1,s=r.get(e);s&&s.self&&(i=s.self);var c="",l=["enumerable"],u=C()(e),h=[],f=[],p=[],v={};if(this.options.unenumerable&&!t&&(l.push("unenumerable"),l.push("symbol"),h=F()(Y()(e,{prototype:!1,unenumerable:!0}),u),f=q()(Y()(e,{prototype:!1,symbol:!0}),(function(e){return"symbol"===(0,o.A)(e)}))),w()(e)&&e.length>100){l.unshift("virtual"),a=!0;var g=0,m={};E()(U()(e,100),(function(e){var t=Object.create(null),n=g,o="["+n;E()(e,(function(e){t[g]=e,m[g]=!0,g++}));var r=g-1;v[o+=(r-n>0?" … "+r:"")+"]"]=t})),p=C()(v),u=q()(u,(function(e){return!m[e]}))}if(E()(l,(function(o){var r=[];r="symbol"===o?f:"unenumerable"===o?h:"virtual"===o?p:u,a||X()(r);for(var s=0,l=r.length;s4&&void 0!==arguments[4]&&arguments[4],a=this.visitor,s=this.c,c=(0,o.A)(n),l=I()(n,!1);if("virtual"===r&&(l=e),null===n)return"
  • ".concat(A(e),'null
  • ');if(f()(n)||v()(n))return"
  • ".concat(A(e),'').concat(se(n),"
  • ");if("RegExp"===l&&(c="regexp"),"Number"===l&&(c="number"),"Undefined"===l||"Symbol"===l)return"
  • ".concat(A(e),'').concat(m()(l),"
  • ");if("(...)"===n)return"
  • ".concat(A(e),'').concat(n,"
  • ");if(y()(n)){var u,d=a.get(n);if(d)u=d.id;else{var h={};"proto"===r&&(h.self=t),u=a.set(n,h),this.map[u]=n}var p="Object";p="regexp"===c?'').concat(se(n)):se(function(e,t){if(!t)return;if("Function"===t)return ce(N()(e));if("Array"===t)return"Array(".concat(e.length,")");return t}(n,l)||x()(c));var g=i?"":''),b="
  • ").concat(g).concat(A(e),'').concat(i?"":p,'
      ");return i&&(b+=this.objToHtml(n)),b+'
  • ')}function A(e){if(i)return"";if(y()(n)&&"virtual"===r)return"";var t=s("key");return"unenumerable"===r||"symbol"===r?t=s("key-lighter"):"proto"===r&&(t=s("key-special")),'').concat(se(e),": ")}return P()(n)&&n.length>1e4&&(n=L()(n,50,{separator:" ",ellipsis:"…"})),"
  • ".concat(A(e),'"').concat(se(n),'"
  • ')}},{key:"render",value:function(){this.$container.html(this.objToHtml(this.data,!0))}},{key:"bindEvent",value:function(){var e=this;this.$container.on("click","li",this.onItemClick),this.on("changeOption",(function(t,n){switch(t){case"object":e.set(n);break;case"unenumerable":case"prototype":case"accessGetter":e.render()}}))}}])}(Le);$e.Static=Pe,function(e,t){try{e.exports=t,e.exports.default=t}catch(e){}}(e,$e)},6948:function(e,t){var n=/<[^>]*>/g;t=function(e){return e.replace(n,"")},e.exports=t},6949:function(e,t,n){var o=n(365),r=n(6214);t=function(e,t){if(r(e))return e;if(t&&o(t,e))return[e];var n=[];return e.replace(i,(function(e,t,o,r){n.push(o?r.replace(a,"$1"):t||e)})),n};var i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g;e.exports=t},6962:function(e,t,n){var o=n(1909),r=n(1023),i=!1;function a(e){i&&t.emit(e)}t={start:function(){i=!0},stop:function(){i=!1}},r.mixin(t),o?(window.addEventListener("error",(function(e){if(e.error)a(e.error);else if(e.message){var t=new Error(e.message);t.stack="Error: ".concat(e.message," \n at ").concat(e.filename,":").concat(e.lineno,":").concat(e.colno),a(t)}})),window.addEventListener("unhandledrejection",(function(e){a(e.reason)}))):(process.on("uncaughtException",a),process.on("unhandledRejection",a)),e.exports=t},6969:function(e,t,n){var o=n(5869),r=n(387),i=n(9931),a=n(365),s=n(7604);(t=o((function(e){if(e=e.replace(l,""),e=r(e),a(u,e))return e;for(var t=c.length;t--;){var n=c[t]+i(e);if(a(u,n))return n}return e}))).dash=o((function(e){var n=t(e);return(l.test(n)?"-":"")+s(n)}));var c=["O","ms","Moz","Webkit"],l=/^(O)|(ms)|(Moz)|(Webkit)|(-o-)|(-ms-)|(-moz-)|(-webkit-)/g,u=document.createElement("p").style;e.exports=t},7e3:function(e,t,n){var o=n(2263),r=new(n(3737))("(prefers-color-scheme: dark)");t={get:function(){return r.isMatch()?"dark":"light"}},o.mixin(t),r.on("match",(function(){return t.emit("change","dark")})),r.on("unmatch",(function(){return t.emit("change","light")})),e.exports=t},7005:function(e,t,n){var o=n(2717),r=n(5395);t=o({initialize:function(){this.clear()},clear:function(){this._items=[],this.size=0},push:function(e){return this._items.push(e),++this.size},pop:function(){if(this.size)return this.size--,this._items.pop()},peek:function(){return this._items[this.size-1]},forEach:function(e,t){t=arguments.length>1?t:this;for(var n=this._items,o=this.size-1,r=0;o>=0;o--,r++)e.call(t,n[o],r,this)},toArr:function(){return r(this._items)}}),e.exports=t},7030:function(e,t,n){var o=n(1738),r=n(2517),i=n(2561),a=n(6392);t=function(e,n,a,h){1===arguments.length&&o(e)&&!u.test(e)&&(n=e,e=void 0),e=e||new Date,r(e)||(e=new Date(e));var f=(n=i(t.masks[n]||n||t.masks.default)).slice(0,4);"UTC:"!==f&&"GMT:"!==f||(n=n.slice(4),a=!0,"GMT:"===f&&(h=!0));var p=a?"getUTC":"get",v=e[p+"Date"](),g=e[p+"Day"](),m=e[p+"Month"](),b=e[p+"FullYear"](),y=e[p+"Hours"](),A=e[p+"Minutes"](),w=e[p+"Seconds"](),_=e[p+"Milliseconds"](),x=a?0:e.getTimezoneOffset(),k={d:v,dd:s(v),ddd:t.i18n.dayNames[g],dddd:t.i18n.dayNames[g+7],m:m+1,mm:s(m+1),mmm:t.i18n.monthNames[m],mmmm:t.i18n.monthNames[m+12],yy:i(b).slice(2),yyyy:b,h:y%12||12,hh:s(y%12||12),H:y,HH:s(y),M:A,MM:s(A),s:w,ss:s(w),l:s(_,3),L:s(Math.round(_/10)),t:y<12?"a":"p",tt:y<12?"am":"pm",T:y<12?"A":"P",TT:y<12?"AM":"PM",Z:h?"GMT":a?"UTC":(i(e).match(l)||[""]).pop().replace(d,""),o:(x>0?"-":"+")+s(100*Math.floor(Math.abs(x)/60)+Math.abs(x)%60,4),S:["th","st","nd","rd"][v%10>3?0:(v%100-v%10!=10)*v%10]};return n.replace(c,(function(e){return e in k?k[e]:e.slice(1,e.length-1)}))};var s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return a(i(e),t,"0")},c=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZWN]|"[^"]*"|'[^']*'/g,l=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,u=/\d/,d=/[^-+\dA-Z]/g;t.masks={default:"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:sso",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'",expiresHeaderFormat:"ddd, dd mmm yyyy HH:MM:ss Z"},t.i18n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]},e.exports=t},7119:function(e){e.exports='.luna-dom-highlighter{position:fixed;left:0;top:0;width:100%;height:100%;z-index:100000;pointer-events:none;font-size:13px}.luna-dom-highlighter-fill{position:absolute;top:0;right:0;bottom:0;left:0}.luna-dom-highlighter-platform-linux{font-family:Roboto,Ubuntu,Arial,sans-serif}.luna-dom-highlighter-platform-mac{color:#303942;font-family:\'.SFNSDisplay-Regular\',\'Helvetica Neue\',\'Lucida Grande\',sans-serif}.luna-dom-highlighter-platform-windows{font-family:\'Segoe UI\',Tahoma,sans-serif}.luna-dom-highlighter-px{color:gray}#luna-dom-highlighter-element-title{position:absolute;z-index:10}.luna-dom-highlighter-tooltip-content{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:#fff;padding:5px 8px;border:1px solid #fff;border-radius:3px;box-sizing:border-box;min-width:100px;max-width:min(300px,100% - 4px);z-index:2;background-clip:padding-box;will-change:transform;text-rendering:optimizeLegibility;pointer-events:none;filter:drop-shadow(0 2px 4px rgba(0,0,0,.35))}.luna-dom-highlighter-tooltip-content .luna-dom-highlighter-tooltip-arrow{background:#fff;width:15px;height:8px;position:absolute}.luna-dom-highlighter-element-info-section{margin-top:12px;margin-bottom:6px}.luna-dom-highlighter-section-name{color:#333;font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:.05em;line-height:12px}.luna-dom-highlighter-element-info{display:flex;flex-direction:column}.luna-dom-highlighter-element-info-header{display:flex;align-items:center}.luna-dom-highlighter-element-info-body{display:flex;flex-direction:column;padding-top:2px;margin-top:2px}.luna-dom-highlighter-element-info-row{display:flex;line-height:19px}.luna-dom-highlighter-separator-container{display:flex;align-items:center;flex:auto;margin-left:7px}.luna-dom-highlighter-separator{border-top:1px solid #ddd;width:100%}.luna-dom-highlighter-element-info-name{flex-shrink:0;color:#666}.luna-dom-highlighter-element-info-gap{flex:auto}.luna-dom-highlighter-element-info-value-color{display:flex;color:#303942;margin-left:10px;align-items:baseline}.luna-dom-highlighter-a11y-icon{width:16px;height:16px;background-repeat:no-repeat;display:inline-block}.luna-dom-highlighter-element-info-value-contrast{display:flex;align-items:center;text-align:right;color:#303942;margin-left:10px}.luna-dom-highlighter-element-info-value-contrast .luna-dom-highlighter-a11y-icon{margin-left:8px}.luna-dom-highlighter-element-info-value-icon{display:flex;align-items:center}.luna-dom-highlighter-element-info-value-text{text-align:right;color:#303942;margin-left:10px;align-items:baseline;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.luna-dom-highlighter-color-swatch{display:flex;margin-right:2px;width:10px;height:10px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);line-height:10px}.luna-dom-highlighter-color-swatch-inner{flex:auto;border:1px solid #808002}.luna-dom-highlighter-element-layout-type{margin-right:10px;width:16px;height:16px}.luna-dom-highlighter-element-layout-type.luna-dom-highlighter-grid{background-image:url(\'data:image/svg+xml,\')}.luna-dom-highlighter-element-layout-type.luna-dom-highlighter-flex{background-image:url(\'data:image/svg+xml,\')}.luna-dom-highlighter-element-description{flex:1 1;font-weight:700;word-wrap:break-word;word-break:break-all}.luna-dom-highlighter-dimensions{color:#737373;text-align:right;margin-left:10px}.luna-dom-highlighter-material-node-width{margin-right:2px}.luna-dom-highlighter-material-node-height{margin-left:2px}.luna-dom-highlighter-material-tag-name{color:#881280}.luna-dom-highlighter-material-class-name,.luna-dom-highlighter-material-node-id{color:#1a1aa6}.luna-dom-highlighter-contrast-text{width:16px;height:16px;text-align:center;line-height:16px;margin-right:8px;border:1px solid #000;padding:0 1px}.luna-dom-highlighter-a11y-icon-not-ok{background-image:url(\'data:image/svg+xml,\')}.luna-dom-highlighter-a11y-icon-warning{background-image:url(\'data:image/svg+xml,\')}.luna-dom-highlighter-a11y-icon-ok{background-image:url(\'data:image/svg+xml,\')}@media (forced-colors:active){:root,body{background-color:transparent;forced-color-adjust:none}.luna-dom-highlighter-tooltip-content{border-color:Highlight;background-color:canvas;color:text;forced-color-adjust:none}.luna-dom-highlighter-tooltip-content::after{background-color:Highlight}.luna-dom-highlighter-color-swatch-inner,.luna-dom-highlighter-contrast-text,.luna-dom-highlighter-separator{border-color:Highlight}.luna-dom-highlighter-section-name{color:Highlight}.luna-dom-highlighter-dimensions,.luna-dom-highlighter-element-info-name,.luna-dom-highlighter-element-info-value-color,.luna-dom-highlighter-element-info-value-contrast,.luna-dom-highlighter-element-info-value-icon,.luna-dom-highlighter-element-info-value-text,.luna-dom-highlighter-material-class-name,.luna-dom-highlighter-material-node-id,.luna-dom-highlighter-material-tag-name{color:canvastext}}\n\n/*# sourceMappingURL=luna-dom-highlighter.css.map*/'},7140:function(e,t){t=function(e,t){var n=[];t=t||1;for(var o=0,r=Math.ceil(e.length/t);o0?n.join("="):null;o=decodeURIComponent(o),r=decodeURIComponent(r),i(t[o])?t[o]=r:a(t[o])?t[o].push(r):t[o]=[t[o],r]})),t},stringify:function(e,n){return l(s(e,(function(e,o){return u(e)&&c(e)?"":a(e)?t.stringify(e,o):(n?encodeURIComponent(n):encodeURIComponent(o))+"="+encodeURIComponent(e)})),(function(e){return e.length>0})).join("&")}};var d=/^(\?|#|&)/g;e.exports=t},7308:function(e,t,n){var o=n(9100),r=n(1738),i=n(8971),a=n(3249),s=n(6214),c=n(9760),l=n(769);(t=function(e,t){if(i(e))return n={},d((function(e,t){n[e]=t})),n;var n;if(r(e)&&i(t)||s(e))return function(e){if(!r(e)){var t={};return d((function(n,o){a(e,n)&&(t[n]=o)})),t}var n=h(e);if(n)return n.getAttribute("content")}(e);var l=e;c(l)||((l={})[e]=t),function(e){o(e,(function(e,t){var n=h(t);if(n)return n.setAttribute("content",e);(n=u.createElement("meta")).setAttribute("name",t),n.setAttribute("content",e),u.head.appendChild(n)}))}(l)}).remove=function(e){e=l(e),o(e,(function(e){var t=h(e);t&&u.head.removeChild(t)}))};var u=document;function d(e){var t=u.querySelectorAll("meta");o(t,(function(t){var n=t.getAttribute("name"),o=t.getAttribute("content");n&&o&&e(n,o)}))}function h(e){return u.querySelector('meta[name="'+e+'"]')}e.exports=t},7375:function(e,t){t=function(e,t,n){return Array.prototype.indexOf.call(e,t,n)},e.exports=t},7468:function(e,t,n){var o=n(3145);t=function(e,t){var n=o(t),r=n.length;if(null==e)return!r;e=Object(e);for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:{},n=t.prototype,c=void 0===n||n,l=t.unenumerable,u=void 0!==l&&l,d=t.symbol,h=void 0!==d&&d,f=[];if((u||h)&&a){var p=o;u&&a&&(p=a);do{f=f.concat(p(e)),h&&s&&(f=f.concat(s(e)))}while(c&&(e=r(e))&&e!==Object.prototype);f=i(f)}else if(c)for(var v in e)f.push(v);else f=o(e);return f},e.exports=t},7528:function(e,t,n){"use strict";function o(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}n.d(t,{A:function(){return o}})},7542:function(e,t){t=function(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}},e.exports=t},7571:function(e,t,n){var o=n(2263),r=n(6186),i=window.screen;t={get:function(){if(i){var e=r(i,"orientation.type");if(e)return e.split("-").shift()}return window.innerWidth>window.innerHeight?"landscape":"portrait"}},o.mixin(t),window.addEventListener("orientationchange",(function(){setTimeout((function(){t.emit("change",t.get())}),200)}),!1),e.exports=t},7604:function(e,t,n){var o=n(6833);t=function(e){return o(e).join("-")},e.exports=t},7622:function(e,t,n){var o=n(2263),r=n(2192),i=n(769),a=n(8971),s=n(8420),c=n(1738),l=n(6097);t=o.extend({initialize:function(e,n){this.name=e,this.setLevel(a(n)?t.level.DEBUG:n),this.callSuper(o,"initialize",arguments)},setLevel:function(e){return c(e)?((e=t.level[e.toUpperCase()])&&(this._level=e),this):(l(e)&&(this._level=e),this)},getLevel:function(){return this._level},formatter:function(e,t){return t},trace:function(){return this._log("trace",arguments)},debug:function(){return this._log("debug",arguments)},info:function(){return this._log("info",arguments)},warn:function(){return this._log("warn",arguments)},error:function(){return this._log("error",arguments)},_log:function(e,n){return 0===(n=i(n)).length?this:(this.emit("all",e,s(n)),t.level[e.toUpperCase()]*{vertical-align:top}.luna-console-log-item .luna-console-log-content .luna-console-null,.luna-console-log-item .luna-console-log-content .luna-console-undefined{color:#5e5e5e}.luna-console-log-item .luna-console-log-content .luna-console-number{color:#1c00cf}.luna-console-log-item .luna-console-log-content .luna-console-boolean{color:#0d22aa}.luna-console-log-item .luna-console-log-content .luna-console-regexp,.luna-console-log-item .luna-console-log-content .luna-console-symbol{color:#881391}.luna-console-log-item .luna-console-data-grid,.luna-console-log-item .luna-console-dom-viewer{white-space:initial}.luna-console-log-item.luna-console-error{z-index:50;background:#fff0f0;color:red;border-top:1px solid #ffd6d6;border-bottom:1px solid #ffd6d6}.luna-console-log-item.luna-console-error .luna-console-stack{padding-left:1.2em;white-space:nowrap}.luna-console-log-item.luna-console-error .luna-console-count{background:red}.luna-console-log-item.luna-console-debug{z-index:20}.luna-console-log-item.luna-console-input{border-bottom-color:transparent}.luna-console-log-item.luna-console-warn{z-index:40;color:#5c5c00;background:#fffbe5;border-top:1px solid #fff5c2;border-bottom:1px solid #fff5c2}.luna-console-log-item.luna-console-warn .luna-console-count{background:#e8a400}.luna-console-log-item.luna-console-info{z-index:30}.luna-console-log-item.luna-console-group,.luna-console-log-item.luna-console-groupCollapsed{font-weight:700}.luna-console-preview{display:inline-block}.luna-console-preview .luna-console-preview-container{display:flex;align-items:center}.luna-console-preview .luna-console-json{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-left:12px}.luna-console-preview .luna-console-preview-icon-container{display:block}.luna-console-preview .luna-console-preview-icon-container .luna-console-icon{position:relative;font-size:12px}.luna-console-preview .luna-console-preview-icon-container .luna-console-icon-caret-down{top:2px}.luna-console-preview .luna-console-preview-icon-container .luna-console-icon-caret-right{top:1px}.luna-console-preview .luna-console-preview-content-container{word-break:break-all}.luna-console-preview .luna-console-descriptor,.luna-console-preview .luna-console-object-preview{font-style:italic}.luna-console-preview .luna-console-key{color:#881391}.luna-console-preview .luna-console-number{color:#1c00cf}.luna-console-preview .luna-console-null{color:#5e5e5e}.luna-console-preview .luna-console-string{color:#c41a16}.luna-console-preview .luna-console-boolean{color:#0d22aa}.luna-console-preview .luna-console-special{color:#5e5e5e}.luna-console-theme-dark{color-scheme:dark}.luna-console-theme-dark .luna-console-log-container.luna-console-selected .luna-console-log-item{background:#29323d}.luna-console-theme-dark .luna-console-log-container.luna-console-selected .luna-console-log-item:not(.luna-console-error):not(.luna-console-warn){border-color:#4173b4}.luna-console-theme-dark .luna-console-log-item{color:#a5a5a5;border-bottom-color:#3d3d3d}.luna-console-theme-dark .luna-console-log-item .luna-console-code .luna-console-keyword{color:#e36eec}.luna-console-theme-dark .luna-console-log-item .luna-console-code .luna-console-number{color:#9980ff}.luna-console-theme-dark .luna-console-log-item .luna-console-code .luna-console-operator{color:#7f7f7f}.luna-console-theme-dark .luna-console-log-item .luna-console-code .luna-console-comment{color:#747474}.luna-console-theme-dark .luna-console-log-item .luna-console-code .luna-console-string{color:#f29766}.luna-console-theme-dark .luna-console-log-item.luna-console-error{background:#290000;color:#ff8080;border-top-color:#5c0000;border-bottom-color:#5c0000}.luna-console-theme-dark .luna-console-log-item.luna-console-error .luna-console-count{background:#ff8080}.luna-console-theme-dark .luna-console-log-item.luna-console-warn{color:#ffcb6b;background:#332a00;border-top-color:#650;border-bottom-color:#650}.luna-console-theme-dark .luna-console-log-item .luna-console-count{background:#42597f;color:#949494}.luna-console-theme-dark .luna-console-log-item .luna-console-log-content .luna-console-null,.luna-console-theme-dark .luna-console-log-item .luna-console-log-content .luna-console-undefined{color:#7f7f7f}.luna-console-theme-dark .luna-console-log-item .luna-console-log-content .luna-console-boolean,.luna-console-theme-dark .luna-console-log-item .luna-console-log-content .luna-console-number{color:#9980ff}.luna-console-theme-dark .luna-console-log-item .luna-console-log-content .luna-console-regexp,.luna-console-theme-dark .luna-console-log-item .luna-console-log-content .luna-console-symbol{color:#e36eec}.luna-console-theme-dark .luna-console-icon-container .luna-console-icon-caret-down,.luna-console-theme-dark .luna-console-icon-container .luna-console-icon-caret-right{color:#9aa0a6}.luna-console-theme-dark .luna-console-header{border-bottom-color:#3d3d3d}.luna-console-theme-dark .luna-console-nesting-level{border-right-color:#3d3d3d}.luna-console-theme-dark .luna-console-nesting-level::before{border-bottom-color:#3d3d3d}.luna-console-theme-dark .luna-console-preview .luna-console-key{color:#e36eec}.luna-console-theme-dark .luna-console-preview .luna-console-number{color:#9980ff}.luna-console-theme-dark .luna-console-preview .luna-console-null{color:#7f7f7f}.luna-console-theme-dark .luna-console-preview .luna-console-string{color:#f29766}.luna-console-theme-dark .luna-console-preview .luna-console-boolean{color:#9980ff}.luna-console-theme-dark .luna-console-preview .luna-console-special{color:#7f7f7f}",""]),e.exports=t},8009:function(e,t,n){var o=n(6513);t=function(e,t){e.prototype=o(t.prototype)},e.exports=t},8032:function(e,t,n){var o=n(2989),r=n(9931),i=n(2561),a=n(8971),s=n(3957),c=n(1976);t=function(e,t){return JSON.stringify(e,(n=[],l=[],function(e,t){if(n.length>0){var u=n.indexOf(this);u>-1?(n.splice(u+1),l.splice(u,1/0,e)):(n.push(this),l.push(e));var d=n.indexOf(t);d>-1&&(t=n[0]===t?"[Circular ~]":"[Circular ~."+l.slice(0,d).join(".")+"]")}else n.push(t);return c(t)||s(t)?t="["+r(o(t))+" "+i(t)+"]":a(t)&&(t=null),t}),t);var n,l},e.exports=t},8046:function(e,t,n){var o=n(7731);t=function(){var e=o(16);return e[6]=15&e[6]|64,e[8]=63&e[8]|128,r[e[0]]+r[e[1]]+r[e[2]]+r[e[3]]+"-"+r[e[4]]+r[e[5]]+"-"+r[e[6]]+r[e[7]]+"-"+r[e[8]]+r[e[9]]+"-"+r[e[10]]+r[e[11]]+r[e[12]]+r[e[13]]+r[e[14]]+r[e[15]]};for(var r=[],i=0;i<256;i++)r[i]=(i+256).toString(16).substr(1);e.exports=t},8052:function(e,t,n){"use strict";n.d(t,{A:function(){return K}});var o=n(7528),r=n(3029),i=n(2901),a=n(388),s=n(3954),c=n(5361),l=n(2263),u=n.n(l),d=n(3693),h=n.n(d),f=n(3915),p=n.n(f),v=n(9405),g=n.n(v),m=n(5169),b=n.n(m),y=n(9548),A=n.n(y),w=n(6097),_=n.n(w),x=n(3249),k=n.n(x),C=(n(6030),n(5004)),S=n.n(C);n(9410),n(8609);function E(e){var t="luna-".concat(e,"-");function n(e){return p()(g()(e).split(/\s+/),(function(e){return k()(e,t)?e:e.replace(/[\w-]+/,(function(e){return"".concat(t).concat(e)}))})).join(" ")}return function(e){if(/<[^>]*>/g.test(e))try{var t=A().parse(e);return T(t,(function(e){e.attrs&&e.attrs.class&&(e.attrs.class=n(e.attrs.class))})),A().stringify(t)}catch(t){return n(e)}return n(e)}}function T(e,t){for(var n=0,o=e.length;n2&&void 0!==arguments[2]?arguments[2]:{}).theme,u=void 0===l?"light":l;return(0,r.A)(this,t),o=function(e,t,n){return t=(0,s.A)(t),(0,a.A)(e,H()?Reflect.construct(t,n||[],(0,s.A)(e).constructor):t.apply(e,n))}(this,t),o.subComponents=[],o.theme="",o.onThemeChange=function(e){"auto"===o.options.theme&&o.setTheme(e)},o.compName=c,o.c=E(c),o.options={},o.container=e,o.$container=h()(e),o.$container.addClass(["luna-".concat(c),o.c("platform-".concat((i=S()(),"os x"===i?"mac":i)))]),o.on("changeOption",(function(e,t){if("theme"===e&&t){var n=t;"auto"===t&&(n=L().get()),o.setTheme(n),j()(o.subComponents,(function(e){return e.setOption("theme",t)}))}})),L().on("change",o.onThemeChange),o.setOption("theme",u),o}return(0,c.A)(t,e),(0,i.A)(t,[{key:"destroy",value:function(){var e=this;this.destroySubComponents();var t=this.$container,n=t.attr("class");j()(n.split(/\s+/),(function(n){P()(n,"luna-".concat(e.compName))&&t.rmClass(n)})),t.html(""),this.emit("destroy"),this.removeAllListeners(),L().off("change",this.onThemeChange)}},{key:"setOption",value:function(e,t){var n=this,o=this.options,r={};"string"==typeof e?r[e]=t:r=e,j()(r,(function(e,t){var r=o[t];o[t]=e,e!==r&&n.emit("changeOption",t,e,r)}))}},{key:"getOption",value:function(e){return this.options[e]}},{key:"addSubComponent",value:function(e){e.setOption("theme",this.options.theme),this.subComponents.push(e)}},{key:"removeSubComponent",value:function(e){F()(this.subComponents,(function(t){return t===e}))}},{key:"destroySubComponents",value:function(){j()(this.subComponents,(function(e){return e.destroy()})),this.subComponents=[]}},{key:"initOptions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};D()(e,t),I()(this.options,e)}},{key:"find",value:function(e){return this.$container.find(this.c(e))}},{key:"setTheme",value:function(e){var t=this.c,n=this.$container;this.theme&&n.rmClass(t("theme-".concat(this.theme))),n.addClass(t("theme-".concat(e))),this.theme=e}}])}(u()),q=n(5773),Q=n.n(q),U=n(5902),W=n.n(U);function J(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(J=function(){return!!e})()}e=n.hmd(e);var K=function(e){function t(e){var n,o,i,c,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,r.A)(this,t),o=this,i=t,c=[e,{compName:"tab"},l],i=(0,s.A)(i),(n=(0,a.A)(o,J()?Reflect.construct(i,c||[],(0,s.A)(o).constructor):i.apply(o,c))).initOptions(l,{height:30}),n.initTpl(),n.$tabs=n.find(".tabs"),n.tabs=n.$tabs.get(0),n.$slider=n.find(".slider"),n.bindEvent(),n.updateHeight(),n}return(0,c.A)(t,e),(0,i.A)(t,[{key:"length",get:function(){return this.$tabs.find(this.c(".item")).length}},{key:"insert",value:function(e,t){var n=this.c,o=this.$tabs,r=this.options.height-1,i=o.find(n(".item")),a=i.length,s='
    ').concat(W()(t.title),"").concat(t.closeable?'
    '):"","
    ");e>a-1?o.append(s):i.eq(e).before(s),this.updateSlider()}},{key:"append",value:function(e){this.insert(this.length,e)}},{key:"remove",value:function(e){var t=this.c;if(1!==this.length){var n=this;this.$tabs.find(t(".item")).each((function(o){var r=h()(this);if(r.data("id")===e){if(r.remove(),r.hasClass(t("selected")))if(n.length>0){var i=o===n.length?o-1:o,a=n.$tabs.find(t(".item")).eq(i).data("id");n.select(a)}else n.emit("deselect");r.data("closeable")&&n.emit("close",e)}})),this.updateSlider()}}},{key:"select",value:function(e){var t=this.c,n=this;this.$tabs.find(t(".item")).each((function(){var o=h()(this);o.data("id")===e?(o.addClass(t("selected")),n.updateSlider(),n.scrollToSelected(),n.emit("select",e)):o.rmClass(t("selected"))}))}},{key:"deselect",value:function(){var e=this.c;this.$tabs.find(e(".item")).each((function(){h()(this).rmClass(e("selected"))})),this.emit("deselect"),this.updateSlider()}},{key:"scrollToSelected",value:function(){var e,t=this.$tabs,n=this.tabs,o=this.c,r=t.find(o(".selected")).get(0),i=r.offsetLeft,a=r.offsetWidth,s=n.offsetWidth,c=n.scrollLeft;is+c&&(e=i+a-s),_()(e)&&(n.scrollLeft=e)}},{key:"hideScrollbar",value:function(){var e=this.$tabs;if("none"!==getComputedStyle(this.tabs,"::-webkit-scrollbar").display){var t=function(){if(_()(N))return N;if(!document)return 16;var e=document.createElement("div"),t=document.createElement("div");e.setAttribute("style","display: block; width: 100px; height: 100px; overflow: scroll;"),t.setAttribute("style","height: 200px"),e.appendChild(t);var n=document.body||document.documentElement;return n.appendChild(e),N=e.offsetWidth-e.clientWidth,n.removeChild(e),N}();e.css("height",this.options.height-1+t+"px")}}},{key:"updateSlider",value:function(){var e=this.$slider,t=this.$tabs,n=this.c,o=t.find(n(".selected")).get(0);o?e.css({width:o.offsetWidth,left:o.offsetLeft-t.get(0).scrollLeft}):e.css({width:0})}},{key:"updateHeight",value:function(){var e=this.options.height,t=e-1;this.find(".tabs-container").css("height",e+"px"),this.find(".item").css({height:t,lineHeight:t}),this.hideScrollbar()}},{key:"bindEvent",value:function(){var e=this,t=this.tabs,n=this.c;this.on("changeOption",(function(t){if("height"===t)e.updateHeight()}));var o=this;this.$tabs.on("wheel",(function(e){e.preventDefault(),t.scrollLeft+=e.origEvent.deltaY})).on("click",n(".item"),(function(){var e=h()(this);o.select(e.data("id"))})).on("click",n(".close"),(function(e){e.stopPropagation();var t=h()(this).parent().parent();o.remove(t.data("id"))})).on("scroll",(function(){e.updateSlider()}))}},{key:"initTpl",value:function(){this.$container.html(this.c(Q()(Y||(Y=(0,o.A)(['\n
    \n
    \n
    \n
    \n '])))))}}])}($);(function(e,t){try{e.exports=t,e.exports.default=t}catch(e){}})(e,K)},8091:function(e,t,n){var o=n(282),r=n(9100),i=n(5207);function a(e){return''+e+""}t=function(e,t){t=t||a;var n=o(e);return r(n,(function(n){e=e.replace(new RegExp(i(n),"g"),t)})),e},e.exports=t},8098:function(e,t,n){var o=n(5693),r=n(5793),i=n(3145);t=function(e,t,n){t=o(t,n);for(var a=!r(e)&&i(e),s=(a||e).length,c=0;ct.right||e.bottomt.bottom}t=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.display,o=void 0===n||n,s=t.visibility,c=void 0!==s&&s,l=t.opacity,u=void 0!==l&&l,d=t.size,h=void 0!==d&&d,f=t.viewport,p=void 0!==f&&f,v=t.overflow,g=void 0!==v&&v,m=r(e);if(o){var b=e.tagName;if("BODY"===b||"HTML"===b||"fixed"===m.position){if("none"===m.display)return!0;for(var y=e;y=y.parentElement;){if("none"===r(y).display)return!0}}else if(null===e.offsetParent)return!0}if(c&&"hidden"===m.visibility)return!0;if(u){if("0"===m.opacity)return!0;for(var A=e;A=A.parentElement;){if("0"===r(A).opacity)return!0}}var w=e.getBoundingClientRect();if(h&&(0===w.width||0===w.height))return!0;if(p)return a(w,{top:0,left:0,right:i.documentElement.clientWidth,bottom:i.documentElement.clientHeight});if(g)for(var _=e;_=_.parentElement;){var x=r(_).overflow;if("scroll"===x||"hidden"===x)if(a(w,_.getBoundingClientRect()))return!0}return!1},e.exports=t},8665:function(e,t,n){"use strict";var o,r=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.trigger=function(e,t){this.emit("message",JSON.stringify({method:e,params:t}))},t}(i(n(2263)).default);t.default=new a},8687:function(e,t,n){(t=n(6314)(!1)).push([e.id,'._container .luna-console{background:var(--background)}._container .luna-console-header{color:var(--link-color);border-bottom-color:var(--border)}._container .luna-console-nesting-level{border-right-color:var(--border)}._container .luna-console-nesting-level::before{border-bottom-color:var(--border)}._container .luna-console-log-container.luna-console-selected .luna-console-log-item{background:var(--contrast)}._container .luna-console-log-container.luna-console-selected .luna-console-log-item:not(.luna-console-error):not(.luna-console-warn){border-color:var(--border)}._container .luna-console-log-item{border-bottom-color:var(--border);color:var(--foreground)}._container .luna-console-log-item a{color:var(--link-color)!important}._container .luna-console-log-item .luna-console-icon-container .luna-console-icon{color:var(--foreground)}._container .luna-console-log-item .luna-console-icon-container .luna-console-icon-error{color:#ef3842}._container .luna-console-log-item .luna-console-icon-container .luna-console-icon-warn{color:#e8a400}._container .luna-console-log-item .luna-console-count{color:var(--select-foreground);background:var(--highlight)}._container .luna-console-log-item.luna-console-warn{color:var(--console-warn-foreground);background:var(--console-warn-background);border-color:var(--console-warn-border)}._container .luna-console-log-item.luna-console-error{background:var(--console-error-background);color:var(--console-error-foreground);border-color:var(--console-error-border)}._container .luna-console-log-item.luna-console-error .luna-console-count{background:var(--console-error-foreground)}._container .luna-console-log-item .luna-console-code .luna-console-key{color:var(--var-color)}._container .luna-console-log-item .luna-console-code .luna-console-number{color:var(--number-color)}._container .luna-console-log-item .luna-console-code .luna-console-null{color:var(--operator-color)}._container .luna-console-log-item .luna-console-code .luna-console-string{color:var(--string-color)}._container .luna-console-log-item .luna-console-code .luna-console-boolean{color:var(--keyword-color)}._container .luna-console-log-item .luna-console-code .luna-console-special{color:var(--operator-color)}._container .luna-console-log-item .luna-console-code .luna-console-keyword{color:var(--keyword-color)}._container .luna-console-log-item .luna-console-code .luna-console-operator{color:var(--operator-color)}._container .luna-console-log-item .luna-console-code .luna-console-comment{color:var(--comment-color)}._container .luna-console-log-item .luna-console-log-content .luna-console-null,._container .luna-console-log-item .luna-console-log-content .luna-console-undefined{color:var(--operator-color)}._container .luna-console-log-item .luna-console-log-content .luna-console-number{color:var(--number-color)}._container .luna-console-log-item .luna-console-log-content .luna-console-boolean{color:var(--keyword-color)}._container .luna-console-log-item .luna-console-log-content .luna-console-regexp,._container .luna-console-log-item .luna-console-log-content .luna-console-symbol{color:var(--var-color)}._container .luna-console-preview .luna-console-key{color:var(--var-color)}._container .luna-console-preview .luna-console-number{color:var(--number-color)}._container .luna-console-preview .luna-console-null{color:var(--operator-color)}._container .luna-console-preview .luna-console-string{color:var(--string-color)}._container .luna-console-preview .luna-console-boolean{color:var(--keyword-color)}._container .luna-console-preview .luna-console-special{color:var(--operator-color)}._container .luna-console-preview .luna-console-keyword{color:var(--keyword-color)}._container .luna-console-preview .luna-console-operator{color:var(--operator-color)}._container .luna-console-preview .luna-console-comment{color:var(--comment-color)}._container .luna-object-viewer{color:var(--primary);font-size:12px!important}._container .luna-object-viewer-null{color:var(--operator-color)}._container .luna-object-viewer-regexp,._container .luna-object-viewer-string{color:var(--string-color)}._container .luna-object-viewer-number{color:var(--number-color)}._container .luna-object-viewer-boolean{color:var(--keyword-color)}._container .luna-object-viewer-special{color:var(--operator-color)}._container .luna-object-viewer-key,._container .luna-object-viewer-key-lighter{color:var(--var-color)}._container .luna-object-viewer-expanded:before{border-color:transparent;border-top-color:var(--foreground)}._container .luna-object-viewer-collapsed:before{border-top-color:transparent;border-left-color:var(--foreground)}._container .luna-notification{pointer-events:none!important;padding:10px;z-index:1000}._container .luna-notification-item{z-index:500;color:var(--foreground);background:var(--background);box-shadow:none;padding:5px 10px;border:1px solid var(--border)}._container .luna-notification-upper{margin-bottom:10px}._container .luna-notification-lower{margin-top:10px}._container .luna-data-grid{color:var(--foreground);background:var(--background);border-color:var(--border)}._container .luna-data-grid td,._container .luna-data-grid th{border-color:var(--border)}._container .luna-data-grid th{background:var(--darker-background)}._container .luna-data-grid th.luna-data-grid-sortable:active,._container .luna-data-grid th.luna-data-grid-sortable:hover{color:var(--select-foreground);background:var(--highlight)}._container .luna-data-grid .luna-data-grid-data-container .luna-data-grid-node.luna-data-grid-selectable:hover,._container .luna-data-grid .luna-data-grid-data-container .luna-data-grid-node.luna-data-grid-selected{background:var(--highlight)}._container .luna-data-grid .luna-data-grid-data-container tr:nth-child(even){background:var(--contrast)}._container .luna-data-grid:focus .luna-data-grid-data-container .luna-data-grid-node.luna-data-grid-selected{background:var(--accent)}._container .luna-dom-viewer{color:var(--foreground)}._container .luna-dom-viewer .luna-dom-viewer-html-tag,._container .luna-dom-viewer .luna-dom-viewer-tag-name{color:var(--tag-name-color)}._container .luna-dom-viewer .luna-dom-viewer-attribute-name{color:var(--attribute-name-color)}._container .luna-dom-viewer .luna-dom-viewer-attribute-value{color:var(--string-color)}._container .luna-dom-viewer .luna-dom-viewer-html-comment{color:var(--comment-color)}._container .luna-dom-viewer .luna-dom-viewer-tree-item:hover .luna-dom-viewer-selection{background:var(--contrast)}._container .luna-dom-viewer .luna-dom-viewer-tree-item.luna-dom-viewer-selected .luna-dom-viewer-selection{background:var(--highlight)}._container .luna-dom-viewer .luna-dom-viewer-tree-item.luna-dom-viewer-selected:focus .luna-dom-viewer-selection{background:var(--accent);opacity:.2}._container .luna-dom-viewer .luna-dom-viewer-text-node .luna-dom-viewer-key{color:var(--var-color)}._container .luna-dom-viewer .luna-dom-viewer-text-node .luna-dom-viewer-number{color:var(--number-color)}._container .luna-dom-viewer .luna-dom-viewer-text-node .luna-dom-viewer-null{color:var(--operator-color)}._container .luna-dom-viewer .luna-dom-viewer-text-node .luna-dom-viewer-string{color:var(--string-color)}._container .luna-dom-viewer .luna-dom-viewer-text-node .luna-dom-viewer-boolean{color:var(--keyword-color)}._container .luna-dom-viewer .luna-dom-viewer-text-node .luna-dom-viewer-special{color:var(--operator-color)}._container .luna-dom-viewer .luna-dom-viewer-text-node .luna-dom-viewer-keyword{color:var(--keyword-color)}._container .luna-dom-viewer .luna-dom-viewer-text-node .luna-dom-viewer-operator{color:var(--operator-color)}._container .luna-dom-viewer .luna-dom-viewer-text-node .luna-dom-viewer-comment{color:var(--comment-color)}._container .luna-dom-viewer-children{margin:0;padding-left:15px!important}._container ._inline .luna-modal,._container ._inline .luna-notification{position:absolute}._container .luna-modal{z-index:9999999}._container .luna-modal-body,._container .luna-modal-input{color:var(--foreground);background:var(--background)}._container .luna-modal-body{border-color:var(--border)}._container .luna-modal-input{-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important;user-select:text!important;border-color:var(--border)}._container .luna-modal-button-group .luna-modal-secondary{border-color:var(--border);color:var(--foreground);background:var(--background)}._container .luna-modal-button-group .luna-modal-primary{background:var(--accent)}._container .luna-modal-button-group .luna-modal-button:active::before{background:var(--accent)}._container .luna-tab{position:absolute;left:0;top:0;color:var(--foreground);background:var(--darker-background)}._container .luna-tab-tabs-container{border-color:var(--border)}._container .luna-tab-item.luna-tab-selected,._container .luna-tab-item:hover{background:var(--highlight);color:var(--select-foreground)}._container .luna-tab-slider{background:var(--accent)}._container .luna-text-viewer{color:var(--foreground);border:none;border-bottom:1px solid var(--border);background:var(--background);font-size:12px}._container .luna-text-viewer .luna-text-viewer-line-text{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}._container .luna-text-viewer .luna-text-viewer-line-text *{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}._container .luna-text-viewer .luna-text-viewer-copy,._container .luna-text-viewer .luna-text-viewer-line-number{border-color:var(--border)}._container .luna-text-viewer .luna-text-viewer-copy .luna-text-viewer-icon-check{color:var(--accent)}._container .luna-text-viewer .luna-text-viewer-copy{background-color:var(--background)}._container .luna-setting{color:var(--foreground);background:var(--background)}._container .luna-setting-item.luna-setting-selected,._container .luna-setting-item:hover{background:var(--darker-background)}._container .luna-setting-item.luna-setting-selected:focus{outline:0}._container .luna-setting-item-title{font-size:14px}._container .luna-setting-item-separator{border-color:var(--border)}._container .luna-setting-item-checkbox input{border-color:var(--border)}._container .luna-setting-item-checkbox input:checked{background-color:var(--accent);border-color:var(--accent)}._container .luna-setting-item-select .luna-setting-select select{color:var(--foreground);border-color:var(--border);background:var(--background)}._container .luna-setting-item-select .luna-setting-select:after{border-top-color:var(--foreground)}._container .luna-setting-item-button button{color:var(--accent);background:var(--background);border-color:var(--border)}._container .luna-setting-item-button button:active,._container .luna-setting-item-button button:hover{background:var(--darker-background)}._container .luna-setting-item-button button:active{border:1px solid var(--accent)}._container .luna-setting-item-number .luna-setting-range-container .luna-setting-range-track .luna-setting-range-track-bar{background:var(--border)}._container .luna-setting-item-number .luna-setting-range-container .luna-setting-range-track .luna-setting-range-track-bar .luna-setting-range-track-progress{background:var(--accent)}._container .luna-setting-item-number .luna-setting-range-container input::-webkit-slider-thumb{border-color:var(--border);background:radial-gradient(circle at center,var(--dark) 0,var(--dark) 15%,var(--light) 22%,var(--light) 100%)}._container .luna-box-model{background:var(--background)}._container .luna-box-model-border,._container .luna-box-model-content,._container .luna-box-model-margin,._container .luna-box-model-padding,._container .luna-box-model-position{color:var(--foreground);background:var(--background)}._container{min-width:320px;pointer-events:none;position:fixed;left:0;top:0;width:100%;height:100%;z-index:9999999;color:var(--foreground);font-family:-apple-system,system-ui,BlinkMacSystemFont,".SFNSDisplay-Regular","Helvetica Neue","Lucida Grande","Segoe UI",Tahoma,sans-serif;font-size:14px;direction:ltr}._container._dark{color-scheme:dark}._container *{box-sizing:border-box;pointer-events:all;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:none}._container ul{list-style:none;padding:0;margin:0}._container h1,._container h2,._container h3,._container h4{margin:0}._container h2{font-size:14px}._container h2 [class*=" _icon-"],._container h2 [class^=icon-]{font-weight:400}._container._inline{position:static}._hidden{display:none}._icon-disabled{opacity:.5;pointer-events:none;cursor:default!important}._icon-disabled:active{color:inherit!important}._tag-name-color{color:var(--tag-name-color)}._function-color{color:var(--function-color)}._attribute-name-color{color:var(--attribute-name-color)}._operator-color{color:var(--operator-color)}._string-color{color:var(--string-color)}',""]),e.exports=t},8734:function(e,t,n){var o=n(2717),r=n(1738),i=n(6026),a=n(8),s=n(928),c=n(9848);t=o({initialize:function(e){r(e)&&(e=t.parse(e)),this.model=e.model,this.val=e.val},toRgb:function(){var e=this.val;"hsl"===this.model&&(e=s(e));var t="rgba";return 1===e[3]&&(t="rgb",e=e.slice(0,3)),t+"("+e.join(", ")+")"},toHex:function(){var e=this.val;"hsl"===this.model&&(e=s(e));var t=c.encode(e.slice(0,3));return t[0]===t[1]&&t[2]===t[3]&&t[4]===t[5]&&(t=t[0]+t[2]+t[5]),"#"+t},toHsl:function(){var e=this.val;"rgb"===this.model&&(e=a(e));var t="hsla";return 1===e[3]&&(t="hsl",e=e.slice(0,3)),e[1]=e[1]+"%",e[2]=e[2]+"%",t+"("+e.join(", ")+")"}},{parse:function(e){var t,n,o=[0,0,0,1],r="rgb";if(n=e.match(l))for(n=n[1],t=0;t<3;t++)o[t]=parseInt(n[t]+n[t],16);else if(n=e.match(u))for(n=n[1],t=0;t<3;t++){var a=2*t;o[t]=parseInt(n.slice(a,a+2),16)}else if(n=e.match(d)){for(t=0;t<3;t++)o[t]=parseInt(n[t+1],0);n[4]&&(o[3]=parseFloat(n[4]))}else if(n=e.match(h)){for(t=0;t<3;t++)o[t]=Math.round(2.55*parseFloat(n[t+1]));n[4]&&(o[3]=parseFloat(n[4]))}else(n=e.match(f))&&(r="hsl",o=[(parseFloat(n[1])%360+360)%360,i(parseFloat(n[2]),0,100),i(parseFloat(n[3]),0,100),i(parseFloat(n[4]),0,1)]);return{val:o,model:r}}});var l=/^#([a-fA-F0-9]{3})$/,u=/^#([a-fA-F0-9]{6})$/,d=/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d.]+)\s*)?\)$/,h=/^rgba?\(\s*([+-]?[\d.]+)%\s*,\s*([+-]?[\d.]+)%\s*,\s*([+-]?[\d.]+)%\s*(?:,\s*([+-]?[\d.]+)\s*)?\)$/,f=/^hsla?\(\s*([+-]?\d*[.]?\d+)(?:deg)?\s*,\s*([+-]?[\d.]+)%\s*,\s*([+-]?[\d.]+)%\s*(?:,\s*([+-]?[\d.]+)\s*)?\)$/;e.exports=t},8757:function(e,t,n){"use strict";var o,r=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=i(n(2263)),s=i(n(9100)),c=function(e){function t(){var t=e.call(this)||this;return t.observer=new MutationObserver((function(e){(0,s.default)(e,(function(e){return t.handleMutation(e)}))})),t}return r(t,e),t.prototype.observe=function(e){this.observer.observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0})},t.prototype.disconnect=function(){this.observer.disconnect()},t.prototype.handleMutation=function(e){"attributes"===e.type?this.emit("attributes",e.target,e.attributeName):"childList"===e.type?this.emit("childList",e.target,e.addedNodes,e.removedNodes):"characterData"===e.type&&this.emit("characterData",e.target)},t}(a.default);t.default=new c},8785:function(e,t){t=function(){for(var e=arguments,t=e[0],n=1,o=e.length;n0&&(n+="["+o+"]"),new i(n,e.nodeType===Node.DOCUMENT_NODE)}t=function(e,t){return o(e)?function(e){for(var t=[],n=document.evaluate(e,document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null),o=0;o1&&void 0!==arguments[1]&&arguments[1];if(e.nodeType===Node.DOCUMENT_NODE)return"/";var n=[],o=e;for(;o;){var i=r(o,t);if(!i)break;if(n.push(i),i.optimized)break;o=o.parentNode}return n.reverse(),(n.length&&n[0].optimized?"":"/")+n.join("/")}(e,t)};var i=n(2717)({initialize:function(e,t){this.value=e,this.optimized=t||!1},toString:function(){return this.value}});e.exports=t},8966:function(e,t,n){var o=n(2717),r=n(3249);function i(){return!0}function a(){return!1}function s(e){var n,o=this.events[e.type],r=c.call(this,e,o);e=new t.Event(e);for(var i,a,s=0;(a=r[s++])&&!e.isPropagationStopped();)for(e.curTarget=a.el,i=0;(n=a.handlers[i++])&&!e.isImmediatePropagationStopped();)!1===n.handler.apply(a.el,[e])&&(e.preventDefault(),e.stopPropagation())}function c(e,t){var n,o,i,a,s=e.target,c=[],l=t.delegateCount;if(s.nodeType)for(;s!==this;s=s.parentNode||this){for(o=[],a=0;a=i[a[l]]){c=a[l];break}return+(n/i[c]).toFixed(2)+c};var i={ms:1,s:1e3};i.m=60*i.s,i.h=60*i.m,i.d=24*i.h,i.y=365.25*i.d;var a=["y","d","h","m","s"],s=/^((?:\d+)?\.?\d+) *(s|m|h|d|y)?$/;e.exports=t},9122:function(e,t,n){var o=n(9760),r=n(3957),i=n(1168);t=function(e){return!!o(e)&&(r(e)?s.test(i(e)):c.test(i(e)))};var a=Object.prototype.hasOwnProperty,s=new RegExp("^"+i(a).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),c=/^\[object .+?Constructor\]$/;e.exports=t},9186:function(e,t,n){var o=n(769),r=n(9760),i=n(1738),a=n(9100),s=n(8971),c=n(3612);(t=function(e,t,n){if(e=c(e),s(n)&&i(t))return function(e,t){return e.getAttribute(t)}(e[0],t);var o=t;r(o)||((o={})[t]=n),function(e,t){a(e,(function(e){a(t,(function(t,n){e.setAttribute(n,t)}))}))}(e,o)}).remove=function(e,t){e=c(e),t=o(t),a(e,(function(e){a(t,(function(t){e.removeAttribute(t)}))}))},e.exports=t},9196:function(e,t,n){"use strict";var o,r=this&&this.__extends||(o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},o(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,n=1,o=arguments.length;n=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var c=s(n(7214)),l=n(926),u=n(4725),d=s(n(4095)),h=s(n(5865)),f=s(n(96)),p=s(n(9100)),v=s(n(8734)),g=s(n(9848)),m=s(n(3805)),b=s(n(8105)),y=s(n(387)),A=s(n(3249)),w=s(n(6030)),_=s(n(3019)),x=s(n(1738));n(3270);var k=function(e){function t(t,n){void 0===n&&(n={});var o=e.call(this,t,{compName:"dom-highlighter"},n)||this;return o.overlay=new l.HighlightOverlay(window),o.reset=function(){var e=document.documentElement.clientWidth,t=document.documentElement.clientHeight;o.overlay.reset({viewportSize:{width:e,height:t},deviceScaleFactor:1,pageScaleFactor:1,pageZoomFactor:1,emulationScaleFactor:1,scrollX:window.scrollX,scrollY:window.scrollY})},o.initOptions(n,{showRulers:!1,showExtensionLines:!1,showInfo:!0,showStyles:!0,showAccessibilityInfo:!0,colorFormat:"hex",contentColor:"rgba(111, 168, 220, .66)",paddingColor:"rgba(147, 196, 125, .55)",borderColor:"rgba(255, 229, 153, .66)",marginColor:"rgba(246, 178, 107, .66)",monitorResize:!0}),o.overlay.setContainer(t),o.overlay.setPlatform("mac"),o.redraw=(0,h.default)((function(){o.reset(),o.draw()}),16),o.redraw(),o.bindEvent(),o}return r(t,e),t.prototype.highlight=function(e,t){t&&(0,b.default)(this.options,t),this.target=e,e instanceof HTMLElement&&this.options.monitorResize&&(this.resizeSensor&&this.resizeSensor.destroy(),this.resizeSensor=new d.default(e),this.resizeSensor.addListener(this.redraw)),this.redraw()},t.prototype.hide=function(){this.target=null,this.redraw()},t.prototype.intercept=function(e){this.interceptor=e},t.prototype.destroy=function(){window.removeEventListener("resize",this.redraw),window.removeEventListener("scroll",this.redraw),this.resizeSensor&&this.resizeSensor.destroy(),e.prototype.destroy.call(this)},t.prototype.draw=function(){var e=this.target;e&&(e instanceof Text?this.drawText(e):this.drawElement(e))},t.prototype.drawText=function(e){var t=this.options,n=document.createRange();n.selectNode(e);var o=n.getBoundingClientRect(),r=o.left,i=o.top,a=o.width,s=o.height;n.detach();var c={paths:[{path:this.rectToPath({left:r,top:i,width:a,height:s}),fillColor:E(t.contentColor),name:"content"}],showExtensionLines:t.showExtensionLines,showRulers:t.showRulers};t.showInfo&&(c.elementInfo={tagName:"#text",nodeWidth:a,nodeHeight:s}),this.overlay.drawHighlight(c)},t.prototype.drawElement=function(e){var t={paths:this.getPaths(e),showExtensionLines:this.options.showExtensionLines,showRulers:this.options.showRulers,colorFormat:this.options.colorFormat};if(this.options.showInfo&&(t.elementInfo=this.getElementInfo(e)),this.interceptor){var n=this.interceptor(t);n&&(t=n)}this.overlay.drawHighlight(t)},t.prototype.getPaths=function(e){var t=this.options,n=window.getComputedStyle(e),o=e.getBoundingClientRect(),r=o.left,i=o.top,a=o.width,s=o.height,c=function(e){return(0,u.pxToNum)(n.getPropertyValue(e))},l=c("margin-left"),d=c("margin-right"),h=c("margin-top"),f=c("margin-bottom"),p=c("border-left-width"),v=c("border-right-width"),g=c("border-top-width"),m=c("border-bottom-width"),b=c("padding-left"),y=c("padding-right"),A=c("padding-top"),w=c("padding-bottom");return[{path:this.rectToPath({left:r+p+b,top:i+g+A,width:a-p-b-v-y,height:s-g-A-m-w}),fillColor:E(t.contentColor),name:"content"},{path:this.rectToPath({left:r+p,top:i+g,width:a-p-v,height:s-g-m}),fillColor:E(t.paddingColor),name:"padding"},{path:this.rectToPath({left:r,top:i,width:a,height:s}),fillColor:E(t.borderColor),name:"border"},{path:this.rectToPath({left:r-l,top:i-h,width:a+l+d,height:s+h+f}),fillColor:E(t.marginColor),name:"margin"}]},t.prototype.getElementInfo=function(e){var t=e.getBoundingClientRect(),n=t.width,o=t.height,r=e.getAttribute("class")||"";r=r.split(/\s+/).map((function(e){return"."+e})).join("");var i={tagName:(0,f.default)(e.tagName),className:r,idValue:e.id,nodeWidth:n,nodeHeight:o};return this.options.showStyles&&(i.style=this.getStyles(e)),this.options.showAccessibilityInfo&&(0,b.default)(i,this.getAccessibilityInfo(e)),i},t.prototype.getStyles=function(e){for(var t=window.getComputedStyle(e),n=!1,o=e.childNodes,r=0,i=o.length;r-1)},t.prototype.getAccessibleNameAndRole=function(e){var t=e.getAttribute("labelledby")||e.getAttribute("aria-label"),n=e.getAttribute("role"),o=(0,f.default)(e.tagName);return _.default.forEach((function(t){var r,i;if(!n){var s=t[0],c=t[2];if(s===o){if(c)try{for(var l=a(c),u=l.next();!u.done;u=l.next()){var d=u.value;if(e.getAttribute(d[0])!==d[1])return}}catch(e){r={error:e}}finally{try{u&&!u.done&&(i=l.return)&&i.call(l)}finally{if(r)throw r.error}}n=t[1]}}})),{accessibleName:t||e.getAttribute("title")||"",accessibleRole:n||"generic"}},t.prototype.bindEvent=function(){var e=this;window.addEventListener("resize",this.redraw),window.addEventListener("scroll",this.redraw),this.on("optionChange",(function(){return e.redraw()}))},t.prototype.rectToPath=function(e){var t=e.left,n=e.top,o=e.width,r=e.height,i=[];return i.push("M",t,n),i.push("L",t+o,n),i.push("L",t+o,n+r),i.push("L",t,n+r),i.push("Z"),i},t}(c.default);t.default=k,e.exports=k,e.exports.default=k;var C=/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,S=/^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d*(?:\.\d+)?)\)$/;function E(e){return(0,x.default)(e)?e:e.a?"rgba(".concat(e.r,", ").concat(e.g,", ").concat(e.b,", ").concat(e.a,")"):"rgb(".concat(e.r,", ").concat(e.g,", ").concat(e.b,")")}function T(e,t,n){void 0===n&&(n=!1);var o={};return(0,p.default)(t,(function(t){var r,i=e["text-opacity"===t?"color":t];i&&(r=i,(C.test(r)||S.test(r))&&(i=function(e){var t=v.default.parse(e),n=t.val[3]||1;return t.val=t.val.slice(0,3),t.val.push(Math.round(255*n)),"#"+(0,m.default)(g.default.encode(t.val))}(i),"text-opacity"===t&&(i=i.slice(7),i=g.default.decode(i)[0]/255)),n&&(t=(0,y.default)(t)),o[t]=i)})),o}},9350:function(e,t){t=function(e){return"symbol"==typeof e},e.exports=t},9389:function(e,t,n){var o=n(5902),r=n(3145);t=function(e){return s.test(e)?e.replace(c,l):e};var i=n(5282)(o.map),a="(?:"+r(i).join("|")+")",s=new RegExp(a),c=new RegExp(a,"g");function l(e){return i[e]}e.exports=t},9405:function(e,t,n){var o=n(5333),r=n(9651);t=function(e,t){return null==t&&e.trim?e.trim():o(r(e,t),t)},e.exports=t},9410:function(e,t,n){var o=n(9993);t=function(e,t){t=t||o;var n=new Image;n.onload=function(){t(null,n)},n.onerror=function(e){t(e)},n.src=e},e.exports=t},9464:function(e,t,n){var o=n(5793),r=n(6214),i=n(1738),a=n(5132),s=n(3145);t=function(e){return null==e||(o(e)&&(r(e)||i(e)||a(e))?0===e.length:0===s(e).length)},e.exports=t},9548:function(e,t,n){var o=n(383),r=n(7005),i=n(6214),a=n(9100),s=n(1738),c=n(5154);var l=function(e){return e.replace(/"/g,'"')},u=function(e){return e.replace(/"/g,""")};t={parse:function(e){var t=[],n=new r;return o(e,{start:function(e,t){t=c(t,(function(e){return l(e)})),n.push({tag:e,attrs:t})},end:function(){var e=n.pop();if(n.size){var o=n.peek();i(o.content)||(o.content=[]),o.content.push(e)}else t.push(e)},comment:function(e){var o="\x3c!--".concat(e,"--\x3e"),r=n.peek();r?(r.content||(r.content=[]),r.content.push(o)):t.push(o)},text:function(e){var o=n.peek();o?(o.content||(o.content=[]),o.content.push(e)):t.push(e)}}),t},stringify:function e(t){var n="";return i(t)?a(t,(function(t){return n+=e(t)})):s(t)?n=t:(n+="<".concat(t.tag),a(t.attrs,(function(e,t){return n+=" ".concat(t,'="').concat(u(e),'"')})),n+=">",t.content&&(n+=e(t.content)),n+="")),n}},e.exports=t},9651:function(e,t){t=function(e,t){if(null==t){if(e.trimRight)return e.trimRight();t=" \r\n\t\f\v"}for(var n,o,r=e.length-1,i=t.length,a=!0;a&&r>=0;)for(a=!1,n=-1,o=e.charAt(r);++n=0?e.substring(0,r+1):""},e.exports=t},9756:function(e,t){t=function(e){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t.defComparator,o=0,r=e.length;o0)return!1;return!0},t.defComparator=function(e,t){return et?1:0},e.exports=t},9760:function(e,t){t=function(e){var t=typeof e;return!!e&&("function"===t||"object"===t)},e.exports=t},9848:function(e,t,n){var o=n(6024);t={encode:function(e){for(var t=[],n=0,o=e.length;n>>4).toString(16)),t.push((15&r).toString(16))}return t.join("")},decode:function(e){var t=[],n=e.length;o(n)&&n--;for(var r=0;r0||u)&&(i.children=g(e,o)),i}function g(e,t){var n=m(e.childNodes);return(0,r.default)(n,(function(e){return v(e,{depth:t-1})}))}function m(e){return i.default(e,(function(e){return b(e)}))}function b(e){if(1===e.nodeType){var t=e.getAttribute("class")||"";if((0,c.default)(t,"__chobitsu-hide__")||(0,c.default)(t,"html2canvas-container"))return!1}var n=!(3===e.nodeType&&""===(0,s.default)(e.nodeValue||""));return n&&e.parentNode?b(e.parentNode):n}},9907:function(e,t,n){(t=n(6314)(!1)).push([e.id,"@font-face{font-family:luna-object-viewer-icon;src:url('data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAS8AAsAAAAAB7QAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAGEAAACMISgl+k9TLzIAAAFsAAAAPQAAAFZLxUkWY21hcAAAAawAAADWAAACdBU42qdnbHlmAAAChAAAAC4AAAAwabU7V2hlYWQAAAK0AAAALwAAADZzjr4faGhlYQAAAuQAAAAYAAAAJAFyANlobXR4AAAC/AAAABAAAABAAZAAAGxvY2EAAAMMAAAAEAAAACIAtACobWF4cAAAAxwAAAAfAAAAIAEbAA9uYW1lAAADPAAAASkAAAIWm5e+CnBvc3QAAARoAAAAUwAAAHZW8MNZeJxNjTsOQFAQRc/z/+sV1mABohKV0gZeJRJR2X9cT4RJZu7nFIMBMjoGvHGaF6rdngcNAc/c/O/Nvq2W5E1igdNE2zv1iGh1c5FQPlYXUlJRyxt9+/pUKadQa/AveGEGZQAAAHicY2BkkGScwMDKwMBQx9ADJGWgdAIDJ4MxAwMTAyszA1YQkOaawnCAQfcjE8MJIFcITDIwMIIIAFqDCGkAAAB4nM2STQ4BQRCFv54ZP8MwFhYW4gQcShBsSERi50BWDuFCcwJedddKRGKnOt8k9aanqudVAy0gF3NRQLgTsLhJDVHP6UW94Kp8zEhKwYIlG/YcOXHm0mTPp96aumLLwdUQ1fcIqmJrwpSZL+iqak5JmyE1Ayr1bdGhr/2ZPmp/qPQtuj/uJzqQl+pfDyypesQD6AT/ElV8PjyrMccT9rdLR3PUFBI227VTio1jbm6dodg5VnPvmAsHxzofHfmi+Sbs/pwdWcXFkWdNSNg9arIE2QufuSCyAAB4nGNgZACBlQzTGZgYGMyVxVc2O073AIpAxHsYloHFRc2dPZY2OTIwAACmEQesAAB4nGNgZGBgAOINe2b6x/PbfGXgZjgBFIjifLyvAUEDwUqGZUCSg4EJxAEAUn4LLAB4nGNgZGBgOMHAACdXMjAyoAIBADizAkx4nGNgAIITUEwGAABZUAGReJxjYAACHgYJ3BAAE94BXXicY2BkYGAQYGBmANEMDExAzAWEDAz/wXwGAApcASsAeJxlkD1uwkAUhMdgSAJSghQpKbNVCiKZn5IDQE9Bl8KYtTGyvdZ6QaLLCXKEHCGniHKCHChj82hgLT9/M2/e7soABviFh3p5uG1qvVq4oTpxm/Qg7JOfhTvo40W4S38o3MMbpsJ9POKdO3j+HZ0BSuEW7vEh3Kb/KeyTv4Q7eMK3cJf+j3APK/wJ9/HqDdPIFLEp3FIn+yy0Z3n+rrStUlOoSTA+WwtdaBs6vVHro6oOydS5WMXW5GrOrs4yo0prdjpywda5cjYaxeIHkcmRIoJBgbipDktoJNgjQwh71b3UK6YtKvq1VpggwPgqtWCqaJIhlcaGyTWOrBUOPG1K1zGt+FrO5KS5zGreJCMr/u+6t6MT0Q+wbaZKzDDiE1/kg+YO+T89EV6oAAAAeJxdxjkOgCAUANE/uOOGB+FQBIjaaEJIuL6FsfE1M6Lk9fXPoKioaWjp6BnQjEzMLKwYNtHepZhtuMs1vpvO/ch4HIlIxhK4KVyc7BwiD8nvDlkA') format('woff')}[class*=' luna-object-viewer-icon-'],[class^=luna-object-viewer-icon-]{display:inline-block;font-family:luna-object-viewer-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.luna-object-viewer-icon-caret-down:before{content:'\\f101'}.luna-object-viewer-icon-caret-right:before{content:'\\f102'}.luna-object-viewer{overflow-x:auto;-webkit-overflow-scrolling:touch;overflow-y:hidden;cursor:default;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.2;min-height:100%;color:#333;list-style:none!important}.luna-object-viewer ul{list-style:none!important;padding:0!important;padding-left:12px!important;margin:0!important}.luna-object-viewer li{position:relative;white-space:nowrap;line-height:16px;min-height:16px}.luna-object-viewer>li>.luna-object-viewer-key{display:none}.luna-object-viewer span{position:static!important}.luna-object-viewer li .luna-object-viewer-collapsed~.luna-object-viewer-close:before{color:#999}.luna-object-viewer-array .luna-object-viewer-object .luna-object-viewer-key{display:inline}.luna-object-viewer-null{color:#5e5e5e}.luna-object-viewer-regexp,.luna-object-viewer-string{color:#c41a16}.luna-object-viewer-number{color:#1c00cf}.luna-object-viewer-boolean{color:#0d22aa}.luna-object-viewer-special{color:#5e5e5e}.luna-object-viewer-key,.luna-object-viewer-key-lighter{color:#881391}.luna-object-viewer-key-lighter{opacity:.6}.luna-object-viewer-key-special{color:#5e5e5e}.luna-object-viewer-collapsed .luna-object-viewer-icon,.luna-object-viewer-expanded .luna-object-viewer-icon{position:absolute!important;left:-12px;color:#727272;font-size:12px}.luna-object-viewer-icon-caret-right{top:0}.luna-object-viewer-icon-caret-down{top:1px}.luna-object-viewer-expanded>.luna-object-viewer-icon-caret-down{display:inline}.luna-object-viewer-expanded>.luna-object-viewer-icon-caret-right{display:none}.luna-object-viewer-collapsed>.luna-object-viewer-icon-caret-down{display:none}.luna-object-viewer-collapsed>.luna-object-viewer-icon-caret-right{display:inline}.luna-object-viewer-hidden~ul{display:none}.luna-object-viewer-theme-dark{color:#fff}.luna-object-viewer-theme-dark .luna-object-viewer-null,.luna-object-viewer-theme-dark .luna-object-viewer-special{color:#a1a1a1}.luna-object-viewer-theme-dark .luna-object-viewer-regexp,.luna-object-viewer-theme-dark .luna-object-viewer-string{color:#f28b54}.luna-object-viewer-theme-dark .luna-object-viewer-boolean,.luna-object-viewer-theme-dark .luna-object-viewer-number{color:#9980ff}.luna-object-viewer-theme-dark .luna-object-viewer-key,.luna-object-viewer-theme-dark .luna-object-viewer-key-lighter{color:#5db0d7}",""]),e.exports=t},9931:function(e,t){t=function(e){return e.length<1?e:e[0].toUpperCase()+e.slice(1)},e.exports=t},9993:function(e,t){t=function(){},e.exports=t}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.loaded=!0,n.exports}__webpack_require__.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=function(e,t){for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__(2980);return __webpack_exports__}()})); +//# sourceMappingURL=eruda.js.map \ No newline at end of file diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewHelper.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewHelper.kt index 8139202707cb..5732123a8ea1 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewHelper.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewHelper.kt @@ -128,7 +128,8 @@ internal suspend fun prepareWebView( webView.setBackgroundColor(Color.TRANSPARENT) val prefs = activity.getSharedPreferences("settings", Context.MODE_PRIVATE) - WebView.setWebContentsDebuggingEnabled(prefs.getBoolean("enable_web_debugging", false)) + val enableWebDebugging = prefs.getBoolean("enable_web_debugging", false) + WebView.setWebContentsDebuggingEnabled(enableWebDebugging) webView.settings.apply { javaScriptEnabled = true @@ -172,6 +173,13 @@ internal suspend fun prepareWebView( return webViewAssetLoader.shouldInterceptRequest(url) } + override fun onPageFinished(view: WebView?, url: String?) { + if (enableWebDebugging) { + view?.evaluateJavascript(erudaConsole(activity), null) + view?.evaluateJavascript("eruda.init();", null) + } + } + override fun doUpdateVisitedHistory(view: WebView?, url: String?, isReload: Boolean) { webUIState.webCanGoBack = view?.canGoBack() ?: false if (webUIState.isInsetsEnabled) webUIState.webView?.evaluateJavascript(webUIState.currentInsets.js, null) @@ -238,3 +246,7 @@ internal suspend fun prepareWebView( } } } + +private fun erudaConsole(context: Context): String { + return context.assets.open("eruda.min.js").bufferedReader().use { it.readText() } +} From 000fb70acd47c315c9110eb478bf5b3e00fbfd6a Mon Sep 17 00:00:00 2001 From: KOWX712 Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 26/35] manager: optmize webui --- .../main/java/me/weishu/kernelsu/ui/webui/WebUIState.kt | 1 + .../java/me/weishu/kernelsu/ui/webui/WebViewHelper.kt | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebUIState.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebUIState.kt index 9dc866cabf20..81deb2e04c64 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebUIState.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebUIState.kt @@ -33,6 +33,7 @@ class WebUIState { var uiEvent by mutableStateOf(WebUIEvent.Loading) var isUrlLoaded = false + @Volatile var currentInsets: Insets = Insets(0, 0, 0, 0) var isInsetsEnabled by mutableStateOf(false) var webCanGoBack by mutableStateOf(false) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewHelper.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewHelper.kt index 5732123a8ea1..420f301196a6 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewHelper.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/webui/WebViewHelper.kt @@ -25,6 +25,9 @@ import me.weishu.kernelsu.ui.util.createRootShell import me.weishu.kernelsu.ui.viewmodel.SuperUserViewModel import java.io.File +private const val WEB_DOMAIN = "mui.kernelsu.org" +private const val KSU_SCHEME = "ksu" +private const val ICON_HOST = "icon" private const val DOWNLOAD_JS = """ (function() { if (window.ksu_download_enabled) return; @@ -139,7 +142,7 @@ internal suspend fun prepareWebView( val webRoot = File("${webUIState.modDir}/webroot") val webViewAssetLoader = WebViewAssetLoader.Builder() - .setDomain("mui.kernelsu.org") + .setDomain(WEB_DOMAIN) .addPathHandler( "/", SuFilePathHandler( @@ -155,9 +158,9 @@ internal suspend fun prepareWebView( webView.webViewClient = object : WebViewClient() { override fun shouldInterceptRequest(view: WebView, request: WebResourceRequest): WebResourceResponse? { val url = request.url - if (url.scheme.equals("ksu", ignoreCase = true) && url.host.equals("icon", ignoreCase = true)) { + if (url.scheme.equals(KSU_SCHEME, ignoreCase = true) && url.host.equals(ICON_HOST, ignoreCase = true)) { val packageName = url.path?.substring(1) - if (!packageName.isNullOrEmpty()) { + if (!packageName.isNullOrEmpty() && packageName.matches(Regex("[a-zA-Z0-9._]+"))) { val icon = AppIconUtil.loadAppIconSync(activity, packageName, 512) if (icon != null) { val stream = java.io.ByteArrayOutputStream() From 333e38fecc2b5e68405383d8d20737bd44271e33 Mon Sep 17 00:00:00 2001 From: KOWX712 Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 27/35] manager: add avc spoof toggle --- manager/app/src/main/cpp/jni.cc | 11 ++++++++++ manager/app/src/main/cpp/ksu.cc | 19 ++++++++++++++++ manager/app/src/main/cpp/ksu.h | 5 +++++ .../main/java/me/weishu/kernelsu/Natives.kt | 9 ++++++++ .../data/repository/SettingsRepository.kt | 4 ++++ .../data/repository/SettingsRepositoryImpl.kt | 6 +++++ .../ui/screen/settings/SettingsMaterial.kt | 16 ++++++++++++++ .../ui/screen/settings/SettingsMiuix.kt | 22 +++++++++++++++++++ .../ui/screen/settings/SettingsScreen.kt | 1 + .../ui/screen/settings/SettingsUiState.kt | 5 +++++ .../ui/viewmodel/SettingsViewModel.kt | 13 +++++++++++ .../src/main/res/values-zh-rCN/strings.xml | 2 ++ manager/app/src/main/res/values/strings.xml | 2 ++ 13 files changed, 115 insertions(+) diff --git a/manager/app/src/main/cpp/jni.cc b/manager/app/src/main/cpp/jni.cc index ccd93408f66e..30134cc35e13 100644 --- a/manager/app/src/main/cpp/jni.cc +++ b/manager/app/src/main/cpp/jni.cc @@ -330,6 +330,17 @@ Java_me_weishu_kernelsu_Natives_setKernelUmountEnabled(JNIEnv *env, jobject thiz return set_kernel_umount_enabled(enabled); } +extern "C" +JNIEXPORT jboolean JNICALL +Java_me_weishu_kernelsu_Natives_isAvcSpoofEnabled(JNIEnv *env, jobject thiz) { + return is_avc_spoof_enabled(); +} +extern "C" +JNIEXPORT jboolean JNICALL +Java_me_weishu_kernelsu_Natives_setAvcSpoofEnabled(JNIEnv *env, jobject thiz, jboolean enabled) { + return set_avc_spoof_enabled(enabled); +} + extern "C" JNIEXPORT jstring JNICALL Java_me_weishu_kernelsu_Natives_getUserName(JNIEnv *env, jobject thiz, jint uid) { diff --git a/manager/app/src/main/cpp/ksu.cc b/manager/app/src/main/cpp/ksu.cc index 07af7951cc10..03195bf669e9 100644 --- a/manager/app/src/main/cpp/ksu.cc +++ b/manager/app/src/main/cpp/ksu.cc @@ -169,6 +169,25 @@ bool is_su_enabled() { return cmd.value != 0; } +bool set_avc_spoof_enabled(bool enabled) { + struct ksu_set_feature_cmd cmd = {}; + cmd.feature_id = KSU_FEATURE_AVC_SPOOF; + cmd.value = enabled ? 1 : 0; + return ksuctl(KSU_IOCTL_SET_FEATURE, &cmd) == 0; +} + +bool is_avc_spoof_enabled() { + struct ksu_get_feature_cmd cmd = {}; + cmd.feature_id = KSU_FEATURE_AVC_SPOOF; + if (ksuctl(KSU_IOCTL_GET_FEATURE, &cmd) != 0) { + return false; + } + if (!cmd.supported) { + return false; + } + return cmd.value != 0; +} + static inline bool get_feature(uint32_t feature_id, uint64_t *out_value, bool *out_supported) { struct ksu_get_feature_cmd cmd = {}; cmd.feature_id = feature_id; diff --git a/manager/app/src/main/cpp/ksu.h b/manager/app/src/main/cpp/ksu.h index 09892762c5da..14ad4af18b54 100644 --- a/manager/app/src/main/cpp/ksu.h +++ b/manager/app/src/main/cpp/ksu.h @@ -42,6 +42,11 @@ bool set_kernel_umount_enabled(bool enabled); bool is_kernel_umount_enabled(); +// Avc spoof +bool set_avc_spoof_enabled(bool enabled); + +bool is_avc_spoof_enabled(); + bool get_allow_list(struct ksu_new_get_allow_list_cmd *); inline std::pair legacy_get_info() { diff --git a/manager/app/src/main/java/me/weishu/kernelsu/Natives.kt b/manager/app/src/main/java/me/weishu/kernelsu/Natives.kt index 414d734aaf1f..153948fe9065 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/Natives.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/Natives.kt @@ -78,6 +78,15 @@ object Natives { external fun isKernelUmountEnabled(): Boolean external fun setKernelUmountEnabled(enabled: Boolean): Boolean + /** + * Avc spoof can be enabled/disabled. + * 0: disabled + * 1: enabled + * negative : error + */ + external fun isAvcSpoofEnabled(): Boolean + external fun setAvcSpoofEnabled(enabled: Boolean): Boolean + /** * Get the user name for the uid. */ diff --git a/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepository.kt b/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepository.kt index 6bbda4e5326e..b6b534706bb2 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepository.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepository.kt @@ -37,6 +37,10 @@ interface SettingsRepository { suspend fun getAdbRootPersistValue(): Long? fun setAdbRootEnabled(enabled: Boolean): Boolean + suspend fun getAvcSpoofStatus(): String + fun isAvcSpoofEnabled(): Boolean + fun setAvcSpoofEnabled(enabled: Boolean): Boolean + fun isDefaultUmountModules(): Boolean fun setDefaultUmountModules(enabled: Boolean): Boolean diff --git a/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepositoryImpl.kt b/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepositoryImpl.kt index 25d5b30c43c3..a98967755291 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepositoryImpl.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepositoryImpl.kt @@ -135,6 +135,12 @@ class SettingsRepositoryImpl : SettingsRepository { false } + override suspend fun getAvcSpoofStatus(): String = getFeatureStatus("avc_spoof") + + override fun isAvcSpoofEnabled(): Boolean = Natives.isAvcSpoofEnabled() + + override fun setAvcSpoofEnabled(enabled: Boolean): Boolean = Natives.setAvcSpoofEnabled(enabled) + override fun isDefaultUmountModules(): Boolean = Natives.isDefaultUmountModules() override fun setDefaultUmountModules(enabled: Boolean): Boolean = Natives.setDefaultUmountModules(enabled) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMaterial.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMaterial.kt index a21527060cdd..655c88123fa2 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMaterial.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMaterial.kt @@ -18,6 +18,7 @@ import androidx.compose.material.icons.filled.BugReport import androidx.compose.material.icons.filled.ContactPage import androidx.compose.material.icons.filled.Delete import androidx.compose.material.icons.filled.DeveloperMode +import androidx.compose.material.icons.filled.EditNote import androidx.compose.material.icons.filled.ElectricalServices import androidx.compose.material.icons.filled.Fence import androidx.compose.material.icons.filled.FolderDelete @@ -241,6 +242,21 @@ fun SettingPagerMaterial( onCheckedChange = actions.onSetAdbRootEnabled ) }, + { + val avcSpoofSummary = when (uiState.avcSpoofStatus) { + "unsupported" -> stringResource(id = R.string.feature_status_unsupported_summary) + "managed" -> stringResource(id = R.string.feature_status_managed_summary) + else -> stringResource(id = R.string.settings_avc_spoof_summary) + } + SegmentedSwitchItem( + icon = Icons.Filled.EditNote, + title = stringResource(id = R.string.settings_avc_spoof), + summary = avcSpoofSummary, + enabled = uiState.avcSpoofStatus == "supported", + checked = uiState.isAvcSpoofEnabled, + onCheckedChange = actions.onSetAvcSpoofEnabled + ) + }, ) ) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMiuix.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMiuix.kt index 0875199212fd..b9cc02bd2322 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMiuix.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMiuix.kt @@ -21,6 +21,7 @@ import androidx.compose.material.icons.rounded.ContactPage import androidx.compose.material.icons.rounded.Dashboard import androidx.compose.material.icons.rounded.Delete import androidx.compose.material.icons.rounded.DeveloperMode +import androidx.compose.material.icons.rounded.EditNote import androidx.compose.material.icons.rounded.ElectricalServices import androidx.compose.material.icons.rounded.Fence import androidx.compose.material.icons.rounded.FolderDelete @@ -295,6 +296,27 @@ fun SettingPagerMiuix( checked = uiState.isAdbRootEnabled, onCheckedChange = actions.onSetAdbRootEnabled ) + + val avcSpoofSummary = when (uiState.avcSpoofStatus) { + "unsupported" -> stringResource(id = R.string.feature_status_unsupported_summary) + "managed" -> stringResource(id = R.string.feature_status_managed_summary) + else -> stringResource(id = R.string.settings_avc_spoof_summary) + } + SwitchPreference( + title = stringResource(id = R.string.settings_avc_spoof), + summary = avcSpoofSummary, + startAction = { + Icon( + Icons.Rounded.EditNote, + modifier = Modifier.padding(end = 6.dp), + contentDescription = stringResource(id = R.string.settings_avc_spoof), + tint = colorScheme.onBackground + ) + }, + enabled = uiState.avcSpoofStatus == "supported", + checked = uiState.isAvcSpoofEnabled, + onCheckedChange = actions.onSetAvcSpoofEnabled + ) } Card( diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsScreen.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsScreen.kt index 38d9a866c870..3c740d4ba8bc 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsScreen.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsScreen.kt @@ -37,6 +37,7 @@ fun SettingPager( onSetKernelUmountEnabled = viewModel::setKernelUmountEnabled, onSetSulogEnabled = viewModel::setSulogEnabled, onSetAdbRootEnabled = viewModel::setAdbRootEnabled, + onSetAvcSpoofEnabled = viewModel::setAvcSpoofEnabled, onSetDefaultUmountModules = viewModel::setDefaultUmountModules, onSetEnableWebDebugging = viewModel::setEnableWebDebugging, onSetAutoJailbreak = viewModel::setAutoJailbreak, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt index 10d433ec2f9c..abd5b2cee19c 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt @@ -36,6 +36,10 @@ data class SettingsUiState( val sulogStatus: String = "", val isSulogEnabled: Boolean = false, + // Avc spoof + val avcSpoofStatus: String = "", + val isAvcSpoofEnabled: Boolean = true, + // Umount Modules val isDefaultUmountModules: Boolean = false, @@ -61,6 +65,7 @@ data class SettingsScreenActions( val onSetKernelUmountEnabled: (Boolean) -> Unit, val onSetSulogEnabled: (Boolean) -> Unit, val onSetAdbRootEnabled: (Boolean) -> Unit, + val onSetAvcSpoofEnabled: (Boolean) -> Unit, val onSetDefaultUmountModules: (Boolean) -> Unit, val onSetEnableWebDebugging: (Boolean) -> Unit, val onSetAutoJailbreak: (Boolean) -> Unit, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SettingsViewModel.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SettingsViewModel.kt index f2ea1b2f25c9..d093a9d06b46 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SettingsViewModel.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SettingsViewModel.kt @@ -56,6 +56,8 @@ class SettingsViewModel( val isSulogEnabled = repo.getSulogPersistValue() == 1L val adbRootStatus = repo.getAdbRootStatus() val isAdbRootEnabled = repo.getAdbRootPersistValue() == 1L + val avcSpoofStatus = repo.getAvcSpoofStatus() + val isAvcSpoofEnabled = repo.isAvcSpoofEnabled() val isDefaultUmountModules = repo.isDefaultUmountModules() val uiMode = repo.uiMode val autoJailbreak = repo.autoJailbreak @@ -87,6 +89,8 @@ class SettingsViewModel( isKernelUmountEnabled = isKernelUmountEnabled, sulogStatus = sulogStatus, isSulogEnabled = isSulogEnabled, + avcSpoofStatus = avcSpoofStatus, + isAvcSpoofEnabled = isAvcSpoofEnabled, isDefaultUmountModules = isDefaultUmountModules, isLkmMode = isLkmMode, autoJailbreak = autoJailbreak, @@ -252,6 +256,15 @@ class SettingsViewModel( } } + fun setAvcSpoofEnabled(enabled: Boolean) { + viewModelScope.launch(Dispatchers.IO) { + if (repo.setAvcSpoofEnabled(enabled)) { + repo.execKsudFeatureSave() + _uiState.update { it.copy(isAvcSpoofEnabled = enabled) } + } + } + } + fun setAutoJailbreak(enabled: Boolean) { repo.autoJailbreak = enabled _uiState.update { it.copy(autoJailbreak = enabled) } diff --git a/manager/app/src/main/res/values-zh-rCN/strings.xml b/manager/app/src/main/res/values-zh-rCN/strings.xml index b36f0a74cffd..7afb7c31c459 100644 --- a/manager/app/src/main/res/values-zh-rCN/strings.xml +++ b/manager/app/src/main/res/values-zh-rCN/strings.xml @@ -161,6 +161,8 @@ 允许通过 /system/bin/su 获取 Root 权限 卸载模块(内核级) 在内核给需要的应用卸载模块。 + avc 日志伪装 + 修复日志中 avc denial 导致的 selinux 上下文泄漏 将安装以下模块:%1$s 确认 处理中… diff --git a/manager/app/src/main/res/values/strings.xml b/manager/app/src/main/res/values/strings.xml index de4cd27f3239..665258fb41ed 100644 --- a/manager/app/src/main/res/values/strings.xml +++ b/manager/app/src/main/res/values/strings.xml @@ -182,6 +182,8 @@ Unmount modules from kernel in App Profile. SU Log Record root-related events into KernelSU sulog files. + Avc log spoofing + Fix selinux context leak caused by avc denial in audit log. Kernel does not support this feature This feature is managed by a module Enable (Default) From fadb0aa0d528fa121585b2c21627a4c8e1931b53 Mon Sep 17 00:00:00 2001 From: KOWX712 Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 28/35] manager: new app icon MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks to ZG089 for the design Co-Authored-By: 々𝗭𝗚𝗫 丨「#ɴᴇᴠᴇʀɢɪᴠᴇᴜᴘ」 <159061718+zg089@users.noreply.github.com> --- manager/app/src/main/AndroidManifest.xml | 27 ++- .../data/repository/SettingsRepository.kt | 1 + .../data/repository/SettingsRepositoryImpl.kt | 4 + .../kernelsu/ui/screen/about/AboutMaterial.kt | 3 +- .../kernelsu/ui/screen/about/AboutMiuix.kt | 2 +- .../kernelsu/ui/screen/about/AboutScreen.kt | 4 +- .../kernelsu/ui/screen/about/AboutUiState.kt | 1 + .../screen/colorpalette/ColorPaletteScreen.kt | 1 + .../ColorPaletteScreenMaterial.kt | 61 +++++- .../colorpalette/ColorPaletteScreenMiuix.kt | 42 ++++ .../colorpalette/ColorPaletteUiState.kt | 1 + .../kernelsu/ui/screen/home/HomeMaterial.kt | 6 +- .../kernelsu/ui/screen/home/HomeMiuix.kt | 5 +- .../kernelsu/ui/screen/home/HomeUiState.kt | 1 + .../ui/screen/module/ModuleMaterial.kt | 4 +- .../kernelsu/ui/screen/module/ModuleMiuix.kt | 4 +- .../ui/screen/settings/SettingsUiState.kt | 1 + .../java/me/weishu/kernelsu/ui/theme/Theme.kt | 32 +-- .../me/weishu/kernelsu/ui/util/AppInfo.kt | 39 ++++ .../kernelsu/ui/util/module/Shortcut.kt | 35 +++- .../kernelsu/ui/viewmodel/HomeViewModel.kt | 184 ++++++++++-------- .../ui/viewmodel/MainActivityViewModel.kt | 1 + .../ui/viewmodel/SettingsViewModel.kt | 7 + .../main/res/drawable/ic_launcher_kowsu.xml | 41 ++++ .../res/mipmap-anydpi/ic_launcher_kowsu.xml | 6 + ..._launcher.xml => ic_launcher_official.xml} | 0 manager/app/src/main/res/values/strings.xml | 2 + 27 files changed, 406 insertions(+), 109 deletions(-) create mode 100644 manager/app/src/main/java/me/weishu/kernelsu/ui/util/AppInfo.kt create mode 100644 manager/app/src/main/res/drawable/ic_launcher_kowsu.xml create mode 100644 manager/app/src/main/res/mipmap-anydpi/ic_launcher_kowsu.xml rename manager/app/src/main/res/mipmap-anydpi/{ic_launcher.xml => ic_launcher_official.xml} (100%) diff --git a/manager/app/src/main/AndroidManifest.xml b/manager/app/src/main/AndroidManifest.xml index 2ee50e8bc95c..034a6e3bcc3e 100644 --- a/manager/app/src/main/AndroidManifest.xml +++ b/manager/app/src/main/AndroidManifest.xml @@ -29,8 +29,8 @@ android:directBootAware="true" android:fullBackupContent="@xml/backup_rules" android:hasFragileUserData="true" - android:icon="@mipmap/ic_launcher" - android:label="@string/app_name" + android:icon="@mipmap/ic_launcher_kowsu" + android:label="@string/app_name_kowsu" android:networkSecurityConfig="@xml/network_security_config" android:supportsRtl="true" android:theme="@style/Theme.KernelSU" @@ -56,6 +56,29 @@ + + + + + + + + + + + + + + + , ) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreen.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreen.kt index 1e37473c7401..cccfe41465d4 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreen.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreen.kt @@ -47,6 +47,7 @@ fun ColorPaletteScreen() { onSetColorMode = viewModel::setColorMode, onSetColorStyle = viewModel::setColorStyle, onSetColorSpec = viewModel::setColorSpec, + onSetEnableOfficialLauncher = viewModel::setEnableOfficialLauncher, onSetEnableBlur = viewModel::setEnableBlur, onSetEnableFloatingBottomBar = viewModel::setEnableFloatingBottomBar, onSetEnableFloatingBottomBarBlur = viewModel::setEnableFloatingBottomBarBlur, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMaterial.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMaterial.kt index 34fa44e8860c..905e85dd0ece 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMaterial.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMaterial.kt @@ -1,6 +1,8 @@ package me.weishu.kernelsu.ui.screen.colorpalette import android.annotation.SuppressLint +import android.content.ComponentName +import android.content.pm.PackageManager import android.os.Build import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.core.animateFloatAsState @@ -30,9 +32,11 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.navigationBars import androidx.compose.foundation.layout.only import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.requiredSize import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.foundation.lazy.LazyRow import androidx.compose.foundation.lazy.items import androidx.compose.foundation.rememberScrollState @@ -85,6 +89,7 @@ import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalHapticFeedback +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.Role import androidx.compose.ui.semantics.role @@ -94,6 +99,7 @@ import com.materialkolor.PaletteStyle import com.materialkolor.dynamiccolor.ColorSpec import com.materialkolor.rememberDynamicColorScheme import me.weishu.kernelsu.R +import me.weishu.kernelsu.ui.MainActivity import me.weishu.kernelsu.ui.component.material.SegmentedColumn import me.weishu.kernelsu.ui.component.material.SegmentedDropdownItem import me.weishu.kernelsu.ui.component.material.SegmentedSwitchItem @@ -114,6 +120,7 @@ fun ColorPaletteScreenMaterial( val colorStyle = state.currentPaletteStyle val colorSpec = state.currentColorSpec val haptic = LocalHapticFeedback.current + val context = LocalContext.current LaunchedEffect(Unit) { scrollBehavior.state.heightOffset = scrollBehavior.state.heightOffsetLimit @@ -154,6 +161,7 @@ fun ColorPaletteScreenMaterial( isDark = isDark, paletteStyle = colorStyle, colorSpec = colorSpec, + officialIcon = uiState.enableOfficialLauncher, ) Spacer(modifier = Modifier.height(8.dp)) @@ -241,6 +249,54 @@ fun ColorPaletteScreenMaterial( } } + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(ButtonGroupDefaults.ConnectedSpaceBetween) + ) { + val launcherOptions = listOf(false, true) + launcherOptions.forEachIndexed { index, isOfficial -> + ToggleButton( + checked = uiState.enableOfficialLauncher == isOfficial, + onCheckedChange = { enabled -> + if (enabled) { + actions.onSetEnableOfficialLauncher(isOfficial) + val pm = context.packageManager + val mainComponent = ComponentName(context, MainActivity::class.java) + val aliasComponent = ComponentName(context, "me.weishu.kernelsu.MainActivityOfficial") + val (enableComp, disableComp) = if (isOfficial) aliasComponent to mainComponent else mainComponent to aliasComponent + + haptic.performHapticFeedback(HapticFeedbackType.VirtualKey) + pm.setComponentEnabledSetting(enableComp, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP) + pm.setComponentEnabledSetting(disableComp, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP) + } + }, + modifier = Modifier + .weight(1f) + .semantics { role = Role.RadioButton }, + shapes = when (index) { + 0 -> ButtonGroupDefaults.connectedLeadingButtonShapes() + 1 -> ButtonGroupDefaults.connectedTrailingButtonShapes() + else -> ButtonGroupDefaults.connectedMiddleButtonShapes() + }, + ) { + Row( + horizontalArrangement = Arrangement.spacedBy(4.dp), + verticalAlignment = Alignment.CenterVertically + ) { + Icon( + painter = painterResource(id = if (isOfficial) R.drawable.ic_launcher_monochrome else R.drawable.ic_launcher_kowsu), + contentDescription = null, + modifier = Modifier + .size(24.dp) + .wrapContentSize(unbounded = true) + .requiredSize(48.dp) + ) + Text(if (isOfficial) stringResource(R.string.app_name) else stringResource(R.string.app_name_kowsu)) + } + } + } + } + SegmentedColumn( modifier = Modifier.padding(top = 4.dp), content = listOf( @@ -350,6 +406,7 @@ private fun ThemePreviewCard( isDark: Boolean, paletteStyle: PaletteStyle = PaletteStyle.TonalSpot, colorSpec: ColorSpec.SpecVersion = ColorSpec.SpecVersion.SPEC_2021, + officialIcon: Boolean = false, ) { val context = LocalContext.current val configuration = LocalConfiguration.current @@ -407,11 +464,11 @@ private fun ThemePreviewCard( Row( modifier = Modifier .fillMaxSize() - .padding(start = 12.dp, top = 16.dp, bottom = 8.dp), + .padding(start = 12.dp, top = 16.dp, end = 12.dp, bottom = 8.dp), verticalAlignment = Alignment.CenterVertically ) { Text( - text = stringResource(id = R.string.app_name), + text = if (officialIcon) stringResource(R.string.app_name) else stringResource(R.string.app_name_kowsu), style = MaterialTheme.typography.bodyMedium, color = colorScheme.onSurface ) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMiuix.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMiuix.kt index d0513523ff1e..d77c61e3f2ef 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMiuix.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMiuix.kt @@ -1,6 +1,8 @@ package me.weishu.kernelsu.ui.screen.colorpalette import android.annotation.SuppressLint +import android.content.ComponentName +import android.content.pm.PackageManager import android.os.Build import androidx.compose.animation.AnimatedVisibility import androidx.compose.foundation.background @@ -24,8 +26,10 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.navigationBars import androidx.compose.foundation.layout.only import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.requiredSize import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.systemBars +import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons @@ -53,7 +57,9 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalConfiguration +import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalLayoutDirection +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.dp @@ -62,6 +68,7 @@ import com.materialkolor.PaletteStyle import com.materialkolor.dynamiccolor.ColorSpec import com.materialkolor.rememberDynamicColorScheme import me.weishu.kernelsu.R +import me.weishu.kernelsu.ui.MainActivity import me.weishu.kernelsu.ui.component.miuix.ScaleDialog import me.weishu.kernelsu.ui.theme.LocalEnableBlur import me.weishu.kernelsu.ui.theme.keyColorOptions @@ -102,6 +109,8 @@ fun ColorPaletteScreenMiuix( val currentColorMode = state.currentColorMode val isDark = currentColorMode.isDark || currentColorMode.isSystem && isSystemInDarkTheme() + val context = LocalContext.current + Scaffold( topBar = { BlurredBar(backdrop) { @@ -276,6 +285,39 @@ fun ColorPaletteScreenMiuix( } } + Card( + modifier = Modifier + .padding(top = 12.dp) + .fillMaxWidth(), + ) { + SwitchPreference( + title = stringResource(id = R.string.settings_official_icon), + startAction = { + Icon( + painter = painterResource(R.drawable.ic_launcher_monochrome), + contentDescription = stringResource(id = R.string.settings_official_icon), + modifier = Modifier + .padding(end = 6.dp) + .size(24.dp) + .wrapContentSize(unbounded = true) + .requiredSize(48.dp), + tint = colorScheme.onBackground + ) + }, + checked = uiState.enableOfficialLauncher, + onCheckedChange = { enabled -> + actions.onSetEnableOfficialLauncher(enabled) + val pm = context.packageManager + val mainComponent = ComponentName(context, MainActivity::class.java) + val aliasComponent = ComponentName(context, "me.weishu.kernelsu.MainActivityOfficial") + val (enableComp, disableComp) = if (enabled) aliasComponent to mainComponent else mainComponent to aliasComponent + + pm.setComponentEnabledSetting(enableComp, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP) + pm.setComponentEnabledSetting(disableComp, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP) + } + ) + } + Card( modifier = Modifier .padding(top = 12.dp) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteUiState.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteUiState.kt index c1a45c2bab47..36c2bd8b8d34 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteUiState.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteUiState.kt @@ -23,6 +23,7 @@ data class ColorPaletteScreenActions( val onSetColorMode: (ColorMode) -> Unit, val onSetColorStyle: (String) -> Unit, val onSetColorSpec: (String) -> Unit, + val onSetEnableOfficialLauncher: (Boolean) -> Unit, val onSetEnableBlur: (Boolean) -> Unit, val onSetEnableFloatingBottomBar: (Boolean) -> Unit, val onSetEnableFloatingBottomBarBlur: (Boolean) -> Unit, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt index ac8cf5639f91..4338b66505e2 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt @@ -66,7 +66,7 @@ fun HomePagerMaterial( val scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior(rememberTopAppBarState()) Scaffold( - topBar = { TopBar(scrollBehavior = scrollBehavior) }, + topBar = { TopBar(appName = state.appName, scrollBehavior = scrollBehavior) }, contentWindowInsets = WindowInsets.safeDrawing.only(WindowInsetsSides.Top + WindowInsetsSides.Horizontal) ) { innerPadding -> Column( @@ -155,10 +155,11 @@ private fun UpdateCard( @OptIn(ExperimentalMaterial3ExpressiveApi::class) @Composable private fun TopBar( + appName: String, scrollBehavior: TopAppBarScrollBehavior? = null ) { LargeFlexibleTopAppBar( - title = { Text(stringResource(R.string.app_name)) }, + title = { Text(appName) }, actions = { RebootListPopup() }, colors = TopAppBarDefaults.topAppBarColors( containerColor = MaterialTheme.colorScheme.surface, @@ -568,6 +569,7 @@ private fun previewHomeScreenState( moduleCount: Int = 0, selinuxStatus: String = "Enforcing", ) = HomeUiState( + appName = "KernelSU", kernelVersion = KernelVersion(6, 1, 0), ksuVersion = ksuVersion, lkmMode = lkmMode, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMiuix.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMiuix.kt index edfb491f70ae..dcd718334e23 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMiuix.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMiuix.kt @@ -90,6 +90,7 @@ fun HomePagerMiuix( Scaffold( topBar = { TopBar( + appName = state.appName, scrollBehavior = scrollBehavior, backdrop = backdrop, barColor = barColor, @@ -197,6 +198,7 @@ private fun UpdateCard( @Composable private fun TopBar( + appName: String, scrollBehavior: ScrollBehavior, backdrop: LayerBackdrop?, barColor: Color, @@ -204,7 +206,7 @@ private fun TopBar( BlurredBar(backdrop) { TopAppBar( color = barColor, - title = stringResource(R.string.app_name), + title = appName, actions = { RebootListPopupMiuix() }, @@ -639,6 +641,7 @@ private fun previewHomeScreenState( moduleCount: Int = 0, selinuxStatus: String = "Enforcing", ) = HomeUiState( + appName = "KernelSU", kernelVersion = KernelVersion(6, 1, 0), ksuVersion = ksuVersion, lkmMode = lkmMode, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeUiState.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeUiState.kt index b870d5c6bdc0..acb9346cce3f 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeUiState.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeUiState.kt @@ -6,6 +6,7 @@ import me.weishu.kernelsu.ui.util.module.LatestVersionInfo @Immutable data class HomeUiState( + val appName: String, val kernelVersion: KernelVersion, val ksuVersion: Int?, val lkmMode: Boolean?, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/module/ModuleMaterial.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/module/ModuleMaterial.kt index 661cb3b98278..b4b8cf6c6fc6 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/module/ModuleMaterial.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/module/ModuleMaterial.kt @@ -111,7 +111,6 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.platform.LocalResources -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.Role import androidx.compose.ui.semantics.role @@ -133,6 +132,7 @@ import me.weishu.kernelsu.ui.component.material.SearchAppBar import me.weishu.kernelsu.ui.component.material.TonalCard import me.weishu.kernelsu.ui.component.rebootlistpopup.RebootListPopup import me.weishu.kernelsu.ui.component.statustag.StatusTag +import me.weishu.kernelsu.ui.util.AppInfo import me.weishu.kernelsu.ui.util.LocalSnackbarHost import me.weishu.kernelsu.ui.util.reboot @@ -546,7 +546,7 @@ private fun ModuleShortcutSheet( .background(Color.White) ) Image( - painter = painterResource(id = R.drawable.ic_launcher_foreground), + painter = AppInfo.appIconForeground(), contentDescription = null, contentScale = FixedScale(1.5f) ) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/module/ModuleMiuix.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/module/ModuleMiuix.kt index a533400f7949..dab04d0f806e 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/module/ModuleMiuix.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/module/ModuleMiuix.kt @@ -84,7 +84,6 @@ import androidx.compose.ui.layout.positionInWindow import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalLayoutDirection -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextLayoutResult import androidx.compose.ui.text.font.FontWeight @@ -110,6 +109,7 @@ import me.weishu.kernelsu.ui.component.miuix.SearchPager import me.weishu.kernelsu.ui.component.rebootlistpopup.RebootListPopupMiuix import me.weishu.kernelsu.ui.theme.LocalEnableBlur import me.weishu.kernelsu.ui.theme.isInDarkTheme +import me.weishu.kernelsu.ui.util.AppInfo import me.weishu.kernelsu.ui.util.BlurredBar import me.weishu.kernelsu.ui.util.getFileName import me.weishu.kernelsu.ui.util.rememberBlurBackdrop @@ -602,7 +602,7 @@ private fun ModuleShortcutDialog( .background(Color.White) ) Image( - painter = painterResource(id = R.drawable.ic_launcher_foreground), + painter = AppInfo.appIconForeground(), contentDescription = null, contentScale = FixedScale(1.5f) ) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt index abd5b2cee19c..fac5ecbe0f9f 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt @@ -15,6 +15,7 @@ data class SettingsUiState( val keyColor: Int = 0, val colorStyle: String = PaletteStyle.TonalSpot.name, val colorSpec: String = ColorSpec.SpecVersion.Default.name, + val enableOfficialLauncher: Boolean = false, val enablePredictiveBack: Boolean = true, val enableBlur: Boolean = true, val enableFloatingBottomBar: Boolean = false, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/theme/Theme.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/theme/Theme.kt index 242457fc6618..f4e2aa1ed450 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/theme/Theme.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/theme/Theme.kt @@ -3,6 +3,7 @@ package me.weishu.kernelsu.ui.theme import android.content.Context import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.ReadOnlyComposable import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.platform.LocalContext @@ -50,6 +51,7 @@ data class AppSettings( val paletteStyle: PaletteStyle, val colorSpec: ColorSpec.SpecVersion, val enableSmoothCorner: Boolean, + val enableOfficialLauncher: Boolean, ) object ThemeController { @@ -86,8 +88,9 @@ object ThemeController { } val enableSmoothCorner = prefs.getBoolean("enable_smooth_corner", true) + val enableOfficialLauncher = prefs.getBoolean("enable_official_launcher", false) - return AppSettings(colorMode, keyColor, paletteStyle, colorSpec, enableSmoothCorner) + return AppSettings(colorMode, keyColor, paletteStyle, colorSpec, enableSmoothCorner, enableOfficialLauncher) } } @@ -100,16 +103,21 @@ fun KernelSUTheme( val context = LocalContext.current val currentAppSettings = appSettings ?: ThemeController.getAppSettings(context) - when (uiMode) { - UiMode.Miuix -> MiuixKernelSUTheme( - appSettings = currentAppSettings, - content = content - ) - - UiMode.Material -> MaterialKernelSUTheme( - appSettings = currentAppSettings, - content = content - ) + CompositionLocalProvider( + LocalColorMode provides currentAppSettings.colorMode.value, + LocalEnableOfficialLauncher provides currentAppSettings.enableOfficialLauncher, + ) { + when (uiMode) { + UiMode.Miuix -> MiuixKernelSUTheme( + appSettings = currentAppSettings, + content = content + ) + + UiMode.Material -> MaterialKernelSUTheme( + appSettings = currentAppSettings, + content = content + ) + } } } @@ -126,6 +134,8 @@ fun isInDarkTheme(): Boolean { val LocalColorMode = staticCompositionLocalOf { 0 } +val LocalEnableOfficialLauncher = staticCompositionLocalOf { false } + val LocalEnableBlur = staticCompositionLocalOf { false } val LocalEnableFloatingBottomBar = staticCompositionLocalOf { false } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/util/AppInfo.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/util/AppInfo.kt new file mode 100644 index 000000000000..ad36919357a0 --- /dev/null +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/util/AppInfo.kt @@ -0,0 +1,39 @@ +package me.weishu.kernelsu.ui.util + +import androidx.compose.runtime.Composable +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import me.weishu.kernelsu.R +import me.weishu.kernelsu.ui.theme.LocalEnableOfficialLauncher + +object AppInfo { + @Composable + fun appName(): String { + return if (LocalEnableOfficialLauncher.current) { + stringResource(R.string.app_name) + } else { + stringResource(R.string.app_name_kowsu) + } + } + + @Composable + fun appIconRes(): Int { + return if (LocalEnableOfficialLauncher.current) { + R.drawable.ic_launcher_foreground + } else { + R.drawable.ic_launcher_kowsu + } + } + + @Composable + fun appIconForeground() = painterResource(id = appIconRes()) + + @Composable + fun appIconMonochrome() = painterResource( + id = if (LocalEnableOfficialLauncher.current) { + R.drawable.ic_launcher_monochrome + } else { + R.drawable.ic_launcher_kowsu + } + ) +} diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/util/module/Shortcut.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/util/module/Shortcut.kt index f2e7338ef540..be608f3ec95e 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/util/module/Shortcut.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/util/module/Shortcut.kt @@ -1,16 +1,20 @@ package me.weishu.kernelsu.ui.util.module import android.app.AppOpsManager +import android.content.ComponentName import android.content.Context import android.content.Intent import android.graphics.Bitmap import android.graphics.BitmapFactory +import android.graphics.Canvas import android.net.Uri import android.provider.Settings import android.util.Log import android.widget.Toast +import androidx.core.content.ContextCompat import androidx.core.content.pm.ShortcutInfoCompat import androidx.core.content.pm.ShortcutManagerCompat +import androidx.core.graphics.createBitmap import androidx.core.graphics.drawable.IconCompat import androidx.core.graphics.scale import androidx.core.net.toUri @@ -35,7 +39,8 @@ object Shortcut { iconUri: String? ) { val shortcutId = "module_action_$moduleId" - val shortcutIntent = Intent(context, MainActivity::class.java).apply { + val shortcutIntent = Intent().apply { + component = getLauncherComponent(context) action = Intent.ACTION_VIEW putExtra("shortcut_type", "module_action") putExtra("module_id", moduleId) @@ -90,7 +95,7 @@ object Shortcut { Log.d(TAG, "$logPrefix: shortcutId=$shortcutId, hasPinned=$hasPinned") val iconCompat = createShortcutIcon(context, iconUri) - val finalIcon = iconCompat ?: IconCompat.createWithResource(context, R.mipmap.ic_launcher) + val finalIcon = iconCompat ?: getDefaultIconBitmap(context)?.let { IconCompat.createWithBitmap(it) } val shortcut = ShortcutInfoCompat.Builder(context, shortcutId) .setShortLabel(name) @@ -275,6 +280,32 @@ object Shortcut { } } + fun getDefaultIconBitmap(context: Context): Bitmap? { + val prefs = context.getSharedPreferences("settings", Context.MODE_PRIVATE) + val isOfficial = prefs.getBoolean("enable_official_launcher", false) + val resId = if (isOfficial) R.mipmap.ic_launcher_official else R.mipmap.ic_launcher_kowsu + return getBitmapFromVectorDrawable(context, resId) + } + + fun getLauncherComponent(context: Context): ComponentName { + val prefs = context.getSharedPreferences("settings", Context.MODE_PRIVATE) + val isOfficial = prefs.getBoolean("enable_official_launcher", false) + return if (isOfficial) { + ComponentName(context, "me.weishu.kernelsu.MainActivityOfficial") + } else { + ComponentName(context, MainActivity::class.java) + } + } + + private fun getBitmapFromVectorDrawable(context: Context, drawableId: Int): Bitmap? { + val drawable = ContextCompat.getDrawable(context, drawableId) ?: return null + val bitmap = createBitmap(drawable.intrinsicWidth, drawable.intrinsicHeight) + val canvas = Canvas(bitmap) + drawable.setBounds(0, 0, canvas.width, canvas.height) + drawable.draw(canvas) + return bitmap + } + private enum class ShortcutPermissionState { Granted, Denied, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/HomeViewModel.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/HomeViewModel.kt index e47b8d441b8a..8ee52b564346 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/HomeViewModel.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/HomeViewModel.kt @@ -1,81 +1,103 @@ -package me.weishu.kernelsu.ui.viewmodel - -import android.content.Context -import android.os.Build -import android.system.Os -import androidx.lifecycle.ViewModel -import androidx.lifecycle.viewModelScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.StateFlow -import kotlinx.coroutines.flow.asStateFlow -import kotlinx.coroutines.flow.update -import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext -import me.weishu.kernelsu.BuildConfig -import me.weishu.kernelsu.Natives -import me.weishu.kernelsu.getKernelVersion -import me.weishu.kernelsu.ksuApp -import me.weishu.kernelsu.ui.screen.home.HomeUiState -import me.weishu.kernelsu.ui.screen.home.SystemInfo -import me.weishu.kernelsu.ui.screen.home.getManagerVersion -import me.weishu.kernelsu.ui.util.checkNewVersion -import me.weishu.kernelsu.ui.util.getModuleCount -import me.weishu.kernelsu.ui.util.getSELinuxStatusRaw -import me.weishu.kernelsu.ui.util.getSuperuserCount -import me.weishu.kernelsu.ui.util.module.LatestVersionInfo -import me.weishu.kernelsu.ui.util.rootAvailable - -class HomeViewModel : ViewModel() { - - private val _uiState = MutableStateFlow(buildState()) - val uiState: StateFlow = _uiState.asStateFlow() - - fun refresh() { - viewModelScope.launch { - val baseState = withContext(Dispatchers.IO) { buildState() } - _uiState.update { baseState } - if (baseState.checkUpdateEnabled) { - val latestVersionInfo = withContext(Dispatchers.IO) { checkNewVersion() } - _uiState.update { it.copy(latestVersionInfo = latestVersionInfo) } - } - } - } - - private fun buildState(): HomeUiState { - val kernelVersion = getKernelVersion() - val isManager = Natives.isManager - val ksuVersion = if (isManager) Natives.version else null - val lkmMode = ksuVersion?.let { if (kernelVersion.isGKI()) Natives.isLkmMode else null } - val isRootAvailable = rootAvailable() - val managerVersion = getManagerVersion(ksuApp) - - return HomeUiState( - kernelVersion = kernelVersion, - ksuVersion = ksuVersion, - lkmMode = lkmMode, - isManager = isManager, - isManagerPrBuild = BuildConfig.IS_PR_BUILD, - isKernelPrBuild = Natives.isPrBuild, - requiresNewKernel = isManager && Natives.requireNewKernel(), - isRootAvailable = isRootAvailable, - isSafeMode = Natives.isSafeMode, - isLateLoadMode = Natives.isLateLoadMode, - checkUpdateEnabled = ksuApp.getSharedPreferences("settings", Context.MODE_PRIVATE) - .getBoolean("check_update", true), - latestVersionInfo = LatestVersionInfo(), - currentManagerVersionCode = managerVersion.versionCode, - superuserCount = getSuperuserCount(), - moduleCount = getModuleCount(), - systemInfo = SystemInfo( - kernelVersion = Os.uname().release, - managerVersion = "${managerVersion.versionName} (${managerVersion.versionCode})", - fingerprint = Build.FINGERPRINT, - selinuxStatus = getSELinuxStatusRaw(), - seccompStatus = runCatching { - Os.prctl(21 /* PR_GET_SECCOMP */, 0, 0, 0, 0) - }.getOrDefault(-1), - ), - ) - } -} +package me.weishu.kernelsu.ui.viewmodel + +import android.content.Context +import android.content.SharedPreferences +import android.os.Build +import android.system.Os +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext +import me.weishu.kernelsu.BuildConfig +import me.weishu.kernelsu.Natives +import me.weishu.kernelsu.R +import me.weishu.kernelsu.getKernelVersion +import me.weishu.kernelsu.ksuApp +import me.weishu.kernelsu.ui.screen.home.HomeUiState +import me.weishu.kernelsu.ui.screen.home.SystemInfo +import me.weishu.kernelsu.ui.screen.home.getManagerVersion +import me.weishu.kernelsu.ui.util.checkNewVersion +import me.weishu.kernelsu.ui.util.getModuleCount +import me.weishu.kernelsu.ui.util.getSELinuxStatusRaw +import me.weishu.kernelsu.ui.util.getSuperuserCount +import me.weishu.kernelsu.ui.util.module.LatestVersionInfo +import me.weishu.kernelsu.ui.util.rootAvailable + +class HomeViewModel : ViewModel() { + + private val prefs = ksuApp.getSharedPreferences("settings", Context.MODE_PRIVATE) + private val listener = SharedPreferences.OnSharedPreferenceChangeListener { _, key -> + when (key) { + "enable_official_launcher" -> _uiState.update { it.copy(appName = buildState().appName) } + } + } + + private val _uiState = MutableStateFlow(buildState()) + val uiState: StateFlow = _uiState.asStateFlow() + + init { + prefs.registerOnSharedPreferenceChangeListener(listener) + } + + override fun onCleared() { + prefs.unregisterOnSharedPreferenceChangeListener(listener) + super.onCleared() + } + + fun refresh() { + viewModelScope.launch { + val baseState = withContext(Dispatchers.IO) { buildState() } + _uiState.update { baseState } + if (baseState.checkUpdateEnabled) { + val latestVersionInfo = withContext(Dispatchers.IO) { checkNewVersion() } + _uiState.update { it.copy(latestVersionInfo = latestVersionInfo) } + } + } + } + + private fun buildState(): HomeUiState { + val prefs = ksuApp.getSharedPreferences("settings", Context.MODE_PRIVATE) + val isOfficial = prefs.getBoolean("enable_official_launcher", false) + val appName = if (isOfficial) ksuApp.getString(R.string.app_name) else ksuApp.getString(R.string.app_name_kowsu) + val kernelVersion = getKernelVersion() + val isManager = Natives.isManager + val ksuVersion = if (isManager) Natives.version else null + val lkmMode = ksuVersion?.let { if (kernelVersion.isGKI()) Natives.isLkmMode else null } + val isRootAvailable = rootAvailable() + val managerVersion = getManagerVersion(ksuApp) + + return HomeUiState( + appName = appName, + kernelVersion = kernelVersion, + ksuVersion = ksuVersion, + lkmMode = lkmMode, + isManager = isManager, + isManagerPrBuild = BuildConfig.IS_PR_BUILD, + isKernelPrBuild = Natives.isPrBuild, + requiresNewKernel = isManager && Natives.requireNewKernel(), + isRootAvailable = isRootAvailable, + isSafeMode = Natives.isSafeMode, + isLateLoadMode = Natives.isLateLoadMode, + checkUpdateEnabled = ksuApp.getSharedPreferences("settings", Context.MODE_PRIVATE) + .getBoolean("check_update", true), + latestVersionInfo = LatestVersionInfo(), + currentManagerVersionCode = managerVersion.versionCode, + superuserCount = getSuperuserCount(), + moduleCount = getModuleCount(), + systemInfo = SystemInfo( + kernelVersion = Os.uname().release, + managerVersion = "${managerVersion.versionName} (${managerVersion.versionCode})", + fingerprint = Build.FINGERPRINT, + selinuxStatus = getSELinuxStatusRaw(), + seccompStatus = runCatching { + Os.prctl(21 /* PR_GET_SECCOMP */, 0, 0, 0, 0) + }.getOrDefault(-1), + ), + ) + } +} diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/MainActivityViewModel.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/MainActivityViewModel.kt index 75a6215f3088..eedad8ab84b3 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/MainActivityViewModel.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/MainActivityViewModel.kt @@ -52,6 +52,7 @@ class MainActivityViewModel : ViewModel() { "key_color", "color_style", "color_spec", + "enable_official_launcher", "page_scale", "enable_blur", "enable_floating_bottom_bar", diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SettingsViewModel.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SettingsViewModel.kt index d093a9d06b46..cf79bf555586 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SettingsViewModel.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SettingsViewModel.kt @@ -39,6 +39,7 @@ class SettingsViewModel( val pageScale = repo.pageScale val enableWebDebugging = repo.enableWebDebugging val enableSmoothCorner = repo.enableSmoothCorner + val enableOfficialLauncher = repo.enableOfficialLauncher val colorStyle = repo.colorStyle val colorSpec = repo.colorSpec val isLkmMode = repo.isLkmMode() @@ -71,6 +72,7 @@ class SettingsViewModel( themeMode = themeMode, miuixMonet = miuixMonet, keyColor = keyColor, + enableOfficialLauncher = enableOfficialLauncher, enablePredictiveBack = enablePredictiveBack, enableBlur = enableBlur, enableFloatingBottomBar = enableFloatingBottomBar, @@ -184,6 +186,11 @@ class SettingsViewModel( _uiState.update { it.copy(colorSpec = spec) } } + fun setEnableOfficialLauncher(enabled: Boolean) { + repo.enableOfficialLauncher = enabled + _uiState.update { it.copy(enableOfficialLauncher = enabled) } + } + fun setEnablePredictiveBack(enabled: Boolean) { repo.enablePredictiveBack = enabled _uiState.update { it.copy(enablePredictiveBack = enabled) } diff --git a/manager/app/src/main/res/drawable/ic_launcher_kowsu.xml b/manager/app/src/main/res/drawable/ic_launcher_kowsu.xml new file mode 100644 index 000000000000..585830efcf95 --- /dev/null +++ b/manager/app/src/main/res/drawable/ic_launcher_kowsu.xml @@ -0,0 +1,41 @@ + + + + + + + + + + \ No newline at end of file diff --git a/manager/app/src/main/res/mipmap-anydpi/ic_launcher_kowsu.xml b/manager/app/src/main/res/mipmap-anydpi/ic_launcher_kowsu.xml new file mode 100644 index 000000000000..cdc9f2a66b10 --- /dev/null +++ b/manager/app/src/main/res/mipmap-anydpi/ic_launcher_kowsu.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/manager/app/src/main/res/mipmap-anydpi/ic_launcher.xml b/manager/app/src/main/res/mipmap-anydpi/ic_launcher_official.xml similarity index 100% rename from manager/app/src/main/res/mipmap-anydpi/ic_launcher.xml rename to manager/app/src/main/res/mipmap-anydpi/ic_launcher_official.xml diff --git a/manager/app/src/main/res/values/strings.xml b/manager/app/src/main/res/values/strings.xml index 665258fb41ed..987f4b6015fd 100644 --- a/manager/app/src/main/res/values/strings.xml +++ b/manager/app/src/main/res/values/strings.xml @@ -1,6 +1,7 @@ KernelSU + KowSU Home Not installed Tap to install @@ -210,6 +211,7 @@ Choose the interface style. Page Scale Adjust the global display scale. + Use official app icon Color Spec Color Style Blue From aff27cc95ce8dd42391ab6e23f193fcf0c733aab Mon Sep 17 00:00:00 2001 From: KOWX712 Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 29/35] manager: add webui shortcut in settings screen - KernelSU toolkit - KPatch Next Signed-off-by: KOWX712 --- .../ui/screen/settings/SettingsMaterial.kt | 51 +++++++++++++++++++ .../ui/screen/settings/SettingsMiuix.kt | 44 ++++++++++++++++ .../ui/screen/settings/SettingsScreen.kt | 18 +++++++ .../ui/screen/settings/SettingsUiState.kt | 5 ++ .../java/me/weishu/kernelsu/ui/util/KsuCli.kt | 5 ++ .../ui/viewmodel/SettingsViewModel.kt | 7 +++ .../src/main/res/values-zh-rCN/strings.xml | 4 ++ manager/app/src/main/res/values/strings.xml | 4 ++ 8 files changed, 138 insertions(+) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMaterial.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMaterial.kt index 655c88123fa2..b88a04b48080 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMaterial.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMaterial.kt @@ -15,6 +15,7 @@ import androidx.compose.material.icons.automirrored.filled.Article import androidx.compose.material.icons.automirrored.filled.KeyboardArrowRight import androidx.compose.material.icons.filled.Adb import androidx.compose.material.icons.filled.BugReport +import androidx.compose.material.icons.filled.Build import androidx.compose.material.icons.filled.ContactPage import androidx.compose.material.icons.filled.Delete import androidx.compose.material.icons.filled.DeveloperMode @@ -171,6 +172,56 @@ fun SettingPagerMaterial( ) } + if (uiState.isToolkitInstalled || uiState.isKpatchNextInstalled) KsuIsValid { + SegmentedColumn( + modifier = Modifier.padding(horizontal = 16.dp, vertical = 8.dp), + content = buildList { + if (uiState.isToolkitInstalled) add { + SegmentedListItem( + onClick = { + actions.onOpenWebUi("ksu_toolkit", "KernelSU Toolkit") + }, + headlineContent = { Text(stringResource(R.string.settings_kernelsu_toolkit)) }, + supportingContent = { Text(stringResource(R.string.settings_kernelsu_toolkit_summary)) }, + leadingContent = { + Icon( + Icons.Filled.Build, + stringResource(R.string.settings_kernelsu_toolkit) + ) + }, + trailingContent = { + Icon( + Icons.AutoMirrored.Filled.KeyboardArrowRight, + null + ) + } + ) + } + if (uiState.isKpatchNextInstalled) add { + SegmentedListItem( + onClick = { + actions.onOpenWebUi("KPatch-Next", "KPatch-Next") + }, + headlineContent = { Text(stringResource(R.string.settings_kpatch_next)) }, + supportingContent = { Text(stringResource(R.string.settings_kpatch_next_summary)) }, + leadingContent = { + Icon( + Icons.Filled.Build, + stringResource(R.string.settings_kpatch_next) + ) + }, + trailingContent = { + Icon( + Icons.AutoMirrored.Filled.KeyboardArrowRight, + null + ) + } + ) + } + } + ) + } + KsuIsValid { val suCompatModeItems = listOf( stringResource(id = R.string.settings_mode_enable_by_default), diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMiuix.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMiuix.kt index b9cc02bd2322..c9f6310b2156 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMiuix.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsMiuix.kt @@ -15,6 +15,7 @@ import androidx.compose.foundation.layout.systemBars import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.rounded.Article +import androidx.compose.material.icons.rounded.Build import androidx.compose.material.icons.rounded.Adb import androidx.compose.material.icons.rounded.BugReport import androidx.compose.material.icons.rounded.ContactPage @@ -200,6 +201,49 @@ fun SettingPagerMiuix( } } + if (uiState.isToolkitInstalled || uiState.isKpatchNextInstalled) KsuIsValid { + Card( + modifier = Modifier + .padding(top = 12.dp) + .fillMaxWidth(), + ) { + if (uiState.isToolkitInstalled) { + ArrowPreference( + title = stringResource(R.string.settings_kernelsu_toolkit), + summary = stringResource(R.string.settings_kernelsu_toolkit_summary), + startAction = { + Icon( + Icons.Rounded.Build, + modifier = Modifier.padding(end = 6.dp), + contentDescription = stringResource(id = R.string.settings_kernelsu_toolkit), + tint = colorScheme.onBackground + ) + }, + onClick = { + actions.onOpenWebUi("ksu_toolkit", "KernelSU Toolkit") + } + ) + } + if (uiState.isKpatchNextInstalled) { + ArrowPreference( + title = stringResource(R.string.settings_kpatch_next), + summary = stringResource(R.string.settings_kpatch_next_summary), + startAction = { + Icon( + Icons.Rounded.Build, + modifier = Modifier.padding(end = 6.dp), + contentDescription = stringResource(id = R.string.settings_kpatch_next), + tint = colorScheme.onBackground + ) + }, + onClick = { + actions.onOpenWebUi("KPatch-Next", "KPatch-Next") + } + ) + } + } + } + KsuIsValid { Card( modifier = Modifier diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsScreen.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsScreen.kt index 3c740d4ba8bc..3c64e625a00b 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsScreen.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsScreen.kt @@ -1,9 +1,14 @@ package me.weishu.kernelsu.ui.screen.settings +import android.content.Intent +import androidx.activity.compose.rememberLauncherForActivityResult +import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue +import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.Dp import androidx.lifecycle.compose.LifecycleResumeEffect +import androidx.core.net.toUri import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel import me.weishu.kernelsu.ui.LocalUiMode @@ -11,14 +16,19 @@ import me.weishu.kernelsu.ui.UiMode import me.weishu.kernelsu.ui.navigation3.Navigator import me.weishu.kernelsu.ui.navigation3.Route import me.weishu.kernelsu.ui.viewmodel.SettingsViewModel +import me.weishu.kernelsu.ui.webui.WebUIActivity @Composable fun SettingPager( navigator: Navigator, bottomInnerPadding: Dp ) { + val context = LocalContext.current val viewModel = viewModel() val uiState by viewModel.uiState.collectAsStateWithLifecycle() + val webUILauncher = rememberLauncherForActivityResult( + contract = ActivityResultContracts.StartActivityForResult() + ) { } LifecycleResumeEffect(Unit) { viewModel.refresh() @@ -41,6 +51,14 @@ fun SettingPager( onSetDefaultUmountModules = viewModel::setDefaultUmountModules, onSetEnableWebDebugging = viewModel::setEnableWebDebugging, onSetAutoJailbreak = viewModel::setAutoJailbreak, + onOpenWebUi = { id, name -> + webUILauncher.launch( + Intent(context, WebUIActivity::class.java) + .setData("kernelsu://webui/$id".toUri()) + .putExtra("id", id) + .putExtra("name", name) + ) + }, onOpenAbout = { navigator.push(Route.About) }, ) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt index fac5ecbe0f9f..c712edbf1a05 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt @@ -24,6 +24,10 @@ data class SettingsUiState( val enableWebDebugging: Boolean = false, val enableSmoothCorner: Boolean = true, + // WebUI Modules shortcut entry + val isToolkitInstalled: Boolean = false, + val isKpatchNextInstalled: Boolean = false, + // Su Compat val suCompatStatus: String = "", val suCompatMode: Int = 0, // 0: enable default, 1: disable until reboot, 2: disable always @@ -70,5 +74,6 @@ data class SettingsScreenActions( val onSetDefaultUmountModules: (Boolean) -> Unit, val onSetEnableWebDebugging: (Boolean) -> Unit, val onSetAutoJailbreak: (Boolean) -> Unit, + val onOpenWebUi: (String, String) -> Unit, val onOpenAbout: () -> Unit, ) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/util/KsuCli.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/util/KsuCli.kt index 32d785c0b9cf..39be70bf9d19 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/util/KsuCli.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/util/KsuCli.kt @@ -13,6 +13,7 @@ import android.util.Log import com.topjohnwu.superuser.CallbackList import com.topjohnwu.superuser.Shell import com.topjohnwu.superuser.ShellUtils +import com.topjohnwu.superuser.io.SuFile import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import kotlinx.parcelize.Parcelize @@ -504,3 +505,7 @@ fun restartApp(packageName: String, userId: Int? = null) { forceStopApp(packageName, userId) launchApp(packageName, userId) } + +fun isWebuiModuleInstalled(modId: String): Boolean { + return SuFile("/data/adb/modules/$modId/webroot/index.html").exists() +} diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SettingsViewModel.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SettingsViewModel.kt index cf79bf555586..541ddf34dca7 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SettingsViewModel.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SettingsViewModel.kt @@ -13,6 +13,7 @@ import me.weishu.kernelsu.data.repository.SettingsRepository import me.weishu.kernelsu.data.repository.SettingsRepositoryImpl import me.weishu.kernelsu.ui.screen.settings.SettingsUiState import me.weishu.kernelsu.ui.theme.ColorMode +import me.weishu.kernelsu.ui.util.isWebuiModuleInstalled class SettingsViewModel( private val repo: SettingsRepository = SettingsRepositoryImpl() @@ -44,6 +45,10 @@ class SettingsViewModel( val colorSpec = repo.colorSpec val isLkmMode = repo.isLkmMode() + // WebUI modules shortcut entry + val isToolkitInstalled = isWebuiModuleInstalled("ksu_toolkit") + val isKpatchNextInstalled = isWebuiModuleInstalled("KPatch-Next") + // Async loading for natives/features val suCompatStatus = repo.getSuCompatStatus() val suCompatPersistValue = repo.getSuCompatPersistValue() @@ -82,6 +87,8 @@ class SettingsViewModel( enableSmoothCorner = enableSmoothCorner, colorStyle = colorStyle, colorSpec = colorSpec, + isToolkitInstalled = isToolkitInstalled, + isKpatchNextInstalled = isKpatchNextInstalled, suCompatStatus = suCompatStatus, suCompatMode = suCompatMode, isSuEnabled = isSuEnabled, diff --git a/manager/app/src/main/res/values-zh-rCN/strings.xml b/manager/app/src/main/res/values-zh-rCN/strings.xml index 7afb7c31c459..7d4d71c62382 100644 --- a/manager/app/src/main/res/values-zh-rCN/strings.xml +++ b/manager/app/src/main/res/values-zh-rCN/strings.xml @@ -97,6 +97,10 @@ 为 %s 更新 SELinux 策略失败 无法授予 %s 超级用户权限 更新日志 + KernelSU 工具箱 + KernelSU 的附加功能。 + KPatch Next + KPM 支持的独立实现。 App Profile 模版 管理本地和在线的 App Profile 模版 创建模版 diff --git a/manager/app/src/main/res/values/strings.xml b/manager/app/src/main/res/values/strings.xml index 987f4b6015fd..661b5ff639da 100644 --- a/manager/app/src/main/res/values/strings.xml +++ b/manager/app/src/main/res/values/strings.xml @@ -120,6 +120,10 @@ Failed to update SELinux rules for %s Couldn\'t grant Superuser access to %s Changelog + KernelSU Toolkit + Utility tool for KernelSU extra feature. + KPatch Next + Standalone implementation of KPM support. App Profile template Manage local and online template of App Profile. Create template From c9c060b56bf6c343fd01f250e775e72d998491fc Mon Sep 17 00:00:00 2001 From: Eltavine Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 30/35] manager: modernize Home and Reboot UI (#9) - Add icons and improve layout for superuser, module, and system info cards on the Home screen - Replace the reboot dropdown menu with a comprehensive `BasicAlertDialog` - Enhance reboot options with specific icons and improved visual hierarchy - Add Compose previews for Home info cards and the Reboot dialog --- .../RebootListPopupMaterial.kt | 149 +++++++++++++-- .../kernelsu/ui/screen/home/HomeMaterial.kt | 169 ++++++++++++++---- 2 files changed, 261 insertions(+), 57 deletions(-) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/component/rebootlistpopup/RebootListPopupMaterial.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/component/rebootlistpopup/RebootListPopupMaterial.kt index d5cb032f4c23..99467479bb34 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/component/rebootlistpopup/RebootListPopupMaterial.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/component/rebootlistpopup/RebootListPopupMaterial.kt @@ -1,52 +1,165 @@ package me.weishu.kernelsu.ui.component.rebootlistpopup +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.outlined.RotateRight import androidx.compose.material.icons.filled.PowerSettingsNew -import androidx.compose.material3.DropdownMenu -import androidx.compose.material3.DropdownMenuItem +import androidx.compose.material.icons.outlined.DeveloperMode +import androidx.compose.material.icons.outlined.Download +import androidx.compose.material.icons.outlined.Memory +import androidx.compose.material.icons.outlined.Refresh +import androidx.compose.material.icons.outlined.RestartAlt +import androidx.compose.material.icons.outlined.SystemUpdate +import androidx.compose.material3.BasicAlertDialog +import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp import me.weishu.kernelsu.R import me.weishu.kernelsu.ui.component.KsuIsValid +import me.weishu.kernelsu.ui.component.material.SegmentedColumn +import me.weishu.kernelsu.ui.component.material.SegmentedListItem import me.weishu.kernelsu.ui.util.reboot +private data class RebootOption( + val labelRes: Int, + val reason: String, + val icon: ImageVector +) + @Composable -fun RebootDropdownItems(onItemClick: (String) -> Unit) { - getRebootListOption().forEach { option -> - DropdownMenuItem( - text = { Text(" " + stringResource(option.labelRes)) }, - onClick = { onItemClick(option.reason) } +private fun getRebootOptions(): List { + return getRebootListOption().map { option -> + RebootOption( + labelRes = option.labelRes, + reason = option.reason, + icon = when (option.reason) { + "" -> Icons.Outlined.Refresh + "userspace" -> Icons.Outlined.RestartAlt + "soft_reboot" -> Icons.AutoMirrored.Outlined.RotateRight + "recovery" -> Icons.Outlined.SystemUpdate + "bootloader" -> Icons.Outlined.Memory + "download" -> Icons.Outlined.Download + "edl" -> Icons.Outlined.DeveloperMode + else -> Icons.Outlined.Refresh + } ) } } +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun RebootDialog( + show: Boolean, + onDismiss: () -> Unit, + onReboot: (String) -> Unit +) { + if (!show) return + + val options = getRebootOptions() + + BasicAlertDialog( + onDismissRequest = onDismiss + ) { + Surface( + shape = RoundedCornerShape(28.dp), + color = MaterialTheme.colorScheme.surfaceContainerHigh + ) { + Column( + modifier = Modifier.padding(24.dp) + ) { + Text( + text = stringResource(R.string.reboot), + style = MaterialTheme.typography.titleLarge, + color = MaterialTheme.colorScheme.onSurface + ) + + SegmentedColumn( + modifier = Modifier.padding(top = 20.dp), + content = options.map { option -> + { + SegmentedListItem( + headlineContent = { + Text(stringResource(option.labelRes)) + }, + leadingContent = { + Box( + modifier = Modifier + .size(40.dp) + .background( + color = MaterialTheme.colorScheme.secondaryContainer, + shape = CircleShape + ), + contentAlignment = Alignment.Center + ) { + Icon( + imageVector = option.icon, + contentDescription = null, + modifier = Modifier.size(20.dp), + tint = MaterialTheme.colorScheme.onSecondaryContainer + ) + } + }, + onClick = { + onDismiss() + onReboot(option.reason) + } + ) + } + } + ) + } + } + } +} + @Composable fun RebootListPopupMaterial() { - var expanded by remember { mutableStateOf(false) } + var showDialog by remember { mutableStateOf(false) } KsuIsValid { - IconButton(onClick = { expanded = true }) { + IconButton(onClick = { showDialog = true }) { Icon( imageVector = Icons.Filled.PowerSettingsNew, contentDescription = stringResource(id = R.string.reboot) ) } - DropdownMenu( - expanded = expanded, - onDismissRequest = { expanded = false } - ) { - RebootDropdownItems { reason -> - expanded = false - reboot(reason) - } - } + RebootDialog( + show = showDialog, + onDismiss = { showDialog = false }, + onReboot = { reason -> reboot(reason) } + ) + } +} + +@Preview(showBackground = true) +@Composable +private fun RebootDialogPreview() { + MaterialTheme { + RebootDialog( + show = true, + onDismiss = {}, + onReboot = {} + ) } } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt index 4338b66505e2..5d40c66085b9 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt @@ -16,14 +16,23 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.only import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.requiredSize import androidx.compose.foundation.layout.safeDrawing +import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Block import androidx.compose.material.icons.outlined.CheckCircle +import androidx.compose.material.icons.outlined.Fingerprint +import androidx.compose.material.icons.outlined.LocalPolice +import androidx.compose.material.icons.outlined.Memory +import androidx.compose.material.icons.outlined.Security +import androidx.compose.material.icons.outlined.VerifiedUser import androidx.compose.material.icons.outlined.Warning +import androidx.compose.material.icons.outlined.Widgets import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.ExperimentalMaterial3Api @@ -41,9 +50,11 @@ import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.platform.UriHandler +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview @@ -55,6 +66,7 @@ import me.weishu.kernelsu.ui.component.dialog.rememberConfirmDialog import me.weishu.kernelsu.ui.component.material.TonalCard import me.weishu.kernelsu.ui.component.rebootlistpopup.RebootListPopup import me.weishu.kernelsu.ui.component.statustag.StatusTag +import me.weishu.kernelsu.ui.theme.LocalEnableOfficialLauncher @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -298,46 +310,66 @@ private fun StatusCard( modifier = Modifier.weight(1f), onClick = actions.onSuperuserClick ) { - Column( + Row( modifier = Modifier .fillMaxWidth() - .padding(horizontal = 24.dp, vertical = 16.dp) + .padding(horizontal = 20.dp, vertical = 16.dp), + verticalAlignment = Alignment.CenterVertically ) { - Text( - text = stringResource(R.string.superuser), - style = MaterialTheme.typography.bodyLarge, - maxLines = 1, - overflow = TextOverflow.Ellipsis - ) - Spacer(Modifier.height(4.dp)) - Text( - text = state.superuserCount.toString(), - style = MaterialTheme.typography.bodyMedium, - color = MaterialTheme.colorScheme.outline + Icon( + imageVector = Icons.Outlined.Security, + contentDescription = null, + modifier = Modifier.size(20.dp), + tint = MaterialTheme.colorScheme.onSurfaceVariant ) + Spacer(Modifier.width(16.dp)) + Column { + Text( + text = stringResource(R.string.superuser), + style = MaterialTheme.typography.bodyLarge, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + Spacer(Modifier.height(4.dp)) + Text( + text = state.superuserCount.toString(), + style = MaterialTheme.typography.bodyMedium, + color = MaterialTheme.colorScheme.outline + ) + } } } TonalCard( modifier = Modifier.weight(1f), onClick = actions.onModuleClick ) { - Column( + Row( modifier = Modifier .fillMaxWidth() - .padding(horizontal = 24.dp, vertical = 16.dp) + .padding(horizontal = 20.dp, vertical = 16.dp), + verticalAlignment = Alignment.CenterVertically ) { - Text( - text = stringResource(R.string.module), - style = MaterialTheme.typography.bodyLarge, - maxLines = 1, - overflow = TextOverflow.Ellipsis - ) - Spacer(Modifier.height(4.dp)) - Text( - text = state.moduleCount.toString(), - style = MaterialTheme.typography.bodyMedium, - color = MaterialTheme.colorScheme.outline + Icon( + imageVector = Icons.Outlined.Widgets, + contentDescription = null, + modifier = Modifier.size(20.dp), + tint = MaterialTheme.colorScheme.onSurfaceVariant ) + Spacer(Modifier.width(16.dp)) + Column { + Text( + text = stringResource(R.string.module), + style = MaterialTheme.typography.bodyLarge, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + Spacer(Modifier.height(4.dp)) + Text( + text = state.moduleCount.toString(), + style = MaterialTheme.typography.bodyMedium, + color = MaterialTheme.colorScheme.outline + ) + } } } } @@ -414,27 +446,77 @@ private fun DonateCard(onOpenUrl: (String) -> Unit) { @Composable private fun InfoCard(systemInfo: SystemInfo) { + val isOfficial = LocalEnableOfficialLauncher.current + TonalCard { Column( modifier = Modifier .fillMaxWidth() - .padding(start = 24.dp, top = 24.dp, end = 24.dp, bottom = 16.dp) + .padding(horizontal = 20.dp, vertical = 24.dp) ) { @Composable - fun InfoCardItem(label: String, content: String) { - Text(text = label, style = MaterialTheme.typography.bodyLarge) - Text( - text = content, - style = MaterialTheme.typography.bodyMedium, - color = MaterialTheme.colorScheme.outline - ) + fun InfoCardItem( + label: String, + content: String, + icon: @Composable () -> Unit + ) { + Row( + verticalAlignment = Alignment.CenterVertically + ) { + icon() + Spacer(Modifier.width(16.dp)) + Column { + Text(text = label, style = MaterialTheme.typography.bodyLarge) + Text( + text = content, + style = MaterialTheme.typography.bodyMedium, + color = MaterialTheme.colorScheme.outline, + ) + } + } } - InfoCardItem(stringResource(R.string.home_kernel), systemInfo.kernelVersion) + @Composable + fun InfoCardItem(icon: ImageVector, label: String, content: String) = InfoCardItem( + label = label, + content = content, + icon = { + Icon( + imageVector = icon, + contentDescription = null, + modifier = Modifier.size(20.dp), + tint = MaterialTheme.colorScheme.onSurfaceVariant + ) + } + ) + + InfoCardItem( + icon = Icons.Outlined.Memory, + label = stringResource(R.string.home_kernel), + content = systemInfo.kernelVersion + ) + Spacer(Modifier.height(16.dp)) - InfoCardItem(stringResource(R.string.home_manager_version), systemInfo.managerVersion) + InfoCardItem( + icon = { + Icon( + painter = painterResource(if (isOfficial) R.drawable.ic_launcher_foreground else R.drawable.ic_launcher_kowsu), + contentDescription = null, + modifier = Modifier.size(20.dp).wrapContentSize(unbounded = true).requiredSize(48.dp), + tint = MaterialTheme.colorScheme.onSurfaceVariant + ) + }, + label = stringResource(R.string.home_manager_version), + content = systemInfo.managerVersion + ) + Spacer(Modifier.height(16.dp)) - InfoCardItem(stringResource(R.string.home_fingerprint), systemInfo.fingerprint) + InfoCardItem( + icon = Icons.Outlined.Fingerprint, + label = stringResource(R.string.home_fingerprint), + content = systemInfo.fingerprint + ) + Spacer(Modifier.height(16.dp)) val selinuxDisplay = when (systemInfo.selinuxStatus) { "Enforcing" -> stringResource(R.string.selinux_status_enforcing) @@ -442,7 +524,12 @@ private fun InfoCard(systemInfo: SystemInfo) { "Disabled" -> stringResource(R.string.selinux_status_disabled) else -> stringResource(R.string.selinux_status_unknown) } - InfoCardItem(stringResource(R.string.home_selinux_status), selinuxDisplay) + InfoCardItem( + icon = Icons.Outlined.VerifiedUser, + label = stringResource(R.string.home_selinux_status), + content = selinuxDisplay + ) + Spacer(Modifier.height(16.dp)) val seccompDisplay = when (systemInfo.seccompStatus) { -1 -> stringResource(R.string.seccomp_status_not_supported) @@ -451,7 +538,11 @@ private fun InfoCard(systemInfo: SystemInfo) { 2 -> stringResource(R.string.seccomp_status_filter) else -> stringResource(R.string.seccomp_status_unknown) } - InfoCardItem(stringResource(R.string.home_seccomp_status), seccompDisplay) + InfoCardItem( + icon = Icons.Outlined.LocalPolice, + label = stringResource(R.string.home_seccomp_status), + content = seccompDisplay + ) } } } From 42e7941197295427136478669b2a5ee7afefc239 Mon Sep 17 00:00:00 2001 From: KOWX712 Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 31/35] manager: more customization * manager: bring back classic home ui * manager: add switch icon toggle * manager: add scroll/fade animation switcher Signed-off-by: KOWX712 --- .../data/repository/SettingsRepository.kt | 3 + .../data/repository/SettingsRepositoryImpl.kt | 12 +++ .../me/weishu/kernelsu/ui/MainActivity.kt | 85 +++++++++++++++---- .../ui/component/bottombar/BottomBar.kt | 16 +++- .../ui/component/material/ExpressiveSwitch.kt | 3 +- .../screen/colorpalette/ColorPaletteScreen.kt | 3 + .../ColorPaletteScreenMaterial.kt | 77 ++++++++++++----- .../colorpalette/ColorPaletteScreenMiuix.kt | 17 ++++ .../colorpalette/ColorPaletteUiState.kt | 3 + .../kernelsu/ui/screen/home/HomeMaterial.kt | 30 ++++++- .../kernelsu/ui/screen/home/HomeUiState.kt | 1 + .../ui/screen/settings/SettingsUiState.kt | 3 + .../java/me/weishu/kernelsu/ui/theme/Theme.kt | 15 +++- .../kernelsu/ui/util/CompositionProvider.kt | 4 + .../kernelsu/ui/viewmodel/HomeViewModel.kt | 3 + .../ui/viewmodel/MainActivityViewModel.kt | 3 + .../ui/viewmodel/SettingsViewModel.kt | 21 +++++ .../src/main/res/values-zh-rCN/strings.xml | 3 + manager/app/src/main/res/values/strings.xml | 3 + 19 files changed, 261 insertions(+), 44 deletions(-) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepository.kt b/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepository.kt index cff7f1f534b3..146412744f8c 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepository.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepository.kt @@ -10,6 +10,9 @@ interface SettingsRepository { var colorStyle: String var colorSpec: String var enableOfficialLauncher: Boolean + var classicUi: Boolean + var showSwitchIcon: Boolean + var scrollAnimation: Boolean var enablePredictiveBack: Boolean var enableBlur: Boolean var enableFloatingBottomBar: Boolean diff --git a/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepositoryImpl.kt b/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepositoryImpl.kt index 182e73c1672f..8d64018a548d 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepositoryImpl.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/data/repository/SettingsRepositoryImpl.kt @@ -58,6 +58,18 @@ class SettingsRepositoryImpl : SettingsRepository { get() = prefs.getBoolean("enable_official_launcher", false) set(value) = prefs.edit { putBoolean("enable_official_launcher", value) } + override var classicUi: Boolean + get() = prefs.getBoolean("classic_ui", false) + set(value) = prefs.edit { putBoolean("classic_ui", value) } + + override var showSwitchIcon: Boolean + get() = prefs.getBoolean("show_switch_icon", false) + set(value) = prefs.edit { putBoolean("show_switch_icon", value) } + + override var scrollAnimation: Boolean + get() = prefs.getBoolean("scroll_animation", false) + set(value) = prefs.edit { putBoolean("scroll_animation", value) } + override var enablePredictiveBack: Boolean get() = prefs.getBoolean("enable_predictive_back", true) set(value) = prefs.edit { putBoolean("enable_predictive_back", value) } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/MainActivity.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/MainActivity.kt index 4fd552eb69a5..0d002572b107 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/MainActivity.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/MainActivity.kt @@ -11,6 +11,8 @@ import androidx.activity.SystemBarStyle import androidx.activity.compose.LocalActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge +import androidx.compose.animation.AnimatedContent +import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.animation.scaleOut @@ -39,8 +41,10 @@ import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.Alignment @@ -92,10 +96,13 @@ import me.weishu.kernelsu.ui.screen.superuser.SuperUserPager import me.weishu.kernelsu.ui.screen.template.AppProfileTemplateScreen import me.weishu.kernelsu.ui.screen.templateeditor.TemplateEditorScreen import me.weishu.kernelsu.ui.theme.KernelSUTheme +import me.weishu.kernelsu.ui.theme.LocalClassicUi import me.weishu.kernelsu.ui.theme.LocalColorMode import me.weishu.kernelsu.ui.theme.LocalEnableBlur import me.weishu.kernelsu.ui.theme.LocalEnableFloatingBottomBar import me.weishu.kernelsu.ui.theme.LocalEnableFloatingBottomBarBlur +import me.weishu.kernelsu.ui.util.LocalScrollAnimation +import me.weishu.kernelsu.ui.util.LocalShowSwitchIcon import me.weishu.kernelsu.ui.util.LocalSnackbarHost import me.weishu.kernelsu.ui.util.getFileName import me.weishu.kernelsu.ui.util.install @@ -161,7 +168,10 @@ class MainActivity : ComponentActivity() { LocalEnableFloatingBottomBar provides uiState.enableFloatingBottomBar, LocalEnableFloatingBottomBarBlur provides uiState.enableFloatingBottomBarBlur, LocalUiMode provides uiMode, - LocalSnackbarHost provides snackBarHostState + LocalSnackbarHost provides snackBarHostState, + LocalShowSwitchIcon provides appSettings.showSwitchIcon, + LocalScrollAnimation provides appSettings.scrollAnimation, + LocalClassicUi provides appSettings.classicUi ) { KernelSUTheme(appSettings = appSettings, uiMode = uiMode) { val isFullFeatured = isManager && !Natives.requireNewKernel() && rootAvailable() @@ -260,8 +270,14 @@ fun MainScreen() { val enableBlur = LocalEnableBlur.current val enableFloatingBottomBar = LocalEnableFloatingBottomBar.current val enableFloatingBottomBarBlur = LocalEnableFloatingBottomBarBlur.current - val pagerState = rememberPagerState(pageCount = { 4 }) - val mainPagerState = rememberMainPagerState(pagerState) + val scrollAnimation = LocalScrollAnimation.current + var currentPage by rememberSaveable { mutableIntStateOf(0) } + val pagerState = rememberPagerState(initialPage = currentPage, pageCount = { 4 }) + LaunchedEffect(pagerState.currentPage) { + currentPage = pagerState.currentPage + } + val mainPagerState = rememberMainPagerState(pagerState, initialPage = currentPage) + mainPagerState.usePager = scrollAnimation val isManager = Natives.isManager val isFullFeatured = isManager && !Natives.requireNewKernel() && rootAvailable() var userScrollEnabled by remember(isFullFeatured) { mutableStateOf(isFullFeatured) } @@ -281,6 +297,10 @@ fun MainScreen() { mainPagerState.syncPage() } + LaunchedEffect(mainPagerState.selectedPage) { + currentPage = mainPagerState.selectedPage + } + MainScreenBackHandler(mainPagerState, navController) val isLandscape = LocalConfiguration.current.orientation == Configuration.ORIENTATION_LANDSCAPE @@ -291,20 +311,36 @@ fun MainScreen() { ) { val contentReady = rememberContentReady() val pagerContent = @Composable { bottomInnerPadding: Dp -> + val mainModifier = Modifier + .then(if (enableFloatingBottomBar && enableFloatingBottomBarBlur) Modifier.layerBackdrop(backdrop) else Modifier) + Box(modifier = if (blurBackdrop != null) Modifier.miuixLayerBackdrop(blurBackdrop) else Modifier) { - HorizontalPager( - modifier = Modifier - .then(if (enableFloatingBottomBar && enableFloatingBottomBarBlur) Modifier.layerBackdrop(backdrop) else Modifier), - state = mainPagerState.pagerState, - beyondViewportPageCount = if (contentReady) 3 else 0, - userScrollEnabled = userScrollEnabled, - ) { page -> - val isCurrentPage = page == mainPagerState.pagerState.settledPage - when (page) { - 0 -> if (isCurrentPage || contentReady) HomePager(navController, bottomInnerPadding, isCurrentPage) - 1 -> if (isCurrentPage || contentReady) SuperUserPager(navController, bottomInnerPadding, isCurrentPage) - 2 -> if (isCurrentPage || contentReady) ModulePager(bottomInnerPadding, isCurrentPage) - 3 -> if (isCurrentPage || contentReady) SettingPager(navController, bottomInnerPadding) + if (scrollAnimation) { + HorizontalPager( + modifier = mainModifier, + state = mainPagerState.pagerState, + beyondViewportPageCount = if (contentReady) 3 else 0, + userScrollEnabled = userScrollEnabled + ) { page -> + val isCurrentPage = page == mainPagerState.pagerState.settledPage + MainPage( + page = page, + navigator = navController, + bottomInnerPadding = bottomInnerPadding, + isCurrentPage = isCurrentPage, + contentReady = contentReady + ) + } + } else { + AnimatedContent( + modifier = mainModifier, + targetState = mainPagerState.selectedPage, + transitionSpec = { + fadeIn(tween(340)) togetherWith fadeOut(tween(340)) + }, + label = "MainScreenTransition" + ) { page -> + MainPage(page, navController, bottomInnerPadding) } } } @@ -372,6 +408,23 @@ fun MainScreen() { } } +@Composable +fun MainPage( + page: Int, + navigator: Navigator, + bottomInnerPadding: Dp, + isCurrentPage: Boolean = true, + contentReady: Boolean = true, +) { + if (!contentReady && !isCurrentPage) return + + when (page) { + 0 -> HomePager(navigator, bottomInnerPadding, isCurrentPage) + 1 -> SuperUserPager(navigator, bottomInnerPadding, isCurrentPage) + 2 -> ModulePager(bottomInnerPadding, isCurrentPage) + 3 -> SettingPager(navigator, bottomInnerPadding) + } +} @Composable private fun MainScreenBackHandler( diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/component/bottombar/BottomBar.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/component/bottombar/BottomBar.kt index 5c0cfbb4e308..b3dea9125abb 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/component/bottombar/BottomBar.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/component/bottombar/BottomBar.kt @@ -24,14 +24,17 @@ import kotlin.math.abs class MainPagerState( val pagerState: PagerState, - private val coroutineScope: CoroutineScope + private val coroutineScope: CoroutineScope, + initialPage: Int = pagerState.currentPage, ) { - var selectedPage by mutableIntStateOf(pagerState.currentPage) + var selectedPage by mutableIntStateOf(initialPage) private set var isNavigating by mutableStateOf(false) private set + var usePager by mutableStateOf(true) + private var navJob: Job? = null fun animateToPage(targetIndex: Int) { @@ -40,6 +43,9 @@ class MainPagerState( navJob?.cancel() selectedPage = targetIndex + + if (!usePager) return + isNavigating = true val distance = abs(targetIndex - pagerState.currentPage).coerceAtLeast(2) @@ -68,6 +74,7 @@ class MainPagerState( } fun syncPage() { + if (!usePager) return if (!isNavigating && selectedPage != pagerState.currentPage) { selectedPage = pagerState.currentPage } @@ -77,10 +84,11 @@ class MainPagerState( @Composable fun rememberMainPagerState( pagerState: PagerState, - coroutineScope: CoroutineScope = rememberCoroutineScope() + coroutineScope: CoroutineScope = rememberCoroutineScope(), + initialPage: Int = pagerState.currentPage, ): MainPagerState { return remember(pagerState, coroutineScope) { - MainPagerState(pagerState, coroutineScope) + MainPagerState(pagerState, coroutineScope, initialPage) } } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/component/material/ExpressiveSwitch.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/component/material/ExpressiveSwitch.kt index 0497bf1b2247..7aac1084bc9c 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/component/material/ExpressiveSwitch.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/component/material/ExpressiveSwitch.kt @@ -13,6 +13,7 @@ import androidx.compose.material3.SwitchDefaults import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Modifier +import me.weishu.kernelsu.ui.util.LocalShowSwitchIcon @Composable fun ExpressiveSwitch( @@ -23,7 +24,7 @@ fun ExpressiveSwitch( enabled: Boolean = true, colors: SwitchColors = SwitchDefaults.colors(), interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, - showThumbIcon: Boolean = true, + showThumbIcon: Boolean = LocalShowSwitchIcon.current, ) { Switch( checked = checked, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreen.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreen.kt index cccfe41465d4..a04b7c013007 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreen.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreen.kt @@ -48,6 +48,9 @@ fun ColorPaletteScreen() { onSetColorStyle = viewModel::setColorStyle, onSetColorSpec = viewModel::setColorSpec, onSetEnableOfficialLauncher = viewModel::setEnableOfficialLauncher, + onSetClassicUi = viewModel::setClassicUi, + onSetShowSwitchIcon = viewModel::setShowSwitchIcon, + onSetScrollAnimation = viewModel::setScrollAnimation, onSetEnableBlur = viewModel::setEnableBlur, onSetEnableFloatingBottomBar = viewModel::setEnableFloatingBottomBar, onSetEnableFloatingBottomBarBlur = viewModel::setEnableFloatingBottomBarBlur, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMaterial.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMaterial.kt index 905e85dd0ece..4e7d22857c9b 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMaterial.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMaterial.kt @@ -54,7 +54,10 @@ import androidx.compose.material.icons.filled.Home import androidx.compose.material.icons.rounded.AspectRatio import androidx.compose.material.icons.rounded.Check import androidx.compose.material.icons.rounded.DesignServices +import androidx.compose.material.icons.rounded.Home import androidx.compose.material.icons.rounded.Style +import androidx.compose.material.icons.rounded.ToggleOn +import androidx.compose.material.icons.rounded.ViewCarousel import androidx.compose.material3.ButtonGroupDefaults import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi @@ -162,6 +165,7 @@ fun ColorPaletteScreenMaterial( paletteStyle = colorStyle, colorSpec = colorSpec, officialIcon = uiState.enableOfficialLauncher, + classicUi = uiState.classicUi, ) Spacer(modifier = Modifier.height(8.dp)) @@ -323,6 +327,42 @@ fun ColorPaletteScreenMaterial( actions.onSetColorSpec(specs[index].name) } ) + }, + ) + ) + + SegmentedColumn( + modifier = Modifier.padding(top = 4.dp), + content = listOf( + { + SegmentedSwitchItem( + icon = Icons.Rounded.Home, + title = stringResource(R.string.settings_classic_home_ui), + checked = uiState.classicUi, + onCheckedChange = { + actions.onSetClassicUi(it) + } + ) + }, + { + SegmentedSwitchItem( + icon = Icons.Rounded.ToggleOn, + title = stringResource(R.string.settings_switch_icon), + checked = uiState.showSwitchIcon, + onCheckedChange = { + actions.onSetShowSwitchIcon(it) + } + ) + }, + { + SegmentedSwitchItem( + icon = Icons.Rounded.ViewCarousel, + title = stringResource(R.string.settings_scroll_animation), + checked = uiState.scrollAnimation, + onCheckedChange = { + actions.onSetScrollAnimation(it) + } + ) } ) ) @@ -407,6 +447,7 @@ private fun ThemePreviewCard( paletteStyle: PaletteStyle = PaletteStyle.TonalSpot, colorSpec: ColorSpec.SpecVersion = ColorSpec.SpecVersion.SPEC_2021, officialIcon: Boolean = false, + classicUi: Boolean = false, ) { val context = LocalContext.current val configuration = LocalConfiguration.current @@ -489,28 +530,26 @@ private fun ThemePreviewCard( containerColor = MaterialTheme.colorScheme.secondaryContainer, modifier = Modifier .fillMaxWidth() - .height(40.dp), + .height(if (classicUi) 64.dp else 40.dp), shape = RoundedCornerShape(12.dp), content = { } ) - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.spacedBy(8.dp) - ) { - TonalCard( - modifier = Modifier - .weight(1f) - .height(32.dp), - shape = RoundedCornerShape(12.dp), - content = { } - ) - TonalCard( - modifier = Modifier - .weight(1f) - .height(32.dp), - shape = RoundedCornerShape(12.dp), - content = { } - ) + if (!classicUi) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(8.dp) + ) { + TonalCard( + modifier = Modifier.weight(1f).height(40.dp), + shape = RoundedCornerShape(12.dp), + content = { } + ) + TonalCard( + modifier = Modifier.weight(1f).height(40.dp), + shape = RoundedCornerShape(12.dp), + content = { } + ) + } } TonalCard( modifier = Modifier diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMiuix.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMiuix.kt index d77c61e3f2ef..fdd512449045 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMiuix.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteScreenMiuix.kt @@ -41,6 +41,7 @@ import androidx.compose.material.icons.rounded.Colorize import androidx.compose.material.icons.rounded.DesignServices import androidx.compose.material.icons.rounded.RoundedCorner import androidx.compose.material.icons.rounded.Style +import androidx.compose.material.icons.rounded.ViewCarousel import androidx.compose.material.icons.rounded.Wallpaper import androidx.compose.material.icons.rounded.WaterDrop import androidx.compose.runtime.Composable @@ -316,6 +317,22 @@ fun ColorPaletteScreenMiuix( pm.setComponentEnabledSetting(disableComp, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP) } ) + + SwitchPreference( + title = stringResource(id = R.string.settings_scroll_animation), + startAction = { + Icon( + Icons.Rounded.ViewCarousel, + modifier = Modifier.padding(end = 6.dp), + contentDescription = stringResource(id = R.string.settings_scroll_animation), + tint = colorScheme.onBackground + ) + }, + checked = uiState.scrollAnimation, + onCheckedChange = { enabled -> + actions.onSetScrollAnimation(enabled) + } + ) } Card( diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteUiState.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteUiState.kt index 36c2bd8b8d34..03a489cbcc8b 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteUiState.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/colorpalette/ColorPaletteUiState.kt @@ -24,6 +24,9 @@ data class ColorPaletteScreenActions( val onSetColorStyle: (String) -> Unit, val onSetColorSpec: (String) -> Unit, val onSetEnableOfficialLauncher: (Boolean) -> Unit, + val onSetClassicUi: (Boolean) -> Unit, + val onSetShowSwitchIcon: (Boolean) -> Unit, + val onSetScrollAnimation: (Boolean) -> Unit, val onSetEnableBlur: (Boolean) -> Unit, val onSetEnableFloatingBottomBar: (Boolean) -> Unit, val onSetEnableFloatingBottomBarBlur: (Boolean) -> Unit, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt index 5d40c66085b9..917818a07ff2 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeMaterial.kt @@ -66,7 +66,10 @@ import me.weishu.kernelsu.ui.component.dialog.rememberConfirmDialog import me.weishu.kernelsu.ui.component.material.TonalCard import me.weishu.kernelsu.ui.component.rebootlistpopup.RebootListPopup import me.weishu.kernelsu.ui.component.statustag.StatusTag +import me.weishu.kernelsu.ui.theme.LocalClassicUi import me.weishu.kernelsu.ui.theme.LocalEnableOfficialLauncher +import me.weishu.kernelsu.ui.util.getModuleCount +import me.weishu.kernelsu.ui.util.getSuperuserCount @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -187,6 +190,7 @@ private fun StatusCard( state: HomeUiState, actions: HomeActions, ) { + val classicUi = LocalClassicUi.current Column(verticalArrangement = Arrangement.spacedBy(16.dp)) { TonalCard( containerColor = if (state.ksuVersion != null) { @@ -251,6 +255,19 @@ private fun StatusCard( text = stringResource(R.string.home_working_version, state.ksuVersion), style = MaterialTheme.typography.bodyMedium ) + if (classicUi) { + Spacer(Modifier.height(4.dp)) + Text( + text = stringResource( + R.string.home_superuser_count, getSuperuserCount() + ), style = MaterialTheme.typography.bodyMedium + ) + Spacer(Modifier.height(4.dp)) + Text( + text = stringResource(R.string.home_module_count, getModuleCount()), + style = MaterialTheme.typography.bodyMedium + ) + } } } @@ -301,7 +318,7 @@ private fun StatusCard( } } } - if (state.isFullFeatured) { + if (state.isFullFeatured && !classicUi) { Row( modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(16.dp) @@ -447,6 +464,7 @@ private fun DonateCard(onOpenUrl: (String) -> Unit) { @Composable private fun InfoCard(systemInfo: SystemInfo) { val isOfficial = LocalEnableOfficialLauncher.current + val isClassicUi = LocalClassicUi.current TonalCard { Column( @@ -463,8 +481,10 @@ private fun InfoCard(systemInfo: SystemInfo) { Row( verticalAlignment = Alignment.CenterVertically ) { - icon() - Spacer(Modifier.width(16.dp)) + if (!isClassicUi) { + icon() + Spacer(Modifier.width(16.dp)) + } Column { Text(text = label, style = MaterialTheme.typography.bodyLarge) Text( @@ -601,6 +621,7 @@ private fun HomeScreenPreviewContent( superuserCount: Int = 0, moduleCount: Int = 0, selinuxStatus: String = "Enforcing", + classicUi: Boolean = false, ) { CompositionLocalProvider(LocalUriHandler provides previewUriHandler) { Column( @@ -617,6 +638,7 @@ private fun HomeScreenPreviewContent( superuserCount = superuserCount, moduleCount = moduleCount, selinuxStatus = selinuxStatus, + classicUi = classicUi, ), actions = actions ) @@ -659,8 +681,10 @@ private fun previewHomeScreenState( superuserCount: Int = 0, moduleCount: Int = 0, selinuxStatus: String = "Enforcing", + classicUi: Boolean = false, ) = HomeUiState( appName = "KernelSU", + classicUi = classicUi, kernelVersion = KernelVersion(6, 1, 0), ksuVersion = ksuVersion, lkmMode = lkmMode, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeUiState.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeUiState.kt index acb9346cce3f..ef97f4d3c406 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeUiState.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/home/HomeUiState.kt @@ -7,6 +7,7 @@ import me.weishu.kernelsu.ui.util.module.LatestVersionInfo @Immutable data class HomeUiState( val appName: String, + val classicUi: Boolean = false, val kernelVersion: KernelVersion, val ksuVersion: Int?, val lkmMode: Boolean?, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt index c712edbf1a05..374b7363e952 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/settings/SettingsUiState.kt @@ -16,6 +16,9 @@ data class SettingsUiState( val colorStyle: String = PaletteStyle.TonalSpot.name, val colorSpec: String = ColorSpec.SpecVersion.Default.name, val enableOfficialLauncher: Boolean = false, + val classicUi: Boolean = false, + val showSwitchIcon: Boolean = false, + val scrollAnimation: Boolean = false, val enablePredictiveBack: Boolean = true, val enableBlur: Boolean = true, val enableFloatingBottomBar: Boolean = false, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/theme/Theme.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/theme/Theme.kt index f4e2aa1ed450..e2e61314d183 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/theme/Theme.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/theme/Theme.kt @@ -11,6 +11,8 @@ import com.materialkolor.PaletteStyle import com.materialkolor.dynamiccolor.ColorSpec import me.weishu.kernelsu.ui.LocalUiMode import me.weishu.kernelsu.ui.UiMode +import me.weishu.kernelsu.ui.util.LocalScrollAnimation +import me.weishu.kernelsu.ui.util.LocalShowSwitchIcon enum class ColorMode(val value: Int) { SYSTEM(0), @@ -52,6 +54,9 @@ data class AppSettings( val colorSpec: ColorSpec.SpecVersion, val enableSmoothCorner: Boolean, val enableOfficialLauncher: Boolean, + val classicUi: Boolean, + val showSwitchIcon: Boolean, + val scrollAnimation: Boolean, ) object ThemeController { @@ -89,8 +94,11 @@ object ThemeController { val enableSmoothCorner = prefs.getBoolean("enable_smooth_corner", true) val enableOfficialLauncher = prefs.getBoolean("enable_official_launcher", false) + val classicUi = prefs.getBoolean("classic_ui", false) + val showSwitchIcon = prefs.getBoolean("show_switch_icon", false) + val scrollAnimation = prefs.getBoolean("scroll_animation", false) - return AppSettings(colorMode, keyColor, paletteStyle, colorSpec, enableSmoothCorner, enableOfficialLauncher) + return AppSettings(colorMode, keyColor, paletteStyle, colorSpec, enableSmoothCorner, enableOfficialLauncher, classicUi, showSwitchIcon, scrollAnimation) } } @@ -106,6 +114,9 @@ fun KernelSUTheme( CompositionLocalProvider( LocalColorMode provides currentAppSettings.colorMode.value, LocalEnableOfficialLauncher provides currentAppSettings.enableOfficialLauncher, + LocalClassicUi provides currentAppSettings.classicUi, + LocalShowSwitchIcon provides currentAppSettings.showSwitchIcon, + LocalScrollAnimation provides currentAppSettings.scrollAnimation, ) { when (uiMode) { UiMode.Miuix -> MiuixKernelSUTheme( @@ -136,6 +147,8 @@ val LocalColorMode = staticCompositionLocalOf { 0 } val LocalEnableOfficialLauncher = staticCompositionLocalOf { false } +val LocalClassicUi = staticCompositionLocalOf { false } + val LocalEnableBlur = staticCompositionLocalOf { false } val LocalEnableFloatingBottomBar = staticCompositionLocalOf { false } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/util/CompositionProvider.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/util/CompositionProvider.kt index 29279ebd8316..1a0afa7dfed0 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/util/CompositionProvider.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/util/CompositionProvider.kt @@ -6,3 +6,7 @@ import androidx.compose.runtime.compositionLocalOf val LocalSnackbarHost = compositionLocalOf { error("CompositionLocal LocalSnackbarHost not present") } + +val LocalShowSwitchIcon = compositionLocalOf { false } + +val LocalScrollAnimation = compositionLocalOf { false } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/HomeViewModel.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/HomeViewModel.kt index 8ee52b564346..e4ff13d5ed44 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/HomeViewModel.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/HomeViewModel.kt @@ -34,6 +34,7 @@ class HomeViewModel : ViewModel() { private val listener = SharedPreferences.OnSharedPreferenceChangeListener { _, key -> when (key) { "enable_official_launcher" -> _uiState.update { it.copy(appName = buildState().appName) } + "classic_ui" -> _uiState.update { it.copy(classicUi = buildState().classicUi) } } } @@ -63,6 +64,7 @@ class HomeViewModel : ViewModel() { private fun buildState(): HomeUiState { val prefs = ksuApp.getSharedPreferences("settings", Context.MODE_PRIVATE) val isOfficial = prefs.getBoolean("enable_official_launcher", false) + val classicUi = prefs.getBoolean("classic_ui", false) val appName = if (isOfficial) ksuApp.getString(R.string.app_name) else ksuApp.getString(R.string.app_name_kowsu) val kernelVersion = getKernelVersion() val isManager = Natives.isManager @@ -73,6 +75,7 @@ class HomeViewModel : ViewModel() { return HomeUiState( appName = appName, + classicUi = classicUi, kernelVersion = kernelVersion, ksuVersion = ksuVersion, lkmMode = lkmMode, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/MainActivityViewModel.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/MainActivityViewModel.kt index eedad8ab84b3..120de7e32b89 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/MainActivityViewModel.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/MainActivityViewModel.kt @@ -53,6 +53,9 @@ class MainActivityViewModel : ViewModel() { "color_style", "color_spec", "enable_official_launcher", + "classic_ui", + "show_switch_icon", + "scroll_animation", "page_scale", "enable_blur", "enable_floating_bottom_bar", diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SettingsViewModel.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SettingsViewModel.kt index 541ddf34dca7..bfd041f53e70 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SettingsViewModel.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SettingsViewModel.kt @@ -41,6 +41,9 @@ class SettingsViewModel( val enableWebDebugging = repo.enableWebDebugging val enableSmoothCorner = repo.enableSmoothCorner val enableOfficialLauncher = repo.enableOfficialLauncher + val classicUi = repo.classicUi + val showSwitchIcon = repo.showSwitchIcon + val scrollAnimation = repo.scrollAnimation val colorStyle = repo.colorStyle val colorSpec = repo.colorSpec val isLkmMode = repo.isLkmMode() @@ -78,6 +81,9 @@ class SettingsViewModel( miuixMonet = miuixMonet, keyColor = keyColor, enableOfficialLauncher = enableOfficialLauncher, + classicUi = classicUi, + showSwitchIcon = showSwitchIcon, + scrollAnimation = scrollAnimation, enablePredictiveBack = enablePredictiveBack, enableBlur = enableBlur, enableFloatingBottomBar = enableFloatingBottomBar, @@ -198,6 +204,21 @@ class SettingsViewModel( _uiState.update { it.copy(enableOfficialLauncher = enabled) } } + fun setClassicUi(enabled: Boolean) { + repo.classicUi = enabled + _uiState.update { it.copy(classicUi = enabled) } + } + + fun setShowSwitchIcon(enabled: Boolean) { + repo.showSwitchIcon = enabled + _uiState.update { it.copy(showSwitchIcon = enabled) } + } + + fun setScrollAnimation(enabled: Boolean) { + repo.scrollAnimation = enabled + _uiState.update { it.copy(scrollAnimation = enabled) } + } + fun setEnablePredictiveBack(enabled: Boolean) { repo.enablePredictiveBack = enabled _uiState.update { it.copy(enablePredictiveBack = enabled) } diff --git a/manager/app/src/main/res/values-zh-rCN/strings.xml b/manager/app/src/main/res/values-zh-rCN/strings.xml index 7d4d71c62382..bb95784ce1c4 100644 --- a/manager/app/src/main/res/values-zh-rCN/strings.xml +++ b/manager/app/src/main/res/values-zh-rCN/strings.xml @@ -192,6 +192,9 @@ 调整全局显示比例 色彩标准 色彩风格 + 经典主页样式 + 开关图表 + 使用滚动动画 蓝色 红色 绿色 diff --git a/manager/app/src/main/res/values/strings.xml b/manager/app/src/main/res/values/strings.xml index 661b5ff639da..25438526765c 100644 --- a/manager/app/src/main/res/values/strings.xml +++ b/manager/app/src/main/res/values/strings.xml @@ -218,6 +218,9 @@ Use official app icon Color Spec Color Style + Classic Home UI + Switch icon + Use scroll animation Blue Red Green From ded0bfefea52188089aad42c93b4b31ed4c45f65 Mon Sep 17 00:00:00 2001 From: KOWX712 Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 32/35] manager: add AnyKernel3 flashing support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - AnyKernel3 flashing support from KernelSU-Next, added zip intent support. This commit included squash of: * manager: add anykernel3 flashing support (KernelSU-Next/KernelSU-Next@2bb9ace01542d216f69a624632500b729334b182) * manager: expose anykernel flasher for non-gki devices (KernelSU-Next/KernelSU-Next@36eb7e50a130733c81b75221a119f2721a43597c) * manager: fix anykernel selection bug (KernelSU-Next/KernelSU-Next@42e6e4a5c259b39825bf24d91f7c3ff80634ee1d) * Update AnyKernel3 Flashing logic and logging (KernelSU-Next/KernelSU-Next@8a61e8a842c336b938d811f29a83d6c65cea217d) * manager: add icon to anykernel and module activity alias (KOWX712/KernelSU@499a5c729f0c9752ddbf826f98be86c96fb48d23) Co-Authored-By: Rifat Azad <33044977+rifsxd@users.noreply.github.com> Co-Authored-By: fatalcoder524 <11532648+fatalcoder524@users.noreply.github.com> Co-Authored-By: 𓆩☾✧𓆪 ℤ𝔾𝕏 // #𝓝𝓲𝓰𝓱𝓽𝓥𝓲𝓫𝓮𝓼 <159061718+zg089@users.noreply.github.com> Signed-off-by: KOWX712 --- manager/app/src/main/AndroidManifest.xml | 36 +++++-- .../me/weishu/kernelsu/ui/MainActivity.kt | 29 +++++- .../kernelsu/ui/screen/flash/FlashUtils.kt | 8 ++ .../ui/screen/install/InstallMaterial.kt | 10 +- .../ui/screen/install/InstallMiuix.kt | 11 +++ .../ui/screen/install/InstallScreen.kt | 26 ++++- .../ui/screen/install/InstallUiState.kt | 2 + .../ui/screen/install/InstallUtils.kt | 6 ++ .../java/me/weishu/kernelsu/ui/util/KsuCli.kt | 98 +++++++++++++++++++ .../res/drawable/anykernel_foreground.xml | 9 ++ .../main/res/drawable/module_foreground.xml | 9 ++ .../src/main/res/mipmap-anydpi/anykernel.xml | 5 + .../app/src/main/res/mipmap-anydpi/module.xml | 5 + .../src/main/res/values-zh-rCN/strings.xml | 2 + manager/app/src/main/res/values/strings.xml | 2 + 15 files changed, 244 insertions(+), 14 deletions(-) create mode 100644 manager/app/src/main/res/drawable/anykernel_foreground.xml create mode 100644 manager/app/src/main/res/drawable/module_foreground.xml create mode 100644 manager/app/src/main/res/mipmap-anydpi/anykernel.xml create mode 100644 manager/app/src/main/res/mipmap-anydpi/module.xml diff --git a/manager/app/src/main/AndroidManifest.xml b/manager/app/src/main/AndroidManifest.xml index 034a6e3bcc3e..78525428d781 100644 --- a/manager/app/src/main/AndroidManifest.xml +++ b/manager/app/src/main/AndroidManifest.xml @@ -44,6 +44,14 @@ + + + @@ -54,19 +62,14 @@ android:mimeType="application/zip" android:scheme="content" /> - + - - - - + android:icon="@mipmap/anykernel" + android:label="@string/anykernel_install" + android:targetActivity=".ui.MainActivity"> @@ -79,6 +82,19 @@ + + + + + + + (null) } + var isAnyKernel by remember { mutableStateOf(false) } val isSafeMode = Natives.isSafeMode val clearZipUri = { zipUri = null } val navigator = LocalNavigator.current val installDialog = rememberConfirmDialog( onConfirm = { - zipUri?.let { uri -> navigator.push(Route.Flash(FlashIt.FlashModules(listOf(uri)))) } + zipUri?.let { uri -> + val flashIt = if (isAnyKernel) { + FlashIt.FlashAnyKernel(uri) + } else { + FlashIt.FlashModules(listOf(uri)) + } + navigator.push(Route.Flash(flashIt)) + } clearZipUri() }, onDismiss = clearZipUri @@ -483,17 +491,34 @@ private fun ZipFileIntentHandler( val currentIntent = activity.intent val uri = currentIntent?.data ?: return@LaunchedEffect - if (!isManager || uri.scheme != "content" || currentIntent.type != "application/zip") { + if (uri.scheme != "content" || currentIntent.type != "application/zip") { return@LaunchedEffect } + val component = currentIntent.component?.className + val isAnyKernelIntent = component?.endsWith("FlashAnyKernel") == true + + if (!isAnyKernelIntent && !isManager) return@LaunchedEffect + activity.intent.data = null activity.intent.type = null + if (isAnyKernelIntent) { + if (!rootAvailable()) return@LaunchedEffect + zipUri = uri + isAnyKernel = true + installDialog.showConfirm( + title = context.getString(R.string.anykernel_install), + content = getDisplayName(uri) + ) + return@LaunchedEffect + } + if (isSafeMode) { Toast.makeText(context, context.getString(R.string.safe_mode_module_disabled), Toast.LENGTH_SHORT).show() } else { zipUri = uri + isAnyKernel = false installDialog.showConfirm( title = context.getString(R.string.module), content = context.getString( diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/flash/FlashUtils.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/flash/FlashUtils.kt index 6b0cdbbdc003..3c1a03cc2df5 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/flash/FlashUtils.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/flash/FlashUtils.kt @@ -33,6 +33,7 @@ import kotlinx.parcelize.Parcelize import me.weishu.kernelsu.R import me.weishu.kernelsu.ui.util.FlashResult import me.weishu.kernelsu.ui.util.LkmSelection +import me.weishu.kernelsu.ui.util.flashAnyKernelZip import me.weishu.kernelsu.ui.util.flashModule import me.weishu.kernelsu.ui.util.installBoot import me.weishu.kernelsu.ui.util.restoreBoot @@ -82,6 +83,9 @@ sealed class FlashIt : Parcelable { @Parcelize data class FlashModules(val uris: List) : FlashIt() + @Parcelize + data class FlashAnyKernel(val uri: Uri) : FlashIt() + @Parcelize data object FlashRestore : FlashIt() @@ -125,6 +129,10 @@ fun flashIt( flashModulesSequentially(flashIt.uris, onStdout, onStderr) } + is FlashIt.FlashAnyKernel -> { + flashAnyKernelZip(flashIt.uri, onStdout, onStderr) + } + FlashIt.FlashRestore -> restoreBoot(onStdout, onStderr) FlashIt.FlashUninstall -> uninstallPermanently(onStdout, onStderr) } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallMaterial.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallMaterial.kt index da4579c9abb4..694cd8383083 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallMaterial.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallMaterial.kt @@ -87,8 +87,13 @@ internal fun InstallScreenMaterial( state = uiState, onSelected = actions.onSelectMethod, onSelectBootImage = actions.onSelectBootImage, + onSelectAnyKernel = actions.onSelectAnyKernel, ) - + AnimatedVisibility( + visible = uiState.showInstallOptions, + enter = fadeIn() + expandVertically(), + exit = fadeOut() + shrinkVertically() + ) { Column { SegmentedColumn( modifier = Modifier.padding(horizontal = 16.dp, vertical = 8.dp), content = buildList { @@ -190,6 +195,7 @@ internal fun InstallScreenMaterial( } } ) + }} Button( modifier = Modifier .fillMaxWidth() @@ -206,6 +212,7 @@ private fun SelectInstallMethod( state: InstallUiState, onSelected: (InstallMethod) -> Unit, onSelectBootImage: () -> Unit, + onSelectAnyKernel: () -> Unit, ) { val confirmDialog = rememberConfirmDialog( onConfirm = { @@ -221,6 +228,7 @@ private fun SelectInstallMethod( is InstallMethod.SelectFile -> onSelectBootImage() is InstallMethod.DirectInstall -> onSelected(option) is InstallMethod.DirectInstallToInactiveSlot -> confirmDialog.showConfirm(dialogTitle, dialogContent) + is InstallMethod.AnyKernel -> onSelectAnyKernel() } } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallMiuix.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallMiuix.kt index d1d09d80dd94..f0e8532310e7 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallMiuix.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallMiuix.kt @@ -4,6 +4,8 @@ import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.expandVertically import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut +import androidx.compose.animation.fadeIn +import androidx.compose.animation.fadeOut import androidx.compose.animation.shrinkVertically import androidx.compose.foundation.LocalIndication import androidx.compose.foundation.interaction.MutableInteractionSource @@ -118,6 +120,7 @@ internal fun InstallScreenMiuix( state = uiState, onSelected = actions.onSelectMethod, onSelectBootImage = actions.onSelectBootImage, + onSelectAnyKernel = actions.onSelectAnyKernel, ) } AnimatedVisibility( @@ -146,6 +149,11 @@ internal fun InstallScreenMiuix( ) } } + AnimatedVisibility( + visible = uiState.showInstallOptions, + enter = fadeIn() + expandVertically(), + exit = fadeOut() + shrinkVertically() + ) { Card( modifier = Modifier .fillMaxWidth() @@ -230,6 +238,7 @@ internal fun InstallScreenMiuix( } } } + } TextButton( modifier = Modifier .fillMaxWidth() @@ -256,6 +265,7 @@ private fun SelectInstallMethod( state: InstallUiState, onSelected: (InstallMethod) -> Unit, onSelectBootImage: () -> Unit, + onSelectAnyKernel: () -> Unit, ) { val confirmDialog = rememberConfirmDialog( onConfirm = { @@ -270,6 +280,7 @@ private fun SelectInstallMethod( is InstallMethod.SelectFile -> onSelectBootImage() is InstallMethod.DirectInstall -> onSelected(option) is InstallMethod.DirectInstallToInactiveSlot -> confirmDialog.showConfirm(dialogTitle, dialogContent) + is InstallMethod.AnyKernel -> onSelectAnyKernel() } } diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallScreen.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallScreen.kt index e2ffa3016542..482b0df616ff 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallScreen.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallScreen.kt @@ -63,6 +63,7 @@ fun InstallScreen() { add(InstallMethod.DirectInstall) if (isAbDevice) add(InstallMethod.DirectInstallToInactiveSlot) } + if (rootAvailable) add(InstallMethod.AnyKernel()) } } @@ -87,6 +88,10 @@ fun InstallScreen() { val onInstall = { installMethod?.let { method -> + if (method is InstallMethod.AnyKernel) { + method.uri?.let { uri -> navigator.push(Route.Flash(FlashIt.FlashAnyKernel(uri))) } + return@let + } navigator.push( Route.Flash( FlashIt.FlashBoot( @@ -136,6 +141,13 @@ fun InstallScreen() { } } } + val selectAnyKernelLauncher = rememberLauncherForActivityResult( + contract = ActivityResultContracts.StartActivityForResult() + ) { + if (it.resultCode == Activity.RESULT_OK) { + it.data?.data?.let { uri -> installMethod = InstallMethod.AnyKernel(uri) } + } + } val state = InstallUiState( installMethod = installMethod, @@ -146,6 +158,7 @@ fun InstallScreen() { slotSuffix = slotSuffix, installMethodOptions = installMethodOptions, canSelectPartition = installMethod is InstallMethod.DirectInstall || installMethod is InstallMethod.DirectInstallToInactiveSlot, + showInstallOptions = installMethod != null && installMethod !is InstallMethod.AnyKernel, advancedOptionsShown = advancedOptionsShown, allowShell = allowShell, enableAdb = enableAdb, @@ -156,6 +169,16 @@ fun InstallScreen() { onSelectBootImage = { selectImageLauncher.launch(Intent(Intent.ACTION_GET_CONTENT).apply { type = "application/octet-stream" }) }, + onSelectAnyKernel = { + selectAnyKernelLauncher.launch(Intent(Intent.ACTION_GET_CONTENT).apply { + type = "application/zip" + putExtra( + Intent.EXTRA_MIME_TYPES, + arrayOf("application/zip", "application/x-zip-compressed", "application/octet-stream") + ) + addCategory(Intent.CATEGORY_OPENABLE) + }) + }, onUploadLkm = { selectLkmLauncher.launch(Intent(Intent.ACTION_GET_CONTENT).apply { type = "application/octet-stream" }) }, @@ -168,7 +191,8 @@ fun InstallScreen() { val isLkmSelected = lkmSelection != LkmSelection.KmiNone val isKmiUnknown = currentKmi.isBlank() val isSelectFileMode = installMethod is InstallMethod.SelectFile - if (!isLkmSelected && (isKmiUnknown || isSelectFileMode)) { + val isAnyKernelMode = installMethod is InstallMethod.AnyKernel + if (!isAnyKernelMode && !isLkmSelected && (isKmiUnknown || isSelectFileMode)) { showChooseKmiDialog.value = true } else { onInstall() diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallUiState.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallUiState.kt index ab0911ccba38..b200484cc3a7 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallUiState.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallUiState.kt @@ -13,6 +13,7 @@ internal data class InstallUiState( val slotSuffix: String, val installMethodOptions: List, val canSelectPartition: Boolean, + val showInstallOptions: Boolean, val advancedOptionsShown: Boolean, val allowShell: Boolean, val enableAdb: Boolean, @@ -23,6 +24,7 @@ internal data class InstallScreenActions( val onBack: () -> Unit, val onSelectMethod: (InstallMethod) -> Unit, val onSelectBootImage: () -> Unit, + val onSelectAnyKernel: () -> Unit, val onUploadLkm: () -> Unit, val onClearLkm: () -> Unit, val onSelectPartition: (Int) -> Unit, diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallUtils.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallUtils.kt index f0d210508638..9cc5cb94fc86 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallUtils.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/install/InstallUtils.kt @@ -27,6 +27,12 @@ internal sealed class InstallMethod : Parcelable { get() = R.string.install_inactive_slot } + data class AnyKernel( + val uri: Uri? = null, + override val label: Int = R.string.anykernel_install, + override val summary: String? = null + ) : InstallMethod() + abstract val label: Int @IgnoredOnParcel diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/util/KsuCli.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/util/KsuCli.kt index 39be70bf9d19..3c944d9b5814 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/util/KsuCli.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/util/KsuCli.kt @@ -22,12 +22,16 @@ import me.weishu.kernelsu.Natives import me.weishu.kernelsu.ksuApp import org.json.JSONArray import java.io.File +import java.text.SimpleDateFormat +import java.util.Date +import java.util.Locale /** * @author weishu * @date 2023/1/1. */ private const val TAG = "KsuCli" +private const val BUSYBOX = "/data/adb/ksu/bin/busybox" private fun getKsuDaemonPath(): String { return ksuApp.applicationInfo.nativeLibraryDir + File.separator + "libksud.so" @@ -170,6 +174,52 @@ fun uninstallModule(id: String): Boolean { return result } +private fun processUiPrintLine(s: String?): Pair { + if (s == null) { + return Pair(1,null) + } + + val check1 = s.startsWith("ui_print") + val trimmed = s.trim() + val check2 = trimmed.startsWith("ui_print") + if (!check1 && check2) return Pair(1,null) + + return if(check1) { + Pair(1,trimmed.drop(8).dropWhile { it.isWhitespace() }) + } + else { + Pair(2, trimmed) + } +} + +private fun flashWithIoAk3( + cmd: String, + onStdout: (String) -> Unit, + onStderr: (String) -> Unit +): Shell.Result { + + val stdoutCallback: CallbackList = object : CallbackList() { + override fun onAddElement(s: String?) { + val (type, text) = processUiPrintLine(s) + if(type == 1) { + text?.let(onStdout) + } else { + text?.let(onStderr) + } + } + } + + val stderrCallback: CallbackList = object : CallbackList() { + override fun onAddElement(s: String?) { + onStderr(s ?: "") + } + } + + return withNewRootShell { + newJob().add(cmd).to(stdoutCallback, stderrCallback).exec() + } +} + private fun flashWithIO( cmd: String, onStdout: (String) -> Unit, @@ -372,6 +422,54 @@ fun reboot(reason: String = "") { ShellUtils.fastCmd(shell, "/system/bin/svc power reboot $reason || /system/bin/reboot $reason") } +fun flashAnyKernelZip( + uri: Uri, + onStdout: (String) -> Unit, + onStderr: (String) -> Unit +): FlashResult { + val resolver = ksuApp.contentResolver + + val timestamp = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(Date()) + val tmpFile = File(ksuApp.cacheDir, "anykernel_${timestamp}.zip") + resolver.openInputStream(uri).use { input -> + tmpFile.outputStream().use { out -> + input?.copyTo(out) + } + } + + val destZip = tmpFile.absolutePath + val destZipName = File(destZip).name + val destDirFile = File(ksuApp.cacheDir, "anykernel3_${timestamp}") + val destDir = destDirFile.absolutePath + + val cmd = """ + mkdir -p '$destDir' && \ + $BUSYBOX unzip -p -o '$destZip' "META-INF/com/google/android/update-binary" > '$destDir/update-binary' 2>/dev/null && \ + cp '$destZip' '$destDir/$destZipName' 2>/dev/null || true && \ + $BUSYBOX chmod 755 '$destDir/update-binary' && \ + $BUSYBOX chown root:root '$destDir/update-binary' && \ + (cd '$destDir' && \ + if [ -f './update-binary' ] && grep -q "AnyKernel3" './update-binary'; then \ + AKHOME='$destDir/tmp' $BUSYBOX ash '$destDir/update-binary' 3 1 '$destDir/$destZipName'; \ + else \ + echo 'No installer script found' >&2; exit 1; \ + fi) + """.trimIndent().replace(Regex("\\s+\\\\\\s*"), " ") + + val result = flashWithIoAk3(cmd, onStdout, onStderr) + try { + return FlashResult(result, result.isSuccess) + } finally { + try { + runCatching { + createRootShell(true).use { sh -> + sh.newJob().add("rm -rf '$destDir' '$destZip'").exec() + } + } + } catch (_: Throwable) { } + } +} + fun rootAvailable(): Boolean { val shell = getRootShell() return shell.isRoot diff --git a/manager/app/src/main/res/drawable/anykernel_foreground.xml b/manager/app/src/main/res/drawable/anykernel_foreground.xml new file mode 100644 index 000000000000..d1d954c0305a --- /dev/null +++ b/manager/app/src/main/res/drawable/anykernel_foreground.xml @@ -0,0 +1,9 @@ + + + diff --git a/manager/app/src/main/res/drawable/module_foreground.xml b/manager/app/src/main/res/drawable/module_foreground.xml new file mode 100644 index 000000000000..5be168b1b933 --- /dev/null +++ b/manager/app/src/main/res/drawable/module_foreground.xml @@ -0,0 +1,9 @@ + + + diff --git a/manager/app/src/main/res/mipmap-anydpi/anykernel.xml b/manager/app/src/main/res/mipmap-anydpi/anykernel.xml new file mode 100644 index 000000000000..1c7de6e5837c --- /dev/null +++ b/manager/app/src/main/res/mipmap-anydpi/anykernel.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/manager/app/src/main/res/mipmap-anydpi/module.xml b/manager/app/src/main/res/mipmap-anydpi/module.xml new file mode 100644 index 000000000000..f64849ddfc70 --- /dev/null +++ b/manager/app/src/main/res/mipmap-anydpi/module.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/manager/app/src/main/res/values-zh-rCN/strings.xml b/manager/app/src/main/res/values-zh-rCN/strings.xml index bb95784ce1c4..0e5c289ebad6 100644 --- a/manager/app/src/main/res/values-zh-rCN/strings.xml +++ b/manager/app/src/main/res/values-zh-rCN/strings.xml @@ -137,6 +137,8 @@ 选择一个文件 安装到未使用的槽位(OTA 后) 将在重启后强制切换到另一个槽位!注意只能在 OTA 更新完成后的重启之前使用 + 刷入模块 + 刷入 AnyKernel 当前处于**越狱模式**。在**未解锁 Bootloader** 的设备上刷写分区会破坏 AVB(Android 验证启动),可能导致设备**无法开机**。\n\n请确保 Bootloader 已解锁后再继续操作! 继续 (%1$d) 下一步 diff --git a/manager/app/src/main/res/values/strings.xml b/manager/app/src/main/res/values/strings.xml index 25438526765c..105536998607 100644 --- a/manager/app/src/main/res/values/strings.xml +++ b/manager/app/src/main/res/values/strings.xml @@ -160,6 +160,8 @@ Select a file Install to inactive slot (After OTA) Your device will be **FORCED** to boot to the current inactive slot after a reboot!\nOnly use this option after OTA is done.\nContinue? + Flash module + Flash AnyKernel You are in **Jailbreak mode**. Flashing a partition on a device with a **locked bootloader** will break AVB (Android Verified Boot) and may cause the device to **fail to boot**.\n\nMake sure your bootloader is unlocked before proceeding! Continue (%1$d) Next From 7dc3aab6d99cee2e5797ee03e850f922952ce99e Mon Sep 17 00:00:00 2001 From: KOWX712 Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 33/35] manager: support install lkm by flashing apk in recovery Rename .apk to .zip and flash in recovery to install lkm. Rename to uninstall.zip and flash in recovery to uninstall lkm. Signed-off-by: KOWX712 --- manager/app/.gitignore | 1 + manager/app/build.gradle.kts | 16 +++++++++++- manager/scripts/update_binary.sh | 43 +++++++++++++++++++++++++++++++ manager/scripts/updater_script.sh | 1 + 4 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 manager/scripts/update_binary.sh create mode 100644 manager/scripts/updater_script.sh diff --git a/manager/app/.gitignore b/manager/app/.gitignore index dc5ca963c57a..117b6b02e30b 100644 --- a/manager/app/.gitignore +++ b/manager/app/.gitignore @@ -1,2 +1,3 @@ /build /release/ +/src/main/resources diff --git a/manager/app/build.gradle.kts b/manager/app/build.gradle.kts index 20f50be38cd9..c281d20f98ce 100644 --- a/manager/app/build.gradle.kts +++ b/manager/app/build.gradle.kts @@ -149,7 +149,7 @@ android { androidComponents { onVariants(selector().withBuildType("release")) { - it.packaging.resources.excludes.addAll(listOf("META-INF/**", "kotlin/**", "org/**", "**.bin")) + it.packaging.resources.excludes.addAll(listOf("META-INF/*.version", "kotlin/**", "org/**", "**.bin")) } } @@ -159,6 +159,20 @@ base { ) } +tasks.register("mergeScripts") { + into("${project.projectDir}/src/main/resources/META-INF/com/google/android") + from(rootProject.file("scripts/update_binary.sh")) { + rename { "update-binary" } + } + from(rootProject.file("scripts/updater_script.sh")) { + rename { "updater-script" } + } +} + +tasks.named("preBuild") { + dependsOn("mergeScripts") +} + dependencies { implementation(libs.androidx.activity.compose) diff --git a/manager/scripts/update_binary.sh b/manager/scripts/update_binary.sh new file mode 100644 index 000000000000..d1fe0f20f6ee --- /dev/null +++ b/manager/scripts/update_binary.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +TMPDIR=/dev/tmp +rm -rf $TMPDIR +mkdir -p $TMPDIR 2>/dev/null + +ARCH="$(getprop ro.product.cpu.abi)" +OUTFD=/proc/self/fd/$2 + +ui_print() { + echo -e "ui_print $1\nui_print" >> $OUTFD +} + +if [ ! "$ARCH" = "arm64-v8a" ]; then + ui_print "- Unsupported architecture: $ARCH" + exit 1 +fi + +# Extract ksud and magiskboot +unzip -o "$3" "lib/$ARCH/libksud.so" "lib/$ARCH/libmagiskboot.so" -d $TMPDIR >&2 + +KSUD="$TMPDIR/lib/$ARCH/libksud.so" +MAGISKBOOT="$TMPDIR/lib/$ARCH/libmagiskboot.so" + +chmod 755 "$KSUD" "$MAGISKBOOT" + +# use ksud to install or uninstall +case "$3" in + *uninstall*|*Uninstall*) + ui_print "- Uninstalling KernelSU..." + "$KSUD" uninstall --magiskboot "$MAGISKBOOT" 2>&1 | while read -r line; do + ui_print "$line" + done + ;; + *) + ui_print "- Installing KernelSU..." + "$KSUD" boot-patch --magiskboot "$MAGISKBOOT" --flash 2>&1 | while read -r line; do + ui_print "$line" + done + ;; +esac + +true diff --git a/manager/scripts/updater_script.sh b/manager/scripts/updater_script.sh new file mode 100644 index 000000000000..ef91f34318f8 --- /dev/null +++ b/manager/scripts/updater_script.sh @@ -0,0 +1 @@ +# KernelSU installer/uninstaller script From 7a18584548da645450236bced931cf95345acdb7 Mon Sep 17 00:00:00 2001 From: KOWX712 Date: Thu, 16 Apr 2026 01:02:10 +0800 Subject: [PATCH 34/35] manager: translation squash MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vietnamese: @SaleOff (#3, #4, #10, #15, #16, #17, #21), @PhuScam (#8, #27), @VietnameseTranslation (#24) Indonesian: @Neebe3289 (#18, #20, #22. #25) Co-Authored-By: ꑄℭѧᝰ.ᐟ <133284637+saleoff@users.noreply.github.com> Co-Authored-By: Juno Bủh <229590747+phuscam@users.noreply.github.com> Co-Authored-By: Neebe3289 <107115607+neebe3289@users.noreply.github.com> Co-Authored-By: VietnameseTranslation <219519027+vietnamesetranslation@users.noreply.github.com> --- manager/app/src/main/res/values-in/strings.xml | 16 +++++++++++++++- manager/app/src/main/res/values-vi/strings.xml | 18 ++++++++++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/manager/app/src/main/res/values-in/strings.xml b/manager/app/src/main/res/values-in/strings.xml index 68736e8a7cda..2014395ca2e7 100644 --- a/manager/app/src/main/res/values-in/strings.xml +++ b/manager/app/src/main/res/values-in/strings.xml @@ -49,7 +49,7 @@ Dukung Kami KernelSU akan selalu menjadi aplikasi gratis dan serta bersumber terbuka. Bagaimanapun juga, Anda dapat menunjukan kepedulian Anda kepada kami dengan memberikan sedikit donasi. Gabung saluran %2$s kami]]> - Profil Apl + Profil Aplikasi Default Templat Khusus @@ -71,6 +71,8 @@ Perbarui Mengunduh modul: %s Mulai mengunduh: %s + Mulai mengunduh + Gagal mengunduh: %s Versi baru %s tersedia, ketuk untuk memperbarui! Luncurkan Paksa berhenti @@ -101,6 +103,8 @@ Dapat digunakan untuk mendebug WebUI. Harap aktifkan hanya saat diperlukan. %1$s partisi image disarankan Pilih KMI + Pasang modul + Pasang AnyKernel Selanjutnya Perangkat Anda akan **DIPAKSA** untuk boot ke slot nonaktif saat ini setelah mulai ulang! \nGunakan hanya setelah proses OTA selesai. \nLanjutkan? Langsung pasang (Disarankan) @@ -136,6 +140,8 @@ Mengizinkan akses root melalui /system/bin/su, pada proses baru yang dibuat. Umount kernel Unmount modul dari kernel pada Profil Aplikasi. + Spoof Log AVC + Memperbaiki kebocoran konteks SELinux akibat penolakan AVC yang tercatat di log audit Memproses… Tarik ke bawah untuk menyegarkan Lepas untuk menyegarkan @@ -161,6 +167,10 @@ Gelap Warna utama Default + Gunakan ikon aplikasi resmi + Tampilan beranda klasik + Beralih ikon tombol + Gunakan animasi gulir Biru Merah Hijau @@ -179,6 +189,10 @@ Aktif (Default) Nonaktif hingga mulai ulang Selalu nonaktif + KernelSU Toolkit + Alat bantu untuk fitur tambahan KernelSU + KPatch Next + Implementasi mandiri dukungan KPM Buat pintasan Nama pintasan Pilih ikon khusus diff --git a/manager/app/src/main/res/values-vi/strings.xml b/manager/app/src/main/res/values-vi/strings.xml index ce743bb5f029..834715230564 100644 --- a/manager/app/src/main/res/values-vi/strings.xml +++ b/manager/app/src/main/res/values-vi/strings.xml @@ -13,6 +13,8 @@ Cập nhật Đang tải xuống module: %s Bắt đầu tải xuống: %s + Bắt đầu tải xuống + Tải xuống thất bại: %s Phiên bản mới %s đã có sẵn, nhấn để cập nhật! Tìm hiểu về KernelSU Tìm hiểu cách cài đặt KernelSU và sử dụng các module. @@ -61,8 +63,8 @@ Chế độ An toàn Khởi động lại để có hiệu lực https://kernelsu.org/guide/what-is-kernelsu.html - Superusers: %d - Modules: %d + Superuser: %d + Module: %d Tên miền Quy tắc Khởi chạy @@ -89,6 +91,10 @@ Nhập/Xuất Lưu mẫu thất bại Chỉnh sửa mẫu + Hộp công cụ KernelSU + Các tính năng bổ sung của KernelSU. + KPatch Next + Triển khai hệ thống hỗ trợ KPM. Mẫu Hồ sơ ứng dụng Mô tả Lưu @@ -107,6 +113,8 @@ Thiết bị của bạn sẽ **BUỘC** phải khởi động vào phân vùng không hoạt động hiện tại sau khi khởi động lại!\nChỉ dùng tùy chọn này khi cập nhật OTA đã hoàn tất!\nTiếp tục? Gỡ cài đặt tạm thời KernelSU, khôi phục lại trạng thái ban đầu sau lần khởi động lại tiếp theo. Chọn KMI + Flashing AnyKernel + Flashing Module Kế tiếp Cài đặt trực tiếp (Khuyến nghị) Chọn file @@ -136,6 +144,8 @@ Cho phép truy cập root thông qua /system/bin/su, trong các tiến trình mới. Kernel umount Umount modules khỏi Kernel trong Hồ sơ ứng dụng. + Giả mạo nhật ký AVC + Khắc phục lỗi rò rỉ ngữ cảnh SELinux do từ chối AVC trong nhật ký. Đang xử lý… Kéo xuống để làm mới Thả để làm mới @@ -154,6 +164,10 @@ Sáng Tối Mặc định + Biểu tượng Bàn cờ + Trang chủ cổ điển + Công tắc hiện đại + Trượt để chuyển tab Xanh dương Đỏ Xanh lục From d6590d2ecb17423f9cb3309cf826b9b0919e38c1 Mon Sep 17 00:00:00 2001 From: cyberc3dr Date: Thu, 16 Apr 2026 23:58:14 +0300 Subject: [PATCH 35/35] manager: Update Russian translation --- .../app/src/main/res/values-ru/strings.xml | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/manager/app/src/main/res/values-ru/strings.xml b/manager/app/src/main/res/values-ru/strings.xml index a87b2444f000..9395e02f81d2 100644 --- a/manager/app/src/main/res/values-ru/strings.xml +++ b/manager/app/src/main/res/values-ru/strings.xml @@ -206,4 +206,86 @@ Янтарный Серо-голубой Сакура + Версия менеджера (%1$d) и версия драйвера KernelSU (%2$d) не совпадают. + Состояние Seccomp + Не поддерживается + Отключено + Строгий + Фильтр + Неизвестно + Файлы логов + Не удалось загрузить sulog + SU log не включен + SU log не поддерживается + Включить + Фильтр по типу + Очистить лог + Root execve + Классический SU + Выдача root доступа + Перезапуск демона + Неизвестное событие + Перехвачен запрос /system/bin/su + Запрос на выдачу root доступа + Выдан root доступ через KernelSU ioctl + Демон перезапущен + Отброшенные события + Мягкая перезагрузка + Режим jailbreak + Jailbreak + Jailbreak может быть неудачным, пожалуйста, проверьте логи + KernelSU Toolkit + Вспомогательный инструмент для дополнительных функций KernelSU. + KPatch Next + Самостоятельная реализация KPM. + Предиктивный жест назад + Включить поддержку предиктивного жеста назад + Это PR debug build. НЕ используйте его в production! + Ядро было собрано с поддержкой PR подписи. Это не production ядро! + Прошить модуль + Прошить AnyKernel + Вы в **Jailbreak mode**. Прошивка раздела на устройстве с **заблокированным загрузчиком** приведет к нарушению AVB (Android Verified Boot) и может вызвать сбой загрузки устройства.\n\nУбедитесь, что ваш загрузчик разблокирован перед продолжением! + Продолжить (%1$d) + SU Log + Записывать события, связанные с root-доступом, в файлы sulog KernelSU. + Подмена логов AVC + Исправить утечку selinux context, вызванную avc denial в audit log. + Включить Monet + Стиль интерфейса + Выберите стиль интерфейса. + Масштаб страницы + Задать глобальный масштаб отображения. + Использовать официальную иконку приложения + Цветовая спецификация + Цветовой стиль + Классический интерфейс домашнего экрана + Иконка переключателя + Использовать анимацию прокрутки + Размытие + Включить эффект размытия для верхней и нижней панелей. + Плавающая нижняя панель + Использовать стиль плавающей нижней панели Apple. + Жидкое стекло + Включить эффект жидкого стекла для плавающей нижней панели. + Сглаженные углы + Включить глобальные сглаженные закругленные углы. + Показывать только приложения основного пользователя + Автоматический jailbreak + Автоматически использовать Magica для повышения привилегий при обнаружении Permissive SELinux при загрузке. Требуется предоставление разрешения на автозапуск этому приложению. + Всегда предоставлять root для Shell + Всегда позволять adb shell вызывать su. Не включайте это, если только это абсолютно необходимо. + Принудительно включить adb при загрузке + Принудительно включить USB-отладку и отключить аутентификацию adb. Не включайте это, если только это абсолютно необходимо. + Продвинутые параметры + Развернуть + Скачивание модулей + Скачивание %s + Скачивание завершено + %s успешно скачан + Скачивание не удалось + Не удалось скачать %s + Скачать + Отмена + Установить + Запустить adbd демон с правами root

    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ξUfP%eDe;RfX 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 z zH0(s1PS;w|rq)5KVdKuxKAuyo+q-^0>Xt!_Q`_&GpVgj~PRrUv0!MR?A z7D*F#OX`LMn~=Zo@dzM}iSZX{h~lejx%Iu%FC}0f{R}MP<8{!z?8LjwSpVg4imwBW z2b)yazQ-wmx7q=$5<1(;aW({AtuH|OKm-A@4jQLq0@b>dd?ei$P?>(O*Ohjg{swg=INP~g3`5~^{dck1|y`SYRY*+2v!s&Z!FXVM?x;poX{j)fT0~=UZLiHk%e)6$@*gEv;7W_E(+ zJun$OcNk_C_40_eYaCfXd}AEZ@CbROi+U>gq!+t9(lTE^%-5Nnw6`S5-Wi4aOW~78 z=WRRui_d}QThkIoSav??0=AO{bNPe44Egs7mPBAKmqE_3??>1>Vr{2u{5;UhA-Mjq zizPonHbLk3kKotEBT+MA3eI8lu)~3lF+8R|c8Ka~Jp*i00v%V|CWCnVTqnhVO7 z$(D0+UY!Tuv8m;jeHK15&ZqJ)zEBUJDIRCrh=sI42Bi4q>L4RMi+uQ%WqV~yG= ze+88w{XK|W28POdHJLDYYepHlD1FqnD;jn{rpC`jGUHW#(ii3Q3+C8@h$=Ma`}BEa zANWctN6=Smrf)mC?qEt!ikju{UNJILDPyh+Ry zX3W(VZre0lA~?t&ZQG!M*#^zfHt3QzT+u?irebUQ=O~^qYB|X3(Q!g~cp%j6e+v=E zv_B5U8}RVh*b9_Ic--=l_B}w4RTrE`Yn(?rX4;Y*tUn}@_;vlL?M}Beu$$haEv3!8 z-HaJSQ6Lp$$Tw|&HdASMa6D3e{33Y97va--3wuh=_5$R%#BrZYy{-N5c^b1%4W32c zI{vP_?JF`y`LA2e(8GL4Z7FPnVDLJ~r4@ni> z+o+IFfDAAMEuFJPAHBC_kyhPs-xkQbp_|zuP3tDYBZ~a07wC?`9|?N1B0#;ld{Rn4 zhqEPt3g`u>9l^vE*sIJEoFUmPS<_!7=x3dF3a}+Af((F;J69<~*jcepq;mNB7dluf z8AS9578W4I0oYvZkDZ}GyYBDeO1%Y`ZO&kM>W{vO*=!xyI1V%N2BOhBVp-Sw*8Yvd zKv%RP*&LCz#1=V&DN(t@>`QE6GiWS6zqA%w{GgUm1h%3cI~$+0*{@Nkd5L1nez(2U zXqSa(s}cA#fPd{q`vm2J{96ZZ>;Iv)MchfVT#_?Ccix;+4o{l5Nuq$bLBOT`EJqvKQ6KA7{24{IhXM|oK=MLcC6%rnv zIn)z^hZhd-v8XIMB5vw>CM6N&*pYKJQbH>ZKIXX;e5pSyALT6W5_0!=o}n0BqD6OFc9Ha!zs?t zt0*PIH8Z84O*v?mru*hM7=%DaY?qv%%>IrplUqE#3s~DB=ovD27b|s zS5@%Nnl66SX}N>2lhm8T@SFvxb74EJ&-cSH8W*`Yevdj*#8mn zhtAXTbKnMe&wo&ZZ*T@+@XNf%O+bakuW|kp`8UopaaY2b0E0o^vk+&W<1CFN;w%?u ztvH)V2IK4`tO&Z}hv^<)|K_d@jbU4CHMs4#ySKYYn_6vcNp_SphqO%bsD&J+Y#;l%gf zA#K6cOhF~UCTCoF`(otSk1LIYBo@M7{0gi-INc8E4P3jTqza^2+J~iLe~v57D6Kz6 z!8O$-`3fI?W(V+taK>Jeo71#EZjfVH6=M1f?3LXyeZ>ZOP~3FP{#ODAP`gH0Nu(WW zlw(OFBIX_DcYyb8lr4sCSla~8%L3u<$CKFROL94{b$_3^rXr|Du}klNTkYBQe7KsX-`C|Ye;48Ni`p-8j-3C<~v_Lvc)GsYnO}n(vmSE{J`631l3_-AJZsT2^_{=6u@a{npc!G0!HgB zj9YokU(b6Cd7M3Y4hx?l&wu*T@}QNI2SN`z8tG5}E&VjqZ{Xraxd8Me+tn!VR^IyX z|CJ{OdG=~>&w~Ep2xg@`;2}Alq&2G$P9!Cxw85k9g7U0Oj?10b8C1~(>NcZA-@qer1ZCu|zHCWGA z@orIQj|%j`eT26EeFA;IOV}9`F@T&`M*r0sjo2HPBgbImI4P)+a$sDy(toJp;FH(&Jo%V`6@vZ#52Xy)GpmVMizgTUE!Q?Yc{9Dg zI0rMg9Oa(&xrNO}I#MVPegyqg3eOSPGUMJ+-(_LTfA8(Vy%JJb=|_E)afKB7P%FdV z%3q4|i%_GPc(c!ie+yU@`W!_cBZxvzPg{^fcPnIBB*(W_oQN~Wbv>kxpl53ILgo%B7I_0)XR^xGm8=5Q>EL!qy>RU? zejmke(Wt-LTkw&@2f$0+)Cb#)VBb94z-J^v3f^tb?nqy;u4LVQmGG{#4dZ{f!Bn{g zEwGonBl$a{+*>NwZADvg=)>MSB)4}RJl?4dHxbA9)fgwMIah+D69_4X7cFh=5T#jrcJ0vaI%tRc>m!s5~Rq~zk3Q9g$af;z+ zc?WSL#V933h?3%nx3qdaYR02x4%F;D?|SS8COC?rY!ZKtQx$PBb?`ojW3(KFyk<1WK|{WPoFbiz(&-3j{vP@o;s706Ir z#9aBcQmbi*!Qq!=Tx-C)9-U!nk4bHm|3jwJ(aqBJGIp_F$pgZ5h}Js{^#<;sADCNs z)-ZEe{TJAqgn9eA*Ok&ZGaKZ0NEx=5lwZ@jKegYHP6T+=1(4{tvH`!)(Tju8Hm8ZR zQdMecR~g@wqPiGiC*CoJT*EW58Y9iG&~ZNjTKN;^UvJDmH&(~ZSv#b)sI8kY;zuaM z4LVwaT93fm@jkBqM2admDD68y>Cd<1G>oZb_BW7ksl2|F5mzHu6yARgQl+;)25GKe zDnd@`mCXo@_zv#FH@gz@I&mG2p^dL(#8f}p0(hM2Qrm;vXp;PT$9tbexc$jf?!U?0qj!wkP}vX%Y4X$FK20ZP`JRQIMZif5|GT=}P zOD4l+?P1&xdx9a;@Y{~`Z?9m;&_`La8*;_jxF3gm6TV?cb0~(*abO-|57UYKgI|N4 z12(M-kVg9@{BOTzNEDuN=?p_ABY!xqy*8UAg(x><9DHx_$v?*s%Q}`khx_xkz`qgs zttc~j7(-f0U}I9lkQtC!-TPh8pZ6kUTDdsCjWTzjUc>Rso&STfn;4RV@^evEVth?6w|3rC5@a!}A#30XPlrtJ_68AA=2zu;?U%~sJd}@5-uB%NE7t~{!QPg6L zqL+!%kw9pcZkZ1ITx$Iflv_9KDjzZB)@9TI=ZwJPPE4nAjF|w?QH z_c4>WozdK|-Yy;0qG&W?msX#mKDX1eNTUXt=uXcAn*NB-l$t5XeGG3MywbvqhR0@$ z3NazPQaG^q%5#Z$$E!!%P<%B8HKEarzg6_>1`81fR2{+?t3VyYz==|BD-JZ`5wE>6 zp-?4on4k0tl?(W!Z@wl%#c?{OxGY$TDYT16Y1h8?pntYvoCTkuQJ%4}iwwuw1aw1c zx7aQHiMirH|5CZtT8bdy8N(1yGE0E#zRzBUSke1{K(H^{Fe1z)th-{VL);@O2^6JX zKyOaNa~xgF=$kDG8+O_c%b`xyh$P!#SyOUYX3Gx)iRQ`mdp4{?6a!K61r}}CEI&%A z@>f|j*6Q=zXWDP6=Hoqk2Fl6o!d+0Xjd<#09KT35%P$z}v`qcGc9okX!KSnLE!;DA z>4h@s`L4tA5>lt-YS-ghBGNxj*3EKi-^e!E79eIsgZxbHVY$$JSbkbKEEgE?)ZAjE zj8swE`JT@I^{fF`)byLTIfx+uhrlcQh8K{!y^}tt z4)&&h-Cd2lD-FwW_urlL+l@3&5scc#0-Rk?&g_*-aC}ZVW)VNnfwP}_p1|P=PD38( z`f?vF{e-qZN`KXGSbj~2%;@cU3~9gWd=$1fxGFpX6qq}}nxl8kwugZf1bjLr9|6WX ztre`1+4a%ATo$e2{Cwms#d9hQb5Z^jy)(tM6zrXdUdiHGH{u-bGp&;(_x>rWiaz(_8WmUgo4DR{zD$g`U`H9F+kPo`u! zHIvYajBOI`J&1d|4E8~TP29P`NruM5;A-i@ z{3Xg=SFs8dWrIAJ(9zqsv&KsZ-uOj)o})VbOEL*9lfDTs0!dVr;Oa||itF!j|AZJ$ zA>i2DA!WcJWnjU^=^+VDq$y(E>0C%d-7PMu+7l6>Z-ggeNET)$bi+2vcWw{yN`1iT zmd4QIGU+{NTi_$5XYhm?&`C&VVklxv$y@k@*lW{i{|9QoV`a3TMqh-uX5JZ#xW=)y z_B+p}uLF|fwDz|VA+jIplZWzZl(fNnv9-ZG+Im{DMVkr!H4|y}0h>b&pZkgTEC6qw z_Hc|bY6!JN8ijMcQLh{i$8kR+ryR%QxS}UbERIk1q=`aV_Xetg6#zN%2NA9sWmFkW zJl;AKa(Gq5)P+=&pwfR*LlP#qYvj#2x)B^|(X2;%qo$kwJI1uA|4(n~Mqn4H=i$ZI z2W?e{R4SUPkV(KEVM)XY-c_Yloez$;JO0;sW^_jj?J)~lX)@l5)&C3mHtR)c1H4rs zyFdwl_-imyX(V2xL<>%Ff!Eh--Y=8R!=tX=_M0z9LW*+ubv+!O_$f3G6;p+?RR`a& z4!n?kbvlXgIekYV4UcN3((W?psDH3;z4(T8_d)bKv#$0R-yHa{zTurY)l@svW`_@A zvCU@tt>s4>tr^lHw<;po4$uIWXv+3aEv?;eQ;$%&j#M8->-BD|q4T@Ll1}F`TW{!i z^|68Iv%P=6CZND=RSMb&w^{NpX7a3s@m#w7rBJKGr|DH};@8sa|2--2NT}1jQ9OwPF{4hLi2}Tlo zzDBMf=IR=`3$#rI(*lb)btRn#eXyI4hwtD1soD#WG3e%?#f*N={pRX!_;8m=k7IAk z>p-9URKrByr2OEz+Wj6CUxi3~<* zQ`P5;sOe_D4E8bi;LZ|qQmd(l{uD9$s6?SO`aWDO%&C!|CN*+_P$P%t*2o$&`#x4J z%+DO;JmMRSs3;6#W7I%LQ3K1{Iah&1iYJc3-A{d?)g)oCTT|L3Ka&H=3wpT#Wj$>` zxk7pdX-(SNQTCtw*TpONxr5n10HvfhNKNeuP|seEd!|riB8_+>qk{4=2P{s(~n|4>*RN(~=A))8iO~0GwIVH_RB~6Tvg>Orl^qB8r zs~WZznW%N7Z*wK>cP&QOVq)PaoigLP8gH{0Ya>06$9bn$Iaky3Xq?~n(s9xsl!Km4 zMrxD6cnCXbyfrA$(BPZ%T4*W8u!y;=LQM%$Uhqb`X-SatjA0;|Xh_8P=xfJ*(t@+o z8hh;kyv->udiM^K+z-7wj8ycjg}q$lh5@wmnC7b+WI)voi(a_F=%pKV`gzyP_moMW zc^S7VS%bbFZs=c$ail4ec6y0G=h`~RAMlplNH7d`-`U*5$ zXC-~FF}RnDIcqjdFk zXx0Bf+SS}6?P^xTrynIf>%~|@uA$y-@}q{M@SF~7T!fkSA6#4Jz26-f@DqzQf>=WL zPoQyC;3tba2Gr>Vazf2v&E1Xj1(1WBfJe+`9J9*v$Km;u2TD3mrCf;TAlJxW8H{2# zTxXrx1L}W3>LNAefUe5@+-whx>n^4>AnpF*p1Gq?NsD-^n665D|HQ~ZS@rT!k0yf0 z6OI90j?sUEvdp;togDl$_IIE%;78^VB_IE>6EX}iC! zI(rEGUa>5I2F2%*gd=T+lzxrD^*K>yM$>d1Ep-^heBQ}{BteH2+^tn9yOlBt5wAw) z@g2&zdEjp~enYA8I;F;Ssxpbey*HFPo>Xl|bdMT&opN>zXSbA9B@HQ*wNB~ZbWnud z$Tu2S_glzNtY*0wOY^|%ti(u!_xARWQ&N(Fnl;XLQ!46WZRUft_4Lh#B1@%kFiWw$ z&as^a_q82y&b49$i9igcG+juWg;dC&TPoyFa~XFYd4UX0p>udINf~-~4d!bH4`s&w zv*oX~QCok?9%H--Y(2(y(!L#jQ}CMl=%O6$B&Nqf^9Vy%(u3&d8u>70?t`vlNc9We zv&xW4=}uuW_`NDzdllEnA{%I&u!$rt>sGSc?%_JKSF61U6u&@e> z!gj>FV@AKgUq^ii6MSkhR?#}m-mFiR9l;)yo725bKA5vjK5V(~Do6UebilHBr+aGU zPJ2E{pWZzJz8W1}E4E7$yE7}d+ZU1T)4PY?y*3g(uw8l)HBQiWsrZb}WJ8B#IUU1vhP;0J)6Xd1*e&gE;v+0^qui@F-hnbw zkZ(51xpWLMwXpa3C+^Kc`N#3RLD&jBZuj8Rg?IP}`<`!6o*(5kqwH4LHOQ#n zzmb3LD~M}&20pE$Ske!&q(6}^3Fl9vyd20kUVzN%6w2*FTDmuT5YPP{X&Ug1M{)co z%HuLw^5GnY#A8o37yC2|-r0-m(_GKk)lH%GF?xXv98Ji_d;s zr+YiP$6JGY1$egt)aMrJ`WW_>hoe~RYZ;6+#DxZG7>{w%1P|@)lId#}-wDch+}EF@ z4e!cjR-^tSTDzweQ%^~Q7yK%IBb~r)MC^BPxoc8k`{JqW0)~tTGMLppL!E?nZRG{ zd8;Jl(3rsD3b`N_80VdzTN7;3SuK18ULX+zh&V-#u}{OiBSSugUCR&Br&pr0I8chy z(y41|U@TkP4J*`sQg|BCBUFfZLcKD`=IzoH*s#-E7Y! ziJ6sEj|e8t#Y}v`%8Zp--@e*=pcc*Bi|25r{X%UXjg3?4kg@Wj%9-c9|q=<%k2 zP_!C8iBz|7!A5EI>->LO9>X4!TCknNJQ|I5qq4v?6$@dHg!aOo!0{f+2C{?&7$j8Q zN{qlDsR;3evSgE2>XMrv>tA5BVC5oy=FY$DT6pw$rGT<)B8Vw^RQjp=N7%!8q*L+_ zcdg-oN1FlcST^nqGy-1fSKk?Ef4;>iwgf^D;}SMwXzdrgwe~vLOur1SmWUrI-#>Xn zJSH_W)C-ya8DIrnkTZ#;n&PjbZX@qVx$py|*KiMO9+ePB>-T%o$pBMY?Q~JVv6&#I zyGege?+GC~)5Ht=J&TCOH0SJo&rm&a@3J+uY9RH1ce8j^@d|vy*@T@Q@^MXaw1JqG z<4yV6c!sZy5cEX`i;&3|LWk=`K4F(_rM1$9^ybJSe#{yom#+B48b5%D=EgPfbQ z_=Vf4|34xgGKsrv)RtYlLW95O)CYcRZrRjAN|%dzPU9$d^SX6eD4~$%2>5r|R<|5Q z)X?bKqn@yc$Le23YwhzhU%Zq>1jCS#u+IA&{uh>8=bb^Hkei5k-vs0h>@$ZH1F^(D zh}!8RLPO9_e~i7BBz|?f`}I<4m!EVR_$UJ`#;fka#kWGoV1JBg)n}lwLs{YubR>Du7h%>wop@s|mOyYfr3afEE z;im0aR5{yDTcwZts3$sNm+keA0bjm?JF#F*&fwdQCje~&GFB!H?S_6Ng&8Pk6g=7? z`@-EQ10tTGcb@RlD~Pw+;r&9%qof~aXA+Soce@nhpXjE2X+XKrh?3Up9Ay8rm(aVR z7ic+#v|YB~z1ognzW|O3-tg>Y#Hher$@Ie#)?me(8i2JDUyEPto^)Pj@_gI5`r6A) zt!hL1fQTe*GZ6)hlU=qc9Y>UU7?gUzvKAaTeFp>SgZekX`y~p$E}$M+o>y+f}4`&p(< z)t7Bk_36)$jccvF&Mv@iAL{^Y%Q-}?eb7c=tHzqq|2}4{VYFckE#)fa$X=k_F}fdQ zU@*gG$`Hv@`U9R>$h5|)QG;0DU7XFpj36DSI21pCuP_{mw6g_gTX|L80PHNLFuxIF zU-wy9R`UZu%i*&UaZWe$W2@Fh=YZZUTz?&;@wW^1x#0ZXYSe9^YncNf6L&ONiIiSF1jTZ1mQ{-XMoPB3BR~XyvMnkbBOSFkgj%q!iraTgRMxeKO(F2Avkk4hwnS-G@>30TJH8iBr3saVj?(2Nb^!=QEKR)p@Ng4D1=cfQMqX3vs33``0AHn%E&D&eR!T?x@|+ z{zyA;-y)W;`cOgPp|ZssJaHmn1Q~IbbKna{qZhs2rG-z}_tH53|6r`~&5*_cFXTPx zSzJd5g;~EpxJOtndLacIm3j4b{RrS4JGU zGqCR=q7%~eD4-cH0RCDN_yhVz>?(yX6n7x@fspnHtm#$(yV4+TB-feX|7IMGWgaDa zdafMC^?g0}?xqR;-a?Aa#LRp^&i(EF2poU#-_mHxmzBH2R9FA6tMtyJxN`S7*O_vh zH8B^+Mndaw9Y-JI_d(`5zBdz^--)YV;6qb>jC8^L;8hC2Ba}Zd)hYf19AH{bmW{@Q z*a0~?r9RI(Dc=m+U-*&GG=;_VF15scR_WzS#mv}tcvMjyGZP+*22oG?lP8%cnFtc5 z{LUq@L~t$%y&FVa8xolMJH3t`5h&-E=(uE1r; zxR7F4C+rKwGJm-zj|od6?K_JvU5Uh+Je;H;cG}`E(XKV6KuB(QD8s)rp`*=S}`+gpfO+F1+k>ATKjmno0* z`Uj~Y2Op)GAJ-K7`P@n?cmI=`ss{@tQ1#Tux1rJ zP7=_&WDRQ8M8_P)Q;wVz_c|AuvMNhB#BS z^_qNBF+M|zU&FVmcs9PI$8EH$f+hs<#wnQL?&~i)&Vx$ou z^>H`ggU*;#OjlNcum56bNp z+Mge5$?ECj(e5JC>m9QWpiRUTo%TP2G`65K<4@Ylj?O86PEq=hC$#5$vd%q0IY$I; zcbanKRPJo>>fEE0a|2LQMk+^;bRo}T|G+K0g;EegU8*H_ZZ#l#FHi&mKe&~<56~>bp7d_R9XxAQV!~6 zXu>L@!nw-Gj>FnxIE5G_be##VGQWH2Did5+e!(8^U6euB7#EI{yod;X3|NZ3>(b+h z2}F6rk&p+y02v!K!V<93@=ZDJd87@A9P`EvK+YAVT@$)ZU^SwDlzRisc0stnadP+DpF^e6*d_ z@SKvt3zg?BhmM69g(n!{WNS#|NjX4_i-xIbx&HoWQ{=k|BU<)$-#%S&BYI6dBX-X{~(U z^Vo$ikhxeIduSzW>!!)kv88xiYT*yn_sL1h8%bS)V^MzbREpoh*Pa9Zsj*Srww^&e zpW(%}dYMy7c+>ias}EwpL=Wd-(~uJzCu&(8)ds`E`~le%%ZvejneCszG{ZAOQ-P*f zY@<*&W4;=7O7vhs~Kq9+rz# z1+-lHL>gU4kJ`Oy-TvF6{Pk1czhDAp&MCy2p*d+EoNVPDItgE+laPG5Gf2MNP(%8ZC<+z-Aa$GLr5iY!6<_f;Bvh~dPTlFN)CCAp0_@>Ilhn?^#Ia55If$+h)(T(E8jS!a_v%j7uP2~5WB=!!+n{MQ)8p9yP;voer1SUQ0 zd*_j`>5&DSWV_Hyqjx-5Yslnt*DswT#~G}(bI_kW=!iBz#Cv4WlK|ZZB90*J{Qm#E zkJK6l2$1;D{OQOWXHfEk?zJH9a|qK}s75pPVDVj+w zw$_RLi%SZKHf;&US(>UuZT?UWSeOzhPrErYd7mvAh0(9Eja&3mK9l;=q7e7X`PH<} z79;xVgDXJ!8hlEs>rA%2ipWMR4HE&Gy69 zIl&PQ?Gl}Fs;wKXW1Gh<%8%8Xyo*P;sE3QL zo`1#ONLR^>KECMH{CN9nih(MAiAWlgz`D7I>vNGS-V|J8iu%I0FLp^3Ip zcvEg{(ITc)lES++11BwFKZu-}iXA2?tzN8kS1qACWA#Pw#-*Y4$MYvWp##zw?F}v7 zu4*w*_{C_MmTbfhqTBpEc4B|Yy`1?^DX|kMy{7S8!Pj(3Qf(KNX%P{#5Z0@tfGkNL zq*CJDZN#sUL*o7C4!5mxi464MdmqzC)+ZLA>~um@COy{OAChQrJ@=|YeEWzSndxqY#X z!RU2%t+WlWL$dB%epMF&?R|k7xDOqe^Hcp{rhzW4?RAVHekh+p>NiviDV`?tk_DM- ztk=&{PEeBf#pc-bvbs=`=AtBK^raU1E+1o@{?-ETTZ~@X!eVX?tbBtwt^I#e{EUIt zcYn7|=$5MC8%(GM+Qu2zO3z~N8BXJ2b)W8i`VDI;r7iN2qJxfu)3x$(#8~UDEEtAXxL+Pwzz$QL zTTw6+XW8;7AnOzHF(3B92DMGh*J-#00aWXL#B1Q(hx1LD<8h!{mtaJETfK*{30 zsmn+b+t42+B;$O(&r#VA$0kG`V@=U0yV%;tB^JPE#?Z?i?oM6CB!xBQC2)SVNZRI* zQ_>4J^PmF&&J9Z4CWXp+j3n8zP15%C(Pq3$5o8Y%^ged_S;ffr2O!5`Ri=ww!7mm1(Nfz{m6}X!uXbBHE_2tEzx-+2Rzkpf&}Z`9PUL zt9NzLR^MA$Re+chR}H;r9vXe%9Ae`Lpo11aMMXj^+%6?jIeK7h4ZS`JYrl+A-~5^g zr|A9y-*~z}#8XDjq+^~enBTLini(@q+urga=$1~CS<9r+b6OJi z1wHRvaimXHXh8#Jz=_HRl!DdZ`3=_HwdI)aeSUkXav$^tvj#QDE-0`Axc2OqJqzB;|dsH{^{xw3)K`c{WNs@e2>NYo#RX< zrLc^#ykJq@DcHW{7W`fSuUTbQOHy;7Jda97yQO=2=H*<-KDU4eWUziMstU%>I&gc{ zBP%P0*);{`Wd_K*CY>`u0=r2%0Szb}zbO~PZae1)wpwY_6|ow}IV7KS6vF0%WcRHf zG>Z(qf*wn!tIymH=}H&y@SF0nm+Nrpi}V!VW9*k!BQzLHYDdd*k=2fULa>G5nJkrm zO#71Bf=OQ+x5(m8-G9T>Mde-iDd)lA^bhMwH3|AM#Tr@fMVdWJBNK%LIvi3du z*KvevNq&iyJZ>*8Fet?~7d+eRja-ur{0%8`D^c){VYcaon1}(Ym^p&5g9V zS~Vk`pvy+`U@WD~hRk)=8y89kFy?OQW6)SS*1oGTUj2Oqqr~N*V~fUT;1DB5TktDp zLir)B$E^mpz!&AOwvK45T1s_ZIdVMk8zI$l9+p1yk(yuSX5m-N-iM%%UCB^R=WS37 zOFNe?NfM+u8X!$e(5PjCPXSHzBR%Yw1)0>#1p;L+aG^H*Xm z$QeX+VU!0Glu^i-;eR4f9~4^G2ymDiLFsfFRRjDg7#2udj3fB|3{tIJIu|rcKbUx; znO=^%e4T^MB*I3NOYa8DFdXR%4*z!tZ9POQI8J$cgQ$s!tqqR#bWq!G5lvjE?3TXo zc2T`<=bjq5!RoZksIE%pBRgD*D&aIM5(PMmsy~IlFqZk`w-zvR! z{5ohLwN1cI(|7mAYx$UqshL5YAHVlvcsOI5yZ=z1KEnii6{ z5Ry?~!_hgmHXJKVxO}Ij8~)V6Hq^t@hQ3_{_-LvNavqU@uSPXy45X-btnHNFEtUS= z!|w+7R%2o7fW1a6P`#J%WrExyQgwP~pUIa2^D!91N zHo9{miHPs21Euk}c_OT=Ac$r>2eDLU*bYmXUbX@@vB^AqRvu{840+Gm_u}5_kT&>v zRcspoU7op@{b6u{1%4JjJ!Y&Ry|Isq3Qe@F%v_bp2*0-I><>Xs@g`87P65jf`>E!? zc1Co}z5}^D-AngYv1AqOAE?a%_odoq1aCwBdVlT{ynhkJr_$rM0+KAJsmKC7OBUYo z&rZaGu$dN;Ll$WCo{rus%?%KDGU`L`PU!+Kwea;}YS*@5QMJ%o2(JL?bxItpC*Wh? z0h+_}(VWbbcS}dQ8qhLZrB#9dzmDeH40#P>*Legn=z-{lo%+i<;Hq03k`&WJ1IPBz zK-!-tDpG;zGTU#)_dj4KnPO)?=WaV+L?i{E#H>?rfM>W?*<$405fmx2qj3RrM%$(J z!1uZV)UB@(_m!Ah>*MT+=)Jg^<89@z-!Ve!MUPh62HWQ-M^4bDbmeHE{Xx|IJY+%C zd+oYphFt`>V4!~vPSQ5^wOejj=QjwhL@0%{Qdj(taJ@T9XhzaY{~DyB3j-C)~Fu-&$(f zM>d9ezGWDEZ)MnxQ}(GgPTt3DoUl*5aU$YhYWgSae>ZEZw5yXbg*07koecl&3BZM% zgwI5Ls12$1oOSCsTM0a$9+2ri?;`wYw-Us>s4PaDo2}%U^fNf%8P{J zaTg9#)zf2V&J1@UB4Xc>qM>WGlyY&nmc9V*KHa}S!2nzf3(!mQb2}Nc^$Xfom{;)8 zf6sYbCXoxUCVj5NBO$j|I*o4qz6G}TrQd;3zN{hqE|ygGQ;69>ed^XqWf-x`8}806(q^cxLINpC3jh;qyDp)(DjQq&tEP!CX3s{aY1m_eP9k$nI$jnTNDNo%E-( zLT#VgKh4@R{kvAyAlUX~eKO-aMCZOCWn*u)8#87%#@ohj#8VK$OLp1yW_?LD?7hSH zvG52ZVxD)EZHIkF7T2~$*A9$uwJoQ5yM1dGFl2EoRByF^h~ud^E}b3vB~SrYQd{DY zpbhPk1N!d!U18hF@D3NS7t1fo=JJi8KqsY+n=mW7IKw$f=o;5ZJpR2(VHYQ!15-*Cp0mz6VK zISVC4%2_B72ZahC8kRh-JnQhyi>MDV?X6drekU~q!Vu3LcDE(vpych+9bbW+;zUOS zS6W-L#9l2;lB28h@jFiDE9YdL&SiwRz;~+4EY(lo>PdO#%>TpIo4_|w=Ktf*87m6mo$pwMzDDoVft0YNIVZdF*)0tzf@iX17T7FXQ@0u2?V2(}=) zc%Z2k#e+3oqz9Cww4F(>{NA4_?sxb9`on9|IiHz%=6OE%=l#jEnVh1il>81nV>#h{ zF~r@Zd2?VlROL*lTnO~ygmTWmP&h2)2nN_wHRy4A7gV|s#)5|bvojz1F0=r|y!WGO zq@(j{COc;%t}qwb@+$YkH13BP+**&J1kxy~^IeCxd*)6l46Sq(ZhQ0WXm2V#I54_VGr3amL$o46_F4xhe+nLn+e z`?HjTzA?Nm|82x6@a5DCEOlecwqq(!kC&Z%=x;-3FoFIbg8q|-abJB4w@fu3wr|9( zeuA;wdNqdahwOJ0=O|duT(BJi-`^g~-U4qeMBLE{%$0eVKl^dbm*6FlCpealdEr5O zBJ{i}T#NZIO(mSFxJ}p&nQjWOvYFmeP*7o!IcObxU5VcJGluz|ho5+&hK5LPVEm>C7Dt+V-T*1LlFp)YmdoeR)kX;v z7;<^Akm5}!!<+0&YUt``(Em%G8P5zO&sULVfxb@PUmgqVO&`R>JO}9+Havc#Kix)} zflF(vWn-rM6sYXiCN4rnrr2JLuW8-$ggbrKkFdR%d}0$c9>R;8gp6YFJ#gQ9kSk%p zXzvUA9MiebyOx11$RDO?1e!mCJ6sjCH%;DR9TvuPuzFzABe>>Ji95m{RTG)oXuw`}yB>56i)k*T>iip;~M6Syf4{7FI7xm;K zJ5>#B5&I&tA|Kz^+NOyA9I-HTk2cUo=smS6M8c|Z{YzoZ(YQmT2e9B_pkuVidG;2n z{T0UfKv1M3Z%DabLNZLMvf@Y}{3BW$)*~5$bN^jj8FqLzM-vYbQa13&BaPy7LV_ZZ@&UOn)o}#6^)q>ehzy0E$Cewa^`!( zk3qPL2D#k^)V)mfDlmSVf!||>1iV|;d4f45sGO+^H9f9UuHNM zbx7gHC^SVMJ_VfTQ`4J7JACBt*`sAyd3L)?cn`5qK(Tm0#~kx5k!=)$XNqHaZF zr5CUiBW(M5BZ0-&oNj6pKj^4mrGGkaa!;-mp0SgzJPzbR(u>m(E7At*#2a?wp*Loz zFweg3TGX&LUvug889XZF_6Ei_jnruPZMD0U#jWC|ZdB!#pV*B0z!w}e;#KarO9q@l z$Di!(RkCdWBArXpstWtTu3JoRHxTD;btGKU@86F8I4^$LnD5;tuYD$GCERpDzvmIJ zg4Xaw-5PvXRP}Q!{84UqfE#f|$}K+}LWF*XHTa!t0iII?!g(L?|C{ZQflP7k-kz9Z zYet_EO#@TK7Qc%)OXESUhv;9EREn!!aUB;P&C$Nrt3>4~%rGN6PzP?VE7rJmo}#R0 zzLr)IXPF?-)2gbxi0q#rUqeio0_( z!ltaK?|WK))TcqK5Btjc9d6Wc&xsGfa!%*AiRm3ZXT;WMJPxncbEo|-LdAB)9BLEW zI{WP71$9ZAIHsc_OZ%D**t5mo$NE(z2Y}vdh4qUvxFeQch@X?+zF6h1K+oRq9b~JP z-$?Bv-a*gwug4ltHc-EQq`g9&M9 zKyIeWZOF+E^o9JRXul1=k+2cJo#6!hhQp1b7e02XUqZ4o&7&gBtuY1Rru`Mwt0rF-pP;&7d4TVCT zPzGe_1oXKbl|O)%UC*YsiH~-=dSdAC1(m*NjKC7qoUC)IG6RSKM{FJTD_|v{iX;j= zacP*Ik?s=(T+tdl%V5YjuoF&GA5*O;LaxL%!9Vbp-3H!qs!h;U?!2kEA= zVUW7?Gqd8qCK{BCulPtiQCYPQbsl-z*Cx(yN4-kxu*^o_Qbxo2L6)ZVkRf701DfFH zpt{qT^P1>vi_-;WC!tzxt-Snj9-6->?{<&z`iCsh7OuJ z#Rvc|EDWTVwuE?wdHqud<56+Est)vv_}Jd^nNBtud7Z8u&Lr;zP!?NP^HH(y>4*01;GSAydJPl?m@#jHgQlNPpo7o-o2u?b4|X#X<#OjIvTl@ZX<(kWNZ z6-?*Adz}}*sCU2)|Hw?LGfj6mUym)@!tBJVRP-XG2N|E96F>#7$gP6cw~7a#_s@q; zc1^smn>Z%Wi*LT3FiqV*S~`&L{;J#U(;>-}picOByj2KTZt%wNYB%Wzq*2YqzAD59_j)y5e#<%a7VxJB z@V?o2-)l80e{WE+cO5Wb&Ud zw`M}lj$j`7F{brZsKt)?_dE8hJ_P;~WOs#P8hZB9;wv`%GAE!sK)d^sHk!z8c~C>|43tvQBvTqs>&!Sqx+k6 zkVK3R_lK{DyQ{s14MqLIgKBv0jSd^;=XG&V7x9blUHO9)=HZyNG{zC<2KiuA?IuVP zJ=@o@J*2ie6k(gP`q$*NxbiqyPF+L$A7yw0VB1NB!aEsbe3aL=u2zHZOXxCGr={FQ zE%X_t^)EuS@(M_!v_b%aUv2AVcuhla)%j4f>SvwTgYYgQ|~%uizc2bfy#KcJi5=yF4)1M$a%%j{KgEmc0Mf(%L{j^i*wkqMhRnn3)fC z^7wA$?FNkVhr1dB8XouL@UD!;(sdl?Jk?Xr$NdhU*V$H$%y%wNRkC4_=bX@A-^bWq z0>1Ja{vL)*pLF7c_)m;Rtt^+G7C*aAbNU48Pr@e0IAC27Crvs-G&4}H6ZYAYi<1xU zv+tXJU3>y)*!QB+xYTr7oFvOOw-qLPa$5XPxZwxfWha`YU(FS(WNh+y(8U<}xGTL? z`~x~pn>Zf%H3}2kby_UCp?GH-DsI`BIeCki-Tge`c$lG=d(csmy!VRJI#CIf(_*e= zpa;ew-=Im{D-9`I)1Z#p02{wfyI~gL2W0rX0`;!0>L5G?@Qon8{HAzaqGw6H;=;aG z&gg=?F&o~!;ezU7{SZ(bg|NbgEv`gF zwM%#mTj66~W*>5B*^D;vsHE}}`nm!w6}u2iWvC1cd1r|&3bf#+cuc-`{1viZn_ww! z6u;`y0u$4RtO&y6s{W`3%!G-Irf z-l4zTm&47s)nv<0kq#MkDJTO6FO!E`T82t*;tOFdxHD|=Qo$h7!l&uA{vl;1L52EL zd+OMTQXmnbY89U>=o~{1PO#k+ABNnRQKL9YINgod!L-tUCvGgVSPzTrWBPN?%)Fdn@uH7{6SW zu=-%s>N@+wMjsNdb{H_ymv#-Z#n?mQ&mGAnIvo8Gmistte+Qpa-bmQx5mNvRTt;<< zNIvPtxUH^JvaIzn>@LJ1{srea?FzQJ1o(c~F2r`~a>S6#(OECUrc!VoIo8;>1IH`D z6G&E|9P!7Y+uSY7H{CgdZNQLobI@WHhX#VP^+pfGcOn;_BY#YPyRK@h(BGcZ;CdDj zC$g_bSG7$@wCf?M6sq_y6t9sjE~=J$Jq?u!E?-w-29cyP4%&S6H2CPTc43;?I}g6u zkXQuk0B7L8V55Jnq4<*Sm*|)59k-Y&3LYl;bj0e z0xHiV?*bKHRN#_S<$za}YFMZoHCz~jKRZ};tKv;jAvALnBE5nafcBw!)UQDlcSR;_ zAbK~d5W3C@$n1HYXe;zwR}Q{@Ux|C@k?`6jv~-u&>!Cd@I}Uqve0`|M@p7Y3$Tw^Tc`jlJsVaqIjyl_)cW?Ju+Hf z5?y6#U`#hv@Ae5NQ4@^?KMU)yeq3HZACAWQJM#L6;UkD_^$BmuTknUXaOCyCi*}pv zK5Q|p;strFJ`zN&N#HDp2l%&PoKcNmnm5*)VV4?LJSSi632U+L3aC8lLt6CKl(0{D zn$W2bS;>%vbQkXPL;yYKAR;5)<*J}ozjhW$zckCz^$Tz} zC1t#Zye{>jBwQIQZyj=}UwnaoQ_^)Z&~8OW)<~$YIq7l>=gD zn%R|ltz|o8CTMf+)i#g#K=-1V_xQI9(Is>wnPhwJ0bvP_WOpx~InK|d*_^;ygY6i?@8U~lN<8N#Gr~Gq>Hv9UP-gO;+KZZSUi%r2U;qSL56*~#~PzIdK zwg*-0Fm$kOlY3&J-vf`F1v)|U;6c!$R_G67#wgfbkR1tIVGnrf_ft96>$@I|QNkhp zH`>fU5i39k;8c*_{|f5}jX~v4w^fq7TL=qDKJ1}X)4MMaDlY(|kqy^D=Fe&#oIXX^ zF6t1?%gndcmI3{P_RdY;CU(pA#@Je?HeTL02xo2srV5>@yA*{tMGhg?xZsudLT8zs)pma`!B0OEA_i2O4Yd?30M$;xJeuBZ#o9;WQ;n8P zZi0{$qGy+kwTg#2l*p4p6{^bHZ4>M>Bvp*U-ykZx$J&u+<$eo31x4}4Ar5{`JY#W- zsOh*|!M&!Hb>lRQl;>bQ;nNnGxo`BN`I>WCO2jvN#MVxeUnLoG6A%euV}-z}#664( zk4G%+q&>!9LfoJ#rDq(@-3y7MRdjR^XV>`8Wo<@ust0z*97rhKBxlm+$X&Q5e%ZzO zAq~49LVhJPpQ>S=YpA7r8e^#px`hLJ1<`X(XJp@D9JTEPhGMdceS+^md~Hv8GPuzD z;sYHfXo|2`30(1DJ9l^`G%m=$(m;EWmW@>T2F^&DzM!hNz`Y#n!_BrMg>Z#Ge|=NDi^IBA0{mI72{O z2x2^|{5OFE_{%D5e}A3=@yRcXgFAsgfxiO~i!HsR##vWUf9aao)!7r5V)>DiYxWVZ z+)}O)jLx0HRv{ya1vhf^W-8FE^-2%0{1q||YI)%g^_(@Q<(a?!P_LY=%f#9f=S59p zN>Wzdor5>!&0q5Ve8u)2e3{1bA0$=z2dE&Q_rn5IkUuXz z)1Za5k0qe$F>;;IWBH@~nZgfJwu}0WuCSuN{?@Qb*lBZRRR=$Dx$U%PU4skN_i|bm zFFr3$Y0}AUtwdWrt&VTnWQ&50@FP5d#aMvfB;!i7&gB!T$$8P*pb!c`#dqTfZ+zHq zK$Vy^IZw~fezt>EA`(v7PzZDDDS54kD`KY1lk&Ptu{Ck#t@ntQ-=n&DFRZ9N&oL7B z&uI=CwH>VdE|cr{c`>;mQ=sRhH?6xK1s&jF+_hAA5%)D4Q}IMvZg%!2_TcnVw6ADz zDYvo%@>(HF%uK{tnZ|zjO<>4!UOR0@A@ks9@zgl%n_!H_Z=x}M##Z@g368j@l0D>V zJ@PO>L07hOlfJ)t7fJoI#lR1Ux4VhoY(%=xMHcLN@oStn#nwRk@~OAeaP5V9dSXa&%^JI>tlc?n~tXj|8Kv9vu(z&@Ozi>3;6M8wK;Ik(RvR4ReH;H*W-XaMOVKm zU%d)%J=n&fuBb;$ZZ8#j`+Ls&Tm7Hk-N<^r$y4=8;2%UaZdOdjxzX*=e9K=8^u~K= z+V=q&OpZp+@rct-Ro{eEm2z*(jH8?_%nQPG}sV zxKfV_(Rh-xVX_FaDvIqPf5kUwm*~QQ^64{T1pc5K+zURG3u(D`+!(XP zNA-YT0`795Fy8h<)&=O!2~`%`IGgV}i{b@aI8NIt-Yb!utwiN>5Agqb`Qb;9BVu_( z#HQiy+3?hk!01cH@rO~Hbx`(4;&+{DRP^J!1o7suO6jw|3w$KL(-{kk?_;ps zQ$^mJk!bYXy0EFo16HNhYURG$<$`f1UCDA`Kj3+u{kp4&N3DaF;|X9ZTAN8 zPQtj(* zI~{!I%}yIx1r|?11W1+mdDm#fjoHBuJ&6BDKG{CI5NEp`Tl<08@)3NFAHv2QFZT>L z>}X&O_}~qU=c~{yi8mgA9{Cm)s*On4Ni^m@#yEcIU8*6=9YPc(pVizO^4p*emzO)l z-P-EgVZ)Z<)|L@fZ*zww4psWkNGj_YNt648^J#B%j&72aROmGnqzHcy_1j@;76BBalFV^QV#y<)hfdkd8&*5Di z;javFsHaqIsJ7`GX=NVMW^q5T0Hh*R<$+%yA2H{Tq1wu$Ws43v4lO>sFbm@o^c zs@zKty=Tum+}mGaUwmi*zWRnv6=(D>DsvoMd}ztxJo(I{@Cwtp%ML9)Oy@iXJF#Db zXp&mBf3c^`-hvv|TErQ=4J;!cvKk+fM&{Bu{IN@mTE^Lod-_1=F=WOjK$oPfZw;e_v;VnIBc7OHqkW`zmQ$XI zZjbVyrU=GM(Dekx{I~?l&ZIcIpI!e~_Y~eFcxcym(eL+Nw$vk^Uz z@YKb6-BY?lSEMBOO8d$gHoWc25i5T6kc97V(17L@L&Hn~{|TXXGi-3cA==?e8;~Lp zLTeh(UCCnGBA)2Fcfhg`)BGMt2u4E_EpqW%?S4r6kjN%VOG;qNm-5^X+4BxP1g~bE zpPpvzC5Kk)S#>F|WX_DVy%*~zFHSo&%YGl`{!PSq;$79VWgk3r%J7)P9NUv78X*?J z8jdk=$g{>s8pnc%pvBl>m2*8oM{R--jxzvLN-FJ8Kc#&YRR=GTFCxhD(9aI&AB#M! z;7RxwRr1~?`&}jnz5*{y*?Z@neZYJ^A~i$oD{t+NOZ_SBs7cU-64^O%%=K}gCgWy| z7c|hs2V*3m-o>FoGqlhe+W%umdKWWZLN2k&H~`Y%+4h03VOcwq@OyXXa9fJ~rr6Pu zjIBwXgW>nODYkU*HWT&+J7O?rZlaD&-Rs7@&w~D>SQBmiiDH4E8#*D^b8A%AwKy*w`L8_MOvA#~c&zus&U6;% z`9Ker<9H61SC9u|U6W{4@4$6f%1>+s1yvkOOjhB`m&kse-dCdSin5g$lRrruZ1~`9 z97`V6e{Cbj4Xx4v_eL$h)i%Vnnt;WT-p;CCk5#aX&?QC{5xxzsza zKwCGqz}{9UI0l)_6qR=S*WXDhmlfXn0TF%3sMexNutqRB4?_EE7KcQZJ6$F-B5n4G zmEkg1&sXYwS&eMe$*6R`@Y>dix(NZu7Bu2nryhPG{fri%xG==tNSjpPVK>Do=wnMn zg|F}=YYpX2fiuocb!n%m9Xr8 zAVxPR(Yr3|bK-Y+|2DJ%{yXhRYsKoN&>WY-LzIVV1`HIMM^AXeOHdnRDP~PU=RBZT zKoeBkyoy5)+u6?E=*eRdC1ny_B;4Cr6%U)Os!TG=R3~|a_ zVY9fS-RyLD#|+Gw$xM*Ch9E1XG$f`)xGxD`PwStK-m^{rbAKvD%NBYlk_wq=SvJm@ zWdlM)IBO>4Dt+dxO4z+kK11U+?Y++LyiYsLc%t7s+nu?x%`qi>dgbX1gKsf#@b-$A zJ8SC=+}0&$mz=LRWQHJT?gjq;uX3&B9|C{gBNg`;i+glPW956$9TINcVU1TC;x!g0 zGb6nVc&o;aQ%v@;m(d?yX2c629iwX+pZO6?5&uXe7r|JlxS zXooVl1CSMB@I}b0&8qBA18)>^644Tc2l_tdK%e8W|A{*%T%IY*ICjJa+VMCrFd;|G z#N0^QhZ^XY4Sp){#QYzaFZ>d;W8Mjxm{(b};y4~7hou8;;FTx4Ld0;}8#&w|XtEa7X4 z)M!Awug9wgML_IX!RQpu7hkFLBW|sfv$VlqOMVhqRl8MD=0?m z45IU?kEgZUKq=-l6lNmxUH@euK|XH^a8%lS`j9~%FK>^>c2i9p*3XGk8ko7xN1X8$ zIl}*^0OvU;-XEcOzV4Tx6DSX&f2P2Xm2?WVBG7M-VGhN>pZgU4%62KBW9|{noy==I zL$OFV#CIdj#XU4JAF)bg?RwKoqY4-;T~4pB-q5>b$vNleOX^o{!T8#`Bt@uOVu7Sw z7a8iT50H(n`~>oxa`t<5pmi*00V*($s~<<-rg@=91m6dCuTrMQU&6jpex_c0uX7W0 z7?O?uUOvWlL+lM}?`Yd-`(Dt&(V%i6aZOj5cPDaK-QKf^DwwOx3FabOXPT)9TY_Ri z6`yR?4guaTKV&cLK?=XgwpV3;K& z1$NuDk!fw+s7Ro$NwrOD>s(v7Dt>BV-bf(Y8B}WIuAUaZtSg!@!e+LcXOL8LGCab5 zLwpkPeWh+q;}&GE?=Q_ewn-Q=eSxq7vA;J^d&646UYlYfi{b%{8UUdnVv_FV>Lx!$ zQdbtCX_)`;VJo>p{Aa{c`Q|=~QGwhheT>non%ETJ3i^59+(-KcOVI1!KY_Qz3}gb# z+F=_oYhMyUSIHhnb9O0W+-c6z9OVLt6Sx)UPPCflrdn7NWLAYcT9|BmS$J-h;-DGx z@K-!tE;5kevER+yKv*v&yC)V@`i_g6;?uS3gO-fjeG3Kj4EktLRVpHyw;}IMm(3&E z|D5<<9W$p1{oym7jVH~O2Kr5c8nf&bsldw>+?^6#12pa=yGB=&m1H7q7I|Ux1^3sf zGf`uB-{k&=OjE&o;wnT&{!&Bp?<`PN&QUzlejb01bkU457mPKx`=V^gLX>?JzCoL$ zIHh5?%pH>MQUc>XE-|b?HJz_JR234P9s_ zXi!8_!*cA`B-c8$8C83sWt?@8jgjPbw`-Se7slG%9lH?4snWlQuSnTeR9WE$Y`paC z;L8QCN?$>>j?)+42o%{i;fkT~yfJ=}=^=^ddsXWE@j%_{T`+o7yN`_u*Kn5RKul{< z!PB$gA1UUJQEuyadE`z)n^bQ&{naV3EM5mjKQrHuM=w278K}r{jN%bpG>R)b9uX`~ zo402SXLTDZiA()6teSK)aGyX~Tze6x<-^|_$Y;v4Ex~hLZYO^ay$j}et1Fq_hG;^2 zJ2XsBqZmXs>n9SujS+8iUB32P;OH>fm(|-B6;e?hONqP4%2Bbxvf%LWT{(DK>6dQ)!Nj?MwresH^!oVA3cqaU1m7A8J|9jH94_Ks(}wTW)2(^o;j3jPpD!L=XP| zXhCLnA4as2;)pnID(k&S!JdUqAb@5NA19uE4h#85UY^{;yAbC^S%9rybiP;65!c(79#n8Zzv-i1MKirge7n2MskL*KGDoSi9#QLN#6#CP z%Fo0DnW@fKF6W|FfnNJhsHT%YB;Le^giv*U2V}-AXJTc#l?rZjLp&W;38}~`dl$Js zDjngArr7kYU;Jg0oTGvWVIPg*2j#I;8?LV4UY}wjKgX~5K7^@3n0bxj=ctuL6les# z)2}{_U|n%mtM=Vyr+nRbyuoFk6_s~f+9wu&bLl<_8msv$cwBUdtN9eaX_(({0+WW~ z48{;h`h3y~6c?sP)H^hy=lKzth6Ak*44uAD8nO00A#MBt@XV4WxNURQD zt|$bjKU#5zkXBF{(sPOw<2MCf-W=oO?npMbz}A**DnZPfmVDj7?$nW0s=(;gO59=i ze@Bo_zh3;EBKn0NeO$pk!kCorYBH1VHc|B3P|W9hgs*&7nYVn5DA{|23-BtRLoI2m z9MAYUzBlm)RQxS0LXTWVUu0-|)o#;9)mCff+2?_`>tI1oH0mp1RW~*x(rFDMEYjp? zfUO!s?GIA4k?|(4!KriTgm@tw_zc;@sOXFrjE+La@CX*#sRxIVJ!7Eq$gFHaPpa@m z6de)qOK3VhlJTTkuahMQS2QnnH~D{%69pOFs_9*8*-)(=fM`(E za0^BdKSFb*q&?0XKXyz_{t7n28su31;(rB@zdCv_^gXtlYK;%J4}rv`jnLUe?QF#R z0m}w9f+##RJYPAqNMM$SKk+!f?0}0WRITBR#J47DkBZGzb&rNa3X_CK*?|fXY7IZ>1`f*-6 zS1=}ptKs-J{41PX3irK&f7NgD=GyB;Kd54}Zx&)jZXg%2hp%iBX4tZGVp=yp4ZO(% zm`^Unk?GlxuFDsIB2SU$kp<^I<;!@@gb{yMJa_GaHv`!tXT{Uki0@eC_4lyu@ZBS? zmt+0snyDVt8SEkoPW10PWGflHP_S`lH|Gr9%X3yjB*2>hKDl&K2O~x9_R_5Vx1^8mv#ZaB>f)4y|!z=ttHx%zF0nH zp<@>VnXj=idvVtY;={B;^@?#gJ2N6Jj?LK-h{-vC$dn1CG1S zhJG=RyB&N7u?>+S49Ef(<|%8O7*PVKpA~P_gCoo(N5r?Q2w4HqM8^`~gJi?gKqXGV z*HD1`C_*o617Eu-j->0*FIAAd&x+NJn#_iP1!J+Zko>C}L|$&iSuq_zG%VGCvm@>Z z7Ol_`<)tayTJDD5$8u#(9Tr)Zy*zpXZ1eF`ftg)OK19kY^p&O4f_W(xr7&y ze+^{dS}k(Qo;8w(0+xp19`R}u^dQ8$zSwoiYqW80qfN6qnzuN(gI3`p;u9$=40?gX z#dG^o5V`FUzicuKlbq+^d*J*Qr;yR})~t$TYEYhyG$u%wqne(o)r{vIg|KZOZ{nRs znYU#m=|}1>N85j{Qv`cQMX8NZ_}44S9_1endxqAo^{mYJ~Qy$C(#4*bo>caIU0U~g;``-RWKQmjzGz6o87q@VN##ZarZPwj262+Wr- zg}myyO9F4Y^#(DJ7E#%7s(Vv&w6yIaT`!y=`GYbMU^E5qAlhNS&}YJff0NO)+pGj zAm{B;YlB4*%H9JmIM#o~x{B$`0UJp+Tc=f zZn_rKpy)POkE48gd4H9>A9n5FmLiTPPD8j;g-!)*>dTAZ4>o@0WFxINmlmlSpI6`3 zV%(VOWWm3?$OHaFkypL_C<~Ris&C{n4PwMta(eip;m^h3C|a=+(lD~dr}e~PWue7r z*b$e*iY#E^y|@E&If4C*YVQ7ZYM`ELV6Q-hI%rKy9}5H$TalJH9sHs!xCi-j^@wiJ z!l!;4YRUKkncG5k)?9j2s`>C$@Xula(bADUUsH3Y#_+cx~rFj1?M83NcXx1qj z(kkdZ#|cF%%>Q}1aG};?3-Y>Uc(PPjz+W;bkOPbR`|UvmYULpYK-Da&!WTU&`GFdsE1a7uapVd zv0hvfrf-yqxCeZrk@{%u=<#v(piXc0pS2D3rvz2{A?Q`3p7$e;F&{9u!7+uD2YObV zP%q)0s6LH8`175tH^&rG57>jeUch&WMGHE;!hgipEZ!w?yp~##b-bus-$I87$@c>I zdOPJ_ct;hQz?#ML-EY8hYipa2cf5&e0{`}JKSbMeo(sCS=y32KTejgb+TWVCSye_wwE0_=$=OPQ)xS6#eAD<6$`o;qKVRJq%!~ZGL8EI z*pAMME9*2R%)C&}zR(nFJR0|5kJ|l?M+*#LW97XzZSa*Y6`p*)O;fT5_5ai*TcLvi z?L|AUYOZazZI5^}toExs3g^m$GqH6otlsC=s4mU4O+UCt`~zEBPc}3gt=n#!F{4R* zqa>Y&jP$tH0tFg(Yv7tMxr+p9)Ufm?L)SkakA}Z*sX6c78!V-=5K5n zacnd!412`)!{iHX4AhBr?VNJ}BIK@h>zxyAafrBU6b+!^jiR=jv>8>m5v>}hBM!Mc z7He@>`?fm?SHws9;x{%Di{Ge7AAI3AyU5o|d~4o51-l8E#Hf%4!VdI#sE;@o}MZh}AK1hyXmA07@FcOsTH_;mKp z=GbcRtI2393+Habb(3(vH_=u(7Sb(0!gYrbXEq#iF!7U@%Yk&DiWPdf;k|aJH*dwr z|DzjOW4l-LWXSYw7LRqfoDN64$Luu;o5W;!?i?$m$UVg1avV^mO{i_Kz~|C( zmw0D&g#wv4ESZooZ;GQOJP)2^K>IL(cMg-*y=3v0E+@)kq+BRz5K!rh^3|p{QRmR% zq$ACu6i)PBw0&uBLd~e2Gn?Ue>shN4n>x)~$$PxEuyhR%zu6X19sbxxy{d~-@(Ic0 zb4-+!@DL>=*CD2(?wQic4mvBSv&p~1!u1U`|^*weK%{DMIh zN@9^@E7nq+oI@2dqq_G9qsCn%p6V*0x7NniI-C`v2^rUAm|b^EJhu8{tJl7_unn78 zXtOpJ@}L{OAE4cv+~VO#sa?Sb#ZS6kM|M(BJO>-khOjEMRTC3R)u}=W;K2z7ty>jx zGXvrW$SOrB8O0*zA}A8mQIuZ}5Zu_1Q{raSq+;?p#fVot0S|4~l~<)He6@Muf6B$@|$#P#)Cy`N{Ps;1)D zqR4JZS6%mX%F`>KKK%6RXVBBp_t+G>cZ+i(j>lZypg1A2__3`1m;+5w;Ue$dCQkaxR4-{P50vm5JELED}NO`CWzmTkfEIq27A(9f7{ z3YGynHwtaVWBq=#u@FmQXC(3*&W|0%vE9>Q--7SGs60NqbQLNc)$*$l?V)C?$6Q2T zsiX1sXSz#QLBp-B*2dKEt6ZxnLf@+2jEbMMMUhAxzZnrf&En`zqR-#-*qx`HD-ViW zKqu>5u(sqjJZ7j=2z8I9JjPO%`3^tU+gsFsU&i9gT*{kO+~kx;S3K6wYwbT4HO6Ou zGZx+r$RlowcZh+vEkO&r4}%{~b8Y=(R8~|OpiAWg=iN&Bg)9FE^35#Jq>3Ql56|q$ zSyG40TC-D-R8gd3S#a!M9Zsh@l*CzPCr})m(bBK9QI9-G)j%cBhS1fiouwJkH9>ga zosXLFZOwT-Hl0VRoY->anIB86q&?MIWTElLkvo<_bmsX8##xW;(S-THI326SKjIy` z;hATUWU^3!(+?g3A5zykCp;M{lTauAwUZF!STL<%E^A}jo)Xm~d*t57{Jm|YewxRn9Il(CP9y?~Fw#Kl5jSTt5Ak)#lfu&sYk=^Qr zb~Vs9uLiV7P#HKO8P=cO;%~4`G1Cj;UtqCeq2CK#s9Qr?1sjeG^=1_}9dB0>Iol7G zOHltCVpW$BbbLsm@ecBvT$9`Sy?0MrXCh+~(F;n7>C59Sg=UI@f!6q&{I=GcCm@rb z|Az@2@1zp7Q0C4N%BKBj%Xj=}vpBTxfPYo+!ewN)zN4ItBj3yZyiX)GUDa z*=5{=?n6uAz{TMlEw$9sX3z0j9P3#=k#w&AKH|d>pRL^C`=9o{#NM@d^Natp_cQGM z3>;*bpw?EoYOsR^B?~;($xtGnN$p8B5j;$W!*|FqZCYuM61PN^eu}@OS{npjqtI z`HvZt)y{S`Bc@`zzg5m3uW+fx+H2l~tXL;D{5cL>2kb>U;P3eT&)266-~~t1fhbyQX<97rzfcv# z+UX{Ll(ES;GS>gkkO7wTUSCgGalT>+T0M@M6qL;}t4o2l$!7l>EWl|(PbNbCpw&lb>tF;r=jOt0vY(tfUM5Ki&o^ZwQJU_3pwuu zGT^(B{55OWEndEqtzKNPhyj-p`W*f}U}da25{dkr{uTJn58z*xjU00z&UFrCbCT;R z-)GCESat@sqI+=cBx)igf*Nv0Kj>I&1F6Z%S$Ymh<08C^^)5*07-tic#D>`n^PC?dZ zGS2SZv6Rk|&qq6~=j=R*FBk{kiUkszqksY3h4H2NLfhl{ysHQ0B+c(A&{Ynx@eUpu z@#*j~egtMFwXg|wvdtBPW>QXLzKgiWCh-mFB>V-4s~$WiMO(vxy5IDTfjm!hvkBEX zv4&^4*iI;JyTwo2+3?@sDcU5SlTb9lXW(~>i0%Hp^e9d8!@(t|2|qb1+u9r%Pmv?Fpc498t(_$s=2^WNgZ{qIFiKgoBhd(M zV#+t3K@R;HYK!pIRdQ6vD%f-hO~Yv2E&lBk9V5(O!XpT@=K)Pujro24xlR5{`j*UDE=*eqT=I7!D{Q5+m-1yUx|ZVhLSh1*S7laR zUW&Q=1!9KOejQp`-0iRt#;(J*IJ9j z3q7F&OPY`=Kda{!pYh0i<}Qr%H^X<@J_ZlHQ@+9}zf%Nt%>MVx2{`km@C4h6fpkCh zf7*4zdKagSh*$nU=Z{41U++fb3ysH|-QrpJGXD)Zm*~=>$JfX-hQ9q%UvTUk=J1p2 z7O(5Xoc#{-_d(DFqC=$^uj}CFx&Rtv!+5O(J*WolSdQ^r4%+en_7P3GjN@e(Lqv0I zxMnow{{_&M#h@cP{4D|vAzG7?vSNa}_{D=S9RlYv6~k(snczNLFWwJ%uUf;^7Vv8SOP-!; ze<86ZY;c!i??hhXf06bg&jyun!>;4eh%=74q=M%96eM<)iZdl9SFb7-Bk-GaDkjT0-Jv;8aqcg-RI1$CRj~esP9S ze^w=4XrfrLe}`Z37!XZImU?!Ii$!is2EF(9_H)OvK7{7D8@NY^qd*pN%uz4AG1o