diff --git a/cad/PrusaSlicer/Makefile b/cad/PrusaSlicer/Makefile index 1696b25ce15b..d38d134bfe6d 100644 --- a/cad/PrusaSlicer/Makefile +++ b/cad/PrusaSlicer/Makefile @@ -1,76 +1,77 @@ PORTNAME= PrusaSlicer DISTVERSIONPREFIX=version_ -DISTVERSION= 2.9.4 -PORTREVISION= 3 +DISTVERSION= 2.9.5 CATEGORIES= cad DIST_SUBDIR= PrusaSlicer MAINTAINER= teodorsigaev@gmail.com COMMENT= Slicing application for 3D printers WWW= https://www.prusa3d.com/prusaslicer/ LICENSE= AGPLv3 LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= cereal>=1.3.0.10:devel/cereal \ cgal>=5.0.2:math/cgal \ opencascade>=7.7.0:cad/opencascade \ libbgcode>=0.2.0_1:cad/libbgcode \ - hidapi>=0.14.0:comms/hidapi \ nlohmann-json>=3.12:devel/nlohmann-json LIB_DEPENDS+= libbgcode_convert.so:cad/libbgcode \ libbgcode_binarize.so:cad/libbgcode \ libbgcode_core.so:cad/libbgcode \ libtbb.so:devel/onetbb \ libboost_log.so:devel/boost-libs \ libImath.so:math/Imath \ libnlopt.so:math/nlopt \ libqhull_r.so:math/qhull \ libcurl.so:ftp/curl \ libexpat.so:textproc/expat2 \ libiconv.so:converters/libiconv \ libopenvdb.so:misc/openvdb \ libgmp.so:math/gmp \ libmpfr.so:math/mpfr \ libdbus-1.so:devel/dbus \ libpng.so:graphics/png \ libTKXSDRAWSTEP.so:cad/opencascade \ libtiff.so:graphics/tiff \ libfontconfig.so:x11-fonts/fontconfig \ libfreeimage.so:graphics/freeimage \ libfreetype.so:print/freetype2 \ libavcodec.so:multimedia/ffmpeg4 \ libharfbuzz.so:print/harfbuzz \ libwayland-egl.so:graphics/wayland \ libwebkit2gtk-4.1.so:www/webkit2-gtk@41 \ libsoup-3.0.so:devel/libsoup3 \ libjavascriptcoregtk-4.1.so:www/webkit2-gtk@41 \ + libhidapi.so:comms/hidapi \ libz3.so:math/z3 USES= cmake cpe desktop-file-utils eigen:3 gettext gl gnome iconv \ jpeg pkgconfig xorg ssl tcl tk +CFLAGS+= -I${LOCALBASE}/include/hidapi CPE_VENDOR= prusa3d USE_GITHUB= yes GH_ACCOUNT= prusa3d USE_GL= gl glu glew USE_GNOME= gtk30 pango atk cairo gdkpixbuf glib20 USE_WX= 3.2 USE_XORG= x11 CMAKE_ARGS+= -DwxWidgets_CONFIG_EXECUTABLE="${WX_CONFIG}" \ -DSLIC3R_GTK=3 \ -DSLIC3R_FHS=1 \ -DSLIC3R_PCH=OFF \ -DSLIC3R_BUILD_TESTS=OFF \ + -DSLIC3R_STATIC=OFF \ -Wno-dev PORTDATA= * -post-patch: +pre-configure: ${MKDIR} ${WRKSRC}/bundled_deps/hidapi/libusb ${CP} ${FILESDIR}/hid.c ${WRKSRC}/bundled_deps/hidapi/libusb/hid.c - @${REINPLACE_CMD} -e '/_boost_/s|system;||' \ + ${REINPLACE_CMD} -e '/_boost_/s|system;||' \ ${WRKSRC}/CMakeLists.txt .include diff --git a/cad/PrusaSlicer/distinfo b/cad/PrusaSlicer/distinfo index 78eea67f34eb..723a2a0929c2 100644 --- a/cad/PrusaSlicer/distinfo +++ b/cad/PrusaSlicer/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1763151878 -SHA256 (PrusaSlicer/prusa3d-PrusaSlicer-version_2.9.4_GH0.tar.gz) = 4f2d8d30561047a82f63ec23eb530f996b08d599c0d9ecbaebaeb44aa4a1c849 -SIZE (PrusaSlicer/prusa3d-PrusaSlicer-version_2.9.4_GH0.tar.gz) = 79411287 +TIMESTAMP = 1780394880 +SHA256 (PrusaSlicer/prusa3d-PrusaSlicer-version_2.9.5_GH0.tar.gz) = f0f0f82a4b174d9ea5bb131d435821305cbc1c79efb7d22cfce71956fec1a34b +SIZE (PrusaSlicer/prusa3d-PrusaSlicer-version_2.9.5_GH0.tar.gz) = 80570562 diff --git a/cad/PrusaSlicer/files/patch-bundled__deps_hidapi_CMakeLists.txt b/cad/PrusaSlicer/files/patch-bundled__deps_hidapi_CMakeLists.txt index b7cd9db381b3..c4bf265cc3a4 100644 --- a/cad/PrusaSlicer/files/patch-bundled__deps_hidapi_CMakeLists.txt +++ b/cad/PrusaSlicer/files/patch-bundled__deps_hidapi_CMakeLists.txt @@ -1,20 +1,12 @@ ---- bundled_deps/hidapi/CMakeLists.txt.orig 2024-12-20 11:54:34 UTC +--- bundled_deps/hidapi/CMakeLists.txt.orig 2026-05-19 09:09:17 UTC +++ bundled_deps/hidapi/CMakeLists.txt -@@ -1,8 +1,9 @@ -- - if (WIN32) - set(HIDAPI_IMPL win/hid.c) - elseif (APPLE) - set(HIDAPI_IMPL mac/hid.c) +@@ -10,6 +10,9 @@ elseif (APPLE) + add_library(hidapi STATIC ${HIDAPI_IMPL}) + target_include_directories(hidapi PUBLIC include) + +elseif (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -+ set(HIDAPI_IMPL libusb/hid.c) ++ set(HIDAPI_IMPL libusb/hid.c) ++ else () - # Assume Linux or Unix other than Mac OS - set(HIDAPI_IMPL linux/hid.c) -@@ -16,4 +17,6 @@ target_link_libraries(hidapi PRIVATE dl) - # Don't link the udev library, as there are two versions out there (libudev.so.0, libudev.so.1), so they are linked explicitely. - # target_link_libraries(hidapi udev) - target_link_libraries(hidapi PRIVATE dl) -+elseif (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -+ target_link_libraries(hidapi usb iconv) - endif() + find_package(PkgConfig REQUIRED) + diff --git a/cad/PrusaSlicer/files/patch-src_CMakeLists.txt b/cad/PrusaSlicer/files/patch-src_CMakeLists.txt index f6c4c536e514..10fc8a2de1c9 100644 --- a/cad/PrusaSlicer/files/patch-src_CMakeLists.txt +++ b/cad/PrusaSlicer/files/patch-src_CMakeLists.txt @@ -1,11 +1,11 @@ ---- src/CMakeLists.txt.orig 2025-04-10 11:26:51 UTC +--- src/CMakeLists.txt.orig 2026-05-19 09:09:17 UTC +++ src/CMakeLists.txt -@@ -51,7 +51,7 @@ if (SLIC3R_GUI) +@@ -52,7 +52,7 @@ if (SLIC3R_GUI) endif() find_package(JPEG MODULE QUIET) - find_package(NanoSVG REQUIRED) + #find_package(NanoSVG REQUIRED) string(REGEX MATCH "wxpng" WX_PNG_BUILTIN ${wxWidgets_LIBRARIES}) if (PNG_FOUND AND NOT WX_PNG_BUILTIN) diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_CMakeLists.txt b/cad/PrusaSlicer/files/patch-src_libslic3r_CMakeLists.txt index 2e17a21a83d7..d10e48666688 100644 --- a/cad/PrusaSlicer/files/patch-src_libslic3r_CMakeLists.txt +++ b/cad/PrusaSlicer/files/patch-src_libslic3r_CMakeLists.txt @@ -1,10 +1,10 @@ ---- src/libslic3r/CMakeLists.txt.orig 2025-04-10 11:26:51 UTC +--- src/libslic3r/CMakeLists.txt.orig 2026-05-19 09:09:17 UTC +++ src/libslic3r/CMakeLists.txt -@@ -612,7 +612,6 @@ target_link_libraries(libslic3r PRIVATE - +@@ -624,7 +624,6 @@ target_link_libraries(libslic3r PRIVATE target_link_libraries(libslic3r PRIVATE + sla_time_estimate libnest2d - libcereal boost_libs clipper libexpat diff --git a/cad/PrusaSlicer/files/patch-src_occt__wrapper_OCCTWrapper.cpp b/cad/PrusaSlicer/files/patch-src_occt__wrapper_OCCTWrapper.cpp new file mode 100644 index 000000000000..561dc9a7e3c4 --- /dev/null +++ b/cad/PrusaSlicer/files/patch-src_occt__wrapper_OCCTWrapper.cpp @@ -0,0 +1,26 @@ +--- src/occt_wrapper/OCCTWrapper.cpp.orig 2026-05-19 09:09:17 UTC ++++ src/occt_wrapper/OCCTWrapper.cpp +@@ -15,6 +15,7 @@ + #include "XCAFDoc_DocumentTool.hxx" + #include "XCAFDoc_ShapeTool.hxx" + #include "XCAFApp_Application.hxx" ++#include "TDF_LabelSequence.hxx" + #include "TopoDS_Builder.hxx" + #include "TopoDS.hxx" + #include "TDataStd_Name.hxx" +@@ -149,13 +150,13 @@ try { + for (Standard_Integer aNodeIter = 1; aNodeIter <= aTriangulation->NbNodes(); ++aNodeIter) { + gp_Pnt aPnt = aTriangulation->Node(aNodeIter); + aPnt.Transform(aTrsf); +- vertices.emplace_back(std::move(Vec3f(float(aPnt.X()), float(aPnt.Y()), float(aPnt.Z())))); ++ vertices.emplace_back(Vec3f(float(aPnt.X()), float(aPnt.Y()), float(aPnt.Z()))); + } + + // Now copy the facets. + const TopAbs_Orientation anOrientation = anExpSF.Current().Orientation(); + for (Standard_Integer aTriIter = 1; aTriIter <= aTriangulation->NbTriangles(); ++aTriIter) { +- const int aTriangleOffet = int(facets.size()); ++ // const int aTriangleOffet = int(facets.size()); // Unused variable + Poly_Triangle aTri = aTriangulation->Triangle(aTriIter); + + Standard_Integer anId[3]; diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.cpp index a065aa8c2a8e..a70f2225845d 100644 --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_ConfigWizard.cpp @@ -1,63 +1,63 @@ ---- src/slic3r/GUI/ConfigWizard.cpp.orig 2024-12-20 11:54:34 UTC +--- src/slic3r/GUI/ConfigWizard.cpp.orig 2026-05-19 09:09:17 UTC +++ src/slic3r/GUI/ConfigWizard.cpp @@ -616,7 +616,7 @@ void PageWelcome::set_run_reason(ConfigWizard::RunReas const bool data_empty = run_reason == ConfigWizard::RR_DATA_EMPTY; welcome_text->Show(data_empty); cbox_reset->Show(!data_empty); -#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) +#if (defined(__linux__) || defined(__FreeBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION) if (!DesktopIntegrationDialog::is_integrated()) cbox_integrate->Show(true); else -@@ -1674,7 +1674,7 @@ PageDownloader::PageDownloader(ConfigWizard* parent) +@@ -1676,7 +1676,7 @@ PageDownloader::PageDownloader(ConfigWizard* parent) )); } -#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) +#if (defined(__linux__) || defined(__FreeBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION) append_text(wxString::Format(_L( "On Linux systems the process of registration also creates desktop integration files for this version of application." ))); -@@ -1692,7 +1692,7 @@ bool PageDownloader::on_finish_downloader() const +@@ -1694,7 +1694,7 @@ bool PageDownloader::on_finish_downloader() const return m_downloader->on_finish(); } -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) bool DownloaderUtils::Worker::perform_registration_linux = false; #endif // __linux__ -@@ -1741,10 +1741,10 @@ bool DownloaderUtils::Worker::perform_url_register() +@@ -1743,10 +1743,10 @@ bool DownloaderUtils::Worker::perform_url_register() } //key_full = "\"C:\\Program Files\\Prusa3D\\PrusaSlicer\\prusa-slicer-console.exe\" \"%1\""; key_full = key_string; -#elif __APPLE__ +#elif defined(__APPLE__) || defined(__FreeBSD__) // Apple registers for custom url in info.plist thus it has to be already registered since build. // The url will always trigger opening of prusaslicer and we have to check that user has allowed it. (GUI_App::MacOpenURL is the triggered method) -#elif defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) +#elif (defined(__linux__) || defined(__FreeBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION // the performation should be called later during desktop integration perform_registration_linux = true; #endif -@@ -1760,9 +1760,9 @@ void DownloaderUtils::Worker::deregister() +@@ -1762,9 +1762,9 @@ void DownloaderUtils::Worker::deregister() return; } key_full = key_string; -#elif __APPLE__ +#elif defined(__APPLE__) || defined(__FreeBSD__) // TODO -#elif defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) +#elif (defined(__linux__) || defined(__FreeBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION BOOST_LOG_TRIVIAL(debug) << "DesktopIntegrationDialog::undo_downloader_registration"; DesktopIntegrationDialog::undo_downloader_registration(); perform_registration_linux = false; -@@ -3405,7 +3405,7 @@ bool ConfigWizard::priv::apply_config(AppConfig *app_c +@@ -3407,7 +3407,7 @@ bool ConfigWizard::priv::apply_config(AppConfig *app_c if ((check_unsaved_preset_changes = install_bundles.size() > 0)) header = _L_PLURAL("A new vendor was installed and one of its printers will be activated", "New vendors were installed and one of theirs printers will be activated", install_bundles.size()); -#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) +#if (defined(__linux__) || defined(__FreeBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION) // Desktop integration on Linux BOOST_LOG_TRIVIAL(debug) << "ConfigWizard::priv::apply_config integrate_desktop" << page_welcome->integrate_desktop() << " perform_registration_linux " << DownloaderUtils::Worker::perform_registration_linux; if (page_welcome->integrate_desktop()) diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__App.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__App.cpp index 1def80f660f4..efdb5b83d97b 100644 --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__App.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_GUI__App.cpp @@ -1,128 +1,128 @@ ---- src/slic3r/GUI/GUI_App.cpp.orig 2025-04-10 11:26:51 UTC +--- src/slic3r/GUI/GUI_App.cpp.orig 2026-05-19 09:09:17 UTC +++ src/slic3r/GUI/GUI_App.cpp @@ -412,7 +412,7 @@ class SplashScreen : public wxSplashScreen (private) }; -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) bool static check_old_linux_datadir(const wxString& app_name) { // If we are on Linux and the datadir does not exist yet, look into the old // location where the datadir was before version 2.3. If we find it there, @@ -1342,6 +1342,9 @@ bool GUI_App::on_init_inner() // Set initialization of image handlers before any UI actions - See GH issue #7469 wxInitAllImageHandlers(); + // Silence warnings generated with wxWidgets 3.2 + wxSizerFlags::DisableConsistencyChecks(); + // Set our own gui log as an active target m_log_gui = new LogGui(); wxLog::SetActiveTarget(m_log_gui); @@ -1372,7 +1375,7 @@ bool GUI_App::on_init_inner() const wxString resources_dir = from_u8(Slic3r::resources_dir()); wxCHECK_MSG(wxDirExists(resources_dir), false, wxString::Format("Resources path does not exist or is not a directory: %s", resources_dir)); -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) if (! check_old_linux_datadir(GetAppName())) { std::cerr << "Quitting, user chose to move their data to new location." << std::endl; return false; @@ -1477,7 +1480,7 @@ bool GUI_App::on_init_inner() if (!default_splashscreen_pos) // revert "restore_win_position" value if application wasn't crashed get_app_config()->set("restore_win_position", "1"); -#ifndef __linux__ +#if !defined(__linux__) && !defined(__FreeBSD__) wxYield(); #endif scrn->SetText(_L("Loading configuration")+ dots); @@ -1660,7 +1663,7 @@ bool GUI_App::on_init_inner() // and wxEVT_SET_FOCUS before GUI_App::post_init is called) wasn't called before GUI_App::post_init and OpenGL wasn't initialized. // Since issue #9774 Where same problem occured on MacOS Ventura, we decided to have this check on MacOS as well. -#if defined(__linux__) || defined(__APPLE__) +#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) if (!m_post_initialized && m_opengl_initialized) { #else if (!m_post_initialized) { @@ -2350,7 +2353,7 @@ bool GUI_App::switch_language() } } -#ifdef __linux__ +#if defined(__linux__) || (__FreeBSD__) static const wxLanguageInfo* linux_get_existing_locale_language(const wxLanguageInfo* language, const wxLanguageInfo* system_language) { @@ -2552,7 +2555,7 @@ bool GUI_App::load_language(wxString language, bool in m_language_info_best = wxLocale::FindLanguageInfo(best_language); BOOST_LOG_TRIVIAL(trace) << boost::format("Best translation language detected (may be different from user locales): %1%") % m_language_info_best->CanonicalName.ToUTF8().data(); } - #ifdef __linux__ + #if defined(__linux__) || defined(__FreeBSD__) wxString lc_all; if (wxGetEnv("LC_ALL", &lc_all) && ! lc_all.IsEmpty()) { // Best language returned by wxWidgets on Linux apparently does not respect LC_ALL. @@ -2561,6 +2564,7 @@ bool GUI_App::load_language(wxString language, bool in } #endif } + m_language_info_best = nullptr; } const wxLanguageInfo *language_info = language.empty() ? nullptr : wxLocale::FindLanguageInfo(language); @@ -2605,7 +2609,7 @@ bool GUI_App::load_language(wxString language, bool in } else if (m_language_info_system != nullptr && language_info->CanonicalName.BeforeFirst('_') == m_language_info_system->CanonicalName.BeforeFirst('_')) language_info = m_language_info_system; -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) // If we can't find this locale , try to use different one for the language // instead of just reporting that it is impossible to switch. if (! wxLocale::IsAvailable(language_info->Language)) { @@ -2726,7 +2730,7 @@ wxMenu* GUI_App::get_config_menu(MainFrame* main_frame local_menu->Append(config_id_base + ConfigMenuTakeSnapshot, _L("Take Configuration &Snapshot"), _L("Capture a configuration snapshot")); local_menu->Append(config_id_base + ConfigMenuUpdateConf, _L("Check for Configuration Updates"), _L("Check for configuration updates")); local_menu->Append(config_id_base + ConfigMenuUpdateApp, _L("Check for Application Updates"), _L("Check for new version of application")); -#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) +#if (defined(__linux__) || defined(__FreeBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION) //if (DesktopIntegrationDialog::integration_possible()) local_menu->Append(config_id_base + ConfigMenuDesktopIntegration, _L("Desktop Integration"), _L("Desktop Integration")); #endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) -@@ -2760,7 +2764,7 @@ wxMenu* GUI_App::get_config_menu(MainFrame* main_frame +@@ -2761,7 +2765,7 @@ wxMenu* GUI_App::get_config_menu(MainFrame* main_frame case ConfigMenuUpdateApp: app_version_check(true); break; -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) case ConfigMenuDesktopIntegration: show_desktop_integration_dialog(); break; -@@ -3404,7 +3408,7 @@ void GUI_App::show_desktop_integration_dialog() +@@ -3405,7 +3409,7 @@ void GUI_App::show_desktop_integration_dialog() void GUI_App::show_desktop_integration_dialog() { -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) //wxCHECK_MSG(mainframe != nullptr, false, "Internal error: Main frame not created / null"); DesktopIntegrationDialog dialog(mainframe); dialog.ShowModal(); -@@ -3424,7 +3428,7 @@ void GUI_App::show_downloader_registration_dialog() +@@ -3425,7 +3429,7 @@ void GUI_App::show_downloader_registration_dialog() if (msg.ShowModal() == wxID_YES) { auto downloader_worker = new DownloaderUtils::Worker(nullptr); downloader_worker->perform_download_register(app_config->get("url_downloader_dest")); -#if defined(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) +#if (defined(__linux__) || defined(__FreeBSD__)) && defined(SLIC3R_DESKTOP_INTEGRATION) if (DownloaderUtils::Worker::perform_registration_linux) DesktopIntegrationDialog::perform_downloader_desktop_integration(); #endif //(__linux__) && defined(SLIC3R_DESKTOP_INTEGRATION) -@@ -3839,7 +3843,7 @@ void GUI_App::start_download(std::string url) +@@ -3840,7 +3844,7 @@ void GUI_App::start_download(std::string url) return; } - #if defined(__APPLE__) || (defined(__linux__) && !defined(SLIC3R_DESKTOP_INTEGRATION)) + #if defined(__APPLE__) || ((defined(__linux__) || defined(__FreeBSD__)) && !defined(SLIC3R_DESKTOP_INTEGRATION)) if (app_config && !app_config->get_bool("downloader_url_registered")) { notification_manager()->push_notification(NotificationType::URLNotRegistered); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_OptionsGroup.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_OptionsGroup.cpp index 5202d514dd53..bdb383e72872 100644 --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_OptionsGroup.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_OptionsGroup.cpp @@ -1,20 +1,20 @@ ---- src/slic3r/GUI/OptionsGroup.cpp.orig 2024-12-20 11:54:34 UTC +--- src/slic3r/GUI/OptionsGroup.cpp.orig 2026-05-19 09:09:17 UTC +++ src/slic3r/GUI/OptionsGroup.cpp -@@ -1234,7 +1234,7 @@ void ogStaticText::SetPathEnd(const std::string& link) +@@ -1265,7 +1265,7 @@ void ogStaticText::SetPathEnd(const std::string& link) void ogStaticText::SetPathEnd(const std::string& link) { -#ifndef __linux__ +#if !defined(__linux__) && !defined(__FreeBSD__) Bind(wxEVT_ENTER_WINDOW, [this, link](wxMouseEvent& event) { SetToolTip(OptionsGroup::get_url(get_app_config()->get("suppress_hyperlinks") != "1" ? link : std::string())); -@@ -1287,7 +1287,7 @@ void ogStaticText::FocusText(bool focus) +@@ -1318,7 +1318,7 @@ void ogStaticText::FocusText(bool focus) SetFont(focus ? Slic3r::GUI::wxGetApp().link_font() : Slic3r::GUI::wxGetApp().normal_font()); -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) this->GetContainingSizer()->Layout(); #endif Refresh(); diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp index e39aa6634b5d..2571b22a1204 100644 --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Plater.cpp @@ -1,56 +1,56 @@ ---- src/slic3r/GUI/Plater.cpp.orig 2025-04-10 11:26:51 UTC +--- src/slic3r/GUI/Plater.cpp.orig 2026-05-19 09:09:17 UTC +++ src/slic3r/GUI/Plater.cpp @@ -24,7 +24,7 @@ #include #include -#include +#include #include #include #include -@@ -926,7 +926,7 @@ void Plater::priv::init() +@@ -974,7 +974,7 @@ void Plater::priv::init() auto open_external_login = [this](wxCommandEvent& evt){ DownloaderUtils::Worker::perform_url_register(); -#if defined(__linux__) +#if defined(__linux__) || defined(__FreeBSD__) // Remove all desktop files registering prusaslicer:// url done by previous versions. DesktopIntegrationDialog::undo_downloader_registration_rigid(); #if defined(SLIC3R_DESKTOP_INTEGRATION) -@@ -1276,7 +1276,7 @@ std::vector Plater::priv::load_files(const std +@@ -1327,7 +1327,7 @@ std::vector Plater::priv::load_files(const std // when loading a project file. However, creating the dialog on heap causes issues on macOS, where it does not // appear at all. Therefore, we create the dialog on stack on Win and macOS, and on heap on Linux, which // is the only system that needed the workarounds in the first place. -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) auto progress_dlg = new wxProgressDialog(loading, "", 100, find_toplevel_parent(q), wxPD_APP_MODAL | wxPD_AUTO_HIDE); Slic3r::ScopeGuard([&progress_dlg](){ if (progress_dlg) progress_dlg->Destroy(); progress_dlg = nullptr; }); #else -@@ -1348,7 +1348,7 @@ std::vector Plater::priv::load_files(const std +@@ -1399,7 +1399,7 @@ std::vector Plater::priv::load_files(const std Slic3r::Model model; bool is_project_file = false; -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) // On Linux Constructor of the ProgressDialog calls DisableOtherWindows() function which causes a disabling of all children of the find_toplevel_parent(q) // And a destructor of the ProgressDialog calls ReenableOtherWindows() function which revert previously disabled children. // But if printer technology will be changes during project loading, -@@ -3591,7 +3591,7 @@ void Plater::priv::on_right_click(RBtnEvent& evt) +@@ -3643,7 +3643,7 @@ void Plater::priv::on_right_click(RBtnEvent& evt) Vec2d mouse_position = evt.data.first; wxPoint position(static_cast(mouse_position.x()), static_cast(mouse_position.y())); -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) // For some reason on Linux the menu isn't displayed if position is // specified (even though the position is sane). position = wxDefaultPosition; -@@ -4460,7 +4460,7 @@ void Plater::load_project(const wxString& filename) +@@ -4516,7 +4516,7 @@ void Plater::load_project(const wxString& filename) ScopeGuard guard([](){ s_multiple_beds.set_loading_project_flag(false);}); const std::vector& input_paths = { into_path(filename) }; - if (! load_files(input_paths).empty()) { + if (! load_files((const std::vector){ into_path(filename) }).empty()) { // At least one file was loaded. p->set_project_filename(filename); // Save the names of active presets and project specific config into ProjectDirtyStateManager. diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Tab.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Tab.cpp index 1677eaacc3b4..210a70271c46 100644 --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Tab.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_Tab.cpp @@ -1,38 +1,38 @@ ---- src/slic3r/GUI/Tab.cpp.orig 2025-04-10 11:26:51 UTC +--- src/slic3r/GUI/Tab.cpp.orig 2026-05-19 09:09:17 UTC +++ src/slic3r/GUI/Tab.cpp -@@ -280,7 +280,7 @@ void Tab::create_preset_tab() +@@ -281,7 +281,7 @@ void Tab::create_preset_tab() m_treectrl = new wxTreeCtrl(panel, wxID_ANY, wxDefaultPosition, wxSize(20 * m_em_unit, -1), wxTR_NO_BUTTONS | wxTR_HIDE_ROOT | wxTR_SINGLE | wxTR_NO_LINES | wxBORDER_SUNKEN | wxWANTS_CHARS); m_treectrl->SetFont(wxGetApp().normal_font()); -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) m_treectrl->SetBackgroundColour(m_parent->GetBackgroundColour()); #endif m_left_sizer->Add(m_treectrl, 1, wxEXPAND); -@@ -294,7 +294,7 @@ void Tab::create_preset_tab() +@@ -295,7 +295,7 @@ void Tab::create_preset_tab() // This helps to process all the cursor key events on Windows in the tree control, // so that the cursor jumps to the last item. m_treectrl->Bind(wxEVT_TREE_SEL_CHANGED, [this](wxTreeEvent&) { -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) // Events queue is opposite On Linux. wxEVT_SET_FOCUS invokes after wxEVT_TREE_SEL_CHANGED, // and a result wxEVT_KILL_FOCUS doesn't invoke for the TextCtrls. // see https://github.com/prusa3d/PrusaSlicer/issues/5720 -@@ -4181,7 +4181,7 @@ bool Tab::tree_sel_change_delayed() +@@ -4230,7 +4230,7 @@ bool Tab::tree_sel_change_delayed() // There is a bug related to Ubuntu overlay scrollbars, see https://github.com/prusa3d/PrusaSlicer/issues/898 and https://github.com/prusa3d/PrusaSlicer/issues/952. // The issue apparently manifests when Show()ing a window with overlay scrollbars while the UI is frozen. For this reason, // we will Thaw the UI prematurely on Linux. This means destroing the no_updates object prematurely. -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) std::unique_ptr no_updates(new wxWindowUpdateLocker(this)); #else /* On Windows we use DoubleBuffering during rendering, -@@ -4227,7 +4227,7 @@ bool Tab::tree_sel_change_delayed() +@@ -4276,7 +4276,7 @@ bool Tab::tree_sel_change_delayed() if (wxGetApp().mainframe!=nullptr && wxGetApp().mainframe->is_active_and_shown_tab(this)) activate_selected_page(throw_if_canceled); - #ifdef __linux__ + #if defined(__linux__) || defined(__FreeBSD__) no_updates.reset(nullptr); #endif diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UserAccountCommunication.cpp b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UserAccountCommunication.cpp index 006c94c62c1b..13b3365fa7a2 100644 --- a/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UserAccountCommunication.cpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_GUI_UserAccountCommunication.cpp @@ -1,38 +1,38 @@ ---- src/slic3r/GUI/UserAccountCommunication.cpp.orig 2025-04-15 11:04:24 UTC +--- src/slic3r/GUI/UserAccountCommunication.cpp.orig 2026-05-19 09:09:17 UTC +++ src/slic3r/GUI/UserAccountCommunication.cpp @@ -38,7 +38,7 @@ #include #endif -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) #include #include #include @@ -140,7 +140,7 @@ bool load_secret(const std::string& opt, std::string& #endif // wxUSE_SECRETSTORE } -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) void load_tokens_linux(UserAccountCommunication::StoreData& result) { // Load refresh token from UserAccount.dat @@ -317,7 +317,7 @@ void UserAccountCommunication::set_username(const std: BOOST_LOG_TRIVIAL(error) << "Failed to write tokens to the secret store."; } } else { -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) // If we can't store the tokens in secret store, store them in file with chmod 600 boost::filesystem::path target(boost::filesystem::path(Slic3r::data_dir()) / "UserAccount.dat") ; std::string data = "||||"; -@@ -640,7 +640,7 @@ void UserAccountCommunication::read_stored_data(UserAc +@@ -663,7 +663,7 @@ void UserAccountCommunication::read_stored_data(UserAc } result.shared_session_key = key0; } else { -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) load_tokens_linux(result); #endif } diff --git a/cad/PrusaSlicer/files/patch-src_slic3r_Utils_Bonjour.hpp b/cad/PrusaSlicer/files/patch-src_slic3r_Utils_Bonjour.hpp index 1bee4d73e294..12aacde52cdf 100644 --- a/cad/PrusaSlicer/files/patch-src_slic3r_Utils_Bonjour.hpp +++ b/cad/PrusaSlicer/files/patch-src_slic3r_Utils_Bonjour.hpp @@ -1,69 +1,69 @@ ---- src/slic3r/Utils/Bonjour.hpp.orig 2024-12-20 11:54:34 UTC +--- src/slic3r/Utils/Bonjour.hpp.orig 2026-05-19 09:09:17 UTC +++ src/slic3r/Utils/Bonjour.hpp @@ -13,6 +13,7 @@ #include - + #include +#include #include #include #include -@@ -155,11 +155,11 @@ class UdpSocket (public) +@@ -155,11 +156,11 @@ class UdpSocket (public) UdpSocket(Bonjour::ReplyFn replyfn , const boost::asio::ip::address& multicast_address , const boost::asio::ip::address& interface_address - , std::shared_ptr< boost::asio::io_service > io_service); + , std::shared_ptr< boost::asio::io_context > io_service); UdpSocket(Bonjour::ReplyFn replyfn , const boost::asio::ip::address& multicast_address - , std::shared_ptr< boost::asio::io_service > io_service); + , std::shared_ptr< boost::asio::io_context > io_service); void send(); void async_receive(); -@@ -172,7 +172,7 @@ class UdpSocket (public) +@@ -172,7 +173,7 @@ class UdpSocket (public) boost::asio::ip::address multicast_address; boost::asio::ip::udp::socket socket; boost::asio::ip::udp::endpoint mcast_endpoint; - std::shared_ptr< boost::asio::io_service > io_service; + std::shared_ptr< boost::asio::io_context > io_service; std::vector requests; }; -@@ -186,7 +186,7 @@ class LookupSocket : public UdpSocket (public) +@@ -186,7 +187,7 @@ class LookupSocket : public UdpSocket (public) , Bonjour::ReplyFn replyfn , const boost::asio::ip::address& multicast_address , const boost::asio::ip::address& interface_address - , std::shared_ptr< boost::asio::io_service > io_service) + , std::shared_ptr< boost::asio::io_context > io_service) : UdpSocket(replyfn, multicast_address, interface_address, io_service) , txt_keys(txt_keys) , service(service) -@@ -203,7 +203,7 @@ class LookupSocket : public UdpSocket (public) +@@ -203,7 +204,7 @@ class LookupSocket : public UdpSocket (public) , std::string protocol , Bonjour::ReplyFn replyfn , const boost::asio::ip::address& multicast_address - , std::shared_ptr< boost::asio::io_service > io_service) + , std::shared_ptr< boost::asio::io_context > io_service) : UdpSocket(replyfn, multicast_address, io_service) , txt_keys(txt_keys) , service(service) -@@ -241,7 +241,7 @@ class ResolveSocket : public UdpSocket (public) +@@ -241,7 +242,7 @@ class ResolveSocket : public UdpSocket (public) , Bonjour::ReplyFn replyfn , const boost::asio::ip::address& multicast_address , const boost::asio::ip::address& interface_address - , std::shared_ptr< boost::asio::io_service > io_service) + , std::shared_ptr< boost::asio::io_context > io_service) : UdpSocket(replyfn, multicast_address, interface_address, io_service) , hostname(hostname) -@@ -253,7 +253,7 @@ class ResolveSocket : public UdpSocket (public) +@@ -253,7 +254,7 @@ class ResolveSocket : public UdpSocket (public) ResolveSocket(const std::string& hostname , Bonjour::ReplyFn replyfn , const boost::asio::ip::address& multicast_address - , std::shared_ptr< boost::asio::io_service > io_service) + , std::shared_ptr< boost::asio::io_context > io_service) : UdpSocket(replyfn, multicast_address, io_service) , hostname(hostname) diff --git a/cad/PrusaSlicer/pkg-plist b/cad/PrusaSlicer/pkg-plist index f9eb485556db..6af5ef084a6e 100644 --- a/cad/PrusaSlicer/pkg-plist +++ b/cad/PrusaSlicer/pkg-plist @@ -1,1158 +1,11 @@ bin/prusa-gcodeviewer bin/prusa-slicer lib/OCCTWrapper.so -%%DATADIR%%/data/embossed_text.obj -%%DATADIR%%/data/hints.ini -%%DATADIR%%/data/printer_gantries/geometries.json -%%DATADIR%%/data/printer_gantries/prusa3d_coreoneL_gantry.stl -%%DATADIR%%/data/printer_gantries/prusa3d_coreone_gantry.stl -%%DATADIR%%/data/printer_gantries/prusa3d_ht90_actuator.stl -%%DATADIR%%/data/printer_gantries/prusa3d_mini_gantry.stl -%%DATADIR%%/data/printer_gantries/prusa3d_mk3s_gantry.stl -%%DATADIR%%/data/printer_gantries/prusa3d_mk4_gantry.stl -%%DATADIR%%/data/printer_gantries/prusa3d_mk4s_gantry.stl -%%DATADIR%%/data/printer_gantries/prusa3d_xl_gantry.stl -%%DATADIR%%/data/sla_support.svg -%%DATADIR%%/fonts/NotoSans-Regular.ttf -%%DATADIR%%/fonts/NotoSansCJK-Regular.ttc -%%DATADIR%%/fonts/README.txt -%%DATADIR%%/icons/Pmetal_001.png -%%DATADIR%%/icons/PrusaSlicer-gcodeviewer-mac_128px.png -%%DATADIR%%/icons/PrusaSlicer-gcodeviewer.ico -%%DATADIR%%/icons/PrusaSlicer-gcodeviewer.svg -%%DATADIR%%/icons/PrusaSlicer-gcodeviewer_128px.png -%%DATADIR%%/icons/PrusaSlicer-gcodeviewer_192px.png -%%DATADIR%%/icons/PrusaSlicer-gcodeviewer_32px.png -%%DATADIR%%/icons/PrusaSlicer-mac_128px.png -%%DATADIR%%/icons/PrusaSlicer.icns -%%DATADIR%%/icons/PrusaSlicer.ico -%%DATADIR%%/icons/PrusaSlicer.png -%%DATADIR%%/icons/PrusaSlicer.svg -%%DATADIR%%/icons/PrusaSlicer_128px.png -%%DATADIR%%/icons/PrusaSlicer_192px.png -%%DATADIR%%/icons/PrusaSlicer_192px_grayscale.png -%%DATADIR%%/icons/PrusaSlicer_192px_transparent.png -%%DATADIR%%/icons/PrusaSlicer_32px.png -%%DATADIR%%/icons/add.svg -%%DATADIR%%/icons/add_copies.svg -%%DATADIR%%/icons/add_gcode.svg -%%DATADIR%%/icons/add_modifier.svg -%%DATADIR%%/icons/add_negative.svg -%%DATADIR%%/icons/add_part.svg -%%DATADIR%%/icons/add_text_modifier.svg -%%DATADIR%%/icons/add_text_negative.svg -%%DATADIR%%/icons/add_text_part.svg -%%DATADIR%%/icons/advanced_plus.svg -%%DATADIR%%/icons/align_horizontal_center.svg -%%DATADIR%%/icons/align_horizontal_left.svg -%%DATADIR%%/icons/align_horizontal_right.svg -%%DATADIR%%/icons/align_vertical_bottom.svg -%%DATADIR%%/icons/align_vertical_center.svg -%%DATADIR%%/icons/align_vertical_top.svg -%%DATADIR%%/icons/arrange.svg -%%DATADIR%%/icons/arrange_current.svg -%%DATADIR%%/icons/attention.svg -%%DATADIR%%/icons/browse.svg -%%DATADIR%%/icons/bullet_black.png -%%DATADIR%%/icons/bullet_blue.png -%%DATADIR%%/icons/bullet_white.png -%%DATADIR%%/icons/burn.svg -%%DATADIR%%/icons/change_extruder.svg -%%DATADIR%%/icons/check_off.svg -%%DATADIR%%/icons/check_off_disabled.svg -%%DATADIR%%/icons/check_off_focused.svg -%%DATADIR%%/icons/check_on.svg -%%DATADIR%%/icons/check_on_disabled.svg -%%DATADIR%%/icons/check_on_focused.svg -%%DATADIR%%/icons/checked.svg -%%DATADIR%%/icons/cog.svg -%%DATADIR%%/icons/cog_.svg -%%DATADIR%%/icons/cog_f.svg -%%DATADIR%%/icons/cog_go.png -%%DATADIR%%/icons/collapse.svg -%%DATADIR%%/icons/collapse_btn.svg -%%DATADIR%%/icons/colorchange_add.svg -%%DATADIR%%/icons/colorchange_add_f.svg -%%DATADIR%%/icons/colorchange_add_m.svg -%%DATADIR%%/icons/colorchange_del.svg -%%DATADIR%%/icons/colorchange_del_f.svg -%%DATADIR%%/icons/compare.svg -%%DATADIR%%/icons/connect_gcode.svg -%%DATADIR%%/icons/connect_status.svg -%%DATADIR%%/icons/convert_file.svg -%%DATADIR%%/icons/cooling.svg -%%DATADIR%%/icons/copy.svg -%%DATADIR%%/icons/copy_menu.svg -%%DATADIR%%/icons/cross.svg -%%DATADIR%%/icons/cross_focus.svg -%%DATADIR%%/icons/cross_focus_large.svg -%%DATADIR%%/icons/custom-gcode_gcode.svg -%%DATADIR%%/icons/custom-gcode_measure.svg -%%DATADIR%%/icons/custom-gcode_object-info.svg -%%DATADIR%%/icons/custom-gcode_single.svg -%%DATADIR%%/icons/custom-gcode_slicing-state.svg -%%DATADIR%%/icons/custom-gcode_slicing-state_global.svg -%%DATADIR%%/icons/custom-gcode_stats.svg -%%DATADIR%%/icons/custom-gcode_vector-index.svg -%%DATADIR%%/icons/custom-gcode_vector.svg -%%DATADIR%%/icons/cut.svg -%%DATADIR%%/icons/cut_.svg -%%DATADIR%%/icons/cut_connectors.svg -%%DATADIR%%/icons/delete.svg -%%DATADIR%%/icons/delete_all.svg -%%DATADIR%%/icons/delete_all_menu.svg -%%DATADIR%%/icons/dot.svg -%%DATADIR%%/icons/dot_small.svg -%%DATADIR%%/icons/dot_white.svg -%%DATADIR%%/icons/dowel.svg -%%DATADIR%%/icons/drop_down.svg -%%DATADIR%%/icons/drop_to_bed.svg -%%DATADIR%%/icons/edit.svg -%%DATADIR%%/icons/edit_button.svg -%%DATADIR%%/icons/edit_button_pressed.svg -%%DATADIR%%/icons/edit_gcode.svg -%%DATADIR%%/icons/edit_gcode_f.svg -%%DATADIR%%/icons/edit_layers_all.svg -%%DATADIR%%/icons/edit_layers_some.svg -%%DATADIR%%/icons/edit_uni.svg -%%DATADIR%%/icons/editor.svg -%%DATADIR%%/icons/editor_menu.svg -%%DATADIR%%/icons/eject_sd.svg -%%DATADIR%%/icons/empty.svg -%%DATADIR%%/icons/equal.svg -%%DATADIR%%/icons/error_tick.svg -%%DATADIR%%/icons/error_tick_f.svg -%%DATADIR%%/icons/exclamation.svg -%%DATADIR%%/icons/exclamation_manifold.svg -%%DATADIR%%/icons/exit.svg -%%DATADIR%%/icons/expand_btn.svg -%%DATADIR%%/icons/export_config.svg -%%DATADIR%%/icons/export_config_bundle.svg -%%DATADIR%%/icons/export_gcode.svg -%%DATADIR%%/icons/export_plater.svg -%%DATADIR%%/icons/export_to_sd.svg -%%DATADIR%%/icons/eye_closed.svg -%%DATADIR%%/icons/eye_open.svg -%%DATADIR%%/icons/fdm_supports.svg -%%DATADIR%%/icons/fdm_supports_.svg -%%DATADIR%%/icons/flag_green.svg -%%DATADIR%%/icons/flag_red.svg -%%DATADIR%%/icons/funnel.svg -%%DATADIR%%/icons/fuzzy_skin.svg -%%DATADIR%%/icons/fuzzy_skin_painting.svg -%%DATADIR%%/icons/fuzzy_skin_painting_.svg -%%DATADIR%%/icons/gcode.icns -%%DATADIR%%/icons/hollow.svg -%%DATADIR%%/icons/hollowing.svg -%%DATADIR%%/icons/horizontal_hide.svg -%%DATADIR%%/icons/horizontal_show.svg -%%DATADIR%%/icons/import_config.svg -%%DATADIR%%/icons/import_config_bundle.svg -%%DATADIR%%/icons/import_plater.svg -%%DATADIR%%/icons/infill.svg -%%DATADIR%%/icons/info.svg -%%DATADIR%%/icons/instance_add.svg -%%DATADIR%%/icons/instance_remove.svg -%%DATADIR%%/icons/ironing.svg -%%DATADIR%%/icons/layers.svg -%%DATADIR%%/icons/layers_white.svg -%%DATADIR%%/icons/legend_cog.svg -%%DATADIR%%/icons/legend_colorchanges.svg -%%DATADIR%%/icons/legend_customgcodes.svg -%%DATADIR%%/icons/legend_deretract.svg -%%DATADIR%%/icons/legend_pauseprints.svg -%%DATADIR%%/icons/legend_retract.svg -%%DATADIR%%/icons/legend_seams.svg -%%DATADIR%%/icons/legend_shells.svg -%%DATADIR%%/icons/legend_toolchanges.svg -%%DATADIR%%/icons/legend_toolmarker.svg -%%DATADIR%%/icons/legend_travel.svg -%%DATADIR%%/icons/legend_wipe.svg -%%DATADIR%%/icons/lock.svg -%%DATADIR%%/icons/lock_closed.svg -%%DATADIR%%/icons/lock_closed_f.svg -%%DATADIR%%/icons/lock_closed_white.svg -%%DATADIR%%/icons/lock_open.svg -%%DATADIR%%/icons/lock_open_f.svg -%%DATADIR%%/icons/lock_open_sys.svg -%%DATADIR%%/icons/login.svg -%%DATADIR%%/icons/logout.svg -%%DATADIR%%/icons/make_bold.svg -%%DATADIR%%/icons/make_italic.svg -%%DATADIR%%/icons/make_unbold.svg -%%DATADIR%%/icons/make_unitalic.svg -%%DATADIR%%/icons/mark_X.svg -%%DATADIR%%/icons/mark_Y.svg -%%DATADIR%%/icons/mark_Z.svg -%%DATADIR%%/icons/measure.svg -%%DATADIR%%/icons/mirroring_off.svg -%%DATADIR%%/icons/mirroring_on.svg -%%DATADIR%%/icons/mirroring_transparent.svg -%%DATADIR%%/icons/mmu_segmentation.svg -%%DATADIR%%/icons/mmu_segmentation_.svg -%%DATADIR%%/icons/mode.svg -%%DATADIR%%/icons/mode_advanced.svg -%%DATADIR%%/icons/mode_expert.svg -%%DATADIR%%/icons/mode_simple.svg -%%DATADIR%%/icons/move.svg -%%DATADIR%%/icons/not_equal.svg -%%DATADIR%%/icons/note.svg -%%DATADIR%%/icons/notification_cancel.svg -%%DATADIR%%/icons/notification_cancel_hover.svg -%%DATADIR%%/icons/notification_clippy.svg -%%DATADIR%%/icons/notification_close.svg -%%DATADIR%%/icons/notification_close_hover.svg -%%DATADIR%%/icons/notification_documentation.svg -%%DATADIR%%/icons/notification_documentation_hover.svg -%%DATADIR%%/icons/notification_eject_sd.svg -%%DATADIR%%/icons/notification_eject_sd_hover.svg -%%DATADIR%%/icons/notification_error.svg -%%DATADIR%%/icons/notification_info.svg -%%DATADIR%%/icons/notification_minimalize.svg -%%DATADIR%%/icons/notification_minimalize_hover.svg -%%DATADIR%%/icons/notification_open.svg -%%DATADIR%%/icons/notification_open_hover.svg -%%DATADIR%%/icons/notification_pause.svg -%%DATADIR%%/icons/notification_pause_hover.svg -%%DATADIR%%/icons/notification_play.svg -%%DATADIR%%/icons/notification_play_hover.svg -%%DATADIR%%/icons/notification_preferences.svg -%%DATADIR%%/icons/notification_preferences_hover.svg -%%DATADIR%%/icons/notification_right.svg -%%DATADIR%%/icons/notification_right_hover.svg -%%DATADIR%%/icons/notification_warning.svg -%%DATADIR%%/icons/notification_warning_grey.svg -%%DATADIR%%/icons/number_of_copies.svg -%%DATADIR%%/icons/numbers.png -%%DATADIR%%/icons/objlist_info.svg -%%DATADIR%%/icons/open.svg -%%DATADIR%%/icons/open_browser.svg -%%DATADIR%%/icons/output+page_white.svg -%%DATADIR%%/icons/pad.svg -%%DATADIR%%/icons/paste.svg -%%DATADIR%%/icons/paste_menu.svg -%%DATADIR%%/icons/pause_print.svg -%%DATADIR%%/icons/pause_print_f.svg -%%DATADIR%%/icons/place.svg -%%DATADIR%%/icons/plater.svg -%%DATADIR%%/icons/plug.svg -%%DATADIR%%/icons/preview.svg -%%DATADIR%%/icons/preview_menu.svg -%%DATADIR%%/icons/print_finished.svg -%%DATADIR%%/icons/print_idle.svg -%%DATADIR%%/icons/print_running.svg -%%DATADIR%%/icons/printer.svg -%%DATADIR%%/icons/printer_available.svg -%%DATADIR%%/icons/printer_busy.svg -%%DATADIR%%/icons/printer_offline.svg -%%DATADIR%%/icons/printer_placeholder.png -%%DATADIR%%/icons/printer_white.svg -%%DATADIR%%/icons/question.svg -%%DATADIR%%/icons/re_slice.svg -%%DATADIR%%/icons/redo.svg -%%DATADIR%%/icons/redo_menu.svg -%%DATADIR%%/icons/redo_toolbar.svg -%%DATADIR%%/icons/reflection_x.svg -%%DATADIR%%/icons/reflection_y.svg -%%DATADIR%%/icons/refresh.svg -%%DATADIR%%/icons/remove.svg -%%DATADIR%%/icons/remove_copies.svg -%%DATADIR%%/icons/remove_menu.svg -%%DATADIR%%/icons/resin.svg -%%DATADIR%%/icons/revert_all_.svg -%%DATADIR%%/icons/rotate.svg -%%DATADIR%%/icons/save.svg -%%DATADIR%%/icons/scalar_param.svg -%%DATADIR%%/icons/scale.svg -%%DATADIR%%/icons/seam.svg -%%DATADIR%%/icons/seam_.svg -%%DATADIR%%/icons/search.svg -%%DATADIR%%/icons/search_.svg -%%DATADIR%%/icons/search_blink.svg -%%DATADIR%%/icons/search_gray.svg -%%DATADIR%%/icons/set_separate_obj.svg -%%DATADIR%%/icons/settings.svg -%%DATADIR%%/icons/shape_gallery.svg -%%DATADIR%%/icons/sinking.svg -%%DATADIR%%/icons/skirt+brim.svg -%%DATADIR%%/icons/sla_printer.svg -%%DATADIR%%/icons/sla_printer_available.svg -%%DATADIR%%/icons/sla_printer_busy.svg -%%DATADIR%%/icons/sla_printer_offline.svg -%%DATADIR%%/icons/sla_supports.svg -%%DATADIR%%/icons/sla_view_original.svg -%%DATADIR%%/icons/sla_view_processed.svg -%%DATADIR%%/icons/slice_all.svg -%%DATADIR%%/icons/snap.svg -%%DATADIR%%/icons/sphere_blueish.svg -%%DATADIR%%/icons/sphere_cyan.svg -%%DATADIR%%/icons/sphere_lightgray.svg -%%DATADIR%%/icons/sphere_orange.svg -%%DATADIR%%/icons/sphere_redish.svg -%%DATADIR%%/icons/spin_dec.svg -%%DATADIR%%/icons/spin_dec_act.svg -%%DATADIR%%/icons/spin_inc.svg -%%DATADIR%%/icons/spin_inc_act.svg -%%DATADIR%%/icons/splashscreen-gcodepreview.jpg -%%DATADIR%%/icons/splashscreen.jpg -%%DATADIR%%/icons/split_object_SMALL.svg -%%DATADIR%%/icons/split_objects.svg -%%DATADIR%%/icons/split_parts.svg -%%DATADIR%%/icons/split_parts_SMALL.svg -%%DATADIR%%/icons/spool.svg -%%DATADIR%%/icons/stl.icns -%%DATADIR%%/icons/support.svg -%%DATADIR%%/icons/support_blocker.svg -%%DATADIR%%/icons/support_enforcer.svg -%%DATADIR%%/icons/support_structure.svg -%%DATADIR%%/icons/support_structure_invisible.svg -%%DATADIR%%/icons/svg_modifier.svg -%%DATADIR%%/icons/svg_negative.svg -%%DATADIR%%/icons/svg_part.svg -%%DATADIR%%/icons/switch_presets.svg -%%DATADIR%%/icons/test.svg -%%DATADIR%%/icons/thumb_down.svg -%%DATADIR%%/icons/thumb_left.svg -%%DATADIR%%/icons/thumb_right.svg -%%DATADIR%%/icons/thumb_up.svg -%%DATADIR%%/icons/tick_mark.svg -%%DATADIR%%/icons/time.svg -%%DATADIR%%/icons/timer_dot.svg -%%DATADIR%%/icons/timer_dot_empty.svg -%%DATADIR%%/icons/toggle_off.svg -%%DATADIR%%/icons/toggle_on.svg -%%DATADIR%%/icons/toolbar_arrow.svg -%%DATADIR%%/icons/toolbar_arrow_2.svg -%%DATADIR%%/icons/toolbar_background.png -%%DATADIR%%/icons/undo.svg -%%DATADIR%%/icons/undo_f.svg -%%DATADIR%%/icons/undo_menu.svg -%%DATADIR%%/icons/undo_toolbar.svg -%%DATADIR%%/icons/upload_queue.svg -%%DATADIR%%/icons/user.svg -%%DATADIR%%/icons/user_mask.svg -%%DATADIR%%/icons/vector_filament_param.svg -%%DATADIR%%/icons/vector_param.svg -%%DATADIR%%/icons/wrench.svg -%%DATADIR%%/icons/wrench_white.svg -%%DATADIR%%/localization/PrusaSlicer.pot -%%DATADIR%%/localization/be/PrusaSlicer.mo -%%DATADIR%%/localization/be/PrusaSlicer_be.po -%%DATADIR%%/localization/ca/PrusaSlicer.mo -%%DATADIR%%/localization/ca/PrusaSlicer_ca.po -%%DATADIR%%/localization/cs/PrusaSlicer.mo -%%DATADIR%%/localization/cs/PrusaSlicer_cs.po -%%DATADIR%%/localization/de/PrusaSlicer.mo -%%DATADIR%%/localization/de/PrusaSlicer_de.po -%%DATADIR%%/localization/en/PrusaSlicer.mo -%%DATADIR%%/localization/en/PrusaSlicer_en.po -%%DATADIR%%/localization/es/PrusaSlicer.mo -%%DATADIR%%/localization/es/PrusaSlicer_es.po -%%DATADIR%%/localization/fi/PrusaSlicer.mo -%%DATADIR%%/localization/fi/PrusaSlicer_fi.po -%%DATADIR%%/localization/fr/PrusaSlicer.mo -%%DATADIR%%/localization/fr/PrusaSlicer_fr.po -%%DATADIR%%/localization/hu/PrusaSlicer.mo -%%DATADIR%%/localization/hu/PrusaSlicer_hu.po -%%DATADIR%%/localization/it/PrusaSlicer.mo -%%DATADIR%%/localization/it/PrusaSlicer_it.po -%%DATADIR%%/localization/ja/PrusaSlicer.mo -%%DATADIR%%/localization/ja/PrusaSlicer_ja.po -%%DATADIR%%/localization/ko/PrusaSlicer.mo -%%DATADIR%%/localization/ko/PrusaSlicer_ko_KR.po -%%DATADIR%%/localization/ko_KR/PrusaSlicer.mo -%%DATADIR%%/localization/ko_KR/PrusaSlicer_ko.po -%%DATADIR%%/localization/ko_KR/PrusaSlicer_ko_KR.mo -%%DATADIR%%/localization/ko_KR/PrusaSlicer_ko_KR.po -%%DATADIR%%/localization/list.txt -%%DATADIR%%/localization/nl/PrusaSlicer.mo -%%DATADIR%%/localization/nl/PrusaSlicer_nl.po -%%DATADIR%%/localization/pl/PrusaSlicer.mo -%%DATADIR%%/localization/pl/PrusaSlicer_pl.po -%%DATADIR%%/localization/pt_BR/PrusaSlicer.mo -%%DATADIR%%/localization/pt_BR/PrusaSlicer_pt_BR.po -%%DATADIR%%/localization/ru/PrusaSlicer.mo -%%DATADIR%%/localization/ru/PrusaSlicer_ru.po -%%DATADIR%%/localization/sl/PrusaSlicer.mo -%%DATADIR%%/localization/sl/PrusaSlicer.po -%%DATADIR%%/localization/tr/PrusaSlicer.mo -%%DATADIR%%/localization/tr/PrusaSlicer_tr.po -%%DATADIR%%/localization/uk/PrusaSlicer.mo -%%DATADIR%%/localization/uk/PrusaSlicer_uk.po -%%DATADIR%%/localization/wx_locale/af.po -%%DATADIR%%/localization/wx_locale/an.po -%%DATADIR%%/localization/wx_locale/ar.po -%%DATADIR%%/localization/wx_locale/be.po -%%DATADIR%%/localization/wx_locale/ca.po -%%DATADIR%%/localization/wx_locale/ca@valencia.po -%%DATADIR%%/localization/wx_locale/cs.po -%%DATADIR%%/localization/wx_locale/da.po -%%DATADIR%%/localization/wx_locale/de.po -%%DATADIR%%/localization/wx_locale/el.po -%%DATADIR%%/localization/wx_locale/en.mo -%%DATADIR%%/localization/wx_locale/en.po -%%DATADIR%%/localization/wx_locale/es.po -%%DATADIR%%/localization/wx_locale/eu.po -%%DATADIR%%/localization/wx_locale/fa_IR.po -%%DATADIR%%/localization/wx_locale/fi.po -%%DATADIR%%/localization/wx_locale/fr.po -%%DATADIR%%/localization/wx_locale/gl_ES.po -%%DATADIR%%/localization/wx_locale/hi.po -%%DATADIR%%/localization/wx_locale/hr.po -%%DATADIR%%/localization/wx_locale/hu.po -%%DATADIR%%/localization/wx_locale/id.po -%%DATADIR%%/localization/wx_locale/it.po -%%DATADIR%%/localization/wx_locale/ja.po -%%DATADIR%%/localization/wx_locale/ko.po -%%DATADIR%%/localization/wx_locale/ko_KR.po -%%DATADIR%%/localization/wx_locale/lt.po -%%DATADIR%%/localization/wx_locale/lv.po -%%DATADIR%%/localization/wx_locale/ms.po -%%DATADIR%%/localization/wx_locale/nb.po -%%DATADIR%%/localization/wx_locale/ne.po -%%DATADIR%%/localization/wx_locale/nl.po -%%DATADIR%%/localization/wx_locale/pl.po -%%DATADIR%%/localization/wx_locale/pt.po -%%DATADIR%%/localization/wx_locale/pt_BR.po -%%DATADIR%%/localization/wx_locale/ro.po -%%DATADIR%%/localization/wx_locale/ru.po -%%DATADIR%%/localization/wx_locale/sk.po -%%DATADIR%%/localization/wx_locale/sl.po -%%DATADIR%%/localization/wx_locale/sq.po -%%DATADIR%%/localization/wx_locale/sv.po -%%DATADIR%%/localization/wx_locale/ta.po -%%DATADIR%%/localization/wx_locale/tr.po -%%DATADIR%%/localization/wx_locale/uk.po -%%DATADIR%%/localization/wx_locale/vi.po -%%DATADIR%%/localization/wx_locale/zh_CN.po -%%DATADIR%%/localization/wx_locale/zh_TW.po -%%DATADIR%%/localization/zh_CN/PrusaSlicer.mo -%%DATADIR%%/localization/zh_CN/PrusaSlicer_zh_CN.po -%%DATADIR%%/localization/zh_TW/PrusaSlicer.mo -%%DATADIR%%/localization/zh_TW/PrusaSlicer_zh_TW.po -%%DATADIR%%/profiles/Anker.idx -%%DATADIR%%/profiles/Anker.ini -%%DATADIR%%/profiles/Anker/M5-bed.stl -%%DATADIR%%/profiles/Anker/M5-texture.svg -%%DATADIR%%/profiles/Anker/M5-texture_v2.svg -%%DATADIR%%/profiles/Anker/M5C-bed.stl -%%DATADIR%%/profiles/Anker/M5C-texture.svg -%%DATADIR%%/profiles/Anker/M5C-texture_v2.svg -%%DATADIR%%/profiles/Anker/M5C_thumbnail.png -%%DATADIR%%/profiles/Anker/M5C_thumbnail_v2.png -%%DATADIR%%/profiles/Anker/M5_thumbnail.png -%%DATADIR%%/profiles/Anker/M5_thumbnail_v2.png -%%DATADIR%%/profiles/Anycubic.idx -%%DATADIR%%/profiles/Anycubic.ini -%%DATADIR%%/profiles/Anycubic/4MAXPRO20_bed.stl -%%DATADIR%%/profiles/Anycubic/4MAXPRO20_texture.svg -%%DATADIR%%/profiles/Anycubic/4MAXPRO20_thumbnail.png -%%DATADIR%%/profiles/Anycubic/AK.png -%%DATADIR%%/profiles/Anycubic/AK.svg -%%DATADIR%%/profiles/Anycubic/AKLP_Bed.stl -%%DATADIR%%/profiles/Anycubic/AKLP_thumbnail.png -%%DATADIR%%/profiles/Anycubic/AK_Bed.stl -%%DATADIR%%/profiles/Anycubic/AK_thumbnail.png -%%DATADIR%%/profiles/Anycubic/I3MEGAS_thumbnail.png -%%DATADIR%%/profiles/Anycubic/I3MEGA_thumbnail.png -%%DATADIR%%/profiles/Anycubic/MEGA0_thumbnail.png -%%DATADIR%%/profiles/Anycubic/PHOTON MONO SE_thumbnail.png -%%DATADIR%%/profiles/Anycubic/PHOTON MONO X 6K_thumbnail.png -%%DATADIR%%/profiles/Anycubic/PHOTON MONO X_thumbnail.png -%%DATADIR%%/profiles/Anycubic/PHOTON MONO_thumbnail.png -%%DATADIR%%/profiles/Anycubic/PREDATOR_thumbnail.png -%%DATADIR%%/profiles/Anycubic/i3megas.svg -%%DATADIR%%/profiles/Anycubic/i3megas_bed.stl -%%DATADIR%%/profiles/Anycubic/mega0.svg -%%DATADIR%%/profiles/Anycubic/mega0_bed.stl -%%DATADIR%%/profiles/AnycubicSLA.idx -%%DATADIR%%/profiles/AnycubicSLA.ini -%%DATADIR%%/profiles/AnycubicSLA/PHOTON MONO SE_thumbnail.png -%%DATADIR%%/profiles/AnycubicSLA/PHOTON MONO X 6K_thumbnail.png -%%DATADIR%%/profiles/AnycubicSLA/PHOTON MONO X_thumbnail.png -%%DATADIR%%/profiles/AnycubicSLA/PHOTON MONO_thumbnail.png -%%DATADIR%%/profiles/ArchiveRepositoryManifest.json -%%DATADIR%%/profiles/Artillery.idx -%%DATADIR%%/profiles/Artillery.ini -%%DATADIR%%/profiles/Artillery/Genius_thumbnail.png -%%DATADIR%%/profiles/Artillery/Hornet_thumbnail.png -%%DATADIR%%/profiles/Artillery/X1_thumbnail.png -%%DATADIR%%/profiles/Artillery/X3 Plus_thumbnail.png -%%DATADIR%%/profiles/Artillery/X3 Pro_thumbnail.png -%%DATADIR%%/profiles/Artillery/X4 Max_thumbnail.png -%%DATADIR%%/profiles/Artillery/X4 Plus_thumbnail.png -%%DATADIR%%/profiles/Artillery/X4 Pro_thumbnail.png -%%DATADIR%%/profiles/Artillery/bed-genius.png -%%DATADIR%%/profiles/Artillery/bed-genius.stl -%%DATADIR%%/profiles/Artillery/bed-hornet.png -%%DATADIR%%/profiles/Artillery/bed-hornet.stl -%%DATADIR%%/profiles/Artillery/bed-x1.png -%%DATADIR%%/profiles/Artillery/bed-x1.stl -%%DATADIR%%/profiles/Artillery/bed-x3-plus.stl -%%DATADIR%%/profiles/Artillery/bed-x3-pro.stl -%%DATADIR%%/profiles/Artillery/bed-x4-max.stl -%%DATADIR%%/profiles/Artillery/bed-x4-plus.stl -%%DATADIR%%/profiles/Artillery/bed-x4-pro.stl -%%DATADIR%%/profiles/BIBO.idx -%%DATADIR%%/profiles/BIBO.ini -%%DATADIR%%/profiles/BIBO/BIBO2.svg -%%DATADIR%%/profiles/BIBO/BIBO2_bed.stl -%%DATADIR%%/profiles/BIBO/BIBO2_thumbnail.png -%%DATADIR%%/profiles/BIQU.idx -%%DATADIR%%/profiles/BIQU.ini -%%DATADIR%%/profiles/BIQU/BIQUBX_thumbnail.png -%%DATADIR%%/profiles/BIQU/BX_Bed.stl -%%DATADIR%%/profiles/BIQU/BX_Texture.png -%%DATADIR%%/profiles/CocoaPress.idx -%%DATADIR%%/profiles/CocoaPress.ini -%%DATADIR%%/profiles/CocoaPress/CocoaPress_MiniChef.png -%%DATADIR%%/profiles/CocoaPress/minichef_bed.stl -%%DATADIR%%/profiles/CocoaPress/minichef_texture.svg -%%DATADIR%%/profiles/Creality.idx -%%DATADIR%%/profiles/Creality.ini -%%DATADIR%%/profiles/Creality/CR10MAX_thumbnail.png -%%DATADIR%%/profiles/Creality/CR10MINI_thumbnail.png -%%DATADIR%%/profiles/Creality/CR10S4_thumbnail.png -%%DATADIR%%/profiles/Creality/CR10S5_thumbnail.png -%%DATADIR%%/profiles/Creality/CR10SMARTPRO_thumbnail.png -%%DATADIR%%/profiles/Creality/CR10SMART_thumbnail.png -%%DATADIR%%/profiles/Creality/CR10SPROV2_thumbnail.png -%%DATADIR%%/profiles/Creality/CR10SPRO_thumbnail.png -%%DATADIR%%/profiles/Creality/CR10S_thumbnail.png -%%DATADIR%%/profiles/Creality/CR10V2_thumbnail.png -%%DATADIR%%/profiles/Creality/CR10V3_thumbnail.png -%%DATADIR%%/profiles/Creality/CR10_thumbnail.png -%%DATADIR%%/profiles/Creality/CR200B_thumbnail.png -%%DATADIR%%/profiles/Creality/CR20PRO_thumbnail.png -%%DATADIR%%/profiles/Creality/CR20_thumbnail.png -%%DATADIR%%/profiles/Creality/CR5PROH_thumbnail.png -%%DATADIR%%/profiles/Creality/CR5PRO_thumbnail.png -%%DATADIR%%/profiles/Creality/CR6MAX_thumbnail.png -%%DATADIR%%/profiles/Creality/CR6SE_thumbnail.png -%%DATADIR%%/profiles/Creality/CR8_thumbnail.png -%%DATADIR%%/profiles/Creality/CRXPRO_thumbnail.png -%%DATADIR%%/profiles/Creality/CRX_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER2PRO_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER2_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER3BLTOUCH_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER3MAXNEO_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER3MAX_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER3NEO_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER3PRO_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER3S1PLUS_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER3S1PRO_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER3S1_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER3V2NEO_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER3V2_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER3_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER4_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER5PLUS_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER5PRO_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER5S1_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER5_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER6_thumbnail.png -%%DATADIR%%/profiles/Creality/ENDER7_thumbnail.png -%%DATADIR%%/profiles/Creality/SERMOOND1_thumbnail.png -%%DATADIR%%/profiles/Creality/SERMOONV1PRO_thumbnail.png -%%DATADIR%%/profiles/Creality/SERMOONV1_thumbnail.png -%%DATADIR%%/profiles/Creality/cr10.svg -%%DATADIR%%/profiles/Creality/cr10_bed.stl -%%DATADIR%%/profiles/Creality/cr10max.svg -%%DATADIR%%/profiles/Creality/cr10max_bed.stl -%%DATADIR%%/profiles/Creality/cr10mini.svg -%%DATADIR%%/profiles/Creality/cr10mini_bed.stl -%%DATADIR%%/profiles/Creality/cr10s4.svg -%%DATADIR%%/profiles/Creality/cr10s4_bed.stl -%%DATADIR%%/profiles/Creality/cr10s5.svg -%%DATADIR%%/profiles/Creality/cr10s5_bed.stl -%%DATADIR%%/profiles/Creality/cr10spro.svg -%%DATADIR%%/profiles/Creality/cr10v2_bed.stl -%%DATADIR%%/profiles/Creality/cr20.svg -%%DATADIR%%/profiles/Creality/cr200b.svg -%%DATADIR%%/profiles/Creality/cr200b_bed.stl -%%DATADIR%%/profiles/Creality/cr5pro.svg -%%DATADIR%%/profiles/Creality/cr5pro_bed.stl -%%DATADIR%%/profiles/Creality/cr6se.svg -%%DATADIR%%/profiles/Creality/cr6se_bed.stl -%%DATADIR%%/profiles/Creality/cr8.svg -%%DATADIR%%/profiles/Creality/cr8_bed.stl -%%DATADIR%%/profiles/Creality/ender2.svg -%%DATADIR%%/profiles/Creality/ender2_bed.stl -%%DATADIR%%/profiles/Creality/ender2pro.svg -%%DATADIR%%/profiles/Creality/ender2pro_bed.stl -%%DATADIR%%/profiles/Creality/ender3.svg -%%DATADIR%%/profiles/Creality/ender3_bed.stl -%%DATADIR%%/profiles/Creality/ender3v2.svg -%%DATADIR%%/profiles/Creality/ender3v2_bed.stl -%%DATADIR%%/profiles/Creality/ender5plus.svg -%%DATADIR%%/profiles/Creality/ender5plus_bed.stl -%%DATADIR%%/profiles/Creality/ender6.svg -%%DATADIR%%/profiles/Creality/ender6_bed.stl -%%DATADIR%%/profiles/Creality/ender7.svg -%%DATADIR%%/profiles/Creality/ender7_bed.stl -%%DATADIR%%/profiles/Creality/sermoond1.svg -%%DATADIR%%/profiles/Creality/sermoond1_bed.stl -%%DATADIR%%/profiles/Creality/sermoonv1.svg -%%DATADIR%%/profiles/Creality/sermoonv1_bed.stl -%%DATADIR%%/profiles/E2D.idx -%%DATADIR%%/profiles/E2D.ini -%%DATADIR%%/profiles/Elegoo.idx -%%DATADIR%%/profiles/Elegoo.ini -%%DATADIR%%/profiles/Elegoo/NEPTUNE1_thumbnail.png -%%DATADIR%%/profiles/Elegoo/NEPTUNE2D_thumbnail.png -%%DATADIR%%/profiles/Elegoo/NEPTUNE2S_thumbnail.png -%%DATADIR%%/profiles/Elegoo/NEPTUNE2_thumbnail.png -%%DATADIR%%/profiles/Elegoo/NEPTUNE3MAX_thumbnail.png -%%DATADIR%%/profiles/Elegoo/NEPTUNE3PLUS_thumbnail.png -%%DATADIR%%/profiles/Elegoo/NEPTUNE3PRO_thumbnail.png -%%DATADIR%%/profiles/Elegoo/NEPTUNE3_thumbnail.png -%%DATADIR%%/profiles/Elegoo/NEPTUNEX_thumbnail.png -%%DATADIR%%/profiles/FLSun.idx -%%DATADIR%%/profiles/FLSun.ini -%%DATADIR%%/profiles/FLSun/Q5.svg -%%DATADIR%%/profiles/FLSun/Q5_bed.stl -%%DATADIR%%/profiles/FLSun/Q5_thumbnail.png -%%DATADIR%%/profiles/FLSun/QQSP.svg -%%DATADIR%%/profiles/FLSun/QQSP_bed.stl -%%DATADIR%%/profiles/FLSun/QQSP_thumbnail.png -%%DATADIR%%/profiles/Geeetech.idx -%%DATADIR%%/profiles/Geeetech.ini -%%DATADIR%%/profiles/Geeetech/105x105.stl -%%DATADIR%%/profiles/Geeetech/105x105.svg -%%DATADIR%%/profiles/Geeetech/125X130.stl -%%DATADIR%%/profiles/Geeetech/125x130.svg -%%DATADIR%%/profiles/Geeetech/150x150.stl -%%DATADIR%%/profiles/Geeetech/150x150.svg -%%DATADIR%%/profiles/Geeetech/160x160.stl -%%DATADIR%%/profiles/Geeetech/160x160.svg -%%DATADIR%%/profiles/Geeetech/180X150.stl -%%DATADIR%%/profiles/Geeetech/180x150.svg -%%DATADIR%%/profiles/Geeetech/200x200.stl -%%DATADIR%%/profiles/Geeetech/200x200.svg -%%DATADIR%%/profiles/Geeetech/220x220.stl -%%DATADIR%%/profiles/Geeetech/220x220.svg -%%DATADIR%%/profiles/Geeetech/250x250.stl -%%DATADIR%%/profiles/Geeetech/250x250.svg -%%DATADIR%%/profiles/Geeetech/255x255.stl -%%DATADIR%%/profiles/Geeetech/255x255.svg -%%DATADIR%%/profiles/Geeetech/300x180.stl -%%DATADIR%%/profiles/Geeetech/300x180.svg -%%DATADIR%%/profiles/Geeetech/320x320.stl -%%DATADIR%%/profiles/Geeetech/320x320.svg -%%DATADIR%%/profiles/Geeetech/A10M_thumbnail.png -%%DATADIR%%/profiles/Geeetech/A10Pro_thumbnail.png -%%DATADIR%%/profiles/Geeetech/A10T_thumbnail.png -%%DATADIR%%/profiles/Geeetech/A20M_thumbnail.png -%%DATADIR%%/profiles/Geeetech/A20T_thumbnail.png -%%DATADIR%%/profiles/Geeetech/A20_thumbnail.png -%%DATADIR%%/profiles/Geeetech/A30M_thumbnail.png -%%DATADIR%%/profiles/Geeetech/A30Pro_thumbnail.png -%%DATADIR%%/profiles/Geeetech/A30T_thumbnail.png -%%DATADIR%%/profiles/Geeetech/E180_thumbnail.png -%%DATADIR%%/profiles/Geeetech/GiantArmD200_thumbnail.png -%%DATADIR%%/profiles/Geeetech/I3ProB_thumbnail.png -%%DATADIR%%/profiles/Geeetech/I3ProC_thumbnail.png -%%DATADIR%%/profiles/Geeetech/I3ProW_thumbnail.png -%%DATADIR%%/profiles/Geeetech/M1.svg -%%DATADIR%%/profiles/Geeetech/M1_thumbnail.png -%%DATADIR%%/profiles/Geeetech/MeCreator2_thumbnail.png -%%DATADIR%%/profiles/Geeetech/MeCreator_thumbnail.png -%%DATADIR%%/profiles/Geeetech/MeDucer_thumbnail.png -%%DATADIR%%/profiles/Geeetech/MizarM_thumbnail.png -%%DATADIR%%/profiles/Geeetech/MizarMax_thumbnail.png -%%DATADIR%%/profiles/Geeetech/MizarPro_thumbnail.png -%%DATADIR%%/profiles/Geeetech/MizarS_thumbnail.png -%%DATADIR%%/profiles/Geeetech/Mizar_thumbnail.png -%%DATADIR%%/profiles/Geeetech/ThunderPro_thumbnail.png -%%DATADIR%%/profiles/Geeetech/Thunder_thumbnail.png -%%DATADIR%%/profiles/HartSmartProducts.idx -%%DATADIR%%/profiles/HartSmartProducts.ini -%%DATADIR%%/profiles/HartSmartProducts/HSP1-I Duplicator Mode_thumbnail.png -%%DATADIR%%/profiles/HartSmartProducts/HSP1-I_thumbnail.png -%%DATADIR%%/profiles/HartSmartProducts/hsp1_i.svg -%%DATADIR%%/profiles/HartSmartProducts/hsp1_i_bed.stl -%%DATADIR%%/profiles/HartSmartProducts/hsp1_i_duplicator.svg -%%DATADIR%%/profiles/HartSmartProducts/hsp1_i_duplicator_bed.stl -%%DATADIR%%/profiles/INAT.idx -%%DATADIR%%/profiles/INAT.ini -%%DATADIR%%/profiles/INAT/PROTON_XE750_thumbnail.png -%%DATADIR%%/profiles/INAT/PROTON_X_RAIL_thumbnail.png -%%DATADIR%%/profiles/INAT/PROTON_X_ROD_thumbnail.png -%%DATADIR%%/profiles/Infinity3D.idx -%%DATADIR%%/profiles/Infinity3D.ini -%%DATADIR%%/profiles/Infinity3D/DEV-200_thumbnail.png -%%DATADIR%%/profiles/Infinity3D/DEV-350_thumbnail.png -%%DATADIR%%/profiles/Infinity3D/DEV_200_bed.stl -%%DATADIR%%/profiles/Infinity3D/DEV_200_texture.svg -%%DATADIR%%/profiles/Infinity3D/DEV_350_bed.stl -%%DATADIR%%/profiles/Infinity3D/DEV_350_texture.svg -%%DATADIR%%/profiles/Jubilee.idx -%%DATADIR%%/profiles/Jubilee.ini -%%DATADIR%%/profiles/Jubilee/Jubilee_bed.stl -%%DATADIR%%/profiles/Jubilee/Jubilee_texture.svg -%%DATADIR%%/profiles/Jubilee/Jubilee_thumbnail.png -%%DATADIR%%/profiles/LNL3D.idx -%%DATADIR%%/profiles/LNL3D.ini -%%DATADIR%%/profiles/LNL3D/LNL3D_D3_V2_bed.stl -%%DATADIR%%/profiles/LNL3D/LNL3D_D3_V2_texture.svg -%%DATADIR%%/profiles/LNL3D/LNL3D_D3_V2_thumbnail.png -%%DATADIR%%/profiles/LNL3D/LNL3D_D3_VULCAN_bed.stl -%%DATADIR%%/profiles/LNL3D/LNL3D_D3_VULCAN_texture.svg -%%DATADIR%%/profiles/LNL3D/LNL3D_D3_VULCAN_thumbnail.png -%%DATADIR%%/profiles/LNL3D/LNL3D_D3_bed.stl -%%DATADIR%%/profiles/LNL3D/LNL3D_D3_texture.svg -%%DATADIR%%/profiles/LNL3D/LNL3D_D3_thumbnail.png -%%DATADIR%%/profiles/LNL3D/LNL3D_D5_bed.stl -%%DATADIR%%/profiles/LNL3D/LNL3D_D5_texture.svg -%%DATADIR%%/profiles/LNL3D/LNL3D_D5_thumbnail.png -%%DATADIR%%/profiles/LNL3D/LNL3D_D6_bed.stl -%%DATADIR%%/profiles/LNL3D/LNL3D_D6_texture.svg -%%DATADIR%%/profiles/LNL3D/LNL3D_D6_thumbnail.png -%%DATADIR%%/profiles/LulzBot.idx -%%DATADIR%%/profiles/LulzBot.ini -%%DATADIR%%/profiles/LulzBot/MINI_AERO_thumbnail.png -%%DATADIR%%/profiles/LulzBot/TAZ6_AERO_thumbnail.png -%%DATADIR%%/profiles/LulzBot/TAZ_WORKHORSE_thumbnail.png -%%DATADIR%%/profiles/MakerGear.idx -%%DATADIR%%/profiles/MakerGear.ini -%%DATADIR%%/profiles/MakerGear/M2_M3.stl -%%DATADIR%%/profiles/MakerGear/M2_M3.svg -%%DATADIR%%/profiles/MakerGear/MAKERGEAR_M2_DUAL_thumbnail.png -%%DATADIR%%/profiles/MakerGear/MAKERGEAR_M2_thumbnail.png -%%DATADIR%%/profiles/MakerGear/MAKERGEAR_M3_DUPLICATION_thumbnail.png -%%DATADIR%%/profiles/MakerGear/MAKERGEAR_M3_SE_thumbnail.png -%%DATADIR%%/profiles/MakerGear/MAKERGEAR_M3_thumbnail.png -%%DATADIR%%/profiles/MakerGear/MAKERGEAR_MICRO_thumbnail.png -%%DATADIR%%/profiles/MakerGear/MAKERGEAR_U1_thumbnail.png -%%DATADIR%%/profiles/PapapiuLab.idx -%%DATADIR%%/profiles/PapapiuLab.ini -%%DATADIR%%/profiles/PapapiuLab/Papapiu_N1S_Bed.stl -%%DATADIR%%/profiles/PapapiuLab/Papapiu_N1S_thumbnail.png -%%DATADIR%%/profiles/PapapiuLab/Papapiu_N1_Texture.png -%%DATADIR%%/profiles/Print4Taste.idx -%%DATADIR%%/profiles/Print4Taste.ini -%%DATADIR%%/profiles/Print4Taste/MC2.0_bed.stl -%%DATADIR%%/profiles/Print4Taste/MC2.0_texture.svg -%%DATADIR%%/profiles/Print4Taste/MC2.0_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch.idx -%%DATADIR%%/profiles/PrusaResearch.ini -%%DATADIR%%/profiles/PrusaResearch/COREONEL_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/COREONEMMU3_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/COREONE_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MINIIS_ALPHA_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MINIIS_BETA_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MINIIS_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MINI_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK2.5MMU2_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK2.5SMMU2S_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK2.5S_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK2.5_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK2SMM_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK2S_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK3.5MMU3_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK3.9MMU3_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK35_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK39IS_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK39IS_thumbnail_v2.png -%%DATADIR%%/profiles/PrusaResearch/MK39_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK3MMU2_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK3SMMU2S_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK3SMMU3_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK3S_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK3_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK4ISMMU3_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK4IS_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK4IS_thumbnail_v2.png -%%DATADIR%%/profiles/PrusaResearch/MK4SMMU3_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK4S_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/MK4_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/XL2IS_alpha_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/XL2IS_beta_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/XL2IS_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/XL2_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/XL5IS_alpha_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/XL5IS_beta_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/XL5IS_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/XL5_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/XLIS_alpha_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/XLIS_beta_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/XLIS_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/XL_thumbnail.png -%%DATADIR%%/profiles/PrusaResearch/coreone.svg -%%DATADIR%%/profiles/PrusaResearch/coreone_bed.stl -%%DATADIR%%/profiles/PrusaResearch/coreonel.svg -%%DATADIR%%/profiles/PrusaResearch/coreonel_bed.stl -%%DATADIR%%/profiles/PrusaResearch/mini.svg -%%DATADIR%%/profiles/PrusaResearch/miniIS.svg -%%DATADIR%%/profiles/PrusaResearch/miniISbeta.svg -%%DATADIR%%/profiles/PrusaResearch/mini_bed.stl -%%DATADIR%%/profiles/PrusaResearch/mk2.svg -%%DATADIR%%/profiles/PrusaResearch/mk2_bed.stl -%%DATADIR%%/profiles/PrusaResearch/mk3.svg -%%DATADIR%%/profiles/PrusaResearch/mk35.svg -%%DATADIR%%/profiles/PrusaResearch/mk39.svg -%%DATADIR%%/profiles/PrusaResearch/mk39s.svg -%%DATADIR%%/profiles/PrusaResearch/mk3_bed.stl -%%DATADIR%%/profiles/PrusaResearch/mk4.svg -%%DATADIR%%/profiles/PrusaResearch/mk4_bed.stl -%%DATADIR%%/profiles/PrusaResearch/mk4is.svg -%%DATADIR%%/profiles/PrusaResearch/mk4s.svg -%%DATADIR%%/profiles/PrusaResearch/xl.svg -%%DATADIR%%/profiles/PrusaResearch/xl_bed.stl -%%DATADIR%%/profiles/PrusaResearch/xlis_alpha.svg -%%DATADIR%%/profiles/PrusaResearch/xlis_beta.svg -%%DATADIR%%/profiles/PrusaResearchSLA.idx -%%DATADIR%%/profiles/PrusaResearchSLA.ini -%%DATADIR%%/profiles/PrusaResearchSLA/SL1S_thumbnail.png -%%DATADIR%%/profiles/PrusaResearchSLA/SL1_thumbnail.png -%%DATADIR%%/profiles/PrusaResearchSLA/sl1.svg -%%DATADIR%%/profiles/PrusaResearchSLA/sl1_bed.stl -%%DATADIR%%/profiles/PrusaResearchSLA/sl1s.svg -%%DATADIR%%/profiles/PrusaResearchSLA/sl1s_bed.stl -%%DATADIR%%/profiles/QIDITechnology.idx -%%DATADIR%%/profiles/QIDITechnology.ini -%%DATADIR%%/profiles/QIDITechnology/Q1 Pro.svg -%%DATADIR%%/profiles/QIDITechnology/Q1 Pro_bed.stl -%%DATADIR%%/profiles/QIDITechnology/Q1 Pro_thumbnail.png -%%DATADIR%%/profiles/QIDITechnology/X-MAX 3.svg -%%DATADIR%%/profiles/QIDITechnology/X-MAX 3_bed.stl -%%DATADIR%%/profiles/QIDITechnology/X-MAX 3_thumbnail.png -%%DATADIR%%/profiles/QIDITechnology/X-Plus 3.svg -%%DATADIR%%/profiles/QIDITechnology/X-Plus 3_bed.stl -%%DATADIR%%/profiles/QIDITechnology/X-Plus 3_thumbnail.png -%%DATADIR%%/profiles/QIDITechnology/X-Plus 4 + BOX_thumbnail.png -%%DATADIR%%/profiles/QIDITechnology/X-Plus 4.svg -%%DATADIR%%/profiles/QIDITechnology/X-Plus 4_bed.stl -%%DATADIR%%/profiles/QIDITechnology/X-Plus 4_thumbnail.png -%%DATADIR%%/profiles/QIDITechnology/X-smart 3.svg -%%DATADIR%%/profiles/QIDITechnology/X-smart 3_bed.stl -%%DATADIR%%/profiles/QIDITechnology/X-smart 3_thumbnail.png -%%DATADIR%%/profiles/RatRig.idx -%%DATADIR%%/profiles/RatRig.ini -%%DATADIR%%/profiles/RatRig/VC3_300_thumbnail.png -%%DATADIR%%/profiles/RatRig/VC3_400_thumbnail.png -%%DATADIR%%/profiles/RatRig/VC3_500_thumbnail.png -%%DATADIR%%/profiles/RatRig/VMINION_thumbnail.png -%%DATADIR%%/profiles/RatRig/rr-vc-300.stl -%%DATADIR%%/profiles/RatRig/rr-vc-300.svg -%%DATADIR%%/profiles/RatRig/rr-vc-400.stl -%%DATADIR%%/profiles/RatRig/rr-vc-400.svg -%%DATADIR%%/profiles/RatRig/rr-vc-500.stl -%%DATADIR%%/profiles/RatRig/rr-vc-500.svg -%%DATADIR%%/profiles/RatRig/rr-vminion.stl -%%DATADIR%%/profiles/RatRig/rr-vminion.svg -%%DATADIR%%/profiles/RatRig/vc4-corexy.png -%%DATADIR%%/profiles/RatRig/vc4-hybrid.png -%%DATADIR%%/profiles/RatRig/vc4-idex.png -%%DATADIR%%/profiles/Rigid3D.idx -%%DATADIR%%/profiles/Rigid3D.ini -%%DATADIR%%/profiles/Rigid3D/Mucit2_thumbnail.png -%%DATADIR%%/profiles/Rigid3D/Mucit_thumbnail.png -%%DATADIR%%/profiles/Rigid3D/Zero2_thumbnail.png -%%DATADIR%%/profiles/Rigid3D/Zero3_thumbnail.png -%%DATADIR%%/profiles/Rigid3D/mucit2_bed.png -%%DATADIR%%/profiles/Rigid3D/mucit2_bed.stl -%%DATADIR%%/profiles/Rigid3D/mucit_bed.png -%%DATADIR%%/profiles/Rigid3D/mucit_bed.stl -%%DATADIR%%/profiles/Rigid3D/zero2_bed.png -%%DATADIR%%/profiles/Rigid3D/zero3_bed.png -%%DATADIR%%/profiles/Rigid3D/zero_bed.stl -%%DATADIR%%/profiles/Snapmaker.idx -%%DATADIR%%/profiles/Snapmaker.ini -%%DATADIR%%/profiles/Snapmaker/A250_bed.stl -%%DATADIR%%/profiles/Snapmaker/A250_texture.svg -%%DATADIR%%/profiles/Snapmaker/A250_thumbnail.png -%%DATADIR%%/profiles/Snapmaker/A350_bed.stl -%%DATADIR%%/profiles/Snapmaker/A350_texture.svg -%%DATADIR%%/profiles/Snapmaker/A350_thumbnail.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker A250 BKit_cover.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker A250 Dual BKit_cover.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker A250 Dual QS+B Kit_cover.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker A250 Dual QSKit_cover.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker A250 Dual_cover.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker A250 Dual_texture.svg -%%DATADIR%%/profiles/Snapmaker/Snapmaker A250 QS+B Kit_cover.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker A250 QSKit_cover.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker A250 QSKit_texture.svg -%%DATADIR%%/profiles/Snapmaker/Snapmaker A250_bed.stl -%%DATADIR%%/profiles/Snapmaker/Snapmaker A250_cover.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker A250_texture.svg -%%DATADIR%%/profiles/Snapmaker/Snapmaker A350 BKit_cover.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker A350 Dual BKit_cover.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker A350 Dual QS+B Kit_cover.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker A350 Dual QSKit_cover.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker A350 Dual_cover.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker A350 Dual_texture.svg -%%DATADIR%%/profiles/Snapmaker/Snapmaker A350 QS+B Kit_cover.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker A350 QSKit_cover.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker A350 QSKit_texture.svg -%%DATADIR%%/profiles/Snapmaker/Snapmaker A350_bed.stl -%%DATADIR%%/profiles/Snapmaker/Snapmaker A350_cover.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker A350_texture.svg -%%DATADIR%%/profiles/Snapmaker/Snapmaker Artisan_bed.stl -%%DATADIR%%/profiles/Snapmaker/Snapmaker Artisan_cover.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker Artisan_texture.svg -%%DATADIR%%/profiles/Snapmaker/Snapmaker J1_bed.stl -%%DATADIR%%/profiles/Snapmaker/Snapmaker J1_cover.png -%%DATADIR%%/profiles/Snapmaker/Snapmaker J1_texture.svg -%%DATADIR%%/profiles/Sovol.idx -%%DATADIR%%/profiles/Sovol.ini -%%DATADIR%%/profiles/Sovol/SV01 PRO_thumbnail.png -%%DATADIR%%/profiles/Sovol/SV01_BLTouch_thumbnail.png -%%DATADIR%%/profiles/Sovol/SV01_bed.stl -%%DATADIR%%/profiles/Sovol/SV01_texture.svg -%%DATADIR%%/profiles/Sovol/SV01_thumbnail.png -%%DATADIR%%/profiles/Sovol/SV02_BLTouch_thumbnail.png -%%DATADIR%%/profiles/Sovol/SV02_texture.svg -%%DATADIR%%/profiles/Sovol/SV02_thumbnail.png -%%DATADIR%%/profiles/Sovol/SV03_BLTouch_thumbnail.png -%%DATADIR%%/profiles/Sovol/SV03_bed.stl -%%DATADIR%%/profiles/Sovol/SV03_texture.svg -%%DATADIR%%/profiles/Sovol/SV03_thumbnail.png -%%DATADIR%%/profiles/Sovol/SV04 Copy Mode_thumbnail.png -%%DATADIR%%/profiles/Sovol/SV04 Dual Mode_thumbnail.png -%%DATADIR%%/profiles/Sovol/SV04 Mirror Mode_thumbnail.png -%%DATADIR%%/profiles/Sovol/SV04 Single Mode 01_thumbnail.png -%%DATADIR%%/profiles/Sovol/SV04 Single Mode 02_thumbnail.png -%%DATADIR%%/profiles/Sovol/SV04_bed.stl -%%DATADIR%%/profiles/Sovol/SV04_texture.svg -%%DATADIR%%/profiles/Sovol/SV04_thumbnail.png -%%DATADIR%%/profiles/Sovol/SV05_bed.stl -%%DATADIR%%/profiles/Sovol/SV05_texture.svg -%%DATADIR%%/profiles/Sovol/SV05_thumbnail.png -%%DATADIR%%/profiles/Sovol/SV06 PLUS_thumbnail.png -%%DATADIR%%/profiles/Sovol/SV06PLUS_bed.stl -%%DATADIR%%/profiles/Sovol/SV06PLUS_texture.svg -%%DATADIR%%/profiles/Sovol/SV06_bed.stl -%%DATADIR%%/profiles/Sovol/SV06_texture.svg -%%DATADIR%%/profiles/Sovol/SV06_thumbnail.png -%%DATADIR%%/profiles/Sovol/Sovol.ini -%%DATADIR%%/profiles/Templates.idx -%%DATADIR%%/profiles/Templates.ini -%%DATADIR%%/profiles/TriLAB.idx -%%DATADIR%%/profiles/TriLAB.ini -%%DATADIR%%/profiles/TriLAB/AQD_thumbnail.png -%%DATADIR%%/profiles/TriLAB/AQI_thumbnail.png -%%DATADIR%%/profiles/TriLAB/DQ2+FP2_thumbnail.png -%%DATADIR%%/profiles/TriLAB/DQ2+FP_thumbnail.png -%%DATADIR%%/profiles/TriLAB/DQ2P+FP2_thumbnail.png -%%DATADIR%%/profiles/TriLAB/DQ2P+FP_thumbnail.png -%%DATADIR%%/profiles/TriLAB/DQ2P_thumbnail.png -%%DATADIR%%/profiles/TriLAB/DQ2_thumbnail.png -%%DATADIR%%/profiles/TriLAB/DQL_thumbnail.png -%%DATADIR%%/profiles/TriLAB/DQM_thumbnail.png -%%DATADIR%%/profiles/TriLAB/DQXL_thumbnail.png -%%DATADIR%%/profiles/TriLAB/aq_bed.stl -%%DATADIR%%/profiles/TriLAB/aqp_bed.stl -%%DATADIR%%/profiles/TriLAB/dq2_bed.stl -%%DATADIR%%/profiles/Trimaker.idx -%%DATADIR%%/profiles/Trimaker.ini -%%DATADIR%%/profiles/Trimaker/CosmosII_bed.stl -%%DATADIR%%/profiles/Trimaker/Cosmos_II_thumbnail.png -%%DATADIR%%/profiles/Trimaker/NPC_thumbnail.png -%%DATADIR%%/profiles/Trimaker/NebulaCloud.svg -%%DATADIR%%/profiles/Trimaker/NebulaCloud_bed.stl -%%DATADIR%%/profiles/Trimaker/Nebula_thumbnail.png -%%DATADIR%%/profiles/Ultimaker.idx -%%DATADIR%%/profiles/Ultimaker.ini -%%DATADIR%%/profiles/Ultimaker/ULTIMAKER2_thumbnail.png -%%DATADIR%%/profiles/Ultimaker/ULTIMAKER2_thumbnail_v2.png -%%DATADIR%%/profiles/Ultimaker/ULTIMAKERSline_thumbnail.png -%%DATADIR%%/profiles/Ultimaker/ultimaker2.svg -%%DATADIR%%/profiles/Ultimaker/ultimaker2_bed.stl -%%DATADIR%%/profiles/Voron.idx -%%DATADIR%%/profiles/Voron.ini -%%DATADIR%%/profiles/Voron/Voron_SW_thumbnail.png -%%DATADIR%%/profiles/Voron/Voron_v0_120_thumbnail.png -%%DATADIR%%/profiles/Voron/Voron_v1_250_afterburner_thumbnail.png -%%DATADIR%%/profiles/Voron/Voron_v1_300_afterburner_thumbnail.png -%%DATADIR%%/profiles/Voron/Voron_v1_350_afterburner_thumbnail.png -%%DATADIR%%/profiles/Voron/Voron_v2_250_afterburner_thumbnail.png -%%DATADIR%%/profiles/Voron/Voron_v2_250_thumbnail.png -%%DATADIR%%/profiles/Voron/Voron_v2_300_afterburner_thumbnail.png -%%DATADIR%%/profiles/Voron/Voron_v2_300_thumbnail.png -%%DATADIR%%/profiles/Voron/Voron_v2_350_afterburner_thumbnail.png -%%DATADIR%%/profiles/Voron/Voron_v2_350_thumbnail.png -%%DATADIR%%/profiles/Voron/bedtexture-SW-250x210.png -%%DATADIR%%/profiles/Voron/bedtexture-v0-120.png -%%DATADIR%%/profiles/Voron/bedtexture-v1-250.png -%%DATADIR%%/profiles/Voron/bedtexture-v1-300.png -%%DATADIR%%/profiles/Voron/bedtexture-v2-250.png -%%DATADIR%%/profiles/Voron/bedtexture-v2-300.png -%%DATADIR%%/profiles/Voron/bedtexture-v2-350.png -%%DATADIR%%/profiles/Voron/printbed-SW-MK52.stl -%%DATADIR%%/profiles/Voron/printbed-v0-120.stl -%%DATADIR%%/profiles/Voron/printbed-v1-250.stl -%%DATADIR%%/profiles/Voron/printbed-v1-300.stl -%%DATADIR%%/profiles/Voron/printbed-v1-350.stl -%%DATADIR%%/profiles/Voron/printbed-v2-250.stl -%%DATADIR%%/profiles/Voron/printbed-v2-300.stl -%%DATADIR%%/profiles/Voron/printbed-v2-350.stl -%%DATADIR%%/profiles/Zonestar.idx -%%DATADIR%%/profiles/Zonestar.ini -%%DATADIR%%/profiles/Zonestar/150_texture.svg -%%DATADIR%%/profiles/Zonestar/220_texture.svg -%%DATADIR%%/profiles/Zonestar/310_texture.svg -%%DATADIR%%/profiles/Zonestar/Z5X_thumbnail.png -%%DATADIR%%/profiles/Zonestar/Z5_thumbnail.png -%%DATADIR%%/profiles/Zonestar/Z6_thumbnail.png -%%DATADIR%%/profiles/Zonestar/Z8_thumbnail.png -%%DATADIR%%/profiles/Zonestar/Z9_thumbnail.png -%%DATADIR%%/profiles/Zonestar/bed_150.stl -%%DATADIR%%/profiles/Zonestar/bed_220.stl -%%DATADIR%%/profiles/Zonestar/bed_310.stl -%%DATADIR%%/profiles/gCreate.idx -%%DATADIR%%/profiles/gCreate.ini -%%DATADIR%%/profiles/gCreate/GMAX15P_thumbnail.png -%%DATADIR%%/profiles/gCreate/GMAX2DUAL2IN1_thumbnail.png -%%DATADIR%%/profiles/gCreate/GMAX2DUAL_thumbnail.png -%%DATADIR%%/profiles/gCreate/GMAX2PRO_thumbnail.png -%%DATADIR%%/profiles/gCreate/GMAX2_thumbnail.png -%%DATADIR%%/profiles/gCreate/gmax15p.svg -%%DATADIR%%/profiles/gCreate/gmax15p_bed.stl -%%DATADIR%%/profiles/gCreate/gmax2.svg -%%DATADIR%%/profiles/gCreate/gmax2_bed.stl -%%DATADIR%%/shaders/110/background.fs -%%DATADIR%%/shaders/110/background.vs -%%DATADIR%%/shaders/110/flat.fs -%%DATADIR%%/shaders/110/flat.vs -%%DATADIR%%/shaders/110/flat_clip.fs -%%DATADIR%%/shaders/110/flat_clip.vs -%%DATADIR%%/shaders/110/flat_texture.fs -%%DATADIR%%/shaders/110/flat_texture.vs -%%DATADIR%%/shaders/110/gouraud.fs -%%DATADIR%%/shaders/110/gouraud.vs -%%DATADIR%%/shaders/110/gouraud_light.fs -%%DATADIR%%/shaders/110/gouraud_light.vs -%%DATADIR%%/shaders/110/gouraud_light_clip.fs -%%DATADIR%%/shaders/110/gouraud_light_clip.vs -%%DATADIR%%/shaders/110/gouraud_light_instanced.fs -%%DATADIR%%/shaders/110/gouraud_light_instanced.vs -%%DATADIR%%/shaders/110/imgui.fs -%%DATADIR%%/shaders/110/imgui.vs -%%DATADIR%%/shaders/110/mm_contour.fs -%%DATADIR%%/shaders/110/mm_contour.vs -%%DATADIR%%/shaders/110/mm_gouraud.fs -%%DATADIR%%/shaders/110/mm_gouraud.vs -%%DATADIR%%/shaders/110/printbed.fs -%%DATADIR%%/shaders/110/printbed.vs -%%DATADIR%%/shaders/110/tool_marker.fs -%%DATADIR%%/shaders/110/tool_marker.vs -%%DATADIR%%/shaders/110/toolpaths_cog.fs -%%DATADIR%%/shaders/110/toolpaths_cog.vs -%%DATADIR%%/shaders/110/variable_layer_height.fs -%%DATADIR%%/shaders/110/variable_layer_height.vs -%%DATADIR%%/shaders/140/background.fs -%%DATADIR%%/shaders/140/background.vs -%%DATADIR%%/shaders/140/dashed_thick_lines.fs -%%DATADIR%%/shaders/140/dashed_thick_lines.gs -%%DATADIR%%/shaders/140/dashed_thick_lines.vs -%%DATADIR%%/shaders/140/flat.fs -%%DATADIR%%/shaders/140/flat.vs -%%DATADIR%%/shaders/140/flat_clip.fs -%%DATADIR%%/shaders/140/flat_clip.vs -%%DATADIR%%/shaders/140/flat_texture.fs -%%DATADIR%%/shaders/140/flat_texture.vs -%%DATADIR%%/shaders/140/gouraud.fs -%%DATADIR%%/shaders/140/gouraud.vs -%%DATADIR%%/shaders/140/gouraud_light.fs -%%DATADIR%%/shaders/140/gouraud_light.vs -%%DATADIR%%/shaders/140/gouraud_light_clip.fs -%%DATADIR%%/shaders/140/gouraud_light_clip.vs -%%DATADIR%%/shaders/140/gouraud_light_instanced.fs -%%DATADIR%%/shaders/140/gouraud_light_instanced.vs -%%DATADIR%%/shaders/140/imgui.fs -%%DATADIR%%/shaders/140/imgui.vs -%%DATADIR%%/shaders/140/mm_contour.fs -%%DATADIR%%/shaders/140/mm_contour.vs -%%DATADIR%%/shaders/140/mm_gouraud.fs -%%DATADIR%%/shaders/140/mm_gouraud.vs -%%DATADIR%%/shaders/140/printbed.fs -%%DATADIR%%/shaders/140/printbed.vs -%%DATADIR%%/shaders/140/tool_marker.fs -%%DATADIR%%/shaders/140/tool_marker.vs -%%DATADIR%%/shaders/140/toolpaths_cog.fs -%%DATADIR%%/shaders/140/toolpaths_cog.vs -%%DATADIR%%/shaders/140/variable_layer_height.fs -%%DATADIR%%/shaders/140/variable_layer_height.vs -%%DATADIR%%/shaders/ES/background.fs -%%DATADIR%%/shaders/ES/background.vs -%%DATADIR%%/shaders/ES/dashed_lines.fs -%%DATADIR%%/shaders/ES/dashed_lines.vs -%%DATADIR%%/shaders/ES/flat.fs -%%DATADIR%%/shaders/ES/flat.vs -%%DATADIR%%/shaders/ES/flat_clip.fs -%%DATADIR%%/shaders/ES/flat_clip.vs -%%DATADIR%%/shaders/ES/flat_texture.fs -%%DATADIR%%/shaders/ES/flat_texture.vs -%%DATADIR%%/shaders/ES/gouraud.fs -%%DATADIR%%/shaders/ES/gouraud.vs -%%DATADIR%%/shaders/ES/gouraud_light.fs -%%DATADIR%%/shaders/ES/gouraud_light.vs -%%DATADIR%%/shaders/ES/gouraud_light_clip.fs -%%DATADIR%%/shaders/ES/gouraud_light_clip.vs -%%DATADIR%%/shaders/ES/gouraud_light_instanced.fs -%%DATADIR%%/shaders/ES/gouraud_light_instanced.vs -%%DATADIR%%/shaders/ES/imgui.fs -%%DATADIR%%/shaders/ES/imgui.vs -%%DATADIR%%/shaders/ES/mm_contour.fs -%%DATADIR%%/shaders/ES/mm_contour.vs -%%DATADIR%%/shaders/ES/mm_gouraud.fs -%%DATADIR%%/shaders/ES/mm_gouraud.vs -%%DATADIR%%/shaders/ES/printbed.fs -%%DATADIR%%/shaders/ES/printbed.vs -%%DATADIR%%/shaders/ES/tool_marker.fs -%%DATADIR%%/shaders/ES/tool_marker.vs -%%DATADIR%%/shaders/ES/toolpaths_cog.fs -%%DATADIR%%/shaders/ES/toolpaths_cog.vs -%%DATADIR%%/shaders/ES/variable_layer_height.fs -%%DATADIR%%/shaders/ES/variable_layer_height.vs -%%DATADIR%%/shaders/ES/wireframe.fs -%%DATADIR%%/shaders/ES/wireframe.vs -%%DATADIR%%/shapes/3DBenchy.png -%%DATADIR%%/shapes/3DBenchy.stl -%%DATADIR%%/shapes/M3_hex_nut.png -%%DATADIR%%/shapes/M3_hex_nut.stl -%%DATADIR%%/shapes/M3x10_screw.png -%%DATADIR%%/shapes/M3x10_screw.stl -%%DATADIR%%/shapes/OTHER_recycling_symbol.png -%%DATADIR%%/shapes/OTHER_recycling_symbol.stl -%%DATADIR%%/shapes/PETG_recycling_symbol.png -%%DATADIR%%/shapes/PETG_recycling_symbol.stl -%%DATADIR%%/shapes/PLA_recycling_symbol.png -%%DATADIR%%/shapes/PLA_recycling_symbol.stl -%%DATADIR%%/shapes/box.png -%%DATADIR%%/shapes/box.stl -%%DATADIR%%/shapes/bunny.png -%%DATADIR%%/shapes/bunny.stl -%%DATADIR%%/shapes/cone.png -%%DATADIR%%/shapes/cone.stl -%%DATADIR%%/shapes/cylinder.png -%%DATADIR%%/shapes/cylinder.stl -%%DATADIR%%/shapes/helper_disk.png -%%DATADIR%%/shapes/helper_disk.stl -%%DATADIR%%/shapes/pyramid.png -%%DATADIR%%/shapes/pyramid.stl -%%DATADIR%%/shapes/sign_base.png -%%DATADIR%%/shapes/sign_base.stl -%%DATADIR%%/shapes/sign_base_rounded.png -%%DATADIR%%/shapes/sign_base_rounded.stl -%%DATADIR%%/shapes/sphere.png -%%DATADIR%%/shapes/sphere.stl -%%DATADIR%%/shapes/torus.png -%%DATADIR%%/shapes/torus.stl -%%DATADIR%%/shapes/universal wall mount hole.png -%%DATADIR%%/shapes/universal wall mount hole.stl -%%DATADIR%%/web/connect_error.html -%%DATADIR%%/web/connect_loading.html -%%DATADIR%%/web/error_no_reload.html -%%DATADIR%%/web/other_error.html -%%DATADIR%%/web/other_loading.html share/applications/PrusaGcodeviewer.desktop share/applications/PrusaSlicer.desktop share/icons/hicolor/128x128/apps/PrusaSlicer-gcodeviewer.png share/icons/hicolor/128x128/apps/PrusaSlicer.png share/icons/hicolor/192x192/apps/PrusaSlicer-gcodeviewer.png share/icons/hicolor/192x192/apps/PrusaSlicer.png share/icons/hicolor/32x32/apps/PrusaSlicer-gcodeviewer.png share/icons/hicolor/32x32/apps/PrusaSlicer.png