From cb7e69ee8963ce5ee6a62bb8341619614fcd2384 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Wed, 24 May 2023 18:20:51 +0300 Subject: [PATCH] Squashed commit of the following: commit 7fda555fc0f1e38f5d634f3665348bcdb1740a11 Author: Marius Stanciu Date: Wed May 24 17:46:25 2023 +0300 - for all Editors now there is a shortcut key (key "C") that will toggle the cursor data in case the cursor data is in the way - Geometry Editor: the Path tool now has a new behavior: when key modifier SHIFT is pressed and the Grid is OFF, when the line is drawn and it is near the 0, 45 and 90 degrees, in each quadrant, then the drawn line will follow the nearest target angle (0 or 45 or 90 degrees) allowing the drawing of straight lines. commit e5dd2945760a31ffb3ce65c43db86e8a24672638 Author: Marius Stanciu Date: Fri May 19 18:18:38 2023 +0300 - Film Tool: fixed the export to PNG to be done at correct DPI commit a49f54d63fedc56117a4755e0b74183799bcf675 Author: Marius Stanciu Date: Fri May 19 13:09:08 2023 +0300 - the selection shapes are now moved from Move Plugin to AppMain - Fiducials Plugin: fixed errors due of changes in the Shapely module - Fiducials Plugin: fixed an error where in Basic mode the soldermask opening is added incorrectly commit ba3152e5f9968321baeb444d19d4a50b6808baba Author: Marius Stanciu Date: Fri May 19 02:23:40 2023 +0300 - CutOut Plugin - fixed the manual adding of gaps commit 761b61668a06f377f03e8afdf4d220a99bd1ae9b Author: Marius Stanciu Date: Wed May 17 22:48:39 2023 +0300 - Thieving Plugin: fixed errors due of changes in the Shapely module commit dea367b18511bbae1f5f36cc13f9efd9841f7a05 Author: Marius Stanciu Date: Tue May 16 04:34:32 2023 +0300 - NCC Plugin: fixed the Standard method of copper clearing (both normal and with Rest machining) commit 6719e2ef8e2c8b6736b4d2ee51724c58f52d249b Author: Marius Stanciu Date: Sun May 14 22:14:43 2023 +0300 - NCC Plugin - minor code refactoring commit 5d274dd522cb97574cb8f6f1d661541bff59f418 Author: Marius Stanciu Date: Sun May 14 21:48:14 2023 +0300 - Isolation Plugin, NCC Plugin and Find Optimal Plugin: fixed not finding the optimal tool diameter (the one that will isolate completely a Gerber object) commit 1d68dea61c082da1cda89d0fe94b4874c26cf5f4 Author: Marius Stanciu Date: Fri May 5 22:31:18 2023 +0300 - replaced some type hints with using the Union commit 412872bc09e6ee8ca017597c3d5316e46615733f Author: Marius Stanciu Date: Fri May 5 02:40:41 2023 +0300 - fixed an erroneous opening for a Gerber file generated by KiCAD 6.0.11, due of a rectangular flash being eliminated by the global unary_union operation commit 765d7cc05bbcd3b68eb7cda63dba669d9e80e168 Author: Marius Stanciu Date: Sat Apr 15 22:15:33 2023 +0300 - when parsing a new Gerber object, I am "preparing" each geometry added therefore making the Gerber object geometry possible faster to process commit 6a29bcbe7ca39f352f396f83d6d209d03c019192 Author: Marius Stanciu Date: Sat Apr 15 21:29:32 2023 +0300 - some code leftovers are commented commit b557df8fdcdb68103f0d91c533c85775b6aa456d Author: Marius Stanciu Date: Sat Apr 15 21:08:48 2023 +0300 - minor fixes commit ccc71eabc2fd9b05dc1e7347cde2d35e4e24c35b Author: Marius Stanciu Date: Sat Apr 15 21:03:30 2023 +0300 - changed the shapely imports a bit according to the specifications of Shapely 2.0 - changed the requirements.txt file to reflect the need for at least Shapely in version 2.0 commit 6f93734d3f109c45b67796f8de5b666d34b1bb3c Author: Marius Stanciu Date: Sat Apr 8 12:43:34 2023 +0300 - minor name changes commit faf41d7bcab75f47a9502721fbc9b354d6759c35 Author: Marius Stanciu Date: Sat Apr 8 12:29:45 2023 +0300 - major change: from now on the only dimensional units available are those from ISO METRIC system commit b446ded9ab06462b3a33f8b636975b133a524a9e Author: Marius Stanciu Date: Sat Apr 8 12:10:02 2023 +0300 - fixed some really long strings in the Geometry Editor toolbar actions - modified the paint and buffer icons - optimized the editor menu/toolbar action names commit 72dd81848f970d1ff7290c40781b6a2188734ea0 Author: Marius Stanciu Date: Wed Mar 22 16:43:27 2023 +0200 - in the toolbars now there is text under the icons (which can be turned off from the toolbar context menu) - the GUI state is now saved and restored through QSettings commit 1dff9cc56698c55de0c53762d1bcfe7b8f5d7f26 Author: Marius Stanciu Date: Mon Mar 13 23:08:57 2023 +0200 - in Tcl Commands: export_dxf and export_gerber, fixed a mistake in declaring a wrong name of a required option - in Tcl Command set_path added an optional parameter which allows to create a directory where path is to be set, if the directory does not exist commit 3b3c87e953dda07005ea0eb5c710ad86656353a8 Author: Marius Stanciu Date: Mon Mar 6 16:40:49 2023 +0200 - fixed some possible issues due of changes in version 2.0 of Shapely - removed the import * statement from most of the app commit 33de5314b15a2773e15abf7fab2e907e0cf1b8c8 Author: Marius Stanciu Date: Wed Mar 1 18:15:10 2023 +0200 - in Tool Milling made sure that deleting the only tool will not crash the application - added a new parameter in Preferences to control the number of processes created by the Pool() - more processes better performance but also a lot of memory consumed - made sure that the display of messages in the Status Bar is done asap commit 9d8852e611b32df734d21c3de62bc1db6b01850e Author: Marius Stanciu Date: Fri Jan 20 19:23:34 2023 +0200 - added a new method for bilinear interpolation commit 9ce9c3cb54f39e46aa571f08c3fe5806a2007f11 Author: Marius Stanciu Date: Wed Jan 18 18:22:33 2023 +0200 - in Autolevelling Plugin, preventing the add of a probe point on Excellon hole checkbox is not disabled except for the Manual mode - in Autolevelling Plugin, the status of soem checkoxes (avoid Excellon holes and plot points) is stored between app restarts - in Isolation Plugin, added an convenience shortcut button to launch the Milling Plugin. commit c85d04bc0a5658710254dce1baf299e025eebaea Author: Marius Stanciu Date: Wed Jan 18 01:32:28 2023 +0200 - in Autolevelling Tool, when adding manual probe points, added an option that prevent adding a probe point within a drill hole of an Excellon object that is plotted on canvas commit f42f05d93e0fa30675610ddefafccbcbe8b7e3e0 Author: Marius Stanciu Date: Wed Jan 18 01:07:31 2023 +0200 - in Autolevelling Tool made sure that when adding manual probe points mouse dragging with the right button is not counted as end of adding operation commit 220157641d22d1e930e46af0196a3f9854e77368 Author: Marius Stanciu Date: Tue Jan 17 01:02:52 2023 +0200 - fixed the Voronoi generation in the Autolevelling Tool (removed the Foronoi package due of issues and now using the embedded functionality from Shapely) - fixed the enable of Levelling Tool only for CNCJob objects that were made from geometries that were segmented commit 853b273e79a846284633f922d18f3a1fe7c06220 Author: Marius Stanciu Date: Mon Jan 16 23:52:30 2023 +0200 - fixed the Voronoi generation in the Autolevelling Tool (removed the Foronoi package due of issues and now using the embedded functionality from Shapely) commit a1b6f78d78b3e75e870c8f1a29e577f3a8ab3765 Author: Marius Stanciu Date: Mon Jan 16 13:28:50 2023 +0200 - some PEP8 fixes commit 6c5a4684189dd953fd4b6c5afc513b7646ccdf1d Author: Marius Stanciu Date: Mon Jan 16 13:02:47 2023 +0200 - fixed a decoding error in the Excellon parser commit d6ebcef38d792f9a44b55b044c69ea281415dafd Author: Marius Stanciu Date: Sun Jan 15 22:31:11 2023 +0200 - PEP8 changes commit 2d0ea65f1b28cf291c8e14a559cb25ab2c4c38cb Author: Marius Stanciu Date: Sun Jan 15 15:25:20 2023 +0200 - minor change commit c1377d509054f825c8943a31f71869173595e546 Author: Marius Stanciu Date: Sat Nov 19 02:29:40 2022 +0200 - added a 'return' button when a fatal error is encountered allowing the user to continue the work - fixed a crash in Milling Plugin when trying to mill slots that do not have drills in the same file commit 22f4d92be798836e21754865e93f6a97758e5c22 Author: Marius Stanciu Date: Wed Nov 9 20:56:39 2022 +0200 - minor change in the requirements.txt file commit 8b4423dc0fd75707a4d67c95bb27cac32f6125c9 Author: Marius Stanciu Date: Wed Nov 9 19:55:59 2022 +0200 - when changing the style for the decorations from Preferences, now change is applied immediately commit 9ec2ee2920051ddc14b90364251d40eed3824ae4 Author: Marius Stanciu Date: Tue Nov 8 15:59:59 2022 +0200 - in Drilling Plugin fixed a situation when having tools with the same diameter will get them multiplied by the number of those tools commit d1a4de676e2e6b701c8c5846cc3ad3b5886c2af1 Author: Marius Stanciu Date: Sun Nov 6 00:43:34 2022 +0200 - if PikePDF module is not available then show an error but run the app (currently, for Python 3.11 is the only module not available) commit 6509089dc4c9f3d176c231902c14188f2e00263b Author: Marius Stanciu Date: Wed Oct 19 16:59:05 2022 +0300 - fixed an issue when exporting huge SVG files from the Film Tool by adding a fallback and using a custom XML parser with the 'huge_tree' option set commit 2c229d8677e40f069e81060a026c9f1b8c418aae Author: Marius Stanciu Date: Wed Oct 19 02:35:19 2022 +0300 - added a hack so the Gerber files from Allegro 17.2 (which do not follow the Gerber specifications) can be loaded commit 94901686b5d95478f33d34d6300c43da06669bc9 Author: Marius Stanciu Date: Sun Oct 2 06:56:13 2022 +0300 - really small UI change in 2-Sided Plugin commit 56033b8bc4ea18a8b7a7e5051473b26715ec0492 Author: Marius Stanciu Date: Tue Sep 27 16:45:32 2022 +0300 - in Milling Plugin, for Excellon target, re-enabled the control over the Feedrate X-Y parameter commit 8f774df30b36f8095a5be2dc3f506915641d66e9 Author: Marius Stanciu Date: Sun Sep 25 05:57:35 2022 +0300 - small fix in ToolCutout Plugin when trying to set a checkbox state with a float value which still works in Windows but creates issues in other OS's commit 9b081916603cfc03d3054fb27c8cebceabd2ae63 Author: Marius Stanciu Date: Sun Sep 25 05:44:43 2022 +0300 - added a new setting in Preferences ("3D compatibility") controlled by a checkbox. If the checkbox is checked then multithreading is disabled for the 3D mode (lower performance but perhaps more compatibility, especially for Linux) - this was done from the research done by Matti Eiden on bitbucket commit 565c839460c9d90e99500bf8c0eb45d797abda48 Author: Marius Stanciu Date: Sat Sep 10 01:50:13 2022 +0300 - added insurance that the QThread where the ArgThread class is running, really receive the interruption request and it is finished commit 71a3963c9662faeee2393555d86f006986a98dc5 Author: Marius Stanciu Date: Sat Sep 10 01:06:13 2022 +0300 - hided the main UI on application quit to create a user experience of a shutdown without lag - added a way to terminate QThreads safely by waiting; should be much safer - made sure that the ArgsThread class receive the signal to stop - made sure that on application shutdown, all workers will quit before the actual exit commit 3c1349a6c48e42abb7612d1805d53733f72c3e3e Author: Marius Stanciu Date: Thu Sep 1 13:08:06 2022 +0300 - added a new feature for Geometry export-as-SVG, the ability to export only the paths (outlines); the new feature is controlled from a new parameter in Preferences -> Geometry -> Export commit 6eeac5312e59db89622f195a5149e98a7f2bd550 Merge: 419330ee 2901afd9 Author: Marius Stanciu Date: Mon Aug 1 09:29:44 2022 +0000 Merged Beta_8.995 into gerber_editor_upgrade commit 419330ee9303151d15aab622916cb96f4ed4c65e Author: Marius Stanciu Date: Mon Aug 1 12:27:14 2022 +0300 - fixed some bugs in Geometry Editor in regards of Buffer Tool - fixed some issues in the Cutout Plugin by adding more checks - fixed issues when loading files by dragging in the UI (caused by recent code refactoring) commit 4c22e52b08070380683083bfa09efb8619e0bbd0 Author: Marius Stanciu Date: Thu May 26 00:20:43 2022 +0300 - upgraded the UI of Region sub-tool in the Gerber Editor commit 95066e352bac84d242832960e6f5ea62b75611fc Author: Marius Stanciu Date: Sun May 22 14:01:21 2022 +0300 - in Gerber Editor upgraded the Simplification sub-tool GUI commit 5298a59372305992b842e9bb0cc3e95b958b1bc2 Author: Marius Stanciu Date: Sun May 22 04:37:16 2022 +0300 - in Gerber Editor upgraded the Track sub-tool GUI commit 830d500d041f46bff11226e7ca07b4e3f31b26f3 Author: Marius Stanciu Date: Sun May 22 03:18:51 2022 +0300 - in Gerber Editor upgraded the PadArray GUI commit 9055cc1230f61f37d452031f07230b563f1cca12 Author: Marius Stanciu Date: Sun May 22 01:40:55 2022 +0300 - in Gerber Editor upgraded the PadAdd GUI commit bfb3aa4118688977962fc6d54546d30487a20644 Author: Marius Stanciu Date: Sat May 21 02:13:47 2022 +0300 - added properties for the mouse position and mouse clicked position (and setters) and cleaned up the code regarding this data commit 61325b7b5f212e985f7490d1eff2323b5f70d0ee Author: Marius Stanciu Date: Sat May 21 01:25:14 2022 +0300 - more code refactored in the appMain.py commit 77c752701f8a1e12f69ef838fae5cc250912023f Author: Marius Stanciu Date: Fri May 20 21:19:52 2022 +0300 - refactored the code for the file registration and for the keywords update into its own class to make the main class smaller - when creating new files the file names are added to the beginning of the keywords list for the usage of Qt auto-completer commit 5125f475eb3c4556a0cd276a95dede825043c450 Merge: c3ab0b28 037a72a5 Author: Marius Stanciu Date: Fri May 20 01:51:59 2022 +0000 Merged Beta_8.995 into gerber_editor_upgrade commit c3ab0b28b3e69b344fa801bb25575afda4f5fc35 Merge: 93c2ab43 c0ff26db Author: Marius Stanciu Date: Thu May 19 13:25:47 2022 +0000 Merged Beta_8.995 into gerber_editor_upgrade commit 93c2ab43f49a122f2999390de21f8e34e56043da Merge: 8bdaaa50 f82d4a4b Author: Marius Stanciu Date: Wed May 18 21:00:48 2022 +0000 Merged Beta_8.995 into gerber_editor_upgrade commit 8bdaaa502156ec06e307824e328874c20e3d267a Merge: 1a0dfe61 04bb0857 Author: Marius Stanciu Date: Tue May 17 19:55:12 2022 +0000 Merged Beta_8.995 into gerber_editor_upgrade commit 1a0dfe61433e170998e98198e1900db5b97ef343 Merge: 9a057a40 b09c55da Author: Marius Stanciu Date: Tue May 17 11:39:28 2022 +0000 Merged Beta_8.995 into gerber_editor_upgrade commit 9a057a40c5b4c461cbb68d0287303fff54fc58b2 Merge: c1a53203 3a0247e7 Author: Marius Stanciu Date: Tue May 17 09:54:28 2022 +0000 Merged Beta_8.995 into gerber_editor_upgrade commit c1a5320315e1a53d66fb68d6ba6b5013c9efb40f Author: Marius Stanciu Date: Mon May 16 18:13:12 2022 +0300 - started to lay ground for upgrading the UI in the Gerber Editor - fixed and upgraded the Buffer sub-tool in the Gerber Editor - fixed adding same aperture multiple times --- FlatCAM.py => flatcam.py | 0 tests/__init__.py | 0 tests/canvas/performance.py | 95 - tests/canvas/prof.sh | 6 - tests/excellon_files/case1.drl | 125 - tests/frameless_window.py | 148 - tests/gerber_files/STM32F4-spindle.cmp | 6358 ----------------- tests/gerber_files/detector_contour.gbr | 26 - tests/gerber_files/detector_copper_bottom.gbr | 2146 ------ tests/gerber_files/detector_copper_top.gbr | 71 - tests/gerber_files/detector_drill.txt | 46 - tests/gerber_files/simple1.gbr | 54 - tests/gerber_parsing_profiling/gerber1.gbr | 3045 -------- .../gerber_parsing_line_profile_1.py | 13 - .../gerber_parsing_profile_1.py | 17 - tests/new_window_test.py | 70 - tests/other/destructor_test.py | 34 - tests/other/profile_gerber_parser.py | 8 - tests/other/test_excellon_1.py | 49 - tests/other/test_fcrts.py | 37 - tests/other/test_plotg.py | 48 - tests/other/test_rt.py | 24 - tests/svg/7segment_9,9.svg | 34 - tests/svg/Arduino Nano3_pcb.svg | 468 -- tests/svg/drawing.svg | 126 - tests/svg/usb_connector.svg | 77 - tests/svg/use.svg | 101 - tests/test_excellon.py | 331 - tests/test_excellon_flow.py | 163 - tests/test_gerber_buffer.py | 35 - tests/test_gerber_flow.py | 190 - tests/test_paint.py | 213 - tests/test_pathconnect.py | 89 - tests/test_polygon_paint.py | 220 - tests/test_svg_flow.py | 127 - tests/test_tclCommands/__init__.py | 18 - .../test_TclCommandAddPolygon.py | 18 - .../test_TclCommandAddPolyline.py | 18 - .../test_tclCommands/test_TclCommandCncjob.py | 17 - .../test_TclCommandDrillcncjob.py | 18 - .../test_TclCommandExportGcode.py | 33 - .../test_TclCommandExteriors.py | 24 - .../test_TclCommandImportSvg.py | 60 - .../test_TclCommandInteriors.py | 24 - .../test_TclCommandIsolate.py | 21 - tests/test_tclCommands/test_TclCommandNew.py | 48 - .../test_TclCommandNewGeometry.py | 14 - .../test_TclCommandOpenExcellon.py | 15 - .../test_TclCommandOpenGerber.py | 25 - .../test_TclCommandPaintPolygon.py | 25 - tests/test_tcl_shell.py | 272 - tests/test_voronoi.py | 26 - tests/titlebar_custom.py | 197 - .../toollift_minimization_line_profile1.py | 8 - .../toollift_minimization_profile1.py | 11 - 55 files changed, 15486 deletions(-) rename FlatCAM.py => flatcam.py (100%) delete mode 100644 tests/__init__.py delete mode 100644 tests/canvas/performance.py delete mode 100755 tests/canvas/prof.sh delete mode 100644 tests/excellon_files/case1.drl delete mode 100644 tests/frameless_window.py delete mode 100644 tests/gerber_files/STM32F4-spindle.cmp delete mode 100644 tests/gerber_files/detector_contour.gbr delete mode 100644 tests/gerber_files/detector_copper_bottom.gbr delete mode 100644 tests/gerber_files/detector_copper_top.gbr delete mode 100644 tests/gerber_files/detector_drill.txt delete mode 100644 tests/gerber_files/simple1.gbr delete mode 100755 tests/gerber_parsing_profiling/gerber1.gbr delete mode 100644 tests/gerber_parsing_profiling/gerber_parsing_line_profile_1.py delete mode 100644 tests/gerber_parsing_profiling/gerber_parsing_profile_1.py delete mode 100644 tests/new_window_test.py delete mode 100644 tests/other/destructor_test.py delete mode 100644 tests/other/profile_gerber_parser.py delete mode 100644 tests/other/test_excellon_1.py delete mode 100644 tests/other/test_fcrts.py delete mode 100644 tests/other/test_plotg.py delete mode 100644 tests/other/test_rt.py delete mode 100644 tests/svg/7segment_9,9.svg delete mode 100644 tests/svg/Arduino Nano3_pcb.svg delete mode 100644 tests/svg/drawing.svg delete mode 100644 tests/svg/usb_connector.svg delete mode 100644 tests/svg/use.svg delete mode 100644 tests/test_excellon.py delete mode 100644 tests/test_excellon_flow.py delete mode 100644 tests/test_gerber_buffer.py delete mode 100644 tests/test_gerber_flow.py delete mode 100644 tests/test_paint.py delete mode 100644 tests/test_pathconnect.py delete mode 100644 tests/test_polygon_paint.py delete mode 100644 tests/test_svg_flow.py delete mode 100644 tests/test_tclCommands/__init__.py delete mode 100644 tests/test_tclCommands/test_TclCommandAddPolygon.py delete mode 100644 tests/test_tclCommands/test_TclCommandAddPolyline.py delete mode 100644 tests/test_tclCommands/test_TclCommandCncjob.py delete mode 100644 tests/test_tclCommands/test_TclCommandDrillcncjob.py delete mode 100644 tests/test_tclCommands/test_TclCommandExportGcode.py delete mode 100644 tests/test_tclCommands/test_TclCommandExteriors.py delete mode 100644 tests/test_tclCommands/test_TclCommandImportSvg.py delete mode 100644 tests/test_tclCommands/test_TclCommandInteriors.py delete mode 100644 tests/test_tclCommands/test_TclCommandIsolate.py delete mode 100644 tests/test_tclCommands/test_TclCommandNew.py delete mode 100644 tests/test_tclCommands/test_TclCommandNewGeometry.py delete mode 100644 tests/test_tclCommands/test_TclCommandOpenExcellon.py delete mode 100644 tests/test_tclCommands/test_TclCommandOpenGerber.py delete mode 100644 tests/test_tclCommands/test_TclCommandPaintPolygon.py delete mode 100644 tests/test_tcl_shell.py delete mode 100644 tests/test_voronoi.py delete mode 100644 tests/titlebar_custom.py delete mode 100644 tests/toolpath_optimization_profiling/toollift_minimization_line_profile1.py delete mode 100644 tests/toolpath_optimization_profiling/toollift_minimization_profile1.py diff --git a/FlatCAM.py b/flatcam.py similarity index 100% rename from FlatCAM.py rename to flatcam.py diff --git a/tests/__init__.py b/tests/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/canvas/performance.py b/tests/canvas/performance.py deleted file mode 100644 index 40047291..00000000 --- a/tests/canvas/performance.py +++ /dev/null @@ -1,95 +0,0 @@ - -import matplotlib -matplotlib.use('Agg') -import matplotlib.pyplot as plt -import numpy as np -import io -from matplotlib.backends.backend_agg import FigureCanvasAgg -from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg -from matplotlib.figure import Figure -import cProfile -import sys - - -def gen_data(): - N = 100000 - x = np.random.rand(N) * 10 - y = np.random.rand(N) * 10 - colors = np.random.rand(N) - area = np.pi * (15 * np.random.rand(N))**2 # 0 to 15 point radiuses - data = x, y, area, colors - return data - - -# @profile -def large_plot(data): - x, y, area, colors = data - - fig = Figure(figsize=(10, 10), dpi=80) - axes = fig.add_axes([0.0, 0.0, 1.0, 1.0], alpha=1.0) - axes.set_frame_on(False) - axes.set_xticks([]) - axes.set_yticks([]) - # axes.set_xlim(0, 10) - # axes.set_ylim(0, 10) - - axes.scatter(x, y, s=area, c=colors, alpha=0.5) - - axes.set_xlim(0, 10) - axes.set_ylim(0, 10) - - canvas = FigureCanvasAgg(fig) - canvas.draw() - # canvas = FigureCanvasQTAgg(fig) - # buf = canvas.tostring_rgb() - buf = fig.canvas.tostring_rgb() - - ncols, nrows = fig.canvas.get_width_height() - img = np.fromstring(buf, dtype=np.uint8).reshape(nrows, ncols, 3) - - return img - - -def small_plot(data): - x, y, area, colors = data - - fig = Figure(figsize=(3, 3), dpi=80) - axes = fig.add_axes([0.0, 0.0, 1.0, 1.0], alpha=1.0) - axes.set_frame_on(False) - axes.set_xticks([]) - axes.set_yticks([]) - # axes.set_xlim(5, 6) - # axes.set_ylim(5, 6) - - axes.scatter(x, y, s=area, c=colors, alpha=0.5) - - axes.set_xlim(4, 7) - axes.set_ylim(4, 7) - - canvas = FigureCanvasAgg(fig) - canvas.draw() - # canvas = FigureCanvasQTAgg(fig) - # buf = canvas.tostring_rgb() - buf = fig.canvas.tostring_rgb() - - ncols, nrows = fig.canvas.get_width_height() - img = np.fromstring(buf, dtype=np.uint8).reshape(nrows, ncols, 3) - - return img - -def doit(): - d = gen_data() - img = large_plot(d) - return img - - -if __name__ == "__main__": - - d = gen_data() - - if sys.argv[1] == 'large': - cProfile.runctx('large_plot(d)', None, locals()) - else: - cProfile.runctx('small_plot(d)', None, locals()) - - diff --git a/tests/canvas/prof.sh b/tests/canvas/prof.sh deleted file mode 100755 index b9075848..00000000 --- a/tests/canvas/prof.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -echo "*** LARGE ***" -python performance.py large | egrep "(\(scatter\))|(\(draw\))|(tostring_rgb)|(fromstring)" -echo "*** SMALL ***" -python performance.py small | egrep "(\(scatter\))|(\(draw\))|(tostring_rgb)|(fromstring)" \ No newline at end of file diff --git a/tests/excellon_files/case1.drl b/tests/excellon_files/case1.drl deleted file mode 100644 index 95b89ca3..00000000 --- a/tests/excellon_files/case1.drl +++ /dev/null @@ -1,125 +0,0 @@ -M48 -INCH -T01C0.0200 -T02C0.0800 -T03C0.0600 -T04C0.0300 -T05C0.0650 -T06C0.0450 -T07C0.0400 -T08C0.1181 -T09C0.0500 -% -T01 -X-018204Y+015551 -X-025842Y+015551 -T02 -X-000118Y+020629 -X-000118Y+016889 -X+012401Y+020629 -X+012401Y+016889 -X-010170Y+002440 -X-010110Y+011470 -X+018503Y+026574 -T03 -X+013060Y+010438 -X+013110Y+000000 -X-049015Y+002165 -X+018378Y+010433 -X+018317Y+000000 -X-049015Y+010039 -X-041141Y-000629 -X-041181Y+012992 -X-056496Y+012992 -X-056496Y-000590 -T04 -X-037560Y+030490 -X-036560Y+030490 -X-035560Y+030490 -X-034560Y+030490 -X-033560Y+030490 -X-032560Y+030490 -X-031560Y+030490 -X-030560Y+030490 -X-029560Y+030490 -X-028560Y+030490 -X-027560Y+030490 -X-026560Y+030490 -X-025560Y+030490 -X-024560Y+030490 -X-024560Y+036490 -X-025560Y+036490 -X-026560Y+036490 -X-027560Y+036490 -X-028560Y+036490 -X-029560Y+036490 -X-030560Y+036490 -X-031560Y+036490 -X-032560Y+036490 -X-033560Y+036490 -X-034560Y+036490 -X-035560Y+036490 -X-036560Y+036490 -X-037560Y+036490 -X-014590Y+030810 -X-013590Y+030810 -X-012590Y+030810 -X-011590Y+030810 -X-011590Y+033810 -X-012590Y+033810 -X-013590Y+033810 -X-014590Y+033810 -X-021260Y+034680 -X-020010Y+034680 -X-008390Y+035840 -X-008390Y+034590 -X-008440Y+031870 -X-008440Y+030620 -T05 -X-022504Y+019291 -X-020354Y+019291 -X-018204Y+019291 -X-030142Y+019291 -X-027992Y+019291 -X-025842Y+019291 -X-012779Y+019291 -X-010629Y+019291 -X-008479Y+019291 -T06 -X-028080Y+028230 -X-030080Y+028230 -X-034616Y+024409 -X-039616Y+024409 -X-045364Y+023346 -X-045364Y+018346 -X-045364Y+030157 -X-045364Y+025157 -X-008604Y+026983 -X-013604Y+026983 -X-016844Y+034107 -X-016844Y+029107 -T07 -X-041655Y+026456 -X-040655Y+026456 -X-039655Y+026456 -X-041640Y+022047 -X-040640Y+022047 -X-039640Y+022047 -X-049760Y+029430 -X-048760Y+029430 -X-047760Y+029430 -X-019220Y+037380 -X-020220Y+037380 -X-021220Y+037380 -T08 -X-024212Y+007751 -X-024212Y+004011 -X-035629Y+007874 -X-035629Y+004133 -T09 -X+007086Y+030708 -X+007086Y+032874 -X-000787Y+031889 -X-000787Y+035826 -X-000787Y+027952 -M30 diff --git a/tests/frameless_window.py b/tests/frameless_window.py deleted file mode 100644 index 47e28b31..00000000 --- a/tests/frameless_window.py +++ /dev/null @@ -1,148 +0,0 @@ -import sys -from PyQt5 import QtGui, QtWidgets -from PyQt5 import QtCore -from PyQt5.QtCore import Qt - - -class TitleBar(QtWidgets.QDialog): - def __init__(self, parent=None): - QtWidgets.QWidget.__init__(self, parent) - self.setWindowFlags(Qt.FramelessWindowHint) - css = """ - QWidget{ - Background: #AA00AA; - color:white; - font:12px bold; - font-weight:bold; - border-radius: 1px; - height: 11px; - } - QDialog{ - Background-image:url('img/titlebar bg.png'); - font-size:12px; - color: black; - - } - QToolButton{ - Background:#AA00AA; - font-size:11px; - } - QToolButton:hover{ - Background: #FF00FF; - font-size:11px; - } - """ - self.setAutoFillBackground(True) - self.setBackgroundRole(QtGui.QPalette.Highlight) - self.setStyleSheet(css) - self.minimize=QtWidgets.QToolButton(self) - self.minimize.setIcon(QtGui.QIcon('img/min.png')) - self.maximize=QtWidgets.QToolButton(self); - self.maximize.setIcon(QtGui.QIcon('img/max.png')) - close=QtWidgets.QToolButton(self) - close.setIcon(QtGui.QIcon('img/close.png')) - self.minimize.setMinimumHeight(10) - close.setMinimumHeight(10) - self.maximize.setMinimumHeight(10) - label=QtWidgets.QLabel(self) - label.setText("Abracadabra") - self.setWindowTitle("Alhambra") - hbox=QtWidgets.QHBoxLayout(self) - hbox.addWidget(label) - hbox.addWidget(self.minimize) - hbox.addWidget(self.maximize) - hbox.addWidget(close) - hbox.insertStretch(1,500) - hbox.setSpacing(0) - self.setSizePolicy(QtWidgets.QSizePolicy.Expanding,QtWidgets.QSizePolicy.Fixed) - self.maxNormal=False - close.clicked.connect(self.close) - self.minimize.clicked.connect(self.showSmall) - self.maximize.clicked.connect(self.showMaxRestore) - - def showSmall(self): - box.showMinimized() - - def showMaxRestore(self): - if(self.maxNormal): - box.showNormal() - self.maxNormal= False - self.maximize.setIcon(QtGui.QIcon('img/max.png')) - print(1) - else: - box.showMaximized() - self.maxNormal= True - print(2) - self.maximize.setIcon(QtGui.QIcon('img/max2.png')) - - def close(self): - box.close() - - def mousePressEvent(self,event): - if event.button() == Qt.LeftButton: - box.moving = True; box.offset = event.pos() - - def mouseMoveEvent(self,event): - if box.moving: box.move(event.globalPos()-box.offset) - - -class Frame(QtWidgets.QFrame): - def __init__(self, parent=None): - QtWidgets.QFrame.__init__(self, parent) - self.m_mouse_down= False - self.setFrameShape(QtWidgets.QFrame.StyledPanel) - css = """ - QFrame{ - Background: #D700D7; - color:white; - font:13px ; - font-weight:bold; - } - """ - self.setStyleSheet(css) - self.setWindowFlags(Qt.FramelessWindowHint) - self.setMouseTracking(True) - self.m_titleBar= TitleBar(self) - self.m_content= QtWidgets.QWidget(self) - vbox=QtWidgets.QVBoxLayout(self) - vbox.addWidget(self.m_titleBar) - vbox.setContentsMargins(0, 0, 0, 0) - vbox.setSpacing(0) - layout=QtWidgets.QVBoxLayout(self) - layout.addWidget(self.m_content) - layout.setContentsMargins(5, 5, 5, 5) - layout.setSpacing(0) - vbox.addLayout(layout) - # Allows you to access the content area of the frame - # where widgets and layouts can be added - - def contentWidget(self): - return self.m_content - - def titleBar(self): - return self.m_titleBar - - def mousePressEvent(self,event): - self.m_old_pos = event.pos() - self.m_mouse_down = event.button()== Qt.LeftButton - - def mouseMoveEvent(self,event): - x=event.x() - y=event.y() - - def mouseReleaseEvent(self,event): - m_mouse_down=False - - -if __name__ == '__main__': - app = QtWidgets.QApplication(sys.argv) - box = Frame() - box.move(60,60) - l = QtWidgets.QVBoxLayout(box.contentWidget()) - l.setContentsMargins(0, 0,0 ,0) - edit = QtWidgets.QLabel("""I would've did anything for you to show you how much I adored you -But it's over now, it's too late to save our loveJust promise me you'll think of me -Every time you look up in the sky and see a star 'cuz I'm your star.""") - l.addWidget(edit) - box.show() - app.exec_() \ No newline at end of file diff --git a/tests/gerber_files/STM32F4-spindle.cmp b/tests/gerber_files/STM32F4-spindle.cmp deleted file mode 100644 index bca2de6e..00000000 --- a/tests/gerber_files/STM32F4-spindle.cmp +++ /dev/null @@ -1,6358 +0,0 @@ -G75* -%MOIN*% -%OFA0B0*% -%FSLAX25Y25*% -%IPPOS*% -%LPD*% -%AMOC8* -5,1,8,0,0,1.08239X$1,22.5* -% -%ADD10R,0.30000X0.30000*% -%ADD11R,0.44685X0.17500*% -%ADD12R,0.04724X0.01181*% -%ADD13R,0.01181X0.04724*% -%ADD14R,0.05512X0.04724*% -%ADD15R,0.05118X0.06299*% -%ADD16R,0.06299X0.05118*% -%ADD17R,0.09843X0.01969*% -%ADD18R,0.09843X0.07874*% -%ADD19R,0.05118X0.05906*% -%ADD20R,0.03150X0.05512*% -%ADD21R,0.03150X0.07480*% -%ADD22C,0.06000*% -%ADD23R,0.05906X0.07874*% -%ADD24OC8,0.06400*% -%ADD25R,0.05512X0.05512*% -%ADD26R,0.12598X0.04331*% -%ADD27C,0.07400*% -%ADD28R,0.06299X0.07098*% -%ADD29R,0.03937X0.04331*% -%ADD30R,0.05906X0.05118*% -%ADD31C,0.01200*% -%ADD32C,0.02400*% -%ADD33C,0.01600*% -%ADD34C,0.03181*% -%ADD35C,0.04000*% -D10* -X0102500Y0095000D03* -D11* -X0212657Y0076250D03* -D12* -X0124941Y0080236D03* -X0124941Y0082205D03* -X0124941Y0084173D03* -X0124941Y0086142D03* -X0124941Y0088110D03* -X0124941Y0090079D03* -X0124941Y0092047D03* -X0124941Y0094016D03* -X0124941Y0095984D03* -X0124941Y0097953D03* -X0124941Y0099921D03* -X0124941Y0101890D03* -X0124941Y0103858D03* -X0124941Y0105827D03* -X0124941Y0107795D03* -X0124941Y0109764D03* -X0080059Y0109764D03* -X0080059Y0107795D03* -X0080059Y0105827D03* -X0080059Y0103858D03* -X0080059Y0101890D03* -X0080059Y0099921D03* -X0080059Y0097953D03* -X0080059Y0095984D03* -X0080059Y0094016D03* -X0080059Y0092047D03* -X0080059Y0090079D03* -X0080059Y0088110D03* -X0080059Y0086142D03* -X0080059Y0084173D03* -X0080059Y0082205D03* -X0080059Y0080236D03* -D13* -X0087736Y0072559D03* -X0089705Y0072559D03* -X0091673Y0072559D03* -X0093642Y0072559D03* -X0095610Y0072559D03* -X0097579Y0072559D03* -X0099547Y0072559D03* -X0101516Y0072559D03* -X0103484Y0072559D03* -X0105453Y0072559D03* -X0107421Y0072559D03* -X0109390Y0072559D03* -X0111358Y0072559D03* -X0113327Y0072559D03* -X0115295Y0072559D03* -X0117264Y0072559D03* -X0117264Y0117441D03* -X0115295Y0117441D03* -X0113327Y0117441D03* -X0111358Y0117441D03* -X0109390Y0117441D03* -X0107421Y0117441D03* -X0105453Y0117441D03* -X0103484Y0117441D03* -X0101516Y0117441D03* -X0099547Y0117441D03* -X0097579Y0117441D03* -X0095610Y0117441D03* -X0093642Y0117441D03* -X0091673Y0117441D03* -X0089705Y0117441D03* -X0087736Y0117441D03* -D14* -X0059331Y0113346D03* -X0059331Y0106654D03* -X0050669Y0106654D03* -X0050669Y0113346D03* -D15* -X0051063Y0125000D03* -X0058937Y0125000D03* -X0056063Y0072500D03* -X0063937Y0072500D03* -X0078563Y0060000D03* -X0086437Y0060000D03* -X0121063Y0060000D03* -X0128937Y0060000D03* -X0136063Y0067500D03* -X0143937Y0067500D03* -X0141437Y0115000D03* -X0133563Y0115000D03* -X0133563Y0130000D03* -X0141437Y0130000D03* -D16* -X0082500Y0136063D03* -X0082500Y0143937D03* -X0072500Y0123937D03* -X0072500Y0116063D03* -X0040000Y0113937D03* -X0040000Y0106063D03* -X0027500Y0141063D03* -X0027500Y0148937D03* -X0275000Y0208563D03* -X0275000Y0216437D03* -D17* -X0255157Y0111299D03* -X0255157Y0108150D03* -X0255157Y0105000D03* -X0255157Y0101850D03* -X0255157Y0098701D03* -D18* -X0255157Y0087283D03* -X0276811Y0087283D03* -X0276811Y0122717D03* -X0255157Y0122717D03* -D19* -X0223740Y0107500D03* -X0216260Y0107500D03* -X0216260Y0097500D03* -X0223740Y0097500D03* -X0267510Y0072500D03* -X0274990Y0072500D03* -X0161240Y0122500D03* -X0153760Y0122500D03* -X0082490Y0176250D03* -X0075010Y0176250D03* -X0103760Y0217500D03* -X0111240Y0217500D03* -X0128760Y0217500D03* -X0136240Y0217500D03* -X0153760Y0217500D03* -X0161240Y0217500D03* -X0126240Y0047500D03* -X0118760Y0047500D03* -D20* -X0216598Y0062201D03* -X0228402Y0062201D03* -D21* -X0222500Y0063201D03* -D22* -X0223500Y0069516D02* -X0221500Y0069516D01* -X0221500Y0077886D01* -X0223500Y0077886D01* -X0223500Y0069516D01* -X0223500Y0075515D02* -X0221500Y0075515D01* -D23* -X0244094Y0072500D03* -X0255906Y0072500D03* -X0255906Y0060000D03* -X0244094Y0060000D03* -D24* -X0225000Y0147500D03* -X0215000Y0147500D03* -X0215000Y0157500D03* -X0225000Y0157500D03* -X0225000Y0167500D03* -X0215000Y0167500D03* -X0215000Y0177500D03* -X0225000Y0177500D03* -X0195000Y0207500D03* -X0185000Y0207500D03* -X0185000Y0217500D03* -X0195000Y0217500D03* -X0062500Y0217500D03* -X0052500Y0217500D03* -X0052500Y0207500D03* -X0062500Y0207500D03* -X0042500Y0207500D03* -X0032500Y0207500D03* -X0022500Y0207500D03* -X0022500Y0217500D03* -X0032500Y0217500D03* -X0042500Y0217500D03* -X0082500Y0025000D03* -X0092500Y0025000D03* -X0092500Y0015000D03* -X0082500Y0015000D03* -X0102500Y0015000D03* -X0112500Y0015000D03* -X0112500Y0025000D03* -X0102500Y0025000D03* -X0122500Y0025000D03* -X0122500Y0015000D03* -D25* -X0240000Y0081270D03* -X0240000Y0096230D03* -X0246250Y0140020D03* -X0257500Y0140020D03* -X0257500Y0154980D03* -X0246250Y0154980D03* -D26* -X0234114Y0202126D03* -X0234114Y0217874D03* -X0260886Y0217874D03* -X0260886Y0202126D03* -D27* -X0273800Y0162500D02* -X0281200Y0162500D01* -X0281200Y0152500D02* -X0273800Y0152500D01* -X0273800Y0047500D02* -X0281200Y0047500D01* -X0271200Y0047500D02* -X0263800Y0047500D01* -X0263800Y0037500D02* -X0271200Y0037500D01* -X0273800Y0037500D02* -X0281200Y0037500D01* -X0281200Y0027500D02* -X0273800Y0027500D01* -X0271200Y0027500D02* -X0263800Y0027500D01* -X0263800Y0017500D02* -X0271200Y0017500D01* -X0273800Y0017500D02* -X0281200Y0017500D01* -X0096250Y0177550D02* -X0096250Y0184950D01* -D28* -X0101902Y0205000D03* -X0113098Y0205000D03* -X0126902Y0205000D03* -X0138098Y0205000D03* -X0151902Y0205000D03* -X0163098Y0205000D03* -X0265652Y0060000D03* -X0276848Y0060000D03* -D29* -X0063750Y0058346D03* -X0063750Y0051654D03* -D30* -X0027500Y0071260D03* -X0027500Y0078740D03* -D31* -X0002568Y0002568D02* -X0002568Y0227392D01* -X0014348Y0227392D01* -X0010705Y0223749D01* -X0009814Y0222858D01* -X0009331Y0221693D01* -X0009331Y0091870D01* -X0009814Y0090705D01* -X0014814Y0085705D01* -X0015705Y0084814D01* -X0016870Y0084331D01* -X0024331Y0084331D01* -X0024331Y0083868D01* -X0024036Y0083868D01* -X0023092Y0083477D01* -X0022370Y0082754D01* -X0021979Y0081810D01* -X0021979Y0075670D01* -X0022256Y0075000D01* -X0021979Y0074330D01* -X0021979Y0068190D01* -X0022370Y0067246D01* -X0023092Y0066523D01* -X0024036Y0066132D01* -X0024331Y0066132D01* -X0024331Y0061653D01* -X0024814Y0060489D01* -X0028751Y0056552D01* -X0029642Y0055660D01* -X0030807Y0055178D01* -X0059417Y0055178D01* -X0059491Y0055000D01* -X0059213Y0054330D01* -X0059213Y0048977D01* -X0059604Y0048033D01* -X0060327Y0047311D01* -X0061271Y0046920D01* -X0066229Y0046920D01* -X0067173Y0047311D01* -X0067896Y0048033D01* -X0068083Y0048485D01* -X0083130Y0048485D01* -X0084295Y0048967D01* -X0088232Y0052904D01* -X0089123Y0053796D01* -X0089324Y0054282D01* -X0089507Y0054282D01* -X0090451Y0054673D01* -X0091174Y0055395D01* -X0091565Y0056339D01* -X0091565Y0059347D01* -X0092442Y0060225D01* -X0092442Y0052749D01* -X0090045Y0050353D01* -X0089642Y0050186D01* -X0088751Y0049295D01* -X0084814Y0045358D01* -X0084331Y0044193D01* -X0084331Y0030100D01* -X0082900Y0030100D01* -X0082900Y0025400D01* -X0082100Y0025400D01* -X0082100Y0030100D01* -X0080388Y0030100D01* -X0077400Y0027112D01* -X0077400Y0025400D01* -X0082100Y0025400D01* -X0082100Y0024600D01* -X0077400Y0024600D01* -X0077400Y0022888D01* -X0079815Y0020473D01* -X0076731Y0017389D01* -X0076731Y0012611D01* -X0080111Y0009231D01* -X0084889Y0009231D01* -X0087500Y0011842D01* -X0090111Y0009231D01* -X0094889Y0009231D01* -X0097500Y0011842D01* -X0100111Y0009231D01* -X0104889Y0009231D01* -X0107500Y0011842D01* -X0110111Y0009231D01* -X0114889Y0009231D01* -X0117500Y0011842D01* -X0120111Y0009231D01* -X0124889Y0009231D01* -X0128268Y0012611D01* -X0128268Y0016288D01* -X0131795Y0019814D01* -X0132686Y0020705D01* -X0133168Y0021870D01* -X0133168Y0034193D01* -X0132686Y0035358D01* -X0128749Y0039295D01* -X0127858Y0040186D01* -X0126693Y0040668D01* -X0112671Y0040668D01* -X0110590Y0042749D01* -X0110590Y0045756D01* -X0111532Y0044814D01* -X0112697Y0044331D01* -X0113632Y0044331D01* -X0113632Y0044036D01* -X0114023Y0043092D01* -X0114746Y0042370D01* -X0115690Y0041979D01* -X0121830Y0041979D01* -X0122774Y0042370D01* -X0123132Y0042727D01* -X0123431Y0042647D01* -X0125640Y0042647D01* -X0125640Y0046900D01* -X0126840Y0046900D01* -X0126840Y0042647D01* -X0129049Y0042647D01* -X0129533Y0042777D01* -X0129966Y0043027D01* -X0130320Y0043381D01* -X0130570Y0043814D01* -X0130699Y0044297D01* -X0130699Y0046900D01* -X0126840Y0046900D01* -X0126840Y0048100D01* -X0125640Y0048100D01* -X0125640Y0052353D01* -X0123431Y0052353D01* -X0123132Y0052273D01* -X0122774Y0052630D01* -X0121830Y0053021D01* -X0115690Y0053021D01* -X0114746Y0052630D01* -X0114023Y0051908D01* -X0113841Y0051467D01* -X0112558Y0052749D01* -X0112558Y0058328D01* -X0112609Y0058205D01* -X0113500Y0057314D01* -X0114665Y0056831D01* -X0115935Y0056831D01* -X0115935Y0056339D01* -X0116326Y0055395D01* -X0117049Y0054673D01* -X0117993Y0054282D01* -X0124133Y0054282D01* -X0125077Y0054673D01* -X0125543Y0055139D01* -X0125645Y0055080D01* -X0126128Y0054950D01* -X0128337Y0054950D01* -X0128337Y0059400D01* -X0129537Y0059400D01* -X0129537Y0060600D01* -X0133396Y0060600D01* -X0133396Y0061782D01* -X0139133Y0061782D01* -X0140077Y0062173D01* -X0140543Y0062639D01* -X0140645Y0062580D01* -X0141128Y0062450D01* -X0143337Y0062450D01* -X0143337Y0066900D01* -X0144537Y0066900D01* -X0144537Y0068100D01* -X0148396Y0068100D01* -X0148396Y0070900D01* -X0148307Y0071231D01* -X0163731Y0071231D01* -X0163731Y0049250D01* -X0164305Y0047865D01* -X0165365Y0046805D01* -X0166750Y0046231D01* -X0257540Y0046231D01* -X0258486Y0043949D01* -X0259935Y0042500D01* -X0258486Y0041051D01* -X0257531Y0038747D01* -X0257531Y0036253D01* -X0258486Y0033949D01* -X0260249Y0032186D01* -X0260550Y0032061D01* -X0260152Y0031771D01* -X0259529Y0031148D01* -X0259010Y0030435D01* -X0258610Y0029650D01* -X0258338Y0028811D01* -X0258209Y0028000D01* -X0267000Y0028000D01* -X0267000Y0027000D01* -X0268000Y0027000D01* -X0268000Y0028000D01* -X0277000Y0028000D01* -X0277000Y0027000D01* -X0276791Y0027000D01* -X0268000Y0027000D01* -X0268000Y0021900D01* -X0268000Y0018000D01* -X0277000Y0018000D01* -X0277000Y0027000D01* -X0278000Y0027000D01* -X0278000Y0021900D01* -X0278000Y0018000D01* -X0277000Y0018000D01* -X0277000Y0017000D01* -X0276791Y0017000D01* -X0268000Y0017000D01* -X0268000Y0018000D01* -X0267000Y0018000D01* -X0267000Y0027000D01* -X0258209Y0027000D01* -X0258338Y0026189D01* -X0258610Y0025350D01* -X0259010Y0024565D01* -X0259529Y0023852D01* -X0260152Y0023229D01* -X0260865Y0022710D01* -X0261278Y0022500D01* -X0260865Y0022290D01* -X0260152Y0021771D01* -X0259529Y0021148D01* -X0259010Y0020435D01* -X0258610Y0019650D01* -X0258338Y0018811D01* -X0258209Y0018000D01* -X0267000Y0018000D01* -X0267000Y0017000D01* -X0268000Y0017000D01* -X0268000Y0011900D01* -X0271641Y0011900D01* -X0272500Y0012036D01* -X0273359Y0011900D01* -X0277000Y0011900D01* -X0277000Y0017000D01* -X0278000Y0017000D01* -X0278000Y0011900D01* -X0281641Y0011900D01* -X0282511Y0012038D01* -X0283350Y0012310D01* -X0284135Y0012710D01* -X0284848Y0013229D01* -X0285471Y0013852D01* -X0285990Y0014565D01* -X0286132Y0014845D01* -X0286132Y0002568D01* -X0002568Y0002568D01* -X0002568Y0003596D02* -X0286132Y0003596D01* -X0286132Y0004794D02* -X0002568Y0004794D01* -X0002568Y0005993D02* -X0286132Y0005993D01* -X0286132Y0007191D02* -X0002568Y0007191D01* -X0002568Y0008390D02* -X0286132Y0008390D01* -X0286132Y0009588D02* -X0125246Y0009588D01* -X0126444Y0010787D02* -X0286132Y0010787D01* -X0286132Y0011985D02* -X0282178Y0011985D01* -X0284786Y0013184D02* -X0286132Y0013184D01* -X0286132Y0014382D02* -X0285857Y0014382D01* -X0278000Y0014382D02* -X0277000Y0014382D01* -X0277000Y0013184D02* -X0278000Y0013184D01* -X0278000Y0011985D02* -X0277000Y0011985D01* -X0272822Y0011985D02* -X0272178Y0011985D01* -X0268000Y0011985D02* -X0267000Y0011985D01* -X0267000Y0011900D02* -X0267000Y0017000D01* -X0258209Y0017000D01* -X0258338Y0016189D01* -X0258610Y0015350D01* -X0259010Y0014565D01* -X0259529Y0013852D01* -X0260152Y0013229D01* -X0260865Y0012710D01* -X0261650Y0012310D01* -X0262489Y0012038D01* -X0263359Y0011900D01* -X0267000Y0011900D01* -X0267000Y0013184D02* -X0268000Y0013184D01* -X0268000Y0014382D02* -X0267000Y0014382D01* -X0267000Y0015581D02* -X0268000Y0015581D01* -X0268000Y0016779D02* -X0267000Y0016779D01* -X0267000Y0017978D02* -X0129959Y0017978D01* -X0131157Y0019176D02* -X0258456Y0019176D01* -X0258980Y0020375D02* -X0132356Y0020375D01* -X0133046Y0021573D02* -X0259954Y0021573D01* -X0260781Y0022772D02* -X0133168Y0022772D01* -X0133168Y0023970D02* -X0259443Y0023970D01* -X0258703Y0025169D02* -X0133168Y0025169D01* -X0133168Y0026367D02* -X0258310Y0026367D01* -X0258330Y0028764D02* -X0133168Y0028764D01* -X0133168Y0027566D02* -X0267000Y0027566D01* -X0268000Y0027566D02* -X0277000Y0027566D01* -X0277000Y0026367D02* -X0278000Y0026367D01* -X0278000Y0025169D02* -X0277000Y0025169D01* -X0277000Y0023970D02* -X0278000Y0023970D01* -X0278000Y0022772D02* -X0277000Y0022772D01* -X0277000Y0021573D02* -X0278000Y0021573D01* -X0278000Y0020375D02* -X0277000Y0020375D01* -X0277000Y0019176D02* -X0278000Y0019176D01* -X0277000Y0017978D02* -X0268000Y0017978D01* -X0268000Y0019176D02* -X0267000Y0019176D01* -X0267000Y0020375D02* -X0268000Y0020375D01* -X0268000Y0021573D02* -X0267000Y0021573D01* -X0267000Y0022772D02* -X0268000Y0022772D01* -X0268000Y0023970D02* -X0267000Y0023970D01* -X0267000Y0025169D02* -X0268000Y0025169D01* -X0268000Y0026367D02* -X0267000Y0026367D01* -X0259542Y0031161D02* -X0258224Y0031161D01* -X0258093Y0030847D02* -X0258356Y0031482D01* -X0258491Y0032156D01* -X0258491Y0032500D01* -X0258491Y0032844D01* -X0258356Y0033518D01* -X0258093Y0034153D01* -X0257711Y0034725D01* -X0257225Y0035211D01* -X0256653Y0035593D01* -X0256018Y0035856D01* -X0255344Y0035991D01* -X0255000Y0035991D01* -X0254656Y0035991D01* -X0253982Y0035856D01* -X0253347Y0035593D01* -X0252775Y0035211D01* -X0252289Y0034725D01* -X0251907Y0034153D01* -X0251644Y0033518D01* -X0251509Y0032844D01* -X0251509Y0032500D01* -X0251509Y0032156D01* -X0251644Y0031482D01* -X0251907Y0030847D01* -X0252289Y0030275D01* -X0252775Y0029789D01* -X0253347Y0029407D01* -X0253982Y0029144D01* -X0254656Y0029009D01* -X0255000Y0029009D01* -X0255344Y0029009D01* -X0256018Y0029144D01* -X0256653Y0029407D01* -X0257225Y0029789D01* -X0257711Y0030275D01* -X0258093Y0030847D01* -X0258770Y0029963D02* -X0257399Y0029963D01* -X0255000Y0029963D02* -X0255000Y0029963D01* -X0255000Y0029009D02* -X0255000Y0032500D01* -X0258491Y0032500D01* -X0255000Y0032500D01* -X0255000Y0032500D01* -X0255000Y0032500D01* -X0255000Y0035991D01* -X0255000Y0032500D01* -X0255000Y0032500D01* -X0255000Y0032500D01* -X0251509Y0032500D01* -X0255000Y0032500D01* -X0255000Y0029009D01* -X0255000Y0031161D02* -X0255000Y0031161D01* -X0255000Y0032360D02* -X0255000Y0032360D01* -X0255000Y0033558D02* -X0255000Y0033558D01* -X0255000Y0034757D02* -X0255000Y0034757D01* -X0255000Y0035955D02* -X0255000Y0035955D01* -X0255521Y0035955D02* -X0257655Y0035955D01* -X0257680Y0034757D02* -X0258151Y0034757D01* -X0258340Y0033558D02* -X0258877Y0033558D01* -X0258491Y0032360D02* -X0260075Y0032360D01* -X0257531Y0037154D02* -X0130890Y0037154D01* -X0129692Y0038352D02* -X0257531Y0038352D01* -X0257865Y0039551D02* -X0128493Y0039551D01* -X0126063Y0037500D02* -X0111358Y0037500D01* -X0107421Y0041437D01* -X0107421Y0072559D01* -X0105453Y0072559D02* -X0105453Y0038937D01* -X0109390Y0035000D01* -X0113563Y0035000D01* -X0117500Y0031063D01* -X0117500Y0020000D01* -X0112500Y0015000D01* -X0116444Y0010787D02* -X0118555Y0010787D01* -X0119754Y0009588D02* -X0115246Y0009588D01* -X0109754Y0009588D02* -X0105246Y0009588D01* -X0106444Y0010787D02* -X0108555Y0010787D01* -X0102500Y0015000D02* -X0107500Y0020000D01* -X0107500Y0028563D01* -X0103563Y0032500D01* -X0103484Y0032500D01* -X0099547Y0036437D01* -X0099547Y0072559D01* -X0097579Y0072559D02* -X0097579Y0020079D01* -X0092500Y0015000D01* -X0096444Y0010787D02* -X0098555Y0010787D01* -X0099754Y0009588D02* -X0095246Y0009588D01* -X0089754Y0009588D02* -X0085246Y0009588D01* -X0086444Y0010787D02* -X0088555Y0010787D01* -X0082500Y0015000D02* -X0087500Y0020000D01* -X0087500Y0043563D01* -X0091437Y0047500D01* -X0091673Y0047500D01* -X0095610Y0051437D01* -X0095610Y0072559D01* -X0091673Y0072559D02* -X0091673Y0086142D01* -X0100000Y0086142D01* -X0100000Y0109764D01* -X0080059Y0109764D01* -X0124941Y0109764D01* -X0128750Y0109764D01* -X0128750Y0122500D01* -X0153760Y0122500D01* -X0155000Y0122500D01* -X0155000Y0130000D01* -X0190000Y0130000D01* -X0186708Y0133168D02* -X0187412Y0133873D01* -X0189091Y0134568D01* -X0190909Y0134568D01* -X0192588Y0133873D01* -X0193873Y0132588D01* -X0194331Y0131481D01* -X0194331Y0144208D01* -X0193627Y0144912D01* -X0193168Y0146019D01* -X0193168Y0140807D01* -X0192686Y0139642D01* -X0189999Y0136955D01* -X0189999Y0136955D01* -X0189108Y0136064D01* -X0187943Y0135581D01* -X0136963Y0135581D01* -X0137577Y0135327D01* -X0138043Y0134861D01* -X0138145Y0134920D01* -X0138628Y0135050D01* -X0140837Y0135050D01* -X0140837Y0130600D01* -X0142037Y0130600D01* -X0142037Y0135050D01* -X0144246Y0135050D01* -X0144729Y0134920D01* -X0145163Y0134670D01* -X0145516Y0134316D01* -X0145767Y0133883D01* -X0145896Y0133400D01* -X0145896Y0130600D01* -X0142037Y0130600D01* -X0142037Y0129400D01* -X0145896Y0129400D01* -X0145896Y0126600D01* -X0145767Y0126117D01* -X0145516Y0125684D01* -X0145501Y0125668D01* -X0148632Y0125668D01* -X0148632Y0125964D01* -X0149023Y0126908D01* -X0149746Y0127630D01* -X0150058Y0127759D01* -X0150000Y0127759D01* -X0150000Y0131250D01* -X0150000Y0131250D01* -X0150000Y0134741D01* -X0149656Y0134741D01* -X0148982Y0134606D01* -X0148347Y0134343D01* -X0147775Y0133961D01* -X0147289Y0133475D01* -X0146907Y0132903D01* -X0146644Y0132268D01* -X0146509Y0131594D01* -X0146509Y0131250D01* -X0146509Y0130906D01* -X0146644Y0130232D01* -X0146907Y0129597D01* -X0147289Y0129025D01* -X0147775Y0128539D01* -X0148347Y0128157D01* -X0148982Y0127894D01* -X0149656Y0127759D01* -X0150000Y0127759D01* -X0150000Y0131250D01* -X0150000Y0131250D01* -X0150000Y0131250D01* -X0146509Y0131250D01* -X0150000Y0131250D01* -X0150000Y0134741D01* -X0150344Y0134741D01* -X0151018Y0134606D01* -X0151653Y0134343D01* -X0152225Y0133961D01* -X0152711Y0133475D01* -X0153093Y0132903D01* -X0153190Y0132671D01* -X0153205Y0132686D01* -X0154370Y0133168D01* -X0186708Y0133168D01* -X0188282Y0134233D02* -X0151818Y0134233D01* -X0153005Y0133035D02* -X0154047Y0133035D01* -X0150000Y0133035D02* -X0150000Y0133035D01* -X0150000Y0134233D02* -X0150000Y0134233D01* -X0148182Y0134233D02* -X0145564Y0134233D01* -X0145896Y0133035D02* -X0146995Y0133035D01* -X0146558Y0131836D02* -X0145896Y0131836D01* -X0145896Y0130638D02* -X0146563Y0130638D01* -X0147012Y0129439D02* -X0142037Y0129439D01* -X0142037Y0130638D02* -X0140837Y0130638D01* -X0140837Y0131836D02* -X0142037Y0131836D01* -X0142037Y0133035D02* -X0140837Y0133035D01* -X0140837Y0134233D02* -X0142037Y0134233D01* -X0137324Y0135432D02* -X0194331Y0135432D01* -X0194331Y0136630D02* -X0189674Y0136630D01* -X0190873Y0137829D02* -X0194331Y0137829D01* -X0194331Y0139027D02* -X0192071Y0139027D01* -X0192928Y0140226D02* -X0194331Y0140226D01* -X0194331Y0141424D02* -X0193168Y0141424D01* -X0193168Y0142623D02* -X0194331Y0142623D01* -X0194331Y0143821D02* -X0193168Y0143821D01* -X0193168Y0145020D02* -X0193582Y0145020D01* -X0197500Y0147500D02* -X0197500Y0123937D01* -X0196063Y0122500D01* -X0161240Y0122500D01* -X0160856Y0122500D01* -X0160856Y0109764D01* -X0156919Y0105827D01* -X0124941Y0105827D01* -X0124941Y0107795D02* -X0133563Y0107795D01* -X0133563Y0115000D01* -X0136731Y0109323D02* -X0137577Y0109673D01* -X0138043Y0110139D01* -X0138145Y0110080D01* -X0138628Y0109950D01* -X0140837Y0109950D01* -X0140837Y0114400D01* -X0142037Y0114400D01* -X0142037Y0115600D01* -X0145896Y0115600D01* -X0145896Y0118400D01* -X0145767Y0118883D01* -X0145516Y0119316D01* -X0145501Y0119331D01* -X0148632Y0119331D01* -X0148632Y0119036D01* -X0149023Y0118092D01* -X0149746Y0117370D01* -X0150690Y0116979D01* -X0156830Y0116979D01* -X0157500Y0117256D01* -X0157688Y0117179D01* -X0157688Y0111076D01* -X0155607Y0108995D01* -X0136731Y0108995D01* -X0136731Y0109323D01* -X0136731Y0109065D02* -X0150629Y0109065D01* -X0150906Y0109009D02* -X0151250Y0109009D01* -X0151594Y0109009D01* -X0152268Y0109144D01* -X0152903Y0109407D01* -X0153475Y0109789D01* -X0153961Y0110275D01* -X0154343Y0110847D01* -X0154606Y0111482D01* -X0154741Y0112156D01* -X0154741Y0112500D01* -X0154741Y0112844D01* -X0154606Y0113518D01* -X0154343Y0114153D01* -X0153961Y0114725D01* -X0153475Y0115211D01* -X0152903Y0115593D01* -X0152268Y0115856D01* -X0151594Y0115991D01* -X0151250Y0115991D01* -X0150906Y0115991D01* -X0150232Y0115856D01* -X0149597Y0115593D01* -X0149025Y0115211D01* -X0148539Y0114725D01* -X0148157Y0114153D01* -X0147894Y0113518D01* -X0147759Y0112844D01* -X0147759Y0112500D01* -X0147759Y0112156D01* -X0147894Y0111482D01* -X0148157Y0110847D01* -X0148539Y0110275D01* -X0149025Y0109789D01* -X0149597Y0109407D01* -X0150232Y0109144D01* -X0150906Y0109009D01* -X0151250Y0109009D02* -X0151250Y0112500D01* -X0154741Y0112500D01* -X0151250Y0112500D01* -X0151250Y0112500D01* -X0151250Y0112500D01* -X0151250Y0115991D01* -X0151250Y0112500D01* -X0151250Y0109009D01* -X0151250Y0109065D02* -X0151250Y0109065D01* -X0151871Y0109065D02* -X0155676Y0109065D01* -X0156875Y0110263D02* -X0153949Y0110263D01* -X0154598Y0111462D02* -X0157688Y0111462D01* -X0157688Y0112660D02* -X0154741Y0112660D01* -X0154465Y0113859D02* -X0157688Y0113859D01* -X0157688Y0115057D02* -X0153629Y0115057D01* -X0151250Y0115057D02* -X0151250Y0115057D01* -X0151250Y0113859D02* -X0151250Y0113859D01* -X0151250Y0112660D02* -X0151250Y0112660D01* -X0151250Y0112500D02* -X0151250Y0112500D01* -X0151250Y0112500D01* -X0147759Y0112500D01* -X0151250Y0112500D01* -X0151250Y0111462D02* -X0151250Y0111462D01* -X0151250Y0110263D02* -X0151250Y0110263D01* -X0148551Y0110263D02* -X0145047Y0110263D01* -X0145163Y0110330D02* -X0145516Y0110684D01* -X0145767Y0111117D01* -X0145896Y0111600D01* -X0145896Y0114400D01* -X0142037Y0114400D01* -X0142037Y0109950D01* -X0144246Y0109950D01* -X0144729Y0110080D01* -X0145163Y0110330D01* -X0145859Y0111462D02* -X0147902Y0111462D01* -X0147759Y0112660D02* -X0145896Y0112660D01* -X0145896Y0113859D02* -X0148035Y0113859D01* -X0148871Y0115057D02* -X0142037Y0115057D01* -X0142037Y0113859D02* -X0140837Y0113859D01* -X0140837Y0112660D02* -X0142037Y0112660D01* -X0142037Y0111462D02* -X0140837Y0111462D01* -X0140837Y0110263D02* -X0142037Y0110263D01* -X0145896Y0116256D02* -X0157688Y0116256D01* -X0164025Y0116256D02* -X0249618Y0116256D01* -X0249725Y0116211D02* -X0251181Y0116211D01* -X0251181Y0114183D01* -X0249986Y0114183D01* -X0249503Y0114054D01* -X0249070Y0113804D01* -X0248716Y0113450D01* -X0248466Y0113017D01* -X0248336Y0112534D01* -X0248336Y0111299D01* -X0248336Y0110866D01* -X0248059Y0110589D01* -X0247668Y0109645D01* -X0247668Y0108168D01* -X0236312Y0108168D01* -X0235186Y0109295D01* -X0234295Y0110186D01* -X0233130Y0110668D01* -X0228868Y0110668D01* -X0228868Y0110964D01* -X0228477Y0111908D01* -X0227754Y0112630D01* -X0226810Y0113021D01* -X0220670Y0113021D01* -X0220000Y0112744D01* -X0219330Y0113021D01* -X0213190Y0113021D01* -X0212246Y0112630D01* -X0211523Y0111908D01* -X0211132Y0110964D01* -X0211132Y0110668D01* -X0206870Y0110668D01* -X0205705Y0110186D01* -X0204814Y0109295D01* -X0202546Y0107027D01* -X0162600Y0107027D01* -X0162651Y0107078D01* -X0163542Y0107969D01* -X0164025Y0109134D01* -X0164025Y0116979D01* -X0164310Y0116979D01* -X0165254Y0117370D01* -X0165977Y0118092D01* -X0166368Y0119036D01* -X0166368Y0119331D01* -X0196693Y0119331D01* -X0197858Y0119814D01* -X0198749Y0120705D01* -X0200186Y0122142D01* -X0200668Y0123307D01* -X0200668Y0144208D01* -X0201373Y0144912D01* -X0202068Y0146591D01* -X0202068Y0148409D01* -X0201373Y0150088D01* -X0200088Y0151373D01* -X0198409Y0152068D01* -X0196591Y0152068D01* -X0194912Y0151373D01* -X0193627Y0150088D01* -X0193168Y0148981D01* -X0193168Y0152251D01* -X0194729Y0153811D01* -X0194912Y0153627D01* -X0196591Y0152931D01* -X0198409Y0152931D01* -X0200088Y0153627D01* -X0201373Y0154912D01* -X0202068Y0156591D01* -X0202068Y0158409D01* -X0201373Y0160088D01* -X0200088Y0161373D01* -X0198409Y0162068D01* -X0196591Y0162068D01* -X0194912Y0161373D01* -X0194208Y0160668D01* -X0193307Y0160668D01* -X0193168Y0160611D01* -X0193168Y0202400D01* -X0194600Y0202400D01* -X0194600Y0207100D01* -X0195400Y0207100D01* -X0195400Y0207900D01* -X0200100Y0207900D01* -X0200100Y0209612D01* -X0197685Y0212027D01* -X0200768Y0215111D01* -X0200768Y0219331D01* -X0225246Y0219331D01* -X0225246Y0215198D01* -X0225637Y0214254D01* -X0226360Y0213531D01* -X0227304Y0213140D01* -X0240924Y0213140D01* -X0241868Y0213531D01* -X0242591Y0214254D01* -X0242778Y0214706D01* -X0252222Y0214706D01* -X0252409Y0214254D01* -X0253132Y0213531D01* -X0254076Y0213140D01* -X0267696Y0213140D01* -X0268640Y0213531D01* -X0269282Y0214173D01* -X0269282Y0213367D01* -X0269673Y0212423D01* -X0270139Y0211957D01* -X0270080Y0211855D01* -X0269950Y0211372D01* -X0269950Y0209163D01* -X0274400Y0209163D01* -X0274400Y0207963D01* -X0269950Y0207963D01* -X0269950Y0205754D01* -X0270080Y0205271D01* -X0270330Y0204837D01* -X0270684Y0204484D01* -X0271117Y0204233D01* -X0271600Y0204104D01* -X0274400Y0204104D01* -X0274400Y0207963D01* -X0275600Y0207963D01* -X0275600Y0209163D01* -X0280050Y0209163D01* -X0280050Y0211372D01* -X0279920Y0211855D01* -X0279861Y0211957D01* -X0280327Y0212423D01* -X0280718Y0213367D01* -X0280718Y0219507D01* -X0280327Y0220451D01* -X0279605Y0221174D01* -X0278661Y0221565D01* -X0271339Y0221565D01* -X0270395Y0221174D01* -X0270264Y0221043D01* -X0269550Y0221043D01* -X0269363Y0221494D01* -X0268640Y0222217D01* -X0267696Y0222608D01* -X0254076Y0222608D01* -X0253132Y0222217D01* -X0252409Y0221494D01* -X0252222Y0221043D01* -X0242778Y0221043D01* -X0242591Y0221494D01* -X0241868Y0222217D01* -X0240924Y0222608D01* -X0237283Y0222608D01* -X0237283Y0223130D01* -X0236800Y0224295D01* -X0235909Y0225186D01* -X0234744Y0225668D01* -X0189370Y0225668D01* -X0188205Y0225186D01* -X0187314Y0224295D01* -X0186288Y0223268D01* -X0182611Y0223268D01* -X0179231Y0219889D01* -X0179231Y0216212D01* -X0178205Y0215186D01* -X0177314Y0214295D01* -X0176831Y0213130D01* -X0176831Y0193812D01* -X0173688Y0190668D01* -X0149551Y0190668D01* -X0153696Y0194814D01* -X0154588Y0195705D01* -X0155070Y0196870D01* -X0155070Y0198882D01* -X0155562Y0198882D01* -X0156506Y0199273D01* -X0157229Y0199996D01* -X0157500Y0200651D01* -X0157771Y0199996D01* -X0158494Y0199273D01* -X0159438Y0198882D01* -X0166759Y0198882D01* -X0167703Y0199273D01* -X0168425Y0199996D01* -X0168817Y0200940D01* -X0168817Y0209060D01* -X0168425Y0210004D01* -X0167703Y0210727D01* -X0166759Y0211118D01* -X0166267Y0211118D01* -X0166267Y0213793D01* -X0166368Y0214036D01* -X0166368Y0220964D01* -X0165977Y0221908D01* -X0165254Y0222630D01* -X0164310Y0223021D01* -X0158170Y0223021D01* -X0157226Y0222630D01* -X0156868Y0222273D01* -X0156569Y0222353D01* -X0154360Y0222353D01* -X0154360Y0218100D01* -X0153160Y0218100D01* -X0153160Y0222353D01* -X0150951Y0222353D01* -X0150467Y0222223D01* -X0150034Y0221973D01* -X0149680Y0221619D01* -X0149430Y0221186D01* -X0149301Y0220703D01* -X0149301Y0218100D01* -X0153160Y0218100D01* -X0153160Y0216900D01* -X0154360Y0216900D01* -X0154360Y0212647D01* -X0156569Y0212647D01* -X0156868Y0212727D01* -X0157226Y0212370D01* -X0158170Y0211979D01* -X0159930Y0211979D01* -X0159930Y0211118D01* -X0159438Y0211118D01* -X0158494Y0210727D01* -X0157771Y0210004D01* -X0157500Y0209349D01* -X0157229Y0210004D01* -X0156506Y0210727D01* -X0155562Y0211118D01* -X0148241Y0211118D01* -X0147297Y0210727D01* -X0146574Y0210004D01* -X0146183Y0209060D01* -X0146183Y0200940D01* -X0146574Y0199996D01* -X0147297Y0199273D01* -X0148241Y0198882D01* -X0148733Y0198882D01* -X0148733Y0198812D01* -X0145589Y0195668D01* -X0129551Y0195668D01* -X0129588Y0195705D01* -X0130070Y0196870D01* -X0130070Y0198882D01* -X0130562Y0198882D01* -X0131506Y0199273D01* -X0132229Y0199996D01* -X0132500Y0200651D01* -X0132771Y0199996D01* -X0133494Y0199273D01* -X0134438Y0198882D01* -X0141759Y0198882D01* -X0142703Y0199273D01* -X0143425Y0199996D01* -X0143817Y0200940D01* -X0143817Y0209060D01* -X0143425Y0210004D01* -X0142703Y0210727D01* -X0141759Y0211118D01* -X0141267Y0211118D01* -X0141267Y0213793D01* -X0141368Y0214036D01* -X0141368Y0220964D01* -X0140977Y0221908D01* -X0140254Y0222630D01* -X0139310Y0223021D01* -X0133170Y0223021D01* -X0132226Y0222630D01* -X0131868Y0222273D01* -X0131569Y0222353D01* -X0129360Y0222353D01* -X0129360Y0218100D01* -X0128160Y0218100D01* -X0128160Y0222353D01* -X0125951Y0222353D01* -X0125467Y0222223D01* -X0125034Y0221973D01* -X0124680Y0221619D01* -X0124430Y0221186D01* -X0124301Y0220703D01* -X0124301Y0218100D01* -X0128160Y0218100D01* -X0128160Y0216900D01* -X0129360Y0216900D01* -X0129360Y0212647D01* -X0131569Y0212647D01* -X0131868Y0212727D01* -X0132226Y0212370D01* -X0133170Y0211979D01* -X0134930Y0211979D01* -X0134930Y0211118D01* -X0134438Y0211118D01* -X0133494Y0210727D01* -X0132771Y0210004D01* -X0132500Y0209349D01* -X0132229Y0210004D01* -X0131506Y0210727D01* -X0130562Y0211118D01* -X0123241Y0211118D01* -X0122297Y0210727D01* -X0121574Y0210004D01* -X0121183Y0209060D01* -X0121183Y0200940D01* -X0121296Y0200668D01* -X0118771Y0200668D01* -X0118690Y0200635D01* -X0118817Y0200940D01* -X0118817Y0209060D01* -X0118425Y0210004D01* -X0117703Y0210727D01* -X0116759Y0211118D01* -X0116267Y0211118D01* -X0116267Y0213793D01* -X0116368Y0214036D01* -X0116368Y0220964D01* -X0115977Y0221908D01* -X0115254Y0222630D01* -X0114310Y0223021D01* -X0108170Y0223021D01* -X0107226Y0222630D01* -X0106868Y0222273D01* -X0106569Y0222353D01* -X0104360Y0222353D01* -X0104360Y0218100D01* -X0103160Y0218100D01* -X0103160Y0222353D01* -X0100951Y0222353D01* -X0100467Y0222223D01* -X0100034Y0221973D01* -X0099680Y0221619D01* -X0099430Y0221186D01* -X0099301Y0220703D01* -X0099301Y0218100D01* -X0103160Y0218100D01* -X0103160Y0216900D01* -X0104360Y0216900D01* -X0104360Y0212647D01* -X0106569Y0212647D01* -X0106868Y0212727D01* -X0107226Y0212370D01* -X0108170Y0211979D01* -X0109930Y0211979D01* -X0109930Y0211118D01* -X0109438Y0211118D01* -X0108494Y0210727D01* -X0107771Y0210004D01* -X0107500Y0209349D01* -X0107229Y0210004D01* -X0106506Y0210727D01* -X0105562Y0211118D01* -X0098241Y0211118D01* -X0097297Y0210727D01* -X0096574Y0210004D01* -X0096183Y0209060D01* -X0096183Y0208168D01* -X0085653Y0208168D01* -X0085186Y0209295D01* -X0084295Y0210186D01* -X0079295Y0215186D01* -X0078130Y0215668D01* -X0068268Y0215668D01* -X0068268Y0219889D01* -X0064889Y0223268D01* -X0061212Y0223268D01* -X0057686Y0226795D01* -X0057089Y0227392D01* -X0286132Y0227392D01* -X0286132Y0166433D01* -X0284751Y0167814D01* -X0282447Y0168768D01* -X0272553Y0168768D01* -X0270249Y0167814D01* -X0268704Y0166268D01* -X0261750Y0166268D01* -X0260365Y0165695D01* -X0255365Y0160695D01* -X0254975Y0160305D01* -X0254233Y0160305D01* -X0253289Y0159914D01* -X0252567Y0159191D01* -X0252176Y0158247D01* -X0252176Y0151713D01* -X0252567Y0150769D01* -X0253289Y0150047D01* -X0254233Y0149656D01* -X0260767Y0149656D01* -X0261711Y0150047D01* -X0262433Y0150769D01* -X0262824Y0151713D01* -X0262824Y0157495D01* -X0264061Y0158731D01* -X0268704Y0158731D01* -X0270249Y0157186D01* -X0270550Y0157061D01* -X0270152Y0156771D01* -X0269529Y0156148D01* -X0269010Y0155435D01* -X0268610Y0154650D01* -X0268338Y0153811D01* -X0268209Y0153000D01* -X0277000Y0153000D01* -X0277000Y0152000D01* -X0278000Y0152000D01* -X0278000Y0146900D01* -X0281641Y0146900D01* -X0282511Y0147038D01* -X0283350Y0147310D01* -X0284135Y0147710D01* -X0284848Y0148229D01* -X0285471Y0148852D01* -X0285990Y0149565D01* -X0286132Y0149845D01* -X0286132Y0051433D01* -X0284751Y0052814D01* -X0282447Y0053768D01* -X0272553Y0053768D01* -X0272500Y0053746D01* -X0272447Y0053768D01* -X0269418Y0053768D01* -X0269418Y0053926D01* -X0270256Y0054273D01* -X0270979Y0054996D01* -X0271250Y0055651D01* -X0271521Y0054996D01* -X0272244Y0054273D01* -X0273188Y0053882D01* -X0280509Y0053882D01* -X0281453Y0054273D01* -X0282175Y0054996D01* -X0282567Y0055940D01* -X0282567Y0064060D01* -X0282175Y0065004D01* -X0281453Y0065727D01* -X0280509Y0066118D01* -X0280017Y0066118D01* -X0280017Y0068793D01* -X0280118Y0069036D01* -X0280118Y0075964D01* -X0279727Y0076908D01* -X0279004Y0077630D01* -X0278060Y0078021D01* -X0277876Y0078021D01* -X0278093Y0078347D01* -X0278356Y0078982D01* -X0278491Y0079656D01* -X0278491Y0080000D01* -X0278491Y0080344D01* -X0278404Y0080778D01* -X0282243Y0080778D01* -X0283187Y0081169D01* -X0283910Y0081892D01* -X0284301Y0082836D01* -X0284301Y0091731D01* -X0283910Y0092675D01* -X0283187Y0093398D01* -X0282243Y0093789D01* -X0281318Y0093789D01* -X0281318Y0116211D01* -X0282243Y0116211D01* -X0283187Y0116602D01* -X0283910Y0117325D01* -X0284301Y0118269D01* -X0284301Y0127164D01* -X0283910Y0128108D01* -X0283187Y0128831D01* -X0282243Y0129222D01* -X0271379Y0129222D01* -X0271268Y0129176D01* -X0271268Y0135750D01* -X0270695Y0137135D01* -X0269635Y0138195D01* -X0264635Y0143195D01* -X0263250Y0143768D01* -X0262625Y0143768D01* -X0262433Y0144231D01* -X0261711Y0144953D01* -X0260767Y0145344D01* -X0254233Y0145344D01* -X0253289Y0144953D01* -X0252567Y0144231D01* -X0252375Y0143768D01* -X0251375Y0143768D01* -X0251183Y0144231D01* -X0250461Y0144953D01* -X0249517Y0145344D01* -X0242983Y0145344D01* -X0242039Y0144953D01* -X0241317Y0144231D01* -X0240926Y0143286D01* -X0240926Y0136753D01* -X0241317Y0135809D01* -X0242039Y0135086D01* -X0242983Y0134695D01* -X0249517Y0134695D01* -X0250461Y0135086D01* -X0251183Y0135809D01* -X0251358Y0136231D01* -X0252392Y0136231D01* -X0252567Y0135809D01* -X0253289Y0135086D01* -X0254233Y0134695D01* -X0260767Y0134695D01* -X0261711Y0135086D01* -X0261898Y0135273D01* -X0263731Y0133439D01* -X0263731Y0126318D01* -X0262647Y0126318D01* -X0262647Y0127164D01* -X0262256Y0128108D01* -X0261534Y0128831D01* -X0260590Y0129222D01* -X0249725Y0129222D01* -X0248781Y0128831D01* -X0248059Y0128108D01* -X0247668Y0127164D01* -X0247668Y0118269D01* -X0248059Y0117325D01* -X0248781Y0116602D01* -X0249725Y0116211D01* -X0251181Y0115057D02* -X0164025Y0115057D01* -X0164025Y0113859D02* -X0249164Y0113859D01* -X0248370Y0112660D02* -X0227682Y0112660D01* -X0228661Y0111462D02* -X0248336Y0111462D01* -X0248336Y0111299D02* -X0248769Y0111299D01* -X0248336Y0111299D01* -X0248769Y0111299D02* -X0248769Y0111299D01* -X0247924Y0110263D02* -X0234109Y0110263D01* -X0235416Y0109065D02* -X0247668Y0109065D01* -X0240000Y0111299D02* -X0240000Y0122500D01* -X0243491Y0122500D01* -X0243491Y0122844D01* -X0243356Y0123518D01* -X0243093Y0124153D01* -X0242711Y0124725D01* -X0242225Y0125211D01* -X0241653Y0125593D01* -X0241018Y0125856D01* -X0240344Y0125991D01* -X0240000Y0125991D01* -X0239656Y0125991D01* -X0238982Y0125856D01* -X0238347Y0125593D01* -X0237775Y0125211D01* -X0237289Y0124725D01* -X0236907Y0124153D01* -X0236644Y0123518D01* -X0236509Y0122844D01* -X0236509Y0122500D01* -X0236509Y0122156D01* -X0236644Y0121482D01* -X0236907Y0120847D01* -X0237289Y0120275D01* -X0237775Y0119789D01* -X0238347Y0119407D01* -X0238982Y0119144D01* -X0239656Y0119009D01* -X0240000Y0119009D01* -X0240344Y0119009D01* -X0241018Y0119144D01* -X0241653Y0119407D01* -X0242225Y0119789D01* -X0242711Y0120275D01* -X0243093Y0120847D01* -X0243356Y0121482D01* -X0243491Y0122156D01* -X0243491Y0122500D01* -X0240000Y0122500D01* -X0240000Y0122500D01* -X0240000Y0122500D01* -X0240000Y0125991D01* -X0240000Y0122500D01* -X0240000Y0119009D01* -X0240000Y0122500D01* -X0240000Y0122500D01* -X0240000Y0122500D01* -X0236509Y0122500D01* -X0240000Y0122500D01* -X0240000Y0122248D02* -X0240000Y0122248D01* -X0240000Y0121050D02* -X0240000Y0121050D01* -X0240000Y0119851D02* -X0240000Y0119851D01* -X0242288Y0119851D02* -X0247668Y0119851D01* -X0247668Y0118653D02* -X0166209Y0118653D01* -X0165338Y0117454D02* -X0248005Y0117454D01* -X0247668Y0121050D02* -X0243177Y0121050D01* -X0243491Y0122248D02* -X0247668Y0122248D01* -X0247668Y0123447D02* -X0243371Y0123447D01* -X0242765Y0124645D02* -X0247668Y0124645D01* -X0247668Y0125844D02* -X0241049Y0125844D01* -X0240000Y0125844D02* -X0240000Y0125844D01* -X0238951Y0125844D02* -X0200668Y0125844D01* -X0200668Y0127042D02* -X0247668Y0127042D01* -X0248191Y0128241D02* -X0200668Y0128241D01* -X0200668Y0129439D02* -X0263731Y0129439D01* -X0263731Y0128241D02* -X0262124Y0128241D01* -X0262647Y0127042D02* -X0263731Y0127042D01* -X0263731Y0130638D02* -X0200668Y0130638D01* -X0200668Y0131836D02* -X0223517Y0131836D01* -X0223347Y0131907D02* -X0223982Y0131644D01* -X0224656Y0131509D01* -X0225000Y0131509D01* -X0225344Y0131509D01* -X0226018Y0131644D01* -X0226653Y0131907D01* -X0227225Y0132289D01* -X0227711Y0132775D01* -X0228093Y0133347D01* -X0228356Y0133982D01* -X0228491Y0134656D01* -X0228491Y0135000D01* -X0228491Y0135344D01* -X0228356Y0136018D01* -X0228093Y0136653D01* -X0227711Y0137225D01* -X0227225Y0137711D01* -X0226653Y0138093D01* -X0226018Y0138356D01* -X0225344Y0138491D01* -X0225000Y0138491D01* -X0224656Y0138491D01* -X0223982Y0138356D01* -X0223347Y0138093D01* -X0222775Y0137711D01* -X0222289Y0137225D01* -X0221907Y0136653D01* -X0221644Y0136018D01* -X0221509Y0135344D01* -X0221509Y0135000D01* -X0221509Y0134656D01* -X0221644Y0133982D01* -X0221907Y0133347D01* -X0222289Y0132775D01* -X0222775Y0132289D01* -X0223347Y0131907D01* -X0225000Y0131836D02* -X0225000Y0131836D01* -X0225000Y0131509D02* -X0225000Y0135000D01* -X0228491Y0135000D01* -X0225000Y0135000D01* -X0225000Y0135000D01* -X0225000Y0135000D01* -X0225000Y0138491D01* -X0225000Y0135000D01* -X0225000Y0135000D01* -X0225000Y0135000D01* -X0221509Y0135000D01* -X0225000Y0135000D01* -X0225000Y0131509D01* -X0226483Y0131836D02* -X0263731Y0131836D01* -X0263731Y0133035D02* -X0227885Y0133035D01* -X0228406Y0134233D02* -X0262937Y0134233D01* -X0268802Y0139027D02* -X0274355Y0139027D01* -X0274407Y0139153D02* -X0274144Y0138518D01* -X0274009Y0137844D01* -X0274009Y0137500D01* -X0274009Y0137156D01* -X0274144Y0136482D01* -X0274407Y0135847D01* -X0274789Y0135275D01* -X0275275Y0134789D01* -X0275847Y0134407D01* -X0276482Y0134144D01* -X0277156Y0134009D01* -X0277500Y0134009D01* -X0277844Y0134009D01* -X0278518Y0134144D01* -X0279153Y0134407D01* -X0279725Y0134789D01* -X0280211Y0135275D01* -X0280593Y0135847D01* -X0280856Y0136482D01* -X0280991Y0137156D01* -X0280991Y0137500D01* -X0280991Y0137844D01* -X0280856Y0138518D01* -X0280593Y0139153D01* -X0280211Y0139725D01* -X0279725Y0140211D01* -X0279153Y0140593D01* -X0278518Y0140856D01* -X0277844Y0140991D01* -X0277500Y0140991D01* -X0277156Y0140991D01* -X0276482Y0140856D01* -X0275847Y0140593D01* -X0275275Y0140211D01* -X0274789Y0139725D01* -X0274407Y0139153D01* -X0274009Y0137829D02* -X0270001Y0137829D01* -X0270904Y0136630D02* -X0274114Y0136630D01* -X0274009Y0137500D02* -X0277500Y0137500D01* -X0280991Y0137500D01* -X0277500Y0137500D01* -X0277500Y0137500D01* -X0277500Y0137500D01* -X0277500Y0140991D01* -X0277500Y0137500D01* -X0277500Y0134009D01* -X0277500Y0137500D01* -X0277500Y0137500D01* -X0277500Y0137500D01* -X0274009Y0137500D01* -X0274684Y0135432D02* -X0271268Y0135432D01* -X0271268Y0134233D02* -X0276265Y0134233D01* -X0277500Y0134233D02* -X0277500Y0134233D01* -X0277500Y0135432D02* -X0277500Y0135432D01* -X0277500Y0136630D02* -X0277500Y0136630D01* -X0277500Y0137829D02* -X0277500Y0137829D01* -X0277500Y0139027D02* -X0277500Y0139027D01* -X0277500Y0140226D02* -X0277500Y0140226D01* -X0275297Y0140226D02* -X0267604Y0140226D01* -X0266405Y0141424D02* -X0286132Y0141424D01* -X0286132Y0140226D02* -X0279703Y0140226D01* -X0280645Y0139027D02* -X0286132Y0139027D01* -X0286132Y0137829D02* -X0280991Y0137829D01* -X0280886Y0136630D02* -X0286132Y0136630D01* -X0286132Y0135432D02* -X0280316Y0135432D01* -X0278735Y0134233D02* -X0286132Y0134233D01* -X0286132Y0133035D02* -X0271268Y0133035D01* -X0271268Y0131836D02* -X0286132Y0131836D01* -X0286132Y0130638D02* -X0271268Y0130638D01* -X0271268Y0129439D02* -X0286132Y0129439D01* -X0286132Y0128241D02* -X0283778Y0128241D01* -X0284301Y0127042D02* -X0286132Y0127042D01* -X0286132Y0125844D02* -X0284301Y0125844D01* -X0284301Y0124645D02* -X0286132Y0124645D01* -X0286132Y0123447D02* -X0284301Y0123447D01* -X0284301Y0122248D02* -X0286132Y0122248D01* -X0286132Y0121050D02* -X0284301Y0121050D01* -X0284301Y0119851D02* -X0286132Y0119851D01* -X0286132Y0118653D02* -X0284301Y0118653D01* -X0283963Y0117454D02* -X0286132Y0117454D01* -X0286132Y0116256D02* -X0282351Y0116256D01* -X0281318Y0115057D02* -X0286132Y0115057D01* -X0286132Y0113859D02* -X0281318Y0113859D01* -X0281318Y0112660D02* -X0286132Y0112660D01* -X0286132Y0111462D02* -X0281318Y0111462D01* -X0281318Y0110263D02* -X0286132Y0110263D01* -X0286132Y0109065D02* -X0281318Y0109065D01* -X0281318Y0107866D02* -X0286132Y0107866D01* -X0286132Y0106668D02* -X0281318Y0106668D01* -X0281318Y0105469D02* -X0286132Y0105469D01* -X0286132Y0104270D02* -X0281318Y0104270D01* -X0281318Y0103072D02* -X0286132Y0103072D01* -X0286132Y0101873D02* -X0281318Y0101873D01* -X0281318Y0100675D02* -X0286132Y0100675D01* -X0286132Y0099476D02* -X0281318Y0099476D01* -X0281318Y0098278D02* -X0286132Y0098278D01* -X0286132Y0097079D02* -X0281318Y0097079D01* -X0281318Y0095881D02* -X0286132Y0095881D01* -X0286132Y0094682D02* -X0281318Y0094682D01* -X0282980Y0093484D02* -X0286132Y0093484D01* -X0286132Y0092285D02* -X0284071Y0092285D01* -X0284301Y0091087D02* -X0286132Y0091087D01* -X0286132Y0089888D02* -X0284301Y0089888D01* -X0284301Y0088690D02* -X0286132Y0088690D01* -X0286132Y0087491D02* -X0284301Y0087491D01* -X0284301Y0086293D02* -X0286132Y0086293D01* -X0286132Y0085094D02* -X0284301Y0085094D01* -X0284301Y0083896D02* -X0286132Y0083896D01* -X0286132Y0082697D02* -X0284244Y0082697D01* -X0283517Y0081499D02* -X0286132Y0081499D01* -X0286132Y0080300D02* -X0278491Y0080300D01* -X0278491Y0080000D02* -X0275000Y0080000D01* -X0275000Y0080000D01* -X0275000Y0080000D01* -X0271509Y0080000D01* -X0271509Y0079656D01* -X0271644Y0078982D01* -X0271907Y0078347D01* -X0272124Y0078021D01* -X0271920Y0078021D01* -X0270976Y0077630D01* -X0270618Y0077273D01* -X0270319Y0077353D01* -X0268110Y0077353D01* -X0268110Y0073100D01* -X0266910Y0073100D01* -X0266910Y0077353D01* -X0265182Y0077353D01* -X0265695Y0077865D01* -X0269717Y0081887D01* -X0270435Y0081169D01* -X0271379Y0080778D01* -X0271596Y0080778D01* -X0271509Y0080344D01* -X0271509Y0080000D01* -X0275000Y0080000D01* -X0278491Y0080000D01* -X0278380Y0079102D02* -X0286132Y0079102D01* -X0286132Y0077903D02* -X0278345Y0077903D01* -X0279811Y0076705D02* -X0286132Y0076705D01* -X0286132Y0075506D02* -X0280118Y0075506D01* -X0280118Y0074308D02* -X0286132Y0074308D01* -X0286132Y0073109D02* -X0280118Y0073109D01* -X0280118Y0071911D02* -X0286132Y0071911D01* -X0286132Y0070712D02* -X0280118Y0070712D01* -X0280118Y0069514D02* -X0286132Y0069514D01* -X0286132Y0068315D02* -X0280017Y0068315D01* -X0280017Y0067117D02* -X0286132Y0067117D01* -X0286132Y0065918D02* -X0280991Y0065918D01* -X0282293Y0064720D02* -X0286132Y0064720D01* -X0286132Y0063521D02* -X0282567Y0063521D01* -X0282567Y0062323D02* -X0286132Y0062323D01* -X0286132Y0061124D02* -X0282567Y0061124D01* -X0282567Y0059926D02* -X0286132Y0059926D01* -X0286132Y0058727D02* -X0282567Y0058727D01* -X0282567Y0057529D02* -X0286132Y0057529D01* -X0286132Y0056330D02* -X0282567Y0056330D01* -X0282232Y0055132D02* -X0286132Y0055132D01* -X0286132Y0053933D02* -X0280631Y0053933D01* -X0284830Y0052734D02* -X0286132Y0052734D01* -X0286132Y0051536D02* -X0286029Y0051536D01* -X0276848Y0060000D02* -X0276848Y0072500D01* -X0274990Y0072500D01* -X0273680Y0066979D02* -X0271920Y0066979D01* -X0270976Y0067370D01* -X0270618Y0067727D01* -X0270319Y0067647D01* -X0268110Y0067647D01* -X0268110Y0071900D01* -X0266910Y0071900D01* -X0266910Y0067647D01* -X0264701Y0067647D01* -X0264217Y0067777D01* -X0263784Y0068027D01* -X0263430Y0068381D01* -X0263180Y0068814D01* -X0263051Y0069297D01* -X0263051Y0071900D01* -X0266910Y0071900D01* -X0266910Y0073100D01* -X0263051Y0073100D01* -X0263051Y0075703D01* -X0263180Y0076186D01* -X0263206Y0076231D01* -X0260758Y0076231D01* -X0260758Y0073100D01* -X0256506Y0073100D01* -X0256506Y0071900D01* -X0260758Y0071900D01* -X0260758Y0068313D01* -X0260629Y0067830D01* -X0260379Y0067396D01* -X0260025Y0067043D01* -X0259592Y0066792D01* -X0259108Y0066663D01* -X0256505Y0066663D01* -X0256505Y0071900D01* -X0255306Y0071900D01* -X0255306Y0066663D01* -X0255068Y0066663D01* -X0255068Y0065837D01* -X0255306Y0065837D01* -X0255306Y0060600D01* -X0256505Y0060600D01* -X0256505Y0065837D01* -X0259108Y0065837D01* -X0259592Y0065708D01* -X0260025Y0065457D01* -X0260379Y0065104D01* -X0260395Y0065075D01* -X0261047Y0065727D01* -X0261991Y0066118D01* -X0269312Y0066118D01* -X0270256Y0065727D01* -X0270979Y0065004D01* -X0271250Y0064349D01* -X0271521Y0065004D01* -X0272244Y0065727D01* -X0273188Y0066118D01* -X0273680Y0066118D01* -X0273680Y0066979D01* -X0272706Y0065918D02* -X0269794Y0065918D01* -X0271097Y0064720D02* -X0271403Y0064720D01* -X0271587Y0067117D02* -X0260099Y0067117D01* -X0260758Y0068315D02* -X0263496Y0068315D01* -X0263051Y0069514D02* -X0260758Y0069514D01* -X0260758Y0070712D02* -X0263051Y0070712D01* -X0263051Y0073109D02* -X0260758Y0073109D01* -X0260758Y0074308D02* -X0263051Y0074308D01* -X0263051Y0075506D02* -X0260758Y0075506D01* -X0265733Y0077903D02* -X0271635Y0077903D01* -X0271620Y0079102D02* -X0266931Y0079102D01* -X0268130Y0080300D02* -X0271509Y0080300D01* -X0270105Y0081499D02* -X0269328Y0081499D01* -X0268110Y0076705D02* -X0266910Y0076705D01* -X0266910Y0075506D02* -X0268110Y0075506D01* -X0268110Y0074308D02* -X0266910Y0074308D01* -X0266910Y0073109D02* -X0268110Y0073109D01* -X0266910Y0071911D02* -X0256506Y0071911D01* -X0256505Y0070712D02* -X0255306Y0070712D01* -X0255306Y0069514D02* -X0256505Y0069514D01* -X0256505Y0068315D02* -X0255306Y0068315D01* -X0255306Y0067117D02* -X0256505Y0067117D01* -X0255068Y0065918D02* -X0261509Y0065918D01* -X0256505Y0064720D02* -X0255306Y0064720D01* -X0255306Y0063521D02* -X0256505Y0063521D01* -X0256505Y0062323D02* -X0255306Y0062323D01* -X0255306Y0061124D02* -X0256505Y0061124D01* -X0256505Y0059400D02* -X0256505Y0054163D01* -X0259108Y0054163D01* -X0259592Y0054292D01* -X0260025Y0054543D01* -X0260379Y0054896D01* -X0260395Y0054925D01* -X0261047Y0054273D01* -X0261991Y0053882D01* -X0263081Y0053882D01* -X0263081Y0053768D01* -X0262553Y0053768D01* -X0254770Y0053768D01* -X0254933Y0054163D01* -X0255306Y0054163D01* -X0255306Y0059400D01* -X0256505Y0059400D01* -X0256505Y0058727D02* -X0255306Y0058727D01* -X0255306Y0057529D02* -X0256505Y0057529D01* -X0256505Y0056330D02* -X0255306Y0056330D01* -X0255306Y0055132D02* -X0256505Y0055132D01* -X0254838Y0053933D02* -X0261869Y0053933D01* -X0266250Y0050000D02* -X0266250Y0060000D01* -X0265652Y0060000D01* -X0271035Y0055132D02* -X0271465Y0055132D01* -X0273065Y0053933D02* -X0269435Y0053933D01* -X0257825Y0045543D02* -X0137891Y0045543D01* -X0137711Y0045275D02* -X0138093Y0045847D01* -X0138356Y0046482D01* -X0138491Y0047156D01* -X0138491Y0047500D01* -X0138491Y0047844D01* -X0138356Y0048518D01* -X0138093Y0049153D01* -X0137711Y0049725D01* -X0137225Y0050211D01* -X0136653Y0050593D01* -X0136018Y0050856D01* -X0135344Y0050991D01* -X0135000Y0050991D01* -X0134656Y0050991D01* -X0133982Y0050856D01* -X0133347Y0050593D01* -X0132775Y0050211D01* -X0132289Y0049725D01* -X0131907Y0049153D01* -X0131644Y0048518D01* -X0131509Y0047844D01* -X0131509Y0047500D01* -X0131509Y0047156D01* -X0131644Y0046482D01* -X0131907Y0045847D01* -X0132289Y0045275D01* -X0132775Y0044789D01* -X0133347Y0044407D01* -X0133982Y0044144D01* -X0134656Y0044009D01* -X0135000Y0044009D01* -X0135344Y0044009D01* -X0136018Y0044144D01* -X0136653Y0044407D01* -X0137225Y0044789D01* -X0137711Y0045275D01* -X0136504Y0044345D02* -X0258322Y0044345D01* -X0259289Y0043146D02* -X0130085Y0043146D01* -X0130699Y0044345D02* -X0133496Y0044345D01* -X0135000Y0044345D02* -X0135000Y0044345D01* -X0135000Y0044009D02* -X0135000Y0047500D01* -X0138491Y0047500D01* -X0135000Y0047500D01* -X0135000Y0047500D01* -X0135000Y0047500D01* -X0135000Y0050991D01* -X0135000Y0047500D01* -X0135000Y0047500D01* -X0135000Y0047500D01* -X0131509Y0047500D01* -X0135000Y0047500D01* -X0135000Y0044009D01* -X0135000Y0045543D02* -X0135000Y0045543D01* -X0135000Y0046742D02* -X0135000Y0046742D01* -X0135000Y0047940D02* -X0135000Y0047940D01* -X0135000Y0049139D02* -X0135000Y0049139D01* -X0135000Y0050337D02* -X0135000Y0050337D01* -X0132964Y0050337D02* -X0130699Y0050337D01* -X0130699Y0050703D02* -X0130570Y0051186D01* -X0130320Y0051619D01* -X0129966Y0051973D01* -X0129533Y0052223D01* -X0129049Y0052353D01* -X0126840Y0052353D01* -X0126840Y0048100D01* -X0130699Y0048100D01* -X0130699Y0050703D01* -X0130368Y0051536D02* -X0163731Y0051536D01* -X0163731Y0052734D02* -X0122522Y0052734D01* -X0125640Y0051536D02* -X0126840Y0051536D01* -X0126840Y0050337D02* -X0125640Y0050337D01* -X0125640Y0049139D02* -X0126840Y0049139D01* -X0126840Y0047940D02* -X0131529Y0047940D01* -X0131592Y0046742D02* -X0130699Y0046742D01* -X0130699Y0045543D02* -X0132109Y0045543D01* -X0131901Y0049139D02* -X0130699Y0049139D01* -X0126840Y0046742D02* -X0125640Y0046742D01* -X0125640Y0045543D02* -X0126840Y0045543D01* -X0126840Y0044345D02* -X0125640Y0044345D01* -X0125640Y0043146D02* -X0126840Y0043146D01* -X0126063Y0037500D02* -X0130000Y0033563D01* -X0130000Y0022500D01* -X0122500Y0015000D01* -X0128268Y0015581D02* -X0258535Y0015581D01* -X0258244Y0016779D02* -X0128760Y0016779D01* -X0128268Y0014382D02* -X0259143Y0014382D01* -X0260214Y0013184D02* -X0128268Y0013184D01* -X0127643Y0011985D02* -X0262822Y0011985D01* -X0277000Y0015581D02* -X0278000Y0015581D01* -X0278000Y0016779D02* -X0277000Y0016779D01* -X0252601Y0029963D02* -X0133168Y0029963D01* -X0133168Y0031161D02* -X0251776Y0031161D01* -X0251509Y0032360D02* -X0133168Y0032360D01* -X0133168Y0033558D02* -X0251660Y0033558D01* -X0252320Y0034757D02* -X0132935Y0034757D01* -X0132089Y0035955D02* -X0254479Y0035955D01* -X0258361Y0040749D02* -X0112590Y0040749D01* -X0111391Y0041948D02* -X0259383Y0041948D01* -X0239969Y0053768D02* -X0171268Y0053768D01* -X0171268Y0075750D01* -X0170695Y0077135D01* -X0169635Y0078195D01* -X0168250Y0078768D01* -X0129720Y0078768D01* -X0129872Y0079135D01* -X0129872Y0094784D01* -X0188688Y0094784D01* -X0195267Y0088205D01* -X0195903Y0087568D01* -X0189804Y0087568D01* -X0188860Y0087177D01* -X0188137Y0086455D01* -X0187746Y0085511D01* -X0187746Y0066989D01* -X0188137Y0066045D01* -X0188860Y0065323D01* -X0189804Y0064931D01* -X0213124Y0064931D01* -X0213124Y0062388D01* -X0216411Y0062388D01* -X0216411Y0062013D01* -X0216786Y0062013D01* -X0216786Y0057545D01* -X0218423Y0057545D01* -X0218907Y0057674D01* -X0219016Y0057737D01* -X0219470Y0057283D01* -X0220414Y0056892D01* -X0224586Y0056892D01* -X0225432Y0057243D01* -X0226111Y0056961D01* -X0226267Y0056805D01* -X0227652Y0056231D01* -X0238573Y0056231D01* -X0238573Y0055552D01* -X0238964Y0054608D01* -X0239687Y0053886D01* -X0239969Y0053768D01* -X0239639Y0053933D02* -X0171268Y0053933D01* -X0171268Y0055132D02* -X0204932Y0055132D01* -X0204789Y0055275D02* -X0205275Y0054789D01* -X0205847Y0054407D01* -X0206482Y0054144D01* -X0207156Y0054009D01* -X0207500Y0054009D01* -X0207844Y0054009D01* -X0208518Y0054144D01* -X0209153Y0054407D01* -X0209725Y0054789D01* -X0210211Y0055275D01* -X0210593Y0055847D01* -X0210856Y0056482D01* -X0210991Y0057156D01* -X0210991Y0057500D01* -X0210991Y0057844D01* -X0210856Y0058518D01* -X0210593Y0059153D01* -X0210211Y0059725D01* -X0209725Y0060211D01* -X0209153Y0060593D01* -X0208518Y0060856D01* -X0207844Y0060991D01* -X0207500Y0060991D01* -X0207156Y0060991D01* -X0206482Y0060856D01* -X0205847Y0060593D01* -X0205275Y0060211D01* -X0204789Y0059725D01* -X0204407Y0059153D01* -X0204144Y0058518D01* -X0204009Y0057844D01* -X0204009Y0057500D01* -X0204009Y0057156D01* -X0204144Y0056482D01* -X0204407Y0055847D01* -X0204789Y0055275D01* -X0204206Y0056330D02* -X0171268Y0056330D01* -X0171268Y0057529D02* -X0204009Y0057529D01* -X0204009Y0057500D02* -X0207500Y0057500D01* -X0210991Y0057500D01* -X0207500Y0057500D01* -X0207500Y0057500D01* -X0207500Y0057500D01* -X0207500Y0060991D01* -X0207500Y0057500D01* -X0207500Y0054009D01* -X0207500Y0057500D01* -X0207500Y0057500D01* -X0207500Y0057500D01* -X0204009Y0057500D01* -X0204230Y0058727D02* -X0171268Y0058727D01* -X0171268Y0059926D02* -X0204989Y0059926D01* -X0207500Y0059926D02* -X0207500Y0059926D01* -X0207500Y0058727D02* -X0207500Y0058727D01* -X0207500Y0057529D02* -X0207500Y0057529D01* -X0207500Y0056330D02* -X0207500Y0056330D01* -X0207500Y0055132D02* -X0207500Y0055132D01* -X0210068Y0055132D02* -X0238747Y0055132D01* -X0227414Y0056330D02* -X0210794Y0056330D01* -X0210991Y0057529D02* -X0219225Y0057529D01* -X0216786Y0058727D02* -X0216411Y0058727D01* -X0216411Y0057545D02* -X0216411Y0062013D01* -X0213124Y0062013D01* -X0213124Y0059195D01* -X0213253Y0058712D01* -X0213503Y0058278D01* -X0213857Y0057924D01* -X0214290Y0057674D01* -X0214773Y0057545D01* -X0216411Y0057545D01* -X0216411Y0059926D02* -X0216786Y0059926D01* -X0216786Y0061124D02* -X0216411Y0061124D01* -X0216411Y0062323D02* -X0171268Y0062323D01* -X0171268Y0063521D02* -X0213124Y0063521D01* -X0213124Y0064720D02* -X0171268Y0064720D01* -X0171268Y0065918D02* -X0188264Y0065918D01* -X0187746Y0067117D02* -X0171268Y0067117D01* -X0171268Y0068315D02* -X0187746Y0068315D01* -X0187746Y0069514D02* -X0171268Y0069514D01* -X0171268Y0070712D02* -X0187746Y0070712D01* -X0187746Y0071911D02* -X0171268Y0071911D01* -X0171268Y0073109D02* -X0187746Y0073109D01* -X0187746Y0074308D02* -X0171268Y0074308D01* -X0171268Y0075506D02* -X0187746Y0075506D01* -X0187746Y0076705D02* -X0170873Y0076705D01* -X0169926Y0077903D02* -X0187746Y0077903D01* -X0187746Y0079102D02* -X0129858Y0079102D01* -X0129872Y0080300D02* -X0187746Y0080300D01* -X0187746Y0081499D02* -X0129872Y0081499D01* -X0129872Y0082697D02* -X0187746Y0082697D01* -X0187746Y0083896D02* -X0129872Y0083896D01* -X0129872Y0085094D02* -X0187746Y0085094D01* -X0188070Y0086293D02* -X0129872Y0086293D01* -X0129872Y0087491D02* -X0189618Y0087491D01* -X0192385Y0091087D02* -X0129872Y0091087D01* -X0129872Y0092285D02* -X0191186Y0092285D01* -X0189988Y0093484D02* -X0129872Y0093484D01* -X0129872Y0094682D02* -X0188789Y0094682D01* -X0190000Y0097953D02* -X0197953Y0090000D01* -X0232500Y0090000D01* -X0237500Y0095000D01* -X0237500Y0098701D01* -X0236437Y0101850D02* -X0232500Y0097913D01* -X0232500Y0097500D01* -X0223740Y0097500D01* -X0216260Y0097500D02* -X0208937Y0097500D01* -X0207500Y0099136D01* -X0204746Y0101890D01* -X0124941Y0101890D01* -X0124941Y0103858D02* -X0203858Y0103858D01* -X0207500Y0107500D01* -X0216260Y0107500D01* -X0211339Y0111462D02* -X0164025Y0111462D01* -X0164025Y0112660D02* -X0212318Y0112660D01* -X0205891Y0110263D02* -X0164025Y0110263D01* -X0163996Y0109065D02* -X0204584Y0109065D01* -X0203385Y0107866D02* -X0163439Y0107866D01* -X0149662Y0117454D02* -X0145896Y0117454D01* -X0145828Y0118653D02* -X0148791Y0118653D01* -X0148632Y0125844D02* -X0145609Y0125844D01* -X0145896Y0127042D02* -X0149158Y0127042D01* -X0150000Y0128241D02* -X0150000Y0128241D01* -X0150000Y0129439D02* -X0150000Y0129439D01* -X0150000Y0130638D02* -X0150000Y0130638D01* -X0150000Y0131836D02* -X0150000Y0131836D01* -X0148221Y0128241D02* -X0145896Y0128241D01* -X0133563Y0130000D02* -X0128750Y0130000D01* -X0128750Y0122500D01* -X0117264Y0117441D02* -X0117264Y0133563D01* -X0122451Y0138750D01* -X0187313Y0138750D01* -X0190000Y0141437D01* -X0190000Y0153563D01* -X0193937Y0157500D01* -X0197500Y0157500D01* -X0201657Y0159402D02* -X0209231Y0159402D01* -X0209231Y0159889D02* -X0209231Y0155111D01* -X0211842Y0152500D01* -X0209231Y0149889D01* -X0209231Y0145111D01* -X0212611Y0141731D01* -X0217389Y0141731D01* -X0220000Y0144342D01* -X0222611Y0141731D01* -X0227389Y0141731D01* -X0230768Y0145111D01* -X0230768Y0149889D01* -X0227685Y0152973D01* -X0230100Y0155388D01* -X0230100Y0157100D01* -X0225400Y0157100D01* -X0225400Y0157900D01* -X0230100Y0157900D01* -X0230100Y0159612D01* -X0227212Y0162500D01* -X0230100Y0165388D01* -X0230100Y0167100D01* -X0225400Y0167100D01* -X0225400Y0167900D01* -X0230100Y0167900D01* -X0230100Y0169612D01* -X0227685Y0172027D01* -X0230768Y0175111D01* -X0230768Y0179889D01* -X0227389Y0183268D01* -X0222611Y0183268D01* -X0220000Y0180658D01* -X0217389Y0183268D01* -X0212611Y0183268D01* -X0209231Y0179889D01* -X0209231Y0175111D01* -X0211842Y0172500D01* -X0209231Y0169889D01* -X0209231Y0165111D01* -X0211842Y0162500D01* -X0209231Y0159889D01* -X0209943Y0160601D02* -X0200860Y0160601D01* -X0199059Y0161799D02* -X0211141Y0161799D01* -X0211345Y0162998D02* -X0193168Y0162998D01* -X0193168Y0164196D02* -X0210146Y0164196D01* -X0209231Y0165395D02* -X0193168Y0165395D01* -X0193168Y0166593D02* -X0209231Y0166593D01* -X0209231Y0167792D02* -X0193168Y0167792D01* -X0193168Y0168990D02* -X0209231Y0168990D01* -X0209531Y0170189D02* -X0193168Y0170189D01* -X0193168Y0171387D02* -X0210729Y0171387D01* -X0211756Y0172586D02* -X0193168Y0172586D01* -X0193168Y0173784D02* -X0210558Y0173784D01* -X0209359Y0174983D02* -X0193168Y0174983D01* -X0193168Y0176181D02* -X0209231Y0176181D01* -X0209231Y0177380D02* -X0193168Y0177380D01* -X0193168Y0178578D02* -X0209231Y0178578D01* -X0209231Y0179777D02* -X0193168Y0179777D01* -X0193168Y0180975D02* -X0210317Y0180975D01* -X0211516Y0182174D02* -X0193168Y0182174D01* -X0193168Y0183372D02* -X0286132Y0183372D01* -X0286132Y0182174D02* -X0228484Y0182174D01* -X0229683Y0180975D02* -X0243264Y0180975D01* -X0243662Y0181373D02* -X0242377Y0180088D01* -X0241681Y0178409D01* -X0241681Y0176591D01* -X0242377Y0174912D01* -X0242481Y0174808D01* -X0242481Y0160097D01* -X0242039Y0159914D01* -X0241317Y0159191D01* -X0240926Y0158247D01* -X0240926Y0151713D01* -X0241317Y0150769D01* -X0242039Y0150047D01* -X0242983Y0149656D01* -X0249517Y0149656D01* -X0250461Y0150047D01* -X0251183Y0150769D01* -X0251574Y0151713D01* -X0251574Y0158247D01* -X0251183Y0159191D01* -X0250461Y0159914D01* -X0250018Y0160097D01* -X0250018Y0174808D01* -X0250123Y0174912D01* -X0250818Y0176591D01* -X0250818Y0178409D01* -X0250123Y0180088D01* -X0248838Y0181373D01* -X0247159Y0182068D01* -X0245341Y0182068D01* -X0243662Y0181373D01* -X0242248Y0179777D02* -X0230768Y0179777D01* -X0230768Y0178578D02* -X0241752Y0178578D01* -X0241681Y0177380D02* -X0230768Y0177380D01* -X0230768Y0176181D02* -X0241851Y0176181D01* -X0242348Y0174983D02* -X0230641Y0174983D01* -X0229442Y0173784D02* -X0242481Y0173784D01* -X0242481Y0172586D02* -X0228244Y0172586D01* -X0228325Y0171387D02* -X0242481Y0171387D01* -X0242481Y0170189D02* -X0229524Y0170189D01* -X0230100Y0168990D02* -X0242481Y0168990D01* -X0242481Y0167792D02* -X0225400Y0167792D01* -X0225400Y0167100D02* -X0225400Y0162400D01* -X0225400Y0157900D01* -X0224600Y0157900D01* -X0224600Y0167100D01* -X0225400Y0167100D01* -X0225400Y0166593D02* -X0224600Y0166593D01* -X0224600Y0165395D02* -X0225400Y0165395D01* -X0225400Y0164196D02* -X0224600Y0164196D01* -X0224600Y0162998D02* -X0225400Y0162998D01* -X0225400Y0161799D02* -X0224600Y0161799D01* -X0224600Y0160601D02* -X0225400Y0160601D01* -X0225400Y0159402D02* -X0224600Y0159402D01* -X0224600Y0158203D02* -X0225400Y0158203D01* -X0227913Y0161799D02* -X0234080Y0161799D01* -X0234144Y0161482D02* -X0234407Y0160847D01* -X0234789Y0160275D01* -X0235275Y0159789D01* -X0235847Y0159407D01* -X0236482Y0159144D01* -X0237156Y0159009D01* -X0237500Y0159009D01* -X0237844Y0159009D01* -X0238518Y0159144D01* -X0239153Y0159407D01* -X0239725Y0159789D01* -X0240211Y0160275D01* -X0240593Y0160847D01* -X0240856Y0161482D01* -X0240991Y0162156D01* -X0240991Y0162500D01* -X0240991Y0162844D01* -X0240856Y0163518D01* -X0240593Y0164153D01* -X0240211Y0164725D01* -X0239725Y0165211D01* -X0239153Y0165593D01* -X0238518Y0165856D01* -X0237844Y0165991D01* -X0237500Y0165991D01* -X0237156Y0165991D01* -X0236482Y0165856D01* -X0235847Y0165593D01* -X0235275Y0165211D01* -X0234789Y0164725D01* -X0234407Y0164153D01* -X0234144Y0163518D01* -X0234009Y0162844D01* -X0234009Y0162500D01* -X0234009Y0162156D01* -X0234144Y0161482D01* -X0234571Y0160601D02* -X0229112Y0160601D01* -X0230100Y0159402D02* -X0235858Y0159402D01* -X0237500Y0159402D02* -X0237500Y0159402D01* -X0237500Y0159009D02* -X0237500Y0162500D01* -X0240991Y0162500D01* -X0237500Y0162500D01* -X0237500Y0162500D01* -X0237500Y0162500D01* -X0237500Y0165991D01* -X0237500Y0162500D01* -X0237500Y0162500D01* -X0237500Y0162500D01* -X0234009Y0162500D01* -X0237500Y0162500D01* -X0237500Y0159009D01* -X0237500Y0160601D02* -X0237500Y0160601D01* -X0237500Y0161799D02* -X0237500Y0161799D01* -X0237500Y0162998D02* -X0237500Y0162998D01* -X0237500Y0164196D02* -X0237500Y0164196D01* -X0237500Y0165395D02* -X0237500Y0165395D01* -X0239451Y0165395D02* -X0242481Y0165395D01* -X0242481Y0166593D02* -X0230100Y0166593D01* -X0230100Y0165395D02* -X0235549Y0165395D01* -X0234435Y0164196D02* -X0228909Y0164196D01* -X0227710Y0162998D02* -X0234040Y0162998D01* -X0230100Y0158203D02* -X0240926Y0158203D01* -X0240926Y0157005D02* -X0230100Y0157005D01* -X0230100Y0155806D02* -X0240926Y0155806D01* -X0240926Y0154608D02* -X0229320Y0154608D01* -X0228122Y0153409D02* -X0240926Y0153409D01* -X0240926Y0152211D02* -X0228447Y0152211D01* -X0229645Y0151012D02* -X0241216Y0151012D01* -X0242602Y0149814D02* -X0230768Y0149814D01* -X0230768Y0148615D02* -X0269765Y0148615D01* -X0269529Y0148852D02* -X0270152Y0148229D01* -X0270865Y0147710D01* -X0271650Y0147310D01* -X0272489Y0147038D01* -X0273359Y0146900D01* -X0277000Y0146900D01* -X0277000Y0152000D01* -X0268209Y0152000D01* -X0268338Y0151189D01* -X0268610Y0150350D01* -X0269010Y0149565D01* -X0269529Y0148852D01* -X0268884Y0149814D02* -X0261148Y0149814D01* -X0262534Y0151012D02* -X0268395Y0151012D01* -X0268274Y0153409D02* -X0262824Y0153409D01* -X0262824Y0152211D02* -X0277000Y0152211D01* -X0277000Y0151012D02* -X0278000Y0151012D01* -X0278000Y0149814D02* -X0277000Y0149814D01* -X0277000Y0148615D02* -X0278000Y0148615D01* -X0278000Y0147417D02* -X0277000Y0147417D01* -X0271441Y0147417D02* -X0230768Y0147417D01* -X0230768Y0146218D02* -X0286132Y0146218D01* -X0286132Y0145020D02* -X0261550Y0145020D01* -X0262603Y0143821D02* -X0286132Y0143821D01* -X0286132Y0142623D02* -X0265207Y0142623D01* -X0257500Y0140020D02* -X0257500Y0140000D01* -X0252397Y0143821D02* -X0251353Y0143821D01* -X0250300Y0145020D02* -X0253450Y0145020D01* -X0253852Y0149814D02* -X0249898Y0149814D01* -X0251284Y0151012D02* -X0252466Y0151012D01* -X0252176Y0152211D02* -X0251574Y0152211D01* -X0251574Y0153409D02* -X0252176Y0153409D01* -X0252176Y0154608D02* -X0251574Y0154608D01* -X0251574Y0155806D02* -X0252176Y0155806D01* -X0252176Y0157005D02* -X0251574Y0157005D01* -X0251574Y0158203D02* -X0252176Y0158203D01* -X0252777Y0159402D02* -X0250973Y0159402D01* -X0250018Y0160601D02* -X0255271Y0160601D01* -X0256470Y0161799D02* -X0250018Y0161799D01* -X0250018Y0162998D02* -X0257668Y0162998D01* -X0258867Y0164196D02* -X0250018Y0164196D01* -X0250018Y0165395D02* -X0260065Y0165395D01* -X0263533Y0158203D02* -X0269231Y0158203D01* -X0270473Y0157005D02* -X0262824Y0157005D01* -X0262824Y0155806D02* -X0269280Y0155806D01* -X0268597Y0154608D02* -X0262824Y0154608D01* -X0269028Y0166593D02* -X0250018Y0166593D01* -X0250018Y0167792D02* -X0270227Y0167792D01* -X0284773Y0167792D02* -X0286132Y0167792D01* -X0286132Y0168990D02* -X0250018Y0168990D01* -X0250018Y0170189D02* -X0286132Y0170189D01* -X0286132Y0171387D02* -X0250018Y0171387D01* -X0250018Y0172586D02* -X0286132Y0172586D01* -X0286132Y0173784D02* -X0250018Y0173784D01* -X0250152Y0174983D02* -X0286132Y0174983D01* -X0286132Y0176181D02* -X0250649Y0176181D01* -X0250818Y0177380D02* -X0286132Y0177380D01* -X0286132Y0178578D02* -X0250748Y0178578D01* -X0250252Y0179777D02* -X0286132Y0179777D01* -X0286132Y0180975D02* -X0249236Y0180975D01* -X0253853Y0198190D02* -X0254336Y0198061D01* -X0260403Y0198061D01* -X0260403Y0201643D01* -X0261369Y0201643D01* -X0261369Y0202609D01* -X0269085Y0202609D01* -X0269085Y0204541D01* -X0268956Y0205025D01* -X0268705Y0205458D01* -X0268352Y0205812D01* -X0267918Y0206062D01* -X0267435Y0206191D01* -X0261369Y0206191D01* -X0261369Y0202609D01* -X0260403Y0202609D01* -X0260403Y0206191D01* -X0254336Y0206191D01* -X0253853Y0206062D01* -X0253420Y0205812D01* -X0253066Y0205458D01* -X0252816Y0205025D01* -X0252687Y0204541D01* -X0252687Y0202609D01* -X0260403Y0202609D01* -X0260403Y0201643D01* -X0252687Y0201643D01* -X0252687Y0199710D01* -X0252816Y0199227D01* -X0253066Y0198794D01* -X0253420Y0198440D01* -X0253853Y0198190D01* -X0252974Y0198953D02* -X0242025Y0198953D01* -X0241934Y0198794D02* -X0242184Y0199227D01* -X0242313Y0199710D01* -X0242313Y0201643D01* -X0234597Y0201643D01* -X0234597Y0198061D01* -X0240664Y0198061D01* -X0241147Y0198190D01* -X0241580Y0198440D01* -X0241934Y0198794D01* -X0242313Y0200151D02* -X0252687Y0200151D01* -X0252687Y0201350D02* -X0242313Y0201350D01* -X0242313Y0202609D02* -X0242313Y0204541D01* -X0242184Y0205025D01* -X0241934Y0205458D01* -X0241580Y0205812D01* -X0241147Y0206062D01* -X0240664Y0206191D01* -X0234597Y0206191D01* -X0234597Y0202609D01* -X0233631Y0202609D01* -X0233631Y0201643D01* -X0225915Y0201643D01* -X0225915Y0199710D01* -X0226044Y0199227D01* -X0226295Y0198794D01* -X0226648Y0198440D01* -X0227082Y0198190D01* -X0227565Y0198061D01* -X0233631Y0198061D01* -X0233631Y0201643D01* -X0234597Y0201643D01* -X0234597Y0202609D01* -X0242313Y0202609D01* -X0242313Y0203747D02* -X0252687Y0203747D01* -X0252795Y0204945D02* -X0242205Y0204945D01* -X0240840Y0206144D02* -X0254160Y0206144D01* -X0260403Y0206144D02* -X0261369Y0206144D01* -X0261369Y0204945D02* -X0260403Y0204945D01* -X0260403Y0203747D02* -X0261369Y0203747D01* -X0261369Y0202548D02* -X0286132Y0202548D01* -X0286132Y0201350D02* -X0269085Y0201350D01* -X0269085Y0201643D02* -X0269085Y0199710D01* -X0268956Y0199227D01* -X0268705Y0198794D01* -X0268352Y0198440D01* -X0267918Y0198190D01* -X0267435Y0198061D01* -X0261369Y0198061D01* -X0261369Y0201643D01* -X0269085Y0201643D01* -X0270000Y0202126D02* -X0275000Y0207126D01* -X0275000Y0207500D01* -X0274400Y0207342D02* -X0275600Y0207342D01* -X0275600Y0207963D02* -X0275600Y0204104D01* -X0278400Y0204104D01* -X0278883Y0204233D01* -X0279316Y0204484D01* -X0279670Y0204837D01* -X0279920Y0205271D01* -X0280050Y0205754D01* -X0280050Y0207963D01* -X0275600Y0207963D01* -X0275600Y0208541D02* -X0286132Y0208541D01* -X0286132Y0209739D02* -X0280050Y0209739D01* -X0280050Y0210938D02* -X0286132Y0210938D01* -X0286132Y0212137D02* -X0280041Y0212137D01* -X0280705Y0213335D02* -X0286132Y0213335D01* -X0286132Y0214534D02* -X0280718Y0214534D01* -X0280718Y0215732D02* -X0286132Y0215732D01* -X0286132Y0216931D02* -X0280718Y0216931D01* -X0280718Y0218129D02* -X0286132Y0218129D01* -X0286132Y0219328D02* -X0280718Y0219328D01* -X0280252Y0220526D02* -X0286132Y0220526D01* -X0286132Y0221725D02* -X0269132Y0221725D01* -X0275000Y0217874D02* -X0260886Y0217874D01* -X0234114Y0217874D01* -X0234114Y0222500D01* -X0190000Y0222500D01* -X0185000Y0217500D01* -X0180000Y0212500D01* -X0180000Y0192500D01* -X0175000Y0187500D01* -X0127500Y0187500D01* -X0122500Y0182500D01* -X0122500Y0157500D01* -X0117500Y0152500D01* -X0107421Y0152500D01* -X0103484Y0148563D01* -X0103484Y0117441D01* -X0101516Y0117441D02* -X0101516Y0151063D01* -X0105453Y0155000D01* -X0113750Y0155000D01* -X0118750Y0160000D01* -X0118750Y0187500D01* -X0123750Y0192500D01* -X0146902Y0192500D01* -X0151902Y0197500D01* -X0151902Y0205000D01* -X0146183Y0204945D02* -X0143817Y0204945D01* -X0143817Y0203747D02* -X0146183Y0203747D01* -X0146183Y0202548D02* -X0143817Y0202548D01* -X0143817Y0201350D02* -X0146183Y0201350D01* -X0146510Y0200151D02* -X0143490Y0200151D01* -X0141929Y0198953D02* -X0148071Y0198953D01* -X0147675Y0197754D02* -X0130070Y0197754D01* -X0129940Y0196556D02* -X0146476Y0196556D01* -X0150644Y0191762D02* -X0168696Y0191762D01* -X0168982Y0191644D02* -X0169656Y0191509D01* -X0170000Y0191509D01* -X0170344Y0191509D01* -X0171018Y0191644D01* -X0171653Y0191907D01* -X0172225Y0192289D01* -X0172711Y0192775D01* -X0173093Y0193347D01* -X0173356Y0193982D01* -X0173491Y0194656D01* -X0173491Y0195000D01* -X0173491Y0195344D01* -X0173356Y0196018D01* -X0173093Y0196653D01* -X0172711Y0197225D01* -X0172225Y0197711D01* -X0171653Y0198093D01* -X0171018Y0198356D01* -X0170344Y0198491D01* -X0170000Y0198491D01* -X0169656Y0198491D01* -X0168982Y0198356D01* -X0168347Y0198093D01* -X0167775Y0197711D01* -X0167289Y0197225D01* -X0166907Y0196653D01* -X0166644Y0196018D01* -X0166509Y0195344D01* -X0166509Y0195000D01* -X0166509Y0194656D01* -X0166644Y0193982D01* -X0166907Y0193347D01* -X0167289Y0192775D01* -X0167775Y0192289D01* -X0168347Y0191907D01* -X0168982Y0191644D01* -X0170000Y0191762D02* -X0170000Y0191762D01* -X0170000Y0191509D02* -X0170000Y0195000D01* -X0173491Y0195000D01* -X0170000Y0195000D01* -X0170000Y0195000D01* -X0170000Y0195000D01* -X0170000Y0198491D01* -X0170000Y0195000D01* -X0170000Y0195000D01* -X0170000Y0195000D01* -X0166509Y0195000D01* -X0170000Y0195000D01* -X0170000Y0191509D01* -X0171304Y0191762D02* -X0174781Y0191762D01* -X0175979Y0192960D02* -X0172835Y0192960D01* -X0173392Y0194159D02* -X0176831Y0194159D01* -X0176831Y0195357D02* -X0173488Y0195357D01* -X0173134Y0196556D02* -X0176831Y0196556D01* -X0176831Y0197754D02* -X0172161Y0197754D01* -X0170000Y0197754D02* -X0170000Y0197754D01* -X0170000Y0196556D02* -X0170000Y0196556D01* -X0170000Y0195357D02* -X0170000Y0195357D01* -X0170000Y0194159D02* -X0170000Y0194159D01* -X0170000Y0192960D02* -X0170000Y0192960D01* -X0167165Y0192960D02* -X0151843Y0192960D01* -X0153041Y0194159D02* -X0166608Y0194159D01* -X0166512Y0195357D02* -X0154240Y0195357D01* -X0154940Y0196556D02* -X0166866Y0196556D01* -X0167839Y0197754D02* -X0155070Y0197754D01* -X0155733Y0198953D02* -X0159267Y0198953D01* -X0157707Y0200151D02* -X0157293Y0200151D01* -X0163098Y0205000D02* -X0163098Y0217500D01* -X0161240Y0217500D01* -X0166267Y0213335D02* -X0176916Y0213335D01* -X0176831Y0212137D02* -X0166267Y0212137D01* -X0167193Y0210938D02* -X0176831Y0210938D01* -X0176831Y0209739D02* -X0168535Y0209739D01* -X0168817Y0208541D02* -X0176831Y0208541D01* -X0176831Y0207342D02* -X0168817Y0207342D01* -X0168817Y0206144D02* -X0176831Y0206144D01* -X0176831Y0204945D02* -X0168817Y0204945D01* -X0168817Y0203747D02* -X0176831Y0203747D01* -X0176831Y0202548D02* -X0168817Y0202548D01* -X0168817Y0201350D02* -X0176831Y0201350D01* -X0176831Y0200151D02* -X0168490Y0200151D01* -X0166929Y0198953D02* -X0176831Y0198953D01* -X0183168Y0198953D02* -X0186831Y0198953D01* -X0186831Y0200151D02* -X0183168Y0200151D01* -X0183168Y0201350D02* -X0186831Y0201350D01* -X0186831Y0202400D02* -X0186831Y0161312D01* -X0184455Y0158936D01* -X0184455Y0158936D01* -X0183564Y0158045D01* -X0183081Y0156880D01* -X0183081Y0147562D01* -X0182039Y0146520D01* -X0182068Y0146591D01* -X0182068Y0148409D01* -X0181373Y0150088D01* -X0180088Y0151373D01* -X0178409Y0152068D01* -X0176591Y0152068D01* -X0174912Y0151373D01* -X0174208Y0150668D01* -X0120149Y0150668D01* -X0120186Y0150705D01* -X0125186Y0155705D01* -X0125668Y0156870D01* -X0125668Y0181188D01* -X0128812Y0184331D01* -X0175630Y0184331D01* -X0176795Y0184814D01* -X0177686Y0185705D01* -X0182686Y0190705D01* -X0183168Y0191870D01* -X0183168Y0202400D01* -X0184600Y0202400D01* -X0184600Y0207100D01* -X0185400Y0207100D01* -X0185400Y0202400D01* -X0186831Y0202400D01* -X0185400Y0202548D02* -X0184600Y0202548D01* -X0184600Y0203747D02* -X0185400Y0203747D01* -X0185400Y0204945D02* -X0184600Y0204945D01* -X0184600Y0206144D02* -X0185400Y0206144D01* -X0190000Y0212500D02* -X0190000Y0160000D01* -X0186250Y0156250D01* -X0186250Y0146250D01* -X0182500Y0142500D01* -X0115295Y0142500D01* -X0111358Y0138563D01* -X0111358Y0117441D01* -X0105453Y0117441D02* -X0105453Y0143563D01* -X0109390Y0147500D01* -X0177500Y0147500D01* -X0182068Y0147417D02* -X0182936Y0147417D01* -X0183081Y0148615D02* -X0181983Y0148615D01* -X0181486Y0149814D02* -X0183081Y0149814D01* -X0183081Y0151012D02* -X0180448Y0151012D01* -X0183081Y0152211D02* -X0121692Y0152211D01* -X0122890Y0153409D02* -X0183081Y0153409D01* -X0183081Y0154608D02* -X0124089Y0154608D01* -X0125228Y0155806D02* -X0183081Y0155806D01* -X0183133Y0157005D02* -X0125668Y0157005D01* -X0125668Y0158203D02* -X0183723Y0158203D01* -X0184921Y0159402D02* -X0125668Y0159402D01* -X0125668Y0160601D02* -X0186120Y0160601D01* -X0186831Y0161799D02* -X0125668Y0161799D01* -X0125668Y0162998D02* -X0186831Y0162998D01* -X0186831Y0164196D02* -X0125668Y0164196D01* -X0125668Y0165395D02* -X0186831Y0165395D01* -X0186831Y0166593D02* -X0125668Y0166593D01* -X0125668Y0167792D02* -X0186831Y0167792D01* -X0186831Y0168990D02* -X0125668Y0168990D01* -X0125668Y0170189D02* -X0186831Y0170189D01* -X0186831Y0171387D02* -X0125668Y0171387D01* -X0125668Y0172586D02* -X0149978Y0172586D01* -X0149789Y0172775D02* -X0150275Y0172289D01* -X0150847Y0171907D01* -X0151482Y0171644D01* -X0152156Y0171509D01* -X0152500Y0171509D01* -X0152844Y0171509D01* -X0153518Y0171644D01* -X0154153Y0171907D01* -X0154725Y0172289D01* -X0155211Y0172775D01* -X0155593Y0173347D01* -X0155856Y0173982D01* -X0155991Y0174656D01* -X0155991Y0175000D01* -X0155991Y0175344D01* -X0155856Y0176018D01* -X0155593Y0176653D01* -X0155211Y0177225D01* -X0154725Y0177711D01* -X0154153Y0178093D01* -X0153518Y0178356D01* -X0152844Y0178491D01* -X0152500Y0178491D01* -X0152156Y0178491D01* -X0151482Y0178356D01* -X0150847Y0178093D01* -X0150275Y0177711D01* -X0149789Y0177225D01* -X0149407Y0176653D01* -X0149144Y0176018D01* -X0149009Y0175344D01* -X0149009Y0175000D01* -X0149009Y0174656D01* -X0149144Y0173982D01* -X0149407Y0173347D01* -X0149789Y0172775D01* -X0149225Y0173784D02* -X0125668Y0173784D01* -X0125668Y0174983D02* -X0149009Y0174983D01* -X0149009Y0175000D02* -X0152500Y0175000D01* -X0155991Y0175000D01* -X0152500Y0175000D01* -X0152500Y0175000D01* -X0152500Y0175000D01* -X0152500Y0178491D01* -X0152500Y0175000D01* -X0152500Y0171509D01* -X0152500Y0175000D01* -X0152500Y0175000D01* -X0152500Y0175000D01* -X0149009Y0175000D01* -X0149211Y0176181D02* -X0125668Y0176181D01* -X0125668Y0177380D02* -X0149943Y0177380D01* -X0152500Y0177380D02* -X0152500Y0177380D01* -X0152500Y0176181D02* -X0152500Y0176181D01* -X0152500Y0174983D02* -X0152500Y0174983D01* -X0152500Y0173784D02* -X0152500Y0173784D01* -X0152500Y0172586D02* -X0152500Y0172586D01* -X0155022Y0172586D02* -X0186831Y0172586D01* -X0186831Y0173784D02* -X0155775Y0173784D01* -X0155991Y0174983D02* -X0186831Y0174983D01* -X0186831Y0176181D02* -X0155789Y0176181D01* -X0155057Y0177380D02* -X0186831Y0177380D01* -X0186831Y0178578D02* -X0125668Y0178578D01* -X0125668Y0179777D02* -X0186831Y0179777D01* -X0186831Y0180975D02* -X0125668Y0180975D01* -X0126655Y0182174D02* -X0186831Y0182174D01* -X0186831Y0183372D02* -X0127853Y0183372D01* -X0114402Y0192500D02* -X0119402Y0197500D01* -X0126902Y0197500D01* -X0126902Y0205000D01* -X0121183Y0204945D02* -X0118817Y0204945D01* -X0118817Y0203747D02* -X0121183Y0203747D01* -X0121183Y0202548D02* -X0118817Y0202548D01* -X0118817Y0201350D02* -X0121183Y0201350D01* -X0121183Y0206144D02* -X0118817Y0206144D01* -X0118817Y0207342D02* -X0121183Y0207342D01* -X0121183Y0208541D02* -X0118817Y0208541D01* -X0118535Y0209739D02* -X0121465Y0209739D01* -X0122807Y0210938D02* -X0117193Y0210938D01* -X0116267Y0212137D02* -X0132789Y0212137D01* -X0134004Y0210938D02* -X0130996Y0210938D01* -X0132338Y0209739D02* -X0132662Y0209739D01* -X0128160Y0212647D02* -X0128160Y0216900D01* -X0124301Y0216900D01* -X0124301Y0214297D01* -X0124430Y0213814D01* -X0124680Y0213381D01* -X0125034Y0213027D01* -X0125467Y0212777D01* -X0125951Y0212647D01* -X0128160Y0212647D01* -X0128160Y0213335D02* -X0129360Y0213335D01* -X0129360Y0214534D02* -X0128160Y0214534D01* -X0128160Y0215732D02* -X0129360Y0215732D01* -X0128160Y0216931D02* -X0116368Y0216931D01* -X0116368Y0218129D02* -X0124301Y0218129D01* -X0124301Y0219328D02* -X0116368Y0219328D01* -X0116368Y0220526D02* -X0124301Y0220526D01* -X0124786Y0221725D02* -X0116053Y0221725D01* -X0114547Y0222923D02* -X0132933Y0222923D01* -X0129360Y0221725D02* -X0128160Y0221725D01* -X0128160Y0220526D02* -X0129360Y0220526D01* -X0129360Y0219328D02* -X0128160Y0219328D01* -X0128160Y0218129D02* -X0129360Y0218129D01* -X0124301Y0215732D02* -X0116368Y0215732D01* -X0116368Y0214534D02* -X0124301Y0214534D01* -X0124726Y0213335D02* -X0116267Y0213335D01* -X0113098Y0217500D02* -X0111240Y0217500D01* -X0113098Y0217500D02* -X0113098Y0205000D01* -X0107662Y0209739D02* -X0107338Y0209739D01* -X0105996Y0210938D02* -X0109004Y0210938D01* -X0107789Y0212137D02* -X0082344Y0212137D01* -X0081146Y0213335D02* -X0099726Y0213335D01* -X0099680Y0213381D02* -X0100034Y0213027D01* -X0100467Y0212777D01* -X0100951Y0212647D01* -X0103160Y0212647D01* -X0103160Y0216900D01* -X0099301Y0216900D01* -X0099301Y0214297D01* -X0099430Y0213814D01* -X0099680Y0213381D01* -X0099301Y0214534D02* -X0079947Y0214534D01* -X0077500Y0212500D02* -X0082500Y0207500D01* -X0082500Y0205000D01* -X0101902Y0205000D01* -X0096183Y0201831D02* -X0096183Y0200940D01* -X0096296Y0200668D01* -X0053812Y0200668D01* -X0052081Y0202400D01* -X0052100Y0202400D01* -X0052100Y0207100D01* -X0052900Y0207100D01* -X0052900Y0207900D01* -X0057600Y0207900D01* -X0062100Y0207900D01* -X0062100Y0207100D01* -X0052900Y0207100D01* -X0052900Y0202400D01* -X0054612Y0202400D01* -X0057500Y0205288D01* -X0060388Y0202400D01* -X0062100Y0202400D01* -X0062100Y0207100D01* -X0062900Y0207100D01* -X0062900Y0207900D01* -X0067600Y0207900D01* -X0067600Y0209331D01* -X0076188Y0209331D01* -X0079331Y0206188D01* -X0079331Y0204370D01* -X0079814Y0203205D01* -X0080705Y0202314D01* -X0081870Y0201831D01* -X0096183Y0201831D01* -X0096183Y0201350D02* -X0053131Y0201350D01* -X0052900Y0202548D02* -X0052100Y0202548D01* -X0052100Y0203747D02* -X0052900Y0203747D01* -X0052900Y0204945D02* -X0052100Y0204945D01* -X0052100Y0206144D02* -X0052900Y0206144D01* -X0052900Y0207342D02* -X0062100Y0207342D01* -X0062900Y0207342D02* -X0078177Y0207342D01* -X0079331Y0206144D02* -X0067600Y0206144D01* -X0067600Y0205388D02* -X0067600Y0207100D01* -X0062900Y0207100D01* -X0062900Y0202400D01* -X0064612Y0202400D01* -X0067600Y0205388D01* -X0067158Y0204945D02* -X0079331Y0204945D01* -X0079589Y0203747D02* -X0065959Y0203747D01* -X0064761Y0202548D02* -X0080471Y0202548D01* -X0076978Y0208541D02* -X0067600Y0208541D01* -X0062900Y0206144D02* -X0062100Y0206144D01* -X0062100Y0204945D02* -X0062900Y0204945D01* -X0062900Y0203747D02* -X0062100Y0203747D01* -X0062100Y0202548D02* -X0062900Y0202548D01* -X0060239Y0202548D02* -X0054761Y0202548D01* -X0055959Y0203747D02* -X0059041Y0203747D01* -X0057842Y0204945D02* -X0057158Y0204945D01* -X0057500Y0212500D02* -X0077500Y0212500D01* -X0083543Y0210938D02* -X0097807Y0210938D01* -X0096465Y0209739D02* -X0084741Y0209739D01* -X0085498Y0208541D02* -X0096183Y0208541D01* -X0103160Y0213335D02* -X0104360Y0213335D01* -X0104360Y0214534D02* -X0103160Y0214534D01* -X0103160Y0215732D02* -X0104360Y0215732D01* -X0103160Y0216931D02* -X0068268Y0216931D01* -X0068268Y0218129D02* -X0099301Y0218129D01* -X0099301Y0219328D02* -X0068268Y0219328D01* -X0067632Y0220526D02* -X0099301Y0220526D01* -X0099786Y0221725D02* -X0066433Y0221725D01* -X0065235Y0222923D02* -X0107933Y0222923D01* -X0104360Y0221725D02* -X0103160Y0221725D01* -X0103160Y0220526D02* -X0104360Y0220526D01* -X0104360Y0219328D02* -X0103160Y0219328D01* -X0103160Y0218129D02* -X0104360Y0218129D01* -X0099301Y0215732D02* -X0068268Y0215732D01* -X0062500Y0217500D02* -X0055000Y0225000D01* -X0016437Y0225000D01* -X0012500Y0221063D01* -X0012500Y0092500D01* -X0017500Y0087500D01* -X0027500Y0087500D01* -X0027500Y0078740D01* -X0021979Y0079102D02* -X0002568Y0079102D01* -X0002568Y0080300D02* -X0021979Y0080300D01* -X0021979Y0081499D02* -X0002568Y0081499D01* -X0002568Y0082697D02* -X0022346Y0082697D01* -X0024331Y0083896D02* -X0002568Y0083896D01* -X0002568Y0085094D02* -X0015425Y0085094D01* -X0014226Y0086293D02* -X0002568Y0086293D01* -X0002568Y0087491D02* -X0013028Y0087491D01* -X0011829Y0088690D02* -X0002568Y0088690D01* -X0002568Y0089888D02* -X0010631Y0089888D01* -X0009656Y0091087D02* -X0002568Y0091087D01* -X0002568Y0092285D02* -X0009331Y0092285D01* -X0009331Y0093484D02* -X0002568Y0093484D01* -X0002568Y0094682D02* -X0009331Y0094682D01* -X0009331Y0095881D02* -X0002568Y0095881D01* -X0002568Y0097079D02* -X0009331Y0097079D01* -X0009331Y0098278D02* -X0002568Y0098278D01* -X0002568Y0099476D02* -X0009331Y0099476D01* -X0009331Y0100675D02* -X0002568Y0100675D01* -X0002568Y0101873D02* -X0009331Y0101873D01* -X0009331Y0103072D02* -X0002568Y0103072D01* -X0002568Y0104270D02* -X0009331Y0104270D01* -X0009331Y0105469D02* -X0002568Y0105469D01* -X0002568Y0106668D02* -X0009331Y0106668D01* -X0009331Y0107866D02* -X0002568Y0107866D01* -X0002568Y0109065D02* -X0009331Y0109065D01* -X0009331Y0110263D02* -X0002568Y0110263D01* -X0002568Y0111462D02* -X0009331Y0111462D01* -X0009331Y0112660D02* -X0002568Y0112660D01* -X0002568Y0113859D02* -X0009331Y0113859D01* -X0009331Y0115057D02* -X0002568Y0115057D01* -X0002568Y0116256D02* -X0009331Y0116256D01* -X0009331Y0117454D02* -X0002568Y0117454D01* -X0002568Y0118653D02* -X0009331Y0118653D01* -X0009331Y0119851D02* -X0002568Y0119851D01* -X0002568Y0121050D02* -X0009331Y0121050D01* -X0009331Y0122248D02* -X0002568Y0122248D01* -X0002568Y0123447D02* -X0009331Y0123447D01* -X0009331Y0124645D02* -X0002568Y0124645D01* -X0002568Y0125844D02* -X0009331Y0125844D01* -X0009331Y0127042D02* -X0002568Y0127042D01* -X0002568Y0128241D02* -X0009331Y0128241D01* -X0009331Y0129439D02* -X0002568Y0129439D01* -X0002568Y0130638D02* -X0009331Y0130638D01* -X0009331Y0131836D02* -X0002568Y0131836D01* -X0002568Y0133035D02* -X0009331Y0133035D01* -X0009331Y0134233D02* -X0002568Y0134233D01* -X0002568Y0135432D02* -X0009331Y0135432D01* -X0009331Y0136630D02* -X0002568Y0136630D01* -X0002568Y0137829D02* -X0009331Y0137829D01* -X0009331Y0139027D02* -X0002568Y0139027D01* -X0002568Y0140226D02* -X0009331Y0140226D01* -X0009331Y0141424D02* -X0002568Y0141424D01* -X0002568Y0142623D02* -X0009331Y0142623D01* -X0009331Y0143821D02* -X0002568Y0143821D01* -X0002568Y0145020D02* -X0009331Y0145020D01* -X0009331Y0146218D02* -X0002568Y0146218D01* -X0002568Y0147417D02* -X0009331Y0147417D01* -X0009331Y0148615D02* -X0002568Y0148615D01* -X0002568Y0149814D02* -X0009331Y0149814D01* -X0009331Y0151012D02* -X0002568Y0151012D01* -X0002568Y0152211D02* -X0009331Y0152211D01* -X0009331Y0153409D02* -X0002568Y0153409D01* -X0002568Y0154608D02* -X0009331Y0154608D01* -X0009331Y0155806D02* -X0002568Y0155806D01* -X0002568Y0157005D02* -X0009331Y0157005D01* -X0009331Y0158203D02* -X0002568Y0158203D01* -X0002568Y0159402D02* -X0009331Y0159402D01* -X0009331Y0160601D02* -X0002568Y0160601D01* -X0002568Y0161799D02* -X0009331Y0161799D01* -X0009331Y0162998D02* -X0002568Y0162998D01* -X0002568Y0164196D02* -X0009331Y0164196D01* -X0009331Y0165395D02* -X0002568Y0165395D01* -X0002568Y0166593D02* -X0009331Y0166593D01* -X0009331Y0167792D02* -X0002568Y0167792D01* -X0002568Y0168990D02* -X0009331Y0168990D01* -X0009331Y0170189D02* -X0002568Y0170189D01* -X0002568Y0171387D02* -X0009331Y0171387D01* -X0009331Y0172586D02* -X0002568Y0172586D01* -X0002568Y0173784D02* -X0009331Y0173784D01* -X0009331Y0174983D02* -X0002568Y0174983D01* -X0002568Y0176181D02* -X0009331Y0176181D01* -X0009331Y0177380D02* -X0002568Y0177380D01* -X0002568Y0178578D02* -X0009331Y0178578D01* -X0009331Y0179777D02* -X0002568Y0179777D01* -X0002568Y0180975D02* -X0009331Y0180975D01* -X0009331Y0182174D02* -X0002568Y0182174D01* -X0002568Y0183372D02* -X0009331Y0183372D01* -X0009331Y0184571D02* -X0002568Y0184571D01* -X0002568Y0185769D02* -X0009331Y0185769D01* -X0009331Y0186968D02* -X0002568Y0186968D01* -X0002568Y0188166D02* -X0009331Y0188166D01* -X0009331Y0189365D02* -X0002568Y0189365D01* -X0002568Y0190563D02* -X0009331Y0190563D01* -X0009331Y0191762D02* -X0002568Y0191762D01* -X0002568Y0192960D02* -X0009331Y0192960D01* -X0009331Y0194159D02* -X0002568Y0194159D01* -X0002568Y0195357D02* -X0009331Y0195357D01* -X0009331Y0196556D02* -X0002568Y0196556D01* -X0002568Y0197754D02* -X0009331Y0197754D01* -X0009331Y0198953D02* -X0002568Y0198953D01* -X0002568Y0200151D02* -X0009331Y0200151D01* -X0009331Y0201350D02* -X0002568Y0201350D01* -X0002568Y0202548D02* -X0009331Y0202548D01* -X0009331Y0203747D02* -X0002568Y0203747D01* -X0002568Y0204945D02* -X0009331Y0204945D01* -X0009331Y0206144D02* -X0002568Y0206144D01* -X0002568Y0207342D02* -X0009331Y0207342D01* -X0009331Y0208541D02* -X0002568Y0208541D01* -X0002568Y0209739D02* -X0009331Y0209739D01* -X0009331Y0210938D02* -X0002568Y0210938D01* -X0002568Y0212137D02* -X0009331Y0212137D01* -X0009331Y0213335D02* -X0002568Y0213335D01* -X0002568Y0214534D02* -X0009331Y0214534D01* -X0009331Y0215732D02* -X0002568Y0215732D01* -X0002568Y0216931D02* -X0009331Y0216931D01* -X0009331Y0218129D02* -X0002568Y0218129D01* -X0002568Y0219328D02* -X0009331Y0219328D01* -X0009331Y0220526D02* -X0002568Y0220526D01* -X0002568Y0221725D02* -X0009344Y0221725D01* -X0009879Y0222923D02* -X0002568Y0222923D01* -X0002568Y0224122D02* -X0011078Y0224122D01* -X0012276Y0225320D02* -X0002568Y0225320D01* -X0002568Y0226519D02* -X0013475Y0226519D01* -X0018937Y0222500D02* -X0015000Y0218563D01* -X0015000Y0095000D01* -X0020000Y0090000D01* -X0068563Y0090000D01* -X0070610Y0092047D01* -X0080059Y0092047D01* -X0080059Y0090079D02* -X0072579Y0090079D01* -X0070000Y0087500D01* -X0027500Y0087500D01* -X0030668Y0084331D02* -X0057079Y0084331D01* -X0056525Y0083961D01* -X0056039Y0083475D01* -X0055657Y0082903D01* -X0055394Y0082268D01* -X0055259Y0081594D01* -X0055259Y0081250D01* -X0055259Y0080906D01* -X0055394Y0080232D01* -X0055657Y0079597D01* -X0056039Y0079025D01* -X0056525Y0078539D01* -X0057097Y0078157D01* -X0057732Y0077894D01* -X0058406Y0077759D01* -X0058750Y0077759D01* -X0059094Y0077759D01* -X0059768Y0077894D01* -X0060403Y0078157D01* -X0060975Y0078539D01* -X0061461Y0079025D01* -X0061843Y0079597D01* -X0062106Y0080232D01* -X0062241Y0080906D01* -X0062241Y0081250D01* -X0062241Y0081594D01* -X0062106Y0082268D01* -X0061843Y0082903D01* -X0061461Y0083475D01* -X0060975Y0083961D01* -X0060421Y0084331D01* -X0069919Y0084331D01* -X0063747Y0078218D01* -X0060867Y0078218D01* -X0059923Y0077827D01* -X0059457Y0077361D01* -X0059355Y0077420D01* -X0058872Y0077550D01* -X0056663Y0077550D01* -X0056663Y0073100D01* -X0055463Y0073100D01* -X0055463Y0077550D01* -X0053254Y0077550D01* -X0052771Y0077420D01* -X0052337Y0077170D01* -X0051984Y0076816D01* -X0051733Y0076383D01* -X0051604Y0075900D01* -X0051604Y0073100D01* -X0055463Y0073100D01* -X0055463Y0071900D01* -X0056663Y0071900D01* -X0056663Y0067450D01* -X0058872Y0067450D01* -X0059355Y0067580D01* -X0059457Y0067639D01* -X0059923Y0067173D01* -X0060769Y0066823D01* -X0060769Y0062872D01* -X0060327Y0062689D01* -X0059604Y0061967D01* -X0059417Y0061515D01* -X0032749Y0061515D01* -X0030668Y0063596D01* -X0030668Y0066132D01* -X0030964Y0066132D01* -X0031908Y0066523D01* -X0032630Y0067246D01* -X0033021Y0068190D01* -X0033021Y0074330D01* -X0032744Y0075000D01* -X0033021Y0075670D01* -X0033021Y0081810D01* -X0032630Y0082754D01* -X0031908Y0083477D01* -X0030964Y0083868D01* -X0030668Y0083868D01* -X0030668Y0084331D01* -X0030668Y0083896D02* -X0056459Y0083896D01* -X0055571Y0082697D02* -X0032654Y0082697D01* -X0033021Y0081499D02* -X0055259Y0081499D01* -X0055259Y0081250D02* -X0058750Y0081250D01* -X0062241Y0081250D01* -X0058750Y0081250D01* -X0058750Y0081250D01* -X0058750Y0077759D01* -X0058750Y0081250D01* -X0058750Y0081250D01* -X0058750Y0081250D01* -X0055259Y0081250D01* -X0055380Y0080300D02* -X0033021Y0080300D01* -X0033021Y0079102D02* -X0055987Y0079102D01* -X0057709Y0077903D02* -X0033021Y0077903D01* -X0033021Y0076705D02* -X0051919Y0076705D01* -X0051604Y0075506D02* -X0032953Y0075506D01* -X0033021Y0074308D02* -X0051604Y0074308D01* -X0051604Y0073109D02* -X0033021Y0073109D01* -X0033021Y0071911D02* -X0055463Y0071911D01* -X0055463Y0071900D02* -X0051604Y0071900D01* -X0051604Y0069100D01* -X0051733Y0068617D01* -X0051984Y0068184D01* -X0052337Y0067830D01* -X0052771Y0067580D01* -X0053254Y0067450D01* -X0055463Y0067450D01* -X0055463Y0071900D01* -X0055463Y0070712D02* -X0056663Y0070712D01* -X0056663Y0069514D02* -X0055463Y0069514D01* -X0055463Y0068315D02* -X0056663Y0068315D01* -X0060059Y0067117D02* -X0032501Y0067117D01* -X0033021Y0068315D02* -X0051908Y0068315D01* -X0051604Y0069514D02* -X0033021Y0069514D01* -X0033021Y0070712D02* -X0051604Y0070712D01* -X0055463Y0073109D02* -X0056663Y0073109D01* -X0056663Y0074308D02* -X0055463Y0074308D01* -X0055463Y0075506D02* -X0056663Y0075506D01* -X0056663Y0076705D02* -X0055463Y0076705D01* -X0058750Y0077903D02* -X0058750Y0077903D01* -X0059791Y0077903D02* -X0060107Y0077903D01* -X0058750Y0079102D02* -X0058750Y0079102D01* -X0058750Y0080300D02* -X0058750Y0080300D01* -X0061513Y0079102D02* -X0064639Y0079102D01* -X0065849Y0080300D02* -X0062120Y0080300D01* -X0062241Y0081499D02* -X0067059Y0081499D01* -X0068269Y0082697D02* -X0061929Y0082697D01* -X0062500Y0083750D02* -X0070000Y0083750D01* -X0074360Y0088110D01* -X0080059Y0088110D01* -X0080059Y0086142D02* -X0076250Y0086142D01* -X0065000Y0075000D01* -X0063937Y0072500D01* -X0063937Y0060846D01* -X0063750Y0058346D01* -X0031437Y0058346D01* -X0027500Y0062283D01* -X0027500Y0071260D01* -X0021979Y0070712D02* -X0002568Y0070712D01* -X0002568Y0069514D02* -X0021979Y0069514D01* -X0021979Y0068315D02* -X0002568Y0068315D01* -X0002568Y0067117D02* -X0022499Y0067117D01* -X0024331Y0065918D02* -X0002568Y0065918D01* -X0002568Y0064720D02* -X0024331Y0064720D01* -X0024331Y0063521D02* -X0002568Y0063521D01* -X0002568Y0062323D02* -X0024331Y0062323D01* -X0024551Y0061124D02* -X0002568Y0061124D01* -X0002568Y0059926D02* -X0025377Y0059926D01* -X0026575Y0058727D02* -X0002568Y0058727D01* -X0002568Y0057529D02* -X0027774Y0057529D01* -X0028972Y0056330D02* -X0002568Y0056330D01* -X0002568Y0055132D02* -X0059436Y0055132D01* -X0059213Y0053933D02* -X0002568Y0053933D01* -X0002568Y0052734D02* -X0059213Y0052734D01* -X0059213Y0051536D02* -X0002568Y0051536D01* -X0002568Y0050337D02* -X0059213Y0050337D01* -X0059213Y0049139D02* -X0002568Y0049139D01* -X0002568Y0047940D02* -X0059697Y0047940D01* -X0063750Y0051654D02* -X0082500Y0051654D01* -X0086437Y0055591D01* -X0086437Y0060000D01* -X0087736Y0060000D01* -X0091673Y0063937D01* -X0091673Y0072559D01* -X0089705Y0072559D02* -X0089705Y0065000D01* -X0077500Y0065000D01* -X0077500Y0060000D01* -X0077963Y0059926D02* -X0068287Y0059926D01* -X0068287Y0061023D02* -X0067896Y0061967D01* -X0067173Y0062689D01* -X0067105Y0062717D01* -X0067105Y0066823D01* -X0067951Y0067173D01* -X0068674Y0067895D01* -X0069065Y0068839D01* -X0069065Y0074566D01* -X0073681Y0079139D01* -X0073681Y0076989D01* -X0074073Y0076045D01* -X0074795Y0075323D01* -X0075739Y0074931D01* -X0076181Y0074931D01* -X0076181Y0070739D01* -X0076573Y0069795D01* -X0077295Y0069073D01* -X0078239Y0068681D01* -X0085029Y0068681D01* -X0085691Y0068019D01* -X0086635Y0067628D01* -X0088505Y0067628D01* -X0088505Y0065718D01* -X0083367Y0065718D01* -X0082423Y0065327D01* -X0081957Y0064861D01* -X0081855Y0064920D01* -X0081372Y0065050D01* -X0079163Y0065050D01* -X0079163Y0060600D01* -X0077963Y0060600D01* -X0077963Y0065050D01* -X0075754Y0065050D01* -X0075271Y0064920D01* -X0074837Y0064670D01* -X0074484Y0064316D01* -X0074233Y0063883D01* -X0074104Y0063400D01* -X0074104Y0060600D01* -X0077963Y0060600D01* -X0077963Y0059400D01* -X0079163Y0059400D01* -X0079163Y0054950D01* -X0081316Y0054950D01* -X0081188Y0054822D01* -X0068083Y0054822D01* -X0068009Y0055000D01* -X0068287Y0055670D01* -X0068287Y0061023D01* -X0068245Y0061124D02* -X0074104Y0061124D01* -X0074104Y0062323D02* -X0067540Y0062323D01* -X0067105Y0063521D02* -X0074136Y0063521D01* -X0073518Y0064144D02* -X0074153Y0064407D01* -X0074725Y0064789D01* -X0075211Y0065275D01* -X0075593Y0065847D01* -X0075856Y0066482D01* -X0075991Y0067156D01* -X0075991Y0067500D01* -X0075991Y0067844D01* -X0075856Y0068518D01* -X0075593Y0069153D01* -X0075211Y0069725D01* -X0074725Y0070211D01* -X0074153Y0070593D01* -X0073518Y0070856D01* -X0072844Y0070991D01* -X0072500Y0070991D01* -X0072156Y0070991D01* -X0071482Y0070856D01* -X0070847Y0070593D01* -X0070275Y0070211D01* -X0069789Y0069725D01* -X0069407Y0069153D01* -X0069144Y0068518D01* -X0069009Y0067844D01* -X0069009Y0067500D01* -X0069009Y0067156D01* -X0069144Y0066482D01* -X0069407Y0065847D01* -X0069789Y0065275D01* -X0070275Y0064789D01* -X0070847Y0064407D01* -X0071482Y0064144D01* -X0072156Y0064009D01* -X0072500Y0064009D01* -X0072844Y0064009D01* -X0073518Y0064144D01* -X0072500Y0064009D02* -X0072500Y0067500D01* -X0075991Y0067500D01* -X0072500Y0067500D01* -X0072500Y0067500D01* -X0072500Y0067500D01* -X0072500Y0070991D01* -X0072500Y0067500D01* -X0072500Y0067500D01* -X0072500Y0067500D01* -X0069009Y0067500D01* -X0072500Y0067500D01* -X0072500Y0064009D01* -X0072500Y0064720D02* -X0072500Y0064720D01* -X0072500Y0065918D02* -X0072500Y0065918D01* -X0072500Y0067117D02* -X0072500Y0067117D01* -X0072500Y0068315D02* -X0072500Y0068315D01* -X0072500Y0069514D02* -X0072500Y0069514D01* -X0072500Y0070712D02* -X0072500Y0070712D01* -X0073866Y0070712D02* -X0076193Y0070712D01* -X0076181Y0071911D02* -X0069065Y0071911D01* -X0069065Y0073109D02* -X0076181Y0073109D01* -X0076181Y0074308D02* -X0069065Y0074308D01* -X0070014Y0075506D02* -X0074611Y0075506D01* -X0073799Y0076705D02* -X0071224Y0076705D01* -X0072434Y0077903D02* -X0073681Y0077903D01* -X0073644Y0079102D02* -X0073681Y0079102D01* -X0069479Y0083896D02* -X0061041Y0083896D01* -X0066063Y0092500D02* -X0021437Y0092500D01* -X0017500Y0096437D01* -X0017500Y0151063D01* -X0021437Y0155000D01* -X0027500Y0155000D01* -X0027500Y0148937D01* -X0033218Y0148615D02* -X0088505Y0148615D01* -X0088505Y0147417D02* -X0087312Y0147417D01* -X0087420Y0147229D02* -X0087170Y0147663D01* -X0086816Y0148016D01* -X0086383Y0148267D01* -X0085900Y0148396D01* -X0083100Y0148396D01* -X0083100Y0144537D01* -X0087550Y0144537D01* -X0087550Y0146746D01* -X0087420Y0147229D01* -X0087550Y0146218D02* -X0088505Y0146218D01* -X0088505Y0145020D02* -X0087550Y0145020D01* -X0088505Y0143821D02* -X0083100Y0143821D01* -X0083100Y0143337D02* -X0083100Y0144537D01* -X0081900Y0144537D01* -X0081900Y0143337D01* -X0077450Y0143337D01* -X0077450Y0141128D01* -X0077580Y0140645D01* -X0077639Y0140543D01* -X0077173Y0140077D01* -X0076782Y0139133D01* -X0076782Y0132993D01* -X0077173Y0132049D01* -X0077895Y0131326D01* -X0078839Y0130935D01* -X0079331Y0130935D01* -X0079331Y0126870D01* -X0079814Y0125705D01* -X0080705Y0124814D01* -X0081870Y0124331D01* -X0084568Y0124331D01* -X0084568Y0121318D01* -X0078239Y0121318D01* -X0077521Y0121021D01* -X0077550Y0121128D01* -X0077550Y0123337D01* -X0073100Y0123337D01* -X0073100Y0124537D01* -X0077550Y0124537D01* -X0077550Y0126746D01* -X0077420Y0127229D01* -X0077170Y0127663D01* -X0076816Y0128016D01* -X0076383Y0128267D01* -X0075900Y0128396D01* -X0073100Y0128396D01* -X0073100Y0124537D01* -X0071900Y0124537D01* -X0071900Y0123337D01* -X0067450Y0123337D01* -X0067450Y0121128D01* -X0067580Y0120645D01* -X0067639Y0120543D01* -X0067173Y0120077D01* -X0066782Y0119133D01* -X0066782Y0115012D01* -X0066249Y0115545D01* -X0065358Y0116436D01* -X0064401Y0116832D01* -X0064264Y0117164D01* -X0063542Y0117886D01* -X0063168Y0118041D01* -X0063168Y0119890D01* -X0063674Y0120395D01* -X0064065Y0121339D01* -X0064065Y0128661D01* -X0063674Y0129605D01* -X0062951Y0130327D01* -X0062007Y0130718D01* -X0055867Y0130718D01* -X0054923Y0130327D01* -X0054457Y0129861D01* -X0054355Y0129920D01* -X0053872Y0130050D01* -X0051663Y0130050D01* -X0051663Y0127741D01* -X0050630Y0128168D01* -X0050463Y0128168D01* -X0050463Y0130050D01* -X0048254Y0130050D01* -X0047771Y0129920D01* -X0047337Y0129670D01* -X0046984Y0129316D01* -X0046733Y0128883D01* -X0046604Y0128400D01* -X0046604Y0125600D01* -X0046831Y0125600D01* -X0046831Y0124400D01* -X0046604Y0124400D01* -X0046604Y0121600D01* -X0046733Y0121117D01* -X0046831Y0120947D01* -X0046831Y0117278D01* -X0046747Y0117229D01* -X0046393Y0116875D01* -X0046143Y0116442D01* -X0046013Y0115959D01* -X0046013Y0113928D01* -X0046831Y0113928D01* -X0046831Y0112765D01* -X0046013Y0112765D01* -X0046013Y0110748D01* -X0045736Y0110471D01* -X0045467Y0109822D01* -X0045433Y0109822D01* -X0045327Y0110077D01* -X0044861Y0110543D01* -X0044920Y0110645D01* -X0045050Y0111128D01* -X0045050Y0113337D01* -X0040600Y0113337D01* -X0040600Y0114537D01* -X0045050Y0114537D01* -X0045050Y0116746D01* -X0044920Y0117229D01* -X0044670Y0117663D01* -X0044316Y0118016D01* -X0043883Y0118267D01* -X0043400Y0118396D01* -X0040600Y0118396D01* -X0040600Y0114537D01* -X0039400Y0114537D01* -X0039400Y0113337D01* -X0034950Y0113337D01* -X0034950Y0111128D01* -X0035080Y0110645D01* -X0035139Y0110543D01* -X0034673Y0110077D01* -X0034282Y0109133D01* -X0034282Y0102993D01* -X0034673Y0102049D01* -X0035395Y0101326D01* -X0036339Y0100935D01* -X0043661Y0100935D01* -X0044605Y0101326D01* -X0045327Y0102049D01* -X0045695Y0102936D01* -X0045736Y0102836D01* -X0046458Y0102114D01* -X0047402Y0101723D01* -X0047501Y0101723D01* -X0047501Y0099291D01* -X0047983Y0098126D01* -X0048874Y0097235D01* -X0050039Y0096753D01* -X0067365Y0096753D01* -X0065286Y0095668D01* -X0022749Y0095668D01* -X0020668Y0097749D01* -X0020668Y0149751D01* -X0021782Y0150864D01* -X0021782Y0145867D01* -X0022173Y0144923D01* -X0022639Y0144457D01* -X0022580Y0144355D01* -X0022450Y0143872D01* -X0022450Y0141663D01* -X0026900Y0141663D01* -X0026900Y0140463D01* -X0022450Y0140463D01* -X0022450Y0138254D01* -X0022580Y0137771D01* -X0022830Y0137337D01* -X0023184Y0136984D01* -X0023617Y0136733D01* -X0024100Y0136604D01* -X0026900Y0136604D01* -X0026900Y0140463D01* -X0028100Y0140463D01* -X0028100Y0141663D01* -X0032550Y0141663D01* -X0032550Y0143872D01* -X0032420Y0144355D01* -X0032361Y0144457D01* -X0032827Y0144923D01* -X0033218Y0145867D01* -X0033218Y0151831D01* -X0079208Y0151831D01* -X0079912Y0151127D01* -X0081591Y0150431D01* -X0083409Y0150431D01* -X0085088Y0151127D01* -X0086373Y0152412D01* -X0087068Y0154091D01* -X0087068Y0155909D01* -X0086872Y0156383D01* -X0088505Y0154751D01* -X0088505Y0130611D01* -X0088366Y0130668D01* -X0085668Y0130668D01* -X0085668Y0130935D01* -X0086161Y0130935D01* -X0087105Y0131326D01* -X0087827Y0132049D01* -X0088218Y0132993D01* -X0088218Y0139133D01* -X0087827Y0140077D01* -X0087361Y0140543D01* -X0087420Y0140645D01* -X0087550Y0141128D01* -X0087550Y0143337D01* -X0083100Y0143337D01* -X0081900Y0143821D02* -X0032550Y0143821D01* -X0032550Y0142623D02* -X0077450Y0142623D01* -X0077450Y0141424D02* -X0028100Y0141424D01* -X0028100Y0140463D02* -X0032550Y0140463D01* -X0032550Y0138254D01* -X0032420Y0137771D01* -X0032170Y0137337D01* -X0031816Y0136984D01* -X0031383Y0136733D01* -X0030900Y0136604D01* -X0028100Y0136604D01* -X0028100Y0140463D01* -X0028100Y0140226D02* -X0026900Y0140226D01* -X0026900Y0141424D02* -X0020668Y0141424D01* -X0020668Y0140226D02* -X0022450Y0140226D01* -X0022450Y0139027D02* -X0020668Y0139027D01* -X0020668Y0137829D02* -X0022564Y0137829D01* -X0024002Y0136630D02* -X0020668Y0136630D01* -X0020668Y0135432D02* -X0069684Y0135432D01* -X0069789Y0135275D02* -X0070275Y0134789D01* -X0070847Y0134407D01* -X0071482Y0134144D01* -X0072156Y0134009D01* -X0072500Y0134009D01* -X0072844Y0134009D01* -X0073518Y0134144D01* -X0074153Y0134407D01* -X0074725Y0134789D01* -X0075211Y0135275D01* -X0075593Y0135847D01* -X0075856Y0136482D01* -X0075991Y0137156D01* -X0075991Y0137500D01* -X0075991Y0137844D01* -X0075856Y0138518D01* -X0075593Y0139153D01* -X0075211Y0139725D01* -X0074725Y0140211D01* -X0074153Y0140593D01* -X0073518Y0140856D01* -X0072844Y0140991D01* -X0072500Y0140991D01* -X0072156Y0140991D01* -X0071482Y0140856D01* -X0070847Y0140593D01* -X0070275Y0140211D01* -X0069789Y0139725D01* -X0069407Y0139153D01* -X0069144Y0138518D01* -X0069009Y0137844D01* -X0069009Y0137500D01* -X0069009Y0137156D01* -X0069144Y0136482D01* -X0069407Y0135847D01* -X0069789Y0135275D01* -X0069114Y0136630D02* -X0030998Y0136630D01* -X0032436Y0137829D02* -X0069009Y0137829D01* -X0069009Y0137500D02* -X0072500Y0137500D01* -X0075991Y0137500D01* -X0072500Y0137500D01* -X0072500Y0137500D01* -X0072500Y0137500D01* -X0072500Y0140991D01* -X0072500Y0137500D01* -X0072500Y0134009D01* -X0072500Y0137500D01* -X0072500Y0137500D01* -X0072500Y0137500D01* -X0069009Y0137500D01* -X0069355Y0139027D02* -X0032550Y0139027D01* -X0032550Y0140226D02* -X0070297Y0140226D01* -X0072500Y0140226D02* -X0072500Y0140226D01* -X0072500Y0139027D02* -X0072500Y0139027D01* -X0072500Y0137829D02* -X0072500Y0137829D01* -X0072500Y0136630D02* -X0072500Y0136630D01* -X0072500Y0135432D02* -X0072500Y0135432D01* -X0072500Y0134233D02* -X0072500Y0134233D01* -X0073735Y0134233D02* -X0076782Y0134233D01* -X0076782Y0133035D02* -X0020668Y0133035D01* -X0020668Y0134233D02* -X0071265Y0134233D01* -X0075316Y0135432D02* -X0076782Y0135432D01* -X0076782Y0136630D02* -X0075886Y0136630D01* -X0075991Y0137829D02* -X0076782Y0137829D01* -X0076782Y0139027D02* -X0075645Y0139027D01* -X0074703Y0140226D02* -X0077322Y0140226D01* -X0077450Y0144537D02* -X0081900Y0144537D01* -X0081900Y0148396D01* -X0079100Y0148396D01* -X0078617Y0148267D01* -X0078184Y0148016D01* -X0077830Y0147663D01* -X0077580Y0147229D01* -X0077450Y0146746D01* -X0077450Y0144537D01* -X0077450Y0145020D02* -X0032867Y0145020D01* -X0033218Y0146218D02* -X0077450Y0146218D01* -X0077688Y0147417D02* -X0033218Y0147417D01* -X0033218Y0149814D02* -X0088505Y0149814D01* -X0088505Y0151012D02* -X0084811Y0151012D01* -X0086172Y0152211D02* -X0088505Y0152211D01* -X0088505Y0153409D02* -X0086786Y0153409D01* -X0087068Y0154608D02* -X0088505Y0154608D01* -X0087449Y0155806D02* -X0087068Y0155806D01* -X0091673Y0156063D02* -X0091673Y0117441D01* -X0089705Y0117441D02* -X0089705Y0145000D01* -X0082500Y0145000D01* -X0081900Y0145020D02* -X0083100Y0145020D01* -X0083100Y0146218D02* -X0081900Y0146218D01* -X0081900Y0147417D02* -X0083100Y0147417D01* -X0080189Y0151012D02* -X0033218Y0151012D01* -X0027500Y0155000D02* -X0082500Y0155000D01* -X0086673Y0161063D02* -X0091673Y0156063D01* -X0093642Y0160000D02* -X0093642Y0117441D01* -X0095610Y0117441D02* -X0095610Y0180000D01* -X0096250Y0181250D01* -X0082500Y0181250D01* -X0082500Y0177500D01* -X0082490Y0176250D01* -X0087618Y0176181D02* -X0090032Y0176181D01* -X0089981Y0176303D02* -X0090936Y0173999D01* -X0092442Y0172493D01* -X0092442Y0165681D01* -X0090437Y0167686D01* -X0089272Y0168168D01* -X0043812Y0168168D01* -X0040668Y0171312D01* -X0040668Y0202400D01* -X0042100Y0202400D01* -X0042100Y0207100D01* -X0042900Y0207100D01* -X0042900Y0202400D01* -X0044331Y0202400D01* -X0044331Y0201870D01* -X0044814Y0200705D01* -X0049814Y0195705D01* -X0050705Y0194814D01* -X0051870Y0194331D01* -X0103688Y0194331D01* -X0106831Y0191188D01* -X0106831Y0166312D01* -X0103688Y0163168D01* -X0100885Y0163168D01* -X0099721Y0162686D01* -X0098830Y0161795D01* -X0098779Y0161744D01* -X0098779Y0171812D01* -X0099801Y0172236D01* -X0101564Y0173999D01* -X0102518Y0176303D01* -X0102518Y0186197D01* -X0101564Y0188501D01* -X0099801Y0190264D01* -X0097497Y0191218D01* -X0095003Y0191218D01* -X0092699Y0190264D01* -X0090936Y0188501D01* -X0089981Y0186197D01* -X0089981Y0184418D01* -X0081870Y0184418D01* -X0080705Y0183936D01* -X0079814Y0183045D01* -X0079331Y0181880D01* -X0079331Y0181735D01* -X0078476Y0181380D01* -X0078118Y0181023D01* -X0077819Y0181103D01* -X0075610Y0181103D01* -X0075610Y0176850D01* -X0074410Y0176850D01* -X0074410Y0181103D01* -X0072201Y0181103D01* -X0071717Y0180973D01* -X0071284Y0180723D01* -X0070930Y0180369D01* -X0070680Y0179936D01* -X0070551Y0179453D01* -X0070551Y0176850D01* -X0074410Y0176850D01* -X0074410Y0175650D01* -X0075610Y0175650D01* -X0075610Y0171397D01* -X0077819Y0171397D01* -X0078118Y0171477D01* -X0078476Y0171120D01* -X0079420Y0170729D01* -X0085560Y0170729D01* -X0086504Y0171120D01* -X0087227Y0171842D01* -X0087618Y0172786D01* -X0087618Y0178081D01* -X0089981Y0178081D01* -X0089981Y0176303D01* -X0089981Y0177380D02* -X0087618Y0177380D01* -X0087618Y0174983D02* -X0090528Y0174983D01* -X0091151Y0173784D02* -X0087618Y0173784D01* -X0087535Y0172586D02* -X0092349Y0172586D01* -X0092442Y0171387D02* -X0086771Y0171387D01* -X0090182Y0167792D02* -X0092442Y0167792D01* -X0092442Y0168990D02* -X0042991Y0168990D01* -X0041792Y0170189D02* -X0092442Y0170189D01* -X0092442Y0166593D02* -X0091530Y0166593D01* -X0088642Y0165000D02* -X0093642Y0160000D01* -X0098779Y0161799D02* -X0098834Y0161799D01* -X0098779Y0162998D02* -X0100473Y0162998D01* -X0098779Y0164196D02* -X0104715Y0164196D01* -X0105914Y0165395D02* -X0098779Y0165395D01* -X0098779Y0166593D02* -X0106831Y0166593D01* -X0106831Y0167792D02* -X0098779Y0167792D01* -X0098779Y0168990D02* -X0106831Y0168990D01* -X0106831Y0170189D02* -X0098779Y0170189D01* -X0098779Y0171387D02* -X0106831Y0171387D01* -X0106831Y0172586D02* -X0100151Y0172586D01* -X0101349Y0173784D02* -X0106831Y0173784D01* -X0106831Y0174983D02* -X0101972Y0174983D01* -X0102468Y0176181D02* -X0106831Y0176181D01* -X0106831Y0177380D02* -X0102518Y0177380D01* -X0102518Y0178578D02* -X0106831Y0178578D01* -X0106831Y0179777D02* -X0102518Y0179777D01* -X0102518Y0180975D02* -X0106831Y0180975D01* -X0106831Y0182174D02* -X0102518Y0182174D01* -X0102518Y0183372D02* -X0106831Y0183372D01* -X0106831Y0184571D02* -X0102518Y0184571D01* -X0102518Y0185769D02* -X0106831Y0185769D01* -X0106831Y0186968D02* -X0102199Y0186968D01* -X0101703Y0188166D02* -X0106831Y0188166D01* -X0106831Y0189365D02* -X0100700Y0189365D01* -X0099079Y0190563D02* -X0106831Y0190563D01* -X0106257Y0191762D02* -X0081775Y0191762D01* -X0081653Y0191843D02* -X0081018Y0192106D01* -X0080344Y0192241D01* -X0080000Y0192241D01* -X0079656Y0192241D01* -X0078982Y0192106D01* -X0078347Y0191843D01* -X0077775Y0191461D01* -X0077289Y0190975D01* -X0076907Y0190403D01* -X0076644Y0189768D01* -X0076509Y0189094D01* -X0076509Y0188750D01* -X0076509Y0188406D01* -X0076644Y0187732D01* -X0076907Y0187097D01* -X0077289Y0186525D01* -X0077775Y0186039D01* -X0078347Y0185657D01* -X0078982Y0185394D01* -X0079656Y0185259D01* -X0080000Y0185259D01* -X0080344Y0185259D01* -X0081018Y0185394D01* -X0081653Y0185657D01* -X0082225Y0186039D01* -X0082711Y0186525D01* -X0083093Y0187097D01* -X0083356Y0187732D01* -X0083491Y0188406D01* -X0083491Y0188750D01* -X0083491Y0189094D01* -X0083356Y0189768D01* -X0083093Y0190403D01* -X0082711Y0190975D01* -X0082225Y0191461D01* -X0081653Y0191843D01* -X0080000Y0191762D02* -X0080000Y0191762D01* -X0080000Y0192241D02* -X0080000Y0188750D01* -X0083491Y0188750D01* -X0080000Y0188750D01* -X0080000Y0188750D01* -X0080000Y0188750D01* -X0080000Y0192241D01* -X0080000Y0190563D02* -X0080000Y0190563D01* -X0080000Y0189365D02* -X0080000Y0189365D01* -X0080000Y0188750D02* -X0080000Y0188750D01* -X0080000Y0185259D01* -X0080000Y0188750D01* -X0080000Y0188750D01* -X0076509Y0188750D01* -X0080000Y0188750D01* -X0080000Y0188166D02* -X0080000Y0188166D01* -X0080000Y0186968D02* -X0080000Y0186968D01* -X0080000Y0185769D02* -X0080000Y0185769D01* -X0081822Y0185769D02* -X0089981Y0185769D01* -X0089981Y0184571D02* -X0040668Y0184571D01* -X0040668Y0185769D02* -X0078178Y0185769D01* -X0076993Y0186968D02* -X0040668Y0186968D01* -X0040668Y0188166D02* -X0076557Y0188166D01* -X0076563Y0189365D02* -X0040668Y0189365D01* -X0040668Y0190563D02* -X0077014Y0190563D01* -X0078225Y0191762D02* -X0040668Y0191762D01* -X0040668Y0192960D02* -X0105059Y0192960D01* -X0103860Y0194159D02* -X0040668Y0194159D01* -X0040668Y0195357D02* -X0050162Y0195357D01* -X0048963Y0196556D02* -X0040668Y0196556D01* -X0040668Y0197754D02* -X0047765Y0197754D01* -X0046566Y0198953D02* -X0040668Y0198953D01* -X0040668Y0200151D02* -X0045368Y0200151D01* -X0044547Y0201350D02* -X0040668Y0201350D01* -X0042100Y0202548D02* -X0042900Y0202548D01* -X0042900Y0203747D02* -X0042100Y0203747D01* -X0042100Y0204945D02* -X0042900Y0204945D01* -X0042900Y0206144D02* -X0042100Y0206144D01* -X0047500Y0202500D02* -X0052500Y0197500D01* -X0105000Y0197500D01* -X0110000Y0192500D01* -X0110000Y0165000D01* -X0105000Y0160000D01* -X0101516Y0160000D01* -X0097579Y0156063D01* -X0097579Y0117441D01* -X0099547Y0117441D02* -X0099547Y0153563D01* -X0103484Y0157500D01* -X0109402Y0157500D01* -X0114402Y0162500D01* -X0114402Y0192500D01* -X0130733Y0198953D02* -X0134267Y0198953D01* -X0132707Y0200151D02* -X0132293Y0200151D01* -X0138098Y0205000D02* -X0138098Y0217500D01* -X0136240Y0217500D01* -X0141368Y0216931D02* -X0153160Y0216931D01* -X0153160Y0216900D02* -X0149301Y0216900D01* -X0149301Y0214297D01* -X0149430Y0213814D01* -X0149680Y0213381D01* -X0150034Y0213027D01* -X0150467Y0212777D01* -X0150951Y0212647D01* -X0153160Y0212647D01* -X0153160Y0216900D01* -X0153160Y0215732D02* -X0154360Y0215732D01* -X0154360Y0214534D02* -X0153160Y0214534D01* -X0153160Y0213335D02* -X0154360Y0213335D01* -X0149726Y0213335D02* -X0141267Y0213335D01* -X0141267Y0212137D02* -X0157789Y0212137D01* -X0159004Y0210938D02* -X0155996Y0210938D01* -X0157338Y0209739D02* -X0157662Y0209739D01* -X0149301Y0214534D02* -X0141368Y0214534D01* -X0141368Y0215732D02* -X0149301Y0215732D01* -X0149301Y0218129D02* -X0141368Y0218129D01* -X0141368Y0219328D02* -X0149301Y0219328D01* -X0149301Y0220526D02* -X0141368Y0220526D01* -X0141053Y0221725D02* -X0149786Y0221725D01* -X0153160Y0221725D02* -X0154360Y0221725D01* -X0154360Y0220526D02* -X0153160Y0220526D01* -X0153160Y0219328D02* -X0154360Y0219328D01* -X0154360Y0218129D02* -X0153160Y0218129D01* -X0157933Y0222923D02* -X0139547Y0222923D01* -X0142193Y0210938D02* -X0147807Y0210938D01* -X0146465Y0209739D02* -X0143535Y0209739D01* -X0143817Y0208541D02* -X0146183Y0208541D01* -X0146183Y0207342D02* -X0143817Y0207342D01* -X0143817Y0206144D02* -X0146183Y0206144D01* -X0166368Y0214534D02* -X0177553Y0214534D01* -X0178751Y0215732D02* -X0166368Y0215732D01* -X0166368Y0216931D02* -X0179231Y0216931D01* -X0179231Y0218129D02* -X0166368Y0218129D01* -X0166368Y0219328D02* -X0179231Y0219328D01* -X0179868Y0220526D02* -X0166368Y0220526D01* -X0166053Y0221725D02* -X0181067Y0221725D01* -X0182265Y0222923D02* -X0164547Y0222923D01* -X0187141Y0224122D02* -X0060359Y0224122D01* -X0059161Y0225320D02* -X0188529Y0225320D01* -X0195000Y0217500D02* -X0190000Y0212500D01* -X0195400Y0207342D02* -X0209009Y0207342D01* -X0209009Y0207500D02* -X0209009Y0207156D01* -X0209144Y0206482D01* -X0209407Y0205847D01* -X0209789Y0205275D01* -X0210275Y0204789D01* -X0210847Y0204407D01* -X0211482Y0204144D01* -X0212156Y0204009D01* -X0212500Y0204009D01* -X0212844Y0204009D01* -X0213518Y0204144D01* -X0214153Y0204407D01* -X0214725Y0204789D01* -X0215211Y0205275D01* -X0215593Y0205847D01* -X0215856Y0206482D01* -X0215991Y0207156D01* -X0215991Y0207500D01* -X0215991Y0207844D01* -X0215856Y0208518D01* -X0215593Y0209153D01* -X0215211Y0209725D01* -X0214725Y0210211D01* -X0214153Y0210593D01* -X0213518Y0210856D01* -X0212844Y0210991D01* -X0212500Y0210991D01* -X0212156Y0210991D01* -X0211482Y0210856D01* -X0210847Y0210593D01* -X0210275Y0210211D01* -X0209789Y0209725D01* -X0209407Y0209153D01* -X0209144Y0208518D01* -X0209009Y0207844D01* -X0209009Y0207500D01* -X0212500Y0207500D01* -X0215991Y0207500D01* -X0212500Y0207500D01* -X0212500Y0207500D01* -X0212500Y0207500D01* -X0212500Y0210991D01* -X0212500Y0207500D01* -X0212500Y0204009D01* -X0212500Y0207500D01* -X0212500Y0207500D01* -X0212500Y0207500D01* -X0209009Y0207500D01* -X0209153Y0208541D02* -X0200100Y0208541D01* -X0199973Y0209739D02* -X0209803Y0209739D01* -X0211892Y0210938D02* -X0198774Y0210938D01* -X0197794Y0212137D02* -X0269959Y0212137D01* -X0269950Y0210938D02* -X0213108Y0210938D01* -X0212500Y0210938D02* -X0212500Y0210938D01* -X0212500Y0209739D02* -X0212500Y0209739D01* -X0212500Y0208541D02* -X0212500Y0208541D01* -X0212500Y0207342D02* -X0212500Y0207342D01* -X0212500Y0206144D02* -X0212500Y0206144D01* -X0212500Y0204945D02* -X0212500Y0204945D01* -X0214882Y0204945D02* -X0226023Y0204945D01* -X0226044Y0205025D02* -X0225915Y0204541D01* -X0225915Y0202609D01* -X0233631Y0202609D01* -X0233631Y0206191D01* -X0227565Y0206191D01* -X0227082Y0206062D01* -X0226648Y0205812D01* -X0226295Y0205458D01* -X0226044Y0205025D01* -X0225915Y0203747D02* -X0198459Y0203747D01* -X0197261Y0202548D02* -X0233631Y0202548D01* -X0234597Y0202548D02* -X0260403Y0202548D01* -X0260886Y0202126D02* -X0270000Y0202126D01* -X0269085Y0203747D02* -X0286132Y0203747D01* -X0286132Y0204945D02* -X0279732Y0204945D01* -X0280050Y0206144D02* -X0286132Y0206144D01* -X0286132Y0207342D02* -X0280050Y0207342D01* -X0275600Y0206144D02* -X0274400Y0206144D01* -X0274400Y0204945D02* -X0275600Y0204945D01* -X0274400Y0208541D02* -X0215847Y0208541D01* -X0215991Y0207342D02* -X0269950Y0207342D01* -X0269950Y0206144D02* -X0267612Y0206144D01* -X0268977Y0204945D02* -X0270268Y0204945D01* -X0269950Y0209739D02* -X0215197Y0209739D01* -X0215716Y0206144D02* -X0227388Y0206144D01* -X0225915Y0201350D02* -X0193168Y0201350D01* -X0193168Y0200151D02* -X0225915Y0200151D01* -X0226203Y0198953D02* -X0193168Y0198953D01* -X0193168Y0197754D02* -X0286132Y0197754D01* -X0286132Y0196556D02* -X0193168Y0196556D01* -X0193168Y0195357D02* -X0286132Y0195357D01* -X0286132Y0194159D02* -X0193168Y0194159D01* -X0193168Y0192960D02* -X0286132Y0192960D01* -X0286132Y0191762D02* -X0193168Y0191762D01* -X0193168Y0190563D02* -X0286132Y0190563D01* -X0286132Y0189365D02* -X0193168Y0189365D01* -X0193168Y0188166D02* -X0286132Y0188166D01* -X0286132Y0186968D02* -X0193168Y0186968D01* -X0193168Y0185769D02* -X0286132Y0185769D01* -X0286132Y0184571D02* -X0193168Y0184571D01* -X0186831Y0184571D02* -X0176208Y0184571D01* -X0177750Y0185769D02* -X0186831Y0185769D01* -X0186831Y0186968D02* -X0178949Y0186968D01* -X0180147Y0188166D02* -X0186831Y0188166D01* -X0186831Y0189365D02* -X0181346Y0189365D01* -X0182544Y0190563D02* -X0186831Y0190563D01* -X0186831Y0191762D02* -X0183124Y0191762D01* -X0183168Y0192960D02* -X0186831Y0192960D01* -X0186831Y0194159D02* -X0183168Y0194159D01* -X0183168Y0195357D02* -X0186831Y0195357D01* -X0186831Y0196556D02* -X0183168Y0196556D01* -X0183168Y0197754D02* -X0186831Y0197754D01* -X0194600Y0202548D02* -X0195400Y0202548D01* -X0195400Y0202400D02* -X0197112Y0202400D01* -X0200100Y0205388D01* -X0200100Y0207100D01* -X0195400Y0207100D01* -X0195400Y0202400D01* -X0195400Y0203747D02* -X0194600Y0203747D01* -X0194600Y0204945D02* -X0195400Y0204945D01* -X0195400Y0206144D02* -X0194600Y0206144D01* -X0199658Y0204945D02* -X0210118Y0204945D01* -X0209284Y0206144D02* -X0200100Y0206144D01* -X0198993Y0213335D02* -X0226834Y0213335D01* -X0225522Y0214534D02* -X0200191Y0214534D01* -X0200768Y0215732D02* -X0225246Y0215732D01* -X0225246Y0216931D02* -X0200768Y0216931D01* -X0200768Y0218129D02* -X0225246Y0218129D01* -X0225246Y0219328D02* -X0200768Y0219328D01* -X0233631Y0206144D02* -X0234597Y0206144D01* -X0234597Y0204945D02* -X0233631Y0204945D01* -X0233631Y0203747D02* -X0234597Y0203747D01* -X0234597Y0201350D02* -X0233631Y0201350D01* -X0233631Y0200151D02* -X0234597Y0200151D01* -X0234597Y0198953D02* -X0233631Y0198953D01* -X0241395Y0213335D02* -X0253605Y0213335D01* -X0252293Y0214534D02* -X0242707Y0214534D01* -X0242361Y0221725D02* -X0252639Y0221725D01* -X0237283Y0222923D02* -X0286132Y0222923D01* -X0286132Y0224122D02* -X0236872Y0224122D01* -X0235585Y0225320D02* -X0286132Y0225320D01* -X0286132Y0226519D02* -X0057962Y0226519D01* -X0057686Y0226795D02* -X0057686Y0226795D01* -X0052500Y0217500D02* -X0057500Y0212500D01* -X0052500Y0217500D02* -X0047500Y0222500D01* -X0018937Y0222500D01* -X0022500Y0217500D02* -X0027500Y0212500D01* -X0027500Y0166063D01* -X0032500Y0161063D01* -X0086673Y0161063D01* -X0088642Y0165000D02* -X0042500Y0165000D01* -X0037500Y0170000D01* -X0037500Y0212500D01* -X0032500Y0217500D01* -X0042500Y0217500D02* -X0047500Y0212500D01* -X0047500Y0202500D01* -X0034331Y0202400D02* -X0034331Y0169370D01* -X0034814Y0168205D01* -X0038788Y0164231D01* -X0033812Y0164231D01* -X0030668Y0167375D01* -X0030668Y0202400D01* -X0032100Y0202400D01* -X0032100Y0207100D01* -X0032900Y0207100D01* -X0032900Y0202400D01* -X0034331Y0202400D01* -X0034331Y0201350D02* -X0030668Y0201350D01* -X0030668Y0200151D02* -X0034331Y0200151D01* -X0034331Y0198953D02* -X0030668Y0198953D01* -X0030668Y0197754D02* -X0034331Y0197754D01* -X0034331Y0196556D02* -X0030668Y0196556D01* -X0030668Y0195357D02* -X0034331Y0195357D01* -X0034331Y0194159D02* -X0030668Y0194159D01* -X0030668Y0192960D02* -X0034331Y0192960D01* -X0034331Y0191762D02* -X0030668Y0191762D01* -X0030668Y0190563D02* -X0034331Y0190563D01* -X0034331Y0189365D02* -X0030668Y0189365D01* -X0030668Y0188166D02* -X0034331Y0188166D01* -X0034331Y0186968D02* -X0030668Y0186968D01* -X0030668Y0185769D02* -X0034331Y0185769D01* -X0034331Y0184571D02* -X0030668Y0184571D01* -X0030668Y0183372D02* -X0034331Y0183372D01* -X0034331Y0182174D02* -X0030668Y0182174D01* -X0030668Y0180975D02* -X0034331Y0180975D01* -X0034331Y0179777D02* -X0030668Y0179777D01* -X0030668Y0178578D02* -X0034331Y0178578D01* -X0034331Y0177380D02* -X0030668Y0177380D01* -X0030668Y0176181D02* -X0034331Y0176181D01* -X0034331Y0174983D02* -X0030668Y0174983D01* -X0030668Y0173784D02* -X0034331Y0173784D01* -X0034331Y0172586D02* -X0030668Y0172586D01* -X0030668Y0171387D02* -X0034331Y0171387D01* -X0034331Y0170189D02* -X0030668Y0170189D01* -X0030668Y0168990D02* -X0034489Y0168990D01* -X0035227Y0167792D02* -X0030668Y0167792D01* -X0031451Y0166593D02* -X0036426Y0166593D01* -X0037624Y0165395D02* -X0032649Y0165395D01* -X0028482Y0160601D02* -X0018168Y0160601D01* -X0018168Y0161799D02* -X0027283Y0161799D01* -X0026084Y0162998D02* -X0018168Y0162998D01* -X0018168Y0164196D02* -X0024886Y0164196D01* -X0024814Y0164268D02* -X0029814Y0159268D01* -X0030705Y0158377D01* -X0031208Y0158168D01* -X0028130Y0158168D01* -X0020807Y0158168D01* -X0019642Y0157686D01* -X0018751Y0156795D01* -X0018168Y0156212D01* -X0018168Y0204619D01* -X0020388Y0202400D01* -X0022100Y0202400D01* -X0022100Y0207100D01* -X0022900Y0207100D01* -X0022900Y0202400D01* -X0024331Y0202400D01* -X0024331Y0165433D01* -X0024814Y0164268D01* -X0024347Y0165395D02* -X0018168Y0165395D01* -X0018168Y0166593D02* -X0024331Y0166593D01* -X0024331Y0167792D02* -X0018168Y0167792D01* -X0018168Y0168990D02* -X0024331Y0168990D01* -X0024331Y0170189D02* -X0018168Y0170189D01* -X0018168Y0171387D02* -X0024331Y0171387D01* -X0024331Y0172586D02* -X0018168Y0172586D01* -X0018168Y0173784D02* -X0024331Y0173784D01* -X0024331Y0174983D02* -X0018168Y0174983D01* -X0018168Y0176181D02* -X0024331Y0176181D01* -X0024331Y0177380D02* -X0018168Y0177380D01* -X0018168Y0178578D02* -X0024331Y0178578D01* -X0024331Y0179777D02* -X0018168Y0179777D01* -X0018168Y0180975D02* -X0024331Y0180975D01* -X0024331Y0182174D02* -X0018168Y0182174D01* -X0018168Y0183372D02* -X0024331Y0183372D01* -X0024331Y0184571D02* -X0018168Y0184571D01* -X0018168Y0185769D02* -X0024331Y0185769D01* -X0024331Y0186968D02* -X0018168Y0186968D01* -X0018168Y0188166D02* -X0024331Y0188166D01* -X0024331Y0189365D02* -X0018168Y0189365D01* -X0018168Y0190563D02* -X0024331Y0190563D01* -X0024331Y0191762D02* -X0018168Y0191762D01* -X0018168Y0192960D02* -X0024331Y0192960D01* -X0024331Y0194159D02* -X0018168Y0194159D01* -X0018168Y0195357D02* -X0024331Y0195357D01* -X0024331Y0196556D02* -X0018168Y0196556D01* -X0018168Y0197754D02* -X0024331Y0197754D01* -X0024331Y0198953D02* -X0018168Y0198953D01* -X0018168Y0200151D02* -X0024331Y0200151D01* -X0024331Y0201350D02* -X0018168Y0201350D01* -X0018168Y0202548D02* -X0020239Y0202548D01* -X0019041Y0203747D02* -X0018168Y0203747D01* -X0022100Y0203747D02* -X0022900Y0203747D01* -X0022900Y0204945D02* -X0022100Y0204945D01* -X0022100Y0206144D02* -X0022900Y0206144D01* -X0022900Y0202548D02* -X0022100Y0202548D01* -X0032100Y0202548D02* -X0032900Y0202548D01* -X0032900Y0203747D02* -X0032100Y0203747D01* -X0032100Y0204945D02* -X0032900Y0204945D01* -X0032900Y0206144D02* -X0032100Y0206144D01* -X0040668Y0183372D02* -X0080141Y0183372D01* -X0079453Y0182174D02* -X0040668Y0182174D01* -X0040668Y0180975D02* -X0071725Y0180975D01* -X0070638Y0179777D02* -X0040668Y0179777D01* -X0040668Y0178578D02* -X0070551Y0178578D01* -X0070551Y0177380D02* -X0040668Y0177380D01* -X0040668Y0176181D02* -X0074410Y0176181D01* -X0074410Y0175650D02* -X0070551Y0175650D01* -X0070551Y0173047D01* -X0070680Y0172564D01* -X0070930Y0172131D01* -X0071284Y0171777D01* -X0071717Y0171527D01* -X0072201Y0171397D01* -X0074410Y0171397D01* -X0074410Y0175650D01* -X0074410Y0174983D02* -X0075610Y0174983D01* -X0075610Y0173784D02* -X0074410Y0173784D01* -X0074410Y0172586D02* -X0075610Y0172586D01* -X0078209Y0171387D02* -X0040668Y0171387D01* -X0040668Y0172586D02* -X0070674Y0172586D01* -X0070551Y0173784D02* -X0040668Y0173784D01* -X0040668Y0174983D02* -X0070551Y0174983D01* -X0074410Y0177380D02* -X0075610Y0177380D01* -X0075610Y0178578D02* -X0074410Y0178578D01* -X0074410Y0179777D02* -X0075610Y0179777D01* -X0075610Y0180975D02* -X0074410Y0180975D01* -X0083007Y0186968D02* -X0090301Y0186968D01* -X0090797Y0188166D02* -X0083443Y0188166D01* -X0083437Y0189365D02* -X0091800Y0189365D01* -X0093421Y0190563D02* -X0082986Y0190563D01* -X0120493Y0151012D02* -X0174552Y0151012D01* -X0193168Y0151012D02* -X0194552Y0151012D01* -X0193514Y0149814D02* -X0193168Y0149814D01* -X0193168Y0152211D02* -X0211553Y0152211D01* -X0210933Y0153409D02* -X0199563Y0153409D01* -X0201069Y0154608D02* -X0209734Y0154608D01* -X0209231Y0155806D02* -X0201743Y0155806D01* -X0202068Y0157005D02* -X0209231Y0157005D01* -X0209231Y0158203D02* -X0202068Y0158203D01* -X0195941Y0161799D02* -X0193168Y0161799D01* -X0194327Y0153409D02* -X0195437Y0153409D01* -X0200448Y0151012D02* -X0210355Y0151012D01* -X0209231Y0149814D02* -X0201486Y0149814D01* -X0201983Y0148615D02* -X0209231Y0148615D01* -X0209231Y0147417D02* -X0202068Y0147417D01* -X0201914Y0146218D02* -X0209231Y0146218D01* -X0209322Y0145020D02* -X0201418Y0145020D01* -X0200668Y0143821D02* -X0210521Y0143821D01* -X0211719Y0142623D02* -X0200668Y0142623D01* -X0200668Y0141424D02* -X0240926Y0141424D01* -X0240926Y0140226D02* -X0200668Y0140226D01* -X0200668Y0139027D02* -X0240926Y0139027D01* -X0240926Y0137829D02* -X0227049Y0137829D01* -X0228103Y0136630D02* -X0240976Y0136630D01* -X0241694Y0135432D02* -X0228473Y0135432D01* -X0225000Y0135432D02* -X0225000Y0135432D01* -X0225000Y0136630D02* -X0225000Y0136630D01* -X0225000Y0137829D02* -X0225000Y0137829D01* -X0222951Y0137829D02* -X0200668Y0137829D01* -X0200668Y0136630D02* -X0221897Y0136630D01* -X0221527Y0135432D02* -X0200668Y0135432D01* -X0200668Y0134233D02* -X0221594Y0134233D01* -X0222115Y0133035D02* -X0200668Y0133035D01* -X0194331Y0133035D02* -X0193426Y0133035D01* -X0194184Y0131836D02* -X0194331Y0131836D01* -X0194331Y0134233D02* -X0191718Y0134233D01* -X0200668Y0124645D02* -X0237235Y0124645D01* -X0236629Y0123447D02* -X0200668Y0123447D01* -X0200230Y0122248D02* -X0236509Y0122248D01* -X0236823Y0121050D02* -X0199094Y0121050D01* -X0197895Y0119851D02* -X0237712Y0119851D01* -X0240000Y0123447D02* -X0240000Y0123447D01* -X0240000Y0124645D02* -X0240000Y0124645D01* -X0250806Y0135432D02* -X0252944Y0135432D01* -X0247500Y0140000D02* -X0246250Y0140020D01* -X0240926Y0142623D02* -X0228281Y0142623D01* -X0229479Y0143821D02* -X0241147Y0143821D01* -X0242200Y0145020D02* -X0230678Y0145020D01* -X0221719Y0142623D02* -X0218281Y0142623D01* -X0219479Y0143821D02* -X0220521Y0143821D01* -X0225000Y0134233D02* -X0225000Y0134233D01* -X0225000Y0133035D02* -X0225000Y0133035D01* -X0223740Y0107500D02* -X0232500Y0107500D01* -X0235000Y0105000D01* -X0255157Y0105000D01* -X0255157Y0101850D02* -X0236437Y0101850D01* -X0266910Y0070712D02* -X0268110Y0070712D01* -X0268110Y0069514D02* -X0266910Y0069514D01* -X0266910Y0068315D02* -X0268110Y0068315D01* -X0213124Y0061124D02* -X0171268Y0061124D01* -X0163731Y0061124D02* -X0133396Y0061124D01* -X0133396Y0059400D02* -X0129537Y0059400D01* -X0129537Y0054950D01* -X0131746Y0054950D01* -X0132229Y0055080D01* -X0132663Y0055330D01* -X0133016Y0055684D01* -X0133267Y0056117D01* -X0133396Y0056600D01* -X0133396Y0059400D01* -X0133396Y0058727D02* -X0163731Y0058727D01* -X0163731Y0057529D02* -X0133396Y0057529D01* -X0133324Y0056330D02* -X0163731Y0056330D01* -X0163731Y0055132D02* -X0132319Y0055132D01* -X0129537Y0055132D02* -X0128337Y0055132D01* -X0128337Y0056330D02* -X0129537Y0056330D01* -X0129537Y0057529D02* -X0128337Y0057529D01* -X0128337Y0058727D02* -X0129537Y0058727D01* -X0129537Y0059926D02* -X0163731Y0059926D01* -X0163731Y0062323D02* -X0140227Y0062323D01* -X0143337Y0063521D02* -X0144537Y0063521D01* -X0144537Y0062450D02* -X0146746Y0062450D01* -X0147229Y0062580D01* -X0147663Y0062830D01* -X0148016Y0063184D01* -X0148267Y0063617D01* -X0148396Y0064100D01* -X0148396Y0066900D01* -X0144537Y0066900D01* -X0144537Y0062450D01* -X0144537Y0064720D02* -X0143337Y0064720D01* -X0143337Y0065918D02* -X0144537Y0065918D01* -X0144537Y0067117D02* -X0163731Y0067117D01* -X0163731Y0068315D02* -X0148396Y0068315D01* -X0148396Y0069514D02* -X0163731Y0069514D01* -X0163731Y0070712D02* -X0148396Y0070712D01* -X0148396Y0065918D02* -X0163731Y0065918D01* -X0163731Y0064720D02* -X0148396Y0064720D01* -X0148211Y0063521D02* -X0163731Y0063521D01* -X0163731Y0053933D02* -X0112558Y0053933D01* -X0112558Y0055132D02* -X0116590Y0055132D01* -X0115939Y0056330D02* -X0112558Y0056330D01* -X0112558Y0057529D02* -X0113286Y0057529D01* -X0115295Y0060000D02* -X0121063Y0060000D01* -X0122500Y0060000D01* -X0125536Y0055132D02* -X0125555Y0055132D01* -X0118760Y0047500D02* -X0113327Y0047500D01* -X0109390Y0051437D01* -X0109390Y0072559D01* -X0115295Y0072559D02* -X0115295Y0060000D01* -X0114998Y0052734D02* -X0112573Y0052734D01* -X0113772Y0051536D02* -X0113869Y0051536D01* -X0110802Y0045543D02* -X0110590Y0045543D01* -X0110590Y0044345D02* -X0112664Y0044345D01* -X0114001Y0043146D02* -X0110590Y0043146D01* -X0118712Y0034331D02* -X0124751Y0034331D01* -X0126831Y0032251D01* -X0126831Y0027881D01* -X0124612Y0030100D01* -X0122900Y0030100D01* -X0122900Y0025400D01* -X0122100Y0025400D01* -X0122100Y0030100D01* -X0120668Y0030100D01* -X0120668Y0031693D01* -X0120186Y0032858D01* -X0118712Y0034331D01* -X0119486Y0033558D02* -X0125524Y0033558D01* -X0126722Y0032360D02* -X0120392Y0032360D01* -X0120668Y0031161D02* -X0126831Y0031161D01* -X0126831Y0029963D02* -X0124750Y0029963D01* -X0125948Y0028764D02* -X0126831Y0028764D01* -X0122900Y0028764D02* -X0122100Y0028764D01* -X0122100Y0027566D02* -X0122900Y0027566D01* -X0122900Y0026367D02* -X0122100Y0026367D01* -X0122100Y0029963D02* -X0122900Y0029963D01* -X0113982Y0030100D02* -X0112251Y0031831D01* -X0108759Y0031831D01* -X0108679Y0031865D01* -X0110186Y0030358D01* -X0110321Y0030033D01* -X0110388Y0030100D01* -X0112100Y0030100D01* -X0112100Y0025400D01* -X0112900Y0025400D01* -X0112900Y0030100D01* -X0113982Y0030100D01* -X0112900Y0029963D02* -X0112100Y0029963D01* -X0112100Y0028764D02* -X0112900Y0028764D01* -X0112900Y0027566D02* -X0112100Y0027566D01* -X0112100Y0026367D02* -X0112900Y0026367D01* -X0112921Y0031161D02* -X0109383Y0031161D01* -X0094410Y0031161D02* -X0090668Y0031161D01* -X0090668Y0030100D02* -X0090668Y0042251D01* -X0093065Y0044647D01* -X0093468Y0044814D01* -X0094410Y0045756D01* -X0094410Y0030100D01* -X0092900Y0030100D01* -X0092900Y0025400D01* -X0092100Y0025400D01* -X0092100Y0030100D01* -X0090668Y0030100D01* -X0092100Y0029963D02* -X0092900Y0029963D01* -X0092900Y0028764D02* -X0092100Y0028764D01* -X0092100Y0027566D02* -X0092900Y0027566D01* -X0092900Y0026367D02* -X0092100Y0026367D01* -X0090668Y0032360D02* -X0094410Y0032360D01* -X0094410Y0033558D02* -X0090668Y0033558D01* -X0090668Y0034757D02* -X0094410Y0034757D01* -X0094410Y0035955D02* -X0090668Y0035955D01* -X0090668Y0037154D02* -X0094410Y0037154D01* -X0094410Y0038352D02* -X0090668Y0038352D01* -X0090668Y0039551D02* -X0094410Y0039551D01* -X0094410Y0040749D02* -X0090668Y0040749D01* -X0090668Y0041948D02* -X0094410Y0041948D01* -X0094410Y0043146D02* -X0091564Y0043146D01* -X0092763Y0044345D02* -X0094410Y0044345D01* -X0094410Y0045543D02* -X0094198Y0045543D01* -X0090008Y0050337D02* -X0085665Y0050337D01* -X0084466Y0049139D02* -X0088595Y0049139D01* -X0087397Y0047940D02* -X0067803Y0047940D01* -X0068064Y0055132D02* -X0075181Y0055132D01* -X0075271Y0055080D02* -X0075754Y0054950D01* -X0077963Y0054950D01* -X0077963Y0059400D01* -X0074104Y0059400D01* -X0074104Y0056600D01* -X0074233Y0056117D01* -X0074484Y0055684D01* -X0074837Y0055330D01* -X0075271Y0055080D01* -X0074176Y0056330D02* -X0068287Y0056330D01* -X0068287Y0057529D02* -X0074104Y0057529D01* -X0074104Y0058727D02* -X0068287Y0058727D01* -X0060769Y0063521D02* -X0030743Y0063521D01* -X0030668Y0064720D02* -X0060769Y0064720D01* -X0060769Y0065918D02* -X0030668Y0065918D01* -X0031942Y0062323D02* -X0059960Y0062323D01* -X0067105Y0064720D02* -X0070378Y0064720D01* -X0069377Y0065918D02* -X0067105Y0065918D01* -X0067815Y0067117D02* -X0069017Y0067117D01* -X0069103Y0068315D02* -X0068847Y0068315D01* -X0069065Y0069514D02* -X0069647Y0069514D01* -X0069065Y0070712D02* -X0071134Y0070712D01* -X0075353Y0069514D02* -X0076854Y0069514D01* -X0075897Y0068315D02* -X0085395Y0068315D01* -X0088505Y0067117D02* -X0075983Y0067117D01* -X0075623Y0065918D02* -X0088505Y0065918D01* -X0092143Y0059926D02* -X0092442Y0059926D01* -X0092442Y0058727D02* -X0091565Y0058727D01* -X0091565Y0057529D02* -X0092442Y0057529D01* -X0092442Y0056330D02* -X0091561Y0056330D01* -X0090910Y0055132D02* -X0092442Y0055132D01* -X0092442Y0053933D02* -X0089180Y0053933D01* -X0088062Y0052734D02* -X0092427Y0052734D01* -X0091228Y0051536D02* -X0086863Y0051536D01* -X0086198Y0046742D02* -X0002568Y0046742D01* -X0002568Y0045543D02* -X0084999Y0045543D01* -X0084394Y0044345D02* -X0002568Y0044345D01* -X0002568Y0043146D02* -X0084331Y0043146D01* -X0084331Y0041948D02* -X0002568Y0041948D01* -X0002568Y0040749D02* -X0084331Y0040749D01* -X0084331Y0039551D02* -X0002568Y0039551D01* -X0002568Y0038352D02* -X0084331Y0038352D01* -X0084331Y0037154D02* -X0002568Y0037154D01* -X0002568Y0035955D02* -X0084331Y0035955D01* -X0084331Y0034757D02* -X0002568Y0034757D01* -X0002568Y0033558D02* -X0084331Y0033558D01* -X0084331Y0032360D02* -X0002568Y0032360D01* -X0002568Y0031161D02* -X0084331Y0031161D01* -X0082900Y0029963D02* -X0082100Y0029963D01* -X0082100Y0028764D02* -X0082900Y0028764D01* -X0082900Y0027566D02* -X0082100Y0027566D01* -X0082100Y0026367D02* -X0082900Y0026367D01* -X0082100Y0025169D02* -X0002568Y0025169D01* -X0002568Y0026367D02* -X0077400Y0026367D01* -X0077853Y0027566D02* -X0002568Y0027566D01* -X0002568Y0028764D02* -X0079052Y0028764D01* -X0080250Y0029963D02* -X0002568Y0029963D01* -X0002568Y0023970D02* -X0077400Y0023970D01* -X0077516Y0022772D02* -X0002568Y0022772D01* -X0002568Y0021573D02* -X0078714Y0021573D01* -X0079717Y0020375D02* -X0002568Y0020375D01* -X0002568Y0019176D02* -X0078518Y0019176D01* -X0077320Y0017978D02* -X0002568Y0017978D01* -X0002568Y0016779D02* -X0076731Y0016779D01* -X0076731Y0015581D02* -X0002568Y0015581D01* -X0002568Y0014382D02* -X0076731Y0014382D01* -X0076731Y0013184D02* -X0002568Y0013184D01* -X0002568Y0011985D02* -X0077357Y0011985D01* -X0078555Y0010787D02* -X0002568Y0010787D01* -X0002568Y0009588D02* -X0079754Y0009588D01* -X0079163Y0055132D02* -X0077963Y0055132D01* -X0077963Y0056330D02* -X0079163Y0056330D01* -X0079163Y0057529D02* -X0077963Y0057529D01* -X0077963Y0058727D02* -X0079163Y0058727D01* -X0079163Y0061124D02* -X0077963Y0061124D01* -X0077963Y0062323D02* -X0079163Y0062323D01* -X0079163Y0063521D02* -X0077963Y0063521D01* -X0077963Y0064720D02* -X0079163Y0064720D01* -X0074923Y0064720D02* -X0074622Y0064720D01* -X0100000Y0086142D02* -X0117264Y0086142D01* -X0117264Y0072559D01* -X0117264Y0067500D01* -X0127500Y0067500D01* -X0136063Y0067500D01* -X0137036Y0050337D02* -X0163731Y0050337D01* -X0163778Y0049139D02* -X0138099Y0049139D01* -X0138471Y0047940D02* -X0164274Y0047940D01* -X0165518Y0046742D02* -X0138408Y0046742D01* -X0129872Y0088690D02* -X0194782Y0088690D01* -X0193583Y0089888D02* -X0129872Y0089888D01* -X0124941Y0097953D02* -X0190000Y0097953D01* -X0162500Y0122500D02* -X0161240Y0122500D01* -X0088505Y0130638D02* -X0088441Y0130638D01* -X0088505Y0131836D02* -X0087614Y0131836D01* -X0088218Y0133035D02* -X0088505Y0133035D01* -X0088505Y0134233D02* -X0088218Y0134233D01* -X0088218Y0135432D02* -X0088505Y0135432D01* -X0088505Y0136630D02* -X0088218Y0136630D01* -X0088218Y0137829D02* -X0088505Y0137829D01* -X0088505Y0139027D02* -X0088218Y0139027D01* -X0088505Y0140226D02* -X0087678Y0140226D01* -X0087550Y0141424D02* -X0088505Y0141424D01* -X0088505Y0142623D02* -X0087550Y0142623D01* -X0082500Y0136063D02* -X0082500Y0127500D01* -X0087736Y0127500D01* -X0087736Y0117441D01* -X0087500Y0117500D02* -X0087500Y0110000D01* -X0080059Y0109764D02* -X0075000Y0109764D01* -X0072500Y0112264D01* -X0072500Y0116063D01* -X0066782Y0116256D02* -X0065538Y0116256D01* -X0066737Y0115057D02* -X0066782Y0115057D01* -X0066782Y0117454D02* -X0063974Y0117454D01* -X0063168Y0118653D02* -X0066782Y0118653D01* -X0067079Y0119851D02* -X0063168Y0119851D01* -X0063944Y0121050D02* -X0067471Y0121050D01* -X0067450Y0122248D02* -X0064065Y0122248D01* -X0064065Y0123447D02* -X0071900Y0123447D01* -X0071900Y0124537D02* -X0067450Y0124537D01* -X0067450Y0126746D01* -X0067580Y0127229D01* -X0067830Y0127663D01* -X0068184Y0128016D01* -X0068617Y0128267D01* -X0069100Y0128396D01* -X0071900Y0128396D01* -X0071900Y0124537D01* -X0071900Y0124645D02* -X0073100Y0124645D01* -X0073100Y0123447D02* -X0084568Y0123447D01* -X0084568Y0122248D02* -X0077550Y0122248D01* -X0077529Y0121050D02* -X0077590Y0121050D01* -X0077550Y0124645D02* -X0081112Y0124645D01* -X0079756Y0125844D02* -X0077550Y0125844D01* -X0077470Y0127042D02* -X0079331Y0127042D01* -X0079331Y0128241D02* -X0076428Y0128241D01* -X0079331Y0129439D02* -X0063742Y0129439D01* -X0064065Y0128241D02* -X0068572Y0128241D01* -X0067530Y0127042D02* -X0064065Y0127042D01* -X0064065Y0125844D02* -X0067450Y0125844D01* -X0067450Y0124645D02* -X0064065Y0124645D01* -X0060000Y0125000D02* -X0060000Y0113750D01* -X0060000Y0112500D01* -X0060000Y0113750D02* -X0063563Y0113750D01* -X0075423Y0101890D01* -X0080059Y0101890D01* -X0080059Y0099921D02* -X0050669Y0099921D01* -X0050669Y0106654D01* -X0040000Y0106654D01* -X0040000Y0106063D01* -X0045141Y0110263D02* -X0045650Y0110263D01* -X0046013Y0111462D02* -X0045050Y0111462D01* -X0045050Y0112660D02* -X0046013Y0112660D01* -X0046831Y0113859D02* -X0040600Y0113859D01* -X0040000Y0113937D02* -X0040000Y0113346D01* -X0050669Y0113346D01* -X0050000Y0112500D02* -X0050000Y0125000D01* -X0046831Y0124645D02* -X0043488Y0124645D01* -X0043491Y0124656D02* -X0043491Y0125000D01* -X0043491Y0125344D01* -X0043356Y0126018D01* -X0043093Y0126653D01* -X0042711Y0127225D01* -X0042225Y0127711D01* -X0041653Y0128093D01* -X0041018Y0128356D01* -X0040344Y0128491D01* -X0040000Y0128491D01* -X0039656Y0128491D01* -X0038982Y0128356D01* -X0038347Y0128093D01* -X0037775Y0127711D01* -X0037289Y0127225D01* -X0036907Y0126653D01* -X0036644Y0126018D01* -X0036509Y0125344D01* -X0036509Y0125000D01* -X0036509Y0124656D01* -X0036644Y0123982D01* -X0036907Y0123347D01* -X0037289Y0122775D01* -X0037775Y0122289D01* -X0038347Y0121907D01* -X0038982Y0121644D01* -X0039656Y0121509D01* -X0040000Y0121509D01* -X0040344Y0121509D01* -X0041018Y0121644D01* -X0041653Y0121907D01* -X0042225Y0122289D01* -X0042711Y0122775D01* -X0043093Y0123347D01* -X0043356Y0123982D01* -X0043491Y0124656D01* -X0043491Y0125000D02* -X0040000Y0125000D01* -X0043491Y0125000D01* -X0043391Y0125844D02* -X0046604Y0125844D01* -X0046604Y0127042D02* -X0042833Y0127042D01* -X0041297Y0128241D02* -X0046604Y0128241D01* -X0047107Y0129439D02* -X0020668Y0129439D01* -X0020668Y0128241D02* -X0038703Y0128241D01* -X0040000Y0128241D02* -X0040000Y0128241D01* -X0040000Y0128491D02* -X0040000Y0125000D01* -X0040000Y0125000D01* -X0040000Y0125000D01* -X0040000Y0128491D01* -X0040000Y0127042D02* -X0040000Y0127042D01* -X0040000Y0125844D02* -X0040000Y0125844D01* -X0040000Y0125000D02* -X0040000Y0125000D01* -X0040000Y0121509D01* -X0040000Y0125000D01* -X0040000Y0125000D01* -X0036509Y0125000D01* -X0040000Y0125000D01* -X0040000Y0124645D02* -X0040000Y0124645D01* -X0040000Y0123447D02* -X0040000Y0123447D01* -X0040000Y0122248D02* -X0040000Y0122248D01* -X0042164Y0122248D02* -X0046604Y0122248D01* -X0046604Y0123447D02* -X0043135Y0123447D01* -X0046772Y0121050D02* -X0020668Y0121050D01* -X0020668Y0122248D02* -X0037836Y0122248D01* -X0036865Y0123447D02* -X0020668Y0123447D01* -X0020668Y0124645D02* -X0036512Y0124645D01* -X0036609Y0125844D02* -X0020668Y0125844D01* -X0020668Y0127042D02* -X0037167Y0127042D01* -X0036600Y0118396D02* -X0036117Y0118267D01* -X0035684Y0118016D01* -X0035330Y0117663D01* -X0035080Y0117229D01* -X0034950Y0116746D01* -X0034950Y0114537D01* -X0039400Y0114537D01* -X0039400Y0118396D01* -X0036600Y0118396D01* -X0035210Y0117454D02* -X0020668Y0117454D01* -X0020668Y0116256D02* -X0034950Y0116256D01* -X0034950Y0115057D02* -X0020668Y0115057D01* -X0020668Y0113859D02* -X0039400Y0113859D01* -X0039400Y0115057D02* -X0040600Y0115057D01* -X0040600Y0116256D02* -X0039400Y0116256D01* -X0039400Y0117454D02* -X0040600Y0117454D01* -X0044790Y0117454D02* -X0046831Y0117454D01* -X0046831Y0118653D02* -X0020668Y0118653D01* -X0020668Y0119851D02* -X0046831Y0119851D01* -X0046093Y0116256D02* -X0045050Y0116256D01* -X0045050Y0115057D02* -X0046013Y0115057D01* -X0034950Y0112660D02* -X0020668Y0112660D01* -X0020668Y0111462D02* -X0034950Y0111462D01* -X0034859Y0110263D02* -X0020668Y0110263D01* -X0020668Y0109065D02* -X0034282Y0109065D01* -X0034282Y0107866D02* -X0020668Y0107866D01* -X0020668Y0106668D02* -X0034282Y0106668D01* -X0034282Y0105469D02* -X0020668Y0105469D01* -X0020668Y0104270D02* -X0034282Y0104270D01* -X0034282Y0103072D02* -X0020668Y0103072D01* -X0020668Y0101873D02* -X0034848Y0101873D01* -X0045152Y0101873D02* -X0047039Y0101873D01* -X0047501Y0100675D02* -X0020668Y0100675D01* -X0020668Y0099476D02* -X0047501Y0099476D01* -X0047920Y0098278D02* -X0020668Y0098278D01* -X0021339Y0097079D02* -X0049250Y0097079D01* -X0060000Y0105000D02* -X0066250Y0105000D01* -X0060000Y0105000D02* -X0060000Y0107500D01* -X0065693Y0095881D02* -X0022537Y0095881D01* -X0021979Y0077903D02* -X0002568Y0077903D01* -X0002568Y0076705D02* -X0021979Y0076705D01* -X0022047Y0075506D02* -X0002568Y0075506D01* -X0002568Y0074308D02* -X0021979Y0074308D01* -X0021979Y0073109D02* -X0002568Y0073109D01* -X0002568Y0071911D02* -X0021979Y0071911D01* -X0066063Y0092500D02* -X0076516Y0097953D01* -X0080059Y0097953D01* -X0073100Y0125844D02* -X0071900Y0125844D01* -X0071900Y0127042D02* -X0073100Y0127042D01* -X0073100Y0128241D02* -X0071900Y0128241D01* -X0077386Y0131836D02* -X0020668Y0131836D01* -X0020668Y0130638D02* -X0055673Y0130638D01* -X0051663Y0129439D02* -X0050463Y0129439D01* -X0050463Y0128241D02* -X0051663Y0128241D01* -X0062201Y0130638D02* -X0079331Y0130638D01* -X0031124Y0158203D02* -X0018168Y0158203D01* -X0018168Y0157005D02* -X0018961Y0157005D01* -X0018168Y0159402D02* -X0029680Y0159402D01* -X0021782Y0149814D02* -X0020732Y0149814D01* -X0020668Y0148615D02* -X0021782Y0148615D01* -X0021782Y0147417D02* -X0020668Y0147417D01* -X0020668Y0146218D02* -X0021782Y0146218D01* -X0022133Y0145020D02* -X0020668Y0145020D01* -X0020668Y0143821D02* -X0022450Y0143821D01* -X0022450Y0142623D02* -X0020668Y0142623D01* -X0026900Y0139027D02* -X0028100Y0139027D01* -X0028100Y0137829D02* -X0026900Y0137829D01* -X0026900Y0136630D02* -X0028100Y0136630D01* -X0210011Y0059926D02* -X0213124Y0059926D01* -X0213249Y0058727D02* -X0210770Y0058727D01* -X0283559Y0147417D02* -X0286132Y0147417D01* -X0286132Y0148615D02* -X0285235Y0148615D01* -X0286116Y0149814D02* -X0286132Y0149814D01* -X0285972Y0166593D02* -X0286132Y0166593D01* -X0286132Y0198953D02* -X0268797Y0198953D01* -X0269085Y0200151D02* -X0286132Y0200151D01* -X0269295Y0213335D02* -X0268166Y0213335D01* -X0275000Y0216437D02* -X0275000Y0217874D01* -X0261369Y0201350D02* -X0260403Y0201350D01* -X0260403Y0200151D02* -X0261369Y0200151D01* -X0261369Y0198953D02* -X0260403Y0198953D01* -X0221516Y0182174D02* -X0218484Y0182174D01* -X0219683Y0180975D02* -X0220317Y0180975D01* -X0240565Y0164196D02* -X0242481Y0164196D01* -X0242481Y0162998D02* -X0240960Y0162998D01* -X0240919Y0161799D02* -X0242481Y0161799D01* -X0242481Y0160601D02* -X0240429Y0160601D01* -X0241527Y0159402D02* -X0239142Y0159402D01* -D32* -X0246250Y0154980D02* -X0246250Y0177500D01* -X0262500Y0162500D02* -X0257500Y0157500D01* -X0257500Y0154980D01* -X0262500Y0162500D02* -X0277500Y0162500D01* -X0262500Y0140000D02* -X0257500Y0140000D01* -X0247500Y0140000D01* -X0262500Y0140000D02* -X0267500Y0135000D01* -X0267500Y0085000D01* -X0262500Y0080000D01* -X0240000Y0080000D01* -X0237500Y0080000D01* -X0237500Y0077500D01* -X0242500Y0077500D01* -X0242500Y0072500D01* -X0237500Y0077500D02* -X0222500Y0077500D01* -X0222500Y0073701D01* -X0228402Y0062201D02* -X0228402Y0060000D01* -X0244094Y0060000D01* -X0245000Y0060000D01* -X0245000Y0050000D01* -X0167500Y0050000D01* -X0167500Y0075000D01* -X0127500Y0075000D01* -X0245000Y0050000D02* -X0266250Y0050000D01* -X0267500Y0047500D01* -X0255906Y0060000D02* -X0255906Y0072500D01* -X0255000Y0072500D02* -X0267500Y0072500D01* -D33* -X0267500Y0075000D01* -X0272500Y0080000D01* -X0275000Y0080000D01* -X0267510Y0072500D02* -X0267500Y0072500D01* -X0244094Y0072500D02* -X0242500Y0072500D01* -X0240000Y0080000D02* -X0240000Y0081270D01* -X0237500Y0094980D02* -X0237500Y0095000D01* -X0237500Y0094980D02* -X0240000Y0096230D01* -X0237500Y0098701D02* -X0255157Y0098701D01* -X0255157Y0111299D02* -X0240000Y0111299D01* -X0222500Y0073701D02* -X0222500Y0063201D01* -X0267500Y0047500D02* -X0267500Y0037500D01* -X0277500Y0037500D01* -X0277500Y0027500D02* -X0267500Y0027500D01* -X0267500Y0017500D01* -X0277500Y0017500D01* -X0277500Y0047500D02* -X0267500Y0047500D01* -X0127500Y0067500D02* -X0127500Y0075000D01* -D34* -X0135000Y0047500D03* -X0072500Y0067500D03* -X0058750Y0081250D03* -X0040000Y0125000D03* -X0072500Y0137500D03* -X0080000Y0188750D03* -X0152500Y0175000D03* -X0170000Y0195000D03* -X0212500Y0207500D03* -X0237500Y0162500D03* -X0225000Y0135000D03* -X0240000Y0122500D03* -X0277500Y0137500D03* -X0275000Y0080000D03* -X0255000Y0032500D03* -X0207500Y0057500D03* -X0151250Y0112500D03* -X0150000Y0131250D03* -D35* -X0177500Y0147500D03* -X0197500Y0147500D03* -X0197500Y0157500D03* -X0190000Y0130000D03* -X0246250Y0177500D03* -X0082500Y0155000D03* -X0066250Y0105000D03* -M02* diff --git a/tests/gerber_files/detector_contour.gbr b/tests/gerber_files/detector_contour.gbr deleted file mode 100644 index 93adef01..00000000 --- a/tests/gerber_files/detector_contour.gbr +++ /dev/null @@ -1,26 +0,0 @@ -G04 MADE WITH FRITZING* -G04 WWW.FRITZING.ORG* -G04 DOUBLE SIDED* -G04 HOLES PLATED* -G04 CONTOUR ON CENTER OF CONTOUR VECTOR* -%ASAXBY*% -%FSLAX23Y23*% -%MOIN*% -%OFA0B0*% -%SFA1.0B1.0*% -%ADD10R,1.771650X1.181100*% -%ADD11C,0.008000*% -%ADD10C,0.008*% -%LNCONTOUR*% -G90* -G70* -G54D10* -G54D11* -X4Y1177D02* -X1768Y1177D01* -X1768Y4D01* -X4Y4D01* -X4Y1177D01* -D02* -G04 End of contour* -M02* \ No newline at end of file diff --git a/tests/gerber_files/detector_copper_bottom.gbr b/tests/gerber_files/detector_copper_bottom.gbr deleted file mode 100644 index d3bca481..00000000 --- a/tests/gerber_files/detector_copper_bottom.gbr +++ /dev/null @@ -1,2146 +0,0 @@ -G04 MADE WITH FRITZING* -G04 WWW.FRITZING.ORG* -G04 DOUBLE SIDED* -G04 HOLES PLATED* -G04 CONTOUR ON CENTER OF CONTOUR VECTOR* -%ASAXBY*% -%FSLAX23Y23*% -%MOIN*% -%OFA0B0*% -%SFA1.0B1.0*% -%ADD10C,0.075000*% -%ADD11C,0.099055*% -%ADD12C,0.078740*% -%ADD13R,0.075000X0.075000*% -%ADD14C,0.048000*% -%ADD15C,0.020000*% -%ADD16R,0.001000X0.001000*% -%LNCOPPER0*% -G90* -G70* -G54D10* -X1149Y872D03* -X1349Y872D03* -X749Y722D03* -X749Y522D03* -X1149Y522D03* -X1449Y522D03* -X1149Y422D03* -X1449Y422D03* -X1149Y322D03* -X1449Y322D03* -X1149Y222D03* -X1449Y222D03* -X949Y472D03* -X949Y72D03* -G54D11* -X749Y972D03* -X599Y972D03* -X349Y322D03* -X349Y472D03* -X349Y672D03* -X349Y822D03* -G54D10* -X699Y122D03* -X699Y322D03* -G54D12* -X699Y222D03* -X949Y972D03* -X749Y622D03* -X1049Y222D03* -X1249Y872D03* -G54D13* -X1149Y872D03* -X1149Y522D03* -G54D14* -X949Y373D02* -X949Y433D01* -D02* -X999Y323D02* -X949Y373D01* -D02* -X1109Y322D02* -X999Y323D01* -D02* -X499Y873D02* -X1109Y872D01* -D02* -X1299Y73D02* -X989Y72D01* -D02* -X1399Y322D02* -X1349Y272D01* -D02* -X1349Y272D02* -X1349Y122D01* -D02* -X1349Y122D02* -X1299Y73D01* -D02* -X1409Y322D02* -X1399Y322D01* -D02* -X909Y72D02* -X749Y73D01* -D02* -X749Y73D02* -X727Y94D01* -D02* -X649Y522D02* -X709Y522D01* -D02* -X599Y473D02* -X649Y522D01* -D02* -X401Y472D02* -X599Y473D01* -D02* -X789Y522D02* -X899Y522D01* -D02* -X709Y722D02* -X599Y722D01* -D02* -X599Y722D02* -X549Y673D01* -D02* -X549Y673D02* -X401Y672D01* -D02* -X1149Y562D02* -X1149Y833D01* -D02* -X499Y972D02* -X499Y873D01* -D02* -X547Y972D02* -X499Y972D01* -D02* -X699Y283D02* -X699Y260D01* -D02* -X749Y562D02* -X749Y584D01* -D02* -X499Y873D02* -X499Y972D01* -D02* -X499Y972D02* -X547Y972D01* -D02* -X401Y823D02* -X449Y823D01* -D02* -X899Y522D02* -X921Y500D01* -D02* -X1309Y872D02* -X1287Y872D01* -D02* -X449Y823D02* -X499Y873D01* -D02* -X1349Y422D02* -X1349Y833D01* -D02* -X1189Y422D02* -X1349Y422D01* -D02* -X1399Y322D02* -X1409Y322D01* -D02* -X1349Y372D02* -X1399Y322D01* -D02* -X1349Y422D02* -X1349Y372D01* -D02* -X1189Y422D02* -X1349Y422D01* -D02* -X801Y972D02* -X911Y972D01* -D02* -X1109Y222D02* -X1087Y222D01* -D02* -X401Y322D02* -X659Y322D01* -D02* -X1399Y972D02* -X987Y972D01* -D02* -X1449Y923D02* -X1399Y972D01* -D02* -X1449Y562D02* -X1449Y923D01* -G54D15* -X776Y695D02* -X721Y695D01* -X721Y750D01* -X776Y750D01* -X776Y695D01* -D02* -X671Y150D02* -X726Y150D01* -X726Y95D01* -X671Y95D01* -X671Y150D01* -D02* -G54D16* -X766Y1112D02* -X769Y1112D01* -X764Y1111D02* -X771Y1111D01* -X763Y1110D02* -X772Y1110D01* -X762Y1109D02* -X772Y1109D01* -X762Y1108D02* -X773Y1108D01* -X762Y1107D02* -X773Y1107D01* -X762Y1106D02* -X773Y1106D01* -X762Y1105D02* -X773Y1105D01* -X762Y1104D02* -X773Y1104D01* -X762Y1103D02* -X773Y1103D01* -X762Y1102D02* -X773Y1102D01* -X762Y1101D02* -X773Y1101D01* -X762Y1100D02* -X773Y1100D01* -X762Y1099D02* -X773Y1099D01* -X762Y1098D02* -X773Y1098D01* -X762Y1097D02* -X773Y1097D01* -X762Y1096D02* -X773Y1096D01* -X762Y1095D02* -X773Y1095D01* -X762Y1094D02* -X773Y1094D01* -X762Y1093D02* -X773Y1093D01* -X762Y1092D02* -X773Y1092D01* -X762Y1091D02* -X773Y1091D01* -X762Y1090D02* -X773Y1090D01* -X762Y1089D02* -X773Y1089D01* -X566Y1088D02* -X618Y1088D01* -X741Y1088D02* -X793Y1088D01* -X565Y1087D02* -X620Y1087D01* -X740Y1087D02* -X795Y1087D01* -X564Y1086D02* -X621Y1086D01* -X739Y1086D02* -X796Y1086D01* -X563Y1085D02* -X621Y1085D01* -X738Y1085D02* -X796Y1085D01* -X563Y1084D02* -X622Y1084D01* -X738Y1084D02* -X796Y1084D01* -X563Y1083D02* -X622Y1083D01* -X738Y1083D02* -X796Y1083D01* -X563Y1082D02* -X622Y1082D01* -X738Y1082D02* -X796Y1082D01* -X563Y1081D02* -X622Y1081D01* -X738Y1081D02* -X796Y1081D01* -X563Y1080D02* -X622Y1080D01* -X738Y1080D02* -X796Y1080D01* -X563Y1079D02* -X622Y1079D01* -X739Y1079D02* -X795Y1079D01* -X563Y1078D02* -X622Y1078D01* -X739Y1078D02* -X795Y1078D01* -X563Y1077D02* -X622Y1077D01* -X741Y1077D02* -X794Y1077D01* -X563Y1076D02* -X622Y1076D01* -X762Y1076D02* -X773Y1076D01* -X563Y1075D02* -X621Y1075D01* -X762Y1075D02* -X773Y1075D01* -X563Y1074D02* -X621Y1074D01* -X762Y1074D02* -X773Y1074D01* -X564Y1073D02* -X620Y1073D01* -X762Y1073D02* -X773Y1073D01* -X565Y1072D02* -X619Y1072D01* -X762Y1072D02* -X773Y1072D01* -X569Y1071D02* -X615Y1071D01* -X762Y1071D02* -X773Y1071D01* -X762Y1070D02* -X773Y1070D01* -X762Y1069D02* -X773Y1069D01* -X762Y1068D02* -X773Y1068D01* -X762Y1067D02* -X773Y1067D01* -X762Y1066D02* -X773Y1066D01* -X762Y1065D02* -X773Y1065D01* -X762Y1064D02* -X773Y1064D01* -X762Y1063D02* -X773Y1063D01* -X762Y1062D02* -X773Y1062D01* -X762Y1061D02* -X773Y1061D01* -X762Y1060D02* -X773Y1060D01* -X762Y1059D02* -X773Y1059D01* -X762Y1058D02* -X773Y1058D01* -X762Y1057D02* -X773Y1057D01* -X762Y1056D02* -X773Y1056D01* -X763Y1055D02* -X772Y1055D01* -X763Y1054D02* -X771Y1054D01* -X765Y1053D02* -X770Y1053D01* -X1661Y878D02* -X1697Y878D01* -X1658Y877D02* -X1698Y877D01* -X1656Y876D02* -X1700Y876D01* -X1653Y875D02* -X1701Y875D01* -X1651Y874D02* -X1701Y874D01* -X1648Y873D02* -X1702Y873D01* -X1645Y872D02* -X1702Y872D01* -X1643Y871D02* -X1702Y871D01* -X1640Y870D02* -X1702Y870D01* -X1638Y869D02* -X1703Y869D01* -X1635Y868D02* -X1702Y868D01* -X1633Y867D02* -X1702Y867D01* -X1630Y866D02* -X1702Y866D01* -X1627Y865D02* -X1701Y865D01* -X1625Y864D02* -X1701Y864D01* -X1622Y863D02* -X1700Y863D01* -X1620Y862D02* -X1699Y862D01* -X1617Y861D02* -X1697Y861D01* -X1615Y860D02* -X1664Y860D01* -X1612Y859D02* -X1661Y859D01* -X1609Y858D02* -X1659Y858D01* -X1607Y857D02* -X1656Y857D01* -X1604Y856D02* -X1653Y856D01* -X1602Y855D02* -X1651Y855D01* -X1599Y854D02* -X1648Y854D01* -X1597Y853D02* -X1646Y853D01* -X1594Y852D02* -X1643Y852D01* -X1592Y851D02* -X1641Y851D01* -X1589Y850D02* -X1638Y850D01* -X1586Y849D02* -X1635Y849D01* -X1584Y848D02* -X1633Y848D01* -X1581Y847D02* -X1630Y847D01* -X1579Y846D02* -X1628Y846D01* -X1576Y845D02* -X1625Y845D01* -X1574Y844D02* -X1623Y844D01* -X1571Y843D02* -X1620Y843D01* -X1569Y842D02* -X1618Y842D01* -X1567Y841D02* -X1615Y841D01* -X1566Y840D02* -X1612Y840D01* -X1565Y839D02* -X1610Y839D01* -X1564Y838D02* -X1607Y838D01* -X1564Y837D02* -X1605Y837D01* -X1563Y836D02* -X1602Y836D01* -X1563Y835D02* -X1600Y835D01* -X1563Y834D02* -X1597Y834D01* -X1563Y833D02* -X1599Y833D01* -X1563Y832D02* -X1601Y832D01* -X1564Y831D02* -X1604Y831D01* -X1564Y830D02* -X1606Y830D01* -X1564Y829D02* -X1609Y829D01* -X1565Y828D02* -X1611Y828D01* -X1566Y827D02* -X1614Y827D01* -X1567Y826D02* -X1616Y826D01* -X1569Y825D02* -X1619Y825D01* -X1572Y824D02* -X1622Y824D01* -X1574Y823D02* -X1624Y823D01* -X1577Y822D02* -X1627Y822D01* -X1580Y821D02* -X1629Y821D01* -X1582Y820D02* -X1632Y820D01* -X1585Y819D02* -X1634Y819D01* -X1587Y818D02* -X1637Y818D01* -X1590Y817D02* -X1639Y817D01* -X1592Y816D02* -X1642Y816D01* -X1595Y815D02* -X1645Y815D01* -X1598Y814D02* -X1647Y814D01* -X1600Y813D02* -X1650Y813D01* -X1603Y812D02* -X1652Y812D01* -X1605Y811D02* -X1655Y811D01* -X1608Y810D02* -X1657Y810D01* -X1610Y809D02* -X1660Y809D01* -X1613Y808D02* -X1662Y808D01* -X1616Y807D02* -X1695Y807D01* -X1618Y806D02* -X1698Y806D01* -X1621Y805D02* -X1699Y805D01* -X1623Y804D02* -X1700Y804D01* -X1626Y803D02* -X1701Y803D01* -X1628Y802D02* -X1702Y802D01* -X1631Y801D02* -X1702Y801D01* -X1634Y800D02* -X1702Y800D01* -X1636Y799D02* -X1702Y799D01* -X1639Y798D02* -X1703Y798D01* -X1641Y797D02* -X1702Y797D01* -X1644Y796D02* -X1702Y796D01* -X1646Y795D02* -X1702Y795D01* -X1649Y794D02* -X1702Y794D01* -X1652Y793D02* -X1701Y793D01* -X1654Y792D02* -X1700Y792D01* -X1657Y791D02* -X1699Y791D01* -X1659Y790D02* -X1698Y790D01* -X1662Y789D02* -X1694Y789D01* -X191Y786D02* -X194Y786D01* -X106Y785D02* -X117Y785D01* -X189Y785D02* -X198Y785D01* -X104Y784D02* -X119Y784D01* -X187Y784D02* -X200Y784D01* -X102Y783D02* -X121Y783D01* -X186Y783D02* -X202Y783D01* -X101Y782D02* -X122Y782D01* -X186Y782D02* -X204Y782D01* -X100Y781D02* -X123Y781D01* -X185Y781D02* -X205Y781D01* -X99Y780D02* -X125Y780D01* -X185Y780D02* -X206Y780D01* -X98Y779D02* -X126Y779D01* -X185Y779D02* -X207Y779D01* -X97Y778D02* -X127Y778D01* -X185Y778D02* -X208Y778D01* -X97Y777D02* -X128Y777D01* -X185Y777D02* -X208Y777D01* -X96Y776D02* -X130Y776D01* -X185Y776D02* -X209Y776D01* -X96Y775D02* -X131Y775D01* -X186Y775D02* -X210Y775D01* -X96Y774D02* -X132Y774D01* -X186Y774D02* -X210Y774D01* -X95Y773D02* -X134Y773D01* -X187Y773D02* -X211Y773D01* -X95Y772D02* -X135Y772D01* -X188Y772D02* -X211Y772D01* -X95Y771D02* -X136Y771D01* -X191Y771D02* -X211Y771D01* -X95Y770D02* -X109Y770D01* -X113Y770D02* -X137Y770D01* -X195Y770D02* -X211Y770D01* -X95Y769D02* -X109Y769D01* -X114Y769D02* -X139Y769D01* -X196Y769D02* -X212Y769D01* -X95Y768D02* -X109Y768D01* -X116Y768D02* -X140Y768D01* -X197Y768D02* -X212Y768D01* -X95Y767D02* -X109Y767D01* -X117Y767D02* -X141Y767D01* -X197Y767D02* -X212Y767D01* -X95Y766D02* -X109Y766D01* -X118Y766D02* -X143Y766D01* -X198Y766D02* -X212Y766D01* -X95Y765D02* -X109Y765D01* -X120Y765D02* -X144Y765D01* -X198Y765D02* -X212Y765D01* -X95Y764D02* -X109Y764D01* -X121Y764D02* -X145Y764D01* -X198Y764D02* -X212Y764D01* -X95Y763D02* -X109Y763D01* -X122Y763D02* -X146Y763D01* -X198Y763D02* -X212Y763D01* -X95Y762D02* -X109Y762D01* -X123Y762D02* -X148Y762D01* -X198Y762D02* -X212Y762D01* -X95Y761D02* -X109Y761D01* -X125Y761D02* -X149Y761D01* -X198Y761D02* -X212Y761D01* -X95Y760D02* -X109Y760D01* -X126Y760D02* -X150Y760D01* -X198Y760D02* -X212Y760D01* -X95Y759D02* -X109Y759D01* -X127Y759D02* -X152Y759D01* -X198Y759D02* -X212Y759D01* -X95Y758D02* -X109Y758D01* -X129Y758D02* -X153Y758D01* -X198Y758D02* -X212Y758D01* -X95Y757D02* -X109Y757D01* -X130Y757D02* -X154Y757D01* -X198Y757D02* -X212Y757D01* -X95Y756D02* -X109Y756D01* -X131Y756D02* -X155Y756D01* -X198Y756D02* -X212Y756D01* -X95Y755D02* -X109Y755D01* -X132Y755D02* -X157Y755D01* -X198Y755D02* -X212Y755D01* -X95Y754D02* -X109Y754D01* -X134Y754D02* -X158Y754D01* -X198Y754D02* -X212Y754D01* -X95Y753D02* -X109Y753D01* -X135Y753D02* -X159Y753D01* -X198Y753D02* -X212Y753D01* -X95Y752D02* -X109Y752D01* -X136Y752D02* -X161Y752D01* -X198Y752D02* -X212Y752D01* -X95Y751D02* -X109Y751D01* -X138Y751D02* -X162Y751D01* -X198Y751D02* -X212Y751D01* -X95Y750D02* -X109Y750D01* -X139Y750D02* -X163Y750D01* -X198Y750D02* -X212Y750D01* -X95Y749D02* -X109Y749D01* -X140Y749D02* -X164Y749D01* -X198Y749D02* -X212Y749D01* -X95Y748D02* -X109Y748D01* -X141Y748D02* -X166Y748D01* -X198Y748D02* -X212Y748D01* -X1569Y748D02* -X1620Y748D01* -X95Y747D02* -X109Y747D01* -X143Y747D02* -X167Y747D01* -X198Y747D02* -X212Y747D01* -X1567Y747D02* -X1622Y747D01* -X95Y746D02* -X109Y746D01* -X144Y746D02* -X168Y746D01* -X198Y746D02* -X212Y746D01* -X1566Y746D02* -X1623Y746D01* -X95Y745D02* -X109Y745D01* -X145Y745D02* -X170Y745D01* -X198Y745D02* -X212Y745D01* -X1565Y745D02* -X1624Y745D01* -X95Y744D02* -X109Y744D01* -X147Y744D02* -X171Y744D01* -X198Y744D02* -X212Y744D01* -X1565Y744D02* -X1625Y744D01* -X95Y743D02* -X109Y743D01* -X148Y743D02* -X172Y743D01* -X198Y743D02* -X212Y743D01* -X1564Y743D02* -X1626Y743D01* -X95Y742D02* -X109Y742D01* -X149Y742D02* -X173Y742D01* -X198Y742D02* -X212Y742D01* -X1564Y742D02* -X1626Y742D01* -X95Y741D02* -X109Y741D01* -X151Y741D02* -X175Y741D01* -X198Y741D02* -X212Y741D01* -X1563Y741D02* -X1626Y741D01* -X95Y740D02* -X109Y740D01* -X152Y740D02* -X176Y740D01* -X198Y740D02* -X212Y740D01* -X1563Y740D02* -X1626Y740D01* -X95Y739D02* -X109Y739D01* -X153Y739D02* -X177Y739D01* -X198Y739D02* -X212Y739D01* -X1563Y739D02* -X1626Y739D01* -X95Y738D02* -X109Y738D01* -X154Y738D02* -X179Y738D01* -X198Y738D02* -X212Y738D01* -X1563Y738D02* -X1626Y738D01* -X95Y737D02* -X109Y737D01* -X156Y737D02* -X180Y737D01* -X198Y737D02* -X212Y737D01* -X1563Y737D02* -X1626Y737D01* -X95Y736D02* -X109Y736D01* -X157Y736D02* -X181Y736D01* -X198Y736D02* -X212Y736D01* -X1563Y736D02* -X1626Y736D01* -X95Y735D02* -X109Y735D01* -X158Y735D02* -X182Y735D01* -X198Y735D02* -X212Y735D01* -X1563Y735D02* -X1626Y735D01* -X95Y734D02* -X109Y734D01* -X160Y734D02* -X184Y734D01* -X198Y734D02* -X212Y734D01* -X1563Y734D02* -X1626Y734D01* -X95Y733D02* -X109Y733D01* -X161Y733D02* -X185Y733D01* -X198Y733D02* -X212Y733D01* -X1563Y733D02* -X1626Y733D01* -X95Y732D02* -X109Y732D01* -X162Y732D02* -X186Y732D01* -X198Y732D02* -X212Y732D01* -X1563Y732D02* -X1626Y732D01* -X95Y731D02* -X109Y731D01* -X163Y731D02* -X188Y731D01* -X198Y731D02* -X212Y731D01* -X1563Y731D02* -X1626Y731D01* -X95Y730D02* -X109Y730D01* -X165Y730D02* -X189Y730D01* -X198Y730D02* -X212Y730D01* -X1563Y730D02* -X1581Y730D01* -X1609Y730D02* -X1626Y730D01* -X95Y729D02* -X110Y729D01* -X166Y729D02* -X190Y729D01* -X198Y729D02* -X212Y729D01* -X1563Y729D02* -X1580Y729D01* -X1609Y729D02* -X1626Y729D01* -X95Y728D02* -X110Y728D01* -X167Y728D02* -X191Y728D01* -X198Y728D02* -X212Y728D01* -X1563Y728D02* -X1580Y728D01* -X1609Y728D02* -X1626Y728D01* -X95Y727D02* -X111Y727D01* -X169Y727D02* -X193Y727D01* -X198Y727D02* -X212Y727D01* -X1563Y727D02* -X1580Y727D01* -X1609Y727D02* -X1626Y727D01* -X96Y726D02* -X114Y726D01* -X170Y726D02* -X194Y726D01* -X196Y726D02* -X212Y726D01* -X1563Y726D02* -X1580Y726D01* -X1609Y726D02* -X1626Y726D01* -X96Y725D02* -X118Y725D01* -X171Y725D02* -X212Y725D01* -X1563Y725D02* -X1580Y725D01* -X1609Y725D02* -X1626Y725D01* -X96Y724D02* -X119Y724D01* -X172Y724D02* -X212Y724D01* -X1563Y724D02* -X1580Y724D01* -X1609Y724D02* -X1626Y724D01* -X97Y723D02* -X120Y723D01* -X174Y723D02* -X211Y723D01* -X1563Y723D02* -X1580Y723D01* -X1609Y723D02* -X1626Y723D01* -X97Y722D02* -X121Y722D01* -X175Y722D02* -X211Y722D01* -X1563Y722D02* -X1580Y722D01* -X1609Y722D02* -X1626Y722D01* -X98Y721D02* -X122Y721D01* -X176Y721D02* -X211Y721D01* -X1563Y721D02* -X1580Y721D01* -X1609Y721D02* -X1626Y721D01* -X98Y720D02* -X122Y720D01* -X178Y720D02* -X210Y720D01* -X1563Y720D02* -X1580Y720D01* -X1609Y720D02* -X1626Y720D01* -X99Y719D02* -X122Y719D01* -X179Y719D02* -X210Y719D01* -X1563Y719D02* -X1580Y719D01* -X1609Y719D02* -X1626Y719D01* -X100Y718D02* -X122Y718D01* -X180Y718D02* -X209Y718D01* -X1563Y718D02* -X1580Y718D01* -X1609Y718D02* -X1626Y718D01* -X101Y717D02* -X122Y717D01* -X181Y717D02* -X208Y717D01* -X1563Y717D02* -X1580Y717D01* -X1609Y717D02* -X1626Y717D01* -X102Y716D02* -X122Y716D01* -X183Y716D02* -X207Y716D01* -X1563Y716D02* -X1580Y716D01* -X1609Y716D02* -X1626Y716D01* -X103Y715D02* -X121Y715D01* -X184Y715D02* -X206Y715D01* -X1563Y715D02* -X1580Y715D01* -X1609Y715D02* -X1626Y715D01* -X104Y714D02* -X121Y714D01* -X185Y714D02* -X205Y714D01* -X1563Y714D02* -X1580Y714D01* -X1609Y714D02* -X1626Y714D01* -X106Y713D02* -X120Y713D01* -X187Y713D02* -X204Y713D01* -X1563Y713D02* -X1580Y713D01* -X1609Y713D02* -X1626Y713D01* -X108Y712D02* -X119Y712D01* -X189Y712D02* -X202Y712D01* -X1563Y712D02* -X1580Y712D01* -X1609Y712D02* -X1626Y712D01* -X112Y711D02* -X117Y711D01* -X192Y711D02* -X198Y711D01* -X1563Y711D02* -X1580Y711D01* -X1609Y711D02* -X1626Y711D01* -X1563Y710D02* -X1580Y710D01* -X1609Y710D02* -X1626Y710D01* -X1563Y709D02* -X1580Y709D01* -X1609Y709D02* -X1626Y709D01* -X1563Y708D02* -X1580Y708D01* -X1609Y708D02* -X1626Y708D01* -X1563Y707D02* -X1580Y707D01* -X1609Y707D02* -X1626Y707D01* -X1563Y706D02* -X1580Y706D01* -X1609Y706D02* -X1626Y706D01* -X1563Y705D02* -X1580Y705D01* -X1609Y705D02* -X1626Y705D01* -X1563Y704D02* -X1580Y704D01* -X1609Y704D02* -X1626Y704D01* -X1563Y703D02* -X1580Y703D01* -X1609Y703D02* -X1626Y703D01* -X1563Y702D02* -X1580Y702D01* -X1609Y702D02* -X1626Y702D01* -X1563Y701D02* -X1580Y701D01* -X1609Y701D02* -X1626Y701D01* -X1563Y700D02* -X1580Y700D01* -X1609Y700D02* -X1626Y700D01* -X1563Y699D02* -X1580Y699D01* -X1609Y699D02* -X1626Y699D01* -X1563Y698D02* -X1580Y698D01* -X1609Y698D02* -X1626Y698D01* -X1563Y697D02* -X1580Y697D01* -X1609Y697D02* -X1626Y697D01* -X1563Y696D02* -X1580Y696D01* -X1609Y696D02* -X1626Y696D01* -X1563Y695D02* -X1580Y695D01* -X1609Y695D02* -X1626Y695D01* -X1563Y694D02* -X1580Y694D01* -X1609Y694D02* -X1626Y694D01* -X1563Y693D02* -X1580Y693D01* -X1609Y693D02* -X1626Y693D01* -X1563Y692D02* -X1580Y692D01* -X1609Y692D02* -X1626Y692D01* -X1563Y691D02* -X1580Y691D01* -X1609Y691D02* -X1626Y691D01* -X1563Y690D02* -X1580Y690D01* -X1609Y690D02* -X1626Y690D01* -X1563Y689D02* -X1580Y689D01* -X1609Y689D02* -X1626Y689D01* -X1563Y688D02* -X1580Y688D01* -X1609Y688D02* -X1626Y688D01* -X1563Y687D02* -X1580Y687D01* -X1609Y687D02* -X1626Y687D01* -X1563Y686D02* -X1580Y686D01* -X1609Y686D02* -X1626Y686D01* -X1563Y685D02* -X1580Y685D01* -X1609Y685D02* -X1626Y685D01* -X1690Y685D02* -X1698Y685D01* -X1563Y684D02* -X1580Y684D01* -X1609Y684D02* -X1626Y684D01* -X1689Y684D02* -X1699Y684D01* -X1563Y683D02* -X1580Y683D01* -X1609Y683D02* -X1626Y683D01* -X1688Y683D02* -X1700Y683D01* -X1563Y682D02* -X1580Y682D01* -X1609Y682D02* -X1626Y682D01* -X1687Y682D02* -X1701Y682D01* -X1563Y681D02* -X1580Y681D01* -X1609Y681D02* -X1626Y681D01* -X1686Y681D02* -X1702Y681D01* -X1563Y680D02* -X1580Y680D01* -X1609Y680D02* -X1626Y680D01* -X1686Y680D02* -X1702Y680D01* -X1563Y679D02* -X1580Y679D01* -X1609Y679D02* -X1626Y679D01* -X1686Y679D02* -X1702Y679D01* -X1563Y678D02* -X1580Y678D01* -X1609Y678D02* -X1626Y678D01* -X1685Y678D02* -X1702Y678D01* -X1563Y677D02* -X1581Y677D01* -X1609Y677D02* -X1627Y677D01* -X1685Y677D02* -X1703Y677D01* -X1563Y676D02* -X1703Y676D01* -X1563Y675D02* -X1703Y675D01* -X1563Y674D02* -X1703Y674D01* -X1563Y673D02* -X1703Y673D01* -X1563Y672D02* -X1703Y672D01* -X1563Y671D02* -X1703Y671D01* -X1563Y670D02* -X1703Y670D01* -X1563Y669D02* -X1703Y669D01* -X1563Y668D02* -X1703Y668D01* -X1563Y667D02* -X1702Y667D01* -X1563Y666D02* -X1702Y666D01* -X1564Y665D02* -X1702Y665D01* -X1564Y664D02* -X1702Y664D01* -X1565Y663D02* -X1701Y663D01* -X1566Y662D02* -X1700Y662D01* -X1567Y661D02* -X1699Y661D01* -X1568Y660D02* -X1698Y660D01* -X1572Y659D02* -X1694Y659D01* -X1623Y618D02* -X1635Y618D01* -X1621Y617D02* -X1637Y617D01* -X1620Y616D02* -X1639Y616D01* -X1619Y615D02* -X1640Y615D01* -X1618Y614D02* -X1640Y614D01* -X1617Y613D02* -X1641Y613D01* -X1617Y612D02* -X1641Y612D01* -X1617Y611D02* -X1641Y611D01* -X1617Y610D02* -X1642Y610D01* -X1617Y609D02* -X1642Y609D01* -X1617Y608D02* -X1642Y608D01* -X1617Y607D02* -X1642Y607D01* -X1617Y606D02* -X1642Y606D01* -X1617Y605D02* -X1642Y605D01* -X1617Y604D02* -X1642Y604D01* -X1617Y603D02* -X1642Y603D01* -X1617Y602D02* -X1642Y602D01* -X1617Y601D02* -X1642Y601D01* -X1617Y600D02* -X1642Y600D01* -X1617Y599D02* -X1642Y599D01* -X1617Y598D02* -X1642Y598D01* -X1617Y597D02* -X1642Y597D01* -X1617Y596D02* -X1642Y596D01* -X1617Y595D02* -X1642Y595D01* -X1617Y594D02* -X1642Y594D01* -X1617Y593D02* -X1642Y593D01* -X1617Y592D02* -X1642Y592D01* -X1617Y591D02* -X1642Y591D01* -X1617Y590D02* -X1642Y590D01* -X1617Y589D02* -X1642Y589D01* -X1617Y588D02* -X1642Y588D01* -X1617Y587D02* -X1642Y587D01* -X1617Y586D02* -X1642Y586D01* -X1617Y585D02* -X1642Y585D01* -X1617Y584D02* -X1642Y584D01* -X1617Y583D02* -X1642Y583D01* -X1617Y582D02* -X1642Y582D01* -X1617Y581D02* -X1642Y581D01* -X1617Y580D02* -X1642Y580D01* -X1617Y579D02* -X1642Y579D01* -X1617Y578D02* -X1642Y578D01* -X1617Y577D02* -X1642Y577D01* -X1617Y576D02* -X1642Y576D01* -X1617Y575D02* -X1642Y575D01* -X1617Y574D02* -X1642Y574D01* -X1617Y573D02* -X1642Y573D01* -X1617Y572D02* -X1642Y572D01* -X1617Y571D02* -X1642Y571D01* -X1617Y570D02* -X1642Y570D01* -X1617Y569D02* -X1642Y569D01* -X1617Y568D02* -X1642Y568D01* -X1617Y567D02* -X1642Y567D01* -X1617Y566D02* -X1642Y566D01* -X1617Y565D02* -X1642Y565D01* -X1617Y564D02* -X1642Y564D01* -X1617Y563D02* -X1642Y563D01* -X1617Y562D02* -X1642Y562D01* -X1617Y561D02* -X1642Y561D01* -X1617Y560D02* -X1642Y560D01* -X1617Y559D02* -X1642Y559D01* -X1617Y558D02* -X1642Y558D01* -X1617Y557D02* -X1642Y557D01* -X1617Y556D02* -X1642Y556D01* -X1617Y555D02* -X1642Y555D01* -X1617Y554D02* -X1642Y554D01* -X1617Y553D02* -X1642Y553D01* -X1617Y552D02* -X1642Y552D01* -X1617Y551D02* -X1642Y551D01* -X1617Y550D02* -X1642Y550D01* -X1617Y549D02* -X1642Y549D01* -X1617Y548D02* -X1642Y548D01* -X1617Y547D02* -X1642Y547D01* -X1617Y546D02* -X1642Y546D01* -X1617Y545D02* -X1642Y545D01* -X1617Y544D02* -X1642Y544D01* -X1617Y543D02* -X1642Y543D01* -X1617Y542D02* -X1642Y542D01* -X1617Y541D02* -X1642Y541D01* -X1617Y540D02* -X1642Y540D01* -X1617Y539D02* -X1642Y539D01* -X1617Y538D02* -X1642Y538D01* -X1617Y537D02* -X1642Y537D01* -X1617Y536D02* -X1641Y536D01* -X1617Y535D02* -X1641Y535D01* -X1618Y534D02* -X1641Y534D01* -X1618Y533D02* -X1640Y533D01* -X1619Y532D02* -X1639Y532D01* -X1620Y531D02* -X1638Y531D01* -X1621Y530D02* -X1637Y530D01* -X1625Y529D02* -X1633Y529D01* -X1627Y488D02* -X1638Y488D01* -X1623Y487D02* -X1643Y487D01* -X1620Y486D02* -X1646Y486D01* -X1617Y485D02* -X1649Y485D01* -X1615Y484D02* -X1651Y484D01* -X1613Y483D02* -X1653Y483D01* -X1611Y482D02* -X1655Y482D01* -X1609Y481D02* -X1657Y481D01* -X1607Y480D02* -X1659Y480D01* -X1605Y479D02* -X1661Y479D01* -X1603Y478D02* -X1663Y478D01* -X1601Y477D02* -X1665Y477D01* -X1599Y476D02* -X1667Y476D01* -X1597Y475D02* -X1669Y475D01* -X1595Y474D02* -X1671Y474D01* -X1593Y473D02* -X1673Y473D01* -X1591Y472D02* -X1675Y472D01* -X1589Y471D02* -X1677Y471D01* -X1587Y470D02* -X1629Y470D01* -X1637Y470D02* -X1679Y470D01* -X1585Y469D02* -X1625Y469D01* -X1641Y469D02* -X1681Y469D01* -X1583Y468D02* -X1622Y468D01* -X1643Y468D02* -X1683Y468D01* -X1581Y467D02* -X1620Y467D01* -X1645Y467D02* -X1685Y467D01* -X1579Y466D02* -X1618Y466D01* -X1647Y466D02* -X1687Y466D01* -X1577Y465D02* -X1616Y465D01* -X1649Y465D02* -X1689Y465D01* -X1575Y464D02* -X1614Y464D01* -X1651Y464D02* -X1690Y464D01* -X1573Y463D02* -X1612Y463D01* -X1653Y463D02* -X1692Y463D01* -X1572Y462D02* -X1611Y462D01* -X1655Y462D02* -X1693Y462D01* -X1571Y461D02* -X1609Y461D01* -X1657Y461D02* -X1694Y461D01* -X1570Y460D02* -X1607Y460D01* -X1659Y460D02* -X1695Y460D01* -X1569Y459D02* -X1605Y459D01* -X1661Y459D02* -X1696Y459D01* -X1569Y458D02* -X1603Y458D01* -X1663Y458D02* -X1697Y458D01* -X1568Y457D02* -X1601Y457D01* -X1665Y457D02* -X1697Y457D01* -X1567Y456D02* -X1599Y456D01* -X1667Y456D02* -X1698Y456D01* -X1567Y455D02* -X1597Y455D01* -X1669Y455D02* -X1699Y455D01* -X1566Y454D02* -X1595Y454D01* -X1671Y454D02* -X1699Y454D01* -X1566Y453D02* -X1593Y453D01* -X1673Y453D02* -X1700Y453D01* -X1565Y452D02* -X1591Y452D01* -X1675Y452D02* -X1700Y452D01* -X1565Y451D02* -X1589Y451D01* -X1677Y451D02* -X1701Y451D01* -X1565Y450D02* -X1587Y450D01* -X1679Y450D02* -X1701Y450D01* -X1564Y449D02* -X1585Y449D01* -X1681Y449D02* -X1701Y449D01* -X1564Y448D02* -X1583Y448D01* -X1682Y448D02* -X1702Y448D01* -X1564Y447D02* -X1582Y447D01* -X1683Y447D02* -X1702Y447D01* -X1564Y446D02* -X1582Y446D01* -X1684Y446D02* -X1702Y446D01* -X1563Y445D02* -X1581Y445D01* -X1685Y445D02* -X1702Y445D01* -X1563Y444D02* -X1581Y444D01* -X1685Y444D02* -X1702Y444D01* -X1563Y443D02* -X1581Y443D01* -X1685Y443D02* -X1702Y443D01* -X1563Y442D02* -X1580Y442D01* -X1685Y442D02* -X1703Y442D01* -X1563Y441D02* -X1580Y441D01* -X1685Y441D02* -X1703Y441D01* -X1563Y440D02* -X1580Y440D01* -X1685Y440D02* -X1703Y440D01* -X1563Y439D02* -X1580Y439D01* -X1685Y439D02* -X1703Y439D01* -X1563Y438D02* -X1580Y438D01* -X1685Y438D02* -X1703Y438D01* -X1563Y437D02* -X1580Y437D01* -X1685Y437D02* -X1703Y437D01* -X1563Y436D02* -X1580Y436D01* -X1685Y436D02* -X1703Y436D01* -X1563Y435D02* -X1581Y435D01* -X1685Y435D02* -X1703Y435D01* -X1563Y434D02* -X1703Y434D01* -X99Y433D02* -X105Y433D01* -X202Y433D02* -X208Y433D01* -X1563Y433D02* -X1703Y433D01* -X98Y432D02* -X106Y432D01* -X200Y432D02* -X209Y432D01* -X1563Y432D02* -X1703Y432D01* -X97Y431D02* -X107Y431D01* -X199Y431D02* -X210Y431D01* -X1563Y431D02* -X1703Y431D01* -X96Y430D02* -X108Y430D01* -X199Y430D02* -X211Y430D01* -X1563Y430D02* -X1703Y430D01* -X95Y429D02* -X109Y429D01* -X198Y429D02* -X211Y429D01* -X1563Y429D02* -X1703Y429D01* -X95Y428D02* -X109Y428D01* -X198Y428D02* -X212Y428D01* -X1563Y428D02* -X1703Y428D01* -X95Y427D02* -X109Y427D01* -X198Y427D02* -X212Y427D01* -X1563Y427D02* -X1703Y427D01* -X95Y426D02* -X109Y426D01* -X198Y426D02* -X212Y426D01* -X1563Y426D02* -X1703Y426D01* -X95Y425D02* -X109Y425D01* -X198Y425D02* -X212Y425D01* -X1563Y425D02* -X1703Y425D01* -X95Y424D02* -X109Y424D01* -X198Y424D02* -X212Y424D01* -X1563Y424D02* -X1703Y424D01* -X95Y423D02* -X109Y423D01* -X198Y423D02* -X212Y423D01* -X1563Y423D02* -X1703Y423D01* -X95Y422D02* -X109Y422D01* -X198Y422D02* -X212Y422D01* -X1563Y422D02* -X1703Y422D01* -X95Y421D02* -X109Y421D01* -X198Y421D02* -X212Y421D01* -X1563Y421D02* -X1703Y421D01* -X95Y420D02* -X109Y420D01* -X198Y420D02* -X212Y420D01* -X1563Y420D02* -X1703Y420D01* -X95Y419D02* -X109Y419D01* -X198Y419D02* -X212Y419D01* -X1563Y419D02* -X1703Y419D01* -X95Y418D02* -X109Y418D01* -X198Y418D02* -X212Y418D01* -X1563Y418D02* -X1703Y418D01* -X95Y417D02* -X109Y417D01* -X198Y417D02* -X212Y417D01* -X1563Y417D02* -X1703Y417D01* -X95Y416D02* -X109Y416D01* -X198Y416D02* -X212Y416D01* -X1563Y416D02* -X1580Y416D01* -X1685Y416D02* -X1703Y416D01* -X95Y415D02* -X109Y415D01* -X198Y415D02* -X212Y415D01* -X1563Y415D02* -X1580Y415D01* -X1685Y415D02* -X1703Y415D01* -X95Y414D02* -X109Y414D01* -X198Y414D02* -X212Y414D01* -X1563Y414D02* -X1580Y414D01* -X1685Y414D02* -X1703Y414D01* -X95Y413D02* -X109Y413D01* -X198Y413D02* -X212Y413D01* -X1563Y413D02* -X1580Y413D01* -X1685Y413D02* -X1703Y413D01* -X95Y412D02* -X109Y412D01* -X198Y412D02* -X212Y412D01* -X1563Y412D02* -X1580Y412D01* -X1685Y412D02* -X1703Y412D01* -X95Y411D02* -X109Y411D01* -X198Y411D02* -X212Y411D01* -X1563Y411D02* -X1580Y411D01* -X1685Y411D02* -X1703Y411D01* -X95Y410D02* -X109Y410D01* -X198Y410D02* -X212Y410D01* -X1563Y410D02* -X1580Y410D01* -X1685Y410D02* -X1703Y410D01* -X95Y409D02* -X109Y409D01* -X198Y409D02* -X212Y409D01* -X1563Y409D02* -X1580Y409D01* -X1685Y409D02* -X1703Y409D01* -X95Y408D02* -X109Y408D01* -X198Y408D02* -X212Y408D01* -X1563Y408D02* -X1580Y408D01* -X1685Y408D02* -X1703Y408D01* -X95Y407D02* -X109Y407D01* -X198Y407D02* -X212Y407D01* -X1563Y407D02* -X1580Y407D01* -X1685Y407D02* -X1702Y407D01* -X95Y406D02* -X109Y406D01* -X198Y406D02* -X212Y406D01* -X1563Y406D02* -X1580Y406D01* -X1686Y406D02* -X1702Y406D01* -X95Y405D02* -X109Y405D01* -X198Y405D02* -X212Y405D01* -X1564Y405D02* -X1580Y405D01* -X1686Y405D02* -X1702Y405D01* -X95Y404D02* -X109Y404D01* -X198Y404D02* -X212Y404D01* -X1564Y404D02* -X1580Y404D01* -X1686Y404D02* -X1702Y404D01* -X95Y403D02* -X109Y403D01* -X198Y403D02* -X212Y403D01* -X1565Y403D02* -X1579Y403D01* -X1687Y403D02* -X1701Y403D01* -X95Y402D02* -X109Y402D01* -X198Y402D02* -X212Y402D01* -X1565Y402D02* -X1578Y402D01* -X1688Y402D02* -X1700Y402D01* -X95Y401D02* -X109Y401D01* -X198Y401D02* -X212Y401D01* -X1567Y401D02* -X1577Y401D01* -X1689Y401D02* -X1699Y401D01* -X95Y400D02* -X109Y400D01* -X198Y400D02* -X212Y400D01* -X1568Y400D02* -X1576Y400D01* -X1690Y400D02* -X1698Y400D01* -X95Y399D02* -X109Y399D01* -X198Y399D02* -X212Y399D01* -X1571Y399D02* -X1573Y399D01* -X1693Y399D02* -X1695Y399D01* -X95Y398D02* -X109Y398D01* -X198Y398D02* -X212Y398D01* -X95Y397D02* -X109Y397D01* -X198Y397D02* -X212Y397D01* -X95Y396D02* -X109Y396D01* -X197Y396D02* -X212Y396D01* -X95Y395D02* -X110Y395D01* -X197Y395D02* -X212Y395D01* -X95Y394D02* -X110Y394D01* -X197Y394D02* -X212Y394D01* -X95Y393D02* -X111Y393D01* -X196Y393D02* -X211Y393D01* -X96Y392D02* -X112Y392D01* -X195Y392D02* -X211Y392D01* -X96Y391D02* -X114Y391D01* -X193Y391D02* -X211Y391D01* -X96Y390D02* -X116Y390D01* -X191Y390D02* -X211Y390D01* -X97Y389D02* -X118Y389D01* -X189Y389D02* -X210Y389D01* -X97Y388D02* -X120Y388D01* -X187Y388D02* -X210Y388D01* -X98Y387D02* -X122Y387D01* -X185Y387D02* -X209Y387D01* -X98Y386D02* -X124Y386D01* -X183Y386D02* -X209Y386D01* -X99Y385D02* -X126Y385D01* -X181Y385D02* -X208Y385D01* -X100Y384D02* -X128Y384D01* -X179Y384D02* -X207Y384D01* -X101Y383D02* -X130Y383D01* -X177Y383D02* -X207Y383D01* -X101Y382D02* -X132Y382D01* -X175Y382D02* -X206Y382D01* -X102Y381D02* -X134Y381D01* -X173Y381D02* -X205Y381D01* -X104Y380D02* -X136Y380D01* -X171Y380D02* -X204Y380D01* -X105Y379D02* -X138Y379D01* -X169Y379D02* -X202Y379D01* -X107Y378D02* -X140Y378D01* -X167Y378D02* -X201Y378D01* -X108Y377D02* -X141Y377D01* -X165Y377D02* -X199Y377D01* -X110Y376D02* -X143Y376D01* -X163Y376D02* -X197Y376D01* -X112Y375D02* -X146Y375D01* -X161Y375D02* -X195Y375D01* -X114Y374D02* -X149Y374D01* -X157Y374D02* -X193Y374D01* -X116Y373D02* -X191Y373D01* -X118Y372D02* -X189Y372D01* -X120Y371D02* -X187Y371D01* -X122Y370D02* -X185Y370D01* -X124Y369D02* -X183Y369D01* -X126Y368D02* -X181Y368D01* -X128Y367D02* -X179Y367D01* -X130Y366D02* -X177Y366D01* -X132Y365D02* -X174Y365D01* -X134Y364D02* -X172Y364D01* -X136Y363D02* -X170Y363D01* -X138Y362D02* -X168Y362D01* -X141Y361D02* -X166Y361D01* -X144Y360D02* -X163Y360D01* -X148Y359D02* -X159Y359D01* -X1569Y358D02* -X1702Y358D01* -X1567Y357D02* -X1703Y357D01* -X1566Y356D02* -X1703Y356D01* -X1565Y355D02* -X1703Y355D01* -X1565Y354D02* -X1703Y354D01* -X1564Y353D02* -X1703Y353D01* -X1564Y352D02* -X1703Y352D01* -X1563Y351D02* -X1703Y351D01* -X1563Y350D02* -X1703Y350D01* -X1563Y349D02* -X1703Y349D01* -X1563Y348D02* -X1703Y348D01* -X1564Y347D02* -X1703Y347D01* -X1564Y346D02* -X1703Y346D01* -X1564Y345D02* -X1703Y345D01* -X1565Y344D02* -X1703Y344D01* -X1566Y343D02* -X1703Y343D01* -X1567Y342D02* -X1703Y342D01* -X1569Y341D02* -X1703Y341D01* -X1678Y340D02* -X1703Y340D01* -X1677Y339D02* -X1703Y339D01* -X1675Y338D02* -X1703Y338D01* -X1674Y337D02* -X1703Y337D01* -X1672Y336D02* -X1703Y336D01* -X1671Y335D02* -X1702Y335D01* -X1670Y334D02* -X1700Y334D01* -X1668Y333D02* -X1699Y333D01* -X1667Y332D02* -X1697Y332D01* -X1665Y331D02* -X1696Y331D01* -X1664Y330D02* -X1694Y330D01* -X1662Y329D02* -X1693Y329D01* -X1661Y328D02* -X1692Y328D01* -X1660Y327D02* -X1690Y327D01* -X1658Y326D02* -X1689Y326D01* -X1657Y325D02* -X1687Y325D01* -X1655Y324D02* -X1686Y324D01* -X1654Y323D02* -X1684Y323D01* -X1645Y322D02* -X1683Y322D01* -X1643Y321D02* -X1682Y321D01* -X1642Y320D02* -X1680Y320D01* -X1641Y319D02* -X1679Y319D01* -X1641Y318D02* -X1677Y318D01* -X1640Y317D02* -X1676Y317D01* -X1640Y316D02* -X1674Y316D01* -X1640Y315D02* -X1673Y315D01* -X1640Y314D02* -X1672Y314D01* -X1640Y313D02* -X1672Y313D01* -X1640Y312D02* -X1673Y312D01* -X1640Y311D02* -X1675Y311D01* -X1640Y310D02* -X1676Y310D01* -X1641Y309D02* -X1678Y309D01* -X1641Y308D02* -X1679Y308D01* -X1642Y307D02* -X1681Y307D01* -X1644Y306D02* -X1682Y306D01* -X1646Y305D02* -X1683Y305D01* -X1654Y304D02* -X1685Y304D01* -X1655Y303D02* -X1686Y303D01* -X1657Y302D02* -X1688Y302D01* -X1658Y301D02* -X1689Y301D01* -X1660Y300D02* -X1691Y300D01* -X1661Y299D02* -X1692Y299D01* -X1663Y298D02* -X1693Y298D01* -X1664Y297D02* -X1695Y297D01* -X1665Y296D02* -X1696Y296D01* -X1667Y295D02* -X1698Y295D01* -X1668Y294D02* -X1699Y294D01* -X1670Y293D02* -X1700Y293D01* -X1671Y292D02* -X1702Y292D01* -X1673Y291D02* -X1703Y291D01* -X1674Y290D02* -X1703Y290D01* -X1675Y289D02* -X1703Y289D01* -X1677Y288D02* -X1703Y288D01* -X1571Y287D02* -X1703Y287D01* -X1568Y286D02* -X1703Y286D01* -X1567Y285D02* -X1703Y285D01* -X1566Y284D02* -X1703Y284D01* -X1565Y283D02* -X1703Y283D01* -X1564Y282D02* -X1703Y282D01* -X1564Y281D02* -X1703Y281D01* -X1563Y280D02* -X1703Y280D01* -X1563Y279D02* -X1703Y279D01* -X1563Y278D02* -X1703Y278D01* -X1563Y277D02* -X1703Y277D01* -X1563Y276D02* -X1703Y276D01* -X1564Y275D02* -X1703Y275D01* -X1564Y274D02* -X1703Y274D01* -X1565Y273D02* -X1703Y273D01* -X1565Y272D02* -X1703Y272D01* -X1567Y271D02* -X1703Y271D01* -X1568Y270D02* -X1703Y270D01* -X1571Y269D02* -X1702Y269D01* -D02* -G04 End of Copper0* -M02* \ No newline at end of file diff --git a/tests/gerber_files/detector_copper_top.gbr b/tests/gerber_files/detector_copper_top.gbr deleted file mode 100644 index 52b2e2ae..00000000 --- a/tests/gerber_files/detector_copper_top.gbr +++ /dev/null @@ -1,71 +0,0 @@ -G04 MADE WITH FRITZING* -G04 WWW.FRITZING.ORG* -G04 DOUBLE SIDED* -G04 HOLES PLATED* -G04 CONTOUR ON CENTER OF CONTOUR VECTOR* -%ASAXBY*% -%FSLAX23Y23*% -%MOIN*% -%OFA0B0*% -%SFA1.0B1.0*% -%ADD10C,0.075000*% -%ADD11C,0.099055*% -%ADD12C,0.078740*% -%ADD13R,0.075000X0.075000*% -%ADD14C,0.024000*% -%ADD15C,0.020000*% -%LNCOPPER1*% -G90* -G70* -G54D10* -X1149Y872D03* -X1349Y872D03* -X749Y722D03* -X749Y522D03* -X1149Y522D03* -X1449Y522D03* -X1149Y422D03* -X1449Y422D03* -X1149Y322D03* -X1449Y322D03* -X1149Y222D03* -X1449Y222D03* -X949Y472D03* -X949Y72D03* -G54D11* -X749Y972D03* -X599Y972D03* -X349Y322D03* -X349Y472D03* -X349Y672D03* -X349Y822D03* -G54D10* -X699Y122D03* -X699Y322D03* -G54D12* -X699Y222D03* -X949Y972D03* -X749Y622D03* -X1049Y222D03* -X1249Y872D03* -G54D13* -X1149Y872D03* -X1149Y522D03* -G54D14* -X952Y946D02* -X1045Y249D01* -G54D15* -X776Y695D02* -X721Y695D01* -X721Y750D01* -X776Y750D01* -X776Y695D01* -D02* -X671Y150D02* -X726Y150D01* -X726Y95D01* -X671Y95D01* -X671Y150D01* -D02* -G04 End of Copper1* -M02* \ No newline at end of file diff --git a/tests/gerber_files/detector_drill.txt b/tests/gerber_files/detector_drill.txt deleted file mode 100644 index c4945b84..00000000 --- a/tests/gerber_files/detector_drill.txt +++ /dev/null @@ -1,46 +0,0 @@ -; NON-PLATED HOLES START AT T1 -; THROUGH (PLATED) HOLES START AT T100 -M48 -INCH -T1C0.125984 -T100C0.031496 -T101C0.035000 -T102C0.059055 -% -T1 -X001488Y010223 -X001488Y001223 -X016488Y001223 -X016488Y010223 -T100 -X009488Y009723 -X007488Y006223 -X012488Y008723 -X010488Y002223 -X006988Y002223 -T101 -X014488Y004223 -X006988Y003223 -X013488Y008723 -X011488Y008723 -X007488Y005223 -X014488Y003223 -X014488Y002223 -X011488Y005223 -X009488Y000723 -X011488Y004223 -X006988Y001223 -X009488Y004723 -X007488Y007223 -X011488Y003223 -X014488Y005223 -X011488Y002223 -T102 -X003488Y008223 -X003488Y004723 -X007488Y009723 -X003488Y006723 -X005988Y009723 -X003488Y003223 -T00 -M30 diff --git a/tests/gerber_files/simple1.gbr b/tests/gerber_files/simple1.gbr deleted file mode 100644 index 2ca21d77..00000000 --- a/tests/gerber_files/simple1.gbr +++ /dev/null @@ -1,54 +0,0 @@ -G04 MADE WITH FRITZING* -G04 WWW.FRITZING.ORG* -G04 DOUBLE SIDED* -G04 HOLES PLATED* -G04 CONTOUR ON CENTER OF CONTOUR VECTOR* -%ASAXBY*% -%FSLAX23Y23*% -%MOIN*% -%OFA0B0*% -%SFA1.0B1.0*% -%ADD10R,0.047244X0.078740*% -%ADD11C,0.024000*% -%LNCOPPER1*% -G90* -G70* -G54D10* -X2940Y1051D03* -X2940Y941D03* -G54D11* -X2438Y839D02* -X2440Y1023D01* -D02* -X2940Y907D02* -X2941Y839D01* -D02* -X2941Y839D02* -X2438Y839D01* -D02* -X2941Y1239D02* -X2940Y1085D01* -D02* -X2438Y1239D02* -X2941Y1239D01* -D02* -X2440Y1126D02* -X2438Y1239D01* -G36* -X2418Y1064D02* -X2461Y1064D01* -X2461Y1017D01* -X2418Y1017D01* -X2418Y1064D01* -G37* -D02* -G36* -X2418Y1131D02* -X2461Y1131D01* -X2461Y1084D01* -X2418Y1084D01* -X2418Y1131D01* -G37* -D02* -G04 End of Copper1* -M02* \ No newline at end of file diff --git a/tests/gerber_parsing_profiling/gerber1.gbr b/tests/gerber_parsing_profiling/gerber1.gbr deleted file mode 100755 index 245ae335..00000000 --- a/tests/gerber_parsing_profiling/gerber1.gbr +++ /dev/null @@ -1,3045 +0,0 @@ -G04 Generated by Ultiboard 12.0 * -%FSLAX25Y25*% -%MOMM*% - -%ADD10C,0.00001*% -%ADD11C,0.25400*% -%ADD12C,0.50800*% -%ADD13C,1.90500*% -%ADD14C,0.12700*% -%ADD15C,2.00000*% -%ADD16R,1.80000X1.15000*% -%ADD17C,1.60884*% -%ADD18R,0.67742X0.67742*% -%ADD19C,0.84658*% -%ADD20R,0.76200X0.76200*% -%ADD21C,0.50800*% -%ADD22R,1.27000X1.27000*% -%ADD23R,2.70000X1.15000*% -%ADD24R,1.15000X1.45000*% -%ADD25R,1.15000X2.70000*% -%ADD26R,0.52908X0.52908*% -%ADD27C,0.99492*% -%ADD28C,1.80000*% -%ADD29R,1.80000X1.80000*% -%ADD30R,2.57000X2.80000*% -%ADD31C,1.98984*% - - -G04 ColorRGB 002000 for the following layer * -%LNCopper Top*% -%LPD*% -G54D10* -G36* -X1590549Y63807D02* -X1590549Y63807D01* -X3936193Y63807D01* -X3936193Y6436193D01* -X63807Y6436193D01* -X63807Y63807D01* -X1254251Y63807D01* -G75* -D01* -G02X1230093Y113800I39649J49993* -G01* -X1230093Y113800D01* -X1230093Y185606D01* -X1354206Y185606D01* -X1354206Y63807D01* -X1490594Y63807D01* -X1490594Y185606D01* -X1614707Y185606D01* -X1614707Y113800D01* -G75* -D01* -G02X1590549Y63807I-63807J0* -G01* -D02* -G37* -%LPC*% -G36* -X2821307Y4787900D02* -X2821307Y4787900D01* -X2821307Y4717860D01* -G75* -D01* -G02X2855900Y4724830I34593J-82359* -G01* -X2855900Y4724830D01* -X2932100Y4724830D01* -G74* -D01* -G02X3021430Y4635500I0J89330* -G01* -X3021430Y4635500D01* -X3021430Y4559300D01* -G75* -D01* -G02X2940855Y4470400I-89330J0* -G01* -G74* -D01* -G02X3021430Y4381500I8755J88900* -G01* -X3021430Y4381500D01* -X3021430Y4379662D01* -X3024710Y4382942D01* -X3024710Y5027758D01* -X2858598Y5193870D01* -X1490507Y5193870D01* -X1490507Y5148200D01* -G75* -D01* -G02X1426700Y5084393I-63807J0* -G01* -X1426700Y5084393D01* -X1311700Y5084393D01* -G75* -D01* -G02X1247893Y5148200I0J63807* -G01* -X1247893Y5148200D01* -X1247893Y5418200D01* -G75* -D01* -G02X1311700Y5482007I63807J0* -G01* -X1311700Y5482007D01* -X1426700Y5482007D01* -G74* -D01* -G02X1490507Y5418200I0J63807* -G01* -X1490507Y5418200D01* -X1490507Y5372530D01* -X2022842Y5372530D01* -G75* -D01* -G02X2244358Y5372530I110758J120269* -G01* -X2244358Y5372530D01* -X2530842Y5372530D01* -G75* -D01* -G02X2752358Y5372530I110758J120269* -G01* -X2752358Y5372530D01* -X2895490Y5372530D01* -G75* -D01* -G02X2928856Y5366109I110J-89330* -G01* -G74* -D01* -G02X2958845Y5346286I33257J82908* -G01* -X2958845Y5346286D01* -X3177126Y5128005D01* -G74* -D01* -G02X3203370Y5064760I63085J63245* -G01* -X3203370Y5064760D01* -X3203370Y4345940D01* -G75* -D01* -G02X3177126Y4282695I-89330J1* -G01* -X3177126Y4282695D01* -X3047745Y4153314D01* -G74* -D01* -G02X3021121Y4134921I63246J63084* -G01* -G74* -D01* -G02X3021430Y4127500I89020J7424* -G01* -X3021430Y4127500D01* -X3021430Y4051300D01* -G75* -D01* -G02X2940855Y3962400I-89330J0* -G01* -G74* -D01* -G02X3021148Y3880588I8755J88900* -G01* -X3021148Y3880588D01* -X2939188Y3880588D01* -X2939188Y3962252D01* -G74* -D01* -G02X2932100Y3961970I7092J89047* -G01* -X2932100Y3961970D01* -X2855900Y3961970D01* -G75* -D01* -G02X2848812Y3962252I4J89330* -G01* -X2848812Y3962252D01* -X2848812Y3880588D01* -X2810004Y3880588D01* -G74* -D01* -G02X2740855Y3835400I77904J43711* -G01* -G74* -D01* -G02X2810004Y3790212I8756J88900* -G01* -X2810004Y3790212D01* -X2848812Y3790212D01* -X2848812Y3708548D01* -G75* -D01* -G02X2855900Y3708830I7092J-89047* -G01* -X2855900Y3708830D01* -X2932100Y3708830D01* -G74* -D01* -G02X2939188Y3708548I4J89330* -G01* -X2939188Y3708548D01* -X2939188Y3790212D01* -X3021148Y3790212D01* -G74* -D01* -G02X2940855Y3708400I89047J7087* -G01* -G74* -D01* -G02X3021430Y3619500I8755J88900* -G01* -X3021430Y3619500D01* -X3021430Y3543300D01* -G75* -D01* -G02X2940855Y3454400I-89330J0* -G01* -G74* -D01* -G02X3021430Y3365500I8755J88900* -G01* -X3021430Y3365500D01* -X3021430Y3289300D01* -G75* -D01* -G02X3001389Y3232918I-89330J0* -G01* -X3001389Y3232918D01* -X3318326Y3232918D01* -G75* -D01* -G02X3364423Y3252607I46097J-44117* -G01* -X3364423Y3252607D01* -X3412122Y3252607D01* -G75* -D01* -G02X3496724Y3252607I42301J-153806* -G01* -X3496724Y3252607D01* -X3544423Y3252607D01* -G74* -D01* -G02X3608231Y3188800I1J63807* -G01* -X3608231Y3188800D01* -X3608231Y3141101D01* -G75* -D01* -G02X3608231Y3056499I-153807J-42301* -G01* -X3608231Y3056499D01* -X3608231Y3008800D01* -G75* -D01* -G02X3544423Y2944993I-63808J1* -G01* -X3544423Y2944993D01* -X3523668Y2944993D01* -G74* -D01* -G02X3429023Y2913882I94645J128407* -G01* -X3429023Y2913882D01* -X3001389Y2913882D01* -G74* -D01* -G02X3021430Y2857500I69289J56382* -G01* -X3021430Y2857500D01* -X3021430Y2781300D01* -G75* -D01* -G02X2940855Y2692400I-89330J0* -G01* -G74* -D01* -G02X3021148Y2610588I8755J88900* -G01* -X3021148Y2610588D01* -X2939188Y2610588D01* -X2939188Y2692252D01* -G74* -D01* -G02X2932100Y2691970I7092J89047* -G01* -X2932100Y2691970D01* -X2855900Y2691970D01* -G75* -D01* -G02X2848812Y2692252I4J89330* -G01* -X2848812Y2692252D01* -X2848812Y2610588D01* -X2810004Y2610588D01* -G74* -D01* -G02X2740855Y2565400I77904J43711* -G01* -G74* -D01* -G02X2810004Y2520212I8756J88900* -G01* -X2810004Y2520212D01* -X2848812Y2520212D01* -X2848812Y2438548D01* -G75* -D01* -G02X2855900Y2438830I7092J-89047* -G01* -X2855900Y2438830D01* -X2932100Y2438830D01* -G74* -D01* -G02X2939188Y2438548I4J89330* -G01* -X2939188Y2438548D01* -X2939188Y2520212D01* -X3021148Y2520212D01* -G74* -D01* -G02X2940855Y2438400I89047J7087* -G01* -G74* -D01* -G02X3021430Y2349500I8755J88900* -G01* -X3021430Y2349500D01* -X3021430Y2273300D01* -G75* -D01* -G02X2940855Y2184400I-89330J0* -G01* -G74* -D01* -G02X3021430Y2095500I8755J88900* -G01* -X3021430Y2095500D01* -X3021430Y2019300D01* -G75* -D01* -G02X2940855Y1930400I-89330J0* -G01* -G74* -D01* -G02X3021430Y1841500I8755J88900* -G01* -X3021430Y1841500D01* -X3021430Y1765300D01* -G75* -D01* -G02X2932100Y1675970I-89330J0* -G01* -X2932100Y1675970D01* -X2855900Y1675970D01* -G75* -D01* -G02X2821430Y1682888I-1J89330* -G01* -X2821430Y1682888D01* -X2821430Y1638300D01* -G75* -D01* -G02X2732100Y1548970I-89330J0* -G01* -X2732100Y1548970D01* -X2655900Y1548970D01* -G75* -D01* -G02X2566570Y1638300I0J89330* -G01* -X2566570Y1638300D01* -X2566570Y1714500D01* -G74* -D01* -G02X2647145Y1803400I89330J0* -G01* -G75* -D01* -G02X2566570Y1892300I8755J88900* -G01* -X2566570Y1892300D01* -X2566570Y1968500D01* -G74* -D01* -G02X2647145Y2057400I89330J0* -G01* -G74* -D01* -G02X2582720Y2095070I8755J88900* -G01* -X2582720Y2095070D01* -X2045877Y2095070D01* -G75* -D01* -G02X1982664Y2121234I-47J89330* -G01* -X1982664Y2121234D01* -X1562434Y2541464D01* -G75* -D01* -G02X1536270Y2604716I63166J63166* -G01* -X1536270Y2604716D01* -X1536270Y2878293D01* -X1490600Y2878293D01* -G75* -D01* -G02X1427407Y2933270I0J63807* -G01* -X1427407Y2933270D01* -X725170Y2933270D01* -G75* -D01* -G02X701417Y2936486I0J89330* -G01* -G74* -D01* -G02X662004Y2959434I23752J86113* -G01* -X662004Y2959434D01* -X597330Y3024108D01* -X597330Y2563005D01* -G74* -D01* -G02X648212Y2472271I55458J90734* -G01* -X648212Y2472271D01* -X648212Y2404529D01* -G75* -D01* -G02X597330Y2313795I-106341J0* -G01* -X597330Y2313795D01* -X597330Y2297269D01* -G75* -D01* -G02X597330Y2071531I-89329J-112869* -G01* -X597330Y2071531D01* -X597330Y2043269D01* -G75* -D01* -G02X597330Y1817531I-89329J-112869* -G01* -X597330Y1817531D01* -X597330Y1789269D01* -G75* -D01* -G02X597330Y1563531I-89329J-112869* -G01* -X597330Y1563531D01* -X597330Y1486330D01* -X1473200Y1486330D01* -G74* -D01* -G02X1536445Y1460086I1J89330* -G01* -X1536445Y1460086D01* -X1815686Y1180845D01* -G74* -D01* -G02X1827393Y1166446I63083J63248* -G01* -X1827393Y1166446D01* -X1827393Y1172700D01* -G75* -D01* -G02X1891200Y1236507I63807J0* -G01* -X1891200Y1236507D01* -X1891870Y1236507D01* -X1891870Y1239969D01* -G75* -D01* -G02X1918034Y1303266I89330J131* -G01* -X1918034Y1303266D01* -X2032334Y1417566D01* -G74* -D01* -G02X2052310Y1432595I63165J63167* -G01* -G75* -D01* -G02X2309229Y1443730I132090J-78194* -G01* -X2309229Y1443730D01* -X2362157Y1443730D01* -G75* -D01* -G02X2370371Y1443356I48J-89330* -G01* -G74* -D01* -G02X2425445Y1417486I8172J88955* -G01* -X2425445Y1417486D01* -X2603086Y1239845D01* -G74* -D01* -G02X2629330Y1176600I63085J63245* -G01* -X2629330Y1176600D01* -X2629330Y644332D01* -G74* -D01* -G02X2702712Y517549I89329J136332* -G01* -X2702712Y517549D01* -X2712261Y508000D01* -X2702712Y498451D01* -G75* -D01* -G02X2413000Y405837I-162711J9547* -G01* -G75* -D01* -G02X2196670Y644332I-126997J102166* -G01* -X2196670Y644332D01* -X2196670Y693893D01* -X2196000Y693893D01* -G75* -D01* -G02X2140699Y725870I0J63807* -G01* -X2140699Y725870D01* -X2126501Y725870D01* -G74* -D01* -G02X2071200Y693893I55301J31830* -G01* -X2071200Y693893D01* -X1891200Y693893D01* -G75* -D01* -G02X1835899Y725870I0J63807* -G01* -X1835899Y725870D01* -X1826450Y725870D01* -G75* -D01* -G02X1763234Y752034I-50J89330* -G01* -X1763234Y752034D01* -X1689434Y825834D01* -G75* -D01* -G02X1663270Y889088I63166J63166* -G01* -X1663270Y889088D01* -X1663270Y1080598D01* -X1625968Y1117900D01* -G74* -D01* -G02X1625969Y1117600I76567J405* -G01* -X1625969Y1117600D01* -X1625969Y736600D01* -G75* -D01* -G02X1567930Y662307I-76569J0* -G01* -G74* -D01* -G02X1550900Y659993I17028J61493* -G01* -X1550900Y659993D01* -X1293900Y659993D01* -G75* -D01* -G02X1276871Y662307I-1J63807* -G01* -G74* -D01* -G02X1266963Y665508I18531J74292* -G01* -X1266963Y665508D01* -X758963Y868708D01* -G75* -D01* -G02X710831Y939939I28436J71092* -G01* -X710831Y939939D01* -X710831Y1117600D01* -G75* -D01* -G02X787400Y1194169I76569J0* -G01* -X787400Y1194169D01* -X1549400Y1194169D01* -G74* -D01* -G02X1549700Y1194168I105J76569* -G01* -X1549700Y1194168D01* -X1436198Y1307670D01* -X508000Y1307670D01* -G75* -D01* -G02X418670Y1397000I0J89330* -G01* -X418670Y1397000D01* -X418670Y1563531D01* -G75* -D01* -G02X418670Y1789269I89329J112869* -G01* -X418670Y1789269D01* -X418670Y1817531D01* -G75* -D01* -G02X418670Y2043269I89329J112869* -G01* -X418670Y2043269D01* -X418670Y2071531D01* -G75* -D01* -G02X418670Y2297269I89329J112869* -G01* -X418670Y2297269D01* -X418670Y2313795D01* -G75* -D01* -G02X367788Y2404529I55458J90734* -G01* -X367788Y2404529D01* -X367788Y2472271D01* -G74* -D01* -G02X418670Y2563005I106341J0* -G01* -X418670Y2563005D01* -X418670Y4408331D01* -G75* -D01* -G02X418670Y4634069I89329J112869* -G01* -X418670Y4634069D01* -X418670Y4650595D01* -G75* -D01* -G02X367788Y4741329I55458J90734* -G01* -X367788Y4741329D01* -X367788Y4809071D01* -G74* -D01* -G02X418670Y4899805I106341J0* -G01* -X418670Y4899805D01* -X418670Y5029034D01* -G75* -D01* -G02X444834Y5092366I89330J166* -G01* -X444834Y5092366D01* -X698834Y5346366D01* -G74* -D01* -G02X749888Y5371705I63166J63166* -G01* -G75* -D01* -G02X762000Y5372530I12112J-88504* -G01* -X762000Y5372530D01* -X947893Y5372530D01* -X947893Y5418200D01* -G75* -D01* -G02X1011700Y5482007I63807J0* -G01* -X1011700Y5482007D01* -X1126700Y5482007D01* -G74* -D01* -G02X1190507Y5418200I0J63807* -G01* -X1190507Y5418200D01* -X1190507Y5148200D01* -G75* -D01* -G02X1126700Y5084393I-63807J0* -G01* -X1126700Y5084393D01* -X1011700Y5084393D01* -G75* -D01* -G02X947893Y5148200I0J63807* -G01* -X947893Y5148200D01* -X947893Y5193870D01* -X799002Y5193870D01* -X597330Y4992198D01* -X597330Y4899805D01* -G74* -D01* -G02X648212Y4809071I55458J90734* -G01* -X648212Y4809071D01* -X648212Y4741329D01* -G75* -D01* -G02X597330Y4650595I-106341J0* -G01* -X597330Y4650595D01* -X597330Y4634069D01* -G75* -D01* -G02X597330Y4408331I-89329J-112869* -G01* -X597330Y4408331D01* -X597330Y4379992D01* -X646904Y4429566D01* -G74* -D01* -G02X677608Y4449623I63166J63166* -G01* -G75* -D01* -G02X710070Y4455730I32462J-83223* -G01* -X710070Y4455730D01* -X1141809Y4455730D01* -G75* -D01* -G02X1202249Y4648200I128190J65470* -G01* -G75* -D01* -G02X1382869Y4864530I67754J126998* -G01* -X1382869Y4864530D01* -X2640232Y4864530D01* -G75* -D01* -G02X2669697Y4859565I98J-89330* -G01* -G74* -D01* -G02X2686444Y4851707I29368J84364* -G01* -X2686444Y4851707D01* -X2757500Y4851707D01* -G74* -D01* -G02X2821307Y4787900I0J63807* -G01* -D02* -G37* -G36* -X1202249Y2311400D02* -G75* -D01* -G02X1337751Y2311400I67751J126999* -G01* -G75* -D01* -G02X1337751Y2057400I-67750J-127000* -G01* -G75* -D01* -G02X1337751Y1803400I-67750J-127000* -G01* -G75* -D01* -G02X1202249Y1803400I-67751J-126999* -G01* -G75* -D01* -G02X1202249Y2057400I67750J127000* -G01* -G75* -D01* -G02X1202249Y2311400I67750J127000* -G01* -D02* -G37* -G36* -X2986100Y5492800D02* -G75* -D01* -G02X2986100Y5492800I163500J0* -G01* -D02* -G37* -G36* -X3494100Y5492800D02* -G75* -D01* -G02X3494100Y5492800I163500J0* -G01* -D02* -G37* -G36* -X2864000Y2565400D02* -G75* -D01* -G02X2864000Y2565400I30000J0* -G01* -D02* -G37* -G36* -X2864000Y3835400D02* -G75* -D01* -G02X2864000Y3835400I30000J0* -G01* -D02* -G37* -G36* -X2860893Y359367D02* -G75* -D01* -G02X2727107Y359367I-66893J148633* -G01* -X2727107Y359367D01* -X2794000Y426261D01* -X2860893Y359367D01* -D02* -G37* -G36* -X3300593Y351300D02* -X3300593Y351300D01* -X3300593Y365783D01* -X3411383Y365783D01* -X3411383Y287493D01* -X3364400Y287493D01* -G75* -D01* -G02X3300593Y351300I0J63807* -G01* -D02* -G37* -G36* -X3608207Y351300D02* -G75* -D01* -G02X3544400Y287493I-63807J0* -G01* -X3544400Y287493D01* -X3497417Y287493D01* -X3497417Y365783D01* -X3608207Y365783D01* -X3608207Y351300D01* -D02* -G37* -G36* -X2727107Y656633D02* -G75* -D01* -G02X2860893Y656633I66893J-148633* -G01* -X2860893Y656633D01* -X2794000Y589739D01* -X2727107Y656633D01* -D02* -G37* -G36* -X2734729Y508000D02* -G75* -D01* -G02X2734729Y508000I59271J0* -G01* -D02* -G37* -G36* -X2942633Y574893D02* -G75* -D01* -G02X2942633Y441107I-148633J-66893* -G01* -X2942633Y441107D01* -X2875739Y508000D01* -X2942633Y574893D01* -D02* -G37* -G36* -X3364400Y530107D02* -X3364400Y530107D01* -X3411383Y530107D01* -X3411383Y451817D01* -X3300593Y451817D01* -X3300593Y466300D01* -G75* -D01* -G02X3364400Y530107I63807J0* -G01* -D02* -G37* -G36* -X3543730Y873971D02* -X3543730Y873971D01* -X3543730Y830107D01* -X3544400Y830107D01* -G74* -D01* -G02X3608207Y766300I0J63807* -G01* -X3608207Y766300D01* -X3608207Y651300D01* -G75* -D01* -G02X3544400Y587493I-63807J0* -G01* -X3544400Y587493D01* -X3364400Y587493D01* -G75* -D01* -G02X3300593Y651300I0J63807* -G01* -X3300593Y651300D01* -X3300593Y766300D01* -G75* -D01* -G02X3364400Y830107I63807J0* -G01* -X3364400Y830107D01* -X3365070Y830107D01* -X3365070Y873971D01* -G75* -D01* -G02X3543730Y873971I89330J124828* -G01* -D02* -G37* -G36* -X3608207Y466300D02* -X3608207Y466300D01* -X3608207Y451817D01* -X3497417Y451817D01* -X3497417Y530107D01* -X3544400Y530107D01* -G74* -D01* -G02X3608207Y466300I0J63807* -G01* -D02* -G37* -G36* -X1230093Y393800D02* -G75* -D01* -G02X1293900Y457607I63807J0* -G01* -X1293900Y457607D01* -X1354206Y457607D01* -X1354206Y321994D01* -X1230093Y321994D01* -X1230093Y393800D01* -D02* -G37* -G36* -X1614707Y393800D02* -X1614707Y393800D01* -X1614707Y321994D01* -X1490594Y321994D01* -X1490594Y457607D01* -X1550900Y457607D01* -G74* -D01* -G02X1614707Y393800I0J63807* -G01* -D02* -G37* -G36* -X242900Y1009600D02* -G75* -D01* -G02X242900Y1009600I163500J0* -G01* -D02* -G37* -%LPD*% -G36* -X1760600Y2878293D02* -X1760600Y2878293D01* -X1714930Y2878293D01* -X1714930Y2641632D01* -X2020369Y2336193D01* -X2082832Y2273730D01* -X2582720Y2273730D01* -G74* -D01* -G02X2647145Y2311400I73180J51229* -G01* -G75* -D01* -G02X2566570Y2400300I8755J88900* -G01* -X2566570Y2400300D01* -X2566570Y2476500D01* -G74* -D01* -G02X2647145Y2565400I89330J0* -G01* -G75* -D01* -G02X2566570Y2654300I8755J88900* -G01* -X2566570Y2654300D01* -X2566570Y2730500D01* -G74* -D01* -G02X2647145Y2819400I89330J0* -G01* -G75* -D01* -G02X2566570Y2908300I8755J88900* -G01* -X2566570Y2908300D01* -X2566570Y2984500D01* -G74* -D01* -G02X2647145Y3073400I89330J0* -G01* -G75* -D01* -G02X2566570Y3162300I8755J88900* -G01* -X2566570Y3162300D01* -X2566570Y3238500D01* -G74* -D01* -G02X2586611Y3294882I89330J0* -G01* -X2586611Y3294882D01* -X2184423Y3294882D01* -G75* -D01* -G02X2142122Y3300593I0J159518* -G01* -X2142122Y3300593D01* -X2094423Y3300593D01* -G75* -D01* -G02X2030616Y3364400I0J63807* -G01* -X2030616Y3364400D01* -X2030616Y3412099D01* -G75* -D01* -G02X2030616Y3496701I153806J42301* -G01* -X2030616Y3496701D01* -X2030616Y3544400D01* -G75* -D01* -G02X2094423Y3608207I63807J0* -G01* -X2094423Y3608207D01* -X2142122Y3608207D01* -G75* -D01* -G02X2184423Y3613918I42301J-153806* -G01* -X2184423Y3613918D01* -X2586611Y3613918D01* -G75* -D01* -G02X2566570Y3670300I69289J56382* -G01* -X2566570Y3670300D01* -X2566570Y3746500D01* -G74* -D01* -G02X2647145Y3835400I89330J0* -G01* -G74* -D01* -G02X2582720Y3873070I8755J88900* -G01* -X2582720Y3873070D01* -X2495048Y3873070D01* -G74* -D01* -G02X2433500Y3826093I61547J16830* -G01* -X2433500Y3826093D01* -X2318500Y3826093D01* -G75* -D01* -G02X2286000Y3834990I0J63807* -G01* -G74* -D01* -G02X2253500Y3826093I32500J54910* -G01* -X2253500Y3826093D01* -X2138500Y3826093D01* -G75* -D01* -G02X2093648Y3844516I-1J63807* -G01* -X2093648Y3844516D01* -X1714930Y3465798D01* -X1714930Y3420907D01* -X1760600Y3420907D01* -G74* -D01* -G02X1824407Y3357100I0J63807* -G01* -X1824407Y3357100D01* -X1824407Y3242100D01* -G75* -D01* -G02X1760600Y3178293I-63807J0* -G01* -X1760600Y3178293D01* -X1490600Y3178293D01* -G75* -D01* -G02X1433985Y3212670I0J63807* -G01* -X1433985Y3212670D01* -X1252630Y3212670D01* -G75* -D01* -G02X1201009Y3212670I-25810J85519* -G01* -X1201009Y3212670D01* -X925669Y3212670D01* -G75* -D01* -G02X702740Y3209231I-112869J89329* -G01* -X702740Y3209231D01* -X702740Y3171362D01* -X762172Y3111930D01* -X1457965Y3111930D01* -G75* -D01* -G02X1490600Y3120907I32634J-54830* -G01* -X1490600Y3120907D01* -X1760600Y3120907D01* -G74* -D01* -G02X1824407Y3057100I0J63807* -G01* -X1824407Y3057100D01* -X1824407Y2942100D01* -G75* -D01* -G02X1760600Y2878293I-63807J0* -G01* -D02* -G37* -G36* -X699445Y3644713D02* -G74* -D01* -G03X646764Y3619166I10485J88713* -G01* -X646764Y3619166D01* -X597330Y3569732D01* -X597330Y4127328D01* -X747072Y4277070D01* -X1435299Y4277070D01* -G75* -D01* -G03X1490600Y4245093I55301J31830* -G01* -X1490600Y4245093D01* -X1760600Y4245093D01* -G75* -D01* -G03X1824407Y4308900I0J63807* -G01* -X1824407Y4308900D01* -X1824407Y4423900D01* -G74* -D01* -G03X1760600Y4487707I63807J0* -G01* -X1760600Y4487707D01* -X1490600Y4487707D01* -G75* -D01* -G03X1435299Y4455730I0J-63807* -G01* -X1435299Y4455730D01* -X1398191Y4455730D01* -G74* -D01* -G03X1413342Y4508070I128190J65470* -G01* -X1413342Y4508070D01* -X2056368Y4508070D01* -X1736005Y4187707D01* -X1490600Y4187707D01* -G75* -D01* -G03X1433985Y4153330I0J-63807* -G01* -X1433985Y4153330D01* -X934099Y4153330D01* -G74* -D01* -G03X839254Y4204248I94845J62875* -G01* -X839254Y4204248D01* -X786346Y4204248D01* -G75* -D01* -G03X672552Y4090454I0J-113794* -G01* -X672552Y4090454D01* -X672552Y4037546D01* -G75* -D01* -G03X739463Y3933859I113794J0* -G01* -G75* -D01* -G03X745049Y3683000I73337J-123859* -G01* -G74* -D01* -G03X699445Y3644713I67749J127000* -G01* -D02* -G37* -G36* -X2376000Y993893D02* -X2376000Y993893D01* -X2196000Y993893D01* -G75* -D01* -G02X2140699Y1025870I0J63807* -G01* -X2140699Y1025870D01* -X2126501Y1025870D01* -G74* -D01* -G02X2071200Y993893I55301J31830* -G01* -X2071200Y993893D01* -X1891200Y993893D01* -G75* -D01* -G02X1841930Y1017156I0J63807* -G01* -X1841930Y1017156D01* -X1841930Y926002D01* -X1848142Y919789D01* -G75* -D01* -G02X1891200Y936507I43058J-47089* -G01* -X1891200Y936507D01* -X2071200Y936507D01* -G74* -D01* -G02X2126501Y904530I0J63807* -G01* -X2126501Y904530D01* -X2140699Y904530D01* -G75* -D01* -G02X2196000Y936507I55301J-31830* -G01* -X2196000Y936507D01* -X2376000Y936507D01* -G74* -D01* -G02X2439807Y872700I0J63807* -G01* -X2439807Y872700D01* -X2439807Y757700D01* -G75* -D01* -G02X2376000Y693893I-63807J0* -G01* -X2376000Y693893D01* -X2375330Y693893D01* -X2375330Y644332D01* -G74* -D01* -G02X2413000Y610163I89329J136332* -G01* -G74* -D01* -G02X2450670Y644332I126999J102163* -G01* -X2450670Y644332D01* -X2450670Y1139598D01* -X2439807Y1150461D01* -X2439807Y1057700D01* -G75* -D01* -G02X2376000Y993893I-63807J0* -G01* -D02* -G37* -G36* -X787400Y1117600D02* -X787400Y1117600D01* -X1549400Y1117600D01* -X1549400Y736600D01* -X1295400Y736600D01* -X787400Y939800D01* -X787400Y1117600D01* -D02* -G37* -G36* -X925669Y3391330D02* -G74* -D01* -G03X880551Y3429000I112868J89330* -G01* -G75* -D01* -G03X880551Y3683000I-67750J127000* -G01* -G74* -D01* -G03X925669Y3720670I67750J127000* -G01* -X925669Y3720670D01* -X1129185Y3720670D01* -G75* -D01* -G03X1185800Y3686293I56615J29430* -G01* -X1185800Y3686293D01* -X1455800Y3686293D01* -G74* -D01* -G03X1512415Y3720670I0J63807* -G01* -X1512415Y3720670D01* -X1715696Y3720670D01* -G75* -D01* -G03X1717149Y3720681I50J89330* -G01* -X1717149Y3720681D01* -X1562434Y3565966D01* -G75* -D01* -G03X1536270Y3502656I63166J-63166* -G01* -X1536270Y3502656D01* -X1536270Y3420907D01* -X1512537Y3420907D01* -G75* -D01* -G03X1519607Y3450100I-56736J29193* -G01* -X1519607Y3450100D01* -X1519607Y3565100D01* -G74* -D01* -G03X1455800Y3628907I63807J0* -G01* -X1455800Y3628907D01* -X1185800Y3628907D01* -G75* -D01* -G03X1121993Y3565100I0J-63807* -G01* -X1121993Y3565100D01* -X1121993Y3450100D01* -G75* -D01* -G03X1160951Y3391330I63807J0* -G01* -X1160951Y3391330D01* -X925669Y3391330D01* -D02* -G37* -G36* -X2566570Y4178300D02* -X2566570Y4178300D01* -X2566570Y4254070D01* -X2286172Y4254070D01* -X2130277Y4098175D01* -G75* -D01* -G02X2138500Y4098707I8222J-63275* -G01* -X2138500Y4098707D01* -X2253500Y4098707D01* -G74* -D01* -G02X2286000Y4089810I0J63807* -G01* -G75* -D01* -G02X2318500Y4098707I32500J-54910* -G01* -X2318500Y4098707D01* -X2433500Y4098707D01* -G74* -D01* -G02X2495048Y4051730I1J63807* -G01* -X2495048Y4051730D01* -X2582720Y4051730D01* -G74* -D01* -G02X2647145Y4089400I73180J51229* -G01* -G75* -D01* -G02X2566570Y4178300I8755J88900* -G01* -D02* -G37* -G36* -X925669Y3899330D02* -G74* -D01* -G03X886137Y3933859I112869J89329* -G01* -G74* -D01* -G03X934099Y3974670I46883J103686* -G01* -X934099Y3974670D01* -X1436752Y3974670D01* -G75* -D01* -G03X1490600Y3945093I53848J34229* -G01* -X1490600Y3945093D01* -X1724531Y3945093D01* -X1678768Y3899330D01* -X1509648Y3899330D01* -G74* -D01* -G03X1455800Y3928907I53848J34229* -G01* -X1455800Y3928907D01* -X1185800Y3928907D01* -G75* -D01* -G03X1131952Y3899330I0J-63807* -G01* -X1131952Y3899330D01* -X925669Y3899330D01* -D02* -G37* -G36* -X2309229Y1265070D02* -X2309229Y1265070D01* -X2325198Y1265070D01* -X2353761Y1236507D01* -X2282703Y1236507D01* -G74* -D01* -G03X2309229Y1265070I98303J117891* -G01* -D02* -G37* -G54D11* -X787400Y1117600D02* -X1549400Y1117600D01* -X1549400Y736600D01* -X1295400Y736600D01* -X787400Y939800D01* -X787400Y1117600D01* -X2821307Y4787900D02* -X2821307Y4717860D01* -G75* -D01* -G02X2855900Y4724830I34593J-82359* -G01* -X2932100Y4724830D01* -G74* -D01* -G02X3021430Y4635500I0J89330* -G01* -X3021430Y4559300D01* -G75* -D01* -G02X2940855Y4470400I-89330J0* -G01* -G74* -D01* -G02X3021430Y4381500I8755J88900* -G01* -X3021430Y4379662D01* -X3024710Y4382942D01* -X3024710Y5027758D01* -X2858598Y5193870D01* -X1490507Y5193870D01* -X1490507Y5148200D01* -G75* -D01* -G02X1426700Y5084393I-63807J0* -G01* -X1311700Y5084393D01* -G75* -D01* -G02X1247893Y5148200I0J63807* -G01* -X1247893Y5418200D01* -G75* -D01* -G02X1311700Y5482007I63807J0* -G01* -X1426700Y5482007D01* -G74* -D01* -G02X1490507Y5418200I0J63807* -G01* -X1490507Y5372530D01* -X2022842Y5372530D01* -G75* -D01* -G02X2244358Y5372530I110758J120269* -G01* -X2530842Y5372530D01* -G75* -D01* -G02X2752358Y5372530I110758J120269* -G01* -X2895490Y5372530D01* -G75* -D01* -G02X2928856Y5366109I110J-89330* -G01* -G74* -D01* -G02X2958845Y5346286I33257J82908* -G01* -X3177126Y5128005D01* -G74* -D01* -G02X3203370Y5064760I63085J63245* -G01* -X3203370Y4345940D01* -G75* -D01* -G02X3177126Y4282695I-89330J1* -G01* -X3047745Y4153314D01* -G74* -D01* -G02X3021121Y4134921I63246J63084* -G01* -G74* -D01* -G02X3021430Y4127500I89020J7424* -G01* -X3021430Y4051300D01* -G75* -D01* -G02X2940855Y3962400I-89330J0* -G01* -G74* -D01* -G02X3021148Y3880588I8755J88900* -G01* -X2939188Y3880588D01* -X2939188Y3962252D01* -G74* -D01* -G02X2932100Y3961970I7092J89047* -G01* -X2855900Y3961970D01* -G75* -D01* -G02X2848812Y3962252I4J89330* -G01* -X2848812Y3880588D01* -X2810004Y3880588D01* -G74* -D01* -G02X2740855Y3835400I77904J43711* -G01* -G74* -D01* -G02X2810004Y3790212I8756J88900* -G01* -X2848812Y3790212D01* -X2848812Y3708548D01* -G75* -D01* -G02X2855900Y3708830I7092J-89047* -G01* -X2932100Y3708830D01* -G74* -D01* -G02X2939188Y3708548I4J89330* -G01* -X2939188Y3790212D01* -X3021148Y3790212D01* -G74* -D01* -G02X2940855Y3708400I89047J7087* -G01* -G74* -D01* -G02X3021430Y3619500I8755J88900* -G01* -X3021430Y3543300D01* -G75* -D01* -G02X2940855Y3454400I-89330J0* -G01* -G74* -D01* -G02X3021430Y3365500I8755J88900* -G01* -X3021430Y3289300D01* -G75* -D01* -G02X3001389Y3232918I-89330J0* -G01* -X3318326Y3232918D01* -G75* -D01* -G02X3364423Y3252607I46097J-44117* -G01* -X3412122Y3252607D01* -G75* -D01* -G02X3496724Y3252607I42301J-153806* -G01* -X3544423Y3252607D01* -G74* -D01* -G02X3608231Y3188800I1J63807* -G01* -X3608231Y3141101D01* -G75* -D01* -G02X3608231Y3056499I-153807J-42301* -G01* -X3608231Y3008800D01* -G75* -D01* -G02X3544423Y2944993I-63808J1* -G01* -X3523668Y2944993D01* -G74* -D01* -G02X3429023Y2913882I94645J128407* -G01* -X3001389Y2913882D01* -G74* -D01* -G02X3021430Y2857500I69289J56382* -G01* -X3021430Y2781300D01* -G75* -D01* -G02X2940855Y2692400I-89330J0* -G01* -G74* -D01* -G02X3021148Y2610588I8755J88900* -G01* -X2939188Y2610588D01* -X2939188Y2692252D01* -G74* -D01* -G02X2932100Y2691970I7092J89047* -G01* -X2855900Y2691970D01* -G75* -D01* -G02X2848812Y2692252I4J89330* -G01* -X2848812Y2610588D01* -X2810004Y2610588D01* -G74* -D01* -G02X2740855Y2565400I77904J43711* -G01* -G74* -D01* -G02X2810004Y2520212I8756J88900* -G01* -X2848812Y2520212D01* -X2848812Y2438548D01* -G75* -D01* -G02X2855900Y2438830I7092J-89047* -G01* -X2932100Y2438830D01* -G74* -D01* -G02X2939188Y2438548I4J89330* -G01* -X2939188Y2520212D01* -X3021148Y2520212D01* -G74* -D01* -G02X2940855Y2438400I89047J7087* -G01* -G74* -D01* -G02X3021430Y2349500I8755J88900* -G01* -X3021430Y2273300D01* -G75* -D01* -G02X2940855Y2184400I-89330J0* -G01* -G74* -D01* -G02X3021430Y2095500I8755J88900* -G01* -X3021430Y2019300D01* -G75* -D01* -G02X2940855Y1930400I-89330J0* -G01* -G74* -D01* -G02X3021430Y1841500I8755J88900* -G01* -X3021430Y1765300D01* -G75* -D01* -G02X2932100Y1675970I-89330J0* -G01* -X2855900Y1675970D01* -G75* -D01* -G02X2821430Y1682888I-1J89330* -G01* -X2821430Y1638300D01* -G75* -D01* -G02X2732100Y1548970I-89330J0* -G01* -X2655900Y1548970D01* -G75* -D01* -G02X2566570Y1638300I0J89330* -G01* -X2566570Y1714500D01* -G74* -D01* -G02X2647145Y1803400I89330J0* -G01* -G75* -D01* -G02X2566570Y1892300I8755J88900* -G01* -X2566570Y1968500D01* -G74* -D01* -G02X2647145Y2057400I89330J0* -G01* -G74* -D01* -G02X2582720Y2095070I8755J88900* -G01* -X2045877Y2095070D01* -G75* -D01* -G02X1982664Y2121234I-47J89330* -G01* -X1562434Y2541464D01* -G75* -D01* -G02X1536270Y2604716I63166J63166* -G01* -X1536270Y2878293D01* -X1490600Y2878293D01* -G75* -D01* -G02X1427407Y2933270I0J63807* -G01* -X725170Y2933270D01* -G75* -D01* -G02X701417Y2936486I0J89330* -G01* -G74* -D01* -G02X662004Y2959434I23752J86113* -G01* -X597330Y3024108D01* -X597330Y2563005D01* -G74* -D01* -G02X648212Y2472271I55458J90734* -G01* -X648212Y2404529D01* -G75* -D01* -G02X597330Y2313795I-106341J0* -G01* -X597330Y2297269D01* -G75* -D01* -G02X597330Y2071531I-89329J-112869* -G01* -X597330Y2043269D01* -G75* -D01* -G02X597330Y1817531I-89329J-112869* -G01* -X597330Y1789269D01* -G75* -D01* -G02X597330Y1563531I-89329J-112869* -G01* -X597330Y1486330D01* -X1473200Y1486330D01* -G74* -D01* -G02X1536445Y1460086I1J89330* -G01* -X1815686Y1180845D01* -G74* -D01* -G02X1827393Y1166446I63083J63248* -G01* -X1827393Y1172700D01* -G75* -D01* -G02X1891200Y1236507I63807J0* -G01* -X1891870Y1236507D01* -X1891870Y1239969D01* -G75* -D01* -G02X1918034Y1303266I89330J131* -G01* -X2032334Y1417566D01* -G74* -D01* -G02X2052310Y1432595I63165J63167* -G01* -G75* -D01* -G02X2309229Y1443730I132090J-78194* -G01* -X2362157Y1443730D01* -G75* -D01* -G02X2370371Y1443356I48J-89330* -G01* -G74* -D01* -G02X2425445Y1417486I8172J88955* -G01* -X2603086Y1239845D01* -G74* -D01* -G02X2629330Y1176600I63085J63245* -G01* -X2629330Y644332D01* -G74* -D01* -G02X2702712Y517549I89329J136332* -G01* -X2712261Y508000D01* -X2702712Y498451D01* -G75* -D01* -G02X2413000Y405837I-162711J9547* -G01* -G75* -D01* -G02X2196670Y644332I-126997J102166* -G01* -X2196670Y693893D01* -X2196000Y693893D01* -G75* -D01* -G02X2140699Y725870I0J63807* -G01* -X2126501Y725870D01* -G74* -D01* -G02X2071200Y693893I55301J31830* -G01* -X1891200Y693893D01* -G75* -D01* -G02X1835899Y725870I0J63807* -G01* -X1826450Y725870D01* -G75* -D01* -G02X1763234Y752034I-50J89330* -G01* -X1689434Y825834D01* -G75* -D01* -G02X1663270Y889088I63166J63166* -G01* -X1663270Y1080598D01* -X1625968Y1117900D01* -G74* -D01* -G02X1625969Y1117600I76567J405* -G01* -X1625969Y736600D01* -G75* -D01* -G02X1567930Y662307I-76569J0* -G01* -G74* -D01* -G02X1550900Y659993I17028J61493* -G01* -X1293900Y659993D01* -G75* -D01* -G02X1276871Y662307I-1J63807* -G01* -G74* -D01* -G02X1266963Y665508I18531J74292* -G01* -X758963Y868708D01* -G75* -D01* -G02X710831Y939939I28436J71092* -G01* -X710831Y1117600D01* -G75* -D01* -G02X787400Y1194169I76569J0* -G01* -X1549400Y1194169D01* -G74* -D01* -G02X1549700Y1194168I105J76569* -G01* -X1436198Y1307670D01* -X508000Y1307670D01* -G75* -D01* -G02X418670Y1397000I0J89330* -G01* -X418670Y1563531D01* -G75* -D01* -G02X418670Y1789269I89329J112869* -G01* -X418670Y1817531D01* -G75* -D01* -G02X418670Y2043269I89329J112869* -G01* -X418670Y2071531D01* -G75* -D01* -G02X418670Y2297269I89329J112869* -G01* -X418670Y2313795D01* -G75* -D01* -G02X367788Y2404529I55458J90734* -G01* -X367788Y2472271D01* -G74* -D01* -G02X418670Y2563005I106341J0* -G01* -X418670Y4408331D01* -G75* -D01* -G02X418670Y4634069I89329J112869* -G01* -X418670Y4650595D01* -G75* -D01* -G02X367788Y4741329I55458J90734* -G01* -X367788Y4809071D01* -G74* -D01* -G02X418670Y4899805I106341J0* -G01* -X418670Y5029034D01* -G75* -D01* -G02X444834Y5092366I89330J166* -G01* -X698834Y5346366D01* -G74* -D01* -G02X749888Y5371705I63166J63166* -G01* -G75* -D01* -G02X762000Y5372530I12112J-88504* -G01* -X947893Y5372530D01* -X947893Y5418200D01* -G75* -D01* -G02X1011700Y5482007I63807J0* -G01* -X1126700Y5482007D01* -G74* -D01* -G02X1190507Y5418200I0J63807* -G01* -X1190507Y5148200D01* -G75* -D01* -G02X1126700Y5084393I-63807J0* -G01* -X1011700Y5084393D01* -G75* -D01* -G02X947893Y5148200I0J63807* -G01* -X947893Y5193870D01* -X799002Y5193870D01* -X597330Y4992198D01* -X597330Y4899805D01* -G74* -D01* -G02X648212Y4809071I55458J90734* -G01* -X648212Y4741329D01* -G75* -D01* -G02X597330Y4650595I-106341J0* -G01* -X597330Y4634069D01* -G75* -D01* -G02X597330Y4408331I-89329J-112869* -G01* -X597330Y4379992D01* -X646904Y4429566D01* -G74* -D01* -G02X677608Y4449623I63166J63166* -G01* -G75* -D01* -G02X710070Y4455730I32462J-83223* -G01* -X1141809Y4455730D01* -G75* -D01* -G02X1202249Y4648200I128190J65470* -G01* -G75* -D01* -G02X1382869Y4864530I67754J126998* -G01* -X2640232Y4864530D01* -G75* -D01* -G02X2669697Y4859565I98J-89330* -G01* -G74* -D01* -G02X2686444Y4851707I29368J84364* -G01* -X2757500Y4851707D01* -G74* -D01* -G02X2821307Y4787900I0J63807* -G01* -X1202249Y2311400D02* -G75* -D01* -G02X1337751Y2311400I67751J126999* -G01* -G75* -D01* -G02X1337751Y2057400I-67750J-127000* -G01* -G75* -D01* -G02X1337751Y1803400I-67750J-127000* -G01* -G75* -D01* -G02X1202249Y1803400I-67751J-126999* -G01* -G75* -D01* -G02X1202249Y2057400I67750J127000* -G01* -G75* -D01* -G02X1202249Y2311400I67750J127000* -G01* -X2986100Y5492800D02* -G75* -D01* -G02X2986100Y5492800I163500J0* -G01* -X3494100Y5492800D02* -G75* -D01* -G02X3494100Y5492800I163500J0* -G01* -X2864000Y2565400D02* -G75* -D01* -G02X2864000Y2565400I30000J0* -G01* -X2864000Y3835400D02* -G75* -D01* -G02X2864000Y3835400I30000J0* -G01* -X2860893Y359367D02* -G75* -D01* -G02X2727107Y359367I-66893J148633* -G01* -X2794000Y426261D01* -X2860893Y359367D01* -X3300593Y351300D02* -X3300593Y365783D01* -X3411383Y365783D01* -X3411383Y287493D01* -X3364400Y287493D01* -G75* -D01* -G02X3300593Y351300I0J63807* -G01* -X3608207Y351300D02* -G75* -D01* -G02X3544400Y287493I-63807J0* -G01* -X3497417Y287493D01* -X3497417Y365783D01* -X3608207Y365783D01* -X3608207Y351300D01* -X2727107Y656633D02* -G75* -D01* -G02X2860893Y656633I66893J-148633* -G01* -X2794000Y589739D01* -X2727107Y656633D01* -X2734729Y508000D02* -G75* -D01* -G02X2734729Y508000I59271J0* -G01* -X2942633Y574893D02* -G75* -D01* -G02X2942633Y441107I-148633J-66893* -G01* -X2875739Y508000D01* -X2942633Y574893D01* -X3364400Y530107D02* -X3411383Y530107D01* -X3411383Y451817D01* -X3300593Y451817D01* -X3300593Y466300D01* -G75* -D01* -G02X3364400Y530107I63807J0* -G01* -X3543730Y873971D02* -X3543730Y830107D01* -X3544400Y830107D01* -G74* -D01* -G02X3608207Y766300I0J63807* -G01* -X3608207Y651300D01* -G75* -D01* -G02X3544400Y587493I-63807J0* -G01* -X3364400Y587493D01* -G75* -D01* -G02X3300593Y651300I0J63807* -G01* -X3300593Y766300D01* -G75* -D01* -G02X3364400Y830107I63807J0* -G01* -X3365070Y830107D01* -X3365070Y873971D01* -G75* -D01* -G02X3543730Y873971I89330J124828* -G01* -X3608207Y466300D02* -X3608207Y451817D01* -X3497417Y451817D01* -X3497417Y530107D01* -X3544400Y530107D01* -G74* -D01* -G02X3608207Y466300I0J63807* -G01* -X1230093Y393800D02* -G75* -D01* -G02X1293900Y457607I63807J0* -G01* -X1354206Y457607D01* -X1354206Y321994D01* -X1230093Y321994D01* -X1230093Y393800D01* -X1614707Y393800D02* -X1614707Y321994D01* -X1490594Y321994D01* -X1490594Y457607D01* -X1550900Y457607D01* -G74* -D01* -G02X1614707Y393800I0J63807* -G01* -X242900Y1009600D02* -G75* -D01* -G02X242900Y1009600I163500J0* -G01* -X1590549Y63807D02* -X3936193Y63807D01* -X3936193Y6436193D01* -X63807Y6436193D01* -X63807Y63807D01* -X1254251Y63807D01* -G75* -D01* -G02X1230093Y113800I39649J49993* -G01* -X1230093Y185606D01* -X1354206Y185606D01* -X1354206Y63807D01* -X1490594Y63807D01* -X1490594Y185606D01* -X1614707Y185606D01* -X1614707Y113800D01* -G75* -D01* -G02X1590549Y63807I-63807J0* -G01* -X2376000Y993893D02* -X2196000Y993893D01* -G75* -D01* -G02X2140699Y1025870I0J63807* -G01* -X2126501Y1025870D01* -G74* -D01* -G02X2071200Y993893I55301J31830* -G01* -X1891200Y993893D01* -G75* -D01* -G02X1841930Y1017156I0J63807* -G01* -X1841930Y926002D01* -X1848142Y919789D01* -G75* -D01* -G02X1891200Y936507I43058J-47089* -G01* -X2071200Y936507D01* -G74* -D01* -G02X2126501Y904530I0J63807* -G01* -X2140699Y904530D01* -G75* -D01* -G02X2196000Y936507I55301J-31830* -G01* -X2376000Y936507D01* -G74* -D01* -G02X2439807Y872700I0J63807* -G01* -X2439807Y757700D01* -G75* -D01* -G02X2376000Y693893I-63807J0* -G01* -X2375330Y693893D01* -X2375330Y644332D01* -G74* -D01* -G02X2413000Y610163I89329J136332* -G01* -G74* -D01* -G02X2450670Y644332I126999J102163* -G01* -X2450670Y1139598D01* -X2439807Y1150461D01* -X2439807Y1057700D01* -G75* -D01* -G02X2376000Y993893I-63807J0* -G01* -X2309229Y1265070D02* -X2325198Y1265070D01* -X2353761Y1236507D01* -X2282703Y1236507D01* -G74* -D01* -G03X2309229Y1265070I98303J117891* -G01* -X1760600Y2878293D02* -X1714930Y2878293D01* -X1714930Y2641632D01* -X2020369Y2336193D01* -X2082832Y2273730D01* -X2582720Y2273730D01* -G74* -D01* -G02X2647145Y2311400I73180J51229* -G01* -G75* -D01* -G02X2566570Y2400300I8755J88900* -G01* -X2566570Y2476500D01* -G74* -D01* -G02X2647145Y2565400I89330J0* -G01* -G75* -D01* -G02X2566570Y2654300I8755J88900* -G01* -X2566570Y2730500D01* -G74* -D01* -G02X2647145Y2819400I89330J0* -G01* -G75* -D01* -G02X2566570Y2908300I8755J88900* -G01* -X2566570Y2984500D01* -G74* -D01* -G02X2647145Y3073400I89330J0* -G01* -G75* -D01* -G02X2566570Y3162300I8755J88900* -G01* -X2566570Y3238500D01* -G74* -D01* -G02X2586611Y3294882I89330J0* -G01* -X2184423Y3294882D01* -G75* -D01* -G02X2142122Y3300593I0J159518* -G01* -X2094423Y3300593D01* -G75* -D01* -G02X2030616Y3364400I0J63807* -G01* -X2030616Y3412099D01* -G75* -D01* -G02X2030616Y3496701I153806J42301* -G01* -X2030616Y3544400D01* -G75* -D01* -G02X2094423Y3608207I63807J0* -G01* -X2142122Y3608207D01* -G75* -D01* -G02X2184423Y3613918I42301J-153806* -G01* -X2586611Y3613918D01* -G75* -D01* -G02X2566570Y3670300I69289J56382* -G01* -X2566570Y3746500D01* -G74* -D01* -G02X2647145Y3835400I89330J0* -G01* -G74* -D01* -G02X2582720Y3873070I8755J88900* -G01* -X2495048Y3873070D01* -G74* -D01* -G02X2433500Y3826093I61547J16830* -G01* -X2318500Y3826093D01* -G75* -D01* -G02X2286000Y3834990I0J63807* -G01* -G74* -D01* -G02X2253500Y3826093I32500J54910* -G01* -X2138500Y3826093D01* -G75* -D01* -G02X2093648Y3844516I-1J63807* -G01* -X1714930Y3465798D01* -X1714930Y3420907D01* -X1760600Y3420907D01* -G74* -D01* -G02X1824407Y3357100I0J63807* -G01* -X1824407Y3242100D01* -G75* -D01* -G02X1760600Y3178293I-63807J0* -G01* -X1490600Y3178293D01* -G75* -D01* -G02X1433985Y3212670I0J63807* -G01* -X1252630Y3212670D01* -G75* -D01* -G02X1201009Y3212670I-25810J85519* -G01* -X925669Y3212670D01* -G75* -D01* -G02X702740Y3209231I-112869J89329* -G01* -X702740Y3171362D01* -X762172Y3111930D01* -X1457965Y3111930D01* -G75* -D01* -G02X1490600Y3120907I32634J-54830* -G01* -X1760600Y3120907D01* -G74* -D01* -G02X1824407Y3057100I0J63807* -G01* -X1824407Y2942100D01* -G75* -D01* -G02X1760600Y2878293I-63807J0* -G01* -X925669Y3391330D02* -G74* -D01* -G03X880551Y3429000I112868J89330* -G01* -G75* -D01* -G03X880551Y3683000I-67750J127000* -G01* -G74* -D01* -G03X925669Y3720670I67750J127000* -G01* -X1129185Y3720670D01* -G75* -D01* -G03X1185800Y3686293I56615J29430* -G01* -X1455800Y3686293D01* -G74* -D01* -G03X1512415Y3720670I0J63807* -G01* -X1715696Y3720670D01* -G75* -D01* -G03X1717149Y3720681I50J89330* -G01* -X1562434Y3565966D01* -G75* -D01* -G03X1536270Y3502656I63166J-63166* -G01* -X1536270Y3420907D01* -X1512537Y3420907D01* -G75* -D01* -G03X1519607Y3450100I-56736J29193* -G01* -X1519607Y3565100D01* -G74* -D01* -G03X1455800Y3628907I63807J0* -G01* -X1185800Y3628907D01* -G75* -D01* -G03X1121993Y3565100I0J-63807* -G01* -X1121993Y3450100D01* -G75* -D01* -G03X1160951Y3391330I63807J0* -G01* -X925669Y3391330D01* -X699445Y3644713D02* -G74* -D01* -G03X646764Y3619166I10485J88713* -G01* -X597330Y3569732D01* -X597330Y4127328D01* -X747072Y4277070D01* -X1435299Y4277070D01* -G75* -D01* -G03X1490600Y4245093I55301J31830* -G01* -X1760600Y4245093D01* -G75* -D01* -G03X1824407Y4308900I0J63807* -G01* -X1824407Y4423900D01* -G74* -D01* -G03X1760600Y4487707I63807J0* -G01* -X1490600Y4487707D01* -G75* -D01* -G03X1435299Y4455730I0J-63807* -G01* -X1398191Y4455730D01* -G74* -D01* -G03X1413342Y4508070I128190J65470* -G01* -X2056368Y4508070D01* -X1736005Y4187707D01* -X1490600Y4187707D01* -G75* -D01* -G03X1433985Y4153330I0J-63807* -G01* -X934099Y4153330D01* -G74* -D01* -G03X839254Y4204248I94845J62875* -G01* -X786346Y4204248D01* -G75* -D01* -G03X672552Y4090454I0J-113794* -G01* -X672552Y4037546D01* -G75* -D01* -G03X739463Y3933859I113794J0* -G01* -G75* -D01* -G03X745049Y3683000I73337J-123859* -G01* -G74* -D01* -G03X699445Y3644713I67749J127000* -G01* -X925669Y3899330D02* -G74* -D01* -G03X886137Y3933859I112869J89329* -G01* -G74* -D01* -G03X934099Y3974670I46883J103686* -G01* -X1436752Y3974670D01* -G75* -D01* -G03X1490600Y3945093I53848J34229* -G01* -X1724531Y3945093D01* -X1678768Y3899330D01* -X1509648Y3899330D01* -G74* -D01* -G03X1455800Y3928907I53848J34229* -G01* -X1185800Y3928907D01* -G75* -D01* -G03X1131952Y3899330I0J-63807* -G01* -X925669Y3899330D01* -X2566570Y4178300D02* -X2566570Y4254070D01* -X2286172Y4254070D01* -X2130277Y4098175D01* -G75* -D01* -G02X2138500Y4098707I8222J-63275* -G01* -X2253500Y4098707D01* -G74* -D01* -G02X2286000Y4089810I0J63807* -G01* -G75* -D01* -G02X2318500Y4098707I32500J-54910* -G01* -X2433500Y4098707D01* -G74* -D01* -G02X2495048Y4051730I1J63807* -G01* -X2582720Y4051730D01* -G74* -D01* -G02X2647145Y4089400I73180J51229* -G01* -G75* -D01* -G02X2566570Y4178300I8755J88900* -G01* -G54D12* -X3454400Y304600D02* -X3302000Y152200D01* -X3454400Y408800D02* -X3454400Y304600D01* -X2286000Y815200D02* -X2286000Y508000D01* -X3454400Y408800D02* -X2893200Y408800D01* -X2794000Y508000D01* -X3454400Y708800D02* -X3454400Y998800D01* -X1752600Y1117600D02* -X1752600Y889000D01* -X1826400Y815200D01* -X2286000Y815200D01* -X1473200Y1397000D02* -X1752600Y1117600D01* -X508000Y5029200D02* -X508000Y1397000D01* -X1473200Y1397000D01* -X1459230Y3302000D02* -X812800Y3302000D01* -X1625600Y3299600D02* -X1461630Y3299600D01* -X1715770Y3810000D02* -X812800Y3810000D01* -X2249170Y4343400D02* -X1715770Y3810000D01* -X2694000Y3962400D02* -X2376000Y3962400D01* -X2894000Y4343400D02* -X2249170Y4343400D01* -X2694000Y4216400D02* -X2984500Y4216400D01* -X3114040Y4345940D01* -X3114040Y5064760D01* -X1346200Y4597400D02* -X1270000Y4521200D01* -X2894000Y4597400D02* -X1346200Y4597400D01* -X762000Y5283200D02* -X508000Y5029200D01* -X3114040Y5064760D02* -X2895600Y5283200D01* -X1069200Y5283200D02* -X762000Y5283200D01* -X2895600Y5283200D02* -X1369200Y5283200D01* -X1981200Y1240100D02* -X2095500Y1354400D01* -X1981200Y1115200D02* -X1981200Y1240100D01* -X710070Y4366400D02* -X511810Y4168140D01* -X1625600Y4366400D02* -X710070Y4366400D01* -X613410Y3459480D02* -X709930Y3556000D01* -X812800Y3556000D01* -X725170Y3022600D02* -X613410Y3134360D01* -X725170Y3022600D02* -X1602600Y3022600D01* -X613410Y3134360D02* -X613410Y3459480D01* -X1602600Y3022600D02* -X1625600Y2999600D01* -X1625600Y2604630D02* -X2045830Y2184400D01* -X1625600Y2604630D02* -X1625600Y2999600D01* -X2045830Y2184400D02* -X2694000Y2184400D01* -X2085200Y3962400D02* -X1625600Y3502800D01* -X2085200Y3962400D02* -X2196000Y3962400D01* -X1625600Y3502800D02* -X1625600Y3299600D01* -X1320800Y3392170D02* -X1226820Y3298190D01* -X1320800Y3507600D02* -X1320800Y3392170D01* -X2691130Y4724400D02* -X2640330Y4775200D01* -X2694000Y4724400D02* -X2691130Y4724400D01* -X2640330Y4775200D02* -X1270000Y4775200D01* -X1738630Y4064000D02* -X2145030Y4470400D01* -X2694000Y4470400D01* -X812800Y4064000D02* -X1738630Y4064000D01* -X1981200Y1115200D02* -X2286000Y1115200D01* -X2540000Y508000D02* -X2540000Y1176600D01* -X2362200Y1354400D01* -X2095500Y1354400D02* -X2362200Y1354400D01* -G54D13* -X3694230Y152200D02* -X3840480Y298450D01* -X3840480Y298450D02* -X3840480Y3542030D01* -X3562350Y2565400D02* -X3835400Y2292350D01* -X2894000Y2565400D02* -X3562350Y2565400D01* -X2894000Y3073400D02* -X3429023Y3073400D01* -X3454423Y3098800D01* -X2694000Y3454400D02* -X2184423Y3454400D01* -X3840480Y3542030D02* -X3547110Y3835400D01* -X2894000Y3835400D01* -X3694230Y152200D02* -X1524000Y152200D01* -X1422400Y253800D01* -G54D14* -X-63500Y-63500D02* -X-63500Y599200D01* -X-63500Y-63500D02* -X349200Y-63500D01* -X4063500Y-63500D02* -X3650800Y-63500D01* -X4063500Y-63500D02* -X4063500Y599200D01* -X4063500Y6563500D02* -X4063500Y5900800D01* -X4063500Y6563500D02* -X3650800Y6563500D01* -X-63500Y6563500D02* -X349200Y6563500D01* -X-63500Y6563500D02* -X-63500Y5900800D01* -X-563500Y-63500D02* -X-1563500Y-63500D01* -X-1063500Y-563500D02* -X-1063500Y436500D01* -X-1438500Y-63500D02* -G75* -D01* -G02X-1438500Y-63500I375000J0* -G01* -X4563500Y-63500D02* -X5563500Y-63500D01* -X5063500Y-563500D02* -X5063500Y436500D01* -X4688500Y-63500D02* -G75* -D01* -G02X4688500Y-63500I375000J0* -G01* -X4938500Y-63500D02* -G75* -D01* -G02X4938500Y-63500I125000J0* -G01* -X-563500Y6563500D02* -X-1563500Y6563500D01* -X-1063500Y6063500D02* -X-1063500Y7063500D01* -X-1438500Y6563500D02* -G75* -D01* -G02X-1438500Y6563500I375000J0* -G01* -X-1313500Y6563500D02* -G75* -D01* -G02X-1313500Y6563500I250000J0* -G01* -X-1188500Y6563500D02* -G75* -D01* -G02X-1188500Y6563500I125000J0* -G01* -G54D15* -X406400Y1009600D03* -X914400Y1009600D03* -X3657600Y5492800D03* -X3149600Y5492800D03* -X2641600Y5492800D03* -X2133600Y5492800D03* -G54D16* -X3454400Y408800D03* -X3454400Y708800D03* -X1981200Y815200D03* -X1981200Y1115200D03* -X2286000Y815200D03* -X2286000Y1115200D03* -G54D17* -X1270000Y2438400D03* -X508000Y1676400D03* -X1270000Y1676400D03* -X508000Y1930400D03* -X508000Y2184400D03* -X1270000Y1930400D03* -X1270000Y2184400D03* -X508000Y4521200D03* -X1270000Y4521200D03* -X1270000Y4775200D03* -X812800Y3556000D03* -X812800Y3810000D03* -X812800Y3302000D03* -G54D18* -X508000Y2438400D03* -X508000Y4775200D03* -G54D19* -X474129Y2404529D02* -X541871Y2404529D01* -X541871Y2472271D01* -X474129Y2472271D01* -X474129Y2404529D01*D02* -X474129Y4741329D02* -X541871Y4741329D01* -X541871Y4809071D01* -X474129Y4809071D01* -X474129Y4741329D01*D02* -G54D20* -X2694000Y4470400D03* -X2694000Y4216400D03* -X2694000Y3962400D03* -X2694000Y3708400D03* -X2694000Y3454400D03* -X2694000Y3200400D03* -X2694000Y2946400D03* -X2694000Y2692400D03* -X2694000Y2438400D03* -X2694000Y2184400D03* -X2694000Y1930400D03* -X2694000Y1676400D03* -X2894000Y4597400D03* -X2894000Y4343400D03* -X2894000Y4089400D03* -X2894000Y3835400D03* -X2894000Y3581400D03* -X2894000Y3327400D03* -X2894000Y3073400D03* -X2894000Y2819400D03* -X2894000Y2565400D03* -X2894000Y2311400D03* -X2894000Y2057400D03* -X2894000Y1803400D03* -G54D21* -X2655900Y4432300D02* -X2732100Y4432300D01* -X2732100Y4508500D01* -X2655900Y4508500D01* -X2655900Y4432300D01*D02* -X2655900Y4178300D02* -X2732100Y4178300D01* -X2732100Y4254500D01* -X2655900Y4254500D01* -X2655900Y4178300D01*D02* -X2655900Y3924300D02* -X2732100Y3924300D01* -X2732100Y4000500D01* -X2655900Y4000500D01* -X2655900Y3924300D01*D02* -X2655900Y3670300D02* -X2732100Y3670300D01* -X2732100Y3746500D01* -X2655900Y3746500D01* -X2655900Y3670300D01*D02* -X2655900Y3416300D02* -X2732100Y3416300D01* -X2732100Y3492500D01* -X2655900Y3492500D01* -X2655900Y3416300D01*D02* -X2655900Y3162300D02* -X2732100Y3162300D01* -X2732100Y3238500D01* -X2655900Y3238500D01* -X2655900Y3162300D01*D02* -X2655900Y2908300D02* -X2732100Y2908300D01* -X2732100Y2984500D01* -X2655900Y2984500D01* -X2655900Y2908300D01*D02* -X2655900Y2654300D02* -X2732100Y2654300D01* -X2732100Y2730500D01* -X2655900Y2730500D01* -X2655900Y2654300D01*D02* -X2655900Y2400300D02* -X2732100Y2400300D01* -X2732100Y2476500D01* -X2655900Y2476500D01* -X2655900Y2400300D01*D02* -X2655900Y2146300D02* -X2732100Y2146300D01* -X2732100Y2222500D01* -X2655900Y2222500D01* -X2655900Y2146300D01*D02* -X2655900Y1892300D02* -X2732100Y1892300D01* -X2732100Y1968500D01* -X2655900Y1968500D01* -X2655900Y1892300D01*D02* -X2655900Y1638300D02* -X2732100Y1638300D01* -X2732100Y1714500D01* -X2655900Y1714500D01* -X2655900Y1638300D01*D02* -X2855900Y4559300D02* -X2932100Y4559300D01* -X2932100Y4635500D01* -X2855900Y4635500D01* -X2855900Y4559300D01*D02* -X2855900Y4305300D02* -X2932100Y4305300D01* -X2932100Y4381500D01* -X2855900Y4381500D01* -X2855900Y4305300D01*D02* -X2855900Y4051300D02* -X2932100Y4051300D01* -X2932100Y4127500D01* -X2855900Y4127500D01* -X2855900Y4051300D01*D02* -X2855900Y3797300D02* -X2932100Y3797300D01* -X2932100Y3873500D01* -X2855900Y3873500D01* -X2855900Y3797300D01*D02* -X2855900Y3543300D02* -X2932100Y3543300D01* -X2932100Y3619500D01* -X2855900Y3619500D01* -X2855900Y3543300D01*D02* -X2855900Y3289300D02* -X2932100Y3289300D01* -X2932100Y3365500D01* -X2855900Y3365500D01* -X2855900Y3289300D01*D02* -X2855900Y3035300D02* -X2932100Y3035300D01* -X2932100Y3111500D01* -X2855900Y3111500D01* -X2855900Y3035300D01*D02* -X2855900Y2781300D02* -X2932100Y2781300D01* -X2932100Y2857500D01* -X2855900Y2857500D01* -X2855900Y2781300D01*D02* -X2855900Y2527300D02* -X2932100Y2527300D01* -X2932100Y2603500D01* -X2855900Y2603500D01* -X2855900Y2527300D01*D02* -X2855900Y2273300D02* -X2932100Y2273300D01* -X2932100Y2349500D01* -X2855900Y2349500D01* -X2855900Y2273300D01*D02* -X2855900Y2019300D02* -X2932100Y2019300D01* -X2932100Y2095500D01* -X2855900Y2095500D01* -X2855900Y2019300D01*D02* -X2855900Y1765300D02* -X2932100Y1765300D01* -X2932100Y1841500D01* -X2855900Y1841500D01* -X2855900Y1765300D01*D02* -G54D22* -X2694000Y4724400D03* -G54D23* -X1625600Y3299600D03* -X1625600Y2999600D03* -X1625600Y4366400D03* -X1625600Y4066400D03* -X1320800Y3507600D03* -X1320800Y3807600D03* -G54D24* -X2196000Y3962400D03* -X2376000Y3962400D03* -G54D25* -X1069200Y5283200D03* -X1369200Y5283200D03* -G54D26* -X812800Y4064000D03* -G54D27* -X786346Y4037546D02* -X839254Y4037546D01* -X839254Y4090454D01* -X786346Y4090454D01* -X786346Y4037546D01*D02* -G54D28* -X3454400Y998800D03* -X2184400Y1354400D03* -G54D29* -X3454423Y3098800D03* -X2184423Y3454400D03* -G54D30* -X1422400Y863800D03* -X1422400Y253800D03* -G54D31* -X2286000Y508000D03* -X2540000Y508000D03* -X2794000Y508000D03* - -M00* diff --git a/tests/gerber_parsing_profiling/gerber_parsing_line_profile_1.py b/tests/gerber_parsing_profiling/gerber_parsing_line_profile_1.py deleted file mode 100644 index 1ff32fb0..00000000 --- a/tests/gerber_parsing_profiling/gerber_parsing_line_profile_1.py +++ /dev/null @@ -1,13 +0,0 @@ -# This script is for profiling Gerber.parse_lines() line by line. -# Run kernprof -l -v gerber_parsing_line_profile_1.py - -import sys -sys.path.append('../../') - -from flatcamParsers.ParseGerber import * - -log = logging.getLogger('base2') -log.setLevel(logging.WARNING) - -g = Gerber() -g.parse_file("gerber1.gbr") \ No newline at end of file diff --git a/tests/gerber_parsing_profiling/gerber_parsing_profile_1.py b/tests/gerber_parsing_profiling/gerber_parsing_profile_1.py deleted file mode 100644 index 60e7d02a..00000000 --- a/tests/gerber_parsing_profiling/gerber_parsing_profile_1.py +++ /dev/null @@ -1,17 +0,0 @@ -import cProfile -import pstats -import sys -sys.path.append('../../') - -from flatcamParsers.ParseGerber import * - -log = logging.getLogger('base2') -log.setLevel(logging.WARNING) - -g = Gerber() - -#cProfile.run('g.parse_file("gerber1.gbr")', 'gerber1_profile', sort='cumtime') -cProfile.run('g.parse_file("/home/jpcaram/flatcam_test_files/Gerbers/AVR_Transistor_Tester_silkscreen_top.GTO")', - 'gerber1_profile', sort='cumtime') -p = pstats.Stats('gerber1_profile') -p.strip_dirs().sort_stats('cumulative').print_stats(.1) \ No newline at end of file diff --git a/tests/new_window_test.py b/tests/new_window_test.py deleted file mode 100644 index 9d0eb4d8..00000000 --- a/tests/new_window_test.py +++ /dev/null @@ -1,70 +0,0 @@ -import sys -from PyQt5.Qt import * -from PyQt5 import QtGui, QtWidgets - - -class MyPopup(QWidget): - def __init__(self): - QWidget.__init__(self) - lay = QtWidgets.QVBoxLayout() - self.setLayout(lay) - lay.setContentsMargins(0, 0, 0, 0) - le = QtWidgets.QLineEdit() - le.setText("Abracadabra") - le.setReadOnly(True) - # le.setStyleSheet("QLineEdit { qproperty-frame: false }") - le.setFrame(False) - le.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) - - # lay.addStretch() - but = QtWidgets.QPushButton("OK") - hlay = QtWidgets.QHBoxLayout() - hlay.setContentsMargins(0, 5, 5, 5) - - hlay.addStretch() - hlay.addWidget(but) - - lay.addWidget(le) - lay.addLayout(hlay) - # def paintEvent(self, e): - # dc = QtGui.QPainter(self) - # dc.drawLine(0, 0, 100, 100) - # dc.drawLine(100, 0, 0, 100) - - -class MainWindow(QMainWindow): - def __init__(self, *args): - QtWidgets.QMainWindow.__init__(self, *args) - self.cw = QtWidgets.QWidget(self) - self.setCentralWidget(self.cw) - self.btn1 = QtWidgets.QPushButton("Click me", self.cw) - self.btn1.setGeometry(QRect(0, 0, 100, 30)) - self.btn1.clicked.connect(self.doit) - self.w = None - - def doit(self): - print("Opening a new popup window...") - self.w = MyPopup() - self.w.setGeometry(QRect(100, 100, 400, 200)) - self.w.show() - - -class App(QApplication): - def __init__(self, *args): - QtWidgets.QApplication.__init__(self, *args) - self.main = MainWindow() - # self.lastWindowClosed.connect(self.byebye) - self.main.show() - - def byebye(self): - self.exit(0) - - -def main(args): - global app - app = App(args) - app.exec_() - - -if __name__ == "__main__": - main(sys.argv) \ No newline at end of file diff --git a/tests/other/destructor_test.py b/tests/other/destructor_test.py deleted file mode 100644 index 28950277..00000000 --- a/tests/other/destructor_test.py +++ /dev/null @@ -1,34 +0,0 @@ -import sys -from PyQt5 import QtCore, QtGui, QtWidgets - - -class MyObj(): - - def __init__(self): - pass - - def __del__(self): - print("##### Destroyed ######") - - -def parse(): - o = MyObj() - raise Exception("Intentional Exception") - - -class Example(QtWidgets.QWidget): - - def __init__(self): - super(Example, self).__init__() - - qbtn = QtWidgets.QPushButton('Raise', self) - qbtn.clicked.connect(parse) - - self.setWindowTitle('Quit button') - self.show() - - -if __name__ == '__main__': - app = QtWidgets.QApplication(sys.argv) - ex = Example() - sys.exit(app.exec_()) \ No newline at end of file diff --git a/tests/other/profile_gerber_parser.py b/tests/other/profile_gerber_parser.py deleted file mode 100644 index bdf671c2..00000000 --- a/tests/other/profile_gerber_parser.py +++ /dev/null @@ -1,8 +0,0 @@ -import os -os.chdir('../') - -from flatcamParsers.ParseGerber import * - -g = Gerber() -g.parse_file(r'C:\Users\jpcaram\Dropbox\CNC\pcbcam\test_files\PlacaReles-F_Cu.gtl') - diff --git a/tests/other/test_excellon_1.py b/tests/other/test_excellon_1.py deleted file mode 100644 index c3895bd7..00000000 --- a/tests/other/test_excellon_1.py +++ /dev/null @@ -1,49 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Created on Sun Jan 05 13:30:47 2014 - -@author: jpcaram -""" - -import os -os.chdir('../') - -from flatcamParsers.ParseGerber import * -from flatcamParsers.ParseExcellon import * - -from matplotlib import pyplot - -# Gerber. To see if the Excellon is correct -project_dir = "tests/gerber_files" -gerber_filename = project_dir + "KiCad_Squarer-F_Cu.gtl" -g = Gerber() -g.parse_file(gerber_filename) -g.create_geometry() - -excellon_filename = project_dir + "KiCad_Squarer.drl" -ex = Excellon() -ex.parse_file(excellon_filename) -ex.create_geometry() - -#fig = Figure() -fig = pyplot.figure() -ax = fig.add_subplot(111) -ax.set_aspect(1) - -# Plot gerber -for geo in g.solid_geometry: - x, y = geo.exterior.coords.xy - pyplot.plot(x, y, 'k-') - for ints in geo.interiors: - x, y = ints.coords.xy - ax.plot(x, y, 'k-') - -# Plot excellon -for geo in ex.solid_geometry: - x, y = geo.exterior.coords.xy - pyplot.plot(x, y, 'r-') - for ints in geo.interiors: - x, y = ints.coords.xy - ax.plot(x, y, 'g-') - -fig.show() \ No newline at end of file diff --git a/tests/other/test_fcrts.py b/tests/other/test_fcrts.py deleted file mode 100644 index 5c1222d5..00000000 --- a/tests/other/test_fcrts.py +++ /dev/null @@ -1,37 +0,0 @@ -from camlib import * -from shapely.geometry import LineString, LinearRing - -s = FlatCAMRTreeStorage() - -geoms = [ - LinearRing(((0.5699056603773586, 0.7216037735849057), - (0.9885849056603774, 0.7216037735849057), - (0.9885849056603774, 0.6689622641509434), - (0.5699056603773586, 0.6689622641509434), - (0.5699056603773586, 0.7216037735849057))), - LineString(((0.8684952830188680, 0.6952830188679245), - (0.8680655198743615, 0.6865349890935113), - (0.8667803692948564, 0.6778712076279851), - (0.8646522079829676, 0.6693751114229638), - (0.8645044888670096, 0.6689622641509434))), - LineString(((0.9874952830188680, 0.6952830188679245), - (0.9864925023483531, 0.6748709493942936), - (0.9856160316877274, 0.6689622641509434))), - -] - -for geo in geoms: - s.insert(geo) - -current_pt = (0, 0) -pt, geo = s.nearest(current_pt) -while geo is not None: - print((pt, geo)) - print(("OBJECTS BEFORE:", s.objects)) - - #geo.coords = list(geo.coords[::-1]) - s.remove(geo) - - print(("OBJECTS AFTER:", s.objects)) - current_pt = geo.coords[-1] - pt, geo = s.nearest(current_pt) diff --git a/tests/other/test_plotg.py b/tests/other/test_plotg.py deleted file mode 100644 index 6ec1a3a3..00000000 --- a/tests/other/test_plotg.py +++ /dev/null @@ -1,48 +0,0 @@ -from shapely.geometry import LineString, Polygon -from shapely.ops import unary_union -from matplotlib.pyplot import plot, subplot, show, axes -from matplotlib.axes import * -from camlib import * - - -def plotg2(geo, solid_poly=False, color="black", linestyle='solid'): - - try: - for sub_geo in geo: - plotg2(sub_geo, solid_poly=solid_poly, color=color, linestyle=linestyle) - except TypeError: - if type(geo) == Polygon: - if solid_poly: - patch = PolygonPatch(geo, - #facecolor="#BBF268", - facecolor=color, - edgecolor="#006E20", - alpha=0.5, - zorder=2) - ax = subplot(111) - ax.add_patch(patch) - else: - x, y = geo.exterior.coords.xy - plot(x, y, color=color, linestyle=linestyle) - for ints in geo.interiors: - x, y = ints.coords.xy - plot(x, y, color=color, linestyle=linestyle) - - if type(geo) == LineString or type(geo) == LinearRing: - x, y = geo.coords.xy - plot(x, y, color=color, linestyle=linestyle) - - if type(geo) == Point: - x, y = geo.coords.xy - plot(x, y, 'o') - - -if __name__ == "__main__": - p = Polygon([[0, 0], [0, 5], [5, 5], [5, 0]]) - paths = [ - LineString([[0.5, 2], [2, 4.5]]), - LineString([[2, 0.5], [4.5, 2]]) - ] - plotg2(p, solid_poly=True) - plotg2(paths, linestyle="dashed") - show() \ No newline at end of file diff --git a/tests/other/test_rt.py b/tests/other/test_rt.py deleted file mode 100644 index 2df9bd1a..00000000 --- a/tests/other/test_rt.py +++ /dev/null @@ -1,24 +0,0 @@ -from rtree import index as rtindex - -def pt2rect(pt): - return pt[0], pt[1], pt[0], pt[1] - -pts = [(0.0, 0.0), (1.0, 1.0), (0.0, 1.0)] - -p = rtindex.Property() -p.buffering_capacity = 1 -p.dimension = 2 -rt = rtindex.Index(properties=p) -#rt = rtindex.Index() - -# If interleaved is True, the coordinates must be in -# the form [xmin, ymin, ..., kmin, xmax, ymax, ..., kmax]. -print((rt.interleaved)) - -[rt.add(0, pt2rect(pt)) for pt in pts] -print([r.bbox for r in list(rt.nearest((0, 0), 10, True))]) - -for pt in pts: - rt.delete(0, pt2rect(pt)) - print((pt2rect(pt), [r.bbox for r in list(rt.nearest((0, 0), 10, True))])) - diff --git a/tests/svg/7segment_9,9.svg b/tests/svg/7segment_9,9.svg deleted file mode 100644 index ffe7c653..00000000 --- a/tests/svg/7segment_9,9.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/svg/Arduino Nano3_pcb.svg b/tests/svg/Arduino Nano3_pcb.svg deleted file mode 100644 index f1f3b0c2..00000000 --- a/tests/svg/Arduino Nano3_pcb.svg +++ /dev/null @@ -1,468 +0,0 @@ - - - - -Fritzing footprint generated by brd2svg - - - - element:J1 - - package:HEAD15-NOSS - - - - element:J2 - - package:HEAD15-NOSS-1 - - - - element:U2 - - package:SSOP28 - - - - element:U3 - - package:SOT223 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - layer 21 - - text:TX1 - - - TX1 - - - - - text:RX0 - - - RX0 - - - - - text:RST - - - RST - - - - - text:GND - - - GND - - - - - text:D2 - - - D2 - - - - - text:D3 - - - D3 - - - - - text:D4 - - - D4 - - - - - text:D5 - - - D5 - - - - - text:D6 - - - D6 - - - - - text:D7 - - - D7 - - - - - text:D8 - - - D8 - - - - - text:D9 - - - D9 - - - - - text:D10 - - - D10 - - - - - text:D11 - - - D11 - - - - - text:D12 - - - D12 - - - - - text:D13 - - - D13 - - - - - text:3V3 - - - 3V3 - - - - - text:REF - - - REF - - - - - text:A0 - - - A0 - - - - - text:A1 - - - A1 - - - - - text:A2 - - - A2 - - - - - text:A3 - - - A3 - - - - - text:A4 - - - A4 - - - - - text:A5 - - - A5 - - - - - text:A6 - - - A6 - - - - - text:A7 - - - A7 - - - - - text:5V - - - 5V - - - - - text:RST - - - RST - - - - - text:GND - - - GND - - - - - text:VIN - - - VIN - - - - - text:* - - - * - - - - - text:* - - - * - - - - - text:* - - - * - - - - - text:* - - - * - - - - - text:* - - - * - - - - - text:* - - - * - - - - - element:C1 - - package:CAP0805-NP - - - - element:C2 - - package:TAN-A - - - - element:C3 - - package:CAP0805-NP - - - - element:C4 - - package:CAP0805-NP - - - - element:C7 - - package:CAP0805-NP - - - - element:C8 - - package:TAN-A - - - - element:C9 - - package:CAP0805-NP - - - - element:D1 - - package:SOD-123 - - - - element:J1 - - package:HEAD15-NOSS - - - - element:J2 - - package:HEAD15-NOSS-1 - - - - element:RP1 - - package:RES4NT - - - - element:RP2 - - package:RES4NT - - - - element:U$4 - - package:FIDUCIAL-1X2 - - - - element:U$37 - - package:FIDUCIAL-1X2 - - - - element:U$53 - - package:FIDUCIAL-1X2 - - - - element:U$54 - - package:FIDUCIAL-1X2 - - - - element:U2 - - package:SSOP28 - - - - element:U3 - - package:SOT223 - - - - diff --git a/tests/svg/drawing.svg b/tests/svg/drawing.svg deleted file mode 100644 index 7feb03a4..00000000 --- a/tests/svg/drawing.svg +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/svg/usb_connector.svg b/tests/svg/usb_connector.svg deleted file mode 100644 index 25db7071..00000000 --- a/tests/svg/usb_connector.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tests/svg/use.svg b/tests/svg/use.svg deleted file mode 100644 index 735c5954..00000000 --- a/tests/svg/use.svg +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/tests/test_excellon.py b/tests/test_excellon.py deleted file mode 100644 index da7e0233..00000000 --- a/tests/test_excellon.py +++ /dev/null @@ -1,331 +0,0 @@ -import unittest -from flatcamParsers.ParseExcellon import Excellon -from flatcamParsers.ParseGerber import Gerber - - -class ExcellonNumberParseTestInch(unittest.TestCase): - # Inch base format: 00.0000 - - # LEADING ZEROS - # With leading zeros, when you type in a coordinate, - # the leading zeros must always be included. Trailing zeros - # are unneeded and may be left off. The CNC-7 will automatically add them. - - # TRAILING ZEROS - # You must show all zeros to the right of the number and can omit - # all zeros to the left of the number. The CNC-7 will count the number - # of digits you typed and automatically fill in the missing zeros. - - def test_inch_leading_6digit(self): - excellon = Excellon() - self.assertEqual(excellon.zeros, "L") - self.assertEqual(excellon.parse_number("123456"), 12.3456) - - def test_inch_leading_5digit(self): - excellon = Excellon() - self.assertEqual(excellon.parse_number("12345"), 12.345) - - def test_inch_leading_15digit(self): - excellon = Excellon() - self.assertEqual(excellon.parse_number("012345"), 1.2345) - - def test_inch_leading_51digit(self): - excellon = Excellon() - self.assertEqual(excellon.parse_number("123450"), 12.345) - - def test_inch_trailing_6digit(self): - excellon = Excellon() - excellon.zeros = "T" - self.assertEqual(excellon.parse_number("123456"), 12.3456) - - def test_inch_trailing_5digit(self): - excellon = Excellon() - excellon.zeros = "T" - self.assertEqual(excellon.parse_number("12345"), 1.2345) - - def test_inch_trailing_15digit(self): - excellon = Excellon() - excellon.zeros = "T" - self.assertEqual(excellon.parse_number("012345"), 1.2345) - - def test_inch_trailing_51digit(self): - excellon = Excellon() - excellon.zeros = "T" - self.assertEqual(excellon.parse_number("123450"), 12.345) - - -class ExcellonNumberParseTestMetric(unittest.TestCase): - # Metric base format: 000.000 - - # LEADING ZEROS - # With leading zeros, when you type in a coordinate, - # the leading zeros must always be included. Trailing zeros - # are unneeded and may be left off. The CNC-7 will automatically add them. - - # TRAILING ZEROS - # You must show all zeros to the right of the number and can omit - # all zeros to the left of the number. The CNC-7 will count the number - # of digits you typed and automatically fill in the missing zeros. - - def test_inch_leading_6digit(self): - excellon = Excellon() - excellon.units = "mm" - self.assertEqual(excellon.parse_number("123456"), 123.456) - - def test_inch_leading_5digit(self): - excellon = Excellon() - excellon.units = "mm" - self.assertEqual(excellon.parse_number("12345"), 123.45) - - def test_inch_leading_15digit(self): - excellon = Excellon() - excellon.units = "mm" - self.assertEqual(excellon.parse_number("012345"), 12.345) - - def test_inch_leading_51digit(self): - excellon = Excellon() - excellon.units = "mm" - self.assertEqual(excellon.parse_number("123450"), 123.45) - - def test_inch_trailing_6digit(self): - excellon = Excellon() - excellon.units = "mm" - excellon.zeros = "T" - self.assertEqual(excellon.parse_number("123456"), 123.456) - - def test_inch_trailing_5digit(self): - excellon = Excellon() - excellon.units = "mm" - excellon.zeros = "T" - self.assertEqual(excellon.parse_number("12345"), 12.345) - - def test_inch_trailing_15digit(self): - excellon = Excellon() - excellon.units = "mm" - excellon.zeros = "T" - self.assertEqual(excellon.parse_number("012345"), 12.345) - - def test_inch_trailing_51digit(self): - excellon = Excellon() - excellon.units = "mm" - excellon.zeros = "T" - self.assertEqual(excellon.parse_number("123450"), 123.45) - - -class ExcellonFormatM72Test(unittest.TestCase): - - def setUp(self): - self.excellon = Excellon() - code = """ - M48 - M72 - T1C.02362F197S550 - T2C.03543F197S550 - M95 - T1 - X9000Y11750 - X30250Y10500 - """ - code = code.split('\n') - self.excellon.parse_lines(code) - - def test_format(self): - self.assertEqual(self.excellon.units.lower(), "in") - self.assertEqual(self.excellon.zeros, "L") - - def test_coords(self): - # For X9000 add the missing 00 on the right. Then divide by 10000. - self.assertEqual(self.excellon.drills[0]["point"].coords[0], (90.0, 11.75)) - self.assertEqual(self.excellon.drills[1]["point"].coords[0], (30.25, 10.5)) - - -class ExcellonFormatM71Test(unittest.TestCase): - - def setUp(self): - self.excellon = Excellon() - code = """ - M48 - M71 - T1C.02362F197S550 - T2C.03543F197S550 - M95 - T1 - X9000Y11750 - X30250Y10500 - """ - code = code.split('\n') - self.excellon.parse_lines(code) - - def test_format(self): - self.assertEqual(self.excellon.units.lower(), "mm") - self.assertEqual(self.excellon.zeros, "L") - - def test_coords(self): - # For X9000 add the missing 00 on the right. Then divide by 10000. - self.assertEqual(self.excellon.drills[0]["point"].coords[0], (900.0, 117.5)) - self.assertEqual(self.excellon.drills[1]["point"].coords[0], (302.5, 105.0)) - - -class ExcellonFormatINCHLZTest(unittest.TestCase): - - def setUp(self): - self.excellon = Excellon() - code = """ - M48 - INCH,LZ - T1C.02362F197S550 - T2C.03543F197S550 - M95 - T1 - X9000Y11750 - X30250Y10500 - """ - code = code.split('\n') - self.excellon.parse_lines(code) - - def test_format(self): - self.assertEqual(self.excellon.units.lower(), "in") - self.assertEqual(self.excellon.zeros, "L") - - def test_coords(self): - # For X9000 add the missing 00 on the right. Then divide by 10000. - self.assertEqual(self.excellon.drills[0]["point"].coords[0], (90.0, 11.75)) - self.assertEqual(self.excellon.drills[1]["point"].coords[0], (30.25, 10.5)) - - -class ExcellonFormatINCHTest(unittest.TestCase): - - def setUp(self): - self.excellon = Excellon() - code = """ - M48 - INCH,LZ - T1C.02362F197S550 - T2C.03543F197S550 - M95 - T1 - X9000Y11750 - X30250Y10500 - """ - code = code.split('\n') - self.excellon.parse_lines(code) - - def test_format(self): - self.assertEqual(self.excellon.units.lower(), "in") - self.assertEqual(self.excellon.zeros, "L") - - def test_coords(self): - # For X9000 add the missing 00 on the right. Then divide by 10000. - self.assertEqual(self.excellon.drills[0]["point"].coords[0], (90.0, 11.75)) - self.assertEqual(self.excellon.drills[1]["point"].coords[0], (30.25, 10.5)) - - -class ExcellonFormatINCHTZTest(unittest.TestCase): - - def setUp(self): - self.excellon = Excellon() - code = """ - M48 - INCH,TZ - T1C.02362F197S550 - T2C.03543F197S550 - M95 - T1 - X9000Y11750 - X30250Y10500 - """ - code = code.split('\n') - self.excellon.parse_lines(code) - - def test_format(self): - self.assertEqual(self.excellon.units.lower(), "in") - self.assertEqual(self.excellon.zeros, "T") - - def test_coords(self): - # For X9000 add the missing 00 on the right. Then divide by 10000. - self.assertEqual(self.excellon.drills[0]["point"].coords[0], (0.9, 1.175)) - self.assertEqual(self.excellon.drills[1]["point"].coords[0], (3.025, 1.05)) - - -class ExcellonFormatMETRICLZTest(unittest.TestCase): - - def setUp(self): - self.excellon = Excellon() - code = """ - M48 - METRIC,LZ - T1C.02362F197S550 - T2C.03543F197S550 - M95 - T1 - X9000Y11750 - X30250Y10500 - """ - code = code.split('\n') - self.excellon.parse_lines(code) - - def test_format(self): - self.assertEqual(self.excellon.units.lower(), "mm") - self.assertEqual(self.excellon.zeros, "L") - - def test_coords(self): - # For X9000 add the missing 00 on the right. Then divide by 10000. - self.assertEqual(self.excellon.drills[0]["point"].coords[0], (900.0, 117.5)) - self.assertEqual(self.excellon.drills[1]["point"].coords[0], (302.5, 105.0)) - - -class ExcellonFormatMETRICTest(unittest.TestCase): - - def setUp(self): - self.excellon = Excellon() - code = """ - M48 - METRIC,LZ - T1C.02362F197S550 - T2C.03543F197S550 - M95 - T1 - X9000Y11750 - X30250Y10500 - """ - code = code.split('\n') - self.excellon.parse_lines(code) - - def test_format(self): - self.assertEqual(self.excellon.units.lower(), "mm") - self.assertEqual(self.excellon.zeros, "L") - - def test_coords(self): - # For X9000 add the missing 00 on the right. Then divide by 10000. - self.assertEqual(self.excellon.drills[0]["point"].coords[0], (900.0, 117.5)) - self.assertEqual(self.excellon.drills[1]["point"].coords[0], (302.5, 105.0)) - - -class ExcellonFormatMETRICTZTest(unittest.TestCase): - - def setUp(self): - self.excellon = Excellon() - code = """ - M48 - METRIC,TZ - T1C.02362F197S550 - T2C.03543F197S550 - M95 - T1 - X9000Y11750 - X30250Y10500 - """ - code = code.split('\n') - self.excellon.parse_lines(code) - - def test_format(self): - self.assertEqual(self.excellon.units.lower(), "mm") - self.assertEqual(self.excellon.zeros, "T") - - def test_coords(self): - # For X9000 add the missing 00 on the right. Then divide by 10000. - self.assertEqual(self.excellon.drills[0]["point"].coords[0], (9.0, 11.75)) - self.assertEqual(self.excellon.drills[1]["point"].coords[0], (30.25, 10.5)) - -if __name__ == '__main__': - unittest.main() \ No newline at end of file diff --git a/tests/test_excellon_flow.py b/tests/test_excellon_flow.py deleted file mode 100644 index 946c2df6..00000000 --- a/tests/test_excellon_flow.py +++ /dev/null @@ -1,163 +0,0 @@ -import unittest -from PyQt5 import QtGui, QtWidgets -import sys -from FlatCAMApp import App -from FlatCAMObj import FlatCAMExcellon, FlatCAMCNCjob -from flatcamGUI.ObjectUI import ExcellonObjectUI -import tempfile -import os -from time import sleep - - -class ExcellonFlowTestCase(unittest.TestCase): - """ - This is a top-level test covering the Excellon-to-GCode - generation workflow. - - THIS IS A REQUIRED TEST FOR ANY UPDATES. - - """ - - filename = 'case1.drl' - - def setUp(self): - self.app = QtWidgets.QApplication(sys.argv) - - # Create App, keep app defaults (do not load - # user-defined defaults). - self.fc = App(user_defaults=False) - - self.fc.open_excellon('tests/excellon_files/' + self.filename) - - def tearDown(self): - del self.fc - del self.app - - def test_flow(self): - # Names of available objects. - names = self.fc.collection.get_names() - print(names) - - #-------------------------------------- - # Total of 1 objects. - #-------------------------------------- - self.assertEqual(len(names), 1, - "Expected 1 object, found %d" % len(names)) - - #-------------------------------------- - # Object's name matches the file name. - #-------------------------------------- - self.assertEqual(names[0], self.filename, - "Expected name == %s, got %s" % (self.filename, names[0])) - - #--------------------------------------- - # Get object by that name, make sure it's a FlatCAMExcellon. - #--------------------------------------- - excellon_name = names[0] - excellon_obj = self.fc.collection.get_by_name(excellon_name) - self.assertTrue(isinstance(excellon_obj, FlatCAMExcellon), - "Expected FlatCAMExcellon, instead, %s is %s" % - (excellon_name, type(excellon_obj))) - - #---------------------------------------- - # Object's GUI matches Object's options - #---------------------------------------- - # TODO: Open GUI with double-click on object. - # Opens the Object's GUI, populates it. - excellon_obj.build_ui() - for option, value in list(excellon_obj.options.items()): - try: - form_field = excellon_obj.form_fields[option] - except KeyError: - print(("**********************************************************\n" - "* WARNING: Option '{}' has no form field\n" - "**********************************************************" - "".format(option))) - continue - self.assertEqual(value, form_field.get_value(), - "Option '{}' == {} but form has {}".format( - option, value, form_field.get_value() - )) - - # -------------------------------------------------- - # Changes in the GUI should be read in when - # running any process. Changing something here. - # -------------------------------------------------- - - form_field = excellon_obj.form_fields['feedrate'] - value = form_field.get_value() - form_field.set_value(value * 1.1) # Increase by 10% - print(("'feedrate' == {}".format(value))) - - # -------------------------------------------------- - # Create GCode using all tools. - # -------------------------------------------------- - - assert isinstance(excellon_obj, FlatCAMExcellon) # Just for the IDE - ui = excellon_obj.ui - assert isinstance(ui, ExcellonObjectUI) - ui.tools_table.selectAll() # Select All - ui.generate_cnc_button.click() # Click - - # Work is done in a separate thread and results are - # passed via events to the main event loop which is - # not running. Run only for pending events. - # - # I'm not sure why, but running it only once does - # not catch the new object. Might be a timing issue. - # http://pyqt.sourceforge.net/Docs/PyQt4/qeventloop.html#details - for _ in range(2): - sleep(0.1) - self.app.processEvents() - - # --------------------------------------------- - # Check that GUI has been read in. - # --------------------------------------------- - - value = excellon_obj.options['feedrate'] - form_value = form_field.get_value() - self.assertEqual(value, form_value, - "Form value for '{}' == {} was not read into options" - "which has {}".format('feedrate', form_value, value)) - print(("'feedrate' == {}".format(value))) - - # --------------------------------------------- - # Check that only 1 object has been created. - # --------------------------------------------- - - names = self.fc.collection.get_names() - self.assertEqual(len(names), 2, - "Expected 2 objects, found %d" % len(names)) - - # ------------------------------------------------------- - # Make sure the CNCJob Object has the correct name - # ------------------------------------------------------- - - cncjob_name = excellon_name + "_cnc" - self.assertTrue(cncjob_name in names, - "Object named %s not found." % cncjob_name) - - # ------------------------------------------------------- - # Get the object make sure it's a cncjob object - # ------------------------------------------------------- - - cncjob_obj = self.fc.collection.get_by_name(cncjob_name) - self.assertTrue(isinstance(cncjob_obj, FlatCAMCNCjob), - "Expected a FlatCAMCNCjob, got %s" % type(cncjob_obj)) - - # ----------------------------------------- - # Export G-Code, check output - # ----------------------------------------- - assert isinstance(cncjob_obj, FlatCAMCNCjob) # For IDE - - # get system temporary file(try create it and delete) - with tempfile.NamedTemporaryFile(prefix='unittest.', - suffix="." + cncjob_name + '.gcode', - delete=True) as tmp_file: - output_filename = tmp_file.name - - cncjob_obj.export_gcode(output_filename) - self.assertTrue(os.path.isfile(output_filename)) - os.remove(output_filename) - - print(names) diff --git a/tests/test_gerber_buffer.py b/tests/test_gerber_buffer.py deleted file mode 100644 index b79893eb..00000000 --- a/tests/test_gerber_buffer.py +++ /dev/null @@ -1,35 +0,0 @@ -import unittest -import camlib -from flatcamParsers.ParseGerber import Gerber - - -class GerberBuffer(unittest.TestCase): - def setUp(self): - self.gerber1 = Gerber() - self.gerber1.use_buffer_for_union = True - self.gerber1.parse_file("tests/gerber_files/STM32F4-spindle.cmp") - geometry1 = self.gerber1.solid_geometry - self.geometry1_area = self.compute_area(geometry1) - self.gerber2 = Gerber() - self.gerber2.use_buffer_for_union = False - self.gerber2.parse_file("tests/gerber_files/STM32F4-spindle.cmp") - geometry2 = self.gerber2.solid_geometry - self.geometry2_area = self.compute_area (geometry2) - - def compute_area(self, geometry): - area = 0 - try: - for geo in geometry: - area += geo.area - - # Not iterable, do the actual indexing and add. - except TypeError: - area = geometry.area - return area - - def test_buffer(self): - self.assertLessEqual(abs(self.geometry2_area - self.geometry1_area), 0.000001) - - -if __name__ == '__main__': - unittest.main() diff --git a/tests/test_gerber_flow.py b/tests/test_gerber_flow.py deleted file mode 100644 index 4549afc0..00000000 --- a/tests/test_gerber_flow.py +++ /dev/null @@ -1,190 +0,0 @@ -import sys -import unittest -from PyQt5 import QtGui, QtWidgets -from FlatCAMApp import App, tclCommands -from FlatCAMObj import FlatCAMGerber, FlatCAMGeometry, FlatCAMCNCjob -from flatcamGUI.ObjectUI import GerberObjectUI, GeometryObjectUI -from time import sleep -import os -import tempfile - - -class GerberFlowTestCase(unittest.TestCase): - """ - This is a top-level test covering the Gerber-to-GCode - generation workflow. - - THIS IS A REQUIRED TEST FOR ANY UPDATES. - - """ - - filename = 'simple1.gbr' - - def setUp(self): - self.app = QtWidgets.QApplication(sys.argv) - - # Create App, keep app defaults (do not load - # user-defined defaults). - self.fc = App(user_defaults=False) - - self.fc.open_gerber('tests/gerber_files/' + self.filename) - - def tearDown(self): - del self.fc - del self.app - - def test_flow(self): - # Names of available objects. - names = self.fc.collection.get_names() - print(names) - - # -------------------------------------- - # Total of 1 objects. - # -------------------------------------- - self.assertEqual(len(names), 1, - "Expected 1 object, found %d" % len(names)) - - # -------------------------------------- - # Object's name matches the file name. - # -------------------------------------- - self.assertEqual(names[0], self.filename, - "Expected name == %s, got %s" % (self.filename, names[0])) - - # --------------------------------------- - # Get object by that name, make sure it's a FlatCAMGerber. - # --------------------------------------- - gerber_name = names[0] - gerber_obj = self.fc.collection.get_by_name(gerber_name) - self.assertTrue(isinstance(gerber_obj, FlatCAMGerber), - "Expected FlatCAMGerber, instead, %s is %s" % - (gerber_name, type(gerber_obj))) - - # ---------------------------------------- - # Object's GUI matches Object's options - # ---------------------------------------- - # TODO: Open GUI with double-click on object. - # Opens the Object's GUI, populates it. - gerber_obj.build_ui() - for option, value in list(gerber_obj.options.items()): - try: - form_field = gerber_obj.form_fields[option] - except KeyError: - print(("**********************************************************\n" - "* WARNING: Option '{}' has no form field\n" - "**********************************************************" - "".format(option))) - continue - self.assertEqual(value, form_field.get_value(), - "Option '{}' == {} but form has {}".format( - option, value, form_field.get_value() - )) - - # -------------------------------------------------- - # Changes in the GUI should be read in when - # running any process. Changing something here. - # -------------------------------------------------- - - form_field = gerber_obj.form_fields['isotooldia'] - value = form_field.get_value() - form_field.set_value(value * 1.1) # Increase by 10% - print(("'isotooldia' == {}".format(value))) - - # -------------------------------------------------- - # Create isolation routing using default values - # and by clicking on the button. - # -------------------------------------------------- - # Get the object's GUI and click on "Generate Geometry" under - # "Isolation Routing" - assert isinstance(gerber_obj, FlatCAMGerber) # Just for the IDE - # Changed: UI has been build already - #gerber_obj.build_ui() # Open the object's UI. - ui = gerber_obj.ui - assert isinstance(ui, GerberObjectUI) - ui.generate_iso_button.click() # Click - - # --------------------------------------------- - # Check that GUI has been read in. - # --------------------------------------------- - value = gerber_obj.options['isotooldia'] - form_value = form_field.get_value() - self.assertEqual(value, form_value, - "Form value for '{}' == {} was not read into options" - "which has {}".format('isotooldia', form_value, value)) - print(("'isotooldia' == {}".format(value))) - - # --------------------------------------------- - # Check that only 1 object has been created. - # --------------------------------------------- - names = self.fc.collection.get_names() - self.assertEqual(len(names), 2, - "Expected 2 objects, found %d" % len(names)) - - # ------------------------------------------------------- - # Make sure the Geometry Object has the correct name - # ------------------------------------------------------- - geo_name = gerber_name + "_iso" - self.assertTrue(geo_name in names, - "Object named %s not found." % geo_name) - - # ------------------------------------------------------- - # Get the object make sure it's a geometry object - # ------------------------------------------------------- - geo_obj = self.fc.collection.get_by_name(geo_name) - self.assertTrue(isinstance(geo_obj, FlatCAMGeometry), - "Expected a FlatCAMGeometry, got %s" % type(geo_obj)) - - # ------------------------------------ - # Open the UI, make CNCObject - # ------------------------------------ - geo_obj.build_ui() - ui = geo_obj.ui - assert isinstance(ui, GeometryObjectUI) # Just for the IDE - ui.generate_cnc_button.click() # Click - - # Work is done in a separate thread and results are - # passed via events to the main event loop which is - # not running. Run only for pending events. - # - # I'm not sure why, but running it only once does - # not catch the new object. Might be a timing issue. - # http://pyqt.sourceforge.net/Docs/PyQt4/qeventloop.html#details - for _ in range(2): - sleep(0.1) - self.app.processEvents() - - # --------------------------------------------- - # Check that only 1 object has been created. - # --------------------------------------------- - names = self.fc.collection.get_names() - self.assertEqual(len(names), 3, - "Expected 3 objects, found %d" % len(names)) - - # ------------------------------------------------------- - # Make sure the CNC Job Object has the correct name - # ------------------------------------------------------- - cnc_name = geo_name + "_cnc" - self.assertTrue(cnc_name in names, - "Object named %s not found." % geo_name) - - # ------------------------------------------------------- - # Get the object make sure it's a CNC Job object - # ------------------------------------------------------- - cnc_obj = self.fc.collection.get_by_name(cnc_name) - self.assertTrue(isinstance(cnc_obj, FlatCAMCNCjob), - "Expected a FlatCAMCNCJob, got %s" % type(geo_obj)) - - # ----------------------------------------- - # Export G-Code, check output - # ----------------------------------------- - assert isinstance(cnc_obj, FlatCAMCNCjob) - output_filename = "" - # get system temporary file(try create it and delete also) - with tempfile.NamedTemporaryFile(prefix='unittest.', - suffix="." + cnc_name + '.gcode', - delete=True) as tmp_file: - output_filename = tmp_file.name - cnc_obj.export_gcode(output_filename) - self.assertTrue(os.path.isfile(output_filename)) - os.remove(output_filename) - - print(names) diff --git a/tests/test_paint.py b/tests/test_paint.py deleted file mode 100644 index 2ee77be8..00000000 --- a/tests/test_paint.py +++ /dev/null @@ -1,213 +0,0 @@ -import unittest - -from shapely.geometry import LineString, Polygon -from shapely.ops import unary_union -from matplotlib.pyplot import plot, subplot, show, cla, clf, xlim, ylim, title -from matplotlib.axes import * -from camlib import * -from copy import deepcopy - - -def mkstorage(paths): - def get_pts(o): - return [o.coords[0], o.coords[-1]] - storage = FlatCAMRTreeStorage() - storage.get_points = get_pts - for p in paths: - storage.insert(p) - return storage - - -def plotg2(geo, solid_poly=False, color="black", linestyle='solid'): - - try: - for sub_geo in geo: - plotg2(sub_geo, solid_poly=solid_poly, color=color, linestyle=linestyle) - except TypeError: - if type(geo) == Polygon: - if solid_poly: - patch = PolygonPatch(geo, - #facecolor="#BBF268", - facecolor=color, - edgecolor="#006E20", - alpha=0.5, - zorder=2) - ax = subplot(111) - ax.add_patch(patch) - else: - x, y = geo.exterior.coords.xy - plot(x, y, color=color, linestyle=linestyle) - for ints in geo.interiors: - x, y = ints.coords.xy - plot(x, y, color=color, linestyle=linestyle) - - if type(geo) == LineString or type(geo) == LinearRing: - x, y = geo.coords.xy - plot(x, y, color=color, linestyle=linestyle) - - if type(geo) == Point: - x, y = geo.coords.xy - plot(x, y, 'o') - - -class PaintTestCase(unittest.TestCase): - # def __init__(self): - # super(PaintTestCase, self).__init__() - # self.boundary = None - # self.descr = None - - def plot_summary_A(self, paths, tooldia, result, msg): - plotg2(self.boundary, solid_poly=True, color="green") - plotg2(paths, color="red") - plotg2([r.buffer(tooldia / 2) for r in result], solid_poly=True, color="blue") - plotg2(result, color="black", linestyle='dashed') - title(msg) - xlim(0, 5) - ylim(0, 5) - show() - - -class PaintConnectTest(PaintTestCase): - """ - Simple rectangular boundary and paths inside. - """ - - def setUp(self): - self.boundary = Polygon([[0, 0], [0, 5], [5, 5], [5, 0]]) - - def test_jump(self): - print("Test: WALK Expected") - paths = [ - LineString([[0.5, 2], [2, 4.5]]), - LineString([[2, 0.5], [4.5, 2]]) - ] - for p in paths: - print(p) - - tooldia = 1.0 - - print("--") - result = Geometry.paint_connect(mkstorage(deepcopy(paths)), self.boundary, tooldia) - - result = list(result.get_objects()) - for r in result: - print(r) - - self.assertEqual(len(result), 1) - - # self.plot_summary_A(paths, tooldia, result, "WALK expected.") - - def test_no_jump1(self): - print("Test: FLY Expected") - paths = [ - LineString([[0, 2], [2, 5]]), - LineString([[2, 0], [5, 2]]) - ] - for p in paths: - print(p) - - tooldia = 1.0 - - print("--") - result = Geometry.paint_connect(mkstorage(deepcopy(paths)), self.boundary, tooldia) - - result = list(result.get_objects()) - for r in result: - print(r) - - self.assertEqual(len(result), len(paths)) - - # self.plot_summary_A(paths, tooldia, result, "FLY Expected") - - def test_no_jump2(self): - print("Test: FLY Expected") - paths = [ - LineString([[0.5, 2], [2, 4.5]]), - LineString([[2, 0.5], [4.5, 2]]) - ] - for p in paths: - print(p) - - tooldia = 1.1 - - print("--") - result = Geometry.paint_connect(mkstorage(deepcopy(paths)), self.boundary, tooldia) - - result = list(result.get_objects()) - for r in result: - print(r) - - self.assertEqual(len(result), len(paths)) - - # self.plot_summary_A(paths, tooldia, result, "FLY Expected") - - -class PaintConnectTest2(PaintTestCase): - """ - Boundary with an internal cutout. - """ - - def setUp(self): - self.boundary = Polygon([[0, 0], [0, 5], [5, 5], [5, 0]]) - self.boundary = self.boundary.difference( - Polygon([[2, 1], [3, 1], [3, 4], [2, 4]]) - ) - - def test_no_jump3(self): - print("TEST: No jump expected") - paths = [ - LineString([[0.5, 1], [1.5, 3]]), - LineString([[4, 1], [4, 4]]) - ] - for p in paths: - print(p) - - tooldia = 1.0 - - print("--") - result = Geometry.paint_connect(mkstorage(deepcopy(paths)), self.boundary, tooldia) - - result = list(result.get_objects()) - for r in result: - print(r) - - self.assertEqual(len(result), len(paths)) - - # self.plot_summary_A(paths, tooldia, result, "FLY Expected") - - -class PaintConnectTest3(PaintTestCase): - """ - Tests with linerings among elements. - """ - - def setUp(self): - self.boundary = Polygon([[0, 0], [0, 5], [5, 5], [5, 0]]) - print("TEST w/ LinearRings") - - def test_jump2(self): - print("Test: WALK Expected") - paths = [ - LineString([[0.5, 2], [2, 4.5]]), - LineString([[2, 0.5], [4.5, 2]]), - self.boundary.buffer(-0.5).exterior - ] - for p in paths: - print(p) - - tooldia = 1.0 - - print("--") - result = Geometry.paint_connect(mkstorage(deepcopy(paths)), self.boundary, tooldia) - - result = list(result.get_objects()) - for r in result: - print(r) - - self.assertEqual(len(result), 1) - - # self.plot_summary_A(paths, tooldia, result, "WALK Expected") - - -if __name__ == '__main__': - unittest.main() diff --git a/tests/test_pathconnect.py b/tests/test_pathconnect.py deleted file mode 100644 index cf25389f..00000000 --- a/tests/test_pathconnect.py +++ /dev/null @@ -1,89 +0,0 @@ -import unittest - -from shapely.geometry import LineString, Polygon -from shapely.ops import unary_union -from matplotlib.pyplot import plot, subplot, show, cla, clf, xlim, ylim, title -from camlib import * -from random import random - - -def mkstorage(paths): - def get_pts(o): - return [o.coords[0], o.coords[-1]] - storage = FlatCAMRTreeStorage() - storage.get_points = get_pts - for p in paths: - storage.insert(p) - return storage - - -class PathConnectTest1(unittest.TestCase): - - def setUp(self): - print("PathConnectTest1.setUp()") - pass - - def test_simple_connect(self): - paths = [ - LineString([[0, 0], [1, 1]]), - LineString([[1, 1], [2, 1]]) - ] - - result = Geometry.path_connect(mkstorage(paths)) - - result = list(result.get_objects()) - self.assertEqual(len(result), 1) - self.assertTrue(result[0].equals(LineString([[0, 0], [1, 1], [2, 1]]))) - - def test_interfere_connect(self): - paths = [ - LineString([[0, 0], [1, 1]]), - LineString([[1, 1], [2, 1]]), - LineString([[-0.5, 0.5], [0.5, 0]]) - ] - - result = Geometry.path_connect(mkstorage(paths)) - - result = list(result.get_objects()) - self.assertEqual(len(result), 2) - matches = [p for p in result if p.equals(LineString([[0, 0], [1, 1], [2, 1]]))] - self.assertEqual(len(matches), 1) - - def test_simple_connect_offset1(self): - for i in range(20): - offset_x = random() - offset_y = random() - - paths = [ - LineString([[0 + offset_x, 0 + offset_y], [1 + offset_x, 1 + offset_y]]), - LineString([[1 + offset_x, 1 + offset_y], [2 + offset_x, 1 + offset_y]]) - ] - - result = Geometry.path_connect(mkstorage(paths)) - - result = list(result.get_objects()) - self.assertEqual(len(result), 1) - self.assertTrue(result[0].equals(LineString([[0 + offset_x, 0 + offset_y], - [1 + offset_x, 1 + offset_y], - [2 + offset_x, 1 + offset_y]]))) - - def test_ring_interfere_connect(self): - print() - print("TEST STARTING ...") - - paths = [ - LineString([[0, 0], [1, 1]]), - LineString([[1, 1], [2, 1]]), - LinearRing([[1, 1], [2, 2], [1, 3], [0, 2]]) - ] - - result = Geometry.path_connect(mkstorage(paths)) - - result = list(result.get_objects()) - self.assertEqual(len(result), 2) - matches = [p for p in result if p.equals(LineString([[0, 0], [1, 1], [2, 1]]))] - self.assertEqual(len(matches), 1) - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_polygon_paint.py b/tests/test_polygon_paint.py deleted file mode 100644 index 34707fa2..00000000 --- a/tests/test_polygon_paint.py +++ /dev/null @@ -1,220 +0,0 @@ -import sys -import unittest -from PyQt5 import QtGui, QtWidgets -from FlatCAMApp import App -from FlatCAMObj import FlatCAMGeometry, FlatCAMCNCjob -from flatcamGUI.ObjectUI import GerberObjectUI, GeometryObjectUI -from time import sleep -import os -import tempfile -from shapely.geometry import LineString, LinearRing, Polygon, MultiPolygon - - -class PolyPaintTestCase(unittest.TestCase): - - def setUp(self): - self.app = QtWidgets.QApplication(sys.argv) - - # Create App, keep app defaults (do not load - # user-defined defaults). - self.fc = App(user_defaults=False) - - def tearDown(self): - - for _ in range(2): - self.app.processEvents() - - # NOTE: These are creating problems... - # del self.fc - # del self.app - - def test_poly_paint_svg_all(self): - - print("*********************************") - print("* svg_all *") - print("*********************************") - - # Clear workspace - self.fc.on_file_new() - for _ in range(2): - self.app.processEvents() - - # Open SVG with polygons - self.fc.import_svg('tests/svg/drawing.svg') - - name = self.fc.collection.get_names()[0] - - self.fc.collection.set_active(name) - - geo_obj = self.fc.collection.get_by_name(name) - - # Paint all polygons - geo_obj.paint_poly_all(5, 0.2, 1) - sleep(5) # Todo: Do not base it on fixed time. - for _ in range(2): - self.app.processEvents() - - # New object should be available - names = self.fc.collection.get_names() - - self.assertEqual(len(names), 2) - - # Verify new geometry makes sense - painted = self.fc.collection.get_by_name(names[-1]) - for geo in painted.solid_geometry: - # Correct Type - self.assertTrue(isinstance(geo, LineString)) - # Lots of points (Should be 1000s) - self.assertGreater(len(geo.coords), 2) - - def test_poly_paint_svg_click(self): - - print("*********************************") - print("* svg_click *") - print("*********************************") - - # Clear workspace - self.fc.on_file_new() - for _ in range(2): - self.app.processEvents() - - # Open SVG with polygons - self.fc.import_svg('tests/svg/drawing.svg') - - name = self.fc.collection.get_names()[0] - - self.fc.collection.set_active(name) - - geo_obj = self.fc.collection.get_by_name(name) - - # Paint all polygons - geo_obj.paint_poly_single_click([300, 700], 5, 0.2, 1) - sleep(5) - for _ in range(2): - self.app.processEvents() - - # New object should be available - names = self.fc.collection.get_names() - - sleep(1) - self.assertEqual(len(names), 2) - - # Verify new geometry makes sense - painted = self.fc.collection.get_by_name(names[-1]) - for geo in painted.solid_geometry: - # Correct Type - self.assertTrue(isinstance(geo, LineString)) - # Lots of points (Should be 1000s) - self.assertGreater(len(geo.coords), 2) - - def test_poly_paint_noncopper_all(self): - - print("*********************************") - print("* noncopper_all *") - print("*********************************") - - # Clear workspace - self.fc.on_file_new() - for _ in range(2): - self.app.processEvents() - - self.fc.open_gerber('tests/gerber_files/simple1.gbr') - sleep(1) - for _ in range(2): - self.app.processEvents() - - name = self.fc.collection.get_names()[0] - - gerber_obj = self.fc.collection.get_by_name(name) - - self.fc.collection.set_active(name) - - gerber_obj.on_generatenoncopper_button_click() - sleep(1) - for _ in range(2): - self.app.processEvents() - - # New object should be available - names = self.fc.collection.get_names() - - sleep(1) - self.assertEqual(len(names), 2) - - geoname = "simple1.gbr_noncopper" - geo_obj = self.fc.collection.get_by_name(geoname) - self.fc.collection.set_active(geoname) - - geo_obj.paint_poly_all(0.02, 0.2, 0) - sleep(5) - for _ in range(2): - self.app.processEvents() - - # New object should be available - names = self.fc.collection.get_names() - - sleep(1) - self.assertEqual(len(names), 3) - - # Verify new geometry makes sense - painted = self.fc.collection.get_by_name(names[-1]) - for geo in painted.solid_geometry: - # Correct Type - self.assertTrue(isinstance(geo, LineString)) - # Lots of points (Should be 1000s) - self.assertGreater(len(geo.coords), 2) - - def test_poly_paint_noncopper_click(self): - - print("*********************************") - print("* noncopper_click *") - print("*********************************") - - # Clear workspace - self.fc.on_file_new() - for _ in range(2): - self.app.processEvents() - - self.fc.open_gerber('tests/gerber_files/simple1.gbr') - sleep(1) - for _ in range(2): - self.app.processEvents() - - name = self.fc.collection.get_names()[0] - - gerber_obj = self.fc.collection.get_by_name(name) - - self.fc.collection.set_active(name) - - gerber_obj.on_generatenoncopper_button_click() - sleep(1) - for _ in range(2): - self.app.processEvents() - - # New object should be available - names = self.fc.collection.get_names() - - sleep(1) - self.assertEqual(len(names), 2) - - geoname = "simple1.gbr_noncopper" - geo_obj = self.fc.collection.get_by_name(geoname) - self.fc.collection.set_active(geoname) - - geo_obj.paint_poly_single_click([2.7, 1.0], 0.02, 0.2, 0) - sleep(5) - for _ in range(2): - self.app.processEvents() - - # New object should be available - names = self.fc.collection.get_names() - - sleep(1) - self.assertEqual(len(names), 3) - - # Verify new geometry makes sense - painted = self.fc.collection.get_by_name(names[-1]) - for geo in painted.solid_geometry: - # Correct Type - self.assertTrue(isinstance(geo, LineString)) - # Lots of points (Should be 1000s) - self.assertGreater(len(geo.coords), 2) diff --git a/tests/test_svg_flow.py b/tests/test_svg_flow.py deleted file mode 100644 index 7fbd6658..00000000 --- a/tests/test_svg_flow.py +++ /dev/null @@ -1,127 +0,0 @@ -import sys -import unittest -from PyQt5 import QtWidgets -from FlatCAMApp import App -from FlatCAMObj import FlatCAMGeometry, FlatCAMCNCjob -from flatcamGUI.ObjectUI import GerberObjectUI, GeometryObjectUI -from time import sleep -import os -import tempfile - - -class SVGFlowTestCase(unittest.TestCase): - - def setUp(self): - self.app = QtWidgets.QApplication(sys.argv) - - # Create App, keep app defaults (do not load - # user-defined defaults). - self.fc = App(user_defaults=False) - - self.filename = 'drawing.svg' - - def tearDown(self): - del self.fc - del self.app - - def test_flow(self): - - self.fc.import_svg('tests/svg/' + self.filename) - - names = self.fc.collection.get_names() - print(names) - - # -------------------------------------- - # Total of 1 objects. - # -------------------------------------- - self.assertEqual(len(names), 1, "Expected 1 object, found %d" % len(names)) - - # -------------------------------------- - # Object's name matches the file name. - # -------------------------------------- - self.assertEqual(names[0], self.filename, "Expected name == %s, got %s" % (self.filename, names[0])) - - # --------------------------------------- - # Get object by that name, make sure it's a FlatCAMGerber. - # --------------------------------------- - geo_name = names[0] - geo_obj = self.fc.collection.get_by_name(geo_name) - self.assertTrue(isinstance(geo_obj, FlatCAMGeometry), - "Expected FlatCAMGeometry, instead, %s is %s" % - (geo_name, type(geo_obj))) - - # ---------------------------------------- - # Object's GUI matches Object's options - # ---------------------------------------- - # TODO: Open GUI with double-click on object. - # Opens the Object's GUI, populates it. - geo_obj.build_ui() - for option, value in list(geo_obj.options.items()): - try: - form_field = geo_obj.form_fields[option] - except KeyError: - print(("**********************************************************\n" - "* WARNING: Option '{}' has no form field\n" - "**********************************************************" - "".format(option))) - continue - self.assertEqual(value, form_field.get_value(), - "Option '{}' == {} but form has {}".format( - option, value, form_field.get_value() - )) - - # ------------------------------------ - # Open the UI, make CNCObject - # ------------------------------------ - geo_obj.build_ui() - ui = geo_obj.ui - assert isinstance(ui, GeometryObjectUI) # Just for the IDE - ui.generate_cnc_button.click() # Click - - # Work is done in a separate thread and results are - # passed via events to the main event loop which is - # not running. Run only for pending events. - # - # I'm not sure why, but running it only once does - # not catch the new object. Might be a timing issue. - # http://pyqt.sourceforge.net/Docs/PyQt4/qeventloop.html#details - for _ in range(2): - sleep(0.1) - self.app.processEvents() - - # --------------------------------------------- - # Check that only 1 object has been created. - # --------------------------------------------- - names = self.fc.collection.get_names() - self.assertEqual(len(names), 2, - "Expected 2 objects, found %d" % len(names)) - - # ------------------------------------------------------- - # Make sure the CNC Job Object has the correct name - # ------------------------------------------------------- - cnc_name = geo_name + "_cnc" - self.assertTrue(cnc_name in names, - "Object named %s not found." % geo_name) - - # ------------------------------------------------------- - # Get the object make sure it's a CNC Job object - # ------------------------------------------------------- - cnc_obj = self.fc.collection.get_by_name(cnc_name) - self.assertTrue(isinstance(cnc_obj, FlatCAMCNCjob), - "Expected a FlatCAMCNCJob, got %s" % type(geo_obj)) - - # ----------------------------------------- - # Export G-Code, check output - # ----------------------------------------- - assert isinstance(cnc_obj, FlatCAMCNCjob) - output_filename = "" - # get system temporary file(try create it and delete also) - with tempfile.NamedTemporaryFile(prefix='unittest.', - suffix="." + cnc_name + '.gcode', - delete=True) as tmp_file: - output_filename = tmp_file.name - cnc_obj.export_gcode(output_filename) - self.assertTrue(os.path.isfile(output_filename)) - os.remove(output_filename) - - print(names) diff --git a/tests/test_tclCommands/__init__.py b/tests/test_tclCommands/__init__.py deleted file mode 100644 index 615ad03d..00000000 --- a/tests/test_tclCommands/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -import pkgutil -import sys - -# allowed command tests (please append them alphabetically ordered) -from .test_TclCommandAddPolygon import * -from .test_TclCommandAddPolyline import * -from .test_TclCommandCncjob import * -from .test_TclCommandDrillcncjob import * -from .test_TclCommandExportGcode import * -from .test_TclCommandExteriors import * -from .test_TclCommandImportSvg import * -from .test_TclCommandInteriors import * -from .test_TclCommandIsolate import * -from .test_TclCommandNew import * -from .test_TclCommandNewGeometry import * -from .test_TclCommandOpenExcellon import * -from .test_TclCommandOpenGerber import * -from .test_TclCommandPaintPolygon import * diff --git a/tests/test_tclCommands/test_TclCommandAddPolygon.py b/tests/test_tclCommands/test_TclCommandAddPolygon.py deleted file mode 100644 index e2099add..00000000 --- a/tests/test_tclCommands/test_TclCommandAddPolygon.py +++ /dev/null @@ -1,18 +0,0 @@ -from FlatCAMObj import FlatCAMGeometry - - -def test_add_polygon(self): - """ - Test add polygon into geometry - :param self: - :return: - """ - - self.fc.exec_command_test('new_geometry "%s"' % self.geometry_name) - geometry_obj = self.fc.collection.get_by_name(self.geometry_name) - self.assertTrue(isinstance(geometry_obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s" - % (self.geometry_name, type(geometry_obj))) - - points = '0 0 20 0 10 10 0 10' - - self.fc.exec_command_test('add_polygon "%s" %s' % (self.geometry_name, points)) diff --git a/tests/test_tclCommands/test_TclCommandAddPolyline.py b/tests/test_tclCommands/test_TclCommandAddPolyline.py deleted file mode 100644 index 69c0577d..00000000 --- a/tests/test_tclCommands/test_TclCommandAddPolyline.py +++ /dev/null @@ -1,18 +0,0 @@ -from FlatCAMObj import FlatCAMGeometry - - -def test_add_polyline(self): - """ - Test add polyline into geometry - :param self: - :return: - """ - - self.fc.exec_command_test('new_geometry "%s"' % self.geometry_name) - geometry_obj = self.fc.collection.get_by_name(self.geometry_name) - self.assertTrue(isinstance(geometry_obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s" - % (self.geometry_name, type(geometry_obj))) - - points = '0 0 20 0 10 10 0 10 33 33' - - self.fc.exec_command_test('add_polyline "%s" %s' % (self.geometry_name, points)) diff --git a/tests/test_tclCommands/test_TclCommandCncjob.py b/tests/test_tclCommands/test_TclCommandCncjob.py deleted file mode 100644 index 63ded99b..00000000 --- a/tests/test_tclCommands/test_TclCommandCncjob.py +++ /dev/null @@ -1,17 +0,0 @@ -from FlatCAMObj import FlatCAMGerber, FlatCAMGeometry, FlatCAMObj -from .test_TclCommandIsolate import * - -def test_cncjob(self): - """ - Test cncjob - :param self: - :return: - """ - - # reuse isolate tests - test_isolate(self) - - self.fc.exec_command_test('cncjob %s_iso -tooldia 0.5 -z_cut 0.05 -z_move 3 -feedrate 300' % self.gerber_top_name) - cam_top_obj = self.fc.collection.get_by_name(self.gerber_top_name + '_iso_cnc') - self.assertTrue(isinstance(cam_top_obj, FlatCAMObj), "Expected FlatCAMObj, instead, %s is %s" - % (self.gerber_top_name + '_iso_cnc', type(cam_top_obj))) \ No newline at end of file diff --git a/tests/test_tclCommands/test_TclCommandDrillcncjob.py b/tests/test_tclCommands/test_TclCommandDrillcncjob.py deleted file mode 100644 index ce651a6e..00000000 --- a/tests/test_tclCommands/test_TclCommandDrillcncjob.py +++ /dev/null @@ -1,18 +0,0 @@ -from FlatCAMObj import FlatCAMObj -from .test_TclCommandOpenExcellon import * - - -def test_drillcncjob(self): - """ - Test cncjob - :param self: - :return: - """ - # reuse open excellontests - test_open_excellon(self) - - self.fc.exec_command_test('drillcncjob %s -tools all -drillz 0.5 -travelz 3 -feedrate 300' - % self.excellon_name) - cam_top_obj = self.fc.collection.get_by_name(self.excellon_name + '_cnc') - self.assertTrue(isinstance(cam_top_obj, FlatCAMObj), "Expected FlatCAMObj, instead, %s is %s" - % (self.excellon_name + '_cnc', type(cam_top_obj))) diff --git a/tests/test_tclCommands/test_TclCommandExportGcode.py b/tests/test_tclCommands/test_TclCommandExportGcode.py deleted file mode 100644 index 880b5bea..00000000 --- a/tests/test_tclCommands/test_TclCommandExportGcode.py +++ /dev/null @@ -1,33 +0,0 @@ -import os -import tempfile - -from .test_TclCommandCncjob import * -from .test_TclCommandDrillcncjob import * - - -def test_export_gcodecncjob(self): - """ - Test cncjob - :param self: - :return: - """ - - # reuse tests - test_cncjob(self) - test_drillcncjob(self) - - with tempfile.NamedTemporaryFile(prefix='unittest.', suffix="." + self.excellon_name + '.gcode', delete=True)\ - as tmp_file: - output_filename = tmp_file.name - self.fc.exec_command_test('write_gcode "%s" "%s"' % (self.excellon_name + '_cnc', output_filename)) - self.assertTrue(os.path.isfile(output_filename)) - os.remove(output_filename) - - with tempfile.NamedTemporaryFile(prefix='unittest.', suffix="." + self.gerber_top_name + '.gcode', delete=True)\ - as tmp_file: - output_filename = tmp_file.name - self.fc.exec_command_test('write_gcode "%s" "%s"' % (self.gerber_top_name + '_iso_cnc', output_filename)) - self.assertTrue(os.path.isfile(output_filename)) - os.remove(output_filename) - - # TODO check what is inside files , it should be same every time \ No newline at end of file diff --git a/tests/test_tclCommands/test_TclCommandExteriors.py b/tests/test_tclCommands/test_TclCommandExteriors.py deleted file mode 100644 index da47be9f..00000000 --- a/tests/test_tclCommands/test_TclCommandExteriors.py +++ /dev/null @@ -1,24 +0,0 @@ -from FlatCAMObj import FlatCAMGerber, FlatCAMGeometry - - -def test_exteriors(self): - """ - Test exteriors - :param self: - :return: - """ - - self.fc.exec_command_test('open_gerber %s/%s -outname %s' - % (self.gerber_files, self.cutout_filename, self.gerber_cutout_name)) - gerber_cutout_obj = self.fc.collection.get_by_name(self.gerber_cutout_name) - self.assertTrue(isinstance(gerber_cutout_obj, FlatCAMGerber), "Expected FlatCAMGerber, instead, %s is %s" - % (self.gerber_cutout_name, type(gerber_cutout_obj))) - - # exteriors interiors and delete isolated traces - self.fc.exec_command_test('isolate %s -dia %f' % (self.gerber_cutout_name, self.engraver_diameter)) - self.fc.exec_command_test('exteriors %s -outname %s' - % (self.gerber_cutout_name + '_iso', self.gerber_cutout_name + '_iso_exterior')) - self.fc.exec_command_test('delete %s' % (self.gerber_cutout_name + '_iso')) - obj = self.fc.collection.get_by_name(self.gerber_cutout_name + '_iso_exterior') - self.assertTrue(isinstance(obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s" - % (self.gerber_cutout_name + '_iso_exterior', type(obj))) diff --git a/tests/test_tclCommands/test_TclCommandImportSvg.py b/tests/test_tclCommands/test_TclCommandImportSvg.py deleted file mode 100644 index 3db2590c..00000000 --- a/tests/test_tclCommands/test_TclCommandImportSvg.py +++ /dev/null @@ -1,60 +0,0 @@ -from os import listdir - -from FlatCAMObj import FlatCAMGerber, FlatCAMGeometry - - -def test_import_svg(self): - """ - Test all SVG files inside svg directory. - Problematic SVG files shold be put there as test reference. - :param self: - :return: - """ - - file_list = listdir(self.svg_files) - - for svg_file in file_list: - - # import without outname - self.fc.exec_command_test('import_svg "%s/%s"' % (self.svg_files, svg_file)) - - obj = self.fc.collection.get_by_name(svg_file) - self.assertTrue(isinstance(obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s" - % (svg_file, type(obj))) - - # import with outname - outname = '%s-%s' % (self.geometry_name, svg_file) - self.fc.exec_command_test('import_svg "%s/%s" -outname "%s"' % (self.svg_files, svg_file, outname)) - - obj = self.fc.collection.get_by_name(outname) - self.assertTrue(isinstance(obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s" - % (outname, type(obj))) - - names = self.fc.collection.get_names() - self.assertEqual(len(names), len(file_list)*2, - "Expected %d objects, found %d" % (len(file_list)*2, len(file_list))) - - -def test_import_svg_as_geometry(self): - - self.fc.exec_command_test('import_svg "%s/%s" -type geometry -outname "%s"' - % (self.svg_files, self.svg_filename, self.geometry_name)) - - obj = self.fc.collection.get_by_name(self.geometry_name) - self.assertTrue(isinstance(obj, FlatCAMGeometry) and not isinstance(obj, FlatCAMGerber), - "Expected FlatCAMGeometry, instead, %s is %s" % (self.geometry_name, type(obj))) - - -def test_import_svg_as_gerber(self): - - self.fc.exec_command_test('import_svg "%s/%s" -type gerber -outname "%s"' - % (self.svg_files, self.svg_filename, self.gerber_name)) - - obj = self.fc.collection.get_by_name(self.gerber_name) - self.assertTrue(isinstance(obj, FlatCAMGerber), - "Expected FlatCAMGerber, instead, %s is %s" % (self.gerber_name, type(obj))) - - self.fc.exec_command_test('isolate "%s"' % self.gerber_name) - obj = self.fc.collection.get_by_name(self.gerber_name+'_iso') - self.assertTrue(isinstance(obj, FlatCAMGeometry), - "Expected FlatCAMGeometry, instead, %s is %s" % (self.gerber_name+'_iso', type(obj))) diff --git a/tests/test_tclCommands/test_TclCommandInteriors.py b/tests/test_tclCommands/test_TclCommandInteriors.py deleted file mode 100644 index c58c380c..00000000 --- a/tests/test_tclCommands/test_TclCommandInteriors.py +++ /dev/null @@ -1,24 +0,0 @@ -from FlatCAMObj import FlatCAMGerber, FlatCAMGeometry - - -def test_interiors(self): - """ - Test interiors - :param self: - :return: - """ - - self.fc.exec_command_test('open_gerber %s/%s -outname %s' - % (self.gerber_files, self.cutout_filename, self.gerber_cutout_name)) - gerber_cutout_obj = self.fc.collection.get_by_name(self.gerber_cutout_name) - self.assertTrue(isinstance(gerber_cutout_obj, FlatCAMGerber), "Expected FlatCAMGerber, instead, %s is %s" - % (self.gerber_cutout_name, type(gerber_cutout_obj))) - - # interiors and delete isolated traces - self.fc.exec_command_test('isolate %s -dia %f' % (self.gerber_cutout_name, self.engraver_diameter)) - self.fc.exec_command_test('interiors %s -outname %s' - % (self.gerber_cutout_name + '_iso', self.gerber_cutout_name + '_iso_interior')) - self.fc.exec_command_test('delete %s' % (self.gerber_cutout_name + '_iso')) - obj = self.fc.collection.get_by_name(self.gerber_cutout_name + '_iso_interior') - self.assertTrue(isinstance(obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s" - % (self.gerber_cutout_name + '_iso_interior', type(obj))) diff --git a/tests/test_tclCommands/test_TclCommandIsolate.py b/tests/test_tclCommands/test_TclCommandIsolate.py deleted file mode 100644 index e61aa40b..00000000 --- a/tests/test_tclCommands/test_TclCommandIsolate.py +++ /dev/null @@ -1,21 +0,0 @@ -from FlatCAMObj import FlatCAMGerber, FlatCAMGeometry - - -def test_isolate(self): - """ - Test isolate gerber - :param self: - :return: - """ - - self.fc.exec_command_test('open_gerber %s/%s -outname %s' - % (self.gerber_files, self.copper_top_filename, self.gerber_top_name)) - gerber_top_obj = self.fc.collection.get_by_name(self.gerber_top_name) - self.assertTrue(isinstance(gerber_top_obj, FlatCAMGerber), "Expected FlatCAMGerber, instead, %s is %s" - % (self.gerber_top_name, type(gerber_top_obj))) - - # isolate traces - self.fc.exec_command_test('isolate %s -dia %f' % (self.gerber_top_name, self.engraver_diameter)) - geometry_top_obj = self.fc.collection.get_by_name(self.gerber_top_name+'_iso') - self.assertTrue(isinstance(geometry_top_obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s" - % (self.gerber_top_name+'_iso', type(geometry_top_obj))) \ No newline at end of file diff --git a/tests/test_tclCommands/test_TclCommandNew.py b/tests/test_tclCommands/test_TclCommandNew.py deleted file mode 100644 index 07eba0b7..00000000 --- a/tests/test_tclCommands/test_TclCommandNew.py +++ /dev/null @@ -1,48 +0,0 @@ -from FlatCAMObj import FlatCAMGeometry - - -def test_new(self): - """ - Test new project - :param self: - :return: - """ - - self.fc.exec_command_test('new_geometry "%s"' % self.geometry_name) - geometry_obj = self.fc.collection.get_by_name(self.geometry_name) - self.assertTrue(isinstance(geometry_obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s" - % (self.geometry_name, type(geometry_obj))) - - self.fc.exec_command_test('proc testproc {} { puts "testresult" }') - - result = self.fc.exec_command_test('testproc') - - self.assertEqual(result, "testresult",'testproc should return "testresult"') - - self.fc.exec_command_test('set_sys units MM') - self.fc.exec_command_test('new') - - # object should not exists anymore - geometry_obj = self.fc.collection.get_by_name(self.geometry_name) - self.assertIsNone(geometry_obj, "Expected object to be None, instead, %s is %s" - % (self.geometry_name, type(geometry_obj))) - - # TODO after new it should delete all procedures and variables, we need to make sure "testproc" does not exists - - # Test it again with same names - - self.fc.exec_command_test('set_sys units MM') - self.fc.exec_command_test('new') - - self.fc.exec_command_test('new_geometry "%s"' % self.geometry_name) - geometry_obj = self.fc.collection.get_by_name(self.geometry_name) - self.assertTrue(isinstance(geometry_obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s" - % (self.geometry_name, type(geometry_obj))) - - self.fc.exec_command_test('set_sys units MM') - self.fc.exec_command_test('new') - - # object should not exists anymore - geometry_obj = self.fc.collection.get_by_name(self.geometry_name) - self.assertIsNone(geometry_obj, "Expected object to be None, instead, %s is %s" - % (self.geometry_name, type(geometry_obj))) diff --git a/tests/test_tclCommands/test_TclCommandNewGeometry.py b/tests/test_tclCommands/test_TclCommandNewGeometry.py deleted file mode 100644 index 72e069c6..00000000 --- a/tests/test_tclCommands/test_TclCommandNewGeometry.py +++ /dev/null @@ -1,14 +0,0 @@ -from FlatCAMObj import FlatCAMGeometry - - -def test_new_geometry(self): - """ - Test create new geometry - :param self: - :return: - """ - - self.fc.exec_command_test('new_geometry "%s"' % self.geometry_name) - geometry_obj = self.fc.collection.get_by_name(self.geometry_name) - self.assertTrue(isinstance(geometry_obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s" - % (self.geometry_name, type(geometry_obj))) diff --git a/tests/test_tclCommands/test_TclCommandOpenExcellon.py b/tests/test_tclCommands/test_TclCommandOpenExcellon.py deleted file mode 100644 index 7570ea53..00000000 --- a/tests/test_tclCommands/test_TclCommandOpenExcellon.py +++ /dev/null @@ -1,15 +0,0 @@ -from FlatCAMObj import FlatCAMExcellon - - -def test_open_excellon(self): - """ - Test open excellon file - :param self: - :return: - """ - - self.fc.exec_command_test('open_excellon %s/%s -outname %s' - % (self.gerber_files, self.excellon_filename, self.excellon_name)) - excellon_obj = self.fc.collection.get_by_name(self.excellon_name) - self.assertTrue(isinstance(excellon_obj, FlatCAMExcellon), "Expected FlatCAMExcellon, instead, %s is %s" - % (self.excellon_name, type(excellon_obj))) diff --git a/tests/test_tclCommands/test_TclCommandOpenGerber.py b/tests/test_tclCommands/test_TclCommandOpenGerber.py deleted file mode 100644 index 71d50b0d..00000000 --- a/tests/test_tclCommands/test_TclCommandOpenGerber.py +++ /dev/null @@ -1,25 +0,0 @@ -from FlatCAMObj import FlatCAMGerber - - -def test_open_gerber(self): - """ - Test open gerber file - :param self: - :return: - """ - - self.fc.exec_command_test('open_gerber %s/%s -outname %s' - % (self.gerber_files, self.copper_top_filename, self.gerber_top_name)) - gerber_top_obj = self.fc.collection.get_by_name(self.gerber_top_name) - self.assertTrue(isinstance(gerber_top_obj, FlatCAMGerber), "Expected FlatCAMGerber, instead, %s is %s" - % (self.gerber_top_name, type(gerber_top_obj))) - - self.fc.exec_command_test('open_gerber %s/%s -outname %s' - % (self.gerber_files, self.copper_bottom_filename, self.gerber_bottom_name)) - gerber_bottom_obj = self.fc.collection.get_by_name(self.gerber_bottom_name) - self.assertTrue(isinstance(gerber_bottom_obj, FlatCAMGerber), "Expected FlatCAMGerber, instead, %s is %s" - % (self.gerber_bottom_name, type(gerber_bottom_obj))) - - #just read with original name - self.fc.exec_command_test('open_gerber %s/%s' - % (self.gerber_files, self.copper_top_filename)) diff --git a/tests/test_tclCommands/test_TclCommandPaintPolygon.py b/tests/test_tclCommands/test_TclCommandPaintPolygon.py deleted file mode 100644 index cc0c5616..00000000 --- a/tests/test_tclCommands/test_TclCommandPaintPolygon.py +++ /dev/null @@ -1,25 +0,0 @@ -from FlatCAMObj import FlatCAMGeometry - - -def test_paint_polygon(self): - """ - Test create paint polygon geometry - :param self: - :return: - """ - - self.fc.exec_command_test('new_geometry "%s"' % self.geometry_name) - geometry_obj = self.fc.collection.get_by_name(self.geometry_name) - self.assertTrue(isinstance(geometry_obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s" - % (self.geometry_name, type(geometry_obj))) - - points = '0 0 20 0 10 10 0 10' - - self.fc.exec_command_test('add_polygon "%s" %s' % (self.geometry_name, points)) - - # TODO rename to paint_polygon in future oop command implementation - self.fc.exec_command_test('paint_poly "%s" 5 5 2 0.5' % (self.geometry_name)) - geometry_obj = self.fc.collection.get_by_name(self.geometry_name+'_paint') - # TODO uncoment check after oop implementation, because of threading inside paint poly - #self.assertTrue(isinstance(geometry_obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s" - # % (self.geometry_name+'_paint', type(geometry_obj))) diff --git a/tests/test_tcl_shell.py b/tests/test_tcl_shell.py deleted file mode 100644 index 0933f66b..00000000 --- a/tests/test_tcl_shell.py +++ /dev/null @@ -1,272 +0,0 @@ -import sys -import unittest -from PyQt5 import QtWidgets, QtGui -from PyQt5.QtCore import QThread - -from FlatCAMApp import App -from os import listdir -from os.path import isfile -from FlatCAMObj import FlatCAMGerber, FlatCAMGeometry, FlatCAMCNCjob, FlatCAMExcellon -from flatcamGUI.ObjectUI import GerberObjectUI, GeometryObjectUI -from time import sleep -import os -import tempfile - - -class TclShellTest(unittest.TestCase): - - svg_files = 'tests/svg' - svg_filename = 'Arduino Nano3_pcb.svg' - gerber_files = 'tests/gerber_files' - copper_bottom_filename = 'detector_copper_bottom.gbr' - copper_top_filename = 'detector_copper_top.gbr' - cutout_filename = 'detector_contour.gbr' - excellon_filename = 'detector_drill.txt' - gerber_name = "gerber" - geometry_name = "geometry" - excellon_name = "excellon" - gerber_top_name = "top" - gerber_bottom_name = "bottom" - gerber_cutout_name = "cutout" - engraver_diameter = 0.3 - cutout_diameter = 3 - drill_diameter = 0.8 - - # load test methods to split huge test file into smaller pieces - # reason for this is reuse one test window only, - - # CANNOT DO THIS HERE!!! - # from tests.test_tclCommands import * - - @classmethod - def setUpClass(cls): - - cls.setup = True - cls.app = QtWidgets.QApplication(sys.argv) - - # Create App, keep app defaults (do not load - # user-defined defaults). - cls.fc = App(user_defaults=False) - cls.fc.ui.shell_dock.show() - - def setUp(self): - self.fc.exec_command_test('set_sys units MM') - self.fc.exec_command_test('new') - - @classmethod - def tearDownClass(cls): - - cls.fc.tcl = None - cls.app.closeAllWindows() - del cls.fc - del cls.app - pass - - def test_set_get_units(self): - """ - Tests setting and getting units via the ``set_sys`` command, - and persistance after ``new`` command. - - :return: None - """ - - # MM - self.fc.exec_command_test('set_sys units MM') - self.fc.exec_command_test('new') - - # IN - self.fc.exec_command_test('set_sys units IN') - self.fc.exec_command_test('new') - - # ---------------------------------------- - # Units must be IN - # ---------------------------------------- - units = self.fc.exec_command_test('get_sys units') - self.assertEqual(units, "IN") - - # MM - self.fc.exec_command_test('set_sys units MM') - self.fc.exec_command_test('new') - - # ---------------------------------------- - # Units must be MM - # ---------------------------------------- - units = self.fc.exec_command_test('get_sys units') - self.assertEqual(units, "MM") - - def test_gerber_flow(self): - """ - Typical workflow from Gerber to GCode. - - :return: None - """ - - gbr_cmd = 'open_gerber {path}/{filename} -outname {outname}' - - # ----------------------------------------- - # Open top layer and check for object type - # ----------------------------------------- - cmd = gbr_cmd.format( - path=self.gerber_files, - filename=self.copper_top_filename, - outname=self.gerber_top_name) - self.fc.exec_command_test(cmd) - gerber_top_obj = self.fc.collection.get_by_name(self.gerber_top_name) - self.assertTrue(isinstance(gerber_top_obj, FlatCAMGerber), - "Expected FlatCAMGerber, instead, %s is %s" % - (self.gerber_top_name, type(gerber_top_obj))) - - # -------------------------------------------- - # Open bottom layer and check for object type - # -------------------------------------------- - cmd = gbr_cmd.format( - path=self.gerber_files, - filename=self.copper_bottom_filename, - outname=self.gerber_bottom_name) - self.fc.exec_command_test(cmd) - gerber_bottom_obj = self.fc.collection.get_by_name(self.gerber_bottom_name) - self.assertTrue(isinstance(gerber_bottom_obj, FlatCAMGerber), - "Expected FlatCAMGerber, instead, %s is %s" % - (self.gerber_bottom_name, type(gerber_bottom_obj))) - - # -------------------------------------------- - # Open cutout layer and check for object type - # -------------------------------------------- - cmd = gbr_cmd.format( - path=self.gerber_files, - filename=self.cutout_filename, - outname=self.gerber_cutout_name - ) - self.fc.exec_command_test(cmd) - gerber_cutout_obj = self.fc.collection.get_by_name(self.gerber_cutout_name) - self.assertTrue(isinstance(gerber_cutout_obj, FlatCAMGerber), - "Expected FlatCAMGerber, instead, %s is %s" % - (self.gerber_cutout_name, type(gerber_cutout_obj))) - - # exteriors delete and join geometries for top layer - cmd = 'isolate {objname} -dia {dia}'.format( - objname=self.gerber_cutout_name, - dia=self.engraver_diameter) - self.fc.exec_command_test(cmd) - - cmd = 'exteriors {objname} -outname {outname}'.format( - objname=self.gerber_cutout_name + '_iso', - outname=self.gerber_cutout_name + '_iso_exterior') - self.fc.exec_command_test(cmd) - - cmd = 'delete {objname}'.format( - objname=self.gerber_cutout_name + '_iso') - self.fc.exec_command_test(cmd) - - # TODO: Check deleteb object is gone. - - # -------------------------------------------- - # Exteriors of cutout layer, check type - # -------------------------------------------- - obj = self.fc.collection.get_by_name(self.gerber_cutout_name + '_iso_exterior') - self.assertTrue(isinstance(obj, FlatCAMGeometry), - "Expected FlatCAMGeometry, instead, %s is %s" % - (self.gerber_cutout_name + '_iso_exterior', type(obj))) - - # mirror bottom gerbers - self.fc.exec_command_test('mirror %s -box %s -axis X' % (self.gerber_bottom_name, self.gerber_cutout_name)) - self.fc.exec_command_test('mirror %s -box %s -axis X' % (self.gerber_cutout_name, self.gerber_cutout_name)) - - # exteriors delete and join geometries for bottom layer - self.fc.exec_command_test( - 'isolate %s -dia %f -outname %s' % - (self.gerber_cutout_name, self.engraver_diameter, self.gerber_cutout_name + '_bottom_iso') - ) - self.fc.exec_command_test( - 'exteriors %s -outname %s' % - (self.gerber_cutout_name + '_bottom_iso', self.gerber_cutout_name + '_bottom_iso_exterior') - ) - self.fc.exec_command_test('delete %s' % (self.gerber_cutout_name + '_bottom_iso')) - obj = self.fc.collection.get_by_name(self.gerber_cutout_name + '_bottom_iso_exterior') - self.assertTrue(isinstance(obj, FlatCAMGeometry), - "Expected FlatCAMGeometry, instead, %s is %s" % - (self.gerber_cutout_name + '_bottom_iso_exterior', type(obj))) - - # at this stage we should have 5 objects - names = self.fc.collection.get_names() - self.assertEqual(len(names), 5, - "Expected 5 objects, found %d" % len(names)) - - # isolate traces - self.fc.exec_command_test('isolate %s -dia %f' % (self.gerber_top_name, self.engraver_diameter)) - self.fc.exec_command_test('isolate %s -dia %f' % (self.gerber_bottom_name, self.engraver_diameter)) - - # join isolated geometries for top and bottom - self.fc.exec_command_test( - 'join_geometries %s %s %s' % - (self.gerber_top_name + '_join_iso', self.gerber_top_name + '_iso', - self.gerber_cutout_name + '_iso_exterior') - ) - self.fc.exec_command_test( - 'join_geometries %s %s %s' % - (self.gerber_bottom_name + '_join_iso', self.gerber_bottom_name + '_iso', - self.gerber_cutout_name + '_bottom_iso_exterior') - ) - - # at this stage we should have 9 objects - names = self.fc.collection.get_names() - self.assertEqual(len(names), 9, - "Expected 9 objects, found %d" % len(names)) - - # clean unused isolations - self.fc.exec_command_test('delete %s' % (self.gerber_bottom_name + '_iso')) - self.fc.exec_command_test('delete %s' % (self.gerber_top_name + '_iso')) - self.fc.exec_command_test('delete %s' % (self.gerber_cutout_name + '_iso_exterior')) - self.fc.exec_command_test('delete %s' % (self.gerber_cutout_name + '_bottom_iso_exterior')) - - # at this stage we should have 5 objects again - names = self.fc.collection.get_names() - self.assertEqual(len(names), 5, - "Expected 5 objects, found %d" % len(names)) - - # geocutout bottom test (it cuts to same object) - self.fc.exec_command_test( - 'isolate %s -dia %f -outname %s' % - (self.gerber_cutout_name, self.cutout_diameter, self.gerber_cutout_name + '_bottom_iso') - ) - self.fc.exec_command_test( - 'exteriors %s -outname %s' % - (self.gerber_cutout_name + '_bottom_iso', self.gerber_cutout_name + '_bottom_iso_exterior') - ) - self.fc.exec_command_test('delete %s' % (self.gerber_cutout_name + '_bottom_iso')) - obj = self.fc.collection.get_by_name(self.gerber_cutout_name + '_bottom_iso_exterior') - self.assertTrue(isinstance(obj, FlatCAMGeometry), - "Expected FlatCAMGeometry, instead, %s is %s" % - (self.gerber_cutout_name + '_bottom_iso_exterior', type(obj))) - self.fc.exec_command_test('geocutout %s -dia %f -gapsize 0.3 -gaps 4' % - (self.gerber_cutout_name + '_bottom_iso_exterior', self.cutout_diameter)) - - # at this stage we should have 6 objects - names = self.fc.collection.get_names() - self.assertEqual(len(names), 6, - "Expected 6 objects, found %d" % len(names)) - - # TODO: tests for tcl - - def test_open_gerber(self): - - self.fc.exec_command_test('open_gerber %s/%s -outname %s' % - (self.gerber_files, self.copper_top_filename, self.gerber_top_name)) - gerber_top_obj = self.fc.collection.get_by_name(self.gerber_top_name) - self.assertTrue(isinstance(gerber_top_obj, FlatCAMGerber), - "Expected FlatCAMGerber, instead, %s is %s" % - (self.gerber_top_name, type(gerber_top_obj))) - - def test_excellon_flow(self): - - self.fc.exec_command_test('open_excellon %s/%s -outname %s' % - (self.gerber_files, self.excellon_filename, self.excellon_name)) - excellon_obj = self.fc.collection.get_by_name(self.excellon_name) - self.assertTrue(isinstance(excellon_obj, FlatCAMExcellon), - "Expected FlatCAMExcellon, instead, %s is %s" % - (self.excellon_name, type(excellon_obj))) - - # mirror bottom excellon - self.fc.exec_command_test('mirror %s -box %s -axis X' % (self.excellon_name, self.gerber_cutout_name)) - - # TODO: tests for tcl diff --git a/tests/test_voronoi.py b/tests/test_voronoi.py deleted file mode 100644 index 71a62942..00000000 --- a/tests/test_voronoi.py +++ /dev/null @@ -1,26 +0,0 @@ -""" -Test cases for Voronoi Diagram creation. -Overall, I'm trying less to test the correctness of the result -and more to cover input cases and behavior, making sure -that we return a sane result without error or raise a useful one. -""" - -import pytest - -from shapely.geos import geos_version -from shapely.wkt import loads as load_wkt - -from shapely.ops import voronoi_diagram - -requires_geos_35 = pytest.mark.skipif(geos_version < (3, 5, 0), reason='GEOS >= 3.5.0 is required.') - -@requires_geos_35 -def test_from_multipoint_without_tolerace_with_floating_point_coordinates(): - """But it's fine without it.""" - mp = load_wkt('MULTIPOINT (20.1273 18.7303, 26.5107 18.7303, 20.1273 23.8437, 26.5107 23.8437)') - - regions = voronoi_diagram(mp) - print("Len: %d -> Regions: %s" % (len(regions), str(regions))) - -print(geos_version) -test_from_multipoint_without_tolerace_with_floating_point_coordinates() diff --git a/tests/titlebar_custom.py b/tests/titlebar_custom.py deleted file mode 100644 index f136d0a6..00000000 --- a/tests/titlebar_custom.py +++ /dev/null @@ -1,197 +0,0 @@ -# ######################################################## -# # customize Title bar -# # dotpy.ir -# # iraj.jelo@gmail.com -# ######################################################## -import sys -from PyQt6 import QtWidgets, QtGui -from PyQt6 import QtCore -from PyQt6.QtCore import Qt - -from datetime import datetime -import traceback - - -class TitleBar(QtWidgets.QDialog): - def __init__(self, parent=None): - QtWidgets.QWidget.__init__(self, parent) - self.setWindowFlags(Qt.WindowType.FramelessWindowHint) - css = """ - QWidget{ - Background: #0000FF; - color:white; - font:12px bold; - font-weight:bold; - border-radius: 1px; - height: 11px; - } - QDialog{ - Background-image:url('img/titlebar bg.png'); - font-size:12px; - color: black; - - } - QToolButton{ - Background:#AA00AA; - font-size:11px; - } - QToolButton:hover{ - Background: #FF00FF; - font-size:11px; - } - """ - self.setAutoFillBackground(True) - self.setBackgroundRole(QtGui.QPalette.ColorRole.Highlight) - self.setStyleSheet(css) - self.minimize = QtWidgets.QToolButton(self) - self.minimize.setIcon(QtGui.QIcon('img/min.png')) - self.maximize = QtWidgets.QToolButton(self) - self.maximize.setIcon(QtGui.QIcon('img/max.png')) - close = QtWidgets.QToolButton(self) - close.setIcon(QtGui.QIcon('img/close.png')) - self.minimize.setMinimumHeight(10) - close.setMinimumHeight(10) - self.maximize.setMinimumHeight(10) - label = QtWidgets.QLabel(self) - label.setText("Window Title") - self.setWindowTitle("Window Title") - hbox = QtWidgets.QHBoxLayout(self) - hbox.addWidget(label) - hbox.addWidget(self.minimize) - hbox.addWidget(self.maximize) - hbox.addWidget(close) - hbox.insertStretch(1, 500) - hbox.setSpacing(0) - self.setSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed) - self.maxNormal = False - close.clicked.connect(self.close) - self.minimize.clicked.connect(self.showSmall) - self.maximize.clicked.connect(self.showMaxRestore) - - @staticmethod - def showSmall(): - box.showMinimized() - - def showMaxRestore(self): - if self.maxNormal: - box.showNormal() - self.maxNormal = False - self.maximize.setIcon(QtGui.QIcon('img/max.png')) - else: - box.showMaximized() - self.maxNormal = True - self.maximize.setIcon(QtGui.QIcon('img/max2.png')) - - def close(self): - box.close() - - def mousePressEvent(self, event): - if event.button() == Qt.MouseButton.LeftButton: - box.moving = True - box.offset = event.position() - if event.type() == QtCore.QEvent.Type.MouseButtonDblClick: - self.showMaxRestore() - - def mouseMoveEvent(self, event): - if box.isMaximized(): - self.showMaxRestore() - box.move(event.globalPosition().toPoint() - box.offset) - else: - if box.moving: - box.move(event.globalPosition().toPoint() - box.offset) - - -class Frame(QtWidgets.QFrame): - def __init__(self, parent=None): - QtWidgets.QFrame.__init__(self, parent) - - self.m_old_pos = None - self.m_mouse_down = False - self.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - css = """ - QFrame{ - Background: #FFFFF0; - color:white; - font:13px ; - font-weight:bold; - } - """ - self.setStyleSheet(css) - self.setWindowFlags(Qt.WindowType.FramelessWindowHint) - self.setMouseTracking(True) - self.m_titleBar = TitleBar(self) - self.m_content = QtWidgets.QWidget(self) - vbox = QtWidgets.QVBoxLayout(self) - vbox.addWidget(self.m_titleBar) - vbox.setContentsMargins(0, 0, 0, 0) - vbox.setSpacing(0) - layout = QtWidgets.QVBoxLayout() - layout.addWidget(self.m_content) - layout.setContentsMargins(5, 5, 5, 5) - layout.setSpacing(0) - vbox.addLayout(layout) - # Allows you to access the content area of the frame - # where widgets and layouts can be added - - def contentWidget(self): - return self.m_content - - def titleBar(self): - return self.m_titleBar - - def mousePressEvent(self, event): - self.m_old_pos = event.pos() - self.m_mouse_down = event.button() == Qt.MouseButton.LeftButton - - def mouseMoveEvent(self, event): - event.position().x() - event.position().y() - - def mouseReleaseEvent(self, event): - self.m_mouse_down = False - - -if __name__ == '__main__': - def excepthook(exc_type, exc_value, exc_tb): - msg = '%s\n' % str(datetime.today()) - if exc_type != KeyboardInterrupt: - msg += "".join(traceback.format_exception(exc_type, exc_value, exc_tb)) - - # show the message - try: - msgbox = QtWidgets.QMessageBox() - displayed_msg = "The application encountered a critical error and it will close.\n" \ - "Please report this error to the developers." - - msgbox.setText(displayed_msg) - msgbox.setDetailedText(msg) - msgbox.setWindowTitle("Critical Error") - # msgbox.setWindowIcon() - msgbox.setIcon(QtWidgets.QMessageBox.Icon.Critical) - - bt_yes = msgbox.addButton("Quit", QtWidgets.QMessageBox.ButtonRole.YesRole) - - msgbox.setDefaultButton(bt_yes) - # msgbox.setTextFormat(Qt.TextFormat.RichText) - msgbox.exec() - except Exception: - pass - QtWidgets.QApplication.quit() - # or QtWidgets.QApplication.exit(0) - - - sys.excepthook = excepthook - - app = QtWidgets.QApplication(sys.argv) - box = Frame() - box.move(60, 60) - - le = QtWidgets.QVBoxLayout(box.contentWidget()) - - le.setContentsMargins(0, 0, 0, 0) - edit = QtWidgets.QLabel("""I would've did anything for you to show you how much I adored you -But it's over now, it's too late to save our loveJust promise me you'll think of me -Every time you look up in the sky and see a star 'cuz I'm your star.""") - le.addWidget(edit) - box.show() - app.exec() diff --git a/tests/toolpath_optimization_profiling/toollift_minimization_line_profile1.py b/tests/toolpath_optimization_profiling/toollift_minimization_line_profile1.py deleted file mode 100644 index c66245bc..00000000 --- a/tests/toolpath_optimization_profiling/toollift_minimization_line_profile1.py +++ /dev/null @@ -1,8 +0,0 @@ -# Run kernprof -l -v gerber_parsing_line_profile_1.py -import sys -sys.path.append('../../') -from camlib import * -from shapely.geometry import Polygon - -poly = Polygon([(0.0, 0.0), (1.0, 0.0), (1.0, 0.5), (0.0, 0.5)]) -result = Geometry.clear_polygon2(poly, 0.01) diff --git a/tests/toolpath_optimization_profiling/toollift_minimization_profile1.py b/tests/toolpath_optimization_profiling/toollift_minimization_profile1.py deleted file mode 100644 index 038e09b3..00000000 --- a/tests/toolpath_optimization_profiling/toollift_minimization_profile1.py +++ /dev/null @@ -1,11 +0,0 @@ -import cProfile -import pstats -from camlib import * -from shapely.geometry import Polygon - -poly = Polygon([(0.0, 0.0), (1.0, 0.0), (1.0, 0.5), (0.0, 0.5)]) - -cProfile.run('result = Geometry.clear_polygon2(poly, 0.01)', - 'toollist_minimization_profile', sort='cumtime') -p = pstats.Stats('toollist_minimization_profile') -p.sort_stats('cumulative').print_stats(.1) \ No newline at end of file