From ddaac2fbbc481984daefd36507874d91949b7a78 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 27 Jul 2017 13:02:49 +0200 Subject: [PATCH] Revert "Add SolidWorks plugin" This reverts commit 1c39c90494a664fafdfdd127ace578bd274b19eb. --- plugins/CuraSolidWorksPlugin/CMakeLists.txt | 11 - .../CuraSolidWorksPlugin/CommonComReader.py | 200 ------ plugins/CuraSolidWorksPlugin/ConfigDialog.py | 38 - plugins/CuraSolidWorksPlugin/ConfigDialog.qml | 112 --- plugins/CuraSolidWorksPlugin/ExportSTLUI.qml | 107 --- plugins/CuraSolidWorksPlugin/LICENSE | 661 ------------------ .../SolidWorksConstants.py | 45 -- .../CuraSolidWorksPlugin/SolidWorksReader.py | 231 ------ .../SolidWorksReaderUI.py | 95 --- plugins/CuraSolidWorksPlugin/__init__.py | 58 -- plugins/CuraSolidWorksPlugin/plugin.json | 8 - .../test_files/test.SLDASM | Bin 37454 -> 0 bytes .../test_files/test.SLDPRT | Bin 108224 -> 0 bytes 13 files changed, 1566 deletions(-) delete mode 100644 plugins/CuraSolidWorksPlugin/CMakeLists.txt delete mode 100644 plugins/CuraSolidWorksPlugin/CommonComReader.py delete mode 100644 plugins/CuraSolidWorksPlugin/ConfigDialog.py delete mode 100644 plugins/CuraSolidWorksPlugin/ConfigDialog.qml delete mode 100644 plugins/CuraSolidWorksPlugin/ExportSTLUI.qml delete mode 100644 plugins/CuraSolidWorksPlugin/LICENSE delete mode 100644 plugins/CuraSolidWorksPlugin/SolidWorksConstants.py delete mode 100644 plugins/CuraSolidWorksPlugin/SolidWorksReader.py delete mode 100644 plugins/CuraSolidWorksPlugin/SolidWorksReaderUI.py delete mode 100644 plugins/CuraSolidWorksPlugin/__init__.py delete mode 100644 plugins/CuraSolidWorksPlugin/plugin.json delete mode 100644 plugins/CuraSolidWorksPlugin/test_files/test.SLDASM delete mode 100644 plugins/CuraSolidWorksPlugin/test_files/test.SLDPRT diff --git a/plugins/CuraSolidWorksPlugin/CMakeLists.txt b/plugins/CuraSolidWorksPlugin/CMakeLists.txt deleted file mode 100644 index b4d7f32b73..0000000000 --- a/plugins/CuraSolidWorksPlugin/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -project(CuraSolidWorksIntegrationPlugin NONE) -cmake_minimum_required(VERSION 2.8.12) - -install(FILES - __init__.py - CommonComReader.py - SolidWorksConstants.py - SolidWorksReader.py - LICENSE - DESTINATION lib/cura/plugins/CuraSolidWorksIntegrationPlugin -) \ No newline at end of file diff --git a/plugins/CuraSolidWorksPlugin/CommonComReader.py b/plugins/CuraSolidWorksPlugin/CommonComReader.py deleted file mode 100644 index 02665224a5..0000000000 --- a/plugins/CuraSolidWorksPlugin/CommonComReader.py +++ /dev/null @@ -1,200 +0,0 @@ -# Copyright (c) 2017 Thomas Karl Pietrowski - -# Buildins -import os -import tempfile - -# Uranium/Cura -from UM.Application import Application -from UM.i18n import i18nCatalog -i18n_catalog = i18nCatalog("CuraSolidWorksIntegrationPlugin") -from UM.Message import Message -from UM.Logger import Logger -from UM.Mesh.MeshReader import MeshReader -from UM.PluginRegistry import PluginRegistry -from UM.Scene.SceneNode import SceneNode - -# PyWin32 -from comtypes.client import GetClassObject - - -class CommonCOMReader(MeshReader): - def __init__(self, app_name, app_friendly_name): - super().__init__() - self._app_name = app_name - self._app_friendly_name = app_friendly_name - - # Start/stop behaviour - - # Technically neither preloading nor keeping the instance up, is possible, since Cura calls the file reader from different/new threads - # The error when trying to use it here is: - # > pywintypes.com_error: (-2147417842, 'The application called an interface that was marshalled for a different thread.', None, None) - self._app_preload = False - self._app_keep_running = False - - """ - if self._app_preload and not self._app_keep_running: - self._app_keep_running = True - """ - - # Preparations - """ - if self._app_preload: - Logger.log("d", "Preloading %s..." %(self._app_friendlyName)) - self.startApp() - """ - - Logger.log("d", "Looking for readers...") - self.__init_builtin_readers__() - - def __init_builtin_readers__(self): - self._file_formats_first_choice = [] # Ordered list of preferred formats - self._reader_for_file_format = {} - - # Trying 3MF first because it describes the model much better.. - # However, this is untested since this plugin was only tested with STL support - if PluginRegistry.getInstance().isActivePlugin("3MFReader"): - self._reader_for_file_format["3mf"] = PluginRegistry.getInstance().getPluginObject("3MFReader") - self._file_formats_first_choice.append("3mf") - - if PluginRegistry.getInstance().isActivePlugin("STLReader"): - self._reader_for_file_format["stl"] = PluginRegistry.getInstance().getPluginObject("STLReader") - self._file_formats_first_choice.append("stl") - - if not len(self._reader_for_file_format): - Logger.log("d", "Could not find any reader for (probably) supported file formats!") - - def getSaveTempfileName(self, suffix = ""): - # Only get a save name for a temp_file here... - temp_stl_file = tempfile.NamedTemporaryFile() - temp_stl_file_name = "%s%s" % (temp_stl_file.name, suffix) - temp_stl_file.close() - - return temp_stl_file_name - - def startApp(self, visible = False): - Logger.log("d", "Starting %s...", self._app_friendly_name) - - com_class_object = GetClassObject(self._app_name) - com_instance = com_class_object.CreateInstance() - - return com_instance - - def checkApp(self): - raise NotImplementedError("Checking app is not implemented!") - - def getAppVisible(self, state): - raise NotImplementedError("Toggle for visibility not implemented!") - - def setAppVisible(self, state, **options): - raise NotImplementedError("Toggle for visibility not implemented!") - - def closeApp(self, **options): - raise NotImplementedError("Procedure how to close your app is not implemented!") - - def openForeignFile(self, **options): - "This function shall return options again. It optionally contains other data, which is needed by the reader for other tasks later." - raise NotImplementedError("Opening files is not implemented!") - - def exportFileAs(self, model, **options): - raise NotImplementedError("Exporting files is not implemented!") - - def closeForeignFile(self, **options): - raise NotImplementedError("Closing files is not implemented!") - - def nodePostProcessing(self, node): - return node - - def read(self, file_path): - options = {"foreignFile": file_path, - "foreignFormat": os.path.splitext(file_path)[1], - } - - # Starting app, if needed - try: - options["app_instance"] = self.startApp() - except Exception: - Logger.logException("e", "Failed to start <%s>...", self._app_name) - error_message = Message(i18n_catalog.i18nc("@info:status", "Error while starting %s!" % self._app_friendly_name)) - error_message.show() - return None - - # Tell the 3rd party application to open a file... - Logger.log("d", "Opening file with %s..." % self._app_friendly_name) - options = self.openForeignFile(**options) - - # Append all formats which are not preferred to the end of the list - fileFormats = self._file_formats_first_choice - for file_format in self._reader_for_file_format.keys(): - if file_format not in fileFormats: - fileFormats.append(file_format) - - # Trying to convert into all formats 1 by 1 and continue with the successful export - Logger.log("i", "Trying to convert into: %s", fileFormats) - for file_format in fileFormats: - Logger.log("d", "Trying to convert <%s> into '%s'", file_path, file_format) - - options["tempType"] = file_format - - options["tempFile"] = self.getSaveTempfileName(".%s" % file_format.upper()) - Logger.log("d", "Using temporary file <%s>", options["tempFile"]) - - # In case there is already a file with this name (very unlikely...) - if os.path.isfile(options["tempFile"]): - Logger.log("w", "Removing already available file, called: %s", options["tempFile"]) - os.remove(options["tempFile"]) - - Logger.log("d", "Saving as: <%s>", options["tempFile"]) - try: - self.exportFileAs(**options) - except: - Logger.logException("e", "Could not export <%s> into '%s'.", file_path, file_format) - continue - - if os.path.isfile(options["tempFile"]): - Logger.log("d", "Saved as: <%s>", options["tempFile"]) - else: - Logger.log("d", "Temporary file not found after export!") - continue - - # Opening the resulting file in Cura - try: - #reader = self._readerForFileformat[fileFormat] - reader = Application.getInstance().getMeshFileHandler().getReaderForFile(options["tempFile"]) - if not reader: - Logger.log("d", "Found no reader for %s. That's strange...") - continue - Logger.log("d", "Using reader: %s", reader.getPluginId()) - temp_scene_node = reader.read(options["tempFile"]) - except: - Logger.logException("e", "Failed to open exported <%s> file in Cura!", file_format) - continue - - # Remove the temp_file again - Logger.log("d", "Removing temporary STL file, called <%s>", options["tempFile"]) - os.remove(options["tempFile"]) - - break - - # Closing document in the app - self.closeForeignFile(**options) - - # Closing the app again.. - self.closeApp(**options) - - scene_node = SceneNode() - temp_scene_node = self.nodePostProcessing(temp_scene_node) - mesh = temp_scene_node.getMeshDataTransformed() - - # When using 3MF as the format to convert into we get an list of meshes instead of only one mesh directly. - # This is a little workaround since reloading of 3MF files doesn't work at the moment. - if type(mesh) == list: - error_message = Message(i18n_catalog.i18nc("@info:status", "Please keep in mind, that you have to reopen your SolidWorks file manually! Reloading the model won't work!")) - error_message.show() - mesh = mesh.set(file_name = None) - else: - mesh = mesh.set(file_name = file_path) - scene_node.setMeshData(mesh) - - if scene_node: - return scene_node diff --git a/plugins/CuraSolidWorksPlugin/ConfigDialog.py b/plugins/CuraSolidWorksPlugin/ConfigDialog.py deleted file mode 100644 index 18f2c0c768..0000000000 --- a/plugins/CuraSolidWorksPlugin/ConfigDialog.py +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright (c) 2017 Ultimaker B.V. -# PluginBrowser is released under the terms of the AGPLv3 or higher. -from UM.Extension import Extension -from UM.i18n import i18nCatalog -from UM.Logger import Logger -from UM.PluginRegistry import PluginRegistry -from UM.Application import Application - -from PyQt5.QtCore import QUrl, QObject, pyqtSignal -from PyQt5.QtQml import QQmlComponent, QQmlContext - -import os - -i18n_catalog = i18nCatalog("cura") - - -class ConfigDialog(QObject, Extension): - def __init__(self, parent = None): - super().__init__(parent) - self._dialog = None - self.addMenuItem(i18n_catalog.i18n("Configure"), self._openConfigDialog) - - def _openConfigDialog(self): - if not self._dialog: - self._createDialog() - self._dialog.show() - - def _createDialog(self): - path = QUrl.fromLocalFile(os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), "ConfigDialog.qml")) - self._qml_component = QQmlComponent(Application.getInstance()._engine, path) - - # We need access to engine (although technically we can't) - self._qml_context = QQmlContext(Application.getInstance()._engine.rootContext()) - self._qml_context.setContextProperty("manager", self) - self._dialog = self._qml_component.create(self._qml_context) - if self._dialog is None: - Logger.log("e", "QQmlComponent status %s", self._qml_component.status()) - Logger.log("e", "QQmlComponent errorString %s", self._qml_component.errorString()) diff --git a/plugins/CuraSolidWorksPlugin/ConfigDialog.qml b/plugins/CuraSolidWorksPlugin/ConfigDialog.qml deleted file mode 100644 index 1616e9466e..0000000000 --- a/plugins/CuraSolidWorksPlugin/ConfigDialog.qml +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright (c) 2017 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. - -import QtQuick 2.1 -import QtQuick.Controls 1.1 -import QtQuick.Layouts 1.1 -import QtQuick.Window 2.1 - -import UM 1.2 as UM -import Cura 1.0 as Cura - -UM.Dialog -{ - width: 300 * Screen.devicePixelRatio - minimumWidth: 300 * Screen.devicePixelRatio - - height: 100 * Screen.devicePixelRatio - minimumHeight: 100 * Screen.devicePixelRatio - - title: catalog.i18nc("@title:window", "Cura SolidWorks Plugin Configuration") - - onVisibilityChanged: - { - if (visible) - { - choiceDropdown.updateCurrentIndex(); - } - } - - GridLayout - { - UM.I18nCatalog{id: catalog; name: "cura"} - anchors.fill: parent - Layout.fillWidth: true - columnSpacing: 16 - rowSpacing: 10 - columns: 1 - - Row - { - width: parent.width - - Label { - text: catalog.i18nc("@action:label", "Default quality of the exported STL:") - width: 150 - anchors.verticalCenter: parent.verticalCenter - } - } - - Row - { - ComboBox - { - id: choiceDropdown - - currentIndex: updateCurrentIndex() - - function updateCurrentIndex() - { - var index = 0; - var currentChoice = UM.Preferences.getValue("cura_solidworks/choice_on_exporting_stl_quality"); - for (var i = 0; i < model.count; ++i) - { - if (model.get(i).code == currentChoice) - { - index = i; - break; - } - } - currentIndex = index; - } - - model: ListModel - { - id: choiceModel - - Component.onCompleted: - { - append({ text: catalog.i18nc("@option:curaSolidworksStlQuality", "Always ask"), code: "always_ask" }); - append({ text: catalog.i18nc("@option:curaSolidworksStlQuality", "Always use Fine quality"), code: "always_use_fine" }); - append({ text: catalog.i18nc("@option:curaSolidworksStlQuality", "Always use Coarse quality"), code: "always_use_coarse" }); - } - } - } - } - } - - rightButtons: [ - Button - { - id: ok_button - text: catalog.i18nc("@action:button", "OK") - onClicked: - { - UM.Preferences.setValue("cura_solidworks/choice_on_exporting_stl_quality", - choiceModel.get(choiceDropdown.currentIndex).code); - close(); - } - enabled: true - }, - Button - { - id: cancel_button - text: catalog.i18nc("@action:button", "Cancel") - onClicked: - { - close(); - } - enabled: true - } - ] -} diff --git a/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml b/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml deleted file mode 100644 index 5d307250f9..0000000000 --- a/plugins/CuraSolidWorksPlugin/ExportSTLUI.qml +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright (c) 2017 Ultimaker B.V. -// Cura is released under the terms of the AGPLv3 or higher. - -import QtQuick 2.1 -import QtQuick.Controls 1.1 -import QtQuick.Layouts 1.1 -import QtQuick.Window 2.1 - -import UM 1.2 as UM -import Cura 1.0 as Cura - -UM.Dialog -{ - width: 300 * Screen.devicePixelRatio; - minimumWidth: 300 * Screen.devicePixelRatio; - - height: 100 * Screen.devicePixelRatio; - minimumHeight: 100 * Screen.devicePixelRatio; - - title: catalog.i18nc("@title:window", "Import SolidWorks File as STL...") - - onVisibilityChanged: - { - if (visible) - { - qualityDropdown.currentIndex = 1; - rememberChoiceCheckBox.checked = UM.Preferences.getValue("cura_solidworks/choice_on_exporting_stl_quality") != "always_ask"; - } - } - - GridLayout - { - UM.I18nCatalog{id: catalog; name: "cura"} - anchors.fill: parent; - Layout.fillWidth: true - columnSpacing: 16 - rowSpacing: 4 - columns: 1 - - UM.TooltipArea { - Layout.fillWidth:true - height: childrenRect.height - text: catalog.i18nc("@info:tooltip", "Quality of the Exported STL") - Row { - width: parent.width - - Label { - text: catalog.i18nc("@action:label", "Quality") - width: 100 - anchors.verticalCenter: parent.verticalCenter - } - - ComboBox - { - id: qualityDropdown - model: ListModel - { - id: qualityModel - - Component.onCompleted: - { - append({ text: catalog.i18nc("@option:curaSolidworksStlQuality", "Coarse"), code: "coarse" }); - append({ text: catalog.i18nc("@option:curaSolidworksStlQuality", "Fine"), code: "fine" }); - } - } - currentIndex: 1 - } - } - } - - Row - { - width: parent.width - - CheckBox - { - id: rememberChoiceCheckBox - text: catalog.i18nc("@text:window", "Remember my choice") - checked: UM.Preferences.getValue("cura_solidworks/choice_on_exporting_stl_quality") != "always_ask" - } - } - } - - rightButtons: [ - Button - { - id: ok_button - text: catalog.i18nc("@action:button", "OK") - onClicked: - { - manager.setQuality(qualityModel.get(qualityDropdown.currentIndex).code, rememberChoiceCheckBox.checked); - manager.onOkButtonClicked(); - } - enabled: true - }, - Button - { - id: cancel_button - text: catalog.i18nc("@action:button", "Cancel") - onClicked: - { - manager.onCancelButtonClicked(); - } - enabled: true - } - ] -} diff --git a/plugins/CuraSolidWorksPlugin/LICENSE b/plugins/CuraSolidWorksPlugin/LICENSE deleted file mode 100644 index dbbe355815..0000000000 --- a/plugins/CuraSolidWorksPlugin/LICENSE +++ /dev/null @@ -1,661 +0,0 @@ - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. - - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. - - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU Affero General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero 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 Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. diff --git a/plugins/CuraSolidWorksPlugin/SolidWorksConstants.py b/plugins/CuraSolidWorksPlugin/SolidWorksConstants.py deleted file mode 100644 index 016e17da2f..0000000000 --- a/plugins/CuraSolidWorksPlugin/SolidWorksConstants.py +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright (c) 2017 Thomas Karl Pietrowski - - -class SolidWorksEnums: - class swUserPreferenceToggle_e: - swSTLBinaryFormat = 69 - - class swDocumentTypes_e: - swDocNONE = 0 - swDocPART = 1 - swDocASSEMBLY = 2 - swDocDRAWING = 3 - - class FileTypes: - # Enums to open files - SWpart = 1 - SWassembly = 2 - SWdrawing = 3 - - swSTLQuality = 78 - - class swLengthUnit_e: - swMM = 0 - swCM = 1 - swMETER = 2 - swINCHES = 3 - swFEET = 4 - swFEETINCHES = 5 - swANGSTROM = 6 - swNANOMETER = 7 - swMICRON = 8 - swMIL = 9 - swUIN = 10 - - class swUserPreferenceIntegerValue_e: - swExportSTLQuality = 78 - swExportStlUnits = 211 - - class swSTLQuality_e: - swSTLQuality_Coarse = 1 - swSTLQuality_Fine = 2 - swSTLQuality_Custom = 3 - - class UserPreferences: - swSTLComponentsIntoOneFile = 72 diff --git a/plugins/CuraSolidWorksPlugin/SolidWorksReader.py b/plugins/CuraSolidWorksPlugin/SolidWorksReader.py deleted file mode 100644 index 6a194187ff..0000000000 --- a/plugins/CuraSolidWorksPlugin/SolidWorksReader.py +++ /dev/null @@ -1,231 +0,0 @@ -# Copyright (c) 2017 Thomas Karl Pietrowski - -# TODOs: -# * Adding selection to separately import parts from an assembly - -# Buildings -import math - -# Uranium/Cura -from UM.i18n import i18nCatalog -from UM.Message import Message -from UM.Logger import Logger -from UM.Math.Vector import Vector -from UM.Math.Quaternion import Quaternion -from UM.Mesh.MeshReader import MeshReader - -# Our plugin -from .CommonComReader import CommonCOMReader -from .SolidWorksConstants import SolidWorksEnums -from .SolidWorksReaderUI import SolidWorksReaderUI - -i18n_catalog = i18nCatalog("CuraSolidWorksIntegrationPlugin") - - -class SolidWorksReader(CommonCOMReader): - def __init__(self): - super().__init__("SldWorks.Application", "SolidWorks") - - self._extension_part = ".SLDPRT" - self._extension_assembly = ".SLDASM" - self._supported_extensions = [self._extension_part.lower(), - self._extension_assembly.lower(), - ] - - self._convert_assembly_into_once = True # False is not implemented now! - self._file_formats_first_choice = [] - self._revision = None - self._revision_major = None - self._revision_minor = None - self._revision_patch = None - - self._ui = SolidWorksReaderUI() - self._selected_quality = None - self._quality_value_map = {"coarse": SolidWorksEnums.swSTLQuality_e.swSTLQuality_Coarse, - "find": SolidWorksEnums.swSTLQuality_e.swSTLQuality_Fine} - - self.root_component = None - - def preRead(self, file_name, *args, **kwargs): - self._ui.showConfigUI() - self._ui.waitForUIToClose() - - if self._ui.getCancelled(): - return MeshReader.PreReadResult.cancelled - - # get quality - self._selected_quality = self._ui.quality - if self._selected_quality is None: - self._selected_quality = "fine" - self._selected_quality = self._selected_quality.lower() - - # give actual value for quality - self._selected_quality = self._quality_value_map.get(self._selected_quality, - SolidWorksEnums.swSTLQuality_e.swSTLQuality_Fine) - - return MeshReader.PreReadResult.accepted - - def setAppVisible(self, state, **options): - options["app_instance"].Visible = state - - def getAppVisible(self, state, **options): - return options["app_instance"].Visible - - def startApp(self, visible=False): - app_instance = super().startApp(visible = visible) - - # Getting revision after starting - revision_number = app_instance.RevisionNumber() - Logger.log("d", "SolidWorks RevisionNumber: %s", revision_number) - self._revision = [int(x) for x in revision_number.split(".")] - self._revision_major = self._revision[0] - self._revision_minor = self._revision[1] - self._revision_patch = self._revision[2] - - # Re-generate a list of preferred file formats - self.updateFormatsFirstChoise() - - return app_instance - - def updateFormatsFirstChoise(self): - self._file_formats_first_choice = ["stl"] - if self._revision_major >= 25 and "3mf" in self._reader_for_file_format.keys(): - self._file_formats_first_choice.insert(0, "3mf") - - return self._file_formats_first_choice - - def checkApp(self, **options): - functions_to_be_checked = ("OpenDoc", "CloseDoc") - for func in functions_to_be_checked: - try: - getattr(options["app_instance"], func) - except: - Logger.logException("e", "Error which occurred when checking for a valid app instance") - return False - return True - - def closeApp(self, **options): - if "app_instance" in options.keys(): - del options["app_instance"] - - def walkComponentsInAssembly(self, root = None): - if root is None: - root = self.root_component - - children = root.GetChildren - - if children: - children = [self.walkComponentsInAssembly(child) for child in children] - return root, children - else: - return root - - """ - models = options["sw_model"].GetComponents(True) - - for model in models: - #Logger.log("d", model.GetModelDoc2()) - #Logger.log("d", repr(model.GetTitle)) - Logger.log("d", repr(model.GetPathName)) - #Logger.log("d", repr(model.GetType)) - if model.GetPathName in ComponentsCount.keys(): - ComponentsCount[model.GetPathName] = ComponentsCount[model.GetPathName] + 1 - else: - ComponentsCount[model.GetPathName] = 1 - - for key in ComponentsCount.keys(): - Logger.log("d", "Found %s %s-times in the assembly!" %(key, ComponentsCount[key])) - """ - - def openForeignFile(self, **options): - if options["foreignFormat"].upper() == self._extension_part: - filetype = SolidWorksEnums.FileTypes.SWpart - elif options["foreignFormat"].upper() == self._extension_assembly: - filetype = SolidWorksEnums.FileTypes.SWassembly - else: - raise NotImplementedError("Unknown extension. Something went terribly wrong!") - - #options["sw_model"] = options["app_instance"].OpenDoc(options["foreignFile"], filetype) - documentSpecification = options["app_instance"].GetOpenDocSpec(options["foreignFile"]) - - ## NOTE: SPEC: FileName - #documentSpecification.FileName - - ## NOTE: SPEC: DocumentType - ## TODO: Really needed here?! - documentSpecification.DocumentType = filetype - - ## TODO: Test the impact of LightWeight = True - #documentSpecification.LightWeight = True - documentSpecification.Silent = True - - ## TODO: Double check, whether file was really opened read-only.. - documentSpecification.ReadOnly = True - - options["sw_model"] = options["app_instance"].OpenDoc7(documentSpecification._comobj) - - if documentSpecification.Warning: - Logger.log("w", "Warnings happened while opening your SolidWorks file!") - if documentSpecification.Error: - Logger.log("e", "Errors happened while opening your SolidWorks file!") - error_message = Message(i18n_catalog.i18nc("@info:status", "Errors appeared while opening your SolidWorks file! \ - Please check, whether it is possible to open your file in SolidWorks itself without any problems as well!" % (self._app_friendly_name))) - error_message.show() - - # Might be useful in the future, but no need for this ATM - #self.configuration = self.model.getActiveConfiguration - #self.root_component = self.configuration.GetRootComponent - - ## EXPERIMENTAL: Browse single parts in assembly - #if filetype == SolidWorksEnums.FileTypes.SWassembly: - # Logger.log("d", 'walkComponentsInAssembly: ' + repr(self.walkComponentsInAssembly())) - - return options - - def exportFileAs(self, **options): - if options["tempType"] == "stl": - if options["foreignFormat"].upper() == self._extension_assembly: - # Backing up current setting of swSTLComponentsIntoOneFile - swSTLComponentsIntoOneFileBackup = options["app_instance"].GetUserPreferenceToggle(SolidWorksEnums.UserPreferences.swSTLComponentsIntoOneFile) - options["app_instance"].SetUserPreferenceToggle(SolidWorksEnums.UserPreferences.swSTLComponentsIntoOneFile, self._convert_assembly_into_once) - - swExportSTLQualityBackup = options["app_instance"].GetUserPreferenceIntegerValue(SolidWorksEnums.swUserPreferenceIntegerValue_e.swExportSTLQuality) - options["app_instance"].SetUserPreferenceIntegerValue(SolidWorksEnums.swUserPreferenceIntegerValue_e.swExportSTLQuality, SolidWorksEnums.swSTLQuality_e.swSTLQuality_Fine) - - # Changing the default unit for STLs to mm, which is expected by Cura - swExportStlUnitsBackup = options["app_instance"].GetUserPreferenceIntegerValue(SolidWorksEnums.swUserPreferenceIntegerValue_e.swExportStlUnits) - options["app_instance"].SetUserPreferenceIntegerValue(SolidWorksEnums.swUserPreferenceIntegerValue_e.swExportStlUnits, SolidWorksEnums.swLengthUnit_e.swMM) - - # Changing the output type temporary to binary - swSTLBinaryFormatBackup = options["app_instance"].GetUserPreferenceToggle(SolidWorksEnums.swUserPreferenceToggle_e.swSTLBinaryFormat) - options["app_instance"].SetUserPreferenceToggle(SolidWorksEnums.swUserPreferenceToggle_e.swSTLBinaryFormat, True) - - options["sw_model"].SaveAs(options["tempFile"]) - - if options["tempType"] == "stl": - # Restoring swSTLBinaryFormat - options["app_instance"].SetUserPreferenceToggle(SolidWorksEnums.swUserPreferenceToggle_e.swSTLBinaryFormat, swSTLBinaryFormatBackup) - - # Restoring swExportStlUnits - options["app_instance"].SetUserPreferenceIntegerValue(SolidWorksEnums.swUserPreferenceIntegerValue_e.swExportStlUnits, swExportStlUnitsBackup) - - # Restoring swSTLQuality_Fine - options["app_instance"].SetUserPreferenceIntegerValue(SolidWorksEnums.swUserPreferenceIntegerValue_e.swExportSTLQuality, swExportSTLQualityBackup) - - if options["foreignFormat"].upper() == self._extension_assembly: - # Restoring swSTLComponentsIntoOneFile - options["app_instance"].SetUserPreferenceToggle(SolidWorksEnums.UserPreferences.swSTLComponentsIntoOneFile, swSTLComponentsIntoOneFileBackup) - - def closeForeignFile(self, **options): - options["app_instance"].CloseDoc(options["foreignFile"]) - - def areReadersAvailable(self): - return bool(self._reader_for_file_format) - - def nodePostProcessing(self, node): - if self._revision_major == 24: # Known problem under SolidWorks 2016: Exported models are rotated by -90 degrees. This rotates it back! - rotation = Quaternion.fromAngleAxis(math.radians(90), Vector.Unit_X) - node.rotate(rotation) - return node - - ## Decide if we need to use ascii or binary in order to read file diff --git a/plugins/CuraSolidWorksPlugin/SolidWorksReaderUI.py b/plugins/CuraSolidWorksPlugin/SolidWorksReaderUI.py deleted file mode 100644 index 78f6c3dc0d..0000000000 --- a/plugins/CuraSolidWorksPlugin/SolidWorksReaderUI.py +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the AGPLv3 or higher. - -import os -import threading - -from PyQt5.QtCore import Qt, QUrl, pyqtSignal, QObject -from PyQt5.QtQml import QQmlComponent, QQmlContext - -from UM.FlameProfiler import pyqtSlot -from UM.Application import Application -from UM.PluginRegistry import PluginRegistry - -from UM.i18n import i18nCatalog - -from UM.Preferences import Preferences - -catalog = i18nCatalog("cura") - - -class SolidWorksReaderUI(QObject): - show_config_ui_trigger = pyqtSignal() - - def __init__(self): - super().__init__() - - Preferences.getInstance().addPreference("cura_solidworks/choice_on_exporting_stl_quality", "always_ask") - - self._cancelled = False - self._ui_view = None - self.show_config_ui_trigger.connect(self._onShowConfigUI) - - self.quality = None - - self._ui_lock = threading.Lock() - - def getCancelled(self): - return self._cancelled - - def waitForUIToClose(self): - self._ui_lock.acquire() - self._ui_lock.release() - - def showConfigUI(self): - preference = Preferences.getInstance().getValue("cura_solidworks/choice_on_exporting_stl_quality") - if preference != "always_ask": - if preference == "always_use_fine": - self.quality = "fine" - elif preference == "always_use_coarse": - self.quality = "coarse" - else: - self.quality = "fine" - return - - self._ui_lock.acquire() - self._cancelled = False - self.show_config_ui_trigger.emit() - - @pyqtSlot(str, bool) - def setQuality(self, quality, remember_my_choice): - self.quality = quality - if not remember_my_choice: - Preferences.getInstance().setValue("cura_solidworks/choice_on_exporting_stl_quality", "always_ask") - else: - choice = "always_use_fine" - if quality == "coarse": - choice = "always_use_coarse" - Preferences.getInstance().setValue("cura_solidworks/choice_on_exporting_stl_quality", choice) - - def _onShowConfigUI(self): - if self._ui_view is None: - self._createConfigUI() - self._ui_view.show() - - def _createConfigUI(self): - if self._ui_view is None: - path = QUrl.fromLocalFile(os.path.join(PluginRegistry.getInstance().getPluginPath("CuraSolidWorksPlugin"), "ExportSTLUI.qml")) - component = QQmlComponent(Application.getInstance()._engine, path) - self._ui_context = QQmlContext(Application.getInstance()._engine.rootContext()) - self._ui_context.setContextProperty("manager", self) - self._ui_view = component.create(self._ui_context) - - self._ui_view.setFlags(self._ui_view.flags() & ~Qt.WindowCloseButtonHint & ~Qt.WindowMinimizeButtonHint & ~Qt.WindowMaximizeButtonHint) - - @pyqtSlot() - def onOkButtonClicked(self): - self._cancelled = False - self._ui_view.close() - self._ui_lock.release() - - @pyqtSlot() - def onCancelButtonClicked(self): - self._cancelled = True - self._ui_view.close() - self._ui_lock.release() diff --git a/plugins/CuraSolidWorksPlugin/__init__.py b/plugins/CuraSolidWorksPlugin/__init__.py deleted file mode 100644 index f1a7e74959..0000000000 --- a/plugins/CuraSolidWorksPlugin/__init__.py +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright (c) 2016 Thomas Karl Pietrowski - -# TODO: Adding support for basic CATIA support - -from UM.Platform import Platform - -from UM.i18n import i18nCatalog -i18n_catalog = i18nCatalog("CuraSolidWorksIntegrationPlugin") - -if Platform.isWindows(): - # For installation check - import winreg - # The reader plugin itself - from . import SolidWorksReader - - def is_SolidWorks_available(): - try: - # Could find a better key to detect whether SolidWorks is installed.. - winreg.OpenKey(winreg.HKEY_CLASSES_ROOT, "SldWorks.Application") - return True - except: - return False - - -def getMetaData(): - return { - "mesh_reader": - [ - { - "extension": "SLDPRT", - "description": i18n_catalog.i18nc("@item:inlistbox", "SolidWorks part file") - }, - { - "extension": "SLDASM", - "description": i18n_catalog.i18nc("@item:inlistbox", "SolidWorks assembly file") - } - ] - } - - # TODO: - # Needs more documentation on how to convert a CATproduct in CATIA using COM API - # - #{ - # "extension": "CATProduct", - # "description": i18n_catalog.i18nc("@item:inlistbox", "CATproduct file") - #} - - -def register(app): - # Solid works only runs on Windows. - plugin_data = {} - if Platform.isWindows(): - reader = SolidWorksReader.SolidWorksReader() - if is_SolidWorks_available() and reader.areReadersAvailable(): - plugin_data["mesh_reader"] = reader - from .ConfigDialog import ConfigDialog - plugin_data["extension"] = ConfigDialog() - return plugin_data diff --git a/plugins/CuraSolidWorksPlugin/plugin.json b/plugins/CuraSolidWorksPlugin/plugin.json deleted file mode 100644 index 948772029b..0000000000 --- a/plugins/CuraSolidWorksPlugin/plugin.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "SolidWorks Integration", - "author": "Thomas Karl Pietrowski", - "version": "0.1.1", - "description": "Gives you the possibility to open certain files via SolidWorks itself. These are then converted and loaded into Cura", - "api": 4, - "i18n-catalog": "cura" -} \ No newline at end of file diff --git a/plugins/CuraSolidWorksPlugin/test_files/test.SLDASM b/plugins/CuraSolidWorksPlugin/test_files/test.SLDASM deleted file mode 100644 index d6e85042d449efab6c76d86fd802d237c77e7e02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37454 zcma&Ob9ALqvIiP;Y}>YN+qUhbW81cEJLwo5b!>EO+nwa4=iZs=o_Tk@_s2e1>+Je! z*WSOX+J!@^T1^1}0Py8*Q#35z!?^N}3K;+t031N*_7O`M3;&+rR1d`1Zj4n?#ni}D+42|D z^i zH3mV5b~t|=8RgDsmo&IAitXPIafAQ>&;|kkX#eupL&kE;4E2_k3W!9oWko7Sj~2*K z5Ihk+5-mu~i(~fJt)Mv?y3RG^DG<)4xU3vUY&VVD`oh}3a0;mb{F`YX z(T_HnGHv=AQDblNf$=*`=3dDk2_y6yDnFSOI*ai?@@@Y8kUwRP^|`VCIxL?bOjBHD zfoDNb$;48`QXUSd#JE^%8C9}#*@2@d)>86&7Rxi-A4*4?sG^UnsdE2Kb0bAJZs1cM zPM`Y;^B2u|7qSHv8M`@tc%0UJ5fnU`e0~*$IC4ZDzb|4z_#`0y^Oy2{1S)&%nOh0V z@w;J;{c5sZ4tuq|*;qY6NIS~6rmR*S3PQ;8!Rn(cE9q=@W~OFr4%Rawmd_%al^xNx z`k^(K)hq!KLZ--u(2e3|$q|~A+EOf9dZ=|_aNEP(yV8AuYT~cE8TbRnJl-v z1B>WCsmC6{R2|g4K~J1}N*2#k0uJbNv;OB}^q`$QhAb)m%dYqn%tGb=C1v#sKc zu@rdLYt|%>@~gph^SOse&%y)Gem*!RJ#cSJMJ2y`45IkrjWM5B#aSIznMx}#-eio$ zR3BCIF`1}tjv{)S?r!?|LdHw>3eBuH&NI0n|YV~6css$0;JnW+NofDHPwHTKA_Y47i=RBIYKtaBkd zt3>Le0NMqp;EY-X=OWv4$-^~)IkrJPL?eA+)|s-U3Z%0=7IU`<3b>oWVNO}mHF*|H zDD*7E?`lVM4?IWX^!&6BUSE?@8>o%r22Pg?D&*hYab$!$(G+B9OBXT^iAJ}3I#Dy5 zWa#WU-Kc$OaYt0dPb?jAwOP7nxu3F(hqxRwIM<^oduR$cAIvBSUqAphuQfPA{&n6l zf9n*qPaW`Ezx;n-X!O=qnFZ?wS?Om%o>}j@mo54zc2>4T1%#Rga9MW_up9ngP{PDr z1__k=gpm8^K=@B61&NXoy?*4z3#1W{EOGGB(J-yEb&U|QFpxBp^QOmd^T|sB&<4Ys z=|6p3@^wH7Q3_!S5eiWV!3seDgBt@fl#Ki01B?Qh^tSoO2NN95FM}d3TPj??v;tJUahh*y*-%V#fnI&+EMZ&+ z7gA>9Gvwh> z(fn}i8~dHt*$gSkh#t0%WtNNZMd1@A_Y{9h-Q(}aLty2Dn@=XhA}&~sBl+JN{$7QM zET0q5=gzzt{^th$ul_vOfwEU#z~IHwB?t-idm4IDr5+nl;1BI!fXhe3bq7!}|4E!` zY|x11YUc-jQeZywQl_~!<8Y;Lu0F&W#%S*R^E;#FNh7bOly^Zjc!7aeOLNhO>*U+z zMpp+LR=;hSk&o#k-yz@O$CU5;2j55gS&T zcFim1oxP2>SSb8}a8Ywh(HQt^VD$Ixx>_2!uV<&^RY+zLCjDdq1p-F}DnTMa_VO(l z^NWPPl-a^?5r351P%MB6^O&a&>?JO*I5WK=7&U3w!A?N4h+3YO!<93n&6hEHP0%#o z3--?=Jxq`t2#^pfmioiI*v8Qa_3+y z6H|c9bVC0MW(Mk=r|1b_$1)Fy+%Lis=2P-%&+>`eLks61#GfcO6Y%jR@wI1(UP~}p z0hV5;vY?GFpg8>or+fo8NxG*0g>QwsaTt`MhR94)Q)DpK{D8!G&h*AJ%|7Ua5l@l!XC{ST9xreYJ_M)k;o0FK8XSq3i(ic+!`Yq zblrJ&Bad@u2A4x8-Zd*u3rX10&(vHtK8;*xK7BL*zcTwq~FKscD%%Uk!{P4~zo zuT{2TNlGD3&7f6L=IS@TiGLt zL4LfMyJqh6@=&A&ZzUMT^_&8-T!qemhR=^%sq6RWwm%u{Xrp3B5&e{DGmX{ARQMRX4p)yBK*Dx9fb zSBIZ_6?(7Vl&V=_eh&^+P0Z@Ux1Nf$FlnBRV6?WjTN%3oF%7o)jx#hpCP3vyue_h? zxNg=IG73>VI%5ukr;Wd)kq~IA9yk)C-tc9vP*zQL&qtS7kZq)$icA{M8>4-;@u1HE zMFq~gjK^t;A~V+Kg~CR0<{{TR?os0G8c?tMjbGpMEGB#^w}Jvh!pF%W|2-STa(SI4pp;rXlrYyhDYG> zmUeK^2s)yf18Q7~DuMs$7uT)0Hu4ix0Q)Q^0MZDJ6md@gzpyP#kv^6wJd1mfgCHRq zkL9b=uYpLh!z5_-jA$Ct0Z2Utvno`+P6=NQ;Px1B-sHjjhD_!SkYGPD@;1YiUr*}d zVN*R~iMz~B`a}!MNee0%PWWY~Kqp7OjFRydW+oC}ILSm5)L^J{{ zEtcBIr1WbUcr<{{5fs}IinJZ-81hPICdTnGX)6eVNg8>NNvPV>?y43KI5X@|iaN;9 zQE_DrrSA0y?V32CS9sFJ!*4*9EWE#j)4>IKiNY%LWf`kAZw>VjBS)ck=fx*u)T!WC zRnR1$q`#S%*?~m%CKhXS873U{aoRIdFe+;G)6dh?d z?Lf1nZe=un>bF@*hEkh=pphG;U7u5~25GCHE(^tKY@AJ!*Dg|d&1^(cl-x5%)WBV& zvnoFAZmA;0`YB5AASF0Klb?rMv_>vlAzosCBtE0AH;buDTI)Lhmhv1n;Tfs6?=lfN zDG2>2n{XA}O!NH*?wo@RxIkzhy@4LRU}~KcP={E!>^dkwXqV4;3Xt(k=}GI2=N*d#0>LC&EI3oD zdwvljo-~k!?(6~D<>}<(nSw=yzykzbXQjLK%ZF}N1y>4$t5^V+p_~YBFT1%=D>m=f znWl;6IUh!Y?Hr4WZk3mS*Po5w7JaW@OU=)Px^+=5*mRZd{TW%8>3S#O;*ssiYN(Ra zEAApC9k^NaZNXBNn3vjV2sj=|W^K$N))TfQFmQca!wDS-c%bQz(#vyk37Whe$AW%^ z0z2}$*vxYurhV<6ZG7a{(80FRw&6bUwU22jc2xKk++VzE2Q?;VJJF$Sgb|h8_&j74 zyBhH4`=-g^6|$Oy(bjQ4MXmXIFm6lf zmY-)`Y}A(RzRlk-jvyH{xACJLjsAB0nB52W1iQQU3I7RY5W*iQ=0dNE@XTHM0qn#} zA{+rAkK{!H(c3@MSs&`+QN$vKD5^?Zp3roTN1BDFGeabH(sZs=QWh{4gt3{+Y$8R! z$~ykUKwU}1kr0v5-TSaXjW>XMImsr{(WBONYA5bd=mz7JVtZJ*=j*VV%s>l|aLHLg z?Tc#JD{h-Mh`8@2T=kYRJ7wZ*TF z0#o}y%e-p3k6{hZaZ?JzZI`%Jua6UFRLjZ!7QK)SPQ|dkfPPGyLXXv}IaD);UvNJRIz^<%ZBpH_kHb}v4D)NASK7BYb1 z9nBB#x&?-o{nAeKtoJ@+6~Gdjno1V~ZJB~_Ud%b4;c7P1VhlMTf8@1ktVNkZaB2be zl%4sx)RRrtUh82yb#va*e0!$X*}&ZKCFxOZO}c$+cPyAikM5@36qTjBL#5%e6!;D1 zy9I-8d6$xs`S%qbuJ~Qk9^;NSPvp0x3Fzlc7^~Fr+_G~$Z8IURUpfFAUBg!_ep=Z6up>!g zaLhGuHO@XGg#!a;CNV(Aj&AEO-tDCgps_zSvTCYVRQoe3d~{FG0o)MrY!AP!51%cOV|Ll6A?)~mrOnqq z+3a%uic8bJn7e7I*e0RmR&65ZIVr7XDh1pjM%%jQ!P=e@tMRa}pzgoDRn0x9Ecb-P z)GWq3m36Frxsfbnw+X}0(H&-n2aMMl)@tSNsHaTG>XZ%qvPZP|vk0P_%WKaoG9fUR}uQ1PX%p>Q!A-=HXrXkq)DoH=>%a*{bV zMa9H%$i=)w8MLFmnxB|rO2A5HMg#5m6E;h#1s=hzTUspjnNgDs)vg^f*3DAaf> z=3T;8suM99Kgfo(J3KFtPML=iWRdRf5Z8y3u^T;yIY2NMzwlQ0Bvn=3EGIGYd5ig~ z;L^P=AIoZ(_MpcmZta&oZM<1y+3~*Nqms3zUfPlc=8%*>qc{btl{ zO0OM_nD-NecE-%b>aKUHL=HtW2iJG9vrQLvMb}F1g^RM`*`g1p{D740JPk-zaB!L(mUmiK&nl*AuHiW%5@ER}C>a5rlO57#$kmFJq z0V(2vZ6Fj!vDsINXR%dzeDiU2lAf%OqZ-DhPl@?)J7a++#qpszCNj~7k-3l*-@ZPG z+Ox75uK1LVGhe7#+N>O)?5%N|e#0*i$bzPzloXzw!7k>qC}XRZ)ZTNpJ&(O44}Eqx zxH9e%YfsldS+97~=~6(7WYl;fEbC*|!BL>(`pPA&=*k(Qn5|)RlC4pLIeLP|aw_|# zgpz<9IaRzaatYXSp?E3q8Im~Tcg=|vEgfxV`ux`rZ@ADR(g=$>e_NXo#s575{wkf>63bp zy}^1yT+mbeGVJ10{o<>e{WJGD!GY~izejtYLs?1po@~lM^kZ#`t9eIh;_+Qh%FNE2 zqvd*dfHk`3^l}mVVy(-1yyjqiRqFCrt$F|0V>4Y1ulGi$>t;BQ&qC#DoziBwjVAL^ zrUu$s(+k<@WV7w0Kb&w7I!9=q5eRL2Lg$r&)z-95?)glP=F1tETGq9+_0(2EMn(o3 zP4q)o{Nn|RnOBKQ^#bwR&I9Sqs-98v>V4?XxBb(45VlVHiWH6u^OK*N$+}NIiEhQzI8ge#nVR8 z@!r@4yBF-toWr!%+^YP1zfwz;)^(o5Be>`Fk{F4t_^{^3p};6Iy09P3U7n~eT-h8?ye=bWk(Fv zPpLMC=mkaT&Z|ZEfC(b`X;oqqsZUqr#)ze++t#;ovoPUw{@U7*(|~_E{t*k3Jufz_ zGD}eDG9lk$_3nE|l-TVSG04J(H;Qrh&zMXr)}N8*KSD~;t{7ilOs?mLBhgmkcj&xm zJLlMVL8f1UMiQqS?>0KZ4SM(XUB;p;hzyS^gn6;E6_gZ zEQ~CI{KHURe~SUxm%NK&&}ZT6O0UN=<|`CltedQtmQ4?(NdHY=5$G$4!bXPnEYkT3 z>^rq?|GZHyQ9~Y~m*CtxOl0-Tq4xE%-Av1c)u zT+E0#wZvqY-22C6PY_Wco)CQ?Ss+6oK_E~dXq?Jm+*BNxF&CglI`k;?3jZ@=ojPS8 z={Pz08=x&Kk$g}(pm89*kZre|8^5ffZiSwYWQCNW1mQAej&>e_0CYLD1vDTu2Xr{U zlp@BCKPo_W-#KV=%NKJ7!4wQjm=XKgUNFyKJ{7)*+O0;g=>xe6Wz&R(^!sO^~Bu_|D<4br$NWz=)nd+^7f zZ$CahnBU)^b^|ic^Y7kyrifrsYHeFWXJ7pZ$RQzh(Cm*$8IynpTE9?K-TEwGLmk6+h%}9cm{~ofd4S#k;b9L+=jDeFu0Z(6ExLH z#+a6y(`ffm|S@mz~yZ|F%(%7l>dJTydtNKU< z08{ADG4)UInSbh*v1h@lgkVC^cNGnRdK@XG(Banr1XF+m1CRrn%Q_z<`l1*7`~3cy zTKof2&cT%@kRl9%LGikyKzQqjnB3`yy;#Fs7B-~%4h+E_-zGzuQ}qh#k7R9!LWprp zw{!nKy2q#CexIlIGlThm#kc2C#Z=jTqr-Fb6MH&`pa%lv|77bC_s{tF-_h5y5_V|g z1QnG721((Y(L|@9%YI(%UxW+aI?`j!jOPOGCbQ&4w_=2pB+j!*?WZUxYW)6W?GYC+ zvjj5o6Y+DOAy~ryS5%RxvONr$sfzwH`MIDjV~r((>?51WNloU z8(3TbSwwlzweHQefyY%WN$6Z~Ki-|4{@C@{?aq{V380U>dX9Y-kim2@Zz)*eF;lJ@ z#ASri^E;<|+>F6)#iDBPj+8{pC?cw)aou~>ozU+DP z9`Il?&6;e>kXV8!r8A+{xw}W82<(AJPi3|gO~wejOsMw>3%6M?P-zp;Y`f-jxQ!25 zs34bUI(|pyG#?^Nl@Zv7IP>o$fT=A!5~HiWC#!|?5qPe}ji%@`9!{H55XQ_AST|8X zNol~*K&3o*i)Xwkj))CLsAB*{d;lKh9Q{C^T(7nkqy}mnO~UD>Xt-!&AZkI<4<{ys zJZ9-=#4=5?1F{DC#SE0wfK`C)#uwu8h|JmPFAfyy3Yr&0z%WxVSsWFAuBo_KWd}-V zJ0pY|ohJe^98o&49RRlw!ja1-HcbzKlGF~(!Pi?I<$<(?^mU9MBwxCN(>AA}xHtKL z>@9yFOqI|bnKN6>zeFL@%g&i=mF3DmT zHix2cgPu#*na`azGkOYQ@-N$(~I4;m`2c z@zNmm9>dU;nSFMhmvovCPY=40*7F20yDs`cv)|y@1--H_U|47S$BkY zt9VP?zTaVT2IJ_ALA@$L<1BeV0p$#Ig?a%GZL4cP+8!_18dj!&+Kxpga$s<#rq?y6 zov?{toBQh?a6y=9M`MK^A8|b{LY+j_U3bBzygbgTUvs0FqmcPRN*ut_1D|On1h_)Y zX77!97Z;sbNp0p!5NkbMi)MetE;l!RTW(iWT7$g zuCdpo!k`DZZ@+mJ)VKwFK2FVX@uc<6V|V{tVG-4W;GqT7v)|nsz*T(q#mx{I5RQKDin!P+ z%Ir2a%5%7m_urfGIi{cU-&up|g96OUgjvVDKRyDEeS3f(Ge20$(euXo=&N(F^Ho3! zeHSS#_Z;-GMndOQ$7M=pKjD;u+Dbnl{Ih`LZ&g`;naFEW!Yp0gtF$MIARf1qwr3fl{2arej`O3Nuqp?N0$N|I znWg*r*4`3NLKpr|J=uzxh7pmd_o*k-VF3V;{?wDgs-`Ii|48q5sY%%(sUh>SvddbN z1%=MjbbJL-EN%eakq!VSE*fLUS1sqtVHY|}AA!T=lB$aH!;w-&F$6rRz?u)1Dy9{n z{&u0)8(ASved4p(#dJNGv&oO5|q^y{$ydoJF4`_;Sg zBb~;0*86!1UsUSX<*k!4RS%sv*wu~wtyDg~c|LBg)xu6!i^pp`JH4;I?(5#K7tgip zzMGw1_m9=3shesOc2y7k1=zsTcZY(9ommLSk4g#2-&!qgt+h1F_j;*87qOREwcsot zS{6QPbD4~VY{ey1XKc40Q_=#iqbPFb2je4da>BZUgJDZbY7DO#FHpkjdZ!=Vzq&PV(qCWv1hJzu$x6cSrt~VS` z97y&C_-GBDtU5%y^vMgt@aqou(DRQ39*#&2M%1ZxbM}+{)nr# z3Lk-nmYA%fh_!Ls;Gg}TLKQVu4d6sovOrj+(NN+@;IHyD#iOL)XoQi@6!$1o*DFrn zAN3Wui?Jx#*axG-0q4;s87FgOnh+h_K`Bq{HO#-1+Og-`^z{6VkS8s1DvN$_{Vn`( zT9h;$MJ^@()+o<1#-$DdRYe&Y3_ei>etPokGM2>7%$! zlyDjZ5@Je(AKDZ1AXckg+#@HFI$l^5BJWaS1AFV)Y7^?Z&L zK3p#5RegA-v)B?8%Du$KB)to3Lr_N;=Y@!=ao9@dB$}wEQx?GCF`?rbY*m~ZuZjxQ zv&xDZ!|c5_0bYa+Ig+X5)r<&AOuH{sAqpYj!Lfm_(RD<`7C>B5U*jTcvRh8PoP|dDVne}Hsz8-w!zu+|JRCXs2rFjOvR1#GL_}!NNL1M~ zqGt(&RJY z#CVXzIX$_%*Rarpb*lTlrn=2_;kbA@!D+e=a{i`L4k-;g%UJ1#G&@n3RBQ)UwgqQF zD0%5J$9LpbY`+p`1NfF*Y;-tkgbca}WsK}tE+KIE%?IEl?2&$P#zdWAdiHd7G3YeX z`5oQBuQ~Vq>LurvJ8W|MV>Cfc&)JpRS$p426PIUKYY*KRoQKZlGGocMZ9gO8k;0U> zXIMqKtPcd$S8(IaLAi)c62r-FMV1_1a!Z(8RXp4Mw>DBbRCF_|ed z)xiN}`t-UwnL(CKny1`S0|}(jiOx~V=~i6fTEj8cW;&UW(89aM}yPwB4LcvocxC1>ZJLw@Rm>Ap1#A~*F-H+;2-wYr>~rc8%~q17q@Ep zNfrEG*{XZKU8f67Dd~B22=nnTyx#HgVv|lh- zv$8}`=vu#u4HG=1gYYr-39W{%4e7*%rCgA*43V;=;3O=fa)4ZI%e8y9_`pj08D*}3ox08rucF`{wGyow)=vNP{ zlb1flpwEKIuJfex!4q1;WdX=+5kUP>VQa|@0bSrBY$zc09mZFOuWgk%#{1~|PUWc| zOSld)dy09y%DHAK0P)rrx)L2M@}Vsb2654HFLW~X7?RTqP(AEx{5@z|e@rx#;UAV< z0_nZ#cjF12m6K4gJ)-!OoF*&PjB`Cdp7836jrZ)Wb;cug&S6_Zx0NF0DVdEhZ`W#| z@pQB8CX@T%vfI*zuXlg4oQg=OR+G61xIvi3ufQ|w8T?>H_a&Ge8ZsGqK45)XCJ>kG zV2ml3iDiI*jSA{evj zw&P-V2<)&~xWi(F?ppriqQEb>X>XHrr!^}*F8YHpsrQ7l)5+u}=(Vcr{=$GKkhmB7 zZzD#B=S_x-+$2oa}jvZPj_TOYh#8Nqde_A21|*+)ZT@Pknim52Pp zT|x1H+-!+~jW%R1JH_oVa(%v1IY7+Zq`G=->*51E>t|_VcOFT-key04-x)eI*7I8` z;Rt$Eyr<)Ngm_>z%GcR7gSsVbfWeM2=tHdNIsma;klzSZA^*juwrZriS}A zQoyAwyk3w8Dya&u`PN5iEVJX4nWZ@cxQ;*efPkQ^BGm*?iPVz6Aw7Exvd9W2z>X&I zWvhLlNJ{ppSKEPDEeJQ+?C6uDOWXww4IvS|qvH7FICBNovOi+g(<+&(ZHBZv!M~e7 zY)({!H#zIR zbud2c{XHJW%Dj7#6fz#gu~-`>LIG!EkT$Rr zu}_^4IV$$)@Zf+MLTQp)6v;S$OqTBOiR1V?Te_sNo}wJ)ai(*^(mlOq^26S}B_$_% zR+@F>a3B)cfLNC&Czm%wZnu|OW-*6AOfk@&&U-2@!Xvz>k6X)+iH3QFG|hPMOM!w0 zRip}ubYk+8yjxj37rrVzX}PT^g%|JoL4A5$HdKOQ#Y8f*O&iA&y8{lt`IUVeiKuye z)xCLJ=N7KzyC<^lZ1n}s1fR16G5R?KYY*%7l~`?_lq+dES)~%6q4M0(Q|z{dp-7w@|@BOdoH9G`^ z)}k$Rd1bC37wqo&!`7sw#1mO}5zdTZ7NmM9s*Ytvvd%Q~Y@TM<)tayLRqC34oNnIr zh&1g*KOd1hR z(swnDyo?3~L}qulL&zWe%4|fdU-t{rMHMEYILya5{E1ctPMl_bY3nkNN*$-bO?Xl> zzfL>3n{$efaqs1%Z?L78c0w!W;!VsRmPRM!jkb?2r1*~{43%^!FwZ$LgUQ4ggRRIx z6}q27=5tu*OLYAZOY{Jw;bF7EDc-1|@-rPJBfugNNTi}VBm#aM$KnGS?Jn==&lMnx z7gaieDh{6EZV@!!u*!c16dP9{Bl*Tnbxj&_d8d#Q=?-!c6D2BkWmwt^eC(?E6y}X-Tc$L>?gKJOHVThk4DBOzujb_^4L7E~l{; zzTUHTM}1N~&}$;TyGuJc9AN(x-wz(3IO70l8Q0NyQ~k;AB(}=&;!eYZ(TT1NyI+&H zZ?)ZrTv&8oQ*#Z+V`jCg-5H!}x2>s@LA6EQ%fEhR&u#O0+CD#dH`e|-QndVW=bG#8 zbpVI!dY?OK=XORi<=^^}gY*7Il~Xg93Cq*<=y%w+RG8|Lo%1kWlbicXC;sF$48{LyIwnf6#sEwSx6og~E9#XbW&1Ahg3v(r zNQrbDjJ#@Z&}qC?Ay_9--bL@}Y$eYorbx0Cyi%R+sr;po{}tgR0gvMSsFEa%gFk&& z8bD2LcI05Z#foLPD>i}pNeRU@zR8*-i^U!rL~7kG4IznqlD9swZ{ z2pkl=#PNCkGw|Qi{}lK?vNXTnaX-huGBqZjy)Zy`WGSB+8r0ui2SCE8VyM7>?;Yl! z8;<15^RReyp0qFsdj&)4;@~88#bWfZK4u%&>R=bGjvuw=hP!=(gI})m(BMcNcl4ve z%?x)&k-+3UX83y1=|t&tde|C^Rmji%BQu*inC!YQy)P#+*-BRUZO4oQEu|H1XM!vc zn-jay@5Q3LB&A+%o|h}4#|w_b=QuPA&@GDMBqNi^aO`B3p_d(#`j>mXQc?`GdfV!! zdtDf}hagt%xszt2ZLP9KLmDJ_GI}wWb>a{h4AZrl1$HoaHL?Jgx50`bhe6*_4En0p z!O*Djg#!12uv`uJl3+yhG`--f1o8-;6rW~$cc_;wx7M$EV~a;QAc_J2>>~0|ESsK& zMV>I9UXLJ)MZV1gZ`mdMsEw`!I0@kDPofTP&!e2C#7K2bLp zOO`c5XvgE2(BHguJ4OEya8?LTLSMP9mbpgJt_7@K4dnwPT_}iw=GqMlo4RNJQcr}D zALg2ERjx|&jie!wNGpJCu|}}VpJB2ara8V9ovV)Nfc*Q zi)0cBAVkhY!x?&kR~}4gtsDA2YyZI;BjjY-UYxOQ=!g{)!>sxz#NGvq{`aGixs~;| zQXxZ}PP3m}4I@Gvy9*AXG`YK1t;F)>zAlxVEps;*L9#gH5AENO%$&7T2b=2`@ANuI ztZEu`(@DC`2E~XYbrw?u-cVl0%l3H`);r__3p^jLxL3WwR^OH*5Mrh(Ap-4!XL+VI zEw->EYMN<_^re+%DN7;`VEAC>uyuqapGHoeYFyyT>z=3Cosi+za0b|em`Uj+cew~I zm~tizI?Y)qOz*T(z*S4*eS%GeU(mMf1hFwuD%&xVBf{2v!u?UM{f%`H+@QA<(+VuU zDf_*bB*3K3)hbzOTM56FE}1?zQ1WnF>})fv9b9*-!#{m6`rzHrOAvV(XdXtAzippW zqapHPTbYbIjigY@?Boid2zjM6e5Za8Tp5bW@z1I4vMcGzoQl!wa^0zMeI0%czqfPk z%p9A6(#t{a#9E@ub$G1tJiqig#cC1T__`FCoId>6s@sFD>-o;m=KS7QnOlCow^({9 zlpDDny21A+&Rel;R4F*1Ke6_EKz)vX;FCoRbrFos$uSKz{(En49OU3%@NUIrckBT{ z|IC#_ekygM&q*wdD4J^P(pb#`^#(qtM0t_xLkF_&rGkIAvsT)&)$;r08XwVB{J7@UX@xfHE|uS6?b909TV? z7qx(rCcq-T;HLvPDp1OkjOg_7W9j(SfSX>K*nch*@D314It36M9pfGNjRN+e)X7Iz z)6~O4!BE1~2lwZ|87=?7tluOxh^9h60JGmjd|x`jm!mj(P_;M=eE>#L=uz~KBI?aS zpfHMYeW|wI2A|&ED7lbhpqVQEs55F(aJ;z<0_?je{Ma2ZytC~a@P$12VB&ti!2(3_ z<#3>dH!z?$N_gCE1GHZFFVbfE@=C2OK?4LnA0gjW-<)dP&dj);8r>k2;F!njLU4#J zA_0_ehz-Edib%~$Oh^M~iRs6uXVJ)sIj{!#w>kRzQ|e91YwWHfh96!JDs56X8rL?| zw^d(-N>X22>wMZ9i4Paw%SDH6Dx5Z!BSpx@J-?pq`MjOzWR^5>Hy;|fH!B&=;=HPt z4^}hC;jVN{Dvqpfp;>J{FnkoPS6RNg@8Ch!eEYf`OLPHx<^ULR4=RcZ9}GzE{OeJmi>P7`WOMSSpFJf1({-}RK*z*ZPt3$O#l}F# z!1LKt^UMcN&&aQQC8Xk3s``yMg&2tBm9C(b&HDBr zV{MG=Kn64;+<8iMz;Qw=byE3ZKFe_1{pQFL%CJybP>_J=`d>JJYg+*id7`p&%`{^l zu>P4p_`A9Ej|_01r(Y0-+F_h(ju8sLAC06 zUYs&FF7A?5;a_sYGStq5VEU97`{(%WEB#Au%=7aPzpeD(1FGmeDwv9q@n`h{u%TXv zR|sN=G=BPUUN1bfaVldGy)w{B2s9ACyV<6j-Uqy#Z;u^uwYq{)l!vy^|EMh4!qt4*_H~(Uw+F+qbM10^d%UJ?g~*n7n+GU` zn*~~?#&3GUq*qXNKx(5`QFU0dnQ>0gy1}IdaKVAnf7TDwQ={6$AYHGYz?o)-kR+>8 z@hc|6=IQbv>cKM!iMc(K33(*LE05%1e4*G}MNE#2K(XgLntBA=pdVe1HR!rMtd8Oa|&eWe) z=y$%X`G2j?y+|sUD%-+N=;Bav0*~zgJ#_FRP*-4HbKRcHk^J)Lw5bf!9Z-PquwWHl z*w?s??xZ;v@CLV}r;$sZfb|DNQiqTL-tW4+m8!OEv2g24uAs=;k;^~g$$KoKU4r!G zi=pGGged#q`F<#v8Oa@hzZBc(HOs`~D+)P>{QQbXpXN?j-*NSrtfVhUu~FMUc2Yd* zezOSwI(>L#OFls-;BZ*bH)G~yh^4qmGCxMij|pnmN5TchTAP>Qyp^HNZbtz3(Ils< zb`3k&hrF8Ed%*IDqaKFc?WYOzA*I%#hGbTRyvSq+v}Q7n)23_d|7lJB6wD)5Zge&J zKWjmL`|bC_gZC!NBrLyynFtIFd?P%l0w($in19&#ABF&ce*wG|_fOXy?>B+@yT1t_ zv$3WA5Ac3_{{Q92e|FH5I)lh*efsgqpUuU;LHl1Mh*KV1$WXyTQWw-@q>&Wh-%q9l z;CalW$g~R?^uK^aM}$KJivS~Q`V>i8K3TBIAJ58AfY0FLa$_O#cwC)8z~!{*?~I}w zaeG)wGvo5;M=6wVcCI%RCxwvu9VeuoXFhI>ciMGlW6WB>QR)w67F@><#<6fR!EXTP zU87GoD?`BfUhcxL(8e&ry1!KV-$`PI8XMdrNIWzy-0tu9_N^r1@l50D6L33=HR_;Rw$8>OsT%?u}I zCwUrN%atY*i-GfM!cb)r+*M?1BptYQuD^gSz4A%tmL8>gKT0@L1vbLh%e>Ov4zio+$6%|McgqzVYjuWKagR6W>_$g?s` z^E5kJhd(53{_akTRa=3?zn>Y6v0=|Ka8>?IOlJXZ|?rpPDsH_Z(FtBLAO*4YtBK8i4cbj@s--!!t5Xb`KQSXScqRQP3SatDUZbgH#yF>yyzC5w!`V2YF?CP#-%NM+4`hi)m$CI&*O&T9!rnH(g6G%&GKI(Y5iez?khoGbQf zpTy6vX`15VH72B9!g4Kfirermb-Q)DesCEyEncTYJ!G}qtLI{2*VrZ(5yv%C>F65c z2tDSh$>ed*0Qbk#jA(aazD8>djwNBi=t{AS&;oa^%&eG9P={m9K z75|u|qR8&lIzq)@wQf7yZ;haXOmDv+(qJ!Ib&Pi)IZr=3GLri_mbGg_H{UPG+Y3$X z-8AVl6q_mAwWv;2MAtUpg<{&B;NcW`8&)BVQ>oK&mf(?OY)ARVAG9uz`@%=KDVc^T ztukD68TYR0{Iw=EJrj-K`7gE5ik0}V<)QltMgPz7ySnkeAQ|*o9QHt#`j2+yu+NTO z>gF=`PtS^|v5mN=jFC4z91yfB={@-4<1x2SAjki+ce$BfzWKARu)@hll2V(4NZxr1 zkVDiI6#mDkf#w(S$Ph+gU?*U4;fpZr<<1X&0MlNGzcme3<4aQc$tN!=pE~^a)#IK_ zb%^a|=l5%L!kQ$o0CdPD$fm)FH=7j-!f_KD;hn6pw;z4tI?gvIebVHIa~zO9!Se^k zQoc>RhE?oeMZ6qnXn`ReB_QAXgirhPwhKLVxcw;w`(}}Wt=Jv?Cte;*?84+YPqJ~}%KQxK)#d-`C${4L zS$zBduWl}}*>;9;{}p5WRlLu*H^v^daf|m))6j~$X9Tz*`sqv6eaajEQ{JKvtRQ3$ zU~D)4s&M`NRrT}VBvjdc8_?_o1*?8~ut}zh#3PU3j{Nc(^!2jSmK?63BQvCEBDxZQ z5S9XkqfZZ{vc=>pFB+qmNd|d1R>WTeScm3`qB2Xao2t}j#P2J3C^{r^*z^ru_jT$3u(Zq| zKynZsro5NwT60XPypq2FaD`_jV5t%x@j%T{LrH9bHj+Dg@5rqm(f&V;{RLPZ&C&%5 z6A13^?rydN}zP`})_m7*|Fato2bfi8U~9TZIYi4#(o=Z9PO<-g-NE3q02iOZg3D z8-a#?gTK?gRU~~dkB~N4LpdD@2Hz5t2qxTmvN5ymZdu%$Jn?=!zd^4tzk&Y!7;rT9 zA*2GY&j}R&xpV&a7{s$(_a%xsUQ^a{yxcBR0`GQ!)ApCcP^Y12eaMdHl~wzUv=hRs z5DP+|ok%Mc>g1@d4DWXD`=&{+$QhM8RF<3lq+?v}n3I|q$s|(>?ap%#FY9!EFL{a4 zJHY1(!7vo6y=H~Bzn(}Z7QH)-``(rB)>3B_h|U>7TL-eLdWNpN=J2{(^uaO8 zu%0q!IF^m4lAt?@yA<+0HBc6QQ>v!5#yl`~G48JUaVt*{&RR0GG=g`gKH-v7uS*29 z_UPid416?XRCn8k6f>_54V5>?>nptNVrWiWOc$6ViN{Nn`LLILeV=wK3}X;74A|8& zx%XG$79ZpC_`&1VSk+ zlHYMx_`mKEj|CymqBS2S9LK6!h-AT{!J|f)#&$wQdfMQ8o$*}?E}lk<8uqC|&JvE0 zK@kd+aDoa%y*FQsGncNPtu!`R{*~JIGIIL!%y?MHOS3f25W#BdA4qXX`kmEo>&0bx ztj9B-t{RA_M83w+Z0^>Xua77~0YXi5q@ZWumQa6uvVA2Unny7P7IjI$Y~a*SG+VWFV}f^bpkC}MY8p5Pg`II{{%+Lq8i)B968KXT zWI84oAK9jh@u5YECHJ6-sYwc4_KdwXWTalzp&a(g2tCTxt2w;0T(Ocz+@&Y>oH&KaNJ2_a% z3snJ6i3y1DE^{ZdlMjG&17d!5@m9&c5tNL=(40gW^1yv!kND$9qE+743hA9;ZFv$| zrSf!-?N$WRy3&n)raY+YL4JCm85}+CvayQGVldBPTD*$#a2rW%%7Hn!p~5Ly4pw~< zG#aa6wl+z8Q#598)ZD@Jq5M2Nm1cuK{oC}wu&nef=r;ARM1dg6>h574?U(DDU<9%9*NIi;0LoU zoB_paNPtzic`_?f!SN9c%V_LdBL_)o6B5i%j3;kpGcHXTi)qmxizJgAwkV^<2TRXc z;3f+;={Qnmwd1Y5Bb~9EN!v~WBoGm^M%jc|NNcJt&#`?ZO{2oyM&6%96v@6j9^DQ1 zOG>1)&rnT;3%C#24(!h-q;~t*W;2Ta;UY60oW2R2Q$@J{br zX)HrF&Os8r{{1_n`#D?+RMDo(ABmeNc=tD$6zU~=Pkkvc1xs3*2^1PT^bwM(QjAvc zD95_zgka;V!-RV0hAmGy=+Bl5-oJgc6)qIygYL8lJ>^`guQU<`sC6+ZStY!|}1wBpF00 z3U?bFEMCE$H^R{SLpC`asI_!ikcd?0J|D;OCzu53UEUNlaBTNr!!kgfNydNm@=ZlL zChcoC6JX8~(-1FYm#adOZs;m37X@!Bc7k!}%%j6K32_|xKDq3}ryVZplY7RkU4>8G)pm7BX0zo%jflF#m(+?bAD3yMP$qiio8mPuY#POK9DzOf0-irI-#8k zu!mbPe68Eg!_bNN>!9D@q@cOgQUM1Y1vuz03x@w*PuYR%LocIl8T0!j=CClZzMJ6s zjXo2kp*3-nS*4_~UBh9A?lIZ>Wkb$A53ZY4H&-U@Yk0o>RrY*3tijG9osTV+1NV1a zS#fmPl~N9E0fBhL(Z=rHs?z<&ryDaj2s~y`>SPO@1?B??6Sh)*%Rb0C!3ekj+0%&5 z+e^(u|K%|Huc1}qW*`A5RQu4$Eh1#5`LWOk?H(MU@%dkUUWNH2ib_7WLaq9HgXP(6 zyupcL7;`9hA5{6SD)UYF>mVnbFtbb_PL;PLzY3%ER#8*^XKhI$%QCW4kxpf;9Wg(* zxAkhA@cZ|~$BwerS6JA%b_aq)MfCvY<1BMQ-o2d5Z-964FUu=GhgB7Ln=t#&wB()k%k0pT@R&co zbuJ&-nVjlLOMSU07+%Z+g@yIeBRSVJz_kfWkq zLVXutQMPG%nH^q04zRK(iRw^8Lz{JGE4q1Oc6?CwtH%r9Bg>ck+PCNyT&0hT)O5h5 z_BLNhV|zBjEkaq{4kE=s^VOt*lmuZ-S(Vi7l_Y|rTTjMgnNg0~(O4@(+Tw!jmY+)v zh>7-Cp8ocrR-=r#a99~qlU1hi-hw4b1zI8|^xZ(WWMY8-odb^S!>8AV{BFSno-9QE zkq1T?yt4d^?QbPWE36KDgq@rQJ}x3cLmMo^GxNRWc5kJ4x5&H}UozRWhs^*7!1pyshvuYGG{0aFD#XwfBiXY{oa*ypz9G}k8*e!hOY z&(Gk$ozA$k?)F54z@^T6;11}^>do)^fNw6R!Q;2tMA5e2D2b9QDeb5%SuJrQdFtvt zcYU?rJfqMFEfF>7m-w{I?$o^B%@``my*Lz0H0k*Lh8vICN$KJ zc~MzebAa_0OD&xQNs%BjoOwG%W7j6B+@OVRHSsL|#~=OT4H+t;nUC6RYs(;G@eCoE ztrh&~=@t!3Ij~_%m7H2iN2m?P{%5ESF4aeGa2iiewmS06-rte2Y+MZ=1q33Yc!Hi{ zvX5F!Ee+b}$6`7~n@aZfblKJ=w@tH$$bFu=II8(l(Zy+IaY+26-X4ffQ)}dVs1{V$ zGR;puvETF1)sACw;)_`f#s#2Ia?i0!eWxHTYTY>N-1y+6 zq)YmnP0zCCUeMH+^MlK`Z=s=&H{;tlPvuTcPy4WF$*I8_y}iSokwAN)N^7ZtY%0Et zV5l}-*gR*ZW7ug4k8B~W%Hrt3LmQGPH;t%%k`rjv##u6MrbbX@^kI`Zqj4li-yL2y zd7o8ot``ytW*tYO?Nb_wjh_C|l8gYMb9KoWg}Bl*JC|sz<`6p_abP_e4jR9c-@xk@ zT1@TZ!NOjzm#*AvVZ1icqTvup3|6#l2K;Gz#*AnfW)YZjfll8P&PZl{A*JXr(2uAE zXj8dttn(J(@t+d(rRtbI7+^Ib1u7Dlhfqm~`sa%HsLBNh;3i4o(1a_c`c8csDzStZ_gFZOpW?=#-YT^ntvQ~6DG@f6@>trd~ z6lv1ss>dZ-sk4~}zgAj$y3UIBG7H|U3J;llr%>+Q=l%5>5e@-qaYa-+hnZ#xX5Q8} zA;RO?_f07pS()b@f1Fq#i&B0lmnvS#C>0fn)SJD)UIit%5;hxf02y>bD)Kx@fE9Oq z_SbPL@^n-ZN6wNu6W?<+>_S7akDSAw-pRtp^D2umDfKG|F|IR>k%gcuLf|0;fPAFt zenTvz(9?y6+nr!!gQo>$<=dH^qEJvbsc>%ts|9MpBn1$*PatCJ%dvb-+S{K`CL{1( zPbTE14z0fsm#oMNkNOr3LNb}A?JaLI16rE6HKG}^qr1Y4pbIC6Q}+sD&e6~h_m)qI z(-(;%y5pZAwYU2gM|h{z57(&2oHiXtL8baM;kZ3)^jZ+$Y5XxtbKLQno%}zx^7^W; z2aRf)Cn+waL+syUz0crN*7OK)DdUFm#xJ#wYDn(>`mG>1`G)Rxt^g$t_6kXv;yl9gecA@CwBO=lnl3E85&qxnIE9q>I zy5xmk379+k@55_7XlRjkAl!%*zKfZU3NWK|AU)Ud`t6yXhL@%IfA{Xt{<^yS^DNbG z8*r~a**+5)=Puu40#yK2e-jow(XuQ>Gfwn6-Pt062_?yestx``NJQnEYY>)=mg@ow zly9sPL;@ET5!@aY6F~l|xOH1~@}Xbz@a-1Pob4>WVR|N`p_Zv>AJ$gsmRvuUDQik< z@~D62h*kX!*Z95C`@u4)-SMaSZQ!#qWA9I04|zY!DbKmCj~=C`ZKrc{b~Z&VW|-Ui z>5ZM}hCdrWsX8I>Yd0P9pLst_&X}>O-dm1(UTh4Hp@&wYz(oq7tN6`i(7siB6{w3Q zUCB}k^QG%>ECH_+gtq%E?H#sCz>Ji>fDN;3!dz|bdG`%jF8*=mfxU|U$m zI*wtOxGzvfyp&!XC%_`8d_w=%JgeT|RhFpQf5ZA*tMqFe2V&87P5<`z{#_BqFL8LL zOvC&V2VIU`+pk?R<9tq~?F0^PDcqOtWAT+FmEU?iT>e{+$<=@Bu^s)dJ@%wl{k6yK zBmef;aqU5MO0+YfD$`!}$zinc5hjrETKxKc);sE+f8zAsE6GA;P44nUq~=G1QkV2- zy`UxjiJwJ>SH+j&&j)W2L>Zv8d(BVGAAf}1UIfB6`!U&_2x|63{*Y=no4PuJ$~c-^ z!Ke**B$;D`;&!=A65>JZ&9>TuKw<`gQsoj6(GETZ@u{>TLI(4Zz%Jz~Bct54zrlUIR|#o(R!(^#_e$aV&Bh(qOEZ z&2wpD1Q7ju-q_$6YJv`=&5gn%YgfLQU{v~0mZun`dzbROeZrZ=Q^Xz5XuNb>+2?(< zAVmLpQUt>gEOWg0i<^LXc>kSN0TE)r#-7kINs#Sjl)3F~aqCT3kIP;EXU+$;V0;0! zF-jz6poO@Q1!ho)hzuEI$I>ZuRRW&e=jThMaOa&h5)4xm+d_cC*c!4yjhYOFf!*}( zB1wyv7u7Sxt*vDf^`$&B!qDxK(DEpjPnuNkG+G!Tlr1Jw;<UTC>EJWIN_ z2}2ay`+e{g&(y^}e?{Gr^?*A!7bi#DQwlXg1#FcH9s|)P=vH=k2Su-?fLfm^GBYh; z!(FJ9I4EqtqX@8}?5Y~pV{vDy`Pwm6)xQxNYS<+vIG5PLvyH4*%C<2+SbDI_lm{hO z1R-g{8~Z_$Ll|+p&LdB4gw!AtpwKq~9inDMN3vH=v}xCO_IL?S-0V}CK2B-Chm%qRt_vA`e zWI5izM{WSi-oY~=n2I@Y{D%%P0{|!SB0;3oB7^#lNVV~`S4&iRuD5b1fPt6+BTO^6 z5uir3wI86hMM6ZkWge^+XHfM%Se<8TX}_Zk@X9l~KZ_CJXkRyJvr;)28#vgfM4ORl zkPbrSwwauzlm?!mJ#9ki(g?WwYtf-V-{^%Q05KAF4Y(b=jOgGRz$O97H)emkNI8jK zw5oZLUJAn;S_?lUQ)a34Z{(Y+Xi--}>972aANfeWNuLXF7{yBt-Kmh&YoIyKI10)1 z;v`<3h*(&kaJmtzaz@alFG)U+p@p#trPE*-lMM9@9A%O9the_^I?1Ai4Bt&i`w<$VZ0%WcTRZ~ z?04nhUwqolb3U$3-QO7KQu&%2^kE=fS&k4C(J@d|=KsbPxqcn@#y}k6Y za&Jb^cJJY9S@ywO?pZ1K-uEr?UN(_$P6)EMLBvKth6I%Bf**Yw?&1w@e6@)Wo(}M4 zf@}z~?dkhEe-$O9x)A5*F7OZ;vE&xM2FBG`eH($)q0QBJKgj4nNn!=|`gFYOmS)M$<|bs#Tg%Km_z=136?v%7gDd-1$4UD-cvsogLoU}grqb;0x)plI@K$~3$#@x8qh_zQ&u!UYR~ZC@z$!-Q z+9BTZ=%#bT_0BHdGR%%8^lVMDMvPyJ&m(yO|)JBla*Y*}XCZcT(||XZWlqRAy#oxEcdC8{R*Z4|Qonr_U&>Ka`Jjfp0d5 z-=l1=pCu+d>Jb8?Y9@i?Ks;K&-zB29rg6Ham*bnxP6!AW zII}Y?Bbuh*acNSs+y$&vnLs6WM@JQeZ*YC^xcui2&0_;yvLp<_tC$^=3?@&CDc~e2KHOAqAY8pVjOo0qH0~Om9-2kvdTAZ2IGLkscKvBFDS* zuZNrOAdZx^Ovi1x8uiu24-dzOma4cK4S{D6-gnm{J_<+J}uI7Cwiz%e`(c&(FimU_zk%BwHct$~->|3PqZIO7}AXOH9!oBu-2-W=2vzV#p z6PpYCkPEAuuIblByr>If4{TegSX?$IZFiuV9a@?N*ioR}X2Yu@gkE70T=Jh56nJn} zA<)owc^@)U<6QBV3O)+i9ZQVhLO4R6k+7G1PCJZXXnVyEecHbyER(dgWs$|)Tb;lh zVf4DS=akTvFc5H?+3&nJxO6|k-e1I78n)8gJVDI;odTZ=V>ObgvspZu<4jR?z#XO) z9!i+5<+cyKo|%TCD%@-eRs^tc-LpV36=P(_tYfQa9;~51t?97+TJ+KUP|GS|e3v1( zI2F-_A(@{wSJskb?&QI7%b6o(EsJb1(K-TzsLn3!C(GWjC z4S-E??4HeVPE5*#$8il{=$qgWTI>$nLQ<0BPjL2KaJ9)7!G5YvzwQkwG%3xAU$PX^ zrcz<-4XHMXA7^&<2vT5As>S2Sq&!TGDb}K_8C=-Bvf%M=4HWAc95&4X9qa4nOl}p2@&K9tbNGN2x6Qv0&=lYKkE6#!iY)wmFlrcff>)uD&&Iw&5 z%TY9m#n!0plinN$x8dx?&pt3LM0}wqG23gOKeCmRm7R#EB^GRc7ygCceXd4$#P%ELY*v9=|IU{kY8 zW(k@adD4ZpY3z9z=7m_Xu<3w@&j7ly{SdpS?*TK-6(FYYk zah2+Y*2)lAIT%U(K|2rowOOY5I}00LWWS>@WoDXdHv%4v+7i$?a^^<4l%N>q_Bg+Y z14|V4#`ch|t1(u7zUz`qb4`n{+ox)~xHgr&YWk6{D24stE%7xF`zWsb(wlUKFuIdhxK z=>`G!h{*L(`vE?xTczw`&0?moKKD4^0D_IFrq*WZWSEVFcJRAz;JVpFmKTR!e=E7n z)72mk(ut^H2Y@=8l9bkeg#@kWZ{h_Q6e2YqkX?~MI#D&`05Ew=k#*qOQL8y@UNQkC*Bq%WS z)vaTRs$?R6N9Exbpg(K6_?vT~(rdcz`@!x@PH0%3BbHD{7l+-iN45kXsygFX9-WdZ z@o(JHd8siB11h;Ac2;QZ2xO|T=zAmHPC*WKqj3R2d#s@=SI1gyBzqf5@p1l@?w`-k zQq#dOL{kWl`PF~m1wUMO80%-OO&YMZ? z%N)1SMMTHHR5PGDrjd*(?<^;VXn@5lk9nNu1_G&Q)H-2dFiiFnN9t5U=4KW{lv9cl zHqlvx1&xg<%mQdksa-Z;C+yCfiBV_hb;!TNxC7r1 zh3Zv9P3qXWCP3TwrD{6@RR#%DZFKhZtvUKTrRWs}DMjRJ!-cU&3B)DJZlZ6>LY2oL zPI@;->fR3027e>2$ev6I(J-PCSb%)DOfkDX$Y~ zCHN{wHy|>KSpiv{0bF8|fkTDrH$0G(u`r&=J>Rc-@N`@(x>5F6+?Zl8~ zrPfTcipsr7nfT&&rFNMrI|>OvYm4uP;n|WK+WJnr8ZKMIL#{e=*PT1I@d!oj{ zZt*(E#bU1*ixiV{U|Hr;C3OTZZ~9;t3sO>wF5m)!D~j#LhDBsmcUp;crgJVgMbTkg z1OtS0_KeEelv|%9u~Sn+Qb}}9_2|E(Q>PRSmZaZw4qr-5XI*X@AELI@=kV$8q^C4t zn2?sHXNAliq!fj0UcGV+;8lvh4E@jyw0IUxU?sLMI|m*_g^WtOKGR$#VS^oy(jn}m z5SkZS`2=DbIp6@TzHZIt&=2f0DQDAY_4<;5l@WqtOeIqK#ZJsPSMFV4I|?I>EYNQ3 zHMZ}Vf2$bKPN?;XNQaa~u?KJ@KcZl2>_TzKd44CajDSwj=91FhOS3ngsXA9VQpXfv zyz?O18aXBck6iIQD+f0!l2YAE^BEeAq$Q6<(Qj~g8bSfC(h0(J^K3Vk%d8K-BvUY@ z(Wi5PRg{(Q-Ek51K^-9&*4+F8-9r2{7|UD_7|8YLt)RI6sT1uZi>;MFLjqDfVt-Aj zO__Ltj-srl)ge?-gCJ2jXnPCq1N{76uoTLch^6RIScj$=vW(=rkcW=u7?+ckvboS? z79K^v^lWF@6%X#^kQ&a+mSf62${}~K)M?*BUl|m2r^f-6xh3P^Gs=!M3u9#n*kP$JZE-<_gbDnu zX7_a>|6QE2j}oKl$5Hsu8%V;a=hYsxA50tDG830ZgRA84QDiidSsmhMxn!nn)82@d zrpezsm3y#%eq%X~S!}U!s&DUYA!O8YZC&iby1fLGl>zqFoOboccgvu0mMdlt$xM^M zAW5=|OWI!PYKIsPcFY|lpTGR0lW>qg%0uaSl4wvpt)tWX_EQqBL<@TwUgQS?yxfmUs^{8z@@!CE@hWA z9P@JBHOCP_^{~-;A$7iHZe9BNnC1t;T&5@HIf^zgT`#lJWxgiq{dsK2x41L)$g}0? zP|U-|&uFJVlv>HZ^X9pX6BAsA*HtRDo1&j$hkfRi-d#Wk)a><>iSLv1JaGf#WCqS6 zg(!1Q!TVV2MmO;EAw+f2`_&n{-!s{5JAT|Jxoj(PxyH-bhT`>aAJ`-oZ+Xup1etS6 zeoH5A41{)XN3^Rxr1IXfe|-z-fOw}<#}<=Ee@4zFbeetYzF0F_jF;p5^(GY{9Ldg- zscK!8aOz0N*xit;!gGm0a1$6cr=6X~Yj9yFq&L`;K2*=+mqs{O}rK^UM5EUuXtQ9_W9Zo)wAQ?M~W;YV&K)q7}DC zVm#n|aZ}+^^WrATgYed6qEzXhNOPj*l4JgfRD5W{q5QyoyyyEPXuo=7Vd_hu>$V+A ztu^m%ATJT_yvkhSu*T1yJ^`cXKU3G1*W<~`>)*cjKldHtyp81*23ltwJ~8!q{1aW4 zI?wjNWzk?d7BGx8HJNv8Gr6rzw8eX(r?%m0XGwRf!o!;3!Z&2&*$mSVO8 z_)$J#*A4KGygyta1@YMHaO}Bjn}FnlE_mj`z`JnR2gu&cX>!<>TWiEL4$OYf@S*eq z+#Ego)T~}-HZ31I9o8-^!NDZTKriB+!PyUzVqkVi$F?=yx7SEc#mo)u{g4ZvJ!Dt6 z={oS862cHPwmos_pXuUsl~4LU!iyhWgJuq8m-yW9OsvVQbUMOSUhDHdV8)Pg`}FzN zvC4$n8cyEmuq=XLWF!5qQgc;NPkzc{A*Wcyi$$(>w!hX2biVXkL)~C^Ogp=r7}8@s zi(d{O{hnPyUDptwm8kU0UXqSb-Mg`OkFW0NKz6^cC*?SUAVvK591V&ZfAOf5N` z+nS4=H^53}&dGjHkiHq&#?V?!(}Ooj%Hrs+T=k|&wlu!H-0fkNZoT`ok9yX=ZPtJT zi&gMArOE=?QL8xRP!e7=|6tE{uMEUw>I(zl0cDGJRz+uN>U8tL3Pg*mLZhU)^|{-A z>y0^g1?jvo?klH76h-il4_Rmd@~T!2CL&1;v%~(-PITxiq{@U0VR8P{CJsBXtisVS zq!fC`^?AlsYPI!{hY@x-!c+0dolkACpQIZ=pj}B(y6VqdB$HTd=Z+1ww2owTiW%6O zm)c&{GwX3`Dp}MV89wm@&0sy003?_vo%`ytUVRg@eH-xZ8rQt+hQIh3@c_5p_{L&GHLBrdn{jm#>d2f6!(wr;Pf`f1k zU;jP`blpV+bDfQl?N|`C3((nl^)8%eKJb?K3NojDJ@}>fmNiBBd_~{j=*SjUr!j0W zL@6b{Y0RLZQk>pnNn(5OPbfx7@M%+%PW-q!lB}FqW)Rhm>$o@<`SgXF_q{B2bQ3m0 z8dHdL_D%Uad}(($KI+!g&CuY8Q<*iGp&(Q zeI3@)Qx(WB{P-$^zRRFljM`3hxhp;kQWE#D>AhuRUyq^ZH1;JuMYuCZZyb=H$t8UbW2Tj&6aXq-bUYZ)N@Gu@+ z!pP@-$3tC2C%^z}0Nh<=%b9phc8ZMB0)jS+v#hE^etLqK3!lf=A2mDBPAkFptyQz~ zmbDF*+yW7(5Z?NWXe_D}!`s1Rk16pkjxtT>*!Hr|>4j_RM3NC|>7zU}6)J90j#T8H z%NVZS-d?3jM4@#`5eLY!m|(+Mp@JP`d_h8r91(!)bMO%F0sbvIhOSPYFMYMr(vpJK z)53_ci(res@jJ{cjQXg;=jl9+WB7jFkfa#4c=?}G(gqK`YZ*D9+X%BOkI^Z0$JH$K z}eW-5JUv|j1ATmf!V zoi>pynT<05jzrh>FyNdCGR03PPv%b+xhEbZc-1KE&A**k#6Xp>ZK)O#5Hw!bQQkO& zs(pVge$M5U(oi$ohJN4qA)j$gyit*4zz+vmx4Z?kphnilPR%==XvY6w9ZY=89Oj3c zP4X8v-ysLT(J`Z$}!X*H&kyFK>7L89QRlwYW? zbhT*#F&mrMg-_yQ3tM^kO&*#e-Vo?kxGBhs3V76=w^zH6It)ni$vl(6AFaPvWcw@T zm!Rrqkmo2u!y<&F*=&tkG11t=R*=BUUx&PjXb>uyQgQQ|G}$-n-NhTL=?I=B&SjY? zD-6kgw1^0v{V;F%AS7;y=UopDul_Nmi>%LoaIa9tk(~G_`FY!>>??VTv}1X&mCT{r zfzR8*oYoA75e)cisGXktB0U(CEU=8SIDHRSQ0!*Ng*R>ob42xrXgeJYAyh@ND>t)! zNaOa5GI5k>O3$J!l)}jJV`;}knMtwd#F-D<6|v0hD|2#%dW_no8K#X^&DlL22G{wH zv;s&YyL0^#A9QQKZ1AYzVpPwH#nR*4y@i|aVg%p3#lv|Vo2v`ns~b^lL=Sm3I{?=A zko31_)Z{J>Po~!gBS(Iy?n_wg)Oa3(SA&ULKL5N>rryQyJlkD+94Rp;`ex}WEy4M_XTXew-xW$% zmhK!zWN8UwZ-Jlpep+;-XU(G#`WdSgv2uVd{tw zoAuKnlhg+M%2`M$!ly)v@b=YivyVK%3^uGuN4|Im9X<23c&Wf?>pOg_h-`^S&kunP zGU8hwq=Z(zvPQ5IS-Bo+EH-=PgZn8c$R+FEuQN319ITpMu2kYN(WAk$4BDQ{Zrav& zdZy~Tk1p2TNYfdWEa^1Dp4R~tRr>XIZUc8=Ylk!!jknUfcfN()r%RA3c1bT?IL8 zIIzk&LdJ$g}%Vhgm? zwm`KBYf2CnVG3(wPrGD;ue0BWQCSbeWs`0y03yyRLnu+*boQUSzm7dXcX+jvQZ(Za z$y5b8lX^ggUb>h`*8ezVO5stE+|M`Y*=j~Rnj_)LjOEDhmyYR8*`Wkm4qv_f_7=5} zS9fFIG_q^l{IVjs2CK5#IG%*CG-oO;qHFUL=RJ9+HWn=ozd%^1fxXH})s`P$GLf}5 z?&*DYY_>+go>Pf?6HbZnVGktfI%`&E;NT%6q0_W#aiFEYma;CfcpgS-3$zmhH;xP8 z1>X|S8}P#Xvec;D4y1^YV}sS}=$&k-#9Qd*Hbbn<7e_ucpM%H!L zOSD+$1*O)%i=T~zGwt~A z%(yLIgCga->!+KCzav2~r!SuFg;D(e_mgmq0p{wXfQWWy%zQ7I3 zBF?>ri>|G_LYtJy^0XeK!y=HWCa&2xf)Y}k8i%=#)k18px$Twarc*q6F)qLSrCp6!O>dCc9$NupqK5DC$+?rtI-pDE^>*oxCSIV9-Qo}YV*7!l4zdH8Kt7;@o2N;n==u9(&Cajng;H~%fH!hpA zIlL-k-)5oa6r~x@!(-yjO2!kErZ29HWIs}l4huf`91LwKZ_y>TDOA>QN@t^QVeN6be|E^&fhsJNT>o$Hw5N*vW0z5p(!tPVK+ zlYKThp%H?A;bAbxAktr&fYw zSqlX$ufPHHqDCIGbSgP!>m|Kc$hH{O-jK|PDyTvv(=}ePc5JXrw|g#|E9A+H=(2*7 z49#TWg;<&7cXnU7vs#GcX4B4t3$UL=CD@4gmY{gpQ&~s*-3fveX@lG#uPqf8@GPhZ z8N$tpO3{kvK0Zm{**L3K`g4X6G|oL0gFL=@+h#nf-hoS+J5HIGtMO$!EC0Mkf0xB# zWZBgYQv#C)66%fBR6-4)J|NZLzMAPZmzvDCiJkwQ4#D z59zC0J+{kqQXx^iu+3CkM+L#*9m9CST{3 zWl^>Ti^>GXNSsn^IuAe?S4~at#c3M|w||@TL^>!a;B-l;u4zO#aBUbqo-_{-;n2!8rEn)qsm^yO0^8y|84^V0 zOx)?qf`>A=DPPCj!Zi8mAXcX(6)yE<|n>#m|^H^r16aGAz2q zS18)vwVR%YkyAK>u&98};e+jpAL17%##~CJEbxShC++5bilBZlt-{r$!+067A(R2p z_BA3{bsvKDmcz-kXvcgeHW56YFoh&qA?@c$IW|ujhyJp{yUE55tf9BN0P;@w=B*`e zb;Xz>pxpB(0`-8}qD&-(8zWK)Ha=oK9?@fx@PayA7dq?!27o`&AyfB9>N!Ca78aM) zI!7G;ro|4n#@c7^1V4k3q;NuCXW**0{{tz*wy!kO>$(c_11a-kT8>9;ACSE@VnO1& zXML9G^wXNX_R@D30Z|#D=wV&@Tv?=t=?1pwT-{)_B#~oPzRn?aQ4MIc7(P9DW}|K8MLwpup|%1H zl8NYIcHtaU;<0$d%DM0#gt#wV4B}NAjp6OJLiCxku<$%IxtZ7}DLwEfuc0zOX>WhO zR;G|qCvFWYVIVYnD0ih95y*vXAw(n_njG<6o!S7mAlW^`x9-#>Ro>~m^i*v05TM#_ z?)5TT;c)DV8>WjEJ$`^I1P~s$aeN7PpB>i@#>1;aZ$uF!o4p(4rjZ>6Uxq)& zi_nEQ81$;+DUQ2u5Pr8Y(@o?d>qmwI>TYn&heICu^$nt#16KW6F%@~|x3IC3L`R~A zkZYYoCrrg9QS8r?QAh1y<{LL*`RdVQsWQox!}Js*xxx>3lRqSgCxg}ftBebBK=P+x z83TC0W*2Ku#E3w=T#8-4FBNGj;>7aa3zG9^BK60Kcd@`@;;2JduVvyHC+lj$R~Nrk zIYXEe+ST=`mYz^@>AK@toU=mYB%K%y8Y3?okTYizp$qKn?QqekOy)%#JQXhWF&2H5 z^wkx#DjCsvMmC4^e5Fh+nAr%-CCZylq~yIx_#1L{K?I5}=^;h`tHm;=+XG*m=g=9b z^fM3QxON1LhEx&?i7-K-_fHC5d+;LgEZDSzt7iz)NQxH_UPd1f_9s{JVY`3@M(mD6 zo0|^k3L6iE(-&sme8OepJHfqvRb|WbD$ykC622uUkwIX{@a9%k&5&4kyEIT@ULTL{ zTLuJj6!eKRVMr;35xsyfG6??sok1`C11Sm@NoT52B*6JpR4usQH*+koKay5TVS@kF za@7>!BP{~y*KQe~1V!iSNg^SEuT8N0jd;z+7Q#!QlPknDtQ&20x}OV_#LFQqeX(H$ zeEq6pqoasuT+DjOR_PNdM16i692}s4$uDgm_}~B2nE@uv1BK51fc{kt{wJ0dsFd~_^rbfZ zpYT5`uK$E10JWli!vC-S`k(MWOP&9OPyYu0zryFg!~d?$^%HIY6ngsU{r}*TKPz?p z$@FI_t)EPf|C8xIg|+@<`Ln9gPnJet>9D`!`M1W=??ivsAo@x49{+z4{aKOdcfP-C zb^PRWC;5f%XXTFH3H}z>|49H#`71%<&!T33Qv9mY^OE=Yv#B%xLh)aH)j!~WX{-K( zNB#=`Q)%^2nim-GJ@HR_Nmu*X;DBmm{~n_MDH-|)*I$yMKe?oS<@#4Z^f&zf5D)!{ z{{+PUpOoltpo_oN4}XF#*?-eQ`~&!x0^&~~HOK!aJ;dJ$|5m>HN$AVYcY?nawf@2W^R1T;C|dLXsIT=q z*Wcn=Ke@p9|A#2g?^0X8ll?8T^^;8Ef06wwy7fEH-`YSwd6tC!M^OK#6!a&{pK3lY zEdLp2YvJFtef|LcB}?-YxF+&T<}vWo#3a#a5^VB!k(xi*{uEgG$z~|_3)}yHxs^W% z|4QrsNysPj3*rAI`TvgoJ3sv=x<>XF^nbI}e}^~xm52Qk4kQ07{NJqX-wAI1N+|wG z;H&WemR|e^7tWsX%UZ$9Dg9Dk>vy>R@et*iXW@t=gWUm5;aLfU`vz$qLs zMGc%%#S|z|{U_+pUFx5pH`f1xz_%Ubw6XNVN{k6U|93+8;?V&(ds+dW%FV!J_?KEZ zKidoV->aO+FPH0sTnfQM2F&wV#gwfC(98+6R{I8wrvoXXp!MU zZNi|Vip4eZ%v`WIz?rl>xAa zFAoX)Y`+gbDkfyje&i37k4_TGiu<+DVGdb~`8@V(g>SN({4pb(IWM5_=iIm%;q~((~f#_k8;Qo}^g;4z{rE5jc)v!s}%b0YMeZ z^TvN(dHz(0VF~n zuvQyhKm3A>E^2z;{;bdV_TmtWh;}p!WG^c@*uBJA%gg9c0Kd$DKMjEA9`NA`t;*4< zw0*x79%yAKys*TtG$k+peleS6?XRfyWsH-i>f`T^U8`jV%dLu_JujuZ9r+7+zYg6wg`u>7CcejgaKKLU%oaequBZFSoTa@a*Ew3&xU?AFFC*}9keWJ}OFZej-4MuEl ze)P9xfy)6*D^9cux@Qmu)-}A7%)lT4L|^2uhW{CnQSOW_UjZWpR{tf__J$`Cmc^md zxa=3Ze}^s_c*_M;Quuu9tQwiL;e(APv*dhpjEsgGSdE#Pe5Cuj{zawbU-OcG4kQJs rx?v4fgy7-(bt6-?F%WHat#yrG&HmH(0ld03+jd_5LKPTQ>gxX=M*DuZ diff --git a/plugins/CuraSolidWorksPlugin/test_files/test.SLDPRT b/plugins/CuraSolidWorksPlugin/test_files/test.SLDPRT deleted file mode 100644 index b941ec1f1bfed2ac4c905de0f918ea3ae75997b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108224 zcma%h1CS_DvSr)-+P3X}ZQHhO+qP}nwr$(}+P1xK7Jp{`-;KW&Q4u$)Zk@`^dm{7J z$;v-~-v$5x0IAi4UZD1cuY+ks1^@$q01$jQz@i5S0GI*<07wG{06_gaiPbfDWrX?p zSXAX$l=Z$zCDr+vOoSDmfgp>`nxMNW?OS~B&lh-yekQcsGa8Mp41K$g0KHkMaV*=m zZ>qRMNp;>4O~?E{@!_EW0D^!303bjC0I>ez{|EHnfk}$X0`LMTDw$}CXv*{PXG;0o zhWoSyV?%B)YNkGK&{VeWY3$JE0Sc((ai6v$uGBwa-M|0mzmSZkNXBsl-9H*JevLN=h z-Og$HX%&+dBw;;Y-P9KUPw>;fi0^+bfBb9te-jXEkKy-;pM1-jJBE?A{@=NsVsw1A zwH+lUQ8?4m__RbDc>jcz0|5X){tHX~H`f1Rvx$q=YV>h>lgG+Q$G%&;#+MD(Zov6P zq`?_Mg5K;wOL%xD=j#Hs7QP<`7yf{L_CT$DBuaIQ&H~|GSc~{}$>c z7qVs*O*1WF^l#b3l_8IE5j>$KIjW$Akc^Zh78BQtmgeZr@s4tFyq22H?Zhkd=aKbB z^t*xleZguuZ>9i^vp}9O2?S(YetvQbeo)u|0lY}K4e)**i__aH>xn~fS0M8mzSs^_ z>ALV&N$YZ(u+P<4FGJW|x979pa*c;7ASn~=I;wW-T0Yf9^MRH3MKUy|0+7)?Ot5PaKqhO?t#W zr}p<_0lSU)09E`PSh7=Ky9oXSx(Mb|-D7ec7yY`4IV=_pJr2zZve$ShWd6S2w??qe zOlQ$nWE;?Dr0pajqOdQf6pmu2n9REj9Yho;4`iiLOo$6?P&EN8KH`@HBl+d7YEgO1 zq~J#a$Bm>`J+)=^G+nAXhKibx% z0&V)|=Jw^f6ekgMgK4^tc^$NpsiOG%26)CXPBSd)8{UgM)o>Z$78Rt70;Uj<;±lvkRT2#h{ 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

WC^V`cmc7ZSwaIb#+l^q2v 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 z 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