diff --git a/IMG/cpio/ventoy/hook/debian/puppy-disk.sh b/IMG/cpio/ventoy/hook/debian/puppy-disk.sh index 7f987223..600088a2 100644 --- a/IMG/cpio/ventoy/hook/debian/puppy-disk.sh +++ b/IMG/cpio/ventoy/hook/debian/puppy-disk.sh @@ -27,6 +27,33 @@ vtlog "####### $0 $* ########" VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH +ventoy_os_install_dmsetup_by_fuse() { + vtlog "ventoy_os_install_dmsetup_by_fuse $*" + + mkdir -p $VTOY_PATH/mnt/fuse $VTOY_PATH/mnt/iso $VTOY_PATH/mnt/squashfs + + vtoydm -p -f $VTOY_PATH/ventoy_image_map -d $1 > $VTOY_PATH/ventoy_dm_table + vtoy_fuse_iso -f $VTOY_PATH/ventoy_dm_table -m $VTOY_PATH/mnt/fuse + + mount -t iso9660 $VTOY_PATH/mnt/fuse/ventoy.iso $VTOY_PATH/mnt/iso + + sfsfile=$(ls $VTOY_PATH/mnt/iso/*.sfs) + + mount -t squashfs $sfsfile $VTOY_PATH/mnt/squashfs + + kVer=$(uname -r) + KoName=$(ls $VTOY_PATH/mnt/squashfs/lib/modules/$kVer/kernel/drivers/md/dm-mod.ko*) + vtlog "insmod $KoName" + insmod $KoName + + umount $VTOY_PATH/mnt/squashfs + umount $VTOY_PATH/mnt/iso + umount $VTOY_PATH/mnt/fuse +} + + + + wait_for_usb_disk_ready vtdiskname=$(get_ventoy_disk_name) @@ -36,6 +63,12 @@ if [ "$vtdiskname" = "unknown" ]; then exit 0 fi +if grep -q 'device-mapper' /proc/devices; then + vtlog "device-mapper module exist" +else + ventoy_os_install_dmsetup_by_fuse $vtdiskname +fi + ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace" if ! [ -e $VTOY_DM_PATH ]; then diff --git a/IMG/cpio/ventoy/hook/debian/puppy-hook.sh b/IMG/cpio/ventoy/hook/debian/puppy-hook.sh index cbb5a20b..d2e15638 100644 --- a/IMG/cpio/ventoy/hook/debian/puppy-hook.sh +++ b/IMG/cpio/ventoy/hook/debian/puppy-hook.sh @@ -18,8 +18,15 @@ #************************************************************************************ $SED '1 apmedia=usbhd' -i /init -$SED "/^ *HAVE_PARTS=/a\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/puppy-disk.sh" -i /init -$SED "/^ *HAVE_PARTS=/a\ HAVE_PARTS='ventoy|iso9660'" -i /init + +if $GREP -q 'HAVE_PARTS=' /init; then + $SED "/^ *HAVE_PARTS=/a\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/puppy-disk.sh" -i /init + $SED "/^ *HAVE_PARTS=/a\ HAVE_PARTS='ventoy|iso9660'" -i /init +elif $GREP -q 'LESSPARTS=' /init; then + $SED "/^ *LESSPARTS=/a\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/puppy-disk.sh" -i /init + $SED "/^ *LESSPARTS=/a\ LESSPARTS='ventoy|iso9660'" -i /init +fi + if [ -f /DISTRO_SPECS ]; then if ! [ -d /dev ]; then diff --git a/IMG/cpio/ventoy/hook/debian/ventoy-hook.sh b/IMG/cpio/ventoy/hook/debian/ventoy-hook.sh index 402eb4d3..40971ca4 100644 --- a/IMG/cpio/ventoy/hook/debian/ventoy-hook.sh +++ b/IMG/cpio/ventoy/hook/debian/ventoy-hook.sh @@ -35,7 +35,7 @@ ventoy_get_debian_distro() { fi if [ -e /init ]; then - if $GREP -q PUPPYSFS /init; then + if $EGREP -q 'PUPPYSFS|PUPPYFILE' /init; then if $GREP -q VEKETSFS /init; then echo 'veket'; return else diff --git a/INSTALL/VentoyGUI.aarch64 b/INSTALL/VentoyGUI.aarch64 index caa1f62a..d2a2f260 100644 Binary files a/INSTALL/VentoyGUI.aarch64 and b/INSTALL/VentoyGUI.aarch64 differ diff --git a/INSTALL/VentoyGUI.i386 b/INSTALL/VentoyGUI.i386 index 6d3ddb4f..467df8d5 100644 Binary files a/INSTALL/VentoyGUI.i386 and b/INSTALL/VentoyGUI.i386 differ diff --git a/INSTALL/VentoyGUI.mips64el b/INSTALL/VentoyGUI.mips64el index 80998dee..2e3424e7 100644 Binary files a/INSTALL/VentoyGUI.mips64el and b/INSTALL/VentoyGUI.mips64el differ diff --git a/INSTALL/VentoyGUI.x86_64 b/INSTALL/VentoyGUI.x86_64 index 970d3e5c..45e47f83 100644 Binary files a/INSTALL/VentoyGUI.x86_64 and b/INSTALL/VentoyGUI.x86_64 differ diff --git a/INSTALL/tool/VentoyGTK.glade b/INSTALL/tool/VentoyGTK.glade index 529aa1ab..ecf0500a 100644 --- a/INSTALL/tool/VentoyGTK.glade +++ b/INSTALL/tool/VentoyGTK.glade @@ -11,6 +11,7 @@ False Partition Configuration True + center 460 270 diff --git a/INSTALL/tool/aarch64/Ventoy2Disk.gtk3 b/INSTALL/tool/aarch64/Ventoy2Disk.gtk3 index a9b2a45f..eba4b62f 100644 Binary files a/INSTALL/tool/aarch64/Ventoy2Disk.gtk3 and b/INSTALL/tool/aarch64/Ventoy2Disk.gtk3 differ diff --git a/INSTALL/tool/aarch64/Ventoy2Disk.qt5 b/INSTALL/tool/aarch64/Ventoy2Disk.qt5 new file mode 100644 index 00000000..f416c31f Binary files /dev/null and b/INSTALL/tool/aarch64/Ventoy2Disk.qt5 differ diff --git a/INSTALL/tool/distro_gui_type.json b/INSTALL/tool/distro_gui_type.json new file mode 100644 index 00000000..cbfbc2f3 --- /dev/null +++ b/INSTALL/tool/distro_gui_type.json @@ -0,0 +1,23 @@ +[ + { + "type": "env", + "name": "DESKTOP_SESSION", + "condition": "equal", + "expression": "deepin", + "gui": "qt5" + }, + { + "type": "env", + "name": "DESKTOP_SESSION", + "condition": "equal", + "expression": "uos", + "gui": "qt5" + }, + { + "type": "env", + "name": "DESKTOP_SESSION", + "condition": "equal", + "expression": "ukui", + "gui": "gtk3" + } +] diff --git a/INSTALL/tool/i386/Ventoy2Disk.gtk2 b/INSTALL/tool/i386/Ventoy2Disk.gtk2 index 62f05ea0..643d797b 100644 Binary files a/INSTALL/tool/i386/Ventoy2Disk.gtk2 and b/INSTALL/tool/i386/Ventoy2Disk.gtk2 differ diff --git a/INSTALL/tool/i386/Ventoy2Disk.gtk3 b/INSTALL/tool/i386/Ventoy2Disk.gtk3 index 6b558385..f3ced7bf 100644 Binary files a/INSTALL/tool/i386/Ventoy2Disk.gtk3 and b/INSTALL/tool/i386/Ventoy2Disk.gtk3 differ diff --git a/INSTALL/tool/i386/Ventoy2Disk.qt5 b/INSTALL/tool/i386/Ventoy2Disk.qt5 new file mode 100644 index 00000000..1390b35d Binary files /dev/null and b/INSTALL/tool/i386/Ventoy2Disk.qt5 differ diff --git a/INSTALL/tool/mips64el/V2DServer b/INSTALL/tool/mips64el/V2DServer index 46901253..4d36cb86 100644 Binary files a/INSTALL/tool/mips64el/V2DServer and b/INSTALL/tool/mips64el/V2DServer differ diff --git a/INSTALL/tool/mips64el/Ventoy2Disk.gtk3 b/INSTALL/tool/mips64el/Ventoy2Disk.gtk3 index 5db90184..325d9ca9 100644 Binary files a/INSTALL/tool/mips64el/Ventoy2Disk.gtk3 and b/INSTALL/tool/mips64el/Ventoy2Disk.gtk3 differ diff --git a/INSTALL/tool/mips64el/Ventoy2Disk.qt5 b/INSTALL/tool/mips64el/Ventoy2Disk.qt5 new file mode 100644 index 00000000..5a8c24a8 Binary files /dev/null and b/INSTALL/tool/mips64el/Ventoy2Disk.qt5 differ diff --git a/INSTALL/tool/x86_64/Ventoy2Disk.gtk2 b/INSTALL/tool/x86_64/Ventoy2Disk.gtk2 index f6a7cffb..85a0cea0 100644 Binary files a/INSTALL/tool/x86_64/Ventoy2Disk.gtk2 and b/INSTALL/tool/x86_64/Ventoy2Disk.gtk2 differ diff --git a/INSTALL/tool/x86_64/Ventoy2Disk.gtk3 b/INSTALL/tool/x86_64/Ventoy2Disk.gtk3 index 972eecd7..5f1b9cd2 100644 Binary files a/INSTALL/tool/x86_64/Ventoy2Disk.gtk3 and b/INSTALL/tool/x86_64/Ventoy2Disk.gtk3 differ diff --git a/INSTALL/tool/x86_64/Ventoy2Disk.qt5 b/INSTALL/tool/x86_64/Ventoy2Disk.qt5 new file mode 100644 index 00000000..b9536a62 Binary files /dev/null and b/INSTALL/tool/x86_64/Ventoy2Disk.qt5 differ diff --git a/INSTALL/ventoy_pack.sh b/INSTALL/ventoy_pack.sh index ed7d1238..7a4be25f 100644 --- a/INSTALL/ventoy_pack.sh +++ b/INSTALL/ventoy_pack.sh @@ -9,6 +9,7 @@ fi dos2unix -q ./tool/ventoy_lib.sh dos2unix -q ./tool/VentoyWorker.sh dos2unix -q ./tool/VentoyGTK.glade +dos2unix -q ./tool/distro_gui_type.json . ./tool/ventoy_lib.sh diff --git a/LinuxGUI/EXLIB/README.txt b/LinuxGUI/EXLIB/README.txt index 27910daf..ecbe5574 100644 --- a/LinuxGUI/EXLIB/README.txt +++ b/LinuxGUI/EXLIB/README.txt @@ -5,7 +5,6 @@ 3. sh prepare_lib_aarch64.sh /mnt/Packages/ - ====== MIPS64EL ====== 1. build dpkg for CentOS7 download dpkg_1.18.25.tar.xz from internet. @@ -15,8 +14,47 @@ make cp -a ./src/dpkg /sbin/ cp -a ./dpkg-deb/dpkg-deb /sbin/ -2. download debian 9.x mips64el DVD iso (e.g. debian-9.9.0-mips64el-DVD-1.iso) form internet -3. download libgtk-3-dev_3.22.11-1_mips64el.deb from internet -4. mount debian-9.9.0-mips64el-DVD-1.iso /mnt -5. sh prepare_lib_mips64el.sh /mnt/ +2. download debian 10.x mips64el DVD iso (e.g. debian-10.9.0-mips64el-DVD-1.iso) form internet +3. mount debian-10.9.0-mips64el-DVD-1.iso /mnt +4. sh prepare_gtk_lib_mips64el.sh /mnt/ +5. download the following packages from internet and dpkg -x each of them +pool/main/g/gtk+3.0/libgtk-3-dev_3.24.5-1_mips64el.deb +pool/main/b/brotli/libbrotli1_1.0.9-2+b2_mips64el.deb +pool/main/d/double-conversion/libdouble-conversion3_3.1.5-6.1_mips64el.deb +pool/main/d/double-conversion/libdouble-conversion1_3.1.0-3_mips64el.deb +pool/main/libg/libglvnd/libgl1_1.3.2-1~bpo10+2_mips64el.deb +pool/main/libg/libglvnd/libglvnd0_1.3.2-1~bpo10+2_mips64el.deb +pool/main/libg/libglvnd/libglx0_1.3.2-1~bpo10+2_mips64el.deb +pool/main/q/qtbase-opensource-src/libqt5concurrent5_5.11.3+dfsg1-1+deb10u4_mips64el.deb +pool/main/q/qtbase-opensource-src/libqt5core5a_5.11.3+dfsg1-1+deb10u4_mips64el.deb +pool/main/q/qtbase-opensource-src/libqt5dbus5_5.11.3+dfsg1-1+deb10u4_mips64el.deb +pool/main/q/qtbase-opensource-src/libqt5gui5_5.11.3+dfsg1-1+deb10u4_mips64el.deb +pool/main/q/qtbase-opensource-src/libqt5network5_5.11.3+dfsg1-1+deb10u4_mips64el.deb +pool/main/q/qtbase-opensource-src/libqt5opengl5_5.11.3+dfsg1-1+deb10u4_mips64el.deb +pool/main/q/qtbase-opensource-src/libqt5opengl5-dev_5.11.3+dfsg1-1+deb10u4_mips64el.deb +pool/main/q/qtbase-opensource-src/libqt5widgets5_5.11.3+dfsg1-1+deb10u4_mips64el.deb +pool/main/q/qtbase-opensource-src/libqt5xml5_5.11.3+dfsg1-1+deb10u4_mips64el.deb +pool/main/q/qtbase-opensource-src/qt5-qmake_5.11.3+dfsg1-1+deb10u4_mips64el.deb +pool/main/q/qtbase-opensource-src/qtbase5-dev_5.11.3+dfsg1-1+deb10u4_mips64el.deb +pool/main/q/qtbase-opensource-src/qtbase5-dev-tools_5.11.3+dfsg1-1+deb10u4_mips64el.deb +pool/main/q/qtbase-opensource-src/qtbase5-examples_5.11.3+dfsg1-1+deb10u4_mips64el.deb +pool/main/q/qtbase-opensource-src/qtbase5-private-dev_5.11.3+dfsg1-1+deb10u4_mips64el.deb + + +==== I386 === +We need a CentOS8 environment +Install CentOS 8 x86_64 system. +yum update +yum install gcc +yum install gcc-c++ +yum install gcc.i686 +yum install glibc.i686 glibc-devel.i686 glibc-headers.i686 glibc-static.i686 glibc-nss-devel.i686 +yum install libstdc++.i686 +yum install harfbuzz.i686 +yum install zlib.i686 +yum install mesa-libGL.i686 + +pack all /usr /etc directories and extract to /opt/CentOS8/ + + diff --git a/LinuxGUI/EXLIB/aarch64libs b/LinuxGUI/EXLIB/aarch64libs index b10ae6cf..ac280e74 100644 --- a/LinuxGUI/EXLIB/aarch64libs +++ b/LinuxGUI/EXLIB/aarch64libs @@ -1,4 +1,7 @@ gtk3- +qt5 +GL +icu glib2- pango- cairo- diff --git a/LinuxGUI/EXLIB/download_lib.sh b/LinuxGUI/EXLIB/download_lib.sh new file mode 100644 index 00000000..54442cd4 --- /dev/null +++ b/LinuxGUI/EXLIB/download_lib.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +if [ -z "$1" ]; then + echo "please input url" + exit 1 +fi + +if [ -n "$2" ]; then + proxy_opt="-x $2" +fi + +rm -rf download +mkdir -p download +cd download + +grep pool ../README.txt | while read line; do + a="$line" + b=$(basename "$a") + echo "downloading $b ..." + curl -s $1/debian/"$a" $proxy_opt -o "$b" + + a=$(echo $line | sed "s/mips64el/i386/g") + b=$(basename "$a") + echo "downloading $b ..." + curl -s $1/debian/"$a" $proxy_opt -o "$b" +done + +cd .. diff --git a/LinuxGUI/EXLIB/i386libs b/LinuxGUI/EXLIB/i386libs new file mode 100644 index 00000000..3e548f60 --- /dev/null +++ b/LinuxGUI/EXLIB/i386libs @@ -0,0 +1,7 @@ +libmd +libzstd +libpcre2-16 +libicu +qt5 +libgpg-error +libpng diff --git a/LinuxGUI/EXLIB/mips64ellibs b/LinuxGUI/EXLIB/mips64ellibs index 97117c0a..705631e2 100644 --- a/LinuxGUI/EXLIB/mips64ellibs +++ b/LinuxGUI/EXLIB/mips64ellibs @@ -1,3 +1,8 @@ +libmd +libzstd +libpcre2-16 +libicu +qt5 libglib2 libgtk-3 libpango diff --git a/LinuxGUI/EXLIB/prepare_lib_aarch64.sh b/LinuxGUI/EXLIB/prepare_lib_aarch64.sh index d4160149..33075ae7 100644 --- a/LinuxGUI/EXLIB/prepare_lib_aarch64.sh +++ b/LinuxGUI/EXLIB/prepare_lib_aarch64.sh @@ -9,8 +9,8 @@ rm -rf aarch64 mkdir aarch64 cd aarch64 -cat ../aarch64libs | while read line; do - ls -1 $1/${line}* | while read rpm; do +cat ../aarch64libs | while read a; do + ls -1 $1/*$a* | while read rpm; do echo "extract ${rpm##*/} ..." rpm2cpio $rpm | cpio -idmu --quiet done diff --git a/LinuxGUI/EXLIB/prepare_lib_i386.sh b/LinuxGUI/EXLIB/prepare_lib_i386.sh new file mode 100644 index 00000000..540c94b9 --- /dev/null +++ b/LinuxGUI/EXLIB/prepare_lib_i386.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +if [ ! -d $1/pool ]; then + echo "$1/pool not exist" + exit 1 +fi + +rm -rf i386 +mkdir i386 +cd i386 + +cat ../i386libs | while read line; do + find "$1/pool" -name "*${line}*.deb" | while read deb; do + echo "extract ${deb##*/} ..." + dpkg -x $deb . + done +done + +ls -1 ../download/*i386.deb | while read line; do + echo "extract ${line} ..." + dpkg -x "$line" . +done + +cd .. + diff --git a/LinuxGUI/EXLIB/prepare_lib_mips64el.sh b/LinuxGUI/EXLIB/prepare_lib_mips64el.sh index a33ef26b..73e97866 100644 --- a/LinuxGUI/EXLIB/prepare_lib_mips64el.sh +++ b/LinuxGUI/EXLIB/prepare_lib_mips64el.sh @@ -16,9 +16,10 @@ cat ../mips64ellibs | while read line; do done done -dpkg -x ../libgtk-3-dev_3.22.11-1_mips64el.deb . +ls -1 ../download/*mips64el.deb | while read line; do + echo "extract ${line} ..." + dpkg -x "$line" . +done cd .. - - diff --git a/LinuxGUI/Ventoy2Disk/Core/ventoy_define.h b/LinuxGUI/Ventoy2Disk/Core/ventoy_define.h index 14b2cf41..01c0fd87 100644 --- a/LinuxGUI/Ventoy2Disk/Core/ventoy_define.h +++ b/LinuxGUI/Ventoy2Disk/Core/ventoy_define.h @@ -31,9 +31,6 @@ #define VTOYEFI_PART_BYTES (32 * 1024 * 1024) #define VTOYEFI_PART_SECTORS 65536 -#define VTOY_LOG_FILE "log.txt" - - #pragma pack(1) typedef struct vtoy_guid diff --git a/LinuxGUI/Ventoy2Disk/Core/ventoy_json.c b/LinuxGUI/Ventoy2Disk/Core/ventoy_json.c index f65a4583..8253a1cc 100644 --- a/LinuxGUI/Ventoy2Disk/Core/ventoy_json.c +++ b/LinuxGUI/Ventoy2Disk/Core/ventoy_json.c @@ -25,6 +25,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/LinuxGUI/Ventoy2Disk/Core/ventoy_log.c b/LinuxGUI/Ventoy2Disk/Core/ventoy_log.c index 86bf0c7a..2df37c22 100644 --- a/LinuxGUI/Ventoy2Disk/Core/ventoy_log.c +++ b/LinuxGUI/Ventoy2Disk/Core/ventoy_log.c @@ -26,8 +26,10 @@ #include #include #include +#include #include +extern char g_log_file[PATH_MAX]; static int g_ventoy_log_level = VLOG_DEBUG; static pthread_mutex_t g_log_mutex; @@ -68,7 +70,7 @@ void ventoy_syslog_newline(int level, const char *Fmt, ...) va_end(arg); pthread_mutex_lock(&g_log_mutex); - fp = fopen(VTOY_LOG_FILE, "a+"); + fp = fopen(g_log_file, "a+"); if (fp) { fprintf(fp, "[%04u/%02u/%02u %02u:%02u:%02u] %s\n", @@ -96,7 +98,7 @@ void ventoy_syslog_printf(const char *Fmt, ...) va_end(arg); pthread_mutex_lock(&g_log_mutex); - fp = fopen(VTOY_LOG_FILE, "a+"); + fp = fopen(g_log_file, "a+"); if (fp) { fprintf(fp, "[%04u/%02u/%02u %02u:%02u:%02u] %s", @@ -129,7 +131,7 @@ void ventoy_syslog(int level, const char *Fmt, ...) va_end(arg); pthread_mutex_lock(&g_log_mutex); - fp = fopen(VTOY_LOG_FILE, "a+"); + fp = fopen(g_log_file, "a+"); if (fp) { fprintf(fp, "[%04u/%02u/%02u %02u:%02u:%02u] %s", diff --git a/LinuxGUI/Ventoy2Disk/Core/ventoy_util.h b/LinuxGUI/Ventoy2Disk/Core/ventoy_util.h index 72cec62d..87eb5463 100644 --- a/LinuxGUI/Ventoy2Disk/Core/ventoy_util.h +++ b/LinuxGUI/Ventoy2Disk/Core/ventoy_util.h @@ -20,6 +20,9 @@ #ifndef __VENTOY_UTIL_H__ #define __VENTOY_UTIL_H__ +extern char g_log_file[PATH_MAX]; +extern char g_ini_file[PATH_MAX]; + #define check_free(p) if (p) free(p) #define vtoy_safe_close_fd(fd) \ {\ diff --git a/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.c b/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.c index e7052471..8a97b2d5 100644 --- a/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.c +++ b/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -300,14 +301,22 @@ void on_part_style_toggled(GtkMenuItem *menuItem, gpointer data) static ventoy_disk *select_active_dev(const char *select, int *activeid) { int i; + int alldev; ventoy_disk *cur = NULL; + alldev = ventoy_code_get_cur_show_all(); + /* find the match one */ if (select) { for (i = 0; i < g_disk_num; i++) { cur = g_disk_list + i; + if (alldev == 0 && cur->type != VTOY_DEVICE_USB) + { + continue; + } + if (strcmp(cur->disk_name, select) == 0) { *activeid = i; @@ -320,6 +329,11 @@ static ventoy_disk *select_active_dev(const char *select, int *activeid) for (i = 0; i < g_disk_num; i++) { cur = g_disk_list + i; + if (alldev == 0 && cur->type != VTOY_DEVICE_USB) + { + continue; + } + if (cur->vtoydata.ventoy_valid) { *activeid = i; @@ -331,6 +345,11 @@ static ventoy_disk *select_active_dev(const char *select, int *activeid) for (i = 0; i < g_disk_num; i++) { cur = g_disk_list + i; + if (alldev == 0 && cur->type != VTOY_DEVICE_USB) + { + continue; + } + if (cur->type == VTOY_DEVICE_USB) { *activeid = i; @@ -339,8 +358,19 @@ static ventoy_disk *select_active_dev(const char *select, int *activeid) } /* use the first one */ - *activeid = 0; - return g_disk_list; + for (i = 0; i < g_disk_num; i++) + { + cur = g_disk_list + i; + if (alldev == 0 && cur->type != VTOY_DEVICE_USB) + { + continue; + } + + *activeid = i; + return cur; + } + + return NULL; } static void fill_dev_list(const char *select) @@ -613,6 +643,8 @@ static int install_proc(ventoy_disk *cur) void on_button_install_clicked(GtkWidget *widget, gpointer data) { int active; + long long size; + long long space; ventoy_disk *cur = NULL; if (g_thread_run || ventoy_code_is_busy()) @@ -636,6 +668,27 @@ void on_button_install_clicked(GtkWidget *widget, gpointer data) return; } + if (g_preserve_space_check) + { + space = g_preserve_space_number; + if (g_preserve_space_unit == 1) + { + space = space * 1024; + } + else + { + space = space; + } + + size = cur->size_in_byte / SIZE_1MB; + if (size <= space || (size - space) <= (VTOYEFI_PART_BYTES / SIZE_1MB)) + { + msgbox(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "STR_SPACE_VAL_INVALID"); + vlog("reserved space value too big ...\n"); + return; + } + } + if (GTK_RESPONSE_CANCEL == msgbox(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, "STR_INSTALL_TIP")) { return; diff --git a/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.h b/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.h index 9f7440c6..d3c5e5c7 100644 --- a/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.h +++ b/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.h @@ -45,8 +45,6 @@ int ventoy_code_get_percent(void); int ventoy_code_get_result(void); int msgbox(GtkMessageType type, GtkButtonsType buttons, const char *strid); -#define MAX_PARAS 64 - #define VTOY_VER_FMT "%s" #define LANG_LABEL_TEXT(id, str) \ diff --git a/LinuxGUI/Ventoy2Disk/QT/Ventoy2Disk.pro b/LinuxGUI/Ventoy2Disk/QT/Ventoy2Disk.pro new file mode 100644 index 00000000..ad7484ed --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/Ventoy2Disk.pro @@ -0,0 +1,139 @@ +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +CONFIG += c++11 + +# The following define makes your compiler emit warnings if you use +# any Qt feature that has been marked deprecated (the exact warnings +# depend on your compiler). Please consult the documentation of the +# deprecated API in order to know how to port your code away from it. +DEFINES += QT_DEPRECATED_WARNINGS + +# You can also make your code fail to compile if it uses deprecated APIs. +# In order to do so, uncomment the following line. +# You can also select to disable deprecated APIs only up to a certain version of Qt. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +SOURCES += \ + Core/ventoy_crc32.c \ + Core/ventoy_disk.c \ + Core/ventoy_json.c \ + Core/ventoy_log.c \ + Core/ventoy_md5.c \ + Core/ventoy_util.c \ + Lib/exfat/src/libexfat/cluster.c \ + Lib/exfat/src/libexfat/io.c \ + Lib/exfat/src/libexfat/lookup.c \ + Lib/exfat/src/libexfat/mount.c \ + Lib/exfat/src/libexfat/node.c \ + Lib/exfat/src/libexfat/repair.c \ + Lib/exfat/src/libexfat/time.c \ + Lib/exfat/src/libexfat/utf.c \ + Lib/exfat/src/libexfat/utils.c \ + Lib/exfat/src/mkfs/cbm.c \ + Lib/exfat/src/mkfs/fat.c \ + Lib/exfat/src/mkfs/mkexfat.c \ + Lib/exfat/src/mkfs/mkexfat_main.c \ + Lib/exfat/src/mkfs/rootdir.c \ + Lib/exfat/src/mkfs/uct.c \ + Lib/exfat/src/mkfs/uctc.c \ + Lib/exfat/src/mkfs/vbr.c \ + Lib/fat_io_lib/fat_access.c \ + Lib/fat_io_lib/fat_cache.c \ + Lib/fat_io_lib/fat_filelib.c \ + Lib/fat_io_lib/fat_format.c \ + Lib/fat_io_lib/fat_misc.c \ + Lib/fat_io_lib/fat_string.c \ + Lib/fat_io_lib/fat_table.c \ + Lib/fat_io_lib/fat_write.c \ + Lib/xz-embedded/linux/lib/decompress_unxz.c \ + QT/refresh_icon_data.c \ + QT/secure_icon_data.c \ + QT/ventoy_qt_stub.c \ + Web/ventoy_http.c \ + main.cpp \ + partcfgdialog.cpp \ + ventoy2diskwindow.cpp + +HEADERS += \ + Core/ventoy_define.h \ + Core/ventoy_disk.h \ + Core/ventoy_json.h \ + Core/ventoy_util.h \ + Include/Ventoy2Disk.h \ + Lib/exfat/src/libexfat/byteorder.h \ + Lib/exfat/src/libexfat/compiler.h \ + Lib/exfat/src/libexfat/config.h \ + Lib/exfat/src/libexfat/exfat.h \ + Lib/exfat/src/libexfat/exfatfs.h \ + Lib/exfat/src/libexfat/platform.h \ + Lib/exfat/src/mkfs/cbm.h \ + Lib/exfat/src/mkfs/fat.h \ + Lib/exfat/src/mkfs/mkexfat.h \ + Lib/exfat/src/mkfs/rootdir.h \ + Lib/exfat/src/mkfs/uct.h \ + Lib/exfat/src/mkfs/uctc.h \ + Lib/exfat/src/mkfs/vbr.h \ + Lib/fat_io_lib/fat_access.h \ + Lib/fat_io_lib/fat_cache.h \ + Lib/fat_io_lib/fat_defs.h \ + Lib/fat_io_lib/fat_filelib.h \ + Lib/fat_io_lib/fat_format.h \ + Lib/fat_io_lib/fat_list.h \ + Lib/fat_io_lib/fat_misc.h \ + Lib/fat_io_lib/fat_opts.h \ + Lib/fat_io_lib/fat_string.h \ + Lib/fat_io_lib/fat_table.h \ + Lib/fat_io_lib/fat_types.h \ + Lib/fat_io_lib/fat_write.h \ + Lib/libhttp/include/civetweb.h \ + Lib/libhttp/include/handle_form.inl \ + Lib/libhttp/include/md5.inl \ + Lib/libhttp/include/mod_duktape.inl \ + Lib/libhttp/include/mod_lua.inl \ + Lib/libhttp/include/timer.inl \ + QT/ventoy_qt.h \ + Web/ventoy_http.h \ + partcfgdialog.h \ + ventoy2diskwindow.h + +FORMS += \ + partcfgdialog.ui \ + ventoy2diskwindow.ui + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target + +DISTFILES += \ + Lib/fat_io_lib/API.txt \ + Lib/fat_io_lib/COPYRIGHT.txt \ + Lib/fat_io_lib/Configuration.txt \ + Lib/fat_io_lib/History.txt \ + Lib/fat_io_lib/License.txt \ + Lib/fat_io_lib/Media Access API.txt \ + Lib/fat_io_lib/version.txt + + +INCLUDEPATH +=/home/panda/Ventoy2Disk/Core +INCLUDEPATH +=/home/panda/Ventoy2Disk/Web +INCLUDEPATH +=/home/panda/Ventoy2Disk/QT +INCLUDEPATH +=/home/panda/Ventoy2Disk/Include +INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/libhttp/include +INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/fat_io_lib/include +INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/xz-embedded/linux/include +INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/xz-embedded/linux/include/linux +INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/xz-embedded/userspace +INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/exfat/src/libexfat +INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/fat_io_lib +#INCLUDEPATH +=/usr/src/linux-headers-5.10.18-amd64-desktop/include +#INCLUDEPATH +=/usr/src/linux-headers-5.10.18-amd64-desktop/arch/x86/include +#INCLUDEPATH +=/usr/src/linux-headers-5.10.18-amd64-desktop/arch/x86/include/generated + + +DEFINES += STATIC=static +DEFINES += INIT= + + diff --git a/LinuxGUI/Ventoy2Disk/QT/Ventoy2Disk.pro.user b/LinuxGUI/Ventoy2Disk/QT/Ventoy2Disk.pro.user new file mode 100644 index 00000000..26acce24 --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/Ventoy2Disk.pro.user @@ -0,0 +1,338 @@ + + + + + + EnvironmentId + {666f325e-a9c7-45d6-a820-626289f99bab} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + true + false + 0 + true + true + 0 + 8 + true + 1 + true + true + true + false + + + + ProjectExplorer.Project.PluginSettings + + + true + Builtin.Questionable + + true + Builtin.DefaultTidyAndClazy + 2 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop Qt 5.12.9 GCC 64bit + Desktop Qt 5.12.9 GCC 64bit + qt.qt5.5129.gcc_64_kit + 0 + 0 + 0 + + true + 0 + /home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Debug + /home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Debug + + + true + QtProjectManager.QMakeBuildStep + + false + + + + true + Qt4ProjectManager.MakeStep + + false + + + false + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + + true + clean + + false + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Debug + Qt4ProjectManager.Qt4BuildConfiguration + 2 + 2 + 2 + + + true + 2 + /home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Release + /home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Release + + + true + QtProjectManager.QMakeBuildStep + + false + + + + true + Qt4ProjectManager.MakeStep + + false + + + false + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + + true + clean + + false + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Release + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + 2 + + + true + 0 + /home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Profile + /home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Profile + + + true + QtProjectManager.QMakeBuildStep + + false + + + + true + Qt4ProjectManager.MakeStep + + false + + + false + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + + true + clean + + false + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Profile + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + 0 + + 3 + + + 0 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + + dwarf + + cpu-cycles + + + 250 + + -e + cpu-cycles + --call-graph + dwarf,4096 + -F + 250 + + -F + true + 4096 + false + false + 1000 + + true + + false + false + false + false + true + 0.01 + 10 + true + kcachegrind + 1 + 25 + + 1 + true + false + true + valgrind + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/panda/Ventoy2Disk/Ventoy2Disk.pro + /home/panda/Ventoy2Disk/Ventoy2Disk.pro + + false + + false + true + true + false + false + true + /home/panda/Desktop/ventoy-1.0.52-linux/ventoy-1.0.52 + /home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/LinuxGUI/Ventoy2Disk/QT/build/Makefile b/LinuxGUI/Ventoy2Disk/QT/build/Makefile new file mode 100644 index 00000000..40d4a53c --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/build/Makefile @@ -0,0 +1,1760 @@ +############################################################################# +# Makefile for building: Ventoy2Disk +# Generated by qmake (3.1) (Qt 5.9.0) +# Project: ../Ventoy2Disk/Ventoy2Disk.pro +# Template: app +# Command: /home/panda/Qt5.9.0/5.9/gcc_64/bin/qmake -o Makefile ../Ventoy2Disk/Ventoy2Disk.pro -spec linux-g++ +############################################################################# + +MAKEFILE = Makefile + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_DEPRECATED_WARNINGS -DSTATIC=static -DINIT= -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB +CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT -fPIC $(DEFINES) +CXXFLAGS = -pipe -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC $(DEFINES) +INCPATH = -I../Ventoy2Disk -I. -I../../Ventoy2Disk/Core -I../../Ventoy2Disk/Web -I../../Ventoy2Disk/QT -I../../Ventoy2Disk/Include -I../../Ventoy2Disk/Lib/libhttp/include -I/home/panda/Ventoy2Disk/Lib/fat_io_lib/include -I../../Ventoy2Disk/Lib/xz-embedded/linux/include -I../../Ventoy2Disk/Lib/xz-embedded/linux/include/linux -I../../Ventoy2Disk/Lib/xz-embedded/userspace -I../../Ventoy2Disk/Lib/exfat/src/libexfat -I../../Ventoy2Disk/Lib/fat_io_lib -I../../Qt5.9.0/5.9/gcc_64/include -I../../Qt5.9.0/5.9/gcc_64/include/QtWidgets -I../../Qt5.9.0/5.9/gcc_64/include/QtGui -I../../Qt5.9.0/5.9/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -I. -I../../Qt5.9.0/5.9/gcc_64/mkspecs/linux-g++ +QMAKE = /home/panda/Qt5.9.0/5.9/gcc_64/bin/qmake +DEL_FILE = rm -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p +COPY = cp -f +COPY_FILE = cp -f +COPY_DIR = cp -f -R +INSTALL_FILE = install -m 644 -p +INSTALL_PROGRAM = install -m 755 -p +INSTALL_DIR = cp -f -R +QINSTALL_FILE = /home/panda/Qt5.9.0/5.9/gcc_64/bin/qmake -install qinstall file +QINSTALL_PROGRAM = /home/panda/Qt5.9.0/5.9/gcc_64/bin/qmake -install qinstall program +QINSTALL_DIR = /home/panda/Qt5.9.0/5.9/gcc_64/bin/qmake -install qinstall directory +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +TAR = tar -cf +COMPRESS = gzip -9f +DISTNAME = Ventoy2Disk1.0.0 +DISTDIR = /home/panda/590/build-Ventoy2Disk-Desktop_Qt_5_9_0_GCC_64bit-Release/.tmp/Ventoy2Disk1.0.0 +LINK = g++ +LFLAGS = -Wl,-O1 -Wl,-rpath,/home/panda/Qt5.9.0/5.9/gcc_64/lib +LIBS = $(SUBLIBS) -L/home/panda/Qt5.9.0/5.9/gcc_64/lib -lQt5Widgets -lQt5Gui -lQt5Core -lGL -lpthread +AR = ar cqs +RANLIB = +SED = sed +STRIP = strip + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = ../Ventoy2Disk/Core/ventoy_crc32.c \ + ../Ventoy2Disk/Core/ventoy_disk.c \ + ../Ventoy2Disk/Core/ventoy_json.c \ + ../Ventoy2Disk/Core/ventoy_log.c \ + ../Ventoy2Disk/Core/ventoy_md5.c \ + ../Ventoy2Disk/Core/ventoy_util.c \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/cluster.c \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/io.c \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/lookup.c \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/mount.c \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/node.c \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/repair.c \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/time.c \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/utf.c \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/utils.c \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.c \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.c \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.c \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat_main.c \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.c \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.c \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.c \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/vbr.c \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_access.c \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_cache.c \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.c \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_format.c \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.c \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_string.c \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_table.c \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_write.c \ + ../Ventoy2Disk/Lib/xz-embedded/linux/lib/decompress_unxz.c \ + ../Ventoy2Disk/QT/refresh_icon_data.c \ + ../Ventoy2Disk/QT/secure_icon_data.c \ + ../Ventoy2Disk/QT/ventoy_qt_stub.c \ + ../Ventoy2Disk/Web/ventoy_http.c \ + ../Ventoy2Disk/main.cpp \ + ../Ventoy2Disk/partcfgdialog.cpp \ + ../Ventoy2Disk/ventoy2diskwindow.cpp moc_partcfgdialog.cpp \ + moc_ventoy2diskwindow.cpp +OBJECTS = ventoy_crc32.o \ + ventoy_disk.o \ + ventoy_json.o \ + ventoy_log.o \ + ventoy_md5.o \ + ventoy_util.o \ + cluster.o \ + io.o \ + lookup.o \ + mount.o \ + node.o \ + repair.o \ + time.o \ + utf.o \ + utils.o \ + cbm.o \ + fat.o \ + mkexfat.o \ + mkexfat_main.o \ + rootdir.o \ + uct.o \ + uctc.o \ + vbr.o \ + fat_access.o \ + fat_cache.o \ + fat_filelib.o \ + fat_format.o \ + fat_misc.o \ + fat_string.o \ + fat_table.o \ + fat_write.o \ + decompress_unxz.o \ + refresh_icon_data.o \ + secure_icon_data.o \ + ventoy_qt_stub.o \ + ventoy_http.o \ + main.o \ + partcfgdialog.o \ + ventoy2diskwindow.o \ + moc_partcfgdialog.o \ + moc_ventoy2diskwindow.o +DIST = ../Ventoy2Disk/Lib/fat_io_lib/API.txt \ + ../Ventoy2Disk/Lib/fat_io_lib/COPYRIGHT.txt \ + ../Ventoy2Disk/Lib/fat_io_lib/Configuration.txt \ + ../Ventoy2Disk/Lib/fat_io_lib/History.txt \ + ../Ventoy2Disk/Lib/fat_io_lib/License.txt \ + ../Ventoy2Disk/Lib/fat_io_lib/Media \ + ../Ventoy2Disk/Access \ + ../Ventoy2Disk/API.txt \ + ../Ventoy2Disk/Lib/fat_io_lib/version.txt \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/spec_pre.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/unix.conf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/linux.conf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/sanitize.conf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/gcc-base.conf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/gcc-base-unix.conf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/g++-base.conf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/g++-unix.conf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/qconfig.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3danimation.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3danimation_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dcore.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dcore_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dextras.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dextras_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dinput.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dinput_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dlogic.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dlogic_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquick.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquick_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickanimation.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickanimation_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickextras.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickextras_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickinput.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickinput_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickrender.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickrender_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickscene2d.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3drender.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3drender_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_bluetooth.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_bluetooth_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_bootstrap_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_charts.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_charts_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_concurrent.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_concurrent_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_core.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_core_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_datavisualization.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_datavisualization_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_dbus.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_dbus_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_designer.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_designer_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_designercomponents_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_egl_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_fb_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gamepad.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gamepad_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_glx_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gui.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gui_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_help.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_help_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_input_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_kms_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_location.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_location_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimedia.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimedia_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimediawidgets.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_network.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_network_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_nfc.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_nfc_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_opengl.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_opengl_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_openglextensions.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_openglextensions_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_packetprotocol_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_positioning.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_positioning_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_printsupport.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_printsupport_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qml.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qml_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmldebug_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmldevtools_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmltest.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmltest_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quick.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quick_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickcontrols2.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickparticles_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickwidgets.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickwidgets_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_scxml.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_scxml_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sensors.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sensors_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialbus.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialbus_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialport.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialport_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_service_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sql.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sql_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_svg.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_svg_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_testlib.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_testlib_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_theme_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_uiplugin.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_uitools.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_uitools_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webchannel.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webchannel_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webengine.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webengine_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginecore.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginecore_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginecoreheaders_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginewidgets.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginewidgets_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_websockets.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_websockets_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webview.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webview_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_widgets.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_widgets_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_x11extras.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_x11extras_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xml.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xml_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xmlpatterns.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xmlpatterns_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qt_functions.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qt_config.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/linux-g++/qmake.conf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/spec_post.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/exclusive_builds.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/toolchain.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/default_pre.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/resolve_config.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/default_post.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/warn_on.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qt.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/resources.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/moc.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/unix/opengl.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/uic.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/unix/thread.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qmake_use.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/file_copies.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/testcase_targets.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/exceptions.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/yacc.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/lex.prf \ + ../Ventoy2Disk/Ventoy2Disk.pro ../Ventoy2Disk/Core/ventoy_define.h \ + ../Ventoy2Disk/Core/ventoy_disk.h \ + ../Ventoy2Disk/Core/ventoy_json.h \ + ../Ventoy2Disk/Core/ventoy_util.h \ + ../Ventoy2Disk/Include/Ventoy2Disk.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/vbr.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_access.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_cache.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_format.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_list.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_string.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_table.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_types.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_write.h \ + ../Ventoy2Disk/Lib/libhttp/include/civetweb.h \ + ../Ventoy2Disk/Lib/libhttp/include/handle_form.inl \ + ../Ventoy2Disk/Lib/libhttp/include/md5.inl \ + ../Ventoy2Disk/Lib/libhttp/include/mod_duktape.inl \ + ../Ventoy2Disk/Lib/libhttp/include/mod_lua.inl \ + ../Ventoy2Disk/Lib/libhttp/include/timer.inl \ + ../Ventoy2Disk/QT/ventoy_qt.h \ + ../Ventoy2Disk/Web/ventoy_http.h \ + ../Ventoy2Disk/partcfgdialog.h \ + ../Ventoy2Disk/ventoy2diskwindow.h ../Ventoy2Disk/Core/ventoy_crc32.c \ + ../Ventoy2Disk/Core/ventoy_disk.c \ + ../Ventoy2Disk/Core/ventoy_json.c \ + ../Ventoy2Disk/Core/ventoy_log.c \ + ../Ventoy2Disk/Core/ventoy_md5.c \ + ../Ventoy2Disk/Core/ventoy_util.c \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/cluster.c \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/io.c \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/lookup.c \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/mount.c \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/node.c \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/repair.c \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/time.c \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/utf.c \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/utils.c \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.c \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.c \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.c \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat_main.c \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.c \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.c \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.c \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/vbr.c \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_access.c \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_cache.c \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.c \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_format.c \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.c \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_string.c \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_table.c \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_write.c \ + ../Ventoy2Disk/Lib/xz-embedded/linux/lib/decompress_unxz.c \ + ../Ventoy2Disk/QT/refresh_icon_data.c \ + ../Ventoy2Disk/QT/secure_icon_data.c \ + ../Ventoy2Disk/QT/ventoy_qt_stub.c \ + ../Ventoy2Disk/Web/ventoy_http.c \ + ../Ventoy2Disk/main.cpp \ + ../Ventoy2Disk/partcfgdialog.cpp \ + ../Ventoy2Disk/ventoy2diskwindow.cpp +QMAKE_TARGET = Ventoy2Disk +DESTDIR = +TARGET = Ventoy2Disk + + +first: all +####### Build rules + +$(TARGET): ui_partcfgdialog.h ui_ventoy2diskwindow.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: ../Ventoy2Disk/Ventoy2Disk.pro ../../Qt5.9.0/5.9/gcc_64/mkspecs/linux-g++/qmake.conf ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/spec_pre.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/unix.conf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/linux.conf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/sanitize.conf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/gcc-base.conf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/gcc-base-unix.conf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/g++-base.conf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/g++-unix.conf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/qconfig.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3danimation.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3danimation_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dcore.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dcore_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dextras.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dextras_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dinput.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dinput_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dlogic.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dlogic_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquick.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquick_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickanimation.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickanimation_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickextras.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickextras_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickinput.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickinput_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickrender.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickrender_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickscene2d.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3drender.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3drender_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_accessibility_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_bluetooth.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_bluetooth_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_bootstrap_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_charts.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_charts_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_concurrent.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_concurrent_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_core.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_core_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_datavisualization.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_datavisualization_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_dbus.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_dbus_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_designer.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_designer_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_designercomponents_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_egl_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_fb_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gamepad.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gamepad_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_glx_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gui.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gui_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_help.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_help_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_input_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_kms_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_location.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_location_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimedia.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimedia_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimediawidgets.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_network.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_network_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_nfc.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_nfc_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_opengl.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_opengl_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_openglextensions.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_openglextensions_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_packetprotocol_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_positioning.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_positioning_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_printsupport.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_printsupport_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qml.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qml_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmldebug_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmldevtools_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmltest.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmltest_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quick.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quick_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickcontrols2.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickparticles_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickwidgets.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickwidgets_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_scxml.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_scxml_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sensors.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sensors_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialbus.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialbus_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialport.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialport_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_service_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sql.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sql_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_svg.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_svg_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_testlib.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_testlib_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_theme_support_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_uiplugin.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_uitools.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_uitools_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webchannel.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webchannel_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webengine.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webengine_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginecore.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginecore_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginecoreheaders_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginewidgets.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginewidgets_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_websockets.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_websockets_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webview.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webview_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_widgets.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_widgets_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_x11extras.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_x11extras_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xml.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xml_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xmlpatterns.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xmlpatterns_private.pri \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qt_functions.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qt_config.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/linux-g++/qmake.conf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/spec_post.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/exclusive_builds.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/toolchain.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/default_pre.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/resolve_config.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/default_post.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/warn_on.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qt.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/resources.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/moc.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/unix/opengl.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/uic.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/unix/thread.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qmake_use.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/file_copies.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/testcase_targets.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/exceptions.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/yacc.prf \ + ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/lex.prf \ + ../Ventoy2Disk/Ventoy2Disk.pro \ + ../../Qt5.9.0/5.9/gcc_64/lib/libQt5Widgets.prl \ + ../../Qt5.9.0/5.9/gcc_64/lib/libQt5Gui.prl \ + ../../Qt5.9.0/5.9/gcc_64/lib/libQt5Core.prl + $(QMAKE) -o Makefile ../Ventoy2Disk/Ventoy2Disk.pro -spec linux-g++ +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/spec_pre.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/common/unix.conf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/common/linux.conf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/common/sanitize.conf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/common/gcc-base.conf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/common/gcc-base-unix.conf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/common/g++-base.conf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/common/g++-unix.conf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/qconfig.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3danimation.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3danimation_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dcore.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dcore_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dextras.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dextras_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dinput.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dinput_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dlogic.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dlogic_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquick.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquick_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickanimation.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickanimation_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickextras.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickextras_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickinput.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickinput_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickrender.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickrender_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickscene2d.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickscene2d_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3drender.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3drender_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_accessibility_support_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_bluetooth.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_bluetooth_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_bootstrap_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_charts.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_charts_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_concurrent.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_concurrent_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_core.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_core_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_datavisualization.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_datavisualization_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_dbus.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_dbus_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_designer.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_designer_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_designercomponents_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_egl_support_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_fb_support_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gamepad.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gamepad_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_glx_support_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gui.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gui_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_help.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_help_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_input_support_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_kms_support_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_location.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_location_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimedia.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimedia_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimediawidgets.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_network.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_network_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_nfc.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_nfc_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_opengl.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_opengl_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_openglextensions.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_openglextensions_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_packetprotocol_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_positioning.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_positioning_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_printsupport.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_printsupport_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qml.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qml_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmldebug_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmldevtools_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmltest.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmltest_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quick.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quick_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickcontrols2.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickparticles_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickwidgets.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickwidgets_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_scxml.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_scxml_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sensors.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sensors_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialbus.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialbus_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialport.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialport_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_service_support_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sql.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sql_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_svg.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_svg_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_testlib.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_testlib_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_theme_support_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_uiplugin.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_uitools.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_uitools_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webchannel.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webchannel_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webengine.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webengine_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginecore.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginecore_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginecoreheaders_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginewidgets.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginewidgets_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_websockets.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_websockets_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webview.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webview_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_widgets.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_widgets_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_x11extras.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_x11extras_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xml.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xml_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xmlpatterns.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xmlpatterns_private.pri: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qt_functions.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qt_config.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/linux-g++/qmake.conf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/spec_post.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/exclusive_builds.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/toolchain.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/default_pre.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/resolve_config.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/default_post.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/warn_on.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qt.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/resources.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/moc.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/unix/opengl.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/uic.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/unix/thread.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qmake_use.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/file_copies.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/testcase_targets.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/exceptions.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/yacc.prf: +../../Qt5.9.0/5.9/gcc_64/mkspecs/features/lex.prf: +../Ventoy2Disk/Ventoy2Disk.pro: +../../Qt5.9.0/5.9/gcc_64/lib/libQt5Widgets.prl: +../../Qt5.9.0/5.9/gcc_64/lib/libQt5Gui.prl: +../../Qt5.9.0/5.9/gcc_64/lib/libQt5Core.prl: +qmake: FORCE + @$(QMAKE) -o Makefile ../Ventoy2Disk/Ventoy2Disk.pro -spec linux-g++ + +qmake_all: FORCE + + +all: Makefile $(TARGET) + +dist: distdir FORCE + (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR) + +distdir: FORCE + @test -d $(DISTDIR) || mkdir -p $(DISTDIR) + $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ + $(COPY_FILE) --parents ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/data/dummy.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../Ventoy2Disk/Core/ventoy_define.h ../Ventoy2Disk/Core/ventoy_disk.h ../Ventoy2Disk/Core/ventoy_json.h ../Ventoy2Disk/Core/ventoy_util.h ../Ventoy2Disk/Include/Ventoy2Disk.h ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.h ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.h ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.h ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.h ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.h ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.h ../Ventoy2Disk/Lib/exfat/src/mkfs/vbr.h ../Ventoy2Disk/Lib/fat_io_lib/fat_access.h ../Ventoy2Disk/Lib/fat_io_lib/fat_cache.h ../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h ../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.h ../Ventoy2Disk/Lib/fat_io_lib/fat_format.h ../Ventoy2Disk/Lib/fat_io_lib/fat_list.h ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.h ../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h ../Ventoy2Disk/Lib/fat_io_lib/fat_string.h ../Ventoy2Disk/Lib/fat_io_lib/fat_table.h ../Ventoy2Disk/Lib/fat_io_lib/fat_types.h ../Ventoy2Disk/Lib/fat_io_lib/fat_write.h ../Ventoy2Disk/Lib/libhttp/include/civetweb.h ../Ventoy2Disk/Lib/libhttp/include/handle_form.inl ../Ventoy2Disk/Lib/libhttp/include/md5.inl ../Ventoy2Disk/Lib/libhttp/include/mod_duktape.inl ../Ventoy2Disk/Lib/libhttp/include/mod_lua.inl ../Ventoy2Disk/Lib/libhttp/include/timer.inl ../Ventoy2Disk/QT/ventoy_qt.h ../Ventoy2Disk/Web/ventoy_http.h ../Ventoy2Disk/partcfgdialog.h ../Ventoy2Disk/ventoy2diskwindow.h $(DISTDIR)/ + $(COPY_FILE) --parents ../Ventoy2Disk/Core/ventoy_crc32.c ../Ventoy2Disk/Core/ventoy_disk.c ../Ventoy2Disk/Core/ventoy_json.c ../Ventoy2Disk/Core/ventoy_log.c ../Ventoy2Disk/Core/ventoy_md5.c ../Ventoy2Disk/Core/ventoy_util.c ../Ventoy2Disk/Lib/exfat/src/libexfat/cluster.c ../Ventoy2Disk/Lib/exfat/src/libexfat/io.c ../Ventoy2Disk/Lib/exfat/src/libexfat/lookup.c ../Ventoy2Disk/Lib/exfat/src/libexfat/mount.c ../Ventoy2Disk/Lib/exfat/src/libexfat/node.c ../Ventoy2Disk/Lib/exfat/src/libexfat/repair.c ../Ventoy2Disk/Lib/exfat/src/libexfat/time.c ../Ventoy2Disk/Lib/exfat/src/libexfat/utf.c ../Ventoy2Disk/Lib/exfat/src/libexfat/utils.c ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.c ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.c ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.c ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat_main.c ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.c ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.c ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.c ../Ventoy2Disk/Lib/exfat/src/mkfs/vbr.c ../Ventoy2Disk/Lib/fat_io_lib/fat_access.c ../Ventoy2Disk/Lib/fat_io_lib/fat_cache.c ../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.c ../Ventoy2Disk/Lib/fat_io_lib/fat_format.c ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.c ../Ventoy2Disk/Lib/fat_io_lib/fat_string.c ../Ventoy2Disk/Lib/fat_io_lib/fat_table.c ../Ventoy2Disk/Lib/fat_io_lib/fat_write.c ../Ventoy2Disk/Lib/xz-embedded/linux/lib/decompress_unxz.c ../Ventoy2Disk/QT/refresh_icon_data.c ../Ventoy2Disk/QT/secure_icon_data.c ../Ventoy2Disk/QT/ventoy_qt_stub.c ../Ventoy2Disk/Web/ventoy_http.c ../Ventoy2Disk/main.cpp ../Ventoy2Disk/partcfgdialog.cpp ../Ventoy2Disk/ventoy2diskwindow.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ../Ventoy2Disk/partcfgdialog.ui ../Ventoy2Disk/ventoy2diskwindow.ui $(DISTDIR)/ + + +clean: compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) Makefile + + +####### Sub-libraries + +mocclean: compiler_moc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_source_make_all + +check: first + +benchmark: first + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_clean: + -$(DEL_FILE) moc_predefs.h +moc_predefs.h: ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -std=gnu++11 -Wall -W -dM -E -o moc_predefs.h ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/data/dummy.cpp + +compiler_moc_header_make_all: moc_partcfgdialog.cpp moc_ventoy2diskwindow.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_partcfgdialog.cpp moc_ventoy2diskwindow.cpp +moc_partcfgdialog.cpp: ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QDialog \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qdialog.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgetsglobal.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtguiglobal.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobal.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig-bootstrapped.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtcore-config.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsystemdetection.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qprocessordetection.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcompilerdetection.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtypeinfo.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsysinfo.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlogging.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qflags.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbasicatomic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_bootstrap.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qgenericatomic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_cxx11.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_msvc.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobalstatic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmutex.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnumeric.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qversiontagging.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtgui-config.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgets-config.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qwidget.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnamespace.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs_impl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs_win.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstring.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qchar.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearray.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrefcount.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qarraydata.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringbuilder.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlist.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qalgorithms.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiterator.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhashfunctions.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpair.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearraylist.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringlist.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qregexp.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringmatcher.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcoreevent.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qscopedpointer.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmetatype.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvarlengtharray.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontainerfwd.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject_impl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmargins.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpaintdevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrect.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsize.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpoint.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpalette.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcolor.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgb.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgba64.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qbrush.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvector.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qmatrix.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpolygon.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qregion.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdatastream.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiodevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qline.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtransform.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpainterpath.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qimage.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixelformat.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixmap.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qshareddata.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhash.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer_impl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfont.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontmetrics.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontinfo.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qsizepolicy.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcursor.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qkeysequence.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qevent.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvariant.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmap.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdebug.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtextstream.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlocale.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qset.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontiguouscache.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurlquery.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfile.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfiledevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qvector2d.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtouchdevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonObject \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonobject.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonvalue.h \ + ../Ventoy2Disk/partcfgdialog.h \ + moc_predefs.h \ + ../../Qt5.9.0/5.9/gcc_64/bin/moc + /home/panda/Qt5.9.0/5.9/gcc_64/bin/moc $(DEFINES) --include ./moc_predefs.h -I/home/panda/Qt5.9.0/5.9/gcc_64/mkspecs/linux-g++ -I/home/panda/590/Ventoy2Disk -I/home/panda/Ventoy2Disk/Core -I/home/panda/Ventoy2Disk/Web -I/home/panda/Ventoy2Disk/QT -I/home/panda/Ventoy2Disk/Include -I/home/panda/Ventoy2Disk/Lib/libhttp/include -I/home/panda/Ventoy2Disk/Lib/fat_io_lib/include -I/home/panda/Ventoy2Disk/Lib/xz-embedded/linux/include -I/home/panda/Ventoy2Disk/Lib/xz-embedded/linux/include/linux -I/home/panda/Ventoy2Disk/Lib/xz-embedded/userspace -I/home/panda/Ventoy2Disk/Lib/exfat/src/libexfat -I/home/panda/Ventoy2Disk/Lib/fat_io_lib -I/home/panda/Qt5.9.0/5.9/gcc_64/include -I/home/panda/Qt5.9.0/5.9/gcc_64/include/QtWidgets -I/home/panda/Qt5.9.0/5.9/gcc_64/include/QtGui -I/home/panda/Qt5.9.0/5.9/gcc_64/include/QtCore -I. -I/usr/include/c++/8 -I/usr/include/x86_64-linux-gnu/c++/8 -I/usr/include/c++/8/backward -I/usr/lib/gcc/x86_64-linux-gnu/8/include -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed -I/usr/include/x86_64-linux-gnu -I/usr/include ../Ventoy2Disk/partcfgdialog.h -o moc_partcfgdialog.cpp + +moc_ventoy2diskwindow.cpp: ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QMainWindow \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qmainwindow.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgetsglobal.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtguiglobal.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobal.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig-bootstrapped.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtcore-config.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsystemdetection.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qprocessordetection.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcompilerdetection.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtypeinfo.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsysinfo.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlogging.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qflags.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbasicatomic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_bootstrap.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qgenericatomic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_cxx11.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_msvc.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobalstatic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmutex.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnumeric.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qversiontagging.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtgui-config.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgets-config.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qwidget.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnamespace.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs_impl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs_win.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstring.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qchar.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearray.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrefcount.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qarraydata.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringbuilder.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlist.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qalgorithms.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiterator.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhashfunctions.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpair.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearraylist.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringlist.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qregexp.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringmatcher.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcoreevent.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qscopedpointer.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmetatype.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvarlengtharray.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontainerfwd.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject_impl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmargins.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpaintdevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrect.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsize.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpoint.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpalette.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcolor.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgb.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgba64.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qbrush.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvector.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qmatrix.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpolygon.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qregion.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdatastream.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiodevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qline.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtransform.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpainterpath.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qimage.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixelformat.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixmap.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qshareddata.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhash.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer_impl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfont.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontmetrics.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontinfo.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qsizepolicy.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcursor.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qkeysequence.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qevent.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvariant.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmap.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdebug.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtextstream.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlocale.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qset.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontiguouscache.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurlquery.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfile.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfiledevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qvector2d.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtouchdevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtabwidget.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qicon.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QActionGroup \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qactiongroup.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qaction.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonDocument \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsondocument.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonvalue.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QFile \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonObject \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonobject.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonArray \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonarray.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QVector \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QtGlobal \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QDebug \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/QCloseEvent \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QThread \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qthread.h \ + ../Ventoy2Disk/partcfgdialog.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QDialog \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qdialog.h \ + ../Ventoy2Disk/ventoy2diskwindow.h \ + moc_predefs.h \ + ../../Qt5.9.0/5.9/gcc_64/bin/moc + /home/panda/Qt5.9.0/5.9/gcc_64/bin/moc $(DEFINES) --include ./moc_predefs.h -I/home/panda/Qt5.9.0/5.9/gcc_64/mkspecs/linux-g++ -I/home/panda/590/Ventoy2Disk -I/home/panda/Ventoy2Disk/Core -I/home/panda/Ventoy2Disk/Web -I/home/panda/Ventoy2Disk/QT -I/home/panda/Ventoy2Disk/Include -I/home/panda/Ventoy2Disk/Lib/libhttp/include -I/home/panda/Ventoy2Disk/Lib/fat_io_lib/include -I/home/panda/Ventoy2Disk/Lib/xz-embedded/linux/include -I/home/panda/Ventoy2Disk/Lib/xz-embedded/linux/include/linux -I/home/panda/Ventoy2Disk/Lib/xz-embedded/userspace -I/home/panda/Ventoy2Disk/Lib/exfat/src/libexfat -I/home/panda/Ventoy2Disk/Lib/fat_io_lib -I/home/panda/Qt5.9.0/5.9/gcc_64/include -I/home/panda/Qt5.9.0/5.9/gcc_64/include/QtWidgets -I/home/panda/Qt5.9.0/5.9/gcc_64/include/QtGui -I/home/panda/Qt5.9.0/5.9/gcc_64/include/QtCore -I. -I/usr/include/c++/8 -I/usr/include/x86_64-linux-gnu/c++/8 -I/usr/include/c++/8/backward -I/usr/lib/gcc/x86_64-linux-gnu/8/include -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed -I/usr/include/x86_64-linux-gnu -I/usr/include ../Ventoy2Disk/ventoy2diskwindow.h -o moc_ventoy2diskwindow.cpp + +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_partcfgdialog.h ui_ventoy2diskwindow.h +compiler_uic_clean: + -$(DEL_FILE) ui_partcfgdialog.h ui_ventoy2diskwindow.h +ui_partcfgdialog.h: ../Ventoy2Disk/partcfgdialog.ui \ + ../../Qt5.9.0/5.9/gcc_64/bin/uic + /home/panda/Qt5.9.0/5.9/gcc_64/bin/uic ../Ventoy2Disk/partcfgdialog.ui -o ui_partcfgdialog.h + +ui_ventoy2diskwindow.h: ../Ventoy2Disk/ventoy2diskwindow.ui \ + ../../Qt5.9.0/5.9/gcc_64/bin/uic + /home/panda/Qt5.9.0/5.9/gcc_64/bin/uic ../Ventoy2Disk/ventoy2diskwindow.ui -o ui_ventoy2diskwindow.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean + +####### Compile + +ventoy_crc32.o: ../Ventoy2Disk/Core/ventoy_crc32.c + $(CC) -c $(CFLAGS) $(INCPATH) -o ventoy_crc32.o ../Ventoy2Disk/Core/ventoy_crc32.c + +ventoy_disk.o: ../Ventoy2Disk/Core/ventoy_disk.c ../../Ventoy2Disk/Core/ventoy_define.h \ + ../../Ventoy2Disk/Core/ventoy_disk.h \ + ../../Ventoy2Disk/Core/ventoy_util.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_access.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_types.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_list.h + $(CC) -c $(CFLAGS) $(INCPATH) -o ventoy_disk.o ../Ventoy2Disk/Core/ventoy_disk.c + +ventoy_json.o: ../Ventoy2Disk/Core/ventoy_json.c ../../Ventoy2Disk/Core/ventoy_define.h \ + ../../Ventoy2Disk/Core/ventoy_util.h \ + ../../Ventoy2Disk/Core/ventoy_json.h + $(CC) -c $(CFLAGS) $(INCPATH) -o ventoy_json.o ../Ventoy2Disk/Core/ventoy_json.c + +ventoy_log.o: ../Ventoy2Disk/Core/ventoy_log.c ../../Ventoy2Disk/Core/ventoy_define.h + $(CC) -c $(CFLAGS) $(INCPATH) -o ventoy_log.o ../Ventoy2Disk/Core/ventoy_log.c + +ventoy_md5.o: ../Ventoy2Disk/Core/ventoy_md5.c + $(CC) -c $(CFLAGS) $(INCPATH) -o ventoy_md5.o ../Ventoy2Disk/Core/ventoy_md5.c + +ventoy_util.o: ../Ventoy2Disk/Core/ventoy_util.c ../../Ventoy2Disk/Core/ventoy_define.h \ + ../../Ventoy2Disk/Core/ventoy_util.h + $(CC) -c $(CFLAGS) $(INCPATH) -o ventoy_util.o ../Ventoy2Disk/Core/ventoy_util.c + +cluster.o: ../Ventoy2Disk/Lib/exfat/src/libexfat/cluster.c ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h + $(CC) -c $(CFLAGS) $(INCPATH) -o cluster.o ../Ventoy2Disk/Lib/exfat/src/libexfat/cluster.c + +io.o: ../Ventoy2Disk/Lib/exfat/src/libexfat/io.c ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h + $(CC) -c $(CFLAGS) $(INCPATH) -o io.o ../Ventoy2Disk/Lib/exfat/src/libexfat/io.c + +lookup.o: ../Ventoy2Disk/Lib/exfat/src/libexfat/lookup.c ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h + $(CC) -c $(CFLAGS) $(INCPATH) -o lookup.o ../Ventoy2Disk/Lib/exfat/src/libexfat/lookup.c + +mount.o: ../Ventoy2Disk/Lib/exfat/src/libexfat/mount.c ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h + $(CC) -c $(CFLAGS) $(INCPATH) -o mount.o ../Ventoy2Disk/Lib/exfat/src/libexfat/mount.c + +node.o: ../Ventoy2Disk/Lib/exfat/src/libexfat/node.c ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h + $(CC) -c $(CFLAGS) $(INCPATH) -o node.o ../Ventoy2Disk/Lib/exfat/src/libexfat/node.c + +repair.o: ../Ventoy2Disk/Lib/exfat/src/libexfat/repair.c ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h + $(CC) -c $(CFLAGS) $(INCPATH) -o repair.o ../Ventoy2Disk/Lib/exfat/src/libexfat/repair.c + +time.o: ../Ventoy2Disk/Lib/exfat/src/libexfat/time.c ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h + $(CC) -c $(CFLAGS) $(INCPATH) -o time.o ../Ventoy2Disk/Lib/exfat/src/libexfat/time.c + +utf.o: ../Ventoy2Disk/Lib/exfat/src/libexfat/utf.c ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h + $(CC) -c $(CFLAGS) $(INCPATH) -o utf.o ../Ventoy2Disk/Lib/exfat/src/libexfat/utf.c + +utils.o: ../Ventoy2Disk/Lib/exfat/src/libexfat/utils.c ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \ + ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h + $(CC) -c $(CFLAGS) $(INCPATH) -o utils.o ../Ventoy2Disk/Lib/exfat/src/libexfat/utils.c + +cbm.o: ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.c ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.h + $(CC) -c $(CFLAGS) $(INCPATH) -o cbm.o ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.c + +fat.o: ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.c ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.h + $(CC) -c $(CFLAGS) $(INCPATH) -o fat.o ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.c + +mkexfat.o: ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.c ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h + $(CC) -c $(CFLAGS) $(INCPATH) -o mkexfat.o ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.c + +mkexfat_main.o: ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat_main.c ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/vbr.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.h + $(CC) -c $(CFLAGS) $(INCPATH) -o mkexfat_main.o ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat_main.c + +rootdir.o: ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.c ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.h + $(CC) -c $(CFLAGS) $(INCPATH) -o rootdir.o ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.c + +uct.o: ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.c ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.h + $(CC) -c $(CFLAGS) $(INCPATH) -o uct.o ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.c + +uctc.o: ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.c ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.h + $(CC) -c $(CFLAGS) $(INCPATH) -o uctc.o ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.c + +vbr.o: ../Ventoy2Disk/Lib/exfat/src/mkfs/vbr.c ../Ventoy2Disk/Lib/exfat/src/mkfs/vbr.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \ + ../../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.h \ + ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.h + $(CC) -c $(CFLAGS) $(INCPATH) -o vbr.o ../Ventoy2Disk/Lib/exfat/src/mkfs/vbr.c + +fat_access.o: ../Ventoy2Disk/Lib/fat_io_lib/fat_access.c ../../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_types.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_access.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_table.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_write.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_string.h + $(CC) -c $(CFLAGS) $(INCPATH) -o fat_access.o ../Ventoy2Disk/Lib/fat_io_lib/fat_access.c + +fat_cache.o: ../Ventoy2Disk/Lib/fat_io_lib/fat_cache.c ../Ventoy2Disk/Lib/fat_io_lib/fat_cache.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_access.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_types.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_list.h + $(CC) -c $(CFLAGS) $(INCPATH) -o fat_cache.o ../Ventoy2Disk/Lib/fat_io_lib/fat_cache.c + +fat_filelib.o: ../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.c ../../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_types.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_access.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_table.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_write.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_string.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_list.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_cache.h + $(CC) -c $(CFLAGS) $(INCPATH) -o fat_filelib.o ../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.c + +fat_format.o: ../Ventoy2Disk/Lib/fat_io_lib/fat_format.c ../../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_types.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_access.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_table.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_write.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_string.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_format.h + $(CC) -c $(CFLAGS) $(INCPATH) -o fat_format.o ../Ventoy2Disk/Lib/fat_io_lib/fat_format.c + +fat_misc.o: ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.c ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_types.h + $(CC) -c $(CFLAGS) $(INCPATH) -o fat_misc.o ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.c + +fat_string.o: ../Ventoy2Disk/Lib/fat_io_lib/fat_string.c ../Ventoy2Disk/Lib/fat_io_lib/fat_string.h + $(CC) -c $(CFLAGS) $(INCPATH) -o fat_string.o ../Ventoy2Disk/Lib/fat_io_lib/fat_string.c + +fat_table.o: ../Ventoy2Disk/Lib/fat_io_lib/fat_table.c ../../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_types.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_access.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_table.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.h + $(CC) -c $(CFLAGS) $(INCPATH) -o fat_table.o ../Ventoy2Disk/Lib/fat_io_lib/fat_table.c + +fat_write.o: ../Ventoy2Disk/Lib/fat_io_lib/fat_write.c ../../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_types.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_access.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_table.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_write.h \ + ../Ventoy2Disk/Lib/fat_io_lib/fat_string.h + $(CC) -c $(CFLAGS) $(INCPATH) -o fat_write.o ../Ventoy2Disk/Lib/fat_io_lib/fat_write.c + +decompress_unxz.o: ../Ventoy2Disk/Lib/xz-embedded/linux/lib/decompress_unxz.c ../../Ventoy2Disk/Lib/xz-embedded/linux/include/linux/xz.h \ + ../Ventoy2Disk/Lib/xz-embedded/linux/lib/xz/xz_private.h \ + ../../Ventoy2Disk/Lib/xz-embedded/userspace/xz_config.h \ + ../Ventoy2Disk/Lib/xz-embedded/linux/lib/xz/xz_crc32.c \ + ../Ventoy2Disk/Lib/xz-embedded/linux/lib/xz/xz_dec_stream.c \ + ../Ventoy2Disk/Lib/xz-embedded/linux/lib/xz/xz_stream.h \ + ../Ventoy2Disk/Lib/xz-embedded/linux/lib/xz/xz_dec_lzma2.c \ + ../Ventoy2Disk/Lib/xz-embedded/linux/lib/xz/xz_lzma2.h \ + ../Ventoy2Disk/Lib/xz-embedded/linux/lib/xz/xz_dec_bcj.c + $(CC) -c $(CFLAGS) $(INCPATH) -o decompress_unxz.o ../Ventoy2Disk/Lib/xz-embedded/linux/lib/decompress_unxz.c + +refresh_icon_data.o: ../Ventoy2Disk/QT/refresh_icon_data.c + $(CC) -c $(CFLAGS) $(INCPATH) -o refresh_icon_data.o ../Ventoy2Disk/QT/refresh_icon_data.c + +secure_icon_data.o: ../Ventoy2Disk/QT/secure_icon_data.c + $(CC) -c $(CFLAGS) $(INCPATH) -o secure_icon_data.o ../Ventoy2Disk/QT/secure_icon_data.c + +ventoy_qt_stub.o: ../Ventoy2Disk/QT/ventoy_qt_stub.c ../../Ventoy2Disk/Core/ventoy_define.h \ + ../../Ventoy2Disk/Core/ventoy_json.h \ + ../../Ventoy2Disk/Core/ventoy_util.h \ + ../../Ventoy2Disk/Core/ventoy_disk.h \ + ../../Ventoy2Disk/Web/ventoy_http.h \ + ../../Ventoy2Disk/Lib/libhttp/include/civetweb.h + $(CC) -c $(CFLAGS) $(INCPATH) -o ventoy_qt_stub.o ../Ventoy2Disk/QT/ventoy_qt_stub.c + +ventoy_http.o: ../Ventoy2Disk/Web/ventoy_http.c ../../Ventoy2Disk/Core/ventoy_define.h \ + ../../Ventoy2Disk/Core/ventoy_json.h \ + ../../Ventoy2Disk/Core/ventoy_util.h \ + ../../Ventoy2Disk/Core/ventoy_disk.h \ + ../../Ventoy2Disk/Web/ventoy_http.h \ + ../../Ventoy2Disk/Lib/libhttp/include/civetweb.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_access.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_types.h \ + ../../Ventoy2Disk/Lib/fat_io_lib/fat_list.h + $(CC) -c $(CFLAGS) $(INCPATH) -o ventoy_http.o ../Ventoy2Disk/Web/ventoy_http.c + +main.o: ../Ventoy2Disk/main.cpp ../Ventoy2Disk/ventoy2diskwindow.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QMainWindow \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qmainwindow.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgetsglobal.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtguiglobal.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobal.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig-bootstrapped.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtcore-config.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsystemdetection.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qprocessordetection.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcompilerdetection.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtypeinfo.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsysinfo.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlogging.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qflags.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbasicatomic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_bootstrap.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qgenericatomic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_cxx11.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_msvc.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobalstatic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmutex.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnumeric.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qversiontagging.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtgui-config.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgets-config.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qwidget.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnamespace.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs_impl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs_win.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstring.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qchar.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearray.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrefcount.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qarraydata.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringbuilder.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlist.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qalgorithms.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiterator.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhashfunctions.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpair.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearraylist.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringlist.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qregexp.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringmatcher.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcoreevent.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qscopedpointer.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmetatype.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvarlengtharray.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontainerfwd.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject_impl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmargins.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpaintdevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrect.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsize.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpoint.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpalette.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcolor.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgb.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgba64.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qbrush.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvector.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qmatrix.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpolygon.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qregion.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdatastream.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiodevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qline.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtransform.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpainterpath.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qimage.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixelformat.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixmap.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qshareddata.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhash.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer_impl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfont.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontmetrics.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontinfo.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qsizepolicy.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcursor.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qkeysequence.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qevent.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvariant.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmap.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdebug.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtextstream.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlocale.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qset.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontiguouscache.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurlquery.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfile.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfiledevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qvector2d.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtouchdevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtabwidget.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qicon.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QActionGroup \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qactiongroup.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qaction.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonDocument \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsondocument.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonvalue.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QFile \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonObject \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonobject.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonArray \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonarray.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QVector \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QtGlobal \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QDebug \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/QCloseEvent \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QThread \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qthread.h \ + ../Ventoy2Disk/partcfgdialog.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QDialog \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qdialog.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QApplication \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qapplication.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcoreapplication.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qeventloop.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qdesktopwidget.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qguiapplication.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qinputmethod.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QMessageBox \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qmessagebox.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QFileInfo \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfileinfo.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QStyle \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qstyle.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QDesktopWidget \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/QPixmap \ + ../../Ventoy2Disk/Core/ventoy_define.h \ + ../../Ventoy2Disk/Core/ventoy_util.h \ + ../../Ventoy2Disk/QT/ventoy_qt.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../Ventoy2Disk/main.cpp + +partcfgdialog.o: ../Ventoy2Disk/partcfgdialog.cpp ../Ventoy2Disk/partcfgdialog.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QDialog \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qdialog.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgetsglobal.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtguiglobal.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobal.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig-bootstrapped.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtcore-config.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsystemdetection.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qprocessordetection.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcompilerdetection.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtypeinfo.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsysinfo.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlogging.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qflags.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbasicatomic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_bootstrap.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qgenericatomic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_cxx11.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_msvc.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobalstatic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmutex.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnumeric.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qversiontagging.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtgui-config.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgets-config.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qwidget.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnamespace.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs_impl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs_win.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstring.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qchar.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearray.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrefcount.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qarraydata.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringbuilder.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlist.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qalgorithms.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiterator.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhashfunctions.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpair.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearraylist.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringlist.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qregexp.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringmatcher.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcoreevent.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qscopedpointer.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmetatype.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvarlengtharray.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontainerfwd.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject_impl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmargins.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpaintdevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrect.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsize.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpoint.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpalette.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcolor.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgb.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgba64.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qbrush.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvector.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qmatrix.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpolygon.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qregion.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdatastream.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiodevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qline.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtransform.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpainterpath.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qimage.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixelformat.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixmap.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qshareddata.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhash.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer_impl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfont.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontmetrics.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontinfo.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qsizepolicy.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcursor.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qkeysequence.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qevent.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvariant.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmap.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdebug.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtextstream.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlocale.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qset.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontiguouscache.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurlquery.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfile.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfiledevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qvector2d.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtouchdevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonObject \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonobject.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonvalue.h \ + ui_partcfgdialog.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QDebug \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QMessageBox \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qmessagebox.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o partcfgdialog.o ../Ventoy2Disk/partcfgdialog.cpp + +ventoy2diskwindow.o: ../Ventoy2Disk/ventoy2diskwindow.cpp ../Ventoy2Disk/ventoy2diskwindow.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QMainWindow \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qmainwindow.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgetsglobal.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtguiglobal.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobal.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig-bootstrapped.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtcore-config.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsystemdetection.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qprocessordetection.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcompilerdetection.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtypeinfo.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsysinfo.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlogging.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qflags.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbasicatomic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_bootstrap.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qgenericatomic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_cxx11.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_msvc.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobalstatic.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmutex.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnumeric.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qversiontagging.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtgui-config.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgets-config.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qwidget.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnamespace.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs_impl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs_win.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstring.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qchar.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearray.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrefcount.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qarraydata.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringbuilder.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlist.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qalgorithms.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiterator.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhashfunctions.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpair.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearraylist.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringlist.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qregexp.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringmatcher.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcoreevent.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qscopedpointer.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmetatype.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvarlengtharray.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontainerfwd.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject_impl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmargins.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpaintdevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrect.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsize.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpoint.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpalette.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcolor.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgb.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgba64.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qbrush.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvector.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qmatrix.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpolygon.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qregion.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdatastream.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiodevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qline.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtransform.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpainterpath.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qimage.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixelformat.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixmap.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qshareddata.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhash.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer_impl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfont.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontmetrics.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontinfo.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qsizepolicy.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcursor.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qkeysequence.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qevent.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvariant.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmap.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdebug.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtextstream.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlocale.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qset.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontiguouscache.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurl.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurlquery.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfile.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfiledevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qvector2d.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtouchdevice.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtabwidget.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qicon.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QActionGroup \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qactiongroup.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qaction.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonDocument \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsondocument.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonvalue.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QFile \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonObject \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonobject.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonArray \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonarray.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QVector \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QtGlobal \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QDebug \ + ../../Qt5.9.0/5.9/gcc_64/include/QtGui/QCloseEvent \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QThread \ + ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qthread.h \ + ../Ventoy2Disk/partcfgdialog.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QDialog \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qdialog.h \ + ui_ventoy2diskwindow.h \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QMessageBox \ + ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qmessagebox.h \ + ../../Ventoy2Disk/Core/ventoy_define.h \ + ../../Ventoy2Disk/Core/ventoy_util.h \ + ../../Ventoy2Disk/Core/ventoy_disk.h \ + ../../Ventoy2Disk/Core/ventoy_json.h \ + ../../Ventoy2Disk/Web/ventoy_http.h \ + ../../Ventoy2Disk/Lib/libhttp/include/civetweb.h \ + ../../Ventoy2Disk/QT/ventoy_qt.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ventoy2diskwindow.o ../Ventoy2Disk/ventoy2diskwindow.cpp + +moc_partcfgdialog.o: moc_partcfgdialog.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_partcfgdialog.o moc_partcfgdialog.cpp + +moc_ventoy2diskwindow.o: moc_ventoy2diskwindow.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_ventoy2diskwindow.o moc_ventoy2diskwindow.cpp + +####### Install + +install_target: first FORCE + @test -d $(INSTALL_ROOT)/opt/Ventoy2Disk/bin || mkdir -p $(INSTALL_ROOT)/opt/Ventoy2Disk/bin + -$(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Ventoy2Disk/bin/$(QMAKE_TARGET) + -$(STRIP) $(INSTALL_ROOT)/opt/Ventoy2Disk/bin/$(QMAKE_TARGET) + +uninstall_target: FORCE + -$(DEL_FILE) $(INSTALL_ROOT)/opt/Ventoy2Disk/bin/$(QMAKE_TARGET) + -$(DEL_DIR) $(INSTALL_ROOT)/opt/Ventoy2Disk/bin/ + + +install: install_target FORCE + +uninstall: uninstall_target FORCE + +FORCE: + diff --git a/LinuxGUI/Ventoy2Disk/QT/build/moc_partcfgdialog.cpp b/LinuxGUI/Ventoy2Disk/QT/build/moc_partcfgdialog.cpp new file mode 100644 index 00000000..5bd328b2 --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/build/moc_partcfgdialog.cpp @@ -0,0 +1,124 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'partcfgdialog.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.9.0) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include "../partcfgdialog.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'partcfgdialog.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.9.0. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_PartCfgDialog_t { + QByteArrayData data[6]; + char stringdata0[97]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_PartCfgDialog_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_PartCfgDialog_t qt_meta_stringdata_PartCfgDialog = { + { +QT_MOC_LITERAL(0, 0, 13), // "PartCfgDialog" +QT_MOC_LITERAL(1, 14, 23), // "on_pushButtonOK_clicked" +QT_MOC_LITERAL(2, 38, 0), // "" +QT_MOC_LITERAL(3, 39, 27), // "on_pushButtonCancel_clicked" +QT_MOC_LITERAL(4, 67, 24), // "on_checkBox_stateChanged" +QT_MOC_LITERAL(5, 92, 4) // "arg1" + + }, + "PartCfgDialog\0on_pushButtonOK_clicked\0" + "\0on_pushButtonCancel_clicked\0" + "on_checkBox_stateChanged\0arg1" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_PartCfgDialog[] = { + + // content: + 7, // revision + 0, // classname + 0, 0, // classinfo + 3, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 0, 29, 2, 0x08 /* Private */, + 3, 0, 30, 2, 0x08 /* Private */, + 4, 1, 31, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 5, + + 0 // eod +}; + +void PartCfgDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + PartCfgDialog *_t = static_cast(_o); + Q_UNUSED(_t) + switch (_id) { + case 0: _t->on_pushButtonOK_clicked(); break; + case 1: _t->on_pushButtonCancel_clicked(); break; + case 2: _t->on_checkBox_stateChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + default: ; + } + } +} + +const QMetaObject PartCfgDialog::staticMetaObject = { + { &QDialog::staticMetaObject, qt_meta_stringdata_PartCfgDialog.data, + qt_meta_data_PartCfgDialog, qt_static_metacall, nullptr, nullptr} +}; + + +const QMetaObject *PartCfgDialog::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *PartCfgDialog::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_PartCfgDialog.stringdata0)) + return static_cast(const_cast< PartCfgDialog*>(this)); + return QDialog::qt_metacast(_clname); +} + +int PartCfgDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QDialog::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 3) + qt_static_metacall(this, _c, _id, _a); + _id -= 3; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 3) + *reinterpret_cast(_a[0]) = -1; + _id -= 3; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/LinuxGUI/Ventoy2Disk/QT/build/moc_predefs.h b/LinuxGUI/Ventoy2Disk/QT/build/moc_predefs.h new file mode 100644 index 00000000..868c52fd --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/build/moc_predefs.h @@ -0,0 +1,375 @@ +#define __DBL_MIN_EXP__ (-1021) +#define __FLT32X_MAX_EXP__ 1024 +#define __cpp_attributes 200809 +#define __UINT_LEAST16_MAX__ 0xffff +#define __ATOMIC_ACQUIRE 2 +#define __FLT128_MAX_10_EXP__ 4932 +#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F +#define __GCC_IEC_559_COMPLEX 2 +#define __UINT_LEAST8_TYPE__ unsigned char +#define __SIZEOF_FLOAT80__ 16 +#define __INTMAX_C(c) c ## L +#define __CHAR_BIT__ 8 +#define __UINT8_MAX__ 0xff +#define __WINT_MAX__ 0xffffffffU +#define __FLT32_MIN_EXP__ (-125) +#define __cpp_static_assert 200410 +#define __ORDER_LITTLE_ENDIAN__ 1234 +#define __SIZE_MAX__ 0xffffffffffffffffUL +#define __WCHAR_MAX__ 0x7fffffff +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1 +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1 +#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L) +#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1 +#define __GCC_ATOMIC_CHAR_LOCK_FREE 2 +#define __GCC_IEC_559 2 +#define __FLT32X_DECIMAL_DIG__ 17 +#define __FLT_EVAL_METHOD__ 0 +#define __unix__ 1 +#define __cpp_binary_literals 201304 +#define __FLT64_DECIMAL_DIG__ 17 +#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2 +#define __x86_64 1 +#define __cpp_variadic_templates 200704 +#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL +#define __SIG_ATOMIC_TYPE__ int +#define __DBL_MIN_10_EXP__ (-307) +#define __FINITE_MATH_ONLY__ 0 +#define __GNUC_PATCHLEVEL__ 0 +#define __FLT32_HAS_DENORM__ 1 +#define __UINT_FAST8_MAX__ 0xff +#define __has_include(STR) __has_include__(STR) +#define __DEC64_MAX_EXP__ 385 +#define __INT8_C(c) c +#define __INT_LEAST8_WIDTH__ 8 +#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL +#define __SHRT_MAX__ 0x7fff +#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L +#define __FLT64X_MAX_10_EXP__ 4932 +#define __UINT_LEAST8_MAX__ 0xff +#define __GCC_ATOMIC_BOOL_LOCK_FREE 2 +#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128 +#define __UINTMAX_TYPE__ long unsigned int +#define __linux 1 +#define __DEC32_EPSILON__ 1E-6DF +#define __FLT_EVAL_METHOD_TS_18661_3__ 0 +#define __OPTIMIZE__ 1 +#define __unix 1 +#define __UINT32_MAX__ 0xffffffffU +#define __GXX_EXPERIMENTAL_CXX0X__ 1 +#define __LDBL_MAX_EXP__ 16384 +#define __FLT128_MIN_EXP__ (-16381) +#define __WINT_MIN__ 0U +#define __linux__ 1 +#define __FLT128_MIN_10_EXP__ (-4931) +#define __INT_LEAST16_WIDTH__ 16 +#define __SCHAR_MAX__ 0x7f +#define __FLT128_MANT_DIG__ 113 +#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1) +#define __INT64_C(c) c ## L +#define __DBL_DIG__ 15 +#define __GCC_ATOMIC_POINTER_LOCK_FREE 2 +#define __FLT64X_MANT_DIG__ 64 +#define __SIZEOF_INT__ 4 +#define __SIZEOF_POINTER__ 8 +#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2 +#define __USER_LABEL_PREFIX__ +#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x +#define __STDC_HOSTED__ 1 +#define __LDBL_HAS_INFINITY__ 1 +#define __FLT32_DIG__ 6 +#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F +#define __GXX_WEAK__ 1 +#define __SHRT_WIDTH__ 16 +#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L +#define __DEC32_MAX__ 9.999999E96DF +#define __cpp_threadsafe_static_init 200806 +#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x +#define __FLT32X_HAS_INFINITY__ 1 +#define __INT32_MAX__ 0x7fffffff +#define __INT_WIDTH__ 32 +#define __SIZEOF_LONG__ 8 +#define __STDC_IEC_559__ 1 +#define __STDC_ISO_10646__ 201706L +#define __UINT16_C(c) c +#define __PTRDIFF_WIDTH__ 64 +#define __DECIMAL_DIG__ 21 +#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64 +#define __gnu_linux__ 1 +#define __INTMAX_WIDTH__ 64 +#define __FLT64_MIN_EXP__ (-1021) +#define __has_include_next(STR) __has_include_next__(STR) +#define __FLT64X_MIN_10_EXP__ (-4931) +#define __LDBL_HAS_QUIET_NAN__ 1 +#define __FLT64_MANT_DIG__ 53 +#define __GNUC__ 8 +#define __GXX_RTTI 1 +#define __MMX__ 1 +#define __cpp_delegating_constructors 200604 +#define __FLT_HAS_DENORM__ 1 +#define __SIZEOF_LONG_DOUBLE__ 16 +#define __BIGGEST_ALIGNMENT__ 16 +#define __STDC_UTF_16__ 1 +#define __FLT64_MAX_10_EXP__ 308 +#define __FLT32_HAS_INFINITY__ 1 +#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L) +#define __cpp_raw_strings 200710 +#define __INT_FAST32_MAX__ 0x7fffffffffffffffL +#define __DBL_HAS_INFINITY__ 1 +#define __DEC32_MIN_EXP__ (-94) +#define __INTPTR_WIDTH__ 64 +#define __FLT32X_HAS_DENORM__ 1 +#define __INT_FAST16_TYPE__ long int +#define __LDBL_HAS_DENORM__ 1 +#define __cplusplus 201103L +#define __cpp_ref_qualifiers 200710 +#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL +#define __INT_LEAST32_MAX__ 0x7fffffff +#define __DEC32_MIN__ 1E-95DF +#define __DEPRECATED 1 +#define __cpp_rvalue_references 200610 +#define __DBL_MAX_EXP__ 1024 +#define __WCHAR_WIDTH__ 32 +#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32 +#define __DEC128_EPSILON__ 1E-33DL +#define __SSE2_MATH__ 1 +#define __ATOMIC_HLE_RELEASE 131072 +#define __PTRDIFF_MAX__ 0x7fffffffffffffffL +#define __amd64 1 +#define __ATOMIC_HLE_ACQUIRE 65536 +#define __FLT32_HAS_QUIET_NAN__ 1 +#define __GNUG__ 8 +#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL +#define __SIZEOF_SIZE_T__ 8 +#define __cpp_rvalue_reference 200610 +#define __cpp_nsdmi 200809 +#define __FLT64X_MIN_EXP__ (-16381) +#define __SIZEOF_WINT_T__ 4 +#define __LONG_LONG_WIDTH__ 64 +#define __cpp_initializer_lists 200806 +#define __FLT32_MAX_EXP__ 128 +#define __cpp_hex_float 201603 +#define __GCC_HAVE_DWARF2_CFI_ASM 1 +#define __GXX_ABI_VERSION 1013 +#define __FLT128_HAS_INFINITY__ 1 +#define __FLT_MIN_EXP__ (-125) +#define __cpp_lambdas 200907 +#define __FLT64X_HAS_QUIET_NAN__ 1 +#define __INT_FAST64_TYPE__ long int +#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64 +#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L) +#define __LP64__ 1 +#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x +#define __DECIMAL_BID_FORMAT__ 1 +#define __FLT64_MIN_10_EXP__ (-307) +#define __FLT64X_DECIMAL_DIG__ 21 +#define __DEC128_MIN__ 1E-6143DL +#define __REGISTER_PREFIX__ +#define __UINT16_MAX__ 0xffff +#define __DBL_HAS_DENORM__ 1 +#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32 +#define __UINT8_TYPE__ unsigned char +#define __FLT_MANT_DIG__ 24 +#define __LDBL_DECIMAL_DIG__ 21 +#define __VERSION__ "8.3.0" +#define __UINT64_C(c) c ## UL +#define __cpp_unicode_characters 200704 +#define _STDC_PREDEF_H 1 +#define __GCC_ATOMIC_INT_LOCK_FREE 2 +#define __FLT128_MAX_EXP__ 16384 +#define __FLT32_MANT_DIG__ 24 +#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __STDC_IEC_559_COMPLEX__ 1 +#define __FLT128_HAS_DENORM__ 1 +#define __FLT128_DIG__ 33 +#define __SCHAR_WIDTH__ 8 +#define __INT32_C(c) c +#define __DEC64_EPSILON__ 1E-15DD +#define __ORDER_PDP_ENDIAN__ 3412 +#define __DEC128_MIN_EXP__ (-6142) +#define __FLT32_MAX_10_EXP__ 38 +#define __INT_FAST32_TYPE__ long int +#define __UINT_LEAST16_TYPE__ short unsigned int +#define __FLT64X_HAS_INFINITY__ 1 +#define unix 1 +#define __INT16_MAX__ 0x7fff +#define __cpp_rtti 199711 +#define __SIZE_TYPE__ long unsigned int +#define __UINT64_MAX__ 0xffffffffffffffffUL +#define __FLT64X_DIG__ 18 +#define __INT8_TYPE__ signed char +#define __ELF__ 1 +#define __GCC_ASM_FLAG_OUTPUTS__ 1 +#define __FLT_RADIX__ 2 +#define __INT_LEAST16_TYPE__ short int +#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L +#define __UINTMAX_C(c) c ## UL +#define __GLIBCXX_BITSIZE_INT_N_0 128 +#define __k8 1 +#define __SIG_ATOMIC_MAX__ 0x7fffffff +#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2 +#define __SIZEOF_PTRDIFF_T__ 8 +#define __FLT32X_MANT_DIG__ 53 +#define __x86_64__ 1 +#define __FLT32X_MIN_EXP__ (-1021) +#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF +#define __INT_FAST16_MAX__ 0x7fffffffffffffffL +#define __FLT64_DIG__ 15 +#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL +#define __UINT_LEAST64_TYPE__ long unsigned int +#define __FLT_HAS_QUIET_NAN__ 1 +#define __FLT_MAX_10_EXP__ 38 +#define __LONG_MAX__ 0x7fffffffffffffffL +#define __FLT64X_HAS_DENORM__ 1 +#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL +#define __FLT_HAS_INFINITY__ 1 +#define __cpp_unicode_literals 200710 +#define __UINT_FAST16_TYPE__ long unsigned int +#define __DEC64_MAX__ 9.999999999999999E384DD +#define __INT_FAST32_WIDTH__ 64 +#define __CHAR16_TYPE__ short unsigned int +#define __PRAGMA_REDEFINE_EXTNAME 1 +#define __SIZE_WIDTH__ 64 +#define __SEG_FS 1 +#define __INT_LEAST16_MAX__ 0x7fff +#define __DEC64_MANT_DIG__ 16 +#define __INT64_MAX__ 0x7fffffffffffffffL +#define __UINT_LEAST32_MAX__ 0xffffffffU +#define __SEG_GS 1 +#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32 +#define __GCC_ATOMIC_LONG_LOCK_FREE 2 +#define __SIG_ATOMIC_WIDTH__ 32 +#define __INT_LEAST64_TYPE__ long int +#define __INT16_TYPE__ short int +#define __INT_LEAST8_TYPE__ signed char +#define __DEC32_MAX_EXP__ 97 +#define __INT_FAST8_MAX__ 0x7f +#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128 +#define __INTPTR_MAX__ 0x7fffffffffffffffL +#define linux 1 +#define __cpp_range_based_for 200907 +#define __FLT64_HAS_QUIET_NAN__ 1 +#define __FLT32_MIN_10_EXP__ (-37) +#define __SSE2__ 1 +#define __EXCEPTIONS 1 +#define __LDBL_MANT_DIG__ 64 +#define __DBL_HAS_QUIET_NAN__ 1 +#define __FLT64_HAS_INFINITY__ 1 +#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x +#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1) +#define __code_model_small__ 1 +#define __k8__ 1 +#define __INTPTR_TYPE__ long int +#define __UINT16_TYPE__ short unsigned int +#define __WCHAR_TYPE__ int +#define __SIZEOF_FLOAT__ 4 +#define __UINTPTR_MAX__ 0xffffffffffffffffUL +#define __INT_FAST64_WIDTH__ 64 +#define __DEC64_MIN_EXP__ (-382) +#define __cpp_decltype 200707 +#define __FLT32_DECIMAL_DIG__ 9 +#define __INT_FAST64_MAX__ 0x7fffffffffffffffL +#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1 +#define __FLT_DIG__ 6 +#define __FLT64X_MAX_EXP__ 16384 +#define __UINT_FAST64_TYPE__ long unsigned int +#define __INT_MAX__ 0x7fffffff +#define __amd64__ 1 +#define __INT64_TYPE__ long int +#define __FLT_MAX_EXP__ 128 +#define __ORDER_BIG_ENDIAN__ 4321 +#define __DBL_MANT_DIG__ 53 +#define __cpp_inheriting_constructors 201511 +#define __SIZEOF_FLOAT128__ 16 +#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL +#define __DEC64_MIN__ 1E-383DD +#define __WINT_TYPE__ unsigned int +#define __UINT_LEAST32_TYPE__ unsigned int +#define __SIZEOF_SHORT__ 2 +#define __SSE__ 1 +#define __LDBL_MIN_EXP__ (-16381) +#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64 +#define __WINT_WIDTH__ 32 +#define __INT_LEAST8_MAX__ 0x7f +#define __FLT32X_MAX_10_EXP__ 308 +#define __SIZEOF_INT128__ 16 +#define __LDBL_MAX_10_EXP__ 4932 +#define __ATOMIC_RELAXED 0 +#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L) +#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128 +#define _LP64 1 +#define __UINT8_C(c) c +#define __FLT64_MAX_EXP__ 1024 +#define __INT_LEAST32_TYPE__ int +#define __SIZEOF_WCHAR_T__ 4 +#define __FLT128_HAS_QUIET_NAN__ 1 +#define __INT_FAST8_TYPE__ signed char +#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x +#define __GNUC_STDC_INLINE__ 1 +#define __FLT64_HAS_DENORM__ 1 +#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32 +#define __DBL_DECIMAL_DIG__ 17 +#define __STDC_UTF_32__ 1 +#define __INT_FAST8_WIDTH__ 8 +#define __FXSR__ 1 +#define __DEC_EVAL_METHOD__ 2 +#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x +#define __cpp_runtime_arrays 198712 +#define __UINT64_TYPE__ long unsigned int +#define __UINT32_C(c) c ## U +#define __INTMAX_MAX__ 0x7fffffffffffffffL +#define __cpp_alias_templates 200704 +#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ +#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F +#define __INT8_MAX__ 0x7f +#define __LONG_WIDTH__ 64 +#define __UINT_FAST32_TYPE__ long unsigned int +#define __CHAR32_TYPE__ unsigned int +#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F +#define __cpp_constexpr 200704 +#define __INT32_TYPE__ int +#define __SIZEOF_DOUBLE__ 8 +#define __cpp_exceptions 199711 +#define __FLT_MIN_10_EXP__ (-37) +#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64 +#define __INT_LEAST32_WIDTH__ 32 +#define __INTMAX_TYPE__ long int +#define __DEC128_MAX_EXP__ 6145 +#define __FLT32X_HAS_QUIET_NAN__ 1 +#define __ATOMIC_CONSUME 1 +#define __GNUC_MINOR__ 3 +#define __GLIBCXX_TYPE_INT_N_0 __int128 +#define __INT_FAST16_WIDTH__ 64 +#define __UINTMAX_MAX__ 0xffffffffffffffffUL +#define __DEC32_MANT_DIG__ 7 +#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x +#define __DBL_MAX_10_EXP__ 308 +#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L +#define __INT16_C(c) c +#define __STDC__ 1 +#define __FLT32X_DIG__ 15 +#define __PTRDIFF_TYPE__ long int +#define __ATOMIC_SEQ_CST 5 +#define __UINT32_TYPE__ unsigned int +#define __FLT32X_MIN_10_EXP__ (-307) +#define __UINTPTR_TYPE__ long unsigned int +#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD +#define __DEC128_MANT_DIG__ 34 +#define __LDBL_MIN_10_EXP__ (-4931) +#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128 +#define __SSE_MATH__ 1 +#define __SIZEOF_LONG_LONG__ 8 +#define __cpp_user_defined_literals 200809 +#define __FLT128_DECIMAL_DIG__ 36 +#define __GCC_ATOMIC_LLONG_LOCK_FREE 2 +#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x +#define __LDBL_DIG__ 18 +#define __FLT_DECIMAL_DIG__ 9 +#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL +#define __GCC_ATOMIC_SHORT_LOCK_FREE 2 +#define __INT_LEAST64_WIDTH__ 64 +#define __UINT_FAST8_TYPE__ unsigned char +#define _GNU_SOURCE 1 +#define __ATOMIC_ACQ_REL 4 +#define __ATOMIC_RELEASE 3 diff --git a/LinuxGUI/Ventoy2Disk/QT/build/moc_ventoy2diskwindow.cpp b/LinuxGUI/Ventoy2Disk/QT/build/moc_ventoy2diskwindow.cpp new file mode 100644 index 00000000..f04103ef --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/build/moc_ventoy2diskwindow.cpp @@ -0,0 +1,294 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'ventoy2diskwindow.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.9.0) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include "../ventoy2diskwindow.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'ventoy2diskwindow.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.9.0. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_MyQThread_t { + QByteArrayData data[5]; + char stringdata0[33]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_MyQThread_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_MyQThread_t qt_meta_stringdata_MyQThread = { + { +QT_MOC_LITERAL(0, 0, 9), // "MyQThread" +QT_MOC_LITERAL(1, 10, 12), // "thread_event" +QT_MOC_LITERAL(2, 23, 0), // "" +QT_MOC_LITERAL(3, 24, 3), // "msg" +QT_MOC_LITERAL(4, 28, 4) // "data" + + }, + "MyQThread\0thread_event\0\0msg\0data" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_MyQThread[] = { + + // content: + 7, // revision + 0, // classname + 0, 0, // classinfo + 1, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 1, // signalCount + + // signals: name, argc, parameters, tag, flags + 1, 2, 19, 2, 0x06 /* Public */, + + // signals: parameters + QMetaType::Void, QMetaType::Int, QMetaType::Int, 3, 4, + + 0 // eod +}; + +void MyQThread::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + MyQThread *_t = static_cast(_o); + Q_UNUSED(_t) + switch (_id) { + case 0: _t->thread_event((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + default: ; + } + } else if (_c == QMetaObject::IndexOfMethod) { + int *result = reinterpret_cast(_a[0]); + void **func = reinterpret_cast(_a[1]); + { + typedef void (MyQThread::*_t)(int , int ); + if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&MyQThread::thread_event)) { + *result = 0; + return; + } + } + } +} + +const QMetaObject MyQThread::staticMetaObject = { + { &QThread::staticMetaObject, qt_meta_stringdata_MyQThread.data, + qt_meta_data_MyQThread, qt_static_metacall, nullptr, nullptr} +}; + + +const QMetaObject *MyQThread::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *MyQThread::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_MyQThread.stringdata0)) + return static_cast(const_cast< MyQThread*>(this)); + return QThread::qt_metacast(_clname); +} + +int MyQThread::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QThread::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 1) + qt_static_metacall(this, _c, _id, _a); + _id -= 1; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 1) + *reinterpret_cast(_a[0]) = -1; + _id -= 1; + } + return _id; +} + +// SIGNAL 0 +void MyQThread::thread_event(int _t1, int _t2) +{ + void *_a[] = { nullptr, const_cast(reinterpret_cast(&_t1)), const_cast(reinterpret_cast(&_t2)) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} +struct qt_meta_stringdata_Ventoy2DiskWindow_t { + QByteArrayData data[19]; + char stringdata0[367]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_Ventoy2DiskWindow_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_Ventoy2DiskWindow_t qt_meta_stringdata_Ventoy2DiskWindow = { + { +QT_MOC_LITERAL(0, 0, 17), // "Ventoy2DiskWindow" +QT_MOC_LITERAL(1, 18, 12), // "thread_event" +QT_MOC_LITERAL(2, 31, 0), // "" +QT_MOC_LITERAL(3, 32, 3), // "msg" +QT_MOC_LITERAL(4, 36, 4), // "data" +QT_MOC_LITERAL(5, 41, 23), // "part_style_check_action" +QT_MOC_LITERAL(6, 65, 8), // "QAction*" +QT_MOC_LITERAL(7, 74, 3), // "act" +QT_MOC_LITERAL(8, 78, 17), // "lang_check_action" +QT_MOC_LITERAL(9, 96, 24), // "on_ButtonInstall_clicked" +QT_MOC_LITERAL(10, 121, 23), // "on_ButtonUpdate_clicked" +QT_MOC_LITERAL(11, 145, 24), // "on_ButtonRefresh_clicked" +QT_MOC_LITERAL(12, 170, 37), // "on_comboBoxDevice_currentInde..." +QT_MOC_LITERAL(13, 208, 5), // "index" +QT_MOC_LITERAL(14, 214, 42), // "on_actionPartition_Configurat..." +QT_MOC_LITERAL(15, 257, 31), // "on_actionClear_Ventoy_triggered" +QT_MOC_LITERAL(16, 289, 33), // "on_actionShow_All_Devices_tog..." +QT_MOC_LITERAL(17, 323, 4), // "arg1" +QT_MOC_LITERAL(18, 328, 38) // "on_actionSecure_Boot_Support_..." + + }, + "Ventoy2DiskWindow\0thread_event\0\0msg\0" + "data\0part_style_check_action\0QAction*\0" + "act\0lang_check_action\0on_ButtonInstall_clicked\0" + "on_ButtonUpdate_clicked\0" + "on_ButtonRefresh_clicked\0" + "on_comboBoxDevice_currentIndexChanged\0" + "index\0on_actionPartition_Configuration_triggered\0" + "on_actionClear_Ventoy_triggered\0" + "on_actionShow_All_Devices_toggled\0" + "arg1\0on_actionSecure_Boot_Support_triggered" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_Ventoy2DiskWindow[] = { + + // content: + 7, // revision + 0, // classname + 0, 0, // classinfo + 11, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 2, 69, 2, 0x08 /* Private */, + 5, 1, 74, 2, 0x08 /* Private */, + 8, 1, 77, 2, 0x08 /* Private */, + 9, 0, 80, 2, 0x08 /* Private */, + 10, 0, 81, 2, 0x08 /* Private */, + 11, 0, 82, 2, 0x08 /* Private */, + 12, 1, 83, 2, 0x08 /* Private */, + 14, 0, 86, 2, 0x08 /* Private */, + 15, 0, 87, 2, 0x08 /* Private */, + 16, 1, 88, 2, 0x08 /* Private */, + 18, 0, 91, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, QMetaType::Int, QMetaType::Int, 3, 4, + QMetaType::Void, 0x80000000 | 6, 7, + QMetaType::Void, 0x80000000 | 6, 7, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Int, 13, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, QMetaType::Bool, 17, + QMetaType::Void, + + 0 // eod +}; + +void Ventoy2DiskWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + Ventoy2DiskWindow *_t = static_cast(_o); + Q_UNUSED(_t) + switch (_id) { + case 0: _t->thread_event((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break; + case 1: _t->part_style_check_action((*reinterpret_cast< QAction*(*)>(_a[1]))); break; + case 2: _t->lang_check_action((*reinterpret_cast< QAction*(*)>(_a[1]))); break; + case 3: _t->on_ButtonInstall_clicked(); break; + case 4: _t->on_ButtonUpdate_clicked(); break; + case 5: _t->on_ButtonRefresh_clicked(); break; + case 6: _t->on_comboBoxDevice_currentIndexChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 7: _t->on_actionPartition_Configuration_triggered(); break; + case 8: _t->on_actionClear_Ventoy_triggered(); break; + case 9: _t->on_actionShow_All_Devices_toggled((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 10: _t->on_actionSecure_Boot_Support_triggered(); break; + default: ; + } + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + switch (_id) { + default: *reinterpret_cast(_a[0]) = -1; break; + case 1: + switch (*reinterpret_cast(_a[1])) { + default: *reinterpret_cast(_a[0]) = -1; break; + case 0: + *reinterpret_cast(_a[0]) = qRegisterMetaType< QAction* >(); break; + } + break; + case 2: + switch (*reinterpret_cast(_a[1])) { + default: *reinterpret_cast(_a[0]) = -1; break; + case 0: + *reinterpret_cast(_a[0]) = qRegisterMetaType< QAction* >(); break; + } + break; + } + } +} + +const QMetaObject Ventoy2DiskWindow::staticMetaObject = { + { &QMainWindow::staticMetaObject, qt_meta_stringdata_Ventoy2DiskWindow.data, + qt_meta_data_Ventoy2DiskWindow, qt_static_metacall, nullptr, nullptr} +}; + + +const QMetaObject *Ventoy2DiskWindow::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *Ventoy2DiskWindow::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_Ventoy2DiskWindow.stringdata0)) + return static_cast(const_cast< Ventoy2DiskWindow*>(this)); + return QMainWindow::qt_metacast(_clname); +} + +int Ventoy2DiskWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 11) + qt_static_metacall(this, _c, _id, _a); + _id -= 11; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 11) + qt_static_metacall(this, _c, _id, _a); + _id -= 11; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/LinuxGUI/Ventoy2Disk/QT/build/ui_partcfgdialog.h b/LinuxGUI/Ventoy2Disk/QT/build/ui_partcfgdialog.h new file mode 100644 index 00000000..e0244c95 --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/build/ui_partcfgdialog.h @@ -0,0 +1,113 @@ +/******************************************************************************** +** Form generated from reading UI file 'partcfgdialog.ui' +** +** Created by: Qt User Interface Compiler version 5.9.0 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_PARTCFGDIALOG_H +#define UI_PARTCFGDIALOG_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_PartCfgDialog +{ +public: + QPushButton *pushButtonOK; + QPushButton *pushButtonCancel; + QGroupBox *groupBox; + QCheckBox *checkBox; + QGroupBox *groupBox_2; + QLineEdit *lineEdit; + QGroupBox *groupBox_3; + QComboBox *comboBox; + QGroupBox *groupBox_4; + QCheckBox *checkBox_2; + + void setupUi(QDialog *PartCfgDialog) + { + if (PartCfgDialog->objectName().isEmpty()) + PartCfgDialog->setObjectName(QStringLiteral("PartCfgDialog")); + PartCfgDialog->resize(420, 258); + pushButtonOK = new QPushButton(PartCfgDialog); + pushButtonOK->setObjectName(QStringLiteral("pushButtonOK")); + pushButtonOK->setGeometry(QRect(90, 210, 90, 30)); + pushButtonCancel = new QPushButton(PartCfgDialog); + pushButtonCancel->setObjectName(QStringLiteral("pushButtonCancel")); + pushButtonCancel->setGeometry(QRect(230, 210, 90, 30)); + groupBox = new QGroupBox(PartCfgDialog); + groupBox->setObjectName(QStringLiteral("groupBox")); + groupBox->setGeometry(QRect(10, 0, 400, 61)); + checkBox = new QCheckBox(groupBox); + checkBox->setObjectName(QStringLiteral("checkBox")); + checkBox->setGeometry(QRect(10, 20, 381, 41)); + checkBox->setAutoRepeatInterval(0); + groupBox_2 = new QGroupBox(PartCfgDialog); + groupBox_2->setObjectName(QStringLiteral("groupBox_2")); + groupBox_2->setGeometry(QRect(10, 60, 200, 61)); + lineEdit = new QLineEdit(groupBox_2); + lineEdit->setObjectName(QStringLiteral("lineEdit")); + lineEdit->setGeometry(QRect(10, 30, 181, 26)); + lineEdit->setMaxLength(14); + groupBox_3 = new QGroupBox(PartCfgDialog); + groupBox_3->setObjectName(QStringLiteral("groupBox_3")); + groupBox_3->setGeometry(QRect(210, 60, 200, 60)); + comboBox = new QComboBox(groupBox_3); + comboBox->setObjectName(QStringLiteral("comboBox")); + comboBox->setGeometry(QRect(10, 30, 181, 26)); + groupBox_4 = new QGroupBox(PartCfgDialog); + groupBox_4->setObjectName(QStringLiteral("groupBox_4")); + groupBox_4->setGeometry(QRect(10, 120, 401, 61)); + checkBox_2 = new QCheckBox(groupBox_4); + checkBox_2->setObjectName(QStringLiteral("checkBox_2")); + checkBox_2->setGeometry(QRect(10, 30, 381, 24)); + checkBox_2->setChecked(true); + + retranslateUi(PartCfgDialog); + + comboBox->setCurrentIndex(1); + + + QMetaObject::connectSlotsByName(PartCfgDialog); + } // setupUi + + void retranslateUi(QDialog *PartCfgDialog) + { + PartCfgDialog->setWindowTitle(QApplication::translate("PartCfgDialog", "Partition Configuration", Q_NULLPTR)); + pushButtonOK->setText(QApplication::translate("PartCfgDialog", "OK", Q_NULLPTR)); + pushButtonCancel->setText(QApplication::translate("PartCfgDialog", "Cancel", Q_NULLPTR)); + groupBox->setTitle(QString()); + checkBox->setText(QApplication::translate("PartCfgDialog", "Preserve some space at the end of the disk", Q_NULLPTR)); + groupBox_2->setTitle(QString()); + groupBox_3->setTitle(QString()); + comboBox->clear(); + comboBox->insertItems(0, QStringList() + << QApplication::translate("PartCfgDialog", "MB", Q_NULLPTR) + << QApplication::translate("PartCfgDialog", "GB", Q_NULLPTR) + ); + groupBox_4->setTitle(QString()); + checkBox_2->setText(QApplication::translate("PartCfgDialog", "Align partitions with 4KB", Q_NULLPTR)); + } // retranslateUi + +}; + +namespace Ui { + class PartCfgDialog: public Ui_PartCfgDialog {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_PARTCFGDIALOG_H diff --git a/LinuxGUI/Ventoy2Disk/QT/build/ui_ventoy2diskwindow.h b/LinuxGUI/Ventoy2Disk/QT/build/ui_ventoy2diskwindow.h new file mode 100644 index 00000000..57eceef1 --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/build/ui_ventoy2diskwindow.h @@ -0,0 +1,202 @@ +/******************************************************************************** +** Form generated from reading UI file 'ventoy2diskwindow.ui' +** +** Created by: Qt User Interface Compiler version 5.9.0 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_VENTOY2DISKWINDOW_H +#define UI_VENTOY2DISKWINDOW_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Ventoy2DiskWindow +{ +public: + QAction *actionSecure_Boot_Support; + QAction *actionMBR; + QAction *actionGPT; + QAction *actionPartition_Configuration; + QAction *actionClear_Ventoy; + QAction *actionShow_All_Devices; + QWidget *centralwidget; + QGroupBox *groupBoxDevice; + QComboBox *comboBoxDevice; + QPushButton *ButtonRefresh; + QGroupBox *groupBoxVentoyLocal; + QLabel *labelVentoyLocalVer; + QLabel *labelVentoyLocalPartStyle; + QLabel *labelVentoyLocalSecure; + QGroupBox *groupBoxVentoyDevice; + QLabel *labelVentoyDeviceVer; + QLabel *labelVentoyDevicePartStyle; + QLabel *labelVentoyDeviceSecure; + QGroupBox *groupBoxStatus; + QProgressBar *progressBar; + QPushButton *ButtonInstall; + QPushButton *ButtonUpdate; + QMenuBar *menubar; + QMenu *menuOption; + QMenu *menuPartition_Style; + QMenu *menuLanguage; + + void setupUi(QMainWindow *Ventoy2DiskWindow) + { + if (Ventoy2DiskWindow->objectName().isEmpty()) + Ventoy2DiskWindow->setObjectName(QStringLiteral("Ventoy2DiskWindow")); + Ventoy2DiskWindow->resize(441, 367); + actionSecure_Boot_Support = new QAction(Ventoy2DiskWindow); + actionSecure_Boot_Support->setObjectName(QStringLiteral("actionSecure_Boot_Support")); + actionSecure_Boot_Support->setCheckable(true); + actionMBR = new QAction(Ventoy2DiskWindow); + actionMBR->setObjectName(QStringLiteral("actionMBR")); + actionMBR->setCheckable(true); + actionGPT = new QAction(Ventoy2DiskWindow); + actionGPT->setObjectName(QStringLiteral("actionGPT")); + actionGPT->setCheckable(true); + actionPartition_Configuration = new QAction(Ventoy2DiskWindow); + actionPartition_Configuration->setObjectName(QStringLiteral("actionPartition_Configuration")); + actionClear_Ventoy = new QAction(Ventoy2DiskWindow); + actionClear_Ventoy->setObjectName(QStringLiteral("actionClear_Ventoy")); + actionShow_All_Devices = new QAction(Ventoy2DiskWindow); + actionShow_All_Devices->setObjectName(QStringLiteral("actionShow_All_Devices")); + actionShow_All_Devices->setCheckable(true); + centralwidget = new QWidget(Ventoy2DiskWindow); + centralwidget->setObjectName(QStringLiteral("centralwidget")); + groupBoxDevice = new QGroupBox(centralwidget); + groupBoxDevice->setObjectName(QStringLiteral("groupBoxDevice")); + groupBoxDevice->setGeometry(QRect(10, 10, 421, 80)); + comboBoxDevice = new QComboBox(groupBoxDevice); + comboBoxDevice->setObjectName(QStringLiteral("comboBoxDevice")); + comboBoxDevice->setGeometry(QRect(10, 40, 361, 26)); + ButtonRefresh = new QPushButton(groupBoxDevice); + ButtonRefresh->setObjectName(QStringLiteral("ButtonRefresh")); + ButtonRefresh->setGeometry(QRect(380, 37, 30, 30)); + QIcon icon; + icon.addFile(QStringLiteral("../refresh.ico"), QSize(), QIcon::Normal, QIcon::Off); + ButtonRefresh->setIcon(icon); + ButtonRefresh->setIconSize(QSize(24, 24)); + groupBoxVentoyLocal = new QGroupBox(centralwidget); + groupBoxVentoyLocal->setObjectName(QStringLiteral("groupBoxVentoyLocal")); + groupBoxVentoyLocal->setGeometry(QRect(10, 100, 205, 80)); + groupBoxVentoyLocal->setAlignment(Qt::AlignCenter); + labelVentoyLocalVer = new QLabel(groupBoxVentoyLocal); + labelVentoyLocalVer->setObjectName(QStringLiteral("labelVentoyLocalVer")); + labelVentoyLocalVer->setGeometry(QRect(30, 30, 135, 41)); + labelVentoyLocalVer->setAlignment(Qt::AlignCenter); + labelVentoyLocalPartStyle = new QLabel(groupBoxVentoyLocal); + labelVentoyLocalPartStyle->setObjectName(QStringLiteral("labelVentoyLocalPartStyle")); + labelVentoyLocalPartStyle->setGeometry(QRect(172, 60, 31, 18)); + labelVentoyLocalSecure = new QLabel(groupBoxVentoyLocal); + labelVentoyLocalSecure->setObjectName(QStringLiteral("labelVentoyLocalSecure")); + labelVentoyLocalSecure->setGeometry(QRect(12, 36, 21, 31)); + labelVentoyLocalSecure->setPixmap(QPixmap(QString::fromUtf8("../secure.ico"))); + groupBoxVentoyDevice = new QGroupBox(centralwidget); + groupBoxVentoyDevice->setObjectName(QStringLiteral("groupBoxVentoyDevice")); + groupBoxVentoyDevice->setGeometry(QRect(225, 100, 205, 80)); + groupBoxVentoyDevice->setAlignment(Qt::AlignCenter); + labelVentoyDeviceVer = new QLabel(groupBoxVentoyDevice); + labelVentoyDeviceVer->setObjectName(QStringLiteral("labelVentoyDeviceVer")); + labelVentoyDeviceVer->setGeometry(QRect(30, 30, 135, 41)); + labelVentoyDeviceVer->setAlignment(Qt::AlignCenter); + labelVentoyDevicePartStyle = new QLabel(groupBoxVentoyDevice); + labelVentoyDevicePartStyle->setObjectName(QStringLiteral("labelVentoyDevicePartStyle")); + labelVentoyDevicePartStyle->setGeometry(QRect(172, 60, 31, 18)); + labelVentoyDeviceSecure = new QLabel(groupBoxVentoyDevice); + labelVentoyDeviceSecure->setObjectName(QStringLiteral("labelVentoyDeviceSecure")); + labelVentoyDeviceSecure->setGeometry(QRect(12, 36, 21, 31)); + labelVentoyDeviceSecure->setPixmap(QPixmap(QString::fromUtf8("../secure.ico"))); + groupBoxStatus = new QGroupBox(centralwidget); + groupBoxStatus->setObjectName(QStringLiteral("groupBoxStatus")); + groupBoxStatus->setGeometry(QRect(10, 190, 421, 61)); + progressBar = new QProgressBar(groupBoxStatus); + progressBar->setObjectName(QStringLiteral("progressBar")); + progressBar->setGeometry(QRect(10, 30, 401, 23)); + progressBar->setValue(0); + progressBar->setTextVisible(false); + ButtonInstall = new QPushButton(centralwidget); + ButtonInstall->setObjectName(QStringLiteral("ButtonInstall")); + ButtonInstall->setGeometry(QRect(90, 275, 101, 41)); + ButtonUpdate = new QPushButton(centralwidget); + ButtonUpdate->setObjectName(QStringLiteral("ButtonUpdate")); + ButtonUpdate->setGeometry(QRect(250, 275, 101, 41)); + Ventoy2DiskWindow->setCentralWidget(centralwidget); + menubar = new QMenuBar(Ventoy2DiskWindow); + menubar->setObjectName(QStringLiteral("menubar")); + menubar->setGeometry(QRect(0, 0, 441, 23)); + menuOption = new QMenu(menubar); + menuOption->setObjectName(QStringLiteral("menuOption")); + menuPartition_Style = new QMenu(menuOption); + menuPartition_Style->setObjectName(QStringLiteral("menuPartition_Style")); + menuLanguage = new QMenu(menubar); + menuLanguage->setObjectName(QStringLiteral("menuLanguage")); + Ventoy2DiskWindow->setMenuBar(menubar); + + menubar->addAction(menuOption->menuAction()); + menubar->addAction(menuLanguage->menuAction()); + menuOption->addAction(actionSecure_Boot_Support); + menuOption->addAction(menuPartition_Style->menuAction()); + menuOption->addAction(actionPartition_Configuration); + menuOption->addAction(actionClear_Ventoy); + menuOption->addAction(actionShow_All_Devices); + menuPartition_Style->addAction(actionMBR); + menuPartition_Style->addAction(actionGPT); + + retranslateUi(Ventoy2DiskWindow); + + QMetaObject::connectSlotsByName(Ventoy2DiskWindow); + } // setupUi + + void retranslateUi(QMainWindow *Ventoy2DiskWindow) + { + Ventoy2DiskWindow->setWindowTitle(QApplication::translate("Ventoy2DiskWindow", "Ventoy2Disk", Q_NULLPTR)); + actionSecure_Boot_Support->setText(QApplication::translate("Ventoy2DiskWindow", "Secure Boot Support", Q_NULLPTR)); + actionMBR->setText(QApplication::translate("Ventoy2DiskWindow", "MBR", Q_NULLPTR)); + actionGPT->setText(QApplication::translate("Ventoy2DiskWindow", "GPT", Q_NULLPTR)); + actionPartition_Configuration->setText(QApplication::translate("Ventoy2DiskWindow", "Partition Configuration", Q_NULLPTR)); + actionClear_Ventoy->setText(QApplication::translate("Ventoy2DiskWindow", "Clear Ventoy", Q_NULLPTR)); + actionShow_All_Devices->setText(QApplication::translate("Ventoy2DiskWindow", "Show All Devices", Q_NULLPTR)); + groupBoxDevice->setTitle(QApplication::translate("Ventoy2DiskWindow", "Device", Q_NULLPTR)); + ButtonRefresh->setText(QString()); + groupBoxVentoyLocal->setTitle(QApplication::translate("Ventoy2DiskWindow", "Ventoy In Package", Q_NULLPTR)); + labelVentoyLocalVer->setText(QApplication::translate("Ventoy2DiskWindow", "

1.0.53

", Q_NULLPTR)); + labelVentoyLocalPartStyle->setText(QApplication::translate("Ventoy2DiskWindow", "

MBR

", Q_NULLPTR)); + labelVentoyLocalSecure->setText(QString()); + groupBoxVentoyDevice->setTitle(QApplication::translate("Ventoy2DiskWindow", "Ventoy In Device", Q_NULLPTR)); + labelVentoyDeviceVer->setText(QApplication::translate("Ventoy2DiskWindow", "

1.0.52

", Q_NULLPTR)); + labelVentoyDevicePartStyle->setText(QApplication::translate("Ventoy2DiskWindow", "

GPT

", Q_NULLPTR)); + labelVentoyDeviceSecure->setText(QString()); + groupBoxStatus->setTitle(QApplication::translate("Ventoy2DiskWindow", "Status: REDAY", Q_NULLPTR)); + progressBar->setFormat(QString()); + ButtonInstall->setText(QApplication::translate("Ventoy2DiskWindow", "Install", Q_NULLPTR)); + ButtonUpdate->setText(QApplication::translate("Ventoy2DiskWindow", "Update", Q_NULLPTR)); + menuOption->setTitle(QApplication::translate("Ventoy2DiskWindow", "Option", Q_NULLPTR)); + menuPartition_Style->setTitle(QApplication::translate("Ventoy2DiskWindow", "Partition Style", Q_NULLPTR)); + menuLanguage->setTitle(QApplication::translate("Ventoy2DiskWindow", "Language", Q_NULLPTR)); + } // retranslateUi + +}; + +namespace Ui { + class Ventoy2DiskWindow: public Ui_Ventoy2DiskWindow {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_VENTOY2DISKWINDOW_H diff --git a/LinuxGUI/Ventoy2Disk/QT/main.cpp b/LinuxGUI/Ventoy2Disk/QT/main.cpp new file mode 100644 index 00000000..37f47d4b --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/main.cpp @@ -0,0 +1,95 @@ +#include "ventoy2diskwindow.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +extern "C" { +#include "ventoy_define.h" +#include "ventoy_util.h" +#include "ventoy_qt.h" +} + +using namespace std; + +char g_log_file[4096]; +char g_ini_file[4096]; + +int main(int argc, char *argv[]) +{ + int ret; + QApplication a(argc, argv); + Ventoy2DiskWindow w; + +#ifdef QT_CHECK_EUID + if (geteuid() != 0) + { + QMessageBox::critical(NULL, "Error", "Permission denied!\nPlease run with root privileges."); + return 1; + } +#endif + + if (!QFileInfo::exists("./boot/boot.img")) + { + QMessageBox::critical(NULL, "Error", "Please run under the correct directory."); + return 1; + } + + ventoy_log_init(); + + snprintf(g_log_file, sizeof(g_log_file), "./log.txt"); + snprintf(g_ini_file, sizeof(g_ini_file), "./Ventoy2Disk.ini"); + for (int i = 0; i < argc; i++) + { + if (argv[i] && argv[i + 1] && strcmp(argv[i], "-l") == 0) + { + snprintf(g_log_file, sizeof(g_log_file), "%s", argv[i + 1]); + } + else if (argv[i] && argv[i + 1] && strcmp(argv[i], "-i") == 0) + { + snprintf(g_ini_file, sizeof(g_ini_file), "%s", argv[i + 1]); + } + } + + vlog("===================================================\n"); + vlog("===== Ventoy2Disk %s powered by QT %s =====\n", ventoy_get_local_version(), qVersion()); + vlog("===================================================\n"); + + ventoy_disk_init(); + ventoy_http_init(); + + w.setGeometry(QStyle::alignedRect(Qt::LeftToRight, + Qt::AlignCenter, + w.size(), + a.desktop()->availableGeometry())); + + QPixmap pix; + QIcon icon; + int len; + const uchar *data; + + data = (const uchar *)get_window_icon_raw_data(&len); + pix.loadFromData(data, len); + icon.addPixmap(pix); + w.setWindowIcon(icon); + + w.show(); + w.setFixedSize(w.size()); + + ret = a.exec(); + + ventoy_disk_exit(); + ventoy_http_exit(); + + vlog("######## Ventoy2Disk QT %s exit ########\n", ventoy_get_local_version()); + + /* log exit must at the end */ + ventoy_log_exit(); + + return ret; +} diff --git a/LinuxGUI/Ventoy2Disk/QT/partcfgdialog.cpp b/LinuxGUI/Ventoy2Disk/QT/partcfgdialog.cpp new file mode 100644 index 00000000..c232b8ac --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/partcfgdialog.cpp @@ -0,0 +1,101 @@ +#include "partcfgdialog.h" +#include "ui_partcfgdialog.h" +#include +#include + +PartCfgDialog::PartCfgDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::PartCfgDialog) +{ + reserve = false; + unit = 1; + align = true; + valuestr = ""; + resvalue = 0; + + ui->setupUi(this); + + ui->lineEdit->setEnabled(false); + ui->comboBox->setEnabled(false); +} + +PartCfgDialog::~PartCfgDialog() +{ + delete ui; +} + +void PartCfgDialog::update_ui_status() +{ + ui->checkBox->setChecked(reserve); + ui->lineEdit->setEnabled(reserve); + ui->comboBox->setEnabled(reserve); + ui->checkBox_2->setChecked(align); +} + +void PartCfgDialog::update_language_ui(QJsonObject &obj) +{ + ui->checkBox->setText(_LANG_STR("STR_PRESERVE_SPACE")); + ui->checkBox_2->setText(_LANG_STR("STR_PART_ALIGN_4KB")); + ui->pushButtonOK->setText(_LANG_STR("STR_BTN_OK")); + ui->pushButtonCancel->setText(_LANG_STR("STR_BTN_CANCEL")); + + invalid_value = _LANG_STR("STR_SPACE_VAL_INVALID"); + err_title = _LANG_STR("STR_ERROR"); +} + +void PartCfgDialog::on_pushButtonOK_clicked() +{ + if (ui->checkBox->isChecked()) + { + QString str = ui->lineEdit->text(); + + if (str.isEmpty()) + { + QMessageBox::critical(NULL, err_title, invalid_value); + return; + } + + for (int i = 0; i < str.size(); i++) + { + if (str[i] < '0' || str[i] > '9') + { + QMessageBox::critical(NULL, err_title, invalid_value); + return; + } + } + + valuestr = str; + resvalue = str.toLongLong(); + reserve = true; + } + else + { + reserve = false; + } + + align = ui->checkBox_2->isChecked(); + unit = ui->comboBox->currentIndex(); + + accept(); +} + +void PartCfgDialog::on_pushButtonCancel_clicked() +{ + reject(); +} + +void PartCfgDialog::on_checkBox_stateChanged(int arg1) +{ + (void)arg1; + + if (ui->checkBox->isChecked()) + { + ui->lineEdit->setEnabled(true); + ui->comboBox->setEnabled(true); + } + else + { + ui->lineEdit->setEnabled(false); + ui->comboBox->setEnabled(false); + } +} diff --git a/LinuxGUI/Ventoy2Disk/QT/partcfgdialog.h b/LinuxGUI/Ventoy2Disk/QT/partcfgdialog.h new file mode 100644 index 00000000..c57a9ae1 --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/partcfgdialog.h @@ -0,0 +1,44 @@ +#ifndef PARTCFGDIALOG_H +#define PARTCFGDIALOG_H + +#include +#include + +namespace Ui { +class PartCfgDialog; +} + +class PartCfgDialog : public QDialog +{ + Q_OBJECT + +public: + + bool reserve; + int unit; + bool align; + QString valuestr; + qint64 resvalue; + + QString invalid_value; + QString err_title; + void update_ui_status(); + void update_language_ui(QJsonObject &obj); + + explicit PartCfgDialog(QWidget *parent = nullptr); + ~PartCfgDialog(); + +private slots: + void on_pushButtonOK_clicked(); + + void on_pushButtonCancel_clicked(); + + void on_checkBox_stateChanged(int arg1); + +private: + Ui::PartCfgDialog *ui; +}; + +#define _LANG_STR(id) obj.value(id).toString() + +#endif // PARTCFGDIALOG_H diff --git a/LinuxGUI/Ventoy2Disk/QT/partcfgdialog.ui b/LinuxGUI/Ventoy2Disk/QT/partcfgdialog.ui new file mode 100644 index 00000000..fd131b8c --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/partcfgdialog.ui @@ -0,0 +1,165 @@ + + + PartCfgDialog + + + + 0 + 0 + 420 + 258 + + + + Partition Configuration + + + + + 90 + 210 + 90 + 30 + + + + OK + + + + + + 230 + 210 + 90 + 30 + + + + Cancel + + + + + + 10 + 10 + 400 + 51 + + + + + + + + + 10 + 10 + 381 + 41 + + + + Preserve some space at the end of the disk + + + 0 + + + + + + + 10 + 60 + 200 + 60 + + + + + + + + + 10 + 20 + 181 + 26 + + + + 14 + + + + + + + 210 + 60 + 200 + 60 + + + + + + + + + 10 + 20 + 181 + 26 + + + + 1 + + + + MB + + + + + GB + + + + + + + + 10 + 130 + 401 + 51 + + + + + + + + + 10 + 18 + 381 + 24 + + + + Align partitions with 4KB + + + true + + + + + + + diff --git a/LinuxGUI/Ventoy2Disk/QT/refresh_icon_data.c b/LinuxGUI/Ventoy2Disk/QT/refresh_icon_data.c new file mode 100644 index 00000000..0b678ff5 --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/refresh_icon_data.c @@ -0,0 +1,300 @@ +/****************************************************************************** + * refresh_icon_data.c + * + * Copyright (c) 2021, longpanda + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * + */ + +#include +#include + +static unsigned char refresh_icon_hexData[4286] = { + 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x20, 0x20, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0xA8, 0x10, + 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x27, + 0x00, 0x00, 0x10, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE, + 0x32, 0x2D, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE, + 0x32, 0x81, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x2D, 0xA6, 0xBE, + 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xBF, 0xA6, 0xBE, + 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE, + 0x32, 0xBF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x10, 0xA6, 0xBE, + 0x32, 0x71, 0xA6, 0xBE, 0x32, 0xD9, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE, 0x32, 0x71, 0xA6, 0xBE, + 0x32, 0x10, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE, 0x32, 0xB2, 0xA6, 0xBE, + 0x32, 0xFE, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA5, 0xBD, + 0x2F, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFE, 0xA6, 0xBE, + 0x32, 0xB2, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x35, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA5, 0xBE, + 0x31, 0xFF, 0xAC, 0xC3, 0x40, 0xFF, 0xB7, 0xCA, 0x59, 0xFF, 0xBF, 0xD0, 0x6B, 0xFF, 0xC0, 0xD1, + 0x6E, 0xFF, 0xBA, 0xCD, 0x60, 0xFF, 0xAF, 0xC5, 0x48, 0xFF, 0xA7, 0xBF, 0x34, 0xFF, 0xA5, 0xBD, + 0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0x35, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x29, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xB5, 0xC9, 0x54, 0xFF, 0xD4, 0xE0, + 0x9D, 0xFF, 0xED, 0xF2, 0xD6, 0xFF, 0xF9, 0xFB, 0xF1, 0xFF, 0xFD, 0xFD, 0xFA, 0xFF, 0xFD, 0xFE, + 0xFB, 0xFF, 0xFB, 0xFC, 0xF5, 0xFF, 0xF2, 0xF6, 0xE1, 0xFF, 0xDD, 0xE6, 0xB1, 0xFF, 0xBD, 0xCF, + 0x67, 0xFF, 0xA7, 0xBF, 0x35, 0xFF, 0xA5, 0xBE, 0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x10, 0xA6, 0xBE, + 0x32, 0xB2, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x31, 0xFF, 0xA8, 0xC0, 0x37, 0xFF, 0xCB, 0xD9, 0x87, 0xFF, 0xF4, 0xF7, 0xE6, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0xFB, + 0xF4, 0xFF, 0xD9, 0xE4, 0xA8, 0xFF, 0xAF, 0xC4, 0x46, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xB2, 0xA6, 0xBE, + 0x32, 0x10, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x71, 0xA6, 0xBE, + 0x32, 0xFE, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA9, 0xC0, + 0x38, 0xFF, 0xD5, 0xE0, 0x9D, 0xFF, 0xFD, 0xFE, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, + 0xFD, 0xFF, 0xEE, 0xF3, 0xD9, 0xFF, 0xD9, 0xE3, 0xA8, 0xFF, 0xCC, 0xDA, 0x8A, 0xFF, 0xCA, 0xD8, + 0x85, 0xFF, 0xD3, 0xDF, 0x99, 0xFF, 0xE6, 0xEC, 0xC4, 0xFF, 0xFA, 0xFB, 0xF3, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xED, 0xC7, 0xFF, 0xB1, 0xC6, 0x4C, 0xFF, 0xA5, 0xBD, + 0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFE, 0xA6, 0xBE, + 0x32, 0x71, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xCD, 0xDB, + 0x8C, 0xFF, 0xFD, 0xFE, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF4, 0xF7, 0xE7, 0xFF, 0xCB, 0xD9, + 0x87, 0xFF, 0xAE, 0xC3, 0x43, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA4, 0xBD, 0x2F, 0xFF, 0xA4, 0xBD, + 0x2E, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA9, 0xC0, 0x38, 0xFF, 0xBD, 0xCF, 0x66, 0xFF, 0xE8, 0xEE, + 0xC9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0xEB, 0xC1, 0xFF, 0xAD, 0xC3, + 0x41, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xDA, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBD, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA4, 0xBC, 0x2D, 0xFF, 0xB8, 0xCB, 0x5C, 0xFF, 0xF6, 0xF9, + 0xEB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xF5, 0xDF, 0xFF, 0xBA, 0xCD, 0x60, 0xFF, 0xA4, 0xBD, + 0x2E, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xAE, 0xC4, + 0x44, 0xFF, 0xE2, 0xE9, 0xBB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0xD6, + 0x7E, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0xC0, 0xA6, 0xBE, 0x32, 0xFF, 0xA9, 0xC0, + 0x39, 0xFF, 0xC8, 0xD7, 0x80, 0xFF, 0xD0, 0xDC, 0x92, 0xFF, 0xE7, 0xEE, 0xC8, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xED, 0xC5, 0xFF, 0xCC, 0xDA, 0x8A, 0xFF, 0xB0, 0xC5, + 0x49, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, + 0x30, 0xFF, 0xB0, 0xC6, 0x4A, 0xFF, 0xE3, 0xEA, 0xBE, 0xFF, 0xEA, 0xEF, 0xCE, 0xFF, 0xB8, 0xCB, + 0x5C, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xBF, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x2E, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0xFF, 0xA8, 0xC0, + 0x37, 0xFF, 0xE0, 0xE8, 0xB8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xF6, 0xE3, 0xFF, 0xB3, 0xC7, + 0x4F, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAA, 0xC1, 0x3A, 0xFF, 0xAB, 0xC1, 0x3D, 0xFF, 0xA6, 0xBE, + 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0x2D, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, + 0x30, 0xFF, 0xB6, 0xCA, 0x58, 0xFF, 0xF4, 0xF7, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFE, 0xFB, 0xFF, 0xC9, 0xD8, 0x84, 0xFF, 0xA5, 0xBD, + 0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA5, 0xBE, 0x30, 0xFF, 0xCD, 0xDB, 0x8C, 0xFF, 0xFE, 0xFE, 0xFD, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE2, 0xEA, 0xBC, 0xFF, 0xAA, 0xC1, 0x3A, 0xFF, 0xA6, 0xBE, + 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAB, 0xC2, 0x3E, 0xFF, 0xBB, 0xCE, 0x63, 0xFF, 0xA7, 0xBF, + 0x35, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAB, 0xC2, 0x3E, 0xFF, 0xE6, 0xED, 0xC5, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xF5, 0xF8, 0xE8, 0xFF, 0xB7, 0xCB, 0x5A, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xCE, 0xDB, 0x8F, 0xFF, 0xF7, 0xF9, 0xEC, 0xFF, 0xBD, 0xCF, + 0x67, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xBB, 0xCD, 0x63, 0xFF, 0xF6, 0xF8, + 0xEA, 0xFF, 0xCE, 0xDB, 0x8F, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, + 0x30, 0xFF, 0xB7, 0xCB, 0x5A, 0xFF, 0xF5, 0xF8, 0xE8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0xEE, + 0xC9, 0xFF, 0xAC, 0xC2, 0x40, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA7, 0xBF, 0x34, 0xFF, 0xBA, 0xCD, + 0x60, 0xFF, 0xAB, 0xC2, 0x3E, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAA, 0xC1, + 0x3A, 0xFF, 0xE2, 0xEA, 0xBC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFE, 0xFF, 0xCF, 0xDC, 0x90, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, + 0x2F, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xC9, 0xD8, + 0x84, 0xFF, 0xFD, 0xFE, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xF5, 0xF8, 0xE9, 0xFF, 0xB8, 0xCB, 0x5B, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x2E, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA9, 0xC0, + 0x38, 0xFF, 0xA8, 0xBF, 0x37, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xB2, 0xC7, 0x4F, 0xFF, 0xF2, 0xF6, + 0xE2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE2, 0xE9, 0xBB, 0xFF, 0xA9, 0xC0, 0x38, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0x2D, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0xC0, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xB5, 0xC9, 0x54, 0xFF, 0xE4, 0xEB, + 0xC1, 0xFF, 0xDF, 0xE8, 0xB5, 0xFF, 0xAF, 0xC5, 0x47, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xAF, 0xC5, 0x47, 0xFF, 0xCA, 0xD8, + 0x85, 0xFF, 0xE2, 0xE9, 0xBB, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE9, 0xEF, + 0xCD, 0xFF, 0xCE, 0xDB, 0x8F, 0xFF, 0xC7, 0xD6, 0x7E, 0xFF, 0xA9, 0xC0, 0x39, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xBF, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBD, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x73, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xC6, 0xD6, 0x7C, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xE8, 0xB5, 0xFF, 0xAC, 0xC3, 0x40, 0xFF, 0xA5, 0xBD, + 0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA4, 0xBD, 0x2E, 0xFF, 0xB5, 0xC9, + 0x55, 0xFF, 0xED, 0xF2, 0xD6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFB, 0xF1, 0xFF, 0xBC, 0xCE, + 0x65, 0xFF, 0xA4, 0xBC, 0x2C, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAE, 0xC4, 0x44, 0xFF, 0xE6, 0xED, + 0xC6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0xEB, 0xC1, 0xFF, 0xB9, 0xCC, + 0x5E, 0xFF, 0xA7, 0xBF, 0x35, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA4, 0xBD, 0x2E, 0xFF, 0xA4, 0xBD, + 0x2E, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xAB, 0xC1, 0x3D, 0xFF, 0xC5, 0xD5, 0x79, 0xFF, 0xF1, 0xF5, + 0xDE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xD3, 0xDF, 0x99, 0xFF, 0xA7, 0xBE, + 0x33, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xDA, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, + 0x32, 0xFE, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xB3, 0xC8, + 0x51, 0xFF, 0xE9, 0xEF, 0xCD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFA, + 0xEE, 0xFF, 0xE1, 0xE9, 0xBA, 0xFF, 0xCD, 0xDB, 0x8C, 0xFF, 0xC4, 0xD4, 0x78, 0xFF, 0xC6, 0xD6, + 0x7C, 0xFF, 0xD3, 0xDF, 0x9A, 0xFF, 0xE9, 0xEF, 0xCD, 0xFF, 0xFC, 0xFD, 0xF9, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xDB, 0xE4, 0xAB, 0xFF, 0xAA, 0xC1, 0x3C, 0xFF, 0xA6, 0xBE, + 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFE, 0xA6, 0xBE, + 0x32, 0x71, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x10, 0xA6, 0xBE, + 0x32, 0xB3, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, + 0x30, 0xFF, 0xB1, 0xC6, 0x4B, 0xFF, 0xDD, 0xE6, 0xB2, 0xFF, 0xFC, 0xFD, 0xF8, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, + 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFA, + 0xEE, 0xFF, 0xD1, 0xDE, 0x96, 0xFF, 0xAA, 0xC1, 0x3C, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xB2, 0xA6, 0xBE, + 0x32, 0x10, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x29, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA9, 0xC0, 0x38, 0xFF, 0xC1, 0xD2, 0x71, 0xFF, 0xE2, 0xEA, + 0xBC, 0xFF, 0xF5, 0xF8, 0xE9, 0xFF, 0xFD, 0xFD, 0xFA, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, + 0xFE, 0xFF, 0xFB, 0xFC, 0xF7, 0xFF, 0xF2, 0xF5, 0xE1, 0xFF, 0xDB, 0xE5, 0xAC, 0xFF, 0xB9, 0xCC, + 0x5F, 0xFF, 0xA6, 0xBE, 0x33, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x35, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA8, 0xBF, + 0x36, 0xFF, 0xB3, 0xC7, 0x4F, 0xFF, 0xBF, 0xD0, 0x6B, 0xFF, 0xC5, 0xD5, 0x7A, 0xFF, 0xC4, 0xD4, + 0x78, 0xFF, 0xBC, 0xCE, 0x64, 0xFF, 0xB0, 0xC5, 0x48, 0xFF, 0xA6, 0xBE, 0x33, 0xFF, 0xA5, 0xBD, + 0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0x35, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE, 0x32, 0xB2, 0xA6, 0xBE, + 0x32, 0xFE, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA4, 0xBD, 0x2E, 0xFF, 0xA4, 0xBD, + 0x2E, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFE, 0xA6, 0xBE, + 0x32, 0xB3, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x10, 0xA6, 0xBE, + 0x32, 0x71, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, + 0x32, 0x10, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xBF, 0xA6, 0xBE, + 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, + 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE, + 0x32, 0xC0, 0xA6, 0xBE, 0x32, 0x73, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE, + 0x32, 0x2D, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE, + 0x32, 0x81, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x2E, 0xA6, 0xBE, + 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBD, 0x31, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, + 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, + 0x01, 0xFF, 0xFE, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x0F, 0xE0, 0x00, + 0x00, 0x07, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, + 0x00, 0x01, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x07, 0xF0, 0x00, + 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x7F, 0xFF, 0x80, 0x01, 0xFF +}; + +void *get_refresh_icon_raw_data(int *len) +{ + *len = (int)sizeof(refresh_icon_hexData); + return refresh_icon_hexData; +} + diff --git a/LinuxGUI/Ventoy2Disk/QT/secure_icon_data.c b/LinuxGUI/Ventoy2Disk/QT/secure_icon_data.c new file mode 100644 index 00000000..d72c8472 --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/secure_icon_data.c @@ -0,0 +1,91 @@ +/****************************************************************************** + * secure_icon_data.c + * + * Copyright (c) 2021, longpanda + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * + */ + +#include +#include + +static unsigned char secure_icon_hexData[958] = { + 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xA8, 0x03, + 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x03, 0x00, 0x00, 0x46, 0x5C, + 0x00, 0x00, 0x46, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, + 0xFB, 0x01, 0x00, 0x8C, 0xFB, 0x2E, 0x00, 0x8C, 0xFB, 0x52, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C, + 0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C, + 0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x52, 0x00, 0x8C, 0xFB, 0x2E, 0x00, 0x8C, + 0xFB, 0x01, 0x00, 0x8C, 0xFB, 0x3E, 0x00, 0x8C, 0xFB, 0xDA, 0x00, 0x8C, 0xFB, 0xF8, 0x00, 0x8C, + 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C, + 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF8, 0x00, 0x8C, + 0xFB, 0xDA, 0x00, 0x8C, 0xFB, 0x3E, 0x00, 0x8C, 0xFB, 0x78, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, + 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, + 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, + 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x78, 0x00, 0x8C, 0xFB, 0x7B, 0x00, 0x8C, + 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, + 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, + 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x7B, 0x00, 0x8C, + 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, + 0xFB, 0xFF, 0x00, 0x86, 0xF1, 0xFF, 0x00, 0x7C, 0xDF, 0xFF, 0x00, 0x86, 0xF1, 0xFF, 0x00, 0x8C, + 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, + 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, + 0xFB, 0xFF, 0x00, 0x8C, 0xFC, 0xFF, 0x00, 0x7C, 0xDF, 0xFF, 0x00, 0x6C, 0xC4, 0xFF, 0x00, 0x7C, + 0xDF, 0xFF, 0x00, 0x8C, 0xFC, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, + 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, + 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x87, 0xF2, 0xFF, 0x00, 0x7D, + 0xE1, 0xFF, 0x00, 0x87, 0xF2, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, + 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0x7B, 0x00, 0x8C, + 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, + 0xFB, 0xFF, 0x00, 0x8C, 0xFC, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, + 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x7B, 0x00, 0x8C, + 0xFB, 0x77, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, + 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, + 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, + 0xFB, 0x77, 0x00, 0x8C, 0xFB, 0x3A, 0x00, 0x8C, 0xFB, 0xD4, 0x01, 0x8B, 0xF9, 0xF7, 0x03, 0x89, + 0xF3, 0xFF, 0x01, 0x8B, 0xF8, 0xF8, 0x00, 0x8C, 0xFB, 0xF4, 0x00, 0x8C, 0xFB, 0xF4, 0x00, 0x8C, + 0xFB, 0xF4, 0x01, 0x8B, 0xF8, 0xF8, 0x03, 0x89, 0xF3, 0xFF, 0x01, 0x8B, 0xF9, 0xF7, 0x00, 0x8C, + 0xFB, 0xD4, 0x00, 0x8C, 0xFB, 0x3A, 0x00, 0x8C, 0xFB, 0x00, 0x00, 0x93, 0xFF, 0x1E, 0x1D, 0x6B, + 0xA9, 0x6B, 0x32, 0x54, 0x6F, 0xF6, 0x22, 0x65, 0x9A, 0x7D, 0x00, 0x90, 0xFF, 0x39, 0x00, 0x8C, + 0xFB, 0x3C, 0x00, 0x90, 0xFF, 0x39, 0x22, 0x65, 0x9A, 0x7D, 0x32, 0x54, 0x6F, 0xF6, 0x1D, 0x6B, + 0xA9, 0x6B, 0x00, 0x93, 0xFF, 0x1E, 0x00, 0x8C, 0xFB, 0x00, 0x00, 0x8C, 0xFB, 0x00, 0x2A, 0x5D, + 0x85, 0x00, 0x46, 0x3D, 0x36, 0x3A, 0x43, 0x41, 0x3F, 0xF3, 0x45, 0x3F, 0x3A, 0x58, 0x26, 0x62, + 0x91, 0x00, 0x00, 0x8D, 0xFD, 0x00, 0x26, 0x62, 0x91, 0x00, 0x45, 0x3F, 0x3A, 0x58, 0x43, 0x41, + 0x3F, 0xF3, 0x46, 0x3D, 0x36, 0x3A, 0x2A, 0x5D, 0x85, 0x00, 0x00, 0x8C, 0xFB, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x27, 0x42, 0x42, 0x42, 0xE9, 0x42, 0x42, + 0x42, 0x94, 0x42, 0x42, 0x42, 0x01, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x01, 0x42, 0x42, + 0x42, 0x94, 0x42, 0x42, 0x42, 0xE9, 0x42, 0x42, 0x42, 0x27, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x04, 0x42, 0x42, + 0x42, 0x96, 0x42, 0x42, 0x42, 0xF5, 0x42, 0x42, 0x42, 0x8E, 0x42, 0x42, 0x42, 0x53, 0x42, 0x42, + 0x42, 0x8E, 0x42, 0x42, 0x42, 0xF5, 0x42, 0x42, 0x42, 0x96, 0x42, 0x42, 0x42, 0x04, 0x42, 0x42, + 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, + 0x42, 0x00, 0x42, 0x42, 0x42, 0x16, 0x42, 0x42, 0x42, 0x96, 0x42, 0x42, 0x42, 0xE9, 0x42, 0x42, + 0x42, 0xF3, 0x42, 0x42, 0x42, 0xE9, 0x42, 0x42, 0x42, 0x96, 0x42, 0x42, 0x42, 0x16, 0x42, 0x42, + 0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, + 0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x05, 0x42, 0x42, + 0x42, 0x31, 0x42, 0x42, 0x42, 0x4B, 0x42, 0x42, 0x42, 0x31, 0x42, 0x42, 0x42, 0x05, 0x42, 0x42, + 0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, + 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00 +}; + +void *get_secure_icon_raw_data(int *len) +{ + *len = (int)sizeof(secure_icon_hexData); + return secure_icon_hexData; +} diff --git a/LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.cpp b/LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.cpp new file mode 100644 index 00000000..eac24eb8 --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.cpp @@ -0,0 +1,881 @@ +#include "ventoy2diskwindow.h" +#include "ui_ventoy2diskwindow.h" +#include "partcfgdialog.h" + +#include + +extern "C" { +#include "ventoy_define.h" +#include "ventoy_util.h" +#include "ventoy_disk.h" +#include "ventoy_json.h" +#include "ventoy_http.h" +#include "ventoy_qt.h" +} + +MyQThread::MyQThread(QObject *parent) : QThread(parent) +{ + m_index = -1; + m_type = 0; + m_running = false; +} + +void MyQThread::install_run() +{ + int ret = 0; + int pos = 0; + int buflen = 0; + int percent = 0; + char buf[1024]; + char dec[64]; + char out[256]; + char disk_name[32]; + ventoy_disk *cur; + + vlog("install run %d ...\n", m_index); + + cur = g_disk_list + m_index; + snprintf(disk_name, sizeof(disk_name), "%s", cur->disk_name); + snprintf(dec, sizeof(dec), "%llu", (unsigned long long)m_reserve_space); + + buflen = sizeof(buf); + VTOY_JSON_FMT_BEGIN(pos, buf, buflen); + VTOY_JSON_FMT_OBJ_BEGIN(); + VTOY_JSON_FMT_STRN("method", "install"); + VTOY_JSON_FMT_STRN("disk", disk_name); + VTOY_JSON_FMT_STRN("reserve_space", dec); + VTOY_JSON_FMT_UINT("partstyle", ventoy_code_get_cur_part_style()); + VTOY_JSON_FMT_UINT("secure_boot", m_secureboot); + VTOY_JSON_FMT_UINT("align_4kb", m_align4K); + VTOY_JSON_FMT_OBJ_END(); + VTOY_JSON_FMT_END(pos); + + out[0] = 0; + ventoy_func_handler(buf, out, sizeof(out)); + vlog("func handler install <%s>\n", out); + + if (strstr(out, "success")) + { + while (percent != 100) + { + percent = ventoy_code_get_percent(); + emit thread_event(THREAD_MSG_PROGRESS_BAR, percent); + msleep(50); + } + + ret = ventoy_code_get_result(); + ventoy_code_refresh_device(); + cur = NULL; + } + else + { + ret = 1; + } + + emit thread_event(THREAD_MSG_INSTALL_FINISH, ret); + m_running = false; +} + +void MyQThread::update_run() +{ + int ret = 0; + int percent = 0; + char buf[1024]; + char out[256]; + char disk_name[32]; + ventoy_disk *cur; + + vlog("install run %d ...\n", m_index); + + cur = g_disk_list + m_index; + snprintf(disk_name, sizeof(disk_name), "%s", cur->disk_name); + snprintf(buf, sizeof(buf), "{\"method\":\"update\",\"disk\":\"%s\",\"secure_boot\":%d}", disk_name, m_secureboot); + + out[0] = 0; + ventoy_func_handler(buf, out, sizeof(out)); + vlog("func handler update <%s>\n", out); + + if (strstr(out, "success")) + { + while (percent != 100) + { + percent = ventoy_code_get_percent(); + emit thread_event(THREAD_MSG_PROGRESS_BAR, percent); + msleep(50); + } + + ret = ventoy_code_get_result(); + ventoy_code_refresh_device(); + cur = NULL; + } + else + { + ret = 1; + } + + emit thread_event(THREAD_MSG_UPDATE_FINISH, ret); + m_running = false; +} + +void MyQThread::run() +{ + if (THREAD_TYPE_INSTALL == m_type) + { + install_run(); + } + else if (THREAD_TYPE_UPDATE == m_type) + { + update_run(); + } + else + { + + } +} + + +Ventoy2DiskWindow::Ventoy2DiskWindow(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::Ventoy2DiskWindow) +{ + m_partcfg = new PartCfgDialog(); + m_part_group = new QActionGroup(this); + m_lang_group = new QActionGroup(this); + m_thread = new MyQThread(this); + + ui->setupUi(this); +} + +Ventoy2DiskWindow::~Ventoy2DiskWindow() +{ + delete m_partcfg; + delete m_part_group; + delete m_lang_group; + delete m_thread; + delete ui; +} + +bool LangCompare(const QString &s1, const QString &s2) +{ + if (true == s1.startsWith("Chinese Simplified") && false == s2.startsWith("Chinese Simplified")) + { + return true; + } + else if (false == s1.startsWith("Chinese Simplified") && true == s2.startsWith("Chinese Simplified")) + { + return false; + } + else + { + return s1 < s2; + } +} + +int Ventoy2DiskWindow::lang_string(const QString &id, QString &str) +{ + QString cur = ventoy_code_get_cur_language(); + + for (QJsonArray::iterator p = m_lang_array.begin(); p != m_lang_array.end(); p++) + { + if (p->toObject().value("name") == cur) + { + str = p->toObject().value(id).toString(); + str = str.replace("#@", "\r\n"); + return 0; + } + } + + return 1; +} + +void Ventoy2DiskWindow::update_ui_language() +{ + QString dev; + QJsonObject obj; + QString cur = ventoy_code_get_cur_language(); + + for (QJsonArray::iterator p = m_lang_array.begin(); p != m_lang_array.end(); p++) + { + if (p->toObject().value("name") == cur) + { + obj = p->toObject(); + break; + } + } + + ui->menuOption->setTitle(_LANG_STR("STR_MENU_OPTION")); + ui->actionSecure_Boot_Support->setText(_LANG_STR("STR_MENU_SECURE_BOOT")); + ui->menuPartition_Style->setTitle(_LANG_STR("STR_MENU_PART_STYLE")); + ui->actionPartition_Configuration->setText(_LANG_STR("STR_MENU_PART_CFG")); + ui->actionClear_Ventoy->setText(_LANG_STR("STR_MENU_CLEAR")); + ui->actionShow_All_Devices->setText(_LANG_STR("STR_SHOW_ALL_DEV")); + + dev = _LANG_STR("STR_DEVICE"); + if (m_partcfg->reserve) + { + QString str; + str.sprintf(" [ -%lld%s ]", (long long)m_partcfg->resvalue, m_partcfg->unit ? "GB" : "MB"); + ui->groupBoxDevice->setTitle(dev + str); + } + else + { + ui->groupBoxDevice->setTitle(dev); + } + + ui->groupBoxVentoyLocal->setTitle(_LANG_STR("STR_LOCAL_VER")); + ui->groupBoxVentoyDevice->setTitle(_LANG_STR("STR_DISK_VER")); + ui->groupBoxStatus->setTitle(_LANG_STR("STR_STATUS")); + ui->ButtonInstall->setText(_LANG_STR("STR_INSTALL")); + ui->ButtonUpdate->setText(_LANG_STR("STR_UPDATE")); + m_partcfg->update_language_ui(obj); + m_partcfg->setWindowTitle(_LANG_STR("STR_MENU_PART_CFG")); +} + +void Ventoy2DiskWindow::lang_check_action(QAction *act) +{ + ventoy_code_set_cur_language(act->text().toStdString().c_str()); + update_ui_language(); +} + +void Ventoy2DiskWindow::LoadLanguages() +{ + QString curlang = ventoy_code_get_cur_language(); + if (curlang.isEmpty()) + { + QString LANG = qgetenv("LANG"); + if (LANG.startsWith("zh_CN")) + { + ventoy_code_set_cur_language("Chinese Simplified (简体中文)"); + } + else + { + ventoy_code_set_cur_language("English (English)"); + } + curlang = ventoy_code_get_cur_language(); + } + + + QFile inFile("./tool/languages.json"); + inFile.open(QIODevice::ReadOnly|QIODevice::Text); + QByteArray data = inFile.readAll(); + inFile.close(); + + QJsonParseError errorPtr; + QJsonDocument doc = QJsonDocument::fromJson(data, &errorPtr); + + m_lang_array = doc.array(); + QVector List; + for (QJsonArray::iterator p = m_lang_array.begin(); p != m_lang_array.end(); p++) + { + List.push_back(p->toObject().value("name").toString()); + } + + connect(m_lang_group, SIGNAL(triggered(QAction *)), this, SLOT(lang_check_action(QAction *))); + + std::sort(List.begin(), List.end(), LangCompare); + + for (QVector::iterator p = List.begin(); p != List.end(); p++) + { + QAction *action = new QAction(*p, m_lang_group); + action->setCheckable(true); + + if (p->compare(curlang) == 0) + { + action->setChecked(true); + m_lang_group->triggered(action); + } + + ui->menuLanguage->addAction(action); + } + + +} + +void Ventoy2DiskWindow::part_style_check_action(QAction *action) +{ + int style = 0; + + if (action->text() == "MBR") + { + style = 0; + ui->labelVentoyLocalPartStyle->setText("MBR"); + } + else + { + style = 1; + ui->labelVentoyLocalPartStyle->setText("GPT"); + } + + if (style != ventoy_code_get_cur_part_style()) + { + ventoy_code_set_cur_part_style(style); + } +} + +static ventoy_disk *select_active_dev(const QString &select, int *activeid) +{ + int i; + int alldev = ventoy_code_get_cur_show_all(); + ventoy_disk *cur = NULL; + + /* find the match one */ + if (!select.isEmpty()) + { + for (i = 0; i < g_disk_num; i++) + { + cur = g_disk_list + i; + if (alldev == 0 && cur->type != VTOY_DEVICE_USB) + { + continue; + } + + if (select.compare(cur->disk_name) == 0) + { + *activeid = i; + return cur; + } + } + } + + /* find the first one that installed with Ventoy */ + for (i = 0; i < g_disk_num; i++) + { + cur = g_disk_list + i; + if (alldev == 0 && cur->type != VTOY_DEVICE_USB) + { + continue; + } + + if (cur->vtoydata.ventoy_valid) + { + *activeid = i; + return cur; + } + } + + /* find the first USB interface device */ + for (i = 0; i < g_disk_num; i++) + { + cur = g_disk_list + i; + if (alldev == 0 && cur->type != VTOY_DEVICE_USB) + { + continue; + } + + if (cur->type == VTOY_DEVICE_USB) + { + *activeid = i; + return cur; + } + } + + /* use the first one */ + for (i = 0; i < g_disk_num; i++) + { + cur = g_disk_list + i; + if (alldev == 0 && cur->type != VTOY_DEVICE_USB) + { + continue; + } + + *activeid = i; + return cur; + } + + return NULL; +} + + +void Ventoy2DiskWindow::FillDeviceList(const QString &select) +{ + int active; + int count = 0; + int alldev = ventoy_code_get_cur_show_all(); + ventoy_disk *cur; + + ui->comboBoxDevice->clear(); + + for (int i = 0; i < g_disk_num; i++) + { + cur = g_disk_list + i; + + if (alldev == 0 && cur->type != VTOY_DEVICE_USB) + { + continue; + } + + QString item; + item.sprintf("%s [%s] %s", cur->disk_name, cur->human_readable_size, cur->disk_model); + ui->comboBoxDevice->addItem(item); + count++; + } + + cur = select_active_dev(select, &active); + if (cur) + { + vlog("combox count:%d, active:%s id:%d\n", count, cur->disk_name, active); + ui->ButtonInstall->setEnabled(true); + ui->ButtonUpdate->setEnabled(cur->vtoydata.ventoy_valid); + ui->comboBoxDevice->setCurrentIndex(active); + } + else + { + vlog("combox count:%d, no active id\n", count); + ui->ButtonInstall->setEnabled(false); + ui->ButtonUpdate->setEnabled(false); + } +} + + +void Ventoy2DiskWindow::OnInitWindow(void) +{ + int len; + const uchar *data; + QIcon icon; + QPixmap pix1; + QPixmap pix2; + char ver[512]; + + ui->labelVentoyLocalSecure->hide(); + + m_part_group->addAction(ui->actionMBR); + m_part_group->addAction(ui->actionGPT); + connect(m_part_group, SIGNAL(triggered(QAction *)), this, SLOT(part_style_check_action(QAction *))); + + if (ventoy_code_get_cur_part_style()) + { + ui->actionGPT->setChecked(true); + m_part_group->triggered(ui->actionGPT); + } + else + { + ui->actionMBR->setChecked(true); + m_part_group->triggered(ui->actionMBR); + } + + snprintf(ver, sizeof(ver), VERSION_FMT, ventoy_get_local_version()); + ui->labelVentoyLocalVer->setText(QApplication::translate("Ventoy2DiskWindow", ver, nullptr)); + + LoadLanguages(); + + data = (const uchar *)get_refresh_icon_raw_data(&len); + pix1.loadFromData(data, len); + icon.addPixmap(pix1); + ui->ButtonRefresh->setIcon(icon); + + data = (const uchar *)get_secure_icon_raw_data(&len); + pix2.loadFromData(data, len); + ui->labelVentoyLocalSecure->setPixmap(pix2); + ui->labelVentoyDeviceSecure->setPixmap(pix2); + + ui->labelVentoyDeviceSecure->setHidden(true); + ui->labelVentoyDeviceVer->setText(""); + ui->labelVentoyDevicePartStyle->setText(""); + + ui->actionShow_All_Devices->setChecked(ventoy_code_get_cur_show_all()); + + connect(m_thread, &MyQThread::thread_event, this, &Ventoy2DiskWindow::thread_event); + + FillDeviceList(""); +} + +void Ventoy2DiskWindow::showEvent(QShowEvent *ev) +{ + QMainWindow::showEvent(ev); + OnInitWindow(); +} + +void Ventoy2DiskWindow::on_ButtonInstall_clicked() +{ + int index; + quint64 size = 0, space = 0; + ventoy_disk *cur; + QString title_warn, title_err, msg; + + lang_string("STR_ERROR", title_err); + lang_string("STR_WARNING", title_warn); + + if (m_thread->m_running || ventoy_code_is_busy()) + { + lang_string("STR_WAIT_PROCESS", msg); + QMessageBox::warning(NULL, title_warn, msg); + return; + } + + index = ui->comboBoxDevice->currentIndex(); + if (index < 0 || index > g_disk_num) + { + vlog("Invalid combobox current index %d\n", index); + return; + } + + cur = g_disk_list + index; + if (ventoy_code_get_cur_part_style() == 0 && cur->size_in_byte > 2199023255552ULL) + { + lang_string("STR_DISK_2TB_MBR_ERROR", msg); + QMessageBox::critical(NULL, title_err, msg); + return; + } + + if (m_partcfg->reserve) + { + size = cur->size_in_byte / SIZE_1MB; + space = m_partcfg->resvalue; + if (m_partcfg->unit == 1) + { + space = m_partcfg->resvalue * 1024; + } + + if (size <= space || (size - space) <= VTOYEFI_PART_BYTES / SIZE_1MB) + { + lang_string("STR_SPACE_VAL_INVALID", msg); + QMessageBox::critical(NULL, title_err, msg); + vlog("reserved space too big.\n"); + return; + } + } + + lang_string("STR_INSTALL_TIP", msg); + if (QMessageBox::Yes != QMessageBox::warning(NULL, title_warn, msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No)) + { + return; + } + + lang_string("STR_INSTALL_TIP2", msg); + if (QMessageBox::Yes != QMessageBox::warning(NULL, title_warn, msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No)) + { + return; + } + + ui->ButtonRefresh->setEnabled(false); + ui->ButtonInstall->setEnabled(false); + ui->ButtonRefresh->setEnabled(false); + + m_thread->m_type = THREAD_TYPE_INSTALL; + m_thread->m_index = index; + m_thread->m_reserve_space = space * SIZE_1MB; + m_thread->m_secureboot = ui->actionSecure_Boot_Support->isChecked(); + m_thread->m_align4K = m_partcfg->align; + m_thread->m_running = true; + + m_thread->start(); +} + +void Ventoy2DiskWindow::on_ButtonUpdate_clicked() +{ + int index; + ventoy_disk *cur; + QString title_info, title_warn, title_err, msg; + + lang_string("STR_ERROR", title_err); + lang_string("STR_WARNING", title_warn); + lang_string("STR_INFO", title_info); + + if (m_thread->m_running || ventoy_code_is_busy()) + { + lang_string("STR_WAIT_PROCESS", msg); + QMessageBox::warning(NULL, title_warn, msg); + return; + } + + index = ui->comboBoxDevice->currentIndex(); + if (index < 0 || index > g_disk_num) + { + vlog("Invalid combobox current index %d\n", index); + return; + } + + cur = g_disk_list + index; + if (cur->vtoydata.ventoy_valid == 0) + { + vlog("invalid ventoy version"); + return; + } + + lang_string("STR_UPDATE_TIP", msg); + if (QMessageBox::Yes != QMessageBox::information(NULL, title_info, msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No)) + { + return; + } + + ui->ButtonRefresh->setEnabled(false); + ui->ButtonInstall->setEnabled(false); + ui->ButtonRefresh->setEnabled(false); + + m_thread->m_type = THREAD_TYPE_UPDATE; + m_thread->m_index = index; + m_thread->m_secureboot = ui->actionSecure_Boot_Support->isChecked(); + + m_thread->m_running = true; + m_thread->start(); +} + +void Ventoy2DiskWindow::on_ButtonRefresh_clicked() +{ + QString title_warn, msg; + + if (m_thread->m_running || ventoy_code_is_busy()) + { + lang_string("STR_WARNING", title_warn); + lang_string("STR_WAIT_PROCESS", msg); + QMessageBox::warning(NULL, title_warn, msg); + return; + } + + ventoy_code_refresh_device(); + FillDeviceList(""); +} + +void Ventoy2DiskWindow::on_comboBoxDevice_currentIndexChanged(int index) +{ + char ver[512]; + ventoy_disk *cur; + + ui->labelVentoyDeviceSecure->setHidden(true); + ui->labelVentoyDeviceVer->setText(""); + ui->labelVentoyDevicePartStyle->setText(""); + + if (index < 0 || index > g_disk_num) + { + vlog("invalid combobox index %d\n", index); + return; + } + + cur = g_disk_list + index; + if (cur->vtoydata.ventoy_valid) + { + if (cur->vtoydata.secure_boot_flag) + { + ui->labelVentoyDeviceSecure->setHidden(false); + } + else + { + ui->labelVentoyDeviceSecure->setHidden(true); + } + + if ((int)(ui->actionSecure_Boot_Support->isChecked()) != cur->vtoydata.secure_boot_flag) + { + ui->actionSecure_Boot_Support->trigger(); + } + + snprintf(ver, sizeof(ver), VERSION_FMT, cur->vtoydata.ventoy_ver); + ui->labelVentoyDeviceVer->setText(QApplication::translate("Ventoy2DiskWindow", ver, nullptr)); + ui->labelVentoyDevicePartStyle->setText(cur->vtoydata.partition_style ? "GPT" : "MBR"); + } + else + { + if (ui->actionSecure_Boot_Support->isChecked()) + { + ui->actionSecure_Boot_Support->trigger(); + } + } +} + +void Ventoy2DiskWindow::on_actionPartition_Configuration_triggered() +{ + m_partcfg->update_ui_status(); + if (QDialog::Accepted == m_partcfg->exec()) + { + QString str; + QString dev; + lang_string("STR_DEVICE", dev); + + if (m_partcfg->reserve) + { + str.sprintf(" [ -%lld%s ]", (long long)m_partcfg->resvalue, m_partcfg->unit ? "GB" : "MB"); + ui->groupBoxDevice->setTitle(dev + str); + } + else + { + ui->groupBoxDevice->setTitle(dev); + } + } +} + +void Ventoy2DiskWindow::on_actionClear_Ventoy_triggered() +{ + int ret; + int index; + ventoy_disk *cur; + QString title_err, title_warn, title_info, msg; + char disk_name[64]; + char buf[256]; + char out[256]; + + lang_string("STR_ERROR", title_err); + lang_string("STR_WARNING", title_warn); + lang_string("STR_INFO", title_info); + + if (m_thread->m_running || ventoy_code_is_busy()) + { + lang_string("STR_WAIT_PROCESS", msg); + QMessageBox::warning(NULL, title_warn, msg); + return; + } + + index = ui->comboBoxDevice->currentIndex(); + if (index < 0 || index > g_disk_num) + { + vlog("Invalid combobox current index %d\n", index); + return; + } + + cur = g_disk_list + index; + + lang_string("STR_INSTALL_TIP", msg); + if (QMessageBox::Yes != QMessageBox::warning(NULL, title_warn, msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No)) + { + return; + } + + lang_string("STR_INSTALL_TIP2", msg); + if (QMessageBox::Yes != QMessageBox::warning(NULL, title_warn, msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No)) + { + return; + } + + snprintf(disk_name, sizeof(disk_name), "%s", cur->disk_name); + snprintf(buf, sizeof(buf), "{\"method\":\"clean\",\"disk\":\"%s\"}", disk_name); + + out[0] = 0; + ventoy_func_handler(buf, out, sizeof(out)); + vlog("func handler clean <%s>\n", out); + + if (strstr(out, "success")) + { + ret = ventoy_code_get_result(); + ventoy_code_refresh_device(); + cur = NULL; + } + else + { + ret = 1; + } + + if (ret == 0) + { + lang_string("STR_CLEAR_SUCCESS", msg); + QMessageBox::information(NULL, title_info, msg); + } + else + { + lang_string("STR_CLEAR_FAILED", msg); + QMessageBox::critical(NULL, title_err, msg); + } + + FillDeviceList(disk_name); +} + +void Ventoy2DiskWindow::on_actionShow_All_Devices_toggled(bool arg1) +{ + ventoy_code_set_cur_show_all(arg1); + FillDeviceList(""); +} + + +void Ventoy2DiskWindow::closeEvent(QCloseEvent *event) +{ + vlog("On closeEvent ...\n"); + + if (m_thread->m_running) + { + QString title; + QString msg; + + lang_string("STR_WARNING", title); + lang_string("STR_WAIT_PROCESS", msg); + QMessageBox::warning(NULL, title, msg); + + event->ignore(); + return; + } + + ventoy_code_save_cfg(); + + event->accept(); +} + +void Ventoy2DiskWindow::on_actionSecure_Boot_Support_triggered() +{ + ui->labelVentoyLocalSecure->setHidden(!(ui->actionSecure_Boot_Support->isChecked())); +} + +void Ventoy2DiskWindow::set_percent(int percent) +{ + int index; + QString status, radio; + + ui->progressBar->setValue(percent); + + lang_string("STR_STATUS", status); + + if (percent == 0) + { + ui->groupBoxStatus->setTitle(status); + } + else + { + index = status.indexOf("-"); + radio.sprintf("%d%%", percent); + ui->groupBoxStatus->setTitle(status.left(index + 2) + radio); + } +} + +void Ventoy2DiskWindow::thread_event(int msg, int data) +{ + char disk_name[32]; + QString title_err, title_info, tipmsg; + + if (msg == THREAD_MSG_PROGRESS_BAR) + { + set_percent(data); + } + else if (msg == THREAD_MSG_INSTALL_FINISH) + { + lang_string("STR_ERROR", title_err); + lang_string("STR_INFO", title_info); + + if (data == 0) + { + lang_string("STR_INSTALL_SUCCESS", tipmsg); + QMessageBox::information(NULL, title_info, tipmsg); + } + else + { + lang_string("STR_INSTALL_FAILED", tipmsg); + QMessageBox::critical(NULL, title_err, tipmsg); + } + + set_percent(0); + ui->ButtonRefresh->setEnabled(true); + ui->ButtonInstall->setEnabled(true); + ui->ButtonRefresh->setEnabled(true); + + snprintf(disk_name, sizeof(disk_name), "%s", g_disk_list[m_thread->m_index].disk_name); + FillDeviceList(disk_name); + } + else if (msg == THREAD_MSG_UPDATE_FINISH) + { + lang_string("STR_ERROR", title_err); + lang_string("STR_INFO", title_info); + + if (data == 0) + { + lang_string("STR_UPDATE_SUCCESS", tipmsg); + QMessageBox::information(NULL, title_info, tipmsg); + } + else + { + lang_string("STR_UPDATE_FAILED", tipmsg); + QMessageBox::critical(NULL, title_err, tipmsg); + } + + set_percent(0); + ui->ButtonRefresh->setEnabled(true); + ui->ButtonInstall->setEnabled(true); + ui->ButtonRefresh->setEnabled(true); + + snprintf(disk_name, sizeof(disk_name), "%s", g_disk_list[m_thread->m_index].disk_name); + FillDeviceList(disk_name); + } +} diff --git a/LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.h b/LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.h new file mode 100644 index 00000000..4a3be008 --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.h @@ -0,0 +1,105 @@ +#ifndef VENTOY2DISKWINDOW_H +#define VENTOY2DISKWINDOW_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "partcfgdialog.h" + +QT_BEGIN_NAMESPACE +namespace Ui { class Ventoy2DiskWindow; } +QT_END_NAMESPACE + +#define THREAD_TYPE_INSTALL 1 +#define THREAD_TYPE_UPDATE 2 + +#define THREAD_MSG_PROGRESS_BAR 1 +#define THREAD_MSG_INSTALL_FINISH 2 +#define THREAD_MSG_UPDATE_FINISH 3 + +class MyQThread : public QThread +{ + Q_OBJECT +public: + quint64 m_reserve_space; + int m_index; + int m_type; + int m_secureboot; + int m_align4K; + bool m_running; + void install_run(); + void update_run(); + + explicit MyQThread(QObject *parent = nullptr); +protected: + void run(); +signals: + void thread_event(int msg, int data); +public slots: +}; + + +class Ventoy2DiskWindow : public QMainWindow +{ + Q_OBJECT + +public: + Ventoy2DiskWindow(QWidget *parent = nullptr); + ~Ventoy2DiskWindow(); + + QActionGroup *m_part_group; + QActionGroup *m_lang_group; + QJsonArray m_lang_array; + PartCfgDialog *m_partcfg; + MyQThread *m_thread; + + void FillDeviceList(const QString &select); + void OnInitWindow(void); + void LoadLanguages(); + int lang_string(const QString &id, QString &str); + void update_ui_language(); + void set_percent(int percent); +protected: + void showEvent(QShowEvent *ev); + void closeEvent(QCloseEvent *event); + +private slots: + + void thread_event(int msg, int data); + void part_style_check_action(QAction *act); + void lang_check_action(QAction *act); + + void on_ButtonInstall_clicked(); + + void on_ButtonUpdate_clicked(); + + void on_ButtonRefresh_clicked(); + + void on_comboBoxDevice_currentIndexChanged(int index); + + void on_actionPartition_Configuration_triggered(); + + void on_actionClear_Ventoy_triggered(); + + void on_actionShow_All_Devices_toggled(bool arg1); + + void on_actionSecure_Boot_Support_triggered(); + +private: + Ui::Ventoy2DiskWindow *ui; + + +}; + +#define _LANG_STR(id) obj.value(id).toString() +#define VERSION_FMT "

%s

" + +#endif // VENTOY2DISKWINDOW_H diff --git a/LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.ui b/LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.ui new file mode 100644 index 00000000..bb6da842 --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.ui @@ -0,0 +1,323 @@ + + + Ventoy2DiskWindow + + + + 0 + 0 + 441 + 367 + + + + Ventoy2Disk + + + + + + 10 + 10 + 421 + 80 + + + + Device + + + + + 10 + 40 + 361 + 26 + + + + + + + 380 + 37 + 30 + 30 + + + + + + + + ../refresh.ico../refresh.ico + + + + 24 + 24 + + + + + + + + 10 + 100 + 205 + 80 + + + + Ventoy In Package + + + Qt::AlignCenter + + + + + 30 + 30 + 135 + 41 + + + + <html><head/><body><p><span style=" font-size:20pt; font-weight:600; color:#ff0000;">1.0.53</span></p></body></html> + + + Qt::AlignCenter + + + + + + 172 + 60 + 31 + 18 + + + + <html><head/><body><p>MBR</p></body></html> + + + + + + 12 + 36 + 21 + 31 + + + + + + + ../secure.ico + + + + + + + 225 + 100 + 205 + 80 + + + + Ventoy In Device + + + Qt::AlignCenter + + + + + 30 + 30 + 135 + 41 + + + + <html><head/><body><p><span style=" font-size:20pt; font-weight:600; color:#ff0000;">1.0.52</span></p></body></html> + + + Qt::AlignCenter + + + + + + 172 + 60 + 31 + 18 + + + + <html><head/><body><p>GPT</p></body></html> + + + + + + 12 + 36 + 21 + 31 + + + + + + + ../secure.ico + + + + + + + 10 + 190 + 421 + 61 + + + + Status: REDAY + + + + + 10 + 30 + 401 + 23 + + + + 0 + + + false + + + + + + + + + + 90 + 275 + 101 + 41 + + + + Install + + + + + + 250 + 275 + 101 + 41 + + + + Update + + + + + + + 0 + 0 + 441 + 23 + + + + + Option + + + + Partition Style + + + + + + + + + + + + + Language + + + + + + + + true + + + Secure Boot Support + + + + + true + + + MBR + + + + + true + + + GPT + + + + + Partition Configuration + + + + + Clear Ventoy + + + + + true + + + Show All Devices + + + + + + diff --git a/LinuxGUI/Ventoy2Disk/QT/ventoy_qt.h b/LinuxGUI/Ventoy2Disk/QT/ventoy_qt.h new file mode 100644 index 00000000..6179d8b2 --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/ventoy_qt.h @@ -0,0 +1,47 @@ +/****************************************************************************** + * ventoy_qt.h + * + * Copyright (c) 2021, longpanda + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * + */ +#ifndef __VENTOY_QT_H__ +#define __VENTOY_QT_H__ + +int ventoy_disk_init(void); +void ventoy_disk_exit(void); +int ventoy_http_init(void); +void ventoy_http_exit(void); +int ventoy_log_init(void); +void ventoy_log_exit(void); +void *get_refresh_icon_raw_data(int *len); +void *get_secure_icon_raw_data(int *len); +void *get_window_icon_raw_data(int *len); +int ventoy_func_handler(const char *jsonstr, char *jsonbuf, int buflen); +const char * ventoy_code_get_cur_language(void); +int ventoy_code_get_cur_part_style(void); +void ventoy_code_set_cur_part_style(int style); +int ventoy_code_get_cur_show_all(void); +void ventoy_code_set_cur_show_all(int show_all); +void ventoy_code_set_cur_language(const char *lang); +void ventoy_code_save_cfg(void); +void ventoy_code_refresh_device(void); +int ventoy_code_is_busy(void); +int ventoy_code_get_percent(void); +int ventoy_code_get_result(void); + +#endif /* __VENTOY_QT_H__ */ + + diff --git a/LinuxGUI/Ventoy2Disk/QT/ventoy_qt_stub.c b/LinuxGUI/Ventoy2Disk/QT/ventoy_qt_stub.c new file mode 100644 index 00000000..cee209d2 --- /dev/null +++ b/LinuxGUI/Ventoy2Disk/QT/ventoy_qt_stub.c @@ -0,0 +1,600 @@ +/****************************************************************************** + * ventoy_qt_stub.c + * + * Copyright (c) 2021, longpanda + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +struct mg_context * +mg_start(const struct mg_callbacks *callbacks, + void *user_data, + const char **options) +{ + (void)callbacks; + (void)user_data; + (void)options; + + return NULL; +} + +void mg_stop(struct mg_context *ctx) +{ + (void)ctx; +} + +int mg_read(struct mg_connection *conn, void *buf, size_t len) +{ + (void)conn; + (void)buf; + (void)len; + return 0; +} + + +const struct mg_request_info * mg_get_request_info(const struct mg_connection *conn) +{ + (void)conn; + return NULL; +} + +int mg_start_thread(mg_thread_func_t func, void *param) +{ + pthread_t thread_id; + pthread_attr_t attr; + int result; + + (void)pthread_attr_init(&attr); + (void)pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); + +#if defined(USE_STACK_SIZE) && (USE_STACK_SIZE > 1) + /* Compile-time option to control stack size, + * e.g. -DUSE_STACK_SIZE=16384 */ + (void)pthread_attr_setstacksize(&attr, USE_STACK_SIZE); +#endif /* defined(USE_STACK_SIZE) && (USE_STACK_SIZE > 1) */ + + result = pthread_create(&thread_id, &attr, func, param); + pthread_attr_destroy(&attr); + + return result; +} + +int mg_printf(struct mg_connection *conn, const char *fmt, ...) +{ + (void)conn; + (void)fmt; + + return 0; +} + +static unsigned char window_icon_hexData[] = { + 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, 0x0D, 0x49, 0x48, 0x44, 0x52, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x08, 0x06, 0x00, 0x00, 0x00, 0xAA, 0x69, 0x71, + 0xDE, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4D, 0x41, 0x00, 0x00, 0xAF, 0xC8, 0x37, 0x05, 0x8A, + 0xE9, 0x00, 0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4D, 0x00, 0x00, 0x7A, 0x26, 0x00, 0x00, 0x80, + 0x84, 0x00, 0x00, 0xFA, 0x00, 0x00, 0x00, 0x80, 0xE8, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xEA, + 0x60, 0x00, 0x00, 0x3A, 0x98, 0x00, 0x00, 0x17, 0x70, 0x9C, 0xBA, 0x51, 0x3C, 0x00, 0x00, 0x00, + 0x06, 0x62, 0x4B, 0x47, 0x44, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xA0, 0xBD, 0xA7, 0x93, 0x00, + 0x00, 0x00, 0x07, 0x74, 0x49, 0x4D, 0x45, 0x07, 0xE4, 0x03, 0x17, 0x04, 0x10, 0x05, 0xF6, 0xCE, + 0xA8, 0xC0, 0x00, 0x00, 0x1C, 0x68, 0x49, 0x44, 0x41, 0x54, 0x78, 0xDA, 0xCD, 0x9B, 0x79, 0x94, + 0x1D, 0x57, 0x7D, 0xE7, 0x3F, 0xF7, 0xDE, 0xAA, 0x7A, 0xFB, 0xEB, 0xD7, 0xBB, 0xA4, 0x56, 0xCB, + 0xDA, 0x6C, 0x59, 0xB6, 0x64, 0x83, 0x91, 0x17, 0xBC, 0xE1, 0x0D, 0x2F, 0x04, 0x1B, 0xB0, 0x43, + 0x3C, 0x40, 0x32, 0x43, 0x4E, 0x38, 0x19, 0x87, 0x43, 0x26, 0x03, 0x84, 0x98, 0xC9, 0x1C, 0x98, + 0x93, 0x70, 0x48, 0x72, 0x66, 0x58, 0x86, 0x81, 0x10, 0x0E, 0x06, 0xC6, 0x21, 0xC1, 0x83, 0xC1, + 0x36, 0x18, 0xDB, 0x6C, 0xC6, 0x60, 0xB0, 0x65, 0xBC, 0x1B, 0x5B, 0x8B, 0x6D, 0x59, 0x92, 0xB5, + 0x75, 0x5B, 0x52, 0xAB, 0xD7, 0xB7, 0x56, 0xD5, 0x5D, 0xE6, 0x8F, 0xAA, 0xF7, 0xF4, 0xBA, 0xD5, + 0xF2, 0xC2, 0x92, 0x99, 0x3A, 0xE7, 0xD7, 0xF5, 0x96, 0x7A, 0x75, 0x7F, 0xDF, 0xEF, 0x6F, 0xB9, + 0xBF, 0xFB, 0xBB, 0xD5, 0x82, 0xDF, 0xD1, 0x61, 0x8C, 0x45, 0x7D, 0x70, 0x9A, 0xFD, 0x7F, 0x57, + 0x61, 0x57, 0xD5, 0x31, 0x17, 0x39, 0x9C, 0x83, 0xD8, 0xC1, 0xEF, 0xAF, 0x1A, 0xE6, 0xC9, 0x23, + 0x13, 0x41, 0x55, 0xA3, 0xB4, 0x75, 0xD2, 0x93, 0xB8, 0xBC, 0x27, 0xCC, 0xA6, 0x7E, 0x19, 0xDD, + 0xBA, 0x5B, 0xBB, 0xBC, 0x07, 0x02, 0x28, 0x78, 0x82, 0xD1, 0xA2, 0x60, 0x6D, 0x59, 0x52, 0x8F, + 0x1D, 0xC5, 0x40, 0xFE, 0xD6, 0xF5, 0x14, 0xBF, 0xED, 0x1B, 0x3E, 0xBC, 0x67, 0x92, 0x3C, 0x9A, + 0x03, 0xAE, 0x44, 0x84, 0xC7, 0xDB, 0x56, 0xFA, 0x3C, 0x3A, 0x61, 0x7A, 0x26, 0x43, 0x96, 0x59, + 0xEB, 0xD6, 0x6A, 0xC7, 0x09, 0x16, 0x46, 0x05, 0xF4, 0x03, 0x79, 0x01, 0xBE, 0x03, 0x03, 0x34, + 0x81, 0x19, 0x21, 0x18, 0xF3, 0x05, 0x7B, 0x95, 0x10, 0xBB, 0x8A, 0x3E, 0xFB, 0xCE, 0x1B, 0x56, + 0xD3, 0x77, 0xEC, 0x89, 0x4D, 0x5E, 0x5A, 0xFA, 0x5C, 0x9D, 0x59, 0xF2, 0xAC, 0x72, 0x87, 0x39, + 0x71, 0xD5, 0x09, 0xFF, 0x7F, 0x11, 0xF0, 0xD3, 0x17, 0x67, 0xC9, 0xA1, 0x99, 0xB0, 0x39, 0xBE, + 0x19, 0xE6, 0x78, 0x5F, 0xA1, 0xD1, 0x17, 0x4B, 0xFF, 0x8C, 0x96, 0x11, 0x17, 0x59, 0xC7, 0xD9, + 0xC6, 0xB1, 0xCE, 0x41, 0x9F, 0x14, 0xE4, 0x3C, 0x89, 0x54, 0x02, 0x94, 0x48, 0x14, 0x70, 0x80, + 0x75, 0x60, 0x8E, 0x4A, 0x53, 0xC0, 0x9C, 0x27, 0xD8, 0x2D, 0x04, 0x8F, 0x67, 0x24, 0xF7, 0x07, + 0xE8, 0x47, 0x2E, 0x52, 0xDF, 0x19, 0xBF, 0x3B, 0xBC, 0xD6, 0x55, 0x44, 0xC8, 0x6E, 0xBF, 0xCC, + 0x99, 0xCD, 0x3D, 0x9C, 0xB2, 0x76, 0xD5, 0xFF, 0x5B, 0x02, 0x7E, 0xBE, 0x6B, 0x92, 0x3E, 0xD1, + 0x64, 0x8F, 0xA9, 0x70, 0xF5, 0x89, 0x05, 0xBE, 0xBF, 0xBB, 0xB1, 0xAA, 0xE5, 0xD4, 0xD5, 0x06, + 0xF1, 0x76, 0xE3, 0xC4, 0xEB, 0x8D, 0xA3, 0x22, 0x05, 0xE4, 0x3C, 0x41, 0xD1, 0x83, 0xAC, 0x27, + 0x08, 0x24, 0xC8, 0x14, 0x7C, 0x9B, 0x80, 0x36, 0x09, 0xDA, 0x41, 0x4B, 0x3B, 0xEA, 0x1A, 0x1A, + 0xDA, 0x61, 0x1C, 0x28, 0x41, 0xC3, 0x13, 0xEE, 0x79, 0x0F, 0xEE, 0xC9, 0x48, 0x73, 0xC7, 0x3A, + 0x6F, 0x66, 0xCB, 0x56, 0x3D, 0xA0, 0x4F, 0xC8, 0x69, 0xE6, 0xB4, 0xE4, 0xFC, 0x91, 0xEC, 0xBF, + 0x3D, 0x01, 0x8F, 0xFE, 0x6A, 0x2B, 0xBB, 0x4B, 0xEB, 0xA9, 0x98, 0x39, 0x76, 0xDB, 0x0A, 0xAB, + 0xBC, 0xEA, 0xB2, 0x3A, 0xFE, 0xBB, 0x0D, 0xF2, 0xDF, 0x6B, 0xCB, 0x29, 0x91, 0x75, 0x4A, 0x20, + 0xA8, 0x64, 0x04, 0xBD, 0x19, 0x41, 0xCE, 0x13, 0x2C, 0x16, 0xC1, 0xEE, 0x38, 0x8A, 0x38, 0x20, + 0x34, 0x30, 0x1B, 0x39, 0xA6, 0x42, 0x8B, 0x76, 0x90, 0x91, 0x10, 0x48, 0xF6, 0x79, 0xC2, 0xDD, + 0x9E, 0xF7, 0xF8, 0xCA, 0xE5, 0x37, 0xFB, 0xDB, 0xEF, 0x7B, 0x6F, 0xCC, 0x25, 0xA3, 0x9A, 0xA7, + 0x0E, 0x29, 0xCE, 0x58, 0x92, 0xFB, 0xB7, 0x21, 0xE0, 0x91, 0xFD, 0x73, 0x9C, 0x55, 0xAE, 0xF2, + 0x9D, 0xC3, 0x15, 0x86, 0x5D, 0x35, 0xFB, 0x12, 0xA5, 0xAB, 0x62, 0x27, 0x3F, 0xA8, 0x11, 0xE7, + 0xB6, 0x0C, 0x2A, 0x32, 0x8E, 0x9E, 0x40, 0xB0, 0xAC, 0xA0, 0x28, 0x78, 0xA2, 0x33, 0x8A, 0x7B, + 0x8D, 0xE3, 0xB4, 0x95, 0x0B, 0x8D, 0xE3, 0x50, 0xD3, 0x72, 0xA4, 0x65, 0x51, 0x42, 0x50, 0xF0, + 0xC0, 0x97, 0xE2, 0xD9, 0x8C, 0x74, 0xFF, 0x34, 0x98, 0x71, 0xDF, 0xD8, 0xDF, 0x10, 0x53, 0xEB, + 0x8A, 0x9A, 0x99, 0x58, 0x72, 0xD1, 0x8A, 0xFC, 0xEF, 0x96, 0x80, 0x7B, 0x76, 0xD6, 0xE9, 0x0F, + 0x0C, 0x4F, 0xCD, 0x78, 0xAC, 0xC8, 0x9B, 0xD1, 0xAA, 0x96, 0x1F, 0x8E, 0x91, 0xEF, 0x6D, 0x69, + 0xD7, 0x53, 0xD7, 0x09, 0xC4, 0xD1, 0xA2, 0x62, 0x28, 0x2F, 0x51, 0x42, 0xBC, 0x66, 0xD0, 0xC7, + 0x3F, 0x1C, 0xD3, 0xA1, 0x63, 0x6F, 0xD5, 0x10, 0x19, 0x47, 0xD1, 0x97, 0xE4, 0x7D, 0x11, 0x65, + 0x25, 0xDF, 0xCF, 0x7A, 0x7C, 0xE2, 0xA1, 0xC9, 0xE0, 0xC9, 0x2B, 0x07, 0x1A, 0xB4, 0x2C, 0xBC, + 0x79, 0x55, 0xF1, 0x77, 0x43, 0xC0, 0x3D, 0xCF, 0xCF, 0x90, 0x55, 0xF0, 0xAB, 0x39, 0x9F, 0x35, + 0x25, 0x77, 0x66, 0x4D, 0x8B, 0x7F, 0x88, 0x0C, 0x17, 0xD7, 0x62, 0x27, 0x1A, 0xDA, 0xE1, 0x2B, + 0xC1, 0xEA, 0x1E, 0x45, 0x7F, 0x4E, 0x26, 0xC0, 0x7F, 0x7B, 0xE8, 0x13, 0x65, 0x05, 0xD4, 0x63, + 0xC7, 0xAE, 0x19, 0x43, 0x2D, 0x76, 0xE4, 0x3D, 0x41, 0x29, 0x10, 0xE4, 0x3D, 0xB1, 0xBD, 0xA0, + 0xDC, 0xC7, 0x2E, 0xAC, 0x34, 0xEE, 0x7C, 0x6A, 0xCE, 0x37, 0xA1, 0x15, 0x5C, 0xBE, 0xA6, 0xFC, + 0xDB, 0x25, 0xE0, 0x7B, 0xCF, 0xCD, 0x90, 0x53, 0x8E, 0xB7, 0x6C, 0xAF, 0xF0, 0x8D, 0x75, 0xF5, + 0x37, 0x37, 0x0D, 0x9F, 0x69, 0x6A, 0xB7, 0xA1, 0x1A, 0x39, 0x5A, 0xC6, 0xE1, 0x29, 0xC1, 0x89, + 0x15, 0x8F, 0xFE, 0x9C, 0xE4, 0x77, 0x80, 0xBD, 0x73, 0x48, 0xA0, 0x16, 0x3B, 0x76, 0x4C, 0x6B, + 0xEA, 0xDA, 0x91, 0x51, 0x82, 0x1E, 0x5F, 0x52, 0x0A, 0xC4, 0xE1, 0x82, 0xE7, 0xFE, 0xE6, 0x94, + 0x5C, 0xFD, 0xA6, 0xFD, 0x61, 0x10, 0x87, 0x16, 0xAE, 0x5A, 0x5B, 0xF9, 0xED, 0x10, 0x70, 0xCF, + 0x73, 0x53, 0x64, 0x14, 0xFC, 0x7C, 0xAA, 0xC0, 0x86, 0x52, 0x78, 0x45, 0xC3, 0x88, 0x2F, 0xD4, + 0x22, 0xB7, 0x76, 0x2E, 0xB2, 0xC4, 0xD6, 0x81, 0x10, 0xAC, 0x2C, 0x7B, 0x8C, 0x94, 0xD4, 0xEF, + 0x08, 0xF6, 0x02, 0xA5, 0x05, 0x4C, 0xB5, 0x2C, 0x3B, 0xA6, 0x35, 0xDA, 0x3A, 0x7C, 0x29, 0x28, + 0x07, 0x92, 0xDE, 0xAC, 0x9C, 0x2B, 0x2A, 0xF7, 0xF1, 0x8D, 0xF9, 0xD9, 0x7F, 0xDC, 0xD3, 0xCA, + 0xE9, 0xD8, 0x49, 0xAE, 0x3C, 0xF1, 0xE5, 0x49, 0x78, 0x45, 0x02, 0x7E, 0xB6, 0x65, 0x0F, 0x85, + 0x5C, 0x86, 0x87, 0x66, 0x0A, 0x0C, 0xE7, 0x38, 0xAF, 0x1E, 0xBB, 0x9B, 0x6A, 0x91, 0x5D, 0x3F, + 0x1B, 0x3A, 0x62, 0xE7, 0x70, 0x40, 0x5F, 0xCE, 0x63, 0x5D, 0x9F, 0x8F, 0xFA, 0xED, 0x17, 0x6A, + 0xC7, 0x1C, 0xCE, 0xB9, 0x8E, 0xD2, 0x7B, 0xAB, 0x86, 0x03, 0x55, 0x8D, 0x00, 0x3C, 0x29, 0xE8, + 0xC9, 0x48, 0xFA, 0xB2, 0x72, 0xAA, 0xE8, 0xF1, 0x97, 0xEF, 0x28, 0xEF, 0xBB, 0xF9, 0xFE, 0xFA, + 0x52, 0x67, 0x10, 0x5C, 0xB6, 0xB6, 0xF7, 0xD7, 0x27, 0xC0, 0x39, 0xF8, 0xCA, 0xD3, 0x73, 0xF4, + 0xA8, 0xE8, 0xD4, 0xD9, 0xD8, 0xBB, 0xB9, 0x1A, 0xD9, 0x4D, 0x33, 0x2D, 0x43, 0xEC, 0x12, 0x37, + 0xF7, 0x94, 0xE0, 0xA4, 0xBE, 0x80, 0xBE, 0xAC, 0x24, 0x75, 0x86, 0xDF, 0x00, 0xDD, 0x02, 0x8D, + 0x1C, 0xB8, 0xF6, 0x24, 0xE2, 0xC0, 0x5A, 0x43, 0xD6, 0x4B, 0x94, 0x0A, 0x2D, 0x84, 0x56, 0xF2, + 0xEC, 0x64, 0x4C, 0x33, 0x76, 0x08, 0x01, 0x9E, 0x84, 0xDE, 0xAC, 0xA2, 0x3F, 0xA7, 0xC6, 0xCB, + 0x9E, 0xFD, 0x8F, 0x7B, 0x9B, 0xFE, 0xDD, 0x67, 0x97, 0xE6, 0x88, 0x1B, 0x35, 0x2E, 0x38, 0xED, + 0xC4, 0xD7, 0x4E, 0xC0, 0x37, 0x9F, 0x3C, 0x08, 0x52, 0x92, 0x51, 0xF4, 0x1F, 0x89, 0xBC, 0x2F, + 0x57, 0x43, 0x7B, 0xED, 0x54, 0xD3, 0x10, 0xA6, 0x48, 0x9D, 0x80, 0xBE, 0xAC, 0xE2, 0xA4, 0xBE, + 0x00, 0x29, 0x39, 0xFE, 0xA4, 0xFE, 0x5A, 0x80, 0x2F, 0x76, 0x0F, 0x07, 0xD6, 0x6A, 0x7A, 0x02, + 0x38, 0x7D, 0xB8, 0x40, 0x64, 0x0C, 0x4F, 0xBD, 0x54, 0x25, 0x72, 0x1E, 0xFB, 0xEB, 0x30, 0x56, + 0x35, 0x9D, 0xCB, 0x7D, 0x29, 0x18, 0xC8, 0x4B, 0x06, 0x72, 0xEA, 0xE9, 0x5E, 0xCF, 0xFC, 0x61, + 0x9D, 0xCC, 0xD6, 0xEB, 0x4F, 0x2E, 0x1C, 0xD7, 0x32, 0xC7, 0x55, 0xF5, 0xAE, 0x87, 0xB6, 0x60, + 0x72, 0x15, 0xCE, 0x29, 0x4F, 0xC9, 0x7B, 0xA6, 0x47, 0x6E, 0x9C, 0x0D, 0xED, 0xDF, 0x4E, 0x36, + 0xB4, 0xD7, 0xD0, 0xC9, 0xAF, 0x84, 0x4C, 0x7E, 0xBA, 0xB2, 0x12, 0xB0, 0xA4, 0xE8, 0xFD, 0x06, + 0x66, 0xEF, 0xC2, 0xED, 0x1C, 0xCE, 0x5A, 0x04, 0x0E, 0x87, 0x40, 0xC8, 0x34, 0xA1, 0x9A, 0x98, + 0xC1, 0xBC, 0xE4, 0x75, 0x4B, 0x0B, 0xE4, 0x14, 0x78, 0x4A, 0xB1, 0x7F, 0xA6, 0xC9, 0xD3, 0x2F, + 0x55, 0x99, 0x8C, 0x3C, 0x76, 0xCC, 0x58, 0x8C, 0x13, 0x1D, 0x40, 0x19, 0x4F, 0xB0, 0xA4, 0xE0, + 0x31, 0x90, 0x93, 0xB7, 0x0C, 0xFB, 0xD1, 0x0D, 0x4D, 0x2B, 0xAB, 0x9E, 0x89, 0xB8, 0x72, 0xE3, + 0xC8, 0x31, 0xE3, 0x1E, 0x37, 0x6A, 0xDF, 0xAA, 0x7F, 0xCA, 0x78, 0x5C, 0xE0, 0x47, 0x53, 0x43, + 0x6F, 0xAC, 0x85, 0xF6, 0xFD, 0xD3, 0xF5, 0xD8, 0xAB, 0xB6, 0x34, 0xDA, 0x18, 0x8C, 0xB5, 0x68, + 0x63, 0xC1, 0x39, 0x32, 0x0A, 0xB4, 0x71, 0xC4, 0xDA, 0xFE, 0x46, 0x12, 0x45, 0x31, 0x26, 0x0E, + 0x59, 0x5E, 0x70, 0x9C, 0x36, 0xE8, 0x51, 0x10, 0x21, 0xAD, 0x56, 0x83, 0x28, 0x6C, 0xB2, 0xB4, + 0x20, 0xD8, 0xB4, 0xAC, 0x40, 0xC9, 0x97, 0x6C, 0xDD, 0x77, 0x80, 0x7D, 0x13, 0x47, 0x58, 0x51, + 0xC9, 0xB1, 0x7E, 0x30, 0x4F, 0xC6, 0x85, 0x48, 0x13, 0xA1, 0xB5, 0xC6, 0x18, 0x83, 0x36, 0x86, + 0x46, 0xA8, 0x99, 0xA8, 0x45, 0xCC, 0xB6, 0xEC, 0x3B, 0x26, 0x63, 0x75, 0xFD, 0x77, 0xF4, 0x00, + 0x81, 0x6D, 0xBD, 0x7A, 0x0F, 0xF8, 0xC1, 0x63, 0xDB, 0x99, 0xB2, 0x25, 0xF2, 0x52, 0x17, 0xC7, + 0xE3, 0xDC, 0x57, 0x26, 0x6B, 0xFA, 0xFA, 0x89, 0xBA, 0x26, 0xC6, 0x21, 0xA4, 0x44, 0xC8, 0xA4, + 0xC0, 0xC9, 0xF9, 0x92, 0x93, 0x07, 0x32, 0x04, 0xF2, 0x37, 0x5B, 0x52, 0x58, 0x6B, 0xC8, 0x49, + 0xCD, 0xE9, 0x4B, 0x72, 0xAC, 0xEA, 0xCB, 0xE3, 0x49, 0xC1, 0x74, 0x23, 0xE2, 0xA9, 0x03, 0xD3, + 0x14, 0x32, 0x3E, 0xA7, 0x8F, 0x54, 0x08, 0x54, 0xB2, 0x72, 0x98, 0x6B, 0xB6, 0x70, 0xCE, 0x51, + 0x29, 0xE4, 0x70, 0x08, 0xB6, 0x1F, 0x9C, 0xE5, 0xB6, 0x2D, 0x87, 0x99, 0x8C, 0x33, 0x48, 0xCF, + 0x4F, 0x6D, 0xEA, 0xF0, 0x84, 0x60, 0xB0, 0xE0, 0x31, 0x52, 0xF2, 0x7F, 0x35, 0xE0, 0xC7, 0xD7, + 0xC5, 0x4E, 0xEE, 0x56, 0x71, 0x9D, 0xB7, 0x6F, 0x5A, 0xFD, 0xCA, 0x1E, 0x30, 0x68, 0x27, 0x19, + 0x0B, 0xB3, 0x4C, 0x84, 0xEA, 0xD2, 0x6A, 0x53, 0xBF, 0x65, 0xAA, 0x1E, 0xD2, 0x8C, 0x35, 0xDA, + 0xD8, 0x84, 0x65, 0x9D, 0x88, 0xB3, 0x16, 0x63, 0x1D, 0x91, 0xB1, 0xBF, 0xB6, 0xB4, 0xA2, 0x88, + 0x2C, 0x11, 0x67, 0x2E, 0xCD, 0xB1, 0xBA, 0x37, 0x07, 0xCE, 0x11, 0x6B, 0x43, 0x29, 0x50, 0x9C, + 0x73, 0x42, 0x1F, 0xA7, 0x2D, 0x2D, 0xA3, 0x70, 0x98, 0x74, 0xEC, 0x42, 0xE0, 0x53, 0xCA, 0x66, + 0x98, 0xAB, 0x37, 0xA9, 0x37, 0x5B, 0x9C, 0x3C, 0x54, 0xE2, 0xCC, 0x65, 0x79, 0x6C, 0x73, 0x96, + 0x38, 0x0C, 0xD1, 0x5A, 0xA3, 0xB5, 0x25, 0x8C, 0x0D, 0x93, 0xF5, 0x88, 0x99, 0xA6, 0x3E, 0xBD, + 0xAA, 0xE5, 0xBB, 0xAF, 0x7D, 0xF6, 0x1A, 0xA1, 0xCC, 0xB1, 0x5E, 0x70, 0x8C, 0xE9, 0xA6, 0x1B, + 0x31, 0xF7, 0x3E, 0x77, 0x84, 0xDE, 0x9C, 0x2A, 0x6E, 0x3B, 0x14, 0x7E, 0xFD, 0xE0, 0x5C, 0xF4, + 0x8E, 0x89, 0x5A, 0x8C, 0x41, 0x20, 0x94, 0x48, 0x62, 0x5F, 0x08, 0x1C, 0x82, 0x52, 0x46, 0x72, + 0x62, 0x7F, 0x8E, 0x5F, 0xCF, 0x01, 0x1C, 0xC6, 0x68, 0x7A, 0x7C, 0xC3, 0x79, 0x2B, 0x4A, 0x8C, + 0xF4, 0xE4, 0xB0, 0xCE, 0xE1, 0x52, 0xE9, 0x56, 0x31, 0x36, 0x1A, 0x29, 0x25, 0x9E, 0x94, 0x38, + 0xE7, 0x90, 0x52, 0x72, 0x60, 0x72, 0x8A, 0x17, 0xC6, 0x0E, 0x72, 0xEE, 0x29, 0xEB, 0x90, 0x42, + 0xF0, 0xBD, 0xAD, 0xE3, 0xDC, 0xFF, 0x62, 0x1D, 0x82, 0x22, 0x88, 0xA4, 0x1E, 0x51, 0x02, 0x06, + 0x0B, 0x3E, 0x2B, 0x2B, 0xC1, 0xF6, 0x01, 0x3F, 0xBE, 0x26, 0x76, 0x62, 0x97, 0x98, 0x1D, 0xE3, + 0x0F, 0x2E, 0x3D, 0xFB, 0xF8, 0x1E, 0xD0, 0x9B, 0xBF, 0x86, 0xC3, 0x35, 0xCD, 0x4B, 0x35, 0x73, + 0x66, 0xB5, 0x19, 0x5F, 0x38, 0x53, 0x0D, 0x09, 0x23, 0xDD, 0xB1, 0xBA, 0xD6, 0x36, 0x15, 0x43, + 0x14, 0x1B, 0xC2, 0x58, 0x13, 0xC5, 0xE6, 0x35, 0x8A, 0xA6, 0x15, 0x86, 0xE4, 0x08, 0x39, 0x67, + 0x24, 0xCF, 0xD2, 0x72, 0x06, 0x6D, 0x0C, 0xD6, 0xDA, 0x8E, 0x98, 0xF4, 0xBD, 0xB3, 0x06, 0x09, + 0x34, 0x5A, 0x2D, 0x9A, 0x61, 0x88, 0x73, 0x0E, 0xA3, 0x35, 0x4B, 0x2A, 0x3D, 0xAC, 0x18, 0x1A, + 0x24, 0xD6, 0x1A, 0xE1, 0x2C, 0x67, 0x8E, 0x56, 0x28, 0xAA, 0x98, 0x28, 0x6C, 0xA5, 0x5E, 0x60, + 0x08, 0x63, 0xC3, 0x54, 0x3D, 0x64, 0xBA, 0x19, 0xAF, 0x6B, 0x38, 0xEF, 0xF7, 0x0E, 0xAC, 0x18, + 0x81, 0xB0, 0x3E, 0x0F, 0xEF, 0x31, 0xA5, 0xDB, 0xE3, 0x7B, 0x9F, 0xE0, 0x6D, 0xA7, 0x0D, 0xCA, + 0x5F, 0xBC, 0x30, 0xF5, 0x81, 0xC3, 0x33, 0xAD, 0x4B, 0x27, 0x6B, 0x11, 0xB1, 0x4D, 0x0A, 0x1E, + 0xE7, 0x1C, 0xB6, 0x2D, 0xD6, 0x82, 0x75, 0x94, 0x32, 0x49, 0xCC, 0x69, 0x6B, 0x31, 0xAF, 0x52, + 0xE2, 0x58, 0x93, 0x17, 0x11, 0xE7, 0x9F, 0x50, 0x62, 0xB4, 0x92, 0xEF, 0x58, 0xBE, 0x9B, 0x80, + 0xB6, 0x27, 0xB4, 0xBF, 0x53, 0x42, 0xD2, 0x88, 0x22, 0xAC, 0x73, 0x28, 0x29, 0xB1, 0xC6, 0xD0, + 0x57, 0xCA, 0x03, 0x82, 0x5D, 0x07, 0x8F, 0xD0, 0x88, 0x2D, 0x4F, 0xEE, 0x9D, 0xA2, 0x6E, 0x14, + 0x4E, 0x48, 0xAC, 0x75, 0x29, 0x91, 0x16, 0x4F, 0x08, 0x59, 0x0C, 0x84, 0xBF, 0x7C, 0xF2, 0xC0, + 0x5D, 0x3A, 0xD7, 0xD7, 0x3A, 0xE3, 0xC4, 0xE5, 0xDC, 0xF7, 0x93, 0x9F, 0x00, 0x30, 0x6F, 0xFE, + 0xAA, 0xB6, 0x34, 0x77, 0x3E, 0x7D, 0x88, 0x83, 0x73, 0xE1, 0x92, 0x5A, 0x23, 0xBA, 0x64, 0xA6, + 0x16, 0xD2, 0x0A, 0x63, 0x9C, 0x92, 0x08, 0x27, 0x3B, 0x09, 0xB0, 0x3D, 0xA7, 0x5A, 0x63, 0xA9, + 0xB5, 0x62, 0x8A, 0x19, 0x85, 0x7B, 0x95, 0xC5, 0xBF, 0xB3, 0x86, 0x9C, 0x88, 0x79, 0xE3, 0xCA, + 0x32, 0x2B, 0x2A, 0x39, 0x8C, 0xB5, 0xC9, 0xE7, 0x29, 0x01, 0xC7, 0x86, 0x40, 0x5A, 0xFD, 0x09, + 0x41, 0xDE, 0x0F, 0x68, 0xE9, 0x98, 0x50, 0x08, 0x02, 0x25, 0xA9, 0xB7, 0x22, 0xB6, 0x1F, 0x38, + 0x48, 0x23, 0x76, 0x6C, 0xDE, 0x35, 0xC9, 0x44, 0xCD, 0x21, 0xB2, 0x60, 0xB5, 0x49, 0xA2, 0xDB, + 0x81, 0xC1, 0x31, 0x5D, 0x83, 0x5A, 0x5E, 0xBD, 0x3E, 0xEF, 0xAB, 0x0D, 0xDA, 0x8A, 0x07, 0x97, + 0xAE, 0xDF, 0xD4, 0xB9, 0xF7, 0x3C, 0x02, 0x4A, 0xD9, 0xA5, 0x7C, 0xFE, 0xBE, 0x47, 0x30, 0xC6, + 0x9E, 0x36, 0x5B, 0x0F, 0xD7, 0xD4, 0x1A, 0x21, 0x51, 0x6C, 0x91, 0x4E, 0x21, 0x9C, 0x03, 0xE9, + 0xD2, 0xF9, 0xBF, 0xDD, 0xC7, 0x11, 0xCC, 0xD4, 0x05, 0x81, 0x08, 0x5E, 0xD5, 0xE2, 0xC7, 0x59, + 0x43, 0x40, 0xC4, 0xD9, 0xAB, 0x4B, 0xAC, 0xEE, 0xCF, 0x77, 0x80, 0xB5, 0xDD, 0x5F, 0x00, 0xDA, + 0x18, 0x62, 0xAD, 0xF1, 0x3D, 0x6F, 0x1E, 0x78, 0x21, 0x04, 0xCE, 0x19, 0x7C, 0x21, 0xF0, 0x94, + 0x62, 0xA6, 0xD1, 0xE4, 0xC1, 0x67, 0x77, 0xD3, 0x34, 0x8A, 0xC7, 0xF6, 0xCE, 0xF2, 0x52, 0x1D, + 0xBC, 0x6C, 0x19, 0x61, 0x00, 0x6B, 0x8E, 0xA6, 0x37, 0xE7, 0xA8, 0x3A, 0xCB, 0x6C, 0xC3, 0xEF, + 0xAB, 0x54, 0x32, 0xE7, 0xE9, 0x33, 0x56, 0x3E, 0x68, 0x6F, 0x7F, 0x72, 0x71, 0x02, 0x76, 0x1E, + 0xDE, 0xC3, 0xDA, 0xB5, 0x9F, 0xE6, 0x33, 0xDF, 0x7E, 0xD7, 0x59, 0xD5, 0x7A, 0x58, 0x6A, 0x34, + 0x23, 0x34, 0x02, 0x89, 0x43, 0x38, 0x09, 0x52, 0x22, 0x84, 0x9C, 0xD7, 0xE0, 0x98, 0xAE, 0x59, + 0x8A, 0xBE, 0x40, 0xBD, 0x42, 0x26, 0x74, 0xD6, 0xA2, 0x6C, 0xC4, 0xA6, 0x55, 0x45, 0x4E, 0x19, + 0x2E, 0xE2, 0xAC, 0xE5, 0x70, 0xB5, 0xCE, 0xC1, 0xA9, 0x19, 0x96, 0x0F, 0xF6, 0x91, 0xF5, 0x3C, + 0xF6, 0x1F, 0x99, 0x62, 0xC7, 0xD8, 0x21, 0xF2, 0x19, 0x9F, 0xB3, 0xD7, 0xAD, 0x86, 0x2E, 0xF0, + 0x6D, 0x32, 0xA4, 0x94, 0x60, 0x0C, 0xB3, 0xF5, 0x26, 0xFB, 0xA7, 0x1A, 0xEC, 0x98, 0x74, 0x1C, + 0x6A, 0x2A, 0x94, 0x9F, 0xC7, 0x38, 0x0F, 0x8C, 0x65, 0xDE, 0x5A, 0xD4, 0x39, 0x9A, 0x06, 0x66, + 0x1A, 0xA1, 0x18, 0xCA, 0x8B, 0xB3, 0x46, 0x1E, 0xFE, 0x65, 0xBE, 0xB6, 0x6C, 0x6D, 0x63, 0xD1, + 0x24, 0xB8, 0xEB, 0x50, 0x95, 0xDD, 0xBB, 0x3F, 0x9C, 0x0B, 0xC3, 0xF8, 0xB4, 0x6A, 0xAD, 0x45, + 0x2B, 0x8C, 0x3A, 0x09, 0x25, 0x8E, 0x0D, 0x3A, 0xD6, 0xC9, 0xFB, 0x38, 0x11, 0x13, 0x6B, 0xAA, + 0x8D, 0x88, 0xC9, 0x6A, 0x8B, 0x28, 0xD6, 0x84, 0xD1, 0xF1, 0x24, 0x26, 0x6C, 0x35, 0xD8, 0x30, + 0xE4, 0xF3, 0xFA, 0x91, 0x12, 0xCE, 0x59, 0xB4, 0xB5, 0xFC, 0xEC, 0x99, 0xE7, 0xF8, 0x97, 0xFB, + 0x1F, 0xE7, 0xB1, 0x1D, 0xFB, 0x88, 0xB4, 0xE6, 0xBE, 0x67, 0x76, 0x72, 0xFF, 0x73, 0x63, 0x84, + 0x5A, 0xE0, 0x8C, 0xC1, 0xA6, 0x9E, 0x91, 0xE8, 0xA0, 0x3B, 0x7A, 0x5A, 0x6B, 0x29, 0xE7, 0x72, + 0x28, 0x95, 0xE1, 0x70, 0x55, 0x63, 0x45, 0x06, 0xE3, 0x64, 0x92, 0x9C, 0xDB, 0x7A, 0xB6, 0x45, + 0x27, 0x3A, 0xCC, 0xD5, 0x43, 0x42, 0xED, 0x4E, 0xCE, 0x0D, 0xAD, 0xEE, 0x0F, 0xCA, 0x83, 0x8B, + 0x7B, 0xC0, 0xBE, 0x23, 0x75, 0xE6, 0x9A, 0x71, 0xB9, 0xDE, 0x8C, 0x56, 0xD7, 0x9B, 0x11, 0x51, + 0xAC, 0xC1, 0x3A, 0xA4, 0x73, 0x08, 0xA5, 0x40, 0x0A, 0x84, 0xB4, 0x2C, 0x9C, 0x3D, 0x27, 0xE6, + 0x42, 0x3C, 0x01, 0xFE, 0x22, 0xCB, 0x41, 0xE7, 0x1C, 0x56, 0x87, 0x6C, 0x18, 0xF6, 0x39, 0x6F, + 0x55, 0x05, 0x81, 0xC3, 0x68, 0x8B, 0x13, 0x82, 0x6C, 0x90, 0x65, 0xC3, 0xAA, 0x13, 0x58, 0xBD, + 0x64, 0x80, 0x83, 0x33, 0x55, 0x7C, 0x3F, 0xE0, 0xCC, 0xB5, 0x2B, 0x58, 0xD6, 0x57, 0xC6, 0xA4, + 0x6E, 0xEC, 0x52, 0xE0, 0x5E, 0x1A, 0x12, 0x52, 0x0A, 0x0E, 0x4C, 0x4E, 0xF3, 0xC4, 0xCE, 0xFD, + 0xBC, 0xFE, 0x84, 0x11, 0x9E, 0x3A, 0xD0, 0xE0, 0x70, 0x2B, 0x46, 0xFA, 0x92, 0x45, 0xEB, 0xBA, + 0x34, 0xA7, 0xD4, 0x9A, 0x50, 0x6F, 0xC5, 0x4B, 0xAC, 0x63, 0xD4, 0x58, 0xB7, 0x3F, 0xD2, 0x86, + 0xC0, 0x53, 0xF3, 0x09, 0x68, 0x45, 0x31, 0x51, 0x20, 0x07, 0xEA, 0xAD, 0x78, 0xB8, 0xD1, 0x8C, + 0x88, 0x63, 0x8D, 0x74, 0x0E, 0x9B, 0xDE, 0xA8, 0x93, 0x04, 0x17, 0x0C, 0xA4, 0xB5, 0xE1, 0xB0, + 0x70, 0x0C, 0x14, 0x03, 0x04, 0xDD, 0x6D, 0x30, 0x87, 0xD1, 0x11, 0xAB, 0x7A, 0x04, 0x97, 0xAC, + 0xED, 0xC5, 0x17, 0x0E, 0xAD, 0x93, 0xE5, 0xAB, 0x76, 0x50, 0xCC, 0x7A, 0x5C, 0xBC, 0x71, 0x2D, + 0x47, 0xE6, 0x6A, 0xFC, 0x62, 0xEB, 0x6E, 0xCE, 0x5D, 0xB7, 0x92, 0x91, 0x4A, 0x21, 0x99, 0x51, + 0x8C, 0xED, 0xB8, 0xBC, 0x52, 0xAA, 0x13, 0x0A, 0x5B, 0x5F, 0x1C, 0xE3, 0xD1, 0x1D, 0xBB, 0x39, + 0xFF, 0xD4, 0x93, 0x18, 0x1D, 0x2A, 0x53, 0x50, 0x86, 0x28, 0x6C, 0xE1, 0x09, 0x6F, 0x71, 0x02, + 0x70, 0x38, 0xEB, 0x68, 0x86, 0x8E, 0x46, 0x18, 0xE7, 0x6B, 0xAD, 0x68, 0xB4, 0x15, 0xE9, 0x4E, + 0xD2, 0x9E, 0x47, 0x80, 0xB3, 0x0E, 0x9C, 0x1B, 0x6C, 0x85, 0x51, 0x3E, 0x0C, 0x23, 0x74, 0x6C, + 0x69, 0xF3, 0x2A, 0x9C, 0x4A, 0x92, 0xA0, 0x68, 0xCF, 0x02, 0xF3, 0xD3, 0xDE, 0x74, 0xD5, 0x60, + 0x8D, 0xA5, 0x27, 0xE7, 0xA7, 0x39, 0xD2, 0x61, 0x4D, 0xCC, 0x70, 0xCE, 0x72, 0xF9, 0xBA, 0x61, + 0x8A, 0x3E, 0x44, 0x71, 0xDC, 0x89, 0x67, 0x84, 0xC0, 0x13, 0x82, 0xF1, 0xA9, 0x59, 0x1E, 0x7A, + 0x76, 0x37, 0x67, 0x9D, 0x74, 0x02, 0x4B, 0x7A, 0x0A, 0x84, 0x5A, 0x23, 0x21, 0x99, 0xEE, 0x94, + 0x42, 0x4A, 0x89, 0x94, 0x02, 0x63, 0x2D, 0x0F, 0x6C, 0xDD, 0xC1, 0xF6, 0x7D, 0x2F, 0x71, 0xF9, + 0x1B, 0x36, 0xB0, 0x7A, 0xA8, 0x97, 0xF1, 0xD9, 0x1A, 0x47, 0x66, 0xAB, 0x18, 0x53, 0x80, 0xD8, + 0x2C, 0xA2, 0x97, 0xE8, 0x10, 0xD0, 0xC2, 0xD2, 0x0C, 0x75, 0x50, 0x6F, 0xE9, 0xC1, 0xBD, 0x13, + 0xB5, 0xCE, 0xE2, 0x70, 0x1E, 0x01, 0x49, 0xB9, 0xE9, 0x7A, 0x1A, 0xCD, 0xD8, 0x8F, 0xA2, 0x18, + 0x6D, 0xDC, 0xD1, 0xFE, 0xBD, 0x03, 0xA4, 0x4D, 0x93, 0xE0, 0xD1, 0x59, 0xA0, 0x9B, 0xE9, 0xC9, + 0xAA, 0x49, 0xCA, 0xD8, 0xAC, 0x87, 0xB3, 0x9A, 0xA2, 0x8C, 0xB8, 0xFC, 0xA4, 0x41, 0x86, 0xF2, + 0x8A, 0x28, 0xD6, 0x1D, 0xF0, 0xD6, 0x5A, 0x02, 0xDF, 0xA3, 0x11, 0xC5, 0xDC, 0xFD, 0xE8, 0x36, + 0xAE, 0xDA, 0x74, 0x2A, 0xFD, 0xA5, 0x1C, 0x5F, 0xFA, 0xE1, 0x66, 0x7A, 0xF3, 0x19, 0xAE, 0x3D, + 0xF7, 0x74, 0x02, 0xA5, 0x10, 0x29, 0xF8, 0x7A, 0x2B, 0xE2, 0x07, 0x8F, 0x6D, 0xE1, 0xF0, 0x4C, + 0x8D, 0xB7, 0x9D, 0xFB, 0x3A, 0x46, 0xFA, 0xCA, 0xEC, 0x99, 0x98, 0xE5, 0xAB, 0x3F, 0x7D, 0x9A, + 0xF1, 0x19, 0x8D, 0xCC, 0x95, 0x70, 0xC6, 0x1C, 0xA3, 0x4F, 0x32, 0x15, 0x3A, 0x9C, 0xB3, 0xC4, + 0x56, 0xD0, 0x0A, 0x63, 0xA9, 0xB5, 0xE9, 0xFD, 0xFB, 0x3B, 0xB7, 0xF2, 0xD7, 0xD7, 0x9C, 0x7A, + 0x2C, 0x01, 0x61, 0xA4, 0xD1, 0xC6, 0x64, 0xA7, 0xE7, 0x1A, 0xAA, 0x5E, 0x6F, 0xE1, 0x94, 0x4A, + 0x3C, 0xC0, 0x81, 0xB0, 0x0E, 0x94, 0x44, 0x08, 0x97, 0x8E, 0xB3, 0xB8, 0xBB, 0x4D, 0x6A, 0x4D, + 0xA3, 0x29, 0xE8, 0xCD, 0x68, 0x2E, 0xDE, 0xD8, 0xC7, 0xEA, 0xFE, 0x0C, 0xB1, 0x8E, 0x3B, 0xD7, + 0x0B, 0x21, 0xF0, 0x3C, 0x45, 0x23, 0xB6, 0x6C, 0xD9, 0x73, 0x08, 0x27, 0x3D, 0xEA, 0x51, 0xCC, + 0xB6, 0xAD, 0xE3, 0x4C, 0xD7, 0x22, 0x7A, 0x8B, 0x05, 0x3C, 0xCF, 0x47, 0x4A, 0x81, 0x92, 0x92, + 0xC3, 0xB3, 0x55, 0x6E, 0x7F, 0xE0, 0x71, 0x10, 0x8A, 0x3F, 0xB8, 0xF0, 0x0D, 0xF4, 0x17, 0xF3, + 0x3C, 0xB1, 0x73, 0x8C, 0xAF, 0xFD, 0xF4, 0x57, 0xEC, 0x99, 0x15, 0xF8, 0x85, 0x41, 0x9C, 0x93, + 0xA0, 0xCD, 0x22, 0x3A, 0x25, 0x5D, 0x1B, 0xE7, 0x2C, 0x42, 0xC0, 0x6C, 0x3D, 0xA4, 0x15, 0xE9, + 0x7C, 0xF4, 0xF5, 0x2F, 0xE3, 0xBE, 0x7A, 0xFD, 0xB1, 0x04, 0xE0, 0x2C, 0x38, 0x27, 0xC3, 0x48, + 0x73, 0x64, 0xA6, 0x4E, 0xA1, 0x90, 0x21, 0x48, 0xEF, 0x23, 0xAC, 0x43, 0xD8, 0xA4, 0x18, 0x7A, + 0xB9, 0xB6, 0x8F, 0x73, 0x96, 0xA8, 0xDE, 0xE4, 0xE2, 0x0D, 0x15, 0x36, 0xAD, 0x28, 0xA7, 0x45, + 0xCD, 0x51, 0xF0, 0x8D, 0x48, 0xF3, 0xE3, 0x87, 0xB7, 0x70, 0x70, 0xAE, 0xC5, 0x29, 0x2B, 0x47, + 0x58, 0xB3, 0x74, 0x80, 0x6A, 0xA3, 0xC9, 0x8A, 0xC1, 0x5E, 0xCE, 0x3B, 0x65, 0x35, 0xF9, 0xC0, + 0x43, 0x09, 0x90, 0x42, 0xB0, 0x63, 0xEC, 0x10, 0xB7, 0xFE, 0xEC, 0x51, 0x46, 0x06, 0xFB, 0xB8, + 0xEE, 0xFC, 0x33, 0x08, 0x3C, 0xC9, 0x77, 0x1F, 0xDE, 0xCA, 0x37, 0x1F, 0x7A, 0x9E, 0x19, 0x93, + 0xC7, 0xCF, 0xF7, 0x63, 0x44, 0x90, 0xEC, 0xA7, 0x61, 0x8E, 0xA7, 0x10, 0xCE, 0x5A, 0xEA, 0xA1, + 0xA6, 0x9A, 0xF7, 0xB0, 0xCE, 0x49, 0xD8, 0xDF, 0x89, 0x14, 0x6F, 0xE1, 0xC5, 0x02, 0x17, 0x49, + 0x9C, 0x0D, 0xC3, 0x88, 0x56, 0x6C, 0xE8, 0xED, 0x15, 0xF8, 0x90, 0x14, 0x42, 0x4E, 0x21, 0xE4, + 0xCB, 0xF4, 0xBD, 0x9C, 0xC5, 0xC4, 0x2D, 0xCE, 0x5D, 0x99, 0xE3, 0x9A, 0xD7, 0x2D, 0x45, 0x89, + 0x24, 0x61, 0x4A, 0x29, 0x13, 0xCB, 0x2B, 0xC5, 0x0B, 0x2F, 0x1D, 0xE1, 0xAE, 0x47, 0xB6, 0x93, + 0x2F, 0xF4, 0xF0, 0xEE, 0x8B, 0xCF, 0x66, 0x49, 0xC9, 0xC7, 0x51, 0x42, 0x2A, 0xD5, 0xF1, 0x5A, + 0x21, 0x24, 0x9B, 0xB7, 0xEE, 0xE0, 0xB6, 0x5F, 0x3C, 0xCE, 0xB9, 0xA7, 0x9E, 0xC4, 0x35, 0x6F, + 0x3C, 0x8D, 0xD9, 0x7A, 0x93, 0xAF, 0xFC, 0xE8, 0x49, 0xEE, 0xDD, 0x32, 0x86, 0x0E, 0xFA, 0xF0, + 0xB2, 0x3D, 0x18, 0x82, 0x14, 0xF7, 0xE2, 0xE0, 0x93, 0x54, 0xE4, 0xA8, 0x37, 0x23, 0xC2, 0x30, + 0x06, 0x5B, 0x40, 0x38, 0x17, 0x52, 0xBE, 0x36, 0x8D, 0xE9, 0x85, 0x04, 0xE0, 0x10, 0x82, 0x9A, + 0x12, 0x4E, 0x0B, 0x2C, 0xCD, 0x96, 0x66, 0x7A, 0x56, 0x50, 0x2E, 0x83, 0x9F, 0xF1, 0x93, 0x30, + 0x90, 0xB2, 0xD3, 0xA9, 0x59, 0xF8, 0x5B, 0x1D, 0x87, 0x9C, 0x3C, 0xA8, 0xF8, 0xE3, 0xF3, 0x57, + 0xD1, 0x5B, 0xCC, 0x62, 0xEC, 0xD1, 0x84, 0x24, 0x84, 0xC0, 0x5A, 0xCB, 0xCA, 0xE1, 0x01, 0xDE, + 0x79, 0xE1, 0x26, 0xF2, 0xF9, 0x1C, 0x7D, 0x85, 0x00, 0xEB, 0x1C, 0x52, 0x29, 0x84, 0x48, 0xE2, + 0x3D, 0xD2, 0x86, 0x6F, 0xDF, 0xFF, 0x4B, 0xEE, 0x7D, 0x62, 0x3B, 0xEF, 0xBA, 0xF4, 0x8D, 0x5C, + 0xF6, 0xFA, 0x93, 0xD9, 0xBA, 0x67, 0x9C, 0x2F, 0xFF, 0xF0, 0x31, 0x9E, 0x19, 0xAF, 0xA3, 0x72, + 0x03, 0x48, 0xBF, 0x84, 0xC1, 0x7B, 0x79, 0xCB, 0xA7, 0xE0, 0x9B, 0xA1, 0xA6, 0xDA, 0x08, 0xC9, + 0x28, 0xF0, 0xA4, 0x73, 0x52, 0x30, 0x77, 0xD5, 0x47, 0x2E, 0x46, 0xA4, 0x5E, 0x79, 0x8C, 0x07, + 0x38, 0xEB, 0x26, 0x03, 0x4F, 0x46, 0xCA, 0x39, 0x30, 0x9A, 0x30, 0x0C, 0x99, 0xAD, 0x42, 0xC1, + 0xE6, 0x08, 0x32, 0x3E, 0x42, 0x2A, 0x90, 0xB6, 0x8B, 0xE3, 0x24, 0x49, 0x58, 0x1D, 0x33, 0x98, + 0x33, 0xFC, 0xE9, 0xC5, 0xEB, 0x58, 0x31, 0x58, 0x46, 0x1B, 0x8B, 0x27, 0xE7, 0x13, 0x04, 0x82, + 0xA2, 0xE7, 0x71, 0xED, 0x79, 0x1B, 0xD3, 0x69, 0x2D, 0xB1, 0xB6, 0x10, 0x49, 0xBC, 0x4F, 0x57, + 0xEB, 0x7C, 0xE9, 0xCE, 0x9F, 0xF0, 0xFC, 0xFE, 0x43, 0xFC, 0xC5, 0x75, 0x57, 0xB0, 0x71, 0xF5, + 0x08, 0x77, 0x3F, 0xBC, 0x95, 0xFF, 0xFD, 0x93, 0xA7, 0x38, 0xD4, 0xF4, 0xF1, 0xF3, 0x43, 0x38, + 0x2F, 0x8F, 0x71, 0x32, 0xA9, 0xF8, 0xDC, 0xC2, 0x9A, 0x24, 0x19, 0x43, 0x08, 0xB0, 0xD6, 0xD1, + 0x8C, 0x74, 0xB2, 0x96, 0x31, 0x06, 0x25, 0x15, 0x81, 0x14, 0x71, 0xA0, 0xC4, 0x91, 0x37, 0x9D, + 0xBA, 0x94, 0xB6, 0x0D, 0xE7, 0x11, 0x90, 0xF1, 0x15, 0xD9, 0x40, 0x4D, 0xE4, 0x33, 0x6A, 0xCA, + 0x97, 0x0C, 0x38, 0xA3, 0x41, 0x0B, 0xE2, 0x50, 0x50, 0x75, 0x90, 0x33, 0x96, 0x20, 0xE3, 0x27, + 0xE5, 0x68, 0x57, 0x18, 0x58, 0x6B, 0xC8, 0x8A, 0x16, 0x7F, 0xF2, 0xA6, 0xF5, 0xBC, 0x61, 0xF5, + 0x10, 0xC6, 0x3A, 0x3C, 0x71, 0x14, 0xBD, 0x58, 0x10, 0x32, 0xF3, 0xE6, 0x76, 0x40, 0x29, 0xC5, + 0xCE, 0x03, 0x07, 0xF9, 0xEC, 0xAD, 0xF7, 0x20, 0xA4, 0xC7, 0x27, 0xDE, 0xF7, 0x4E, 0x0A, 0x19, + 0x9F, 0xCF, 0xDE, 0xFE, 0x33, 0xBE, 0xF7, 0xD8, 0x6E, 0x22, 0x59, 0xC6, 0xCB, 0x55, 0x30, 0x22, + 0x9B, 0xD4, 0xFA, 0x2F, 0x63, 0x75, 0x00, 0xE3, 0x1C, 0xAD, 0xC8, 0x10, 0xC7, 0x1A, 0x67, 0x1D, + 0xCE, 0x1A, 0x3C, 0x5F, 0x90, 0xF3, 0x65, 0xAB, 0xB7, 0x10, 0x8C, 0x6B, 0x63, 0x16, 0xAF, 0x03, + 0x86, 0x2B, 0x39, 0x56, 0x0E, 0xF7, 0xCC, 0x94, 0x72, 0xC1, 0xBE, 0x8C, 0x2F, 0x4F, 0x12, 0x46, + 0xE3, 0x84, 0xC0, 0x49, 0x81, 0x89, 0x05, 0x0D, 0xE7, 0x88, 0x8D, 0x21, 0x13, 0xF8, 0x48, 0x25, + 0x93, 0xA2, 0xC7, 0x59, 0x9C, 0x6E, 0xF2, 0xCE, 0x37, 0xAD, 0xE2, 0xF7, 0x36, 0xAD, 0x4A, 0x00, + 0x09, 0xD7, 0x01, 0xBD, 0x10, 0x7C, 0x1B, 0x78, 0xFB, 0x3B, 0x01, 0x6C, 0x7E, 0xE6, 0x59, 0x3E, + 0xFF, 0xED, 0x1F, 0xB2, 0x61, 0xCD, 0x4A, 0xDE, 0x7F, 0xED, 0x9B, 0xD9, 0x77, 0x68, 0x92, 0xBF, + 0xF9, 0xFA, 0x0F, 0x79, 0x62, 0xCF, 0x0C, 0x32, 0xDB, 0x87, 0x0C, 0x4A, 0x18, 0xFC, 0xE3, 0xBA, + 0x7C, 0x77, 0x43, 0x39, 0x36, 0x96, 0x58, 0x1B, 0xAC, 0x4D, 0x57, 0x95, 0xD6, 0x82, 0x31, 0x64, + 0x94, 0x4F, 0x39, 0xE7, 0xCF, 0x64, 0x7C, 0x6F, 0x6F, 0xE0, 0x29, 0x02, 0x4F, 0x1D, 0x4B, 0xC0, + 0x89, 0xCB, 0x7A, 0xD9, 0x74, 0xE2, 0x50, 0xF5, 0x8E, 0x9F, 0xFB, 0xCF, 0x16, 0x73, 0xFE, 0x65, + 0xC2, 0x59, 0xAC, 0x8E, 0x71, 0x32, 0x5D, 0x8D, 0x09, 0x88, 0xA3, 0xA4, 0x5E, 0xF0, 0x3C, 0x85, + 0xE7, 0x49, 0x4C, 0xDC, 0xE2, 0x8A, 0x8D, 0x43, 0xFC, 0xC9, 0x65, 0x1B, 0x08, 0x3C, 0x0F, 0xEB, + 0xE6, 0x83, 0x6F, 0x2F, 0x6D, 0x93, 0x82, 0xE6, 0xA8, 0x57, 0x48, 0x29, 0x89, 0xA2, 0x98, 0xDB, + 0xEE, 0xDB, 0xCC, 0x37, 0x7E, 0xFC, 0x20, 0xD7, 0x5D, 0xFC, 0x46, 0xAE, 0xBD, 0xF8, 0x2C, 0x7E, + 0xF4, 0xE8, 0x36, 0xBE, 0xF8, 0xBD, 0x87, 0x19, 0xAB, 0x82, 0x9F, 0x1B, 0xC4, 0x79, 0x79, 0x2C, + 0xAA, 0x03, 0xFE, 0x38, 0x5D, 0x73, 0xAC, 0x75, 0xC4, 0xC6, 0xA6, 0x79, 0xC7, 0xB5, 0xC3, 0x39, + 0x69, 0xA8, 0x58, 0x4B, 0x7F, 0x31, 0xA0, 0x9C, 0x95, 0x2F, 0xCE, 0x4E, 0x8C, 0x1F, 0x6E, 0x36, + 0x8F, 0x92, 0x38, 0x8F, 0x80, 0x4D, 0x27, 0x0E, 0xF1, 0xC7, 0xFF, 0xE3, 0xFB, 0x76, 0xDD, 0x8A, + 0xFE, 0xC7, 0x2B, 0xC5, 0x6C, 0xE4, 0x09, 0x02, 0xA3, 0x35, 0x4E, 0x26, 0xE0, 0x3B, 0x2E, 0xEF, + 0x1C, 0x91, 0xB5, 0xB4, 0x9A, 0x11, 0xA7, 0x8D, 0x16, 0xF9, 0xD0, 0x3B, 0x36, 0xD1, 0x5B, 0xCC, + 0x26, 0x71, 0xDF, 0x65, 0xF1, 0x76, 0x29, 0xDB, 0x9E, 0x05, 0x3A, 0x5E, 0x20, 0x25, 0xD3, 0xB3, + 0x73, 0x7C, 0xF1, 0xB6, 0xEF, 0xF3, 0xD0, 0x96, 0x17, 0xF8, 0x8B, 0xEB, 0xDF, 0xCA, 0xC6, 0x35, + 0xA3, 0xFC, 0xCF, 0x6F, 0xDD, 0xC7, 0xB7, 0x1F, 0x7C, 0x8E, 0x96, 0x28, 0xE2, 0x65, 0x2B, 0x58, + 0x99, 0x41, 0x58, 0x12, 0x2B, 0x2E, 0x38, 0x5C, 0x97, 0x2E, 0xD6, 0xBA, 0xA3, 0xC0, 0xA1, 0x33, + 0xF7, 0x63, 0x2D, 0xCE, 0x18, 0xF2, 0x81, 0x62, 0xA4, 0xBF, 0x40, 0x3E, 0x90, 0x4F, 0x7E, 0xEB, + 0x3F, 0x9F, 0x3B, 0xBB, 0xE6, 0xDD, 0x9F, 0x5A, 0x9C, 0x80, 0xC3, 0x33, 0x4D, 0x36, 0xAE, 0x1A, + 0x64, 0xA8, 0xAF, 0xF0, 0xC4, 0x40, 0x6F, 0xE1, 0x60, 0x36, 0x50, 0x2B, 0xC2, 0x30, 0xC2, 0xC5, + 0x02, 0x8B, 0x40, 0x72, 0x74, 0x1D, 0x60, 0x75, 0x4C, 0x7F, 0xC1, 0x71, 0xE3, 0x75, 0x67, 0xB2, + 0x7A, 0xA8, 0x27, 0xA9, 0xF1, 0x3B, 0xEB, 0xF6, 0xF9, 0x56, 0x5F, 0x08, 0x7E, 0xF7, 0x81, 0x71, + 0x3E, 0xFD, 0xF5, 0x3B, 0x98, 0x6D, 0x84, 0x7C, 0xF2, 0xCF, 0xDE, 0x4D, 0x6C, 0x1C, 0x1F, 0xFA, + 0xC7, 0x3B, 0xF8, 0xE5, 0x8E, 0x09, 0x44, 0xB6, 0x17, 0x15, 0x94, 0x92, 0x29, 0xCE, 0x42, 0xFA, + 0xE7, 0x18, 0xF4, 0x36, 0x2D, 0x71, 0xAD, 0x5B, 0xE4, 0xCB, 0xB6, 0xF5, 0x8D, 0xC1, 0x17, 0x8E, + 0x25, 0x3D, 0x39, 0xFA, 0x8B, 0x99, 0x66, 0x5F, 0xB9, 0xF8, 0xD0, 0x45, 0xFF, 0xF0, 0xA4, 0xDD, + 0xF7, 0xF0, 0x77, 0x17, 0x27, 0x60, 0xB8, 0x37, 0xCF, 0x77, 0x36, 0xEF, 0x60, 0xD3, 0xFA, 0xE5, + 0xBB, 0x1F, 0xDD, 0xBA, 0xFF, 0x91, 0x4A, 0x29, 0xB7, 0x62, 0x6E, 0xAE, 0x8E, 0xD5, 0x71, 0x52, + 0x55, 0x76, 0x7A, 0x0C, 0x86, 0x40, 0x69, 0xFE, 0xFC, 0xAD, 0x67, 0x73, 0xC1, 0xA9, 0xCB, 0x89, + 0xD3, 0x15, 0x5B, 0x27, 0xE6, 0x84, 0x40, 0x76, 0xAD, 0xE1, 0x9D, 0x4B, 0xAA, 0x47, 0x29, 0x04, + 0x8F, 0x3E, 0xB3, 0x9D, 0x4F, 0xFD, 0xEB, 0x77, 0x59, 0xB3, 0x7C, 0x29, 0x1F, 0x7C, 0xCF, 0xDB, + 0xF9, 0xE5, 0xB6, 0x17, 0xF9, 0x5F, 0xDF, 0xD9, 0xCC, 0xFE, 0x19, 0x83, 0x9F, 0x1B, 0x40, 0xB4, + 0x5D, 0x7E, 0xA1, 0xD5, 0xD3, 0xAD, 0x38, 0x97, 0xEE, 0x47, 0x1E, 0xFD, 0x23, 0xBA, 0x92, 0x80, + 0xEB, 0xAC, 0xFE, 0x9C, 0xB1, 0xF8, 0xD2, 0x31, 0x50, 0xCC, 0x30, 0x50, 0xCE, 0xD0, 0x5B, 0xCC, + 0xEC, 0x2A, 0x17, 0x82, 0x47, 0x85, 0x08, 0xF1, 0x8B, 0x95, 0xC5, 0x09, 0x00, 0xB8, 0xE2, 0x0D, + 0xAB, 0xB8, 0xEA, 0xC6, 0x5B, 0x9A, 0x97, 0x9F, 0xB9, 0xE6, 0x9E, 0xE1, 0x81, 0xD2, 0x35, 0x07, + 0x0F, 0x4E, 0x66, 0x9A, 0x51, 0x04, 0xC2, 0x75, 0xDC, 0xCE, 0xC4, 0x96, 0x6B, 0x2E, 0x58, 0xC3, + 0x1F, 0x5E, 0xB2, 0x01, 0x1D, 0xC7, 0xA9, 0x15, 0x5C, 0x7B, 0x12, 0x4A, 0x9E, 0x80, 0xEA, 0x02, + 0xDF, 0xF6, 0x8A, 0x1F, 0x3C, 0xF0, 0x18, 0x37, 0xDF, 0x79, 0x2F, 0x57, 0x5C, 0x70, 0x16, 0x6F, + 0x3A, 0x63, 0x03, 0x37, 0xDD, 0xFD, 0x10, 0xB7, 0xFE, 0x7C, 0x1B, 0x4D, 0x97, 0xC7, 0xCB, 0xF6, + 0x63, 0x65, 0x16, 0x61, 0x45, 0xE2, 0xBA, 0x8B, 0xB9, 0xFC, 0xF1, 0x1E, 0x3A, 0xE8, 0x5E, 0x03, + 0xB9, 0xD4, 0xF2, 0x0A, 0xFA, 0x0B, 0x19, 0xCA, 0x59, 0x45, 0x5F, 0x29, 0x4B, 0x4F, 0x21, 0xF3, + 0x93, 0xF7, 0x5C, 0xBC, 0x7E, 0xEC, 0xB6, 0x5F, 0xEC, 0xE0, 0xCF, 0xFE, 0xDB, 0x87, 0x8E, 0x4F, + 0xC0, 0xBE, 0xC3, 0x73, 0xFC, 0xFE, 0x9B, 0x4E, 0x61, 0xA0, 0x52, 0xB8, 0x6F, 0x74, 0xB8, 0xB2, + 0xED, 0xC5, 0x3D, 0xD9, 0x33, 0x5A, 0x47, 0x5A, 0x10, 0x77, 0x0F, 0x6D, 0x38, 0x30, 0x7E, 0x88, + 0xC3, 0xD3, 0x73, 0x0C, 0x57, 0x0A, 0x49, 0xB3, 0x22, 0xB5, 0xBA, 0x50, 0x2A, 0x59, 0x09, 0x76, + 0x85, 0x41, 0x18, 0xC5, 0xDC, 0x72, 0xCF, 0x7D, 0xFC, 0xE2, 0x89, 0xAD, 0xBC, 0xFF, 0xFA, 0xAB, + 0xC9, 0x64, 0x73, 0xFC, 0xD5, 0x97, 0xEE, 0xE4, 0xE1, 0xE7, 0x0F, 0x23, 0x32, 0x15, 0x54, 0xA6, + 0x88, 0x13, 0xFE, 0xD1, 0xD8, 0x7D, 0xAD, 0x47, 0x1A, 0x07, 0x6D, 0x0F, 0xCC, 0x7A, 0x92, 0xBE, + 0x62, 0x40, 0xCE, 0x13, 0x94, 0x32, 0x1E, 0x83, 0x3D, 0xB9, 0x89, 0x4A, 0x31, 0xFB, 0x9D, 0x4F, + 0x7F, 0xFB, 0x51, 0xF3, 0xF5, 0x9F, 0x1F, 0x9C, 0xF7, 0xD3, 0x63, 0x4A, 0xBA, 0x93, 0x57, 0xF4, + 0xB3, 0x62, 0xB8, 0xC2, 0xBB, 0x2E, 0x39, 0xE5, 0xC0, 0xC8, 0x50, 0xCF, 0xAD, 0x23, 0x4B, 0x7A, + 0x6D, 0xE0, 0x49, 0x9C, 0x8E, 0xB1, 0x71, 0x8C, 0x8B, 0x23, 0x84, 0x73, 0x3C, 0xBC, 0x65, 0x2F, + 0x9F, 0xFC, 0xDA, 0xF7, 0xA9, 0x35, 0x93, 0x56, 0xB5, 0x6B, 0x2B, 0x61, 0x8F, 0x6E, 0x62, 0x00, + 0xCC, 0x56, 0x6B, 0x7C, 0xE1, 0x5F, 0xEF, 0x60, 0xE7, 0xBE, 0x71, 0x3E, 0xFA, 0xBE, 0x7F, 0xC7, + 0xD8, 0x54, 0x9D, 0x0F, 0x7C, 0xEE, 0x76, 0x36, 0x3F, 0x37, 0x89, 0xCC, 0xF6, 0x23, 0xFD, 0x12, + 0x4E, 0x78, 0x09, 0x78, 0x6B, 0xE7, 0x09, 0xAF, 0x20, 0xDD, 0xD7, 0x38, 0x63, 0xC0, 0x18, 0x8A, + 0x81, 0x64, 0xB0, 0x14, 0x90, 0x55, 0xE0, 0x0B, 0x47, 0x7F, 0x4F, 0x8E, 0x81, 0x9E, 0xFC, 0x8F, + 0xD7, 0x2C, 0xEB, 0x7D, 0x6C, 0xB0, 0x27, 0xC7, 0x27, 0xDE, 0xB3, 0x7E, 0x1E, 0xDE, 0x45, 0x9F, + 0x68, 0x78, 0xDB, 0x7B, 0x6E, 0xE0, 0xEC, 0x2B, 0xDF, 0xC3, 0x60, 0x6F, 0x71, 0xAC, 0xD6, 0x08, + 0x2F, 0x9A, 0x98, 0x9C, 0x5D, 0x5A, 0xAF, 0x37, 0xD2, 0x8D, 0xCB, 0xA4, 0x06, 0x12, 0x52, 0xF2, + 0xC2, 0x9E, 0x71, 0xB0, 0x31, 0xE7, 0x9C, 0xB6, 0x16, 0x29, 0x8E, 0xBA, 0xBC, 0x73, 0x16, 0xA5, + 0x14, 0x63, 0x87, 0x27, 0xF9, 0xD2, 0xAD, 0x77, 0xB1, 0x6C, 0x68, 0x80, 0x6B, 0x2F, 0xBF, 0x88, + 0x7F, 0xFE, 0xFE, 0xC3, 0x7C, 0xEE, 0xF6, 0xCD, 0x4C, 0xB5, 0x02, 0xFC, 0x6C, 0x2F, 0x42, 0x65, + 0x93, 0x4D, 0x0C, 0x77, 0x34, 0x7E, 0x5F, 0xB3, 0xA4, 0x44, 0x28, 0x1C, 0xBD, 0x85, 0x80, 0xDE, + 0x82, 0x8F, 0x87, 0x45, 0x3A, 0x43, 0x4F, 0x21, 0x60, 0xF5, 0x48, 0xFF, 0xC4, 0xE8, 0x70, 0xE5, + 0xBF, 0xEE, 0x1A, 0x9B, 0x7A, 0xE1, 0x5D, 0x97, 0xAC, 0xE7, 0x8C, 0x13, 0x97, 0xBD, 0xBC, 0x07, + 0x00, 0xBC, 0xEB, 0xD2, 0x53, 0x39, 0x61, 0x49, 0x85, 0xF7, 0xFF, 0xF9, 0x97, 0xF7, 0xAC, 0x1C, + 0xE9, 0xFF, 0xA7, 0x55, 0xA3, 0x43, 0xAD, 0x5C, 0xC6, 0x07, 0x13, 0xE3, 0x74, 0x84, 0x8B, 0x63, + 0x30, 0x60, 0xC8, 0x72, 0xD3, 0x9D, 0x8F, 0x70, 0xF3, 0x5D, 0x9B, 0x41, 0xC8, 0xD4, 0xF2, 0x1A, + 0x29, 0x24, 0xDB, 0x76, 0xED, 0xE5, 0x96, 0xBB, 0x7F, 0xC2, 0x65, 0xE7, 0x9E, 0xC9, 0xC6, 0x53, + 0x4E, 0xE6, 0x23, 0x9F, 0xBF, 0x9D, 0xAF, 0xFE, 0xE0, 0x57, 0x84, 0xA2, 0x8C, 0x97, 0xE9, 0x01, + 0x19, 0x24, 0xC1, 0xFB, 0x2A, 0xAD, 0x8D, 0x4D, 0x4A, 0x5F, 0xD7, 0x65, 0x7D, 0x67, 0x4C, 0xD2, + 0x66, 0xF7, 0x04, 0xC3, 0x3D, 0x59, 0x2A, 0x39, 0x0F, 0x65, 0x0D, 0xC2, 0x18, 0xB2, 0x9E, 0x60, + 0x49, 0x5F, 0x89, 0xA1, 0x4A, 0xF1, 0xD6, 0xD3, 0x4F, 0x5C, 0xFA, 0xE0, 0xE8, 0x50, 0x99, 0x07, + 0xB6, 0x8C, 0x1D, 0x83, 0xF5, 0xB8, 0xCF, 0xB4, 0x5C, 0xF1, 0xCE, 0xF7, 0x71, 0xE9, 0xA5, 0x1B, + 0x59, 0x39, 0xD2, 0xBF, 0xAB, 0xD6, 0x08, 0xD7, 0xCF, 0xCC, 0xD5, 0x4F, 0x99, 0x9B, 0xAD, 0x61, + 0x8D, 0xE9, 0x2C, 0x71, 0x85, 0x90, 0xC4, 0x16, 0x1E, 0xDF, 0xF6, 0x02, 0xA5, 0xBC, 0xCF, 0xE9, + 0x27, 0xAD, 0x40, 0x08, 0xC1, 0xA3, 0x5B, 0x9F, 0x67, 0xDB, 0xCE, 0x3D, 0x5C, 0x7D, 0xE9, 0x05, + 0x3C, 0xBB, 0x77, 0x82, 0xBF, 0xFE, 0xE2, 0x77, 0xD9, 0xB6, 0x7F, 0x0E, 0x2F, 0xD7, 0x8B, 0xF4, + 0xF2, 0x20, 0xD5, 0xC2, 0xCC, 0xB6, 0xE0, 0x38, 0x4E, 0x93, 0xBD, 0x63, 0xF9, 0x84, 0x80, 0x40, + 0x0A, 0x7A, 0x0B, 0x01, 0x7D, 0xC5, 0x0C, 0x19, 0x05, 0xC2, 0x1A, 0xB0, 0x06, 0x5F, 0x3A, 0x06, + 0x7B, 0x0B, 0xAC, 0x5A, 0x3E, 0xF0, 0xCC, 0x09, 0x4B, 0x7B, 0xFF, 0x6A, 0xEF, 0x4B, 0xD3, 0x87, + 0x8E, 0xCC, 0x35, 0xF8, 0xD3, 0xAB, 0xDF, 0x70, 0xCC, 0x2D, 0x5F, 0xB6, 0x97, 0xED, 0x9C, 0xE3, + 0x23, 0x5F, 0xF8, 0x01, 0xC3, 0xFD, 0xE5, 0x33, 0x1E, 0x7B, 0x66, 0xF7, 0x2D, 0x0F, 0x3F, 0xF1, + 0xDC, 0xBA, 0x89, 0x89, 0x69, 0xAC, 0x13, 0xA0, 0x14, 0x42, 0x79, 0x08, 0x4F, 0x62, 0x6D, 0x4C, + 0xCE, 0x0B, 0xB9, 0xE1, 0xBA, 0xF3, 0x39, 0xF3, 0x94, 0x15, 0xF8, 0x9E, 0x60, 0x74, 0x64, 0x19, + 0x37, 0xDD, 0xFE, 0x33, 0x6E, 0xB9, 0xF7, 0x49, 0x42, 0x0A, 0xA8, 0x6C, 0x19, 0x21, 0x03, 0xE8, + 0xB4, 0xD5, 0x5F, 0xE5, 0x86, 0x62, 0x17, 0x49, 0xED, 0xFA, 0xC2, 0x93, 0x82, 0x62, 0xCE, 0xA7, + 0x9C, 0x0B, 0x08, 0x94, 0x40, 0xB8, 0xC4, 0x3B, 0x84, 0xB5, 0x28, 0x61, 0xA9, 0x14, 0x73, 0xAC, + 0x5D, 0xB9, 0x64, 0x76, 0xDD, 0xCA, 0xA1, 0x1B, 0x3E, 0xFD, 0xAD, 0x27, 0xBF, 0x79, 0xEB, 0xC7, + 0xAF, 0xE2, 0xE0, 0xAC, 0xE6, 0xDA, 0x0B, 0x4F, 0x7E, 0xF5, 0x1E, 0x00, 0xB0, 0xF6, 0xDC, 0x6B, + 0x19, 0x19, 0xAC, 0x70, 0xC3, 0xF5, 0x7F, 0xFB, 0xD2, 0x75, 0xEF, 0xB9, 0x6C, 0x3A, 0x36, 0xF6, + 0x92, 0xE9, 0xE9, 0x6A, 0x36, 0x6C, 0xB6, 0xDA, 0xFD, 0xC3, 0x64, 0xEA, 0x13, 0x8A, 0xD8, 0x08, + 0x1E, 0x79, 0x66, 0x27, 0xE3, 0x47, 0xA6, 0x59, 0x35, 0x3A, 0xC2, 0xA7, 0x6E, 0xBE, 0x9B, 0xEF, + 0x6D, 0x7E, 0x0E, 0xEB, 0xF5, 0x20, 0xFD, 0x22, 0x42, 0xFA, 0xB4, 0x5B, 0x54, 0x9D, 0x95, 0xC8, + 0xAB, 0x88, 0xEF, 0x76, 0x43, 0x03, 0xE7, 0xF0, 0xA4, 0xA0, 0x94, 0xF3, 0x18, 0x28, 0x65, 0x29, + 0x67, 0x3D, 0x3C, 0xE1, 0x10, 0x2E, 0xB1, 0xBA, 0xB0, 0x06, 0xE9, 0x0C, 0xA5, 0x5C, 0xC0, 0x8A, + 0x91, 0x7E, 0xBD, 0x72, 0xD9, 0xC0, 0x67, 0x2F, 0xD9, 0xB4, 0xE6, 0x4B, 0xAF, 0x5B, 0x3B, 0x60, + 0x9A, 0x91, 0xE6, 0xBA, 0x8B, 0x4E, 0x5D, 0x14, 0xE3, 0xCB, 0x12, 0xF0, 0x82, 0x38, 0x95, 0xB7, + 0x9F, 0xBF, 0x9E, 0xF3, 0xAF, 0x3C, 0x9B, 0x2B, 0xCE, 0x3B, 0xF5, 0xB9, 0x83, 0x93, 0x73, 0x26, + 0x36, 0xF6, 0xDC, 0xD9, 0xD9, 0xAA, 0x1F, 0x85, 0x61, 0x92, 0x14, 0xD3, 0x82, 0x45, 0x08, 0x09, + 0xD2, 0x63, 0xFF, 0xA1, 0x59, 0xEE, 0x7D, 0x78, 0x3B, 0x7B, 0x0F, 0xD7, 0xF1, 0x82, 0x12, 0xB2, + 0x93, 0xE8, 0x5C, 0x32, 0x5D, 0x39, 0x9B, 0x36, 0x57, 0xEC, 0xCB, 0x82, 0x4F, 0x4A, 0x59, 0x87, + 0xC4, 0x91, 0xF5, 0x25, 0x3D, 0xF9, 0xC4, 0xD5, 0x4B, 0x59, 0x2F, 0x59, 0x66, 0xBB, 0x04, 0xB4, + 0xE8, 0x80, 0xB7, 0x14, 0xB2, 0x3E, 0xA3, 0xCB, 0xFA, 0xDD, 0xE8, 0xB2, 0xFE, 0x7F, 0x1E, 0xEA, + 0x2F, 0xFF, 0x8D, 0xD1, 0xB6, 0xFE, 0xF4, 0xCE, 0x43, 0x7C, 0xF2, 0x5F, 0x1E, 0x60, 0xE4, 0x8C, + 0xB7, 0x52, 0x5C, 0x77, 0x19, 0xB3, 0xCF, 0xFE, 0xF8, 0xD5, 0x11, 0xD0, 0x73, 0xE5, 0x27, 0x31, + 0xD6, 0x32, 0x35, 0x53, 0xE7, 0xC7, 0x8F, 0xEF, 0xE2, 0xE3, 0xFF, 0xE1, 0x02, 0xBB, 0x7D, 0xFF, + 0xF4, 0x93, 0xBE, 0x92, 0xBE, 0xC5, 0x9D, 0x3D, 0x3B, 0x57, 0xF3, 0xA2, 0x56, 0x88, 0xB3, 0xA6, + 0xCB, 0xAA, 0x02, 0x21, 0x14, 0x0E, 0x0F, 0xA9, 0x32, 0x20, 0xD2, 0x32, 0xA3, 0x03, 0xD6, 0x76, + 0x48, 0xC0, 0x76, 0xC5, 0x73, 0x97, 0xE0, 0x2C, 0x12, 0x4B, 0xA0, 0x24, 0xC5, 0xAC, 0x47, 0x6F, + 0x21, 0xA0, 0x27, 0x1F, 0x90, 0x0B, 0x54, 0x62, 0x71, 0x6B, 0xBB, 0xC0, 0x5B, 0xB0, 0x1A, 0x89, + 0xA3, 0x90, 0xF5, 0x59, 0xBE, 0xB4, 0x8F, 0xE5, 0x4B, 0xFB, 0xEF, 0x40, 0x79, 0x37, 0x7E, 0xF4, + 0x8F, 0x2E, 0x3C, 0xFC, 0xC3, 0x83, 0x23, 0xF2, 0xF1, 0xE7, 0xC7, 0xC8, 0x67, 0x7C, 0x96, 0x0F, + 0x94, 0x78, 0xF1, 0xE0, 0x2C, 0x76, 0xF4, 0x42, 0xEC, 0x9E, 0xFB, 0x5F, 0x3E, 0x07, 0x8C, 0xBC, + 0xFD, 0xBF, 0x13, 0xC6, 0x86, 0xD8, 0x58, 0x02, 0x4F, 0x89, 0x30, 0xD2, 0x38, 0x10, 0xD5, 0x47, + 0x76, 0x8A, 0xF7, 0x7F, 0xFC, 0xBA, 0x12, 0x71, 0xF4, 0xD1, 0x67, 0x77, 0xEC, 0xFB, 0x4F, 0xDB, + 0x9F, 0x7B, 0x31, 0x37, 0x3B, 0x53, 0x4D, 0x16, 0x22, 0x52, 0xA5, 0x9B, 0x27, 0x5D, 0x67, 0xA9, + 0x40, 0x76, 0x6F, 0xA9, 0xB5, 0x5B, 0xEA, 0x47, 0x37, 0x58, 0x45, 0x5A, 0x40, 0x29, 0x25, 0xF1, + 0x3D, 0x45, 0x26, 0x50, 0x64, 0x03, 0x8F, 0xC0, 0x53, 0x28, 0x99, 0x36, 0x4D, 0xD2, 0x90, 0x11, + 0x38, 0x84, 0x73, 0x08, 0x12, 0x42, 0x85, 0xB3, 0x28, 0x01, 0xC5, 0x7C, 0x86, 0x91, 0xA5, 0x03, + 0x6E, 0xC9, 0x70, 0xDF, 0x9D, 0x73, 0x4D, 0x7D, 0xE3, 0x97, 0xBF, 0x76, 0xFF, 0xDE, 0xE2, 0x09, + 0x03, 0x90, 0x2C, 0x24, 0xAC, 0x00, 0x2B, 0xA5, 0x64, 0x76, 0xAE, 0xE1, 0xCE, 0x58, 0xBF, 0x9C, + 0xFE, 0x9E, 0x1C, 0xF7, 0x7E, 0xF6, 0xBD, 0xC7, 0xF7, 0x80, 0x81, 0x8D, 0x57, 0xB2, 0xB4, 0xAF, + 0xC8, 0x4C, 0x2D, 0x14, 0xAD, 0x48, 0x0B, 0x92, 0xE9, 0xD2, 0x0B, 0x46, 0xFA, 0x82, 0xCD, 0xCF, + 0xEC, 0xC5, 0xCF, 0x66, 0x9F, 0x3A, 0x69, 0xC5, 0x60, 0x54, 0x2C, 0x64, 0x4F, 0x0B, 0xC3, 0x28, + 0x17, 0xB6, 0x42, 0x9C, 0xD1, 0x47, 0x2D, 0x6B, 0xDB, 0x96, 0xB2, 0x88, 0xD4, 0xE5, 0x85, 0x4B, + 0xF6, 0x18, 0x14, 0xC9, 0xE3, 0x6C, 0x81, 0x92, 0xE4, 0x03, 0x45, 0x21, 0xA3, 0x28, 0xE5, 0x7C, + 0xCA, 0x39, 0x9F, 0x52, 0xC6, 0x23, 0xEB, 0x2B, 0x7C, 0x49, 0xBA, 0x1F, 0x69, 0x13, 0x4B, 0xBB, + 0x64, 0x5E, 0x17, 0xCE, 0x20, 0xAC, 0xEE, 0xC4, 0x7B, 0x20, 0x05, 0xBD, 0xE5, 0x02, 0xA3, 0xCB, + 0x06, 0xA3, 0x9E, 0x4A, 0xE9, 0xDB, 0x5B, 0xF6, 0x4C, 0xFE, 0xFD, 0x6D, 0x3F, 0x7F, 0xF6, 0x48, + 0x71, 0xA0, 0x94, 0xCE, 0xB1, 0x47, 0x0D, 0x6C, 0xAD, 0x25, 0x97, 0x0B, 0xB8, 0xEA, 0x9C, 0x93, + 0x68, 0x86, 0x9A, 0x0F, 0xDF, 0xF8, 0x5F, 0xB8, 0xEB, 0xFF, 0xDC, 0xB4, 0x88, 0x07, 0x9C, 0xFF, + 0x31, 0x0A, 0xD9, 0x00, 0x29, 0x05, 0xCE, 0x39, 0x91, 0xEA, 0xAC, 0x00, 0x1F, 0xC8, 0x00, 0x39, + 0x6D, 0x6C, 0xA6, 0x98, 0xCF, 0xE4, 0x2F, 0xDA, 0xB8, 0xFC, 0x2A, 0x11, 0x87, 0x37, 0xEC, 0xDD, + 0x3B, 0xBE, 0x6A, 0x7C, 0x7C, 0x82, 0x66, 0xB3, 0x99, 0xF6, 0x03, 0x12, 0xEB, 0x0B, 0x25, 0x91, + 0x4A, 0xCD, 0x93, 0xF6, 0x66, 0x87, 0x52, 0xE9, 0x76, 0x7B, 0xBB, 0x84, 0xEE, 0xB4, 0xC8, 0x44, + 0x47, 0x73, 0x21, 0xDA, 0x0F, 0x45, 0xBA, 0xA4, 0x35, 0x8F, 0x43, 0xE0, 0x50, 0x02, 0xB2, 0xD9, + 0x80, 0x81, 0xBE, 0x1E, 0x06, 0x06, 0x7B, 0xA7, 0x5B, 0x56, 0xDE, 0xF6, 0xC0, 0xD6, 0x03, 0xDF, + 0x7A, 0x69, 0xB2, 0x36, 0xE3, 0x7B, 0x32, 0x22, 0xF9, 0xEF, 0x93, 0x56, 0x7A, 0x0E, 0x81, 0x18, + 0xD0, 0x4A, 0x0A, 0x7B, 0xCE, 0xA9, 0xA3, 0xEE, 0x47, 0x9F, 0xF9, 0xA6, 0xBB, 0xEB, 0xA1, 0xCF, + 0x72, 0xF5, 0xB9, 0x27, 0x2F, 0xE2, 0x01, 0xA3, 0x17, 0x12, 0xCF, 0x35, 0x50, 0x59, 0x5F, 0xC8, + 0x64, 0x1D, 0xAB, 0x80, 0x00, 0xC8, 0x02, 0x45, 0xA0, 0x2C, 0xA5, 0xE8, 0x8D, 0xB5, 0xED, 0xDB, + 0x31, 0x36, 0x3D, 0xE3, 0x67, 0x33, 0x2F, 0xAE, 0x1C, 0x19, 0x2C, 0xF4, 0xF5, 0x14, 0x87, 0x04, + 0x78, 0xCE, 0x18, 0x04, 0x16, 0x25, 0x93, 0xAC, 0xED, 0x49, 0x50, 0x42, 0xA0, 0x64, 0xD2, 0x29, + 0x92, 0x24, 0x22, 0x52, 0x0B, 0xCB, 0xD4, 0xA5, 0x85, 0x33, 0xF3, 0x2C, 0x9E, 0x48, 0x12, 0xE7, + 0xC2, 0x26, 0xF7, 0x94, 0x58, 0xB2, 0xBE, 0x47, 0x6F, 0xA5, 0xC8, 0xB2, 0xA5, 0x03, 0xA6, 0x50, + 0x2E, 0xBD, 0xB0, 0xF3, 0x70, 0xED, 0xF6, 0x9F, 0x3D, 0xBD, 0xEF, 0xF1, 0x5A, 0x33, 0xCA, 0x78, + 0x4A, 0x16, 0x52, 0x23, 0xB5, 0x9F, 0x96, 0x4A, 0xD8, 0x4B, 0x43, 0xC1, 0x5A, 0xE7, 0xC2, 0x48, + 0xBB, 0xBF, 0xFC, 0xE8, 0x3B, 0xF9, 0xE5, 0x96, 0xFD, 0x3C, 0x75, 0xDF, 0xAD, 0xC7, 0x12, 0x50, + 0x38, 0xF9, 0xCD, 0x54, 0x7A, 0x8B, 0x44, 0xDA, 0x08, 0x29, 0x84, 0x24, 0x59, 0x30, 0x05, 0x40, + 0x1E, 0x28, 0x03, 0xBD, 0x40, 0xBF, 0x10, 0x0C, 0x48, 0x21, 0x06, 0x0F, 0x4D, 0x37, 0xBC, 0x03, + 0x53, 0x8D, 0x03, 0x95, 0x9E, 0xE2, 0xDC, 0x8A, 0x65, 0x03, 0xA5, 0x9E, 0x52, 0xBE, 0x20, 0x85, + 0x94, 0xAE, 0xAB, 0x7A, 0x4B, 0x2C, 0x67, 0x3B, 0xC0, 0x65, 0x1A, 0xCB, 0x12, 0xDB, 0x05, 0xD6, + 0xCE, 0x07, 0x9E, 0x82, 0x97, 0x24, 0x44, 0x66, 0x03, 0x9F, 0xDE, 0x9E, 0x22, 0x4B, 0x87, 0xFB, + 0xE9, 0x1B, 0xE8, 0x9D, 0x3E, 0xDC, 0x30, 0x8F, 0x6D, 0x7E, 0xEE, 0xE0, 0x43, 0xBB, 0xC6, 0x67, + 0x66, 0x85, 0xA0, 0x24, 0x84, 0x28, 0xA4, 0x46, 0x0A, 0xBA, 0x42, 0xDB, 0x92, 0xF4, 0xD0, 0x34, + 0x60, 0x85, 0x10, 0xB6, 0x15, 0x6A, 0xFA, 0x4A, 0x39, 0xB7, 0xEB, 0xC0, 0x24, 0xFB, 0x1E, 0xBF, + 0xEB, 0x58, 0x02, 0xD6, 0x5F, 0x70, 0x1D, 0x2B, 0x86, 0x7B, 0x38, 0x3C, 0x5D, 0x97, 0x2E, 0x8D, + 0xFD, 0x94, 0xD5, 0x36, 0x01, 0x15, 0xA0, 0xAF, 0x2D, 0x52, 0x88, 0x5E, 0xAD, 0x6D, 0x79, 0x7C, + 0xAA, 0xD6, 0x3C, 0x52, 0x8B, 0x0F, 0xF6, 0xF4, 0x94, 0x1A, 0xCB, 0x96, 0xF4, 0x65, 0x06, 0x7A, + 0xCB, 0x99, 0x6C, 0x36, 0x90, 0x2A, 0xDD, 0x5D, 0x92, 0x0B, 0xAC, 0xDF, 0x26, 0xA1, 0x9D, 0xD4, + 0xDA, 0x16, 0x4E, 0xBC, 0x24, 0x79, 0x04, 0x37, 0x1B, 0xF8, 0x14, 0x8B, 0x39, 0x06, 0xFA, 0x7A, + 0x18, 0x1E, 0xEE, 0xB7, 0xA5, 0x4A, 0xCF, 0xDC, 0x74, 0xC4, 0xCE, 0x27, 0x76, 0x4F, 0x3E, 0xB3, + 0x6D, 0xEF, 0xE4, 0xC1, 0x30, 0xD2, 0x9E, 0x94, 0x22, 0x9F, 0xEA, 0x17, 0xA4, 0xBA, 0xB6, 0x9F, + 0x59, 0x35, 0xA9, 0xEB, 0x47, 0xED, 0x10, 0x20, 0xE9, 0x9C, 0xB9, 0xB1, 0x23, 0x73, 0xEE, 0xE0, + 0x74, 0x83, 0xE6, 0x0B, 0xF7, 0x1D, 0xBB, 0x1C, 0x56, 0x69, 0x5C, 0x2E, 0xD8, 0x67, 0x6C, 0x27, + 0x42, 0x95, 0x0E, 0xE2, 0xA7, 0x03, 0x06, 0x40, 0x46, 0x08, 0x32, 0x02, 0x91, 0x99, 0xA9, 0x35, + 0x79, 0xF4, 0x85, 0xE6, 0xDE, 0x52, 0x3E, 0x33, 0x31, 0x3A, 0x50, 0x1C, 0x58, 0x32, 0xB4, 0x64, + 0xC9, 0xE0, 0x12, 0xD7, 0x6F, 0xA2, 0xB0, 0xD0, 0x6A, 0xB6, 0xBC, 0x56, 0x2B, 0x24, 0x8A, 0x22, + 0x74, 0x6C, 0xB0, 0xF6, 0x68, 0x67, 0x56, 0x4A, 0x81, 0x54, 0x12, 0xDF, 0xF3, 0x08, 0x02, 0x9F, + 0x4C, 0x26, 0x20, 0x9B, 0xCD, 0x90, 0xCB, 0x65, 0x8D, 0xF4, 0xFD, 0x56, 0xD3, 0x30, 0xB3, 0x6F, + 0xA6, 0x75, 0x68, 0xCF, 0xC4, 0xF4, 0x91, 0xA9, 0xB9, 0x56, 0xDD, 0xE1, 0xAC, 0x14, 0x22, 0x07, + 0x22, 0x4E, 0xC1, 0xB5, 0x5D, 0x3D, 0xEE, 0xD2, 0xCB, 0x4B, 0xF5, 0x95, 0xA9, 0x74, 0xF2, 0x9D, + 0x36, 0x4E, 0xD8, 0x74, 0xBD, 0x7E, 0x0C, 0x01, 0xA6, 0xF3, 0x9C, 0xCE, 0xBC, 0x8F, 0xDB, 0x71, + 0xD4, 0xCD, 0x6A, 0x98, 0x4A, 0x7B, 0x5F, 0xDA, 0x09, 0x21, 0xAC, 0x00, 0xAF, 0xD6, 0x88, 0xEC, + 0xB6, 0xBD, 0x93, 0x8D, 0xE7, 0x95, 0x1C, 0xAB, 0x14, 0x32, 0xB9, 0xC1, 0x9E, 0x5C, 0xB9, 0xBF, + 0x58, 0xAE, 0x94, 0xCB, 0xB2, 0xE4, 0x4B, 0xF2, 0x9E, 0x20, 0x27, 0x70, 0x7E, 0xB2, 0xA9, 0x97, + 0xF4, 0x4B, 0xA4, 0x94, 0x0E, 0x21, 0x63, 0xED, 0x68, 0xC5, 0x96, 0x66, 0x2B, 0xB6, 0xF5, 0xF1, + 0xE9, 0x70, 0xF6, 0xD0, 0xCC, 0xDC, 0xDC, 0x74, 0xAD, 0xD5, 0x88, 0x62, 0xA3, 0x11, 0x38, 0x29, + 0x84, 0x15, 0x49, 0x73, 0xBC, 0xAD, 0x4B, 0x9C, 0xEA, 0xD1, 0xEA, 0xD2, 0xA9, 0x93, 0xF8, 0xDA, + 0xF1, 0xDF, 0x6D, 0xCE, 0xC0, 0x57, 0xAE, 0xFD, 0xF6, 0x18, 0x02, 0x76, 0x8D, 0x4F, 0x93, 0xCF, + 0xD4, 0x88, 0x8D, 0x71, 0x4A, 0xCA, 0x36, 0x70, 0x9D, 0x82, 0x6E, 0x74, 0x25, 0x19, 0xD2, 0x41, + 0x9A, 0x69, 0xEC, 0x65, 0xD3, 0xCF, 0x93, 0xC7, 0x78, 0x84, 0xF0, 0x9C, 0x73, 0x72, 0xAA, 0xDA, + 0x94, 0x47, 0xE6, 0x9A, 0x07, 0x85, 0x40, 0x7A, 0x4A, 0xAA, 0x8C, 0xEF, 0x79, 0xB9, 0x8C, 0xE7, + 0x67, 0x7D, 0x15, 0x28, 0x21, 0x54, 0xBA, 0x45, 0xE3, 0xAC, 0xC5, 0x46, 0xDA, 0xE8, 0x46, 0x18, + 0xC7, 0xAD, 0xC8, 0xC4, 0xDA, 0x58, 0x6B, 0x9D, 0xB3, 0x49, 0x57, 0x5E, 0x38, 0x29, 0x85, 0x65, + 0x7E, 0x4C, 0xEB, 0x2E, 0xBD, 0xDA, 0x04, 0x34, 0x80, 0x2A, 0x30, 0x9B, 0x9E, 0x1B, 0xE9, 0x77, + 0x6D, 0x22, 0x9C, 0xA7, 0x04, 0x6F, 0x39, 0x7B, 0x2D, 0xBB, 0xC7, 0xA6, 0xF8, 0xE9, 0x62, 0x04, + 0xD4, 0x1B, 0x21, 0xF5, 0x23, 0x73, 0xE4, 0xFA, 0x8A, 0xDD, 0x96, 0x6F, 0x03, 0x6D, 0x67, 0x56, + 0x9D, 0xBE, 0xAF, 0x02, 0xB9, 0x14, 0x7C, 0x9B, 0x98, 0xB6, 0x78, 0x80, 0x12, 0x42, 0x28, 0x95, + 0xFC, 0xC3, 0x98, 0xB4, 0xD6, 0xC9, 0x46, 0x2B, 0x16, 0xF5, 0x56, 0x24, 0xE9, 0xD8, 0xE0, 0xA8, + 0x6B, 0x0A, 0x91, 0xB4, 0xD4, 0x84, 0x48, 0xB6, 0x23, 0x94, 0xE8, 0x80, 0xEE, 0x06, 0xDF, 0x4D, + 0x40, 0xDB, 0x1B, 0x23, 0x8E, 0x4E, 0x7B, 0x0D, 0xA0, 0x96, 0xEA, 0x56, 0x4D, 0x3F, 0x8B, 0x01, + 0xE3, 0x9C, 0x73, 0xC3, 0xBD, 0x25, 0xF7, 0xBA, 0x93, 0x96, 0x52, 0xC8, 0x07, 0x8B, 0x13, 0x80, + 0x10, 0xE4, 0xFB, 0x4B, 0x48, 0x21, 0x3A, 0x2D, 0xC0, 0x54, 0xC9, 0xB0, 0x2B, 0xB9, 0x84, 0xE9, + 0x20, 0x6D, 0xCB, 0xB7, 0xE3, 0xAE, 0x1B, 0x7C, 0x3B, 0x06, 0xDB, 0x71, 0xA8, 0x20, 0x9D, 0xF2, + 0x11, 0xB2, 0xB3, 0x39, 0x37, 0x9F, 0x04, 0xD7, 0x75, 0xB6, 0x5D, 0xE7, 0xE3, 0x59, 0x7F, 0x31, + 0x12, 0x42, 0xE6, 0xD7, 0x01, 0xED, 0x24, 0x68, 0x00, 0xE7, 0xFB, 0xCA, 0x7D, 0xE0, 0xBA, 0x73, + 0x78, 0x70, 0xCB, 0x5E, 0x3E, 0xB7, 0x28, 0x01, 0x0F, 0x7E, 0x02, 0xF9, 0xE6, 0x4F, 0x2C, 0x8C, + 0x7F, 0xDD, 0xA5, 0x8C, 0x4E, 0x6F, 0xEE, 0x2F, 0x22, 0x0B, 0x81, 0x77, 0x13, 0xD0, 0x9D, 0x8C, + 0xDA, 0x49, 0xF5, 0x78, 0xC7, 0xF1, 0x08, 0x68, 0x8F, 0x6F, 0xBA, 0xA4, 0x1D, 0xEB, 0x71, 0x97, + 0x44, 0x5D, 0x9F, 0xB5, 0xAF, 0x77, 0x80, 0xDB, 0xB6, 0x65, 0x3F, 0x1B, 0xFE, 0xE8, 0xF3, 0x8C, + 0x4D, 0xCC, 0xC1, 0xA2, 0x04, 0x1C, 0xAB, 0x48, 0xFB, 0xDC, 0x4D, 0x40, 0xDC, 0x65, 0xD5, 0xC5, + 0xC0, 0x76, 0xBF, 0x6E, 0x17, 0x53, 0x62, 0x81, 0xBC, 0x12, 0x01, 0xDD, 0x63, 0x2E, 0x46, 0x84, + 0x59, 0x40, 0x48, 0x77, 0x88, 0x98, 0x45, 0xAE, 0x47, 0x08, 0xE1, 0x0A, 0x03, 0x45, 0x76, 0x8D, + 0x4D, 0x71, 0xFD, 0x25, 0x1B, 0xE7, 0xB9, 0xDE, 0x31, 0x47, 0x71, 0xBE, 0x17, 0x74, 0x5F, 0xDB, + 0x0D, 0xA0, 0xFB, 0xB5, 0x5C, 0xE4, 0xBB, 0xEE, 0xCF, 0xBA, 0x85, 0x45, 0xCE, 0x0B, 0x09, 0x5F, + 0x48, 0xC4, 0x42, 0x42, 0x16, 0x92, 0xB3, 0xF0, 0xBC, 0xF0, 0xF7, 0x9D, 0xA3, 0x76, 0xEF, 0xC7, + 0x8E, 0x01, 0xF5, 0x6A, 0x49, 0x58, 0x4C, 0xF1, 0x85, 0xC4, 0x74, 0xBF, 0x7E, 0x25, 0xC0, 0xAF, + 0x74, 0x1C, 0x8F, 0x90, 0xC5, 0xC8, 0xE1, 0x65, 0xCE, 0x8B, 0x82, 0x07, 0xF8, 0xBF, 0xBC, 0x7A, + 0x38, 0x97, 0x7C, 0xD1, 0xFC, 0xA1, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, + 0x74, 0x65, 0x3A, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x32, 0x30, 0x2D, 0x30, + 0x33, 0x2D, 0x31, 0x39, 0x54, 0x31, 0x30, 0x3A, 0x35, 0x30, 0x3A, 0x35, 0x38, 0x2B, 0x30, 0x30, + 0x3A, 0x30, 0x30, 0x62, 0x40, 0x28, 0xF1, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, + 0x61, 0x74, 0x65, 0x3A, 0x6D, 0x6F, 0x64, 0x69, 0x66, 0x79, 0x00, 0x32, 0x30, 0x31, 0x39, 0x2D, + 0x30, 0x31, 0x2D, 0x30, 0x38, 0x54, 0x31, 0x35, 0x3A, 0x35, 0x34, 0x3A, 0x32, 0x33, 0x2B, 0x30, + 0x30, 0x3A, 0x30, 0x30, 0x8A, 0xEF, 0xF9, 0x19, 0x00, 0x00, 0x00, 0x20, 0x74, 0x45, 0x58, 0x74, + 0x73, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3A, 0x2F, + 0x2F, 0x69, 0x6D, 0x61, 0x67, 0x65, 0x6D, 0x61, 0x67, 0x69, 0x63, 0x6B, 0x2E, 0x6F, 0x72, 0x67, + 0xBC, 0xCF, 0x1D, 0x9D, 0x00, 0x00, 0x00, 0x18, 0x74, 0x45, 0x58, 0x74, 0x54, 0x68, 0x75, 0x6D, + 0x62, 0x3A, 0x3A, 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x3A, 0x3A, 0x50, 0x61, 0x67, + 0x65, 0x73, 0x00, 0x31, 0xA7, 0xFF, 0xBB, 0x2F, 0x00, 0x00, 0x00, 0x18, 0x74, 0x45, 0x58, 0x74, + 0x54, 0x68, 0x75, 0x6D, 0x62, 0x3A, 0x3A, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x3A, 0x3A, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x00, 0x31, 0x32, 0x38, 0x43, 0x7C, 0x41, 0x80, 0x00, 0x00, 0x00, 0x17, + 0x74, 0x45, 0x58, 0x74, 0x54, 0x68, 0x75, 0x6D, 0x62, 0x3A, 0x3A, 0x49, 0x6D, 0x61, 0x67, 0x65, + 0x3A, 0x3A, 0x57, 0x69, 0x64, 0x74, 0x68, 0x00, 0x31, 0x32, 0x38, 0xD0, 0x8D, 0x11, 0xDD, 0x00, + 0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x54, 0x68, 0x75, 0x6D, 0x62, 0x3A, 0x3A, 0x4D, 0x69, + 0x6D, 0x65, 0x74, 0x79, 0x70, 0x65, 0x00, 0x69, 0x6D, 0x61, 0x67, 0x65, 0x2F, 0x70, 0x6E, 0x67, + 0x3F, 0xB2, 0x56, 0x4E, 0x00, 0x00, 0x00, 0x17, 0x74, 0x45, 0x58, 0x74, 0x54, 0x68, 0x75, 0x6D, + 0x62, 0x3A, 0x3A, 0x4D, 0x54, 0x69, 0x6D, 0x65, 0x00, 0x31, 0x35, 0x34, 0x36, 0x39, 0x36, 0x32, + 0x38, 0x36, 0x33, 0x1F, 0x1E, 0xB3, 0x01, 0x00, 0x00, 0x00, 0x12, 0x74, 0x45, 0x58, 0x74, 0x54, + 0x68, 0x75, 0x6D, 0x62, 0x3A, 0x3A, 0x53, 0x69, 0x7A, 0x65, 0x00, 0x31, 0x39, 0x32, 0x37, 0x34, + 0x42, 0x0A, 0x19, 0xAB, 0x42, 0x00, 0x00, 0x00, 0x56, 0x74, 0x45, 0x58, 0x74, 0x54, 0x68, 0x75, + 0x6D, 0x62, 0x3A, 0x3A, 0x55, 0x52, 0x49, 0x00, 0x66, 0x69, 0x6C, 0x65, 0x3A, 0x2F, 0x2F, 0x2F, + 0x64, 0x61, 0x74, 0x61, 0x2F, 0x77, 0x77, 0x77, 0x72, 0x6F, 0x6F, 0x74, 0x2F, 0x77, 0x77, 0x77, + 0x2E, 0x65, 0x61, 0x73, 0x79, 0x69, 0x63, 0x6F, 0x6E, 0x2E, 0x6E, 0x65, 0x74, 0x2F, 0x63, 0x64, + 0x6E, 0x2D, 0x69, 0x6D, 0x67, 0x2E, 0x65, 0x61, 0x73, 0x79, 0x69, 0x63, 0x6F, 0x6E, 0x2E, 0x63, + 0x6E, 0x2F, 0x66, 0x69, 0x6C, 0x65, 0x73, 0x2F, 0x32, 0x2F, 0x32, 0x39, 0x31, 0x36, 0x35, 0x2E, + 0x70, 0x6E, 0x67, 0xBF, 0x98, 0x5F, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, + 0x42, 0x60, 0x82 +}; + +void *get_window_icon_raw_data(int *len) +{ + *len = (int)sizeof(window_icon_hexData); + return window_icon_hexData; +} + diff --git a/LinuxGUI/Ventoy2Disk/Web/ventoy_http.c b/LinuxGUI/Ventoy2Disk/Web/ventoy_http.c index 77fcebff..31131578 100644 --- a/LinuxGUI/Ventoy2Disk/Web/ventoy_http.c +++ b/LinuxGUI/Ventoy2Disk/Web/ventoy_http.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -160,9 +161,10 @@ static int ventoy_http_save_cfg(void) { FILE *fp; - fp = fopen("./Ventoy2Disk.ini", "w"); + fp = fopen(g_ini_file, "w"); if (!fp) { + vlog("Failed to open %s code:%d\n", g_ini_file, errno); return 0; } @@ -180,7 +182,7 @@ static int ventoy_http_load_cfg(void) char line[256]; FILE *fp; - fp = fopen("./Ventoy2Disk.ini", "r"); + fp = fopen(g_ini_file, "r"); if (!fp) { return 0; @@ -1499,7 +1501,7 @@ int ventoy_http_start(const char *ip, const char *port) { "listening_ports", "24680", "document_root", "WebUI", - "error_log_file", VTOY_LOG_FILE, + "error_log_file", g_log_file, "request_timeout_ms", "10000", NULL }; diff --git a/LinuxGUI/Ventoy2Disk/main_gtk.c b/LinuxGUI/Ventoy2Disk/main_gtk.c index 55609919..1957a430 100644 --- a/LinuxGUI/Ventoy2Disk/main_gtk.c +++ b/LinuxGUI/Ventoy2Disk/main_gtk.c @@ -8,10 +8,15 @@ #include #include #include +#include +#include #include #include #include "ventoy_gtk.h" +char g_log_file[PATH_MAX]; +char g_ini_file[PATH_MAX]; + static int set_image_from_pixbuf(GtkBuilder *pBuilder, const char *id, const void *pData, int len) { GtkImage *pImage = NULL; @@ -53,6 +58,7 @@ int early_msgbox(GtkMessageType type, GtkButtonsType buttons, const char *str) int main(int argc, char *argv[]) { + int i; int len; const void *pData = NULL; GtkWidget *pWidget = NULL; @@ -74,6 +80,20 @@ int main(int argc, char *argv[]) return 1; } + snprintf(g_log_file, sizeof(g_log_file), "log.txt"); + snprintf(g_ini_file, sizeof(g_ini_file), "./Ventoy2Disk.ini"); + for (i = 0; i < argc; i++) + { + if (argv[i] && argv[i + 1] && strcmp(argv[i], "-l") == 0) + { + snprintf(g_log_file, sizeof(g_log_file), "%s", argv[i + 1]); + } + else if (argv[i] && argv[i + 1] && strcmp(argv[i], "-i") == 0) + { + snprintf(g_ini_file, sizeof(g_ini_file), "%s", argv[i + 1]); + } + } + ventoy_log_init(); vlog("================================================\n"); @@ -113,6 +133,7 @@ int main(int argc, char *argv[]) on_init_window(pBuilder); g_signal_connect(G_OBJECT(pWidget), "delete_event", G_CALLBACK(on_exit_window), NULL); + g_signal_connect(G_OBJECT(pWidget), "destroy", G_CALLBACK(gtk_main_quit), NULL); gtk_main(); diff --git a/LinuxGUI/Ventoy2Disk/main_webui.c b/LinuxGUI/Ventoy2Disk/main_webui.c index e12208ef..2b782cc5 100644 --- a/LinuxGUI/Ventoy2Disk/main_webui.c +++ b/LinuxGUI/Ventoy2Disk/main_webui.c @@ -7,12 +7,17 @@ #include #include #include +#include +#include #include #include #include #include #include +char g_log_file[PATH_MAX]; +char g_ini_file[PATH_MAX]; + int ventoy_log_init(void); void ventoy_log_exit(void); @@ -30,6 +35,7 @@ void ventoy_signal_stop(int sig) int main(int argc, char **argv) { + int i; int rc; const char *ip = "127.0.0.1"; const char *port = "24680"; @@ -50,6 +56,20 @@ int main(int argc, char **argv) port = argv[2]; } + snprintf(g_log_file, sizeof(g_log_file), "log.txt"); + snprintf(g_ini_file, sizeof(g_ini_file), "./Ventoy2Disk.ini"); + for (i = 0; i < argc; i++) + { + if (argv[i] && argv[i + 1] && strcmp(argv[i], "-l") == 0) + { + snprintf(g_log_file, sizeof(g_log_file), "%s", argv[i + 1]); + } + else if (argv[i] && argv[i + 1] && strcmp(argv[i], "-i") == 0) + { + snprintf(g_ini_file, sizeof(g_ini_file), "%s", argv[i + 1]); + } + } + ventoy_log_init(); vlog("===============================================\n"); diff --git a/LinuxGUI/Ventoy2Disk/ventoy_gui.c b/LinuxGUI/Ventoy2Disk/ventoy_gui.c index d0c92037..795f3fd2 100644 --- a/LinuxGUI/Ventoy2Disk/ventoy_gui.c +++ b/LinuxGUI/Ventoy2Disk/ventoy_gui.c @@ -9,9 +9,11 @@ #include #include #include +#include #include #include #include +#include "ventoy_json.h" #define LIB_FLAG_GTK2 (1 << 0) #define LIB_FLAG_GTK3 (1 << 1) @@ -31,6 +33,7 @@ #define LD_CACHE_FILE "/etc/ld.so.cache" #define INT2STR_YN(a) ((a) == 0 ? "NO" : "YES") +static char g_log_file[PATH_MAX]; static char *g_log_buf = NULL; extern char ** environ; @@ -78,7 +81,9 @@ struct cache_file_new (((addr) + __alignof__ (struct cache_file_new) -1) \ & (~(__alignof__ (struct cache_file_new) - 1))) -static void vlog(const char *Fmt, ...) +#define vlog(fmt, args...) ventoy_syslog(0, fmt, ##args) + +void ventoy_syslog(int level, const char *Fmt, ...) { int buflen; char *buf = NULL; @@ -87,6 +92,8 @@ static void vlog(const char *Fmt, ...) time_t stamp; struct tm ttm; FILE *fp; + + (void)level; time(&stamp); localtime_r(&stamp, &ttm); @@ -106,7 +113,7 @@ static void vlog(const char *Fmt, ...) vsnprintf(buf, buflen, Fmt, arg); va_end(arg); - fp = fopen("log.txt", "a+"); + fp = fopen(g_log_file, "a+"); if (fp) { fprintf(fp, "[%04u/%02u/%02u %02u:%02u:%02u] %s", @@ -116,10 +123,12 @@ static void vlog(const char *Fmt, ...) fclose(fp); } + #if 0 printf("[%04u/%02u/%02u %02u:%02u:%02u] %s", ttm.tm_year + 1900, ttm.tm_mon, ttm.tm_mday, ttm.tm_hour, ttm.tm_min, ttm.tm_sec, buf); + #endif } static int is_gtk_env(void) @@ -223,16 +232,16 @@ static int detect_qt_version(int libflag) return 5; } - if (qt4 > 0) - { - return 4; - } - if (qt6 > 0) { return 6; } + if (qt4 > 0) + { + return 4; + } + return 0; } @@ -622,7 +631,7 @@ static int ld_cache_lib_check(const char *lib, int *flag) if (((*flag) & LIB_FLAG_QT4) == 0) { - if (strncmp(lib, "libqt4", 6) == 0) + if (strncmp(lib, "libQt4", 6) == 0) { vlog("LIB:<%s>\n", lib); *flag |= LIB_FLAG_QT4; @@ -632,7 +641,7 @@ static int ld_cache_lib_check(const char *lib, int *flag) if (((*flag) & LIB_FLAG_QT5) == 0) { - if (strncmp(lib, "libqt5", 6) == 0) + if (strncmp(lib, "libQt5", 6) == 0) { vlog("LIB:<%s>\n", lib); *flag |= LIB_FLAG_QT5; @@ -642,7 +651,7 @@ static int ld_cache_lib_check(const char *lib, int *flag) if (((*flag) & LIB_FLAG_QT6) == 0) { - if (strncmp(lib, "libqt6", 6) == 0) + if (strncmp(lib, "libQt6", 6) == 0) { vlog("LIB:<%s>\n", lib); *flag |= LIB_FLAG_QT6; @@ -783,6 +792,176 @@ static int parse_ld_cache(int *flag) return 0; } +static int gui_type_check(VTOY_JSON *pstNode) +{ + FILE *fp = NULL; + const char *env = NULL; + const char *arch = NULL; + const char *srctype = NULL; + const char *srcname = NULL; + const char *condition = NULL; + const char *expression = NULL; + char line[1024]; + + arch = vtoy_json_get_string_ex(pstNode, "arch"); + srctype = vtoy_json_get_string_ex(pstNode, "type"); + srcname = vtoy_json_get_string_ex(pstNode, "name"); + condition = vtoy_json_get_string_ex(pstNode, "condition"); + expression = vtoy_json_get_string_ex(pstNode, "expression"); + + if (srctype == NULL || srcname == NULL || condition == NULL) + { + return 0; + } + + if (arch && NULL == strstr(arch, VTOY_GUI_ARCH)) + { + return 0; + } + + vlog("check <%s> <%s> <%s>\n", srctype, srcname, condition); + + if (strcmp(srctype, "file") == 0) + { + if (access(srcname, F_OK) == -1) + { + return 0; + } + + if (strcmp(condition, "exist") == 0) + { + vlog("File %s exist\n", srcname); + return 1; + } + else if (strcmp(condition, "contains") == 0) + { + fp = fopen(srcname, "r"); + if (fp == NULL) + { + return 0; + } + + while (fgets(line, sizeof(line), fp)) + { + if (strstr(line, expression)) + { + vlog("File %s contains %s\n", srcname, expression); + fclose(fp); + return 1; + } + } + + fclose(fp); + return 0; + } + } + else if (strcmp(srctype, "env") == 0) + { + env = getenv(srcname); + if (env == NULL) + { + return 0; + } + + if (strcmp(condition, "exist") == 0) + { + vlog("env %s exist\n", srcname); + return 1; + } + else if (strcmp(condition, "equal") == 0) + { + if (strcmp(expression, env) == 0) + { + vlog("env %s is %s\n", srcname, env); + return 1; + } + return 0; + } + else if (strcmp(condition, "contains") == 0) + { + if (strstr(env, expression)) + { + vlog("env %s is %s contains %s\n", srcname, env, expression); + return 1; + } + return 0; + } + } + + return 0; +} + +static int read_file_to_buf(const char *FileName, int ExtLen, void **Bufer, int *BufLen) +{ + int FileSize; + FILE *fp = NULL; + void *Data = NULL; + + fp = fopen(FileName, "rb"); + if (fp == NULL) + { + vlog("Failed to open file %s", FileName); + return 1; + } + + fseek(fp, 0, SEEK_END); + FileSize = (int)ftell(fp); + + Data = malloc(FileSize + ExtLen); + if (!Data) + { + fclose(fp); + return 1; + } + + fseek(fp, 0, SEEK_SET); + fread(Data, 1, FileSize, fp); + + fclose(fp); + + *Bufer = Data; + *BufLen = FileSize; + + return 0; +} + +static int distro_check_gui_env(char *type, int len, int *pver) +{ + int size; + int length; + char *pBuf = NULL; + VTOY_JSON *pstNode = NULL; + VTOY_JSON *pstJson = NULL; + + vlog("distro_check_gui_env ...\n"); + + if (access("./tool/distro_gui_type.json", F_OK) == -1) + { + vlog("distro_gui_type.json file not exist\n"); + return 0; + } + + read_file_to_buf("./tool/distro_gui_type.json", 1, (void **)&pBuf, &size); + pBuf[size] = 0; + + pstJson = vtoy_json_create(); + vtoy_json_parse(pstJson, pBuf); + + for (pstNode = pstJson->pstChild; pstNode; pstNode = pstNode->pstNext) + { + if (gui_type_check(pstNode->pstChild)) + { + length = (int)snprintf(type, len, "%s", vtoy_json_get_string_ex(pstNode->pstChild, "gui")); + *pver = type[length - 1] - '0'; + type[length - 1] = 0; + break; + } + } + + vtoy_json_destroy(pstJson); + return pstNode ? 1 : 0; +} + static int detect_gui_exe_path(const char *curpath, char *pathbuf, int buflen) { int ret; @@ -860,7 +1039,12 @@ static int detect_gui_exe_path(const char *curpath, char *pathbuf, int buflen) } else if ((LIB_FLAG_GTK & libflag) > 0 && (LIB_FLAG_QT & libflag) > 0) { - if (is_gtk_env()) + if (distro_check_gui_env(line, sizeof(line), &ver)) + { + guitype = line; + vlog("distro_check_gui <%s%d> ...\n", line, ver); + } + else if (is_gtk_env()) { guitype = "gtk"; ver = detect_gtk_version(libflag); @@ -872,8 +1056,9 @@ static int detect_gui_exe_path(const char *curpath, char *pathbuf, int buflen) } else { - vlog("Current X environment is NOT supported.\n"); - return 1; + vlog("Can not distinguish GTK and QT, default use GTK.\n"); + guitype = "gtk"; + ver = detect_gtk_version(libflag); } } else @@ -989,8 +1174,19 @@ int real_main(int argc, char **argv) int main(int argc, char **argv) { + int i; int ret; + snprintf(g_log_file, sizeof(g_log_file), "log.txt"); + for (i = 0; i < argc; i++) + { + if (argv[i] && argv[i + 1] && strcmp(argv[i], "-l") == 0) + { + snprintf(g_log_file, sizeof(g_log_file), "%s", argv[i + 1]); + break; + } + } + g_log_buf = malloc(MAX_LOG_BUF); if (!g_log_buf) { diff --git a/LinuxGUI/build_gtk.sh b/LinuxGUI/build_gtk.sh index 86fd6131..6e7aa518 100644 --- a/LinuxGUI/build_gtk.sh +++ b/LinuxGUI/build_gtk.sh @@ -81,15 +81,19 @@ build_func() { rm -f ../INSTALL/tool/$toolDir/Ventoy2Disk.${gtkver}_$libsuffix cp -a Ventoy2Disk.${gtkver}_$libsuffix ../INSTALL/tool/$toolDir/Ventoy2Disk.${gtkver} - $1 -D_FILE_OFFSET_BITS=64 Ventoy2Disk/ventoy_gui.c -DVTOY_GUI_ARCH="\"$toolDir\"" -o VentoyGUI.$toolDir - cp -a VentoyGUI.$toolDir ../INSTALL/ + $1 -O2 -D_FILE_OFFSET_BITS=64 Ventoy2Disk/ventoy_gui.c Ventoy2Disk/Core/ventoy_json.c -I Ventoy2Disk/Core -DVTOY_GUI_ARCH="\"$toolDir\"" -o VentoyGUI.$toolDir + cp -a VentoyGUI.$toolDir ../INSTALL/ } + build_func "gcc" '64' 'x86_64' 'gtk2' build_func "gcc" '64' 'x86_64' 'gtk3' + build_func "gcc -m32" '32' 'i386' 'gtk2' build_func "gcc -m32" '32' 'i386' 'gtk3' build_func "aarch64-linux-gnu-gcc" 'aa64' 'aarch64' 'gtk3' + +export PATH=/opt/mips-loongson-gcc8-linux-gnu-2021-02-08/bin/:$PATH build_func "mips-linux-gnu-gcc -mips64r2 -mabi=64" 'm64e' 'mips64el' 'gtk3' diff --git a/LinuxGUI/build_qt.sh b/LinuxGUI/build_qt.sh new file mode 100644 index 00000000..dd5b44c1 --- /dev/null +++ b/LinuxGUI/build_qt.sh @@ -0,0 +1,168 @@ +#!/bin/bash + +force_copy() { + [ -e "$2" ] && rm -f "$2" + cp -a "$1" "$2" +} + +compile_file() { + name=$(basename $2) + obj=${name%.*} + + echo "$1 ${obj}.o ..." + $1 -O2 -Wall -std=gnu99 -Wno-unused-function -Wno-format-truncation -Wno-address-of-packed-member -DSTATIC=static -DINIT= -D_FILE_OFFSET_BITS=64 \ + -I./Ventoy2Disk \ + -I./Ventoy2Disk/Core \ + -I./Ventoy2Disk/Web \ + -I./Ventoy2Disk/QT \ + -I./Ventoy2Disk/Include \ + -I./Ventoy2Disk/Lib/libhttp/include \ + -I./Ventoy2Disk/Lib/fat_io_lib/include \ + -I./Ventoy2Disk/Lib/xz-embedded/linux/include \ + -I./Ventoy2Disk/Lib/xz-embedded/linux/include/linux \ + -I./Ventoy2Disk/Lib/xz-embedded/userspace \ + -I ./Ventoy2Disk/Lib/exfat/src/libexfat \ + -I ./Ventoy2Disk/Lib/exfat/src/mkfs \ + -I ./Ventoy2Disk/Lib/fat_io_lib \ + -c $2 -o ${obj}.o +} + +compile_dir() { + dir=$1 + for i in $(ls $dir/*.c); do + compile_file "$2" "$i" + done +} + +compile_lib() { + compile_dir ./Ventoy2Disk/Core "$1" + compile_dir ./Ventoy2Disk/Web "$1" + compile_dir ./Ventoy2Disk/QT "$1" + compile_dir ./Ventoy2Disk/Lib/exfat/src/libexfat "$1" + compile_dir ./Ventoy2Disk/Lib/exfat/src/mkfs "$1" + compile_dir ./Ventoy2Disk/Lib/fat_io_lib "$1" + compile_file "$1" Ventoy2Disk/Lib/xz-embedded/linux/lib/decompress_unxz.c + + rm -f libVentoyQT_$3.a + $2 -rcs libVentoyQT_$3.a *.o + rm -f *.o +} + +build_qt() { + echo "$1 main.o ..." + $1 -c $2 $3 -o main.o ./Ventoy2Disk/QT/main.cpp + + echo "$1 partcfgdialog.o ..." + $1 -c $2 $3 -o partcfgdialog.o ./Ventoy2Disk/QT/partcfgdialog.cpp + + echo "$1 ventoy2diskwindow.o ..." + $1 -c $2 $3 -o ventoy2diskwindow.o ./Ventoy2Disk/QT/ventoy2diskwindow.cpp + + echo "$1 moc_partcfgdialog.o ..." + $1 -c $2 $3 -o moc_partcfgdialog.o ./Ventoy2Disk/QT/build/moc_partcfgdialog.cpp + + echo "$1 moc_ventoy2diskwindow.o ..." + $1 -c $2 $3 -o moc_ventoy2diskwindow.o ./Ventoy2Disk/QT/build/moc_ventoy2diskwindow.cpp + + echo "$1 Ventoy2Disk.qt5_${6} ..." + $1 $4 -o Ventoy2Disk.qt5_${6} *.o $5 + rm -f *.o +} + +build_qt_app() { + + DEFINES="-DQT_CHECK_EUID -DQT_DEPRECATED_WARNINGS -DSTATIC=static -DINIT= -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB" + CXXFLAGS="-pipe -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC $DEFINES -Wno-deprecated-declarations -Wno-deprecated-copy" + INCPATH=" -I./Ventoy2Disk -I. -I./Ventoy2Disk/Core -I./Ventoy2Disk/Web -I./Ventoy2Disk/QT -I./Ventoy2Disk/QT/build -I./Ventoy2Disk/Include -I./Ventoy2Disk/Lib/libhttp/include -I./Ventoy2Disk/Lib/fat_io_lib/include -I./Ventoy2Disk/Lib/xz-embedded/linux/include -I./Ventoy2Disk/Lib/xz-embedded/linux/include/linux -I./Ventoy2Disk/Lib/xz-embedded/userspace -I./Ventoy2Disk/Lib/exfat/src/libexfat -I./Ventoy2Disk/Lib/fat_io_lib -I$QT_INC_PATH -I$QT_INC_PATH/QtWidgets -I$QT_INC_PATH/QtGui -I$QT_INC_PATH/QtCore -I. -I." + + SUBLIBS="./libVentoyQT_${2}.a" + LIBS="$SUBLIBS $QT_LIB_PATH/libQt5Widgets.so $QT_LIB_PATH/libQt5Gui.so $QT_LIB_PATH/libQt5Core.so -lpthread" + + build_qt "$1" "$CXXFLAGS" "$INCPATH" "$LFLAGS" "$LIBS" "$3" +} + +# build QT5 for i386 +build_qt_i386() { + QT_INC_PATH="./EXLIB/i386/usr/include/i386-linux-gnu/qt5" + QT_LIB_PATH="./EXLIB/i386/usr/lib/i386-linux-gnu" + DEFINES="-DQT_CHECK_EUID -DQT_DEPRECATED_WARNINGS -DSTATIC=static -DINIT= -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB" + CXXFLAGS="-pipe -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC $DEFINES -Wno-deprecated-declarations" + INCPATH=" -I./Ventoy2Disk -I. -I./Ventoy2Disk/Core -I./Ventoy2Disk/Web -I./Ventoy2Disk/QT -I./Ventoy2Disk/QT/build -I./Ventoy2Disk/Include -I./Ventoy2Disk/Lib/libhttp/include -I./Ventoy2Disk/Lib/fat_io_lib/include -I./Ventoy2Disk/Lib/xz-embedded/linux/include -I./Ventoy2Disk/Lib/xz-embedded/linux/include/linux -I./Ventoy2Disk/Lib/xz-embedded/userspace -I./Ventoy2Disk/Lib/exfat/src/libexfat -I./Ventoy2Disk/Lib/fat_io_lib -I$QT_INC_PATH -I$QT_INC_PATH/QtWidgets -I$QT_INC_PATH/QtGui -I$QT_INC_PATH/QtCore -I." + LFLAGS="-Wl,-O1 -Wl,-rpath-link,$QT_LIB_PATH -L$QT_LIB_PATH -Wl,-rpath-link,./EXLIB/i386/lib/i386-linux-gnu -L./EXLIB/i386/lib/i386-linux-gnu" + SUBLIBS="./libVentoyQT_i386.a" + LIBS="$SUBLIBS $QT_LIB_PATH/libQt5Widgets.so $QT_LIB_PATH/libQt5Gui.so $QT_LIB_PATH/libQt5Core.so -lpthread" + + compile_lib "gcc -m32" "ar" "i386" + build_qt "g++ -m32" "$CXXFLAGS" "$INCPATH" "$LFLAGS" "$LIBS" "32" +} + + +#build QT5 for x86_64 +build_qt_x86_64() { + compile_lib "gcc" "ar" "x86_64" + QT_INC_PATH="/opt/Qt5.9.0/5.9/gcc_64/include" + QT_LIB_PATH="/opt/Qt5.9.0/5.9/gcc_64/lib" + LFLAGS="-Wl,-O1 -Wl,-rpath-link,$QT_LIB_PATH -L$QT_LIB_PATH" + build_qt_app "g++" "x86_64" "64" + + force_copy Ventoy2Disk.qt5_64 ../INSTALL/tool/x86_64/Ventoy2Disk.qt5 + rm -f ./libVentoyQT_x86_64.a +} + + +# build QT5 for arm64 +build_qt_aarch64() { + compile_lib "aarch64-linux-gnu-gcc" "aarch64-linux-gnu-ar" "aarch64" + QT_INC_PATH="./EXLIB/aarch64/usr/include/qt5" + QT_LIB_PATH="./EXLIB/aarch64/usr/lib64" + LFLAGS="-Wl,-O1 -Wl,-rpath-link,$QT_LIB_PATH -L$QT_LIB_PATH -Wl,-rpath-link,./EXLIB/aarch64/lib64 -L./EXLIB/aarch64/lib64" + build_qt_app "aarch64-linux-gnu-g++" "aarch64" "aa64" + + force_copy Ventoy2Disk.qt5_aa64 ../INSTALL/tool/aarch64/Ventoy2Disk.qt5 + rm -f ./libVentoyQT_aarch64.a +} + +# build QT5 for mips64 +build_qt_mips64el() { + QT_INC_PATH="./EXLIB/mips64el/usr/include/mips64el-linux-gnuabi64/qt5" + QT_LIB_PATH="./EXLIB/mips64el/usr/lib/mips64el-linux-gnuabi64" + DEFINES="-DQT_CHECK_EUID -DQT_DEPRECATED_WARNINGS -DSTATIC=static -DINIT= -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB" + CXXFLAGS="-pipe -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC $DEFINES -Wno-deprecated-declarations" + INCPATH=" -I./Ventoy2Disk -I. -I./Ventoy2Disk/Core -I./Ventoy2Disk/Web -I./Ventoy2Disk/QT -I./Ventoy2Disk/QT/build -I./Ventoy2Disk/Include -I./Ventoy2Disk/Lib/libhttp/include -I./Ventoy2Disk/Lib/fat_io_lib/include -I./Ventoy2Disk/Lib/xz-embedded/linux/include -I./Ventoy2Disk/Lib/xz-embedded/linux/include/linux -I./Ventoy2Disk/Lib/xz-embedded/userspace -I./Ventoy2Disk/Lib/exfat/src/libexfat -I./Ventoy2Disk/Lib/fat_io_lib -I$QT_INC_PATH -I$QT_INC_PATH/QtWidgets -I$QT_INC_PATH/QtGui -I$QT_INC_PATH/QtCore -I." + LFLAGS="-Wl,-O1 -Wl,-rpath-link,$QT_LIB_PATH -L$QT_LIB_PATH -Wl,-rpath-link,./EXLIB/mips64el/lib/mips64el-linux-gnuabi64 -L./EXLIB/mips64el/lib/mips64el-linux-gnuabi64" + SUBLIBS="./libVentoyQT_mips64el.a" + LIBS="$SUBLIBS $QT_LIB_PATH/libQt5Widgets.so $QT_LIB_PATH/libQt5Gui.so $QT_LIB_PATH/libQt5Core.so -lpthread" + + export PATH=/opt/mips-loongson-gcc8-linux-gnu-2021-02-08/bin/:$PATH + compile_lib "mips-linux-gnu-gcc -mips64r2 -mabi=64" "mips-linux-gnu-ar" "mips64el" + build_qt "mips-linux-gnu-g++ -mips64r2 -mabi=64" "$CXXFLAGS" "$INCPATH" "$LFLAGS" "$LIBS" "m64e" + + force_copy Ventoy2Disk.qt5_m64e ../INSTALL/tool/mips64el/Ventoy2Disk.qt5 + rm -f ./libVentoyQT_mips64el.a +} + + +#################################################################### +#################################################################### +#################################################################### +#################################################################### + +sed "s#../Ventoy2Disk#..#g" -i ./Ventoy2Disk/QT/build/moc_partcfgdialog.cpp +sed "s#../Ventoy2Disk#..#g" -i ./Ventoy2Disk/QT/build/moc_ventoy2diskwindow.cpp + +#build qt5 i386 in centos 8 environment +if [ "$1" = "VENTOY_I386_QT_BUILD" ]; then + echo "build i386 qt ..." + build_qt_i386 + exit 0 +fi + + + +chroot /opt/CentOS8 sh /buildqt.sh +force_copy ./Ventoy2Disk.qt5_32 ../INSTALL/tool/i386/Ventoy2Disk.qt5 +rm -f ./libVentoyQT_i386.a + +build_qt_x86_64 +build_qt_aarch64 +build_qt_mips64el diff --git a/vtoyjump/vtoyjump/vtoyjump.c b/vtoyjump/vtoyjump/vtoyjump.c index f4cdd409..68586a4a 100644 --- a/vtoyjump/vtoyjump/vtoyjump.c +++ b/vtoyjump/vtoyjump/vtoyjump.c @@ -588,6 +588,7 @@ static int VentoyAttachVirtualDisk(HANDLE Handle, const char *IsoPath) int VentoyMountISOByAPI(const char *IsoPath) { + int i; HANDLE Handle; DWORD Status; WCHAR wFilePath[512] = { 0 }; @@ -598,10 +599,12 @@ int VentoyMountISOByAPI(const char *IsoPath) if (IsUTF8Encode(IsoPath)) { + Log("This is UTF8 encoding"); MultiByteToWideChar(CP_UTF8, 0, IsoPath, (int)strlen(IsoPath), wFilePath, (int)(sizeof(wFilePath) / sizeof(WCHAR))); } else { + Log("This is ANSI encoding"); MultiByteToWideChar(CP_ACP, 0, IsoPath, (int)strlen(IsoPath), wFilePath, (int)(sizeof(wFilePath) / sizeof(WCHAR))); } @@ -610,19 +613,36 @@ int VentoyMountISOByAPI(const char *IsoPath) OpenParameters.Version = OPEN_VIRTUAL_DISK_VERSION_1; - Status = OpenVirtualDisk(&StorageType, wFilePath, VIRTUAL_DISK_ACCESS_READ, 0, &OpenParameters, &Handle); - if (Status != ERROR_SUCCESS) - { - if (ERROR_VIRTDISK_PROVIDER_NOT_FOUND == Status) - { - Log("VirtualDisk for ISO file is not supported in current system"); - } - else - { - Log("Failed to open virtual disk ErrorCode:%u", Status); - } - return 1; - } + for (i = 0; i < 10; i++) + { + Status = OpenVirtualDisk(&StorageType, wFilePath, VIRTUAL_DISK_ACCESS_READ, 0, &OpenParameters, &Handle); + if (ERROR_FILE_NOT_FOUND == Status || ERROR_PATH_NOT_FOUND == Status) + { + Log("OpenVirtualDisk ErrorCode:%u, now wait and retry...", Status); + Sleep(1000); + } + else + { + if (ERROR_SUCCESS == Status) + { + Log("OpenVirtualDisk success"); + } + else if (ERROR_VIRTDISK_PROVIDER_NOT_FOUND == Status) + { + Log("VirtualDisk for ISO file is not supported in current system"); + } + else + { + Log("Failed to open virtual disk ErrorCode:%u", Status); + } + break; + } + } + + if (Status != ERROR_SUCCESS) + { + return 1; + } Log("OpenVirtualDisk success"); @@ -1210,48 +1230,68 @@ static int ProcessUnattendedInstallation(const char *script) static int VentoyHook(ventoy_os_param *param) { + int i; int rc; - CHAR Letter = 'A'; + BOOL find = FALSE; + CHAR Letter; + DWORD Drives; DISK_EXTENT DiskExtent; - DWORD Drives = GetLogicalDrives(); UINT8 UUID[16]; CHAR IsoPath[MAX_PATH]; - Log("Logical Drives=0x%x Path:<%s>", Drives, param->vtoy_img_path); + Log("VentoyHook Path:<%s>", param->vtoy_img_path); if (IsUTF8Encode(param->vtoy_img_path)) { Log("This file is UTF8 encoding\n"); } - while (Drives) - { - if (Drives & 0x01) + for (i = 0; i < 5; i++) + { + Letter = 'A'; + Drives = GetLogicalDrives(); + Log("Logic Drives: 0x%x", Drives); + + while (Drives) { - sprintf_s(IsoPath, sizeof(IsoPath), "%C:\\%s", Letter, param->vtoy_img_path); - if (IsFileExist("%s", IsoPath)) + if (Drives & 0x01) { - Log("File exist under %C:", Letter); - if (GetPhyDiskUUID(Letter, UUID, &DiskExtent) == 0) + sprintf_s(IsoPath, sizeof(IsoPath), "%C:\\%s", Letter, param->vtoy_img_path); + if (IsFileExist("%s", IsoPath)) { - if (memcmp(UUID, param->vtoy_disk_guid, 16) == 0) + Log("File exist under %C:", Letter); + if (GetPhyDiskUUID(Letter, UUID, &DiskExtent) == 0) { - Log("Disk UUID match"); - break; + if (memcmp(UUID, param->vtoy_disk_guid, 16) == 0) + { + Log("Disk UUID match"); + find = TRUE; + break; + } } } + else + { + Log("File NOT exist under %C:", Letter); + } } - else - { - Log("File NOT exist under %C:", Letter); - } + + Drives >>= 1; + Letter++; } - Drives >>= 1; - Letter++; - } + if (find) + { + break; + } + else + { + Log("Now wait and retry ..."); + Sleep(1000); + } + } - if (Drives == 0) + if (find == FALSE) { Log("Failed to find ISO file"); return 1;