Beate Scheibel 4 years ago
parent
commit
20c071aa8f
100 changed files with 10474 additions and 1356 deletions
  1. BIN
      __pycache__/clustering_precomputed_dbscan.cpython-37.pyc
  2. BIN
      __pycache__/csv_to_text.cpython-37.pyc
  3. BIN
      __pycache__/merge_pandas.cpython-37.pyc
  4. BIN
      __pycache__/order_bounding_boxes_in_each_block.cpython-37.pyc
  5. BIN
      __pycache__/organize_drawing_according_to_details_new.cpython-37.pyc
  6. BIN
      __pycache__/read_from_clustered_merged.cpython-37.pyc
  7. 1 18
      clustering_precomputed_dbscan.py
  8. 11 12
      main.py
  9. 0 5
      old/blob_dedection.py
  10. 0 330
      old/blub.csv
  11. 0 47
      old/cluster_by_distance_csv_only.py
  12. 0 29
      old/csv_to_text.py
  13. 0 120
      old/dbscan_clustering.py
  14. 0 34
      old/dxf_line_reader.py
  15. 0 24
      old/dxf_reader.py
  16. 0 18
      old/find_page_in_pdf.py
  17. 0 10
      old/main.py
  18. 0 43
      old/merge_lines.py
  19. 0 7
      old/merge_pandas.py
  20. 0 43
      old/ocr_test.py
  21. 0 131
      old/read_data.py
  22. 0 34
      old/read_html_to_csv.py
  23. 0 17
      old/read_pdf.py
  24. 0 33
      old/read_text_lines_from_dxf.py
  25. 0 121
      old/regex_extraction.py
  26. 1 16
      order_bounding_boxes_in_each_block.py
  27. 1 30
      organize_drawing_according_to_details_new.py
  28. 1 11
      read_from_clustered_merged.py
  29. 0 8
      read_iso_tables/pdf_table_extractor.py
  30. 0 46
      read_iso_tables/read_isos.py
  31. 0 37
      read_iso_tables/read_tables.py
  32. 363 0
      temporary/1567790out.html
  33. 363 0
      temporary/3266082out.html
  34. 1226 0
      temporary/5488663out.html
  35. 429 0
      temporary/5587913out.html
  36. 1226 0
      temporary/7943331out.html
  37. 1226 0
      temporary/9324539out.html
  38. 126 44
      temporary/blub.csv
  39. 44 0
      temporary/blub.csv~HEAD
  40. 38 0
      temporary/ist_to_csv_with_corner_points.csv
  41. 126 44
      temporary/list_to_csv_with_corner_points.csv
  42. 125 44
      temporary/values_clusteredfrom_precomputed_dbscan.csv
  43. 10 0
      venv/bin/chardetect
  44. 10 0
      venv/bin/f2py
  45. 10 0
      venv/bin/f2py3
  46. 10 0
      venv/bin/f2py3.7
  47. 12 0
      venv/bin/tika-python
  48. BIN
      venv/lib/python3.7/site-packages/__pycache__/pyparsing.cpython-37.pyc
  49. BIN
      venv/lib/python3.7/site-packages/__pycache__/six.cpython-37.pyc
  50. 50 0
      venv/lib/python3.7/site-packages/certifi-2019.6.16.dist-info/DESCRIPTION.rst
  51. 1 0
      venv/lib/python3.7/site-packages/certifi-2019.6.16.dist-info/INSTALLER
  52. 21 0
      venv/lib/python3.7/site-packages/certifi-2019.6.16.dist-info/LICENSE.txt
  53. 74 0
      venv/lib/python3.7/site-packages/certifi-2019.6.16.dist-info/METADATA
  54. 15 0
      venv/lib/python3.7/site-packages/certifi-2019.6.16.dist-info/RECORD
  55. 6 0
      venv/lib/python3.7/site-packages/certifi-2019.6.16.dist-info/WHEEL
  56. 1 0
      venv/lib/python3.7/site-packages/certifi-2019.6.16.dist-info/metadata.json
  57. 1 0
      venv/lib/python3.7/site-packages/certifi-2019.6.16.dist-info/top_level.txt
  58. 3 0
      venv/lib/python3.7/site-packages/certifi/__init__.py
  59. 2 0
      venv/lib/python3.7/site-packages/certifi/__main__.py
  60. BIN
      venv/lib/python3.7/site-packages/certifi/__pycache__/__init__.cpython-37.pyc
  61. BIN
      venv/lib/python3.7/site-packages/certifi/__pycache__/__main__.cpython-37.pyc
  62. BIN
      venv/lib/python3.7/site-packages/certifi/__pycache__/core.cpython-37.pyc
  63. 4618 0
      venv/lib/python3.7/site-packages/certifi/cacert.pem
  64. 15 0
      venv/lib/python3.7/site-packages/certifi/core.py
  65. 70 0
      venv/lib/python3.7/site-packages/chardet-3.0.4.dist-info/DESCRIPTION.rst
  66. 1 0
      venv/lib/python3.7/site-packages/chardet-3.0.4.dist-info/INSTALLER
  67. 96 0
      venv/lib/python3.7/site-packages/chardet-3.0.4.dist-info/METADATA
  68. 91 0
      venv/lib/python3.7/site-packages/chardet-3.0.4.dist-info/RECORD
  69. 6 0
      venv/lib/python3.7/site-packages/chardet-3.0.4.dist-info/WHEEL
  70. 3 0
      venv/lib/python3.7/site-packages/chardet-3.0.4.dist-info/entry_points.txt
  71. 1 0
      venv/lib/python3.7/site-packages/chardet-3.0.4.dist-info/metadata.json
  72. 1 0
      venv/lib/python3.7/site-packages/chardet-3.0.4.dist-info/top_level.txt
  73. 39 0
      venv/lib/python3.7/site-packages/chardet/__init__.py
  74. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/__init__.cpython-37.pyc
  75. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/big5freq.cpython-37.pyc
  76. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/big5prober.cpython-37.pyc
  77. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/chardistribution.cpython-37.pyc
  78. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/charsetgroupprober.cpython-37.pyc
  79. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/charsetprober.cpython-37.pyc
  80. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/codingstatemachine.cpython-37.pyc
  81. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/compat.cpython-37.pyc
  82. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/cp949prober.cpython-37.pyc
  83. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/enums.cpython-37.pyc
  84. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/escprober.cpython-37.pyc
  85. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/escsm.cpython-37.pyc
  86. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/eucjpprober.cpython-37.pyc
  87. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/euckrfreq.cpython-37.pyc
  88. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/euckrprober.cpython-37.pyc
  89. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/euctwfreq.cpython-37.pyc
  90. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/euctwprober.cpython-37.pyc
  91. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/gb2312freq.cpython-37.pyc
  92. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/gb2312prober.cpython-37.pyc
  93. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/hebrewprober.cpython-37.pyc
  94. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/jisfreq.cpython-37.pyc
  95. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/jpcntx.cpython-37.pyc
  96. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/langbulgarianmodel.cpython-37.pyc
  97. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/langcyrillicmodel.cpython-37.pyc
  98. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/langgreekmodel.cpython-37.pyc
  99. BIN
      venv/lib/python3.7/site-packages/chardet/__pycache__/langhebrewmodel.cpython-37.pyc
  100. 0 0
      venv/lib/python3.7/site-packages/chardet/__pycache__/langhungarianmodel.cpython-37.pyc

BIN
__pycache__/clustering_precomputed_dbscan.cpython-37.pyc


BIN
__pycache__/csv_to_text.cpython-37.pyc


BIN
__pycache__/merge_pandas.cpython-37.pyc


BIN
__pycache__/order_bounding_boxes_in_each_block.cpython-37.pyc


BIN
__pycache__/organize_drawing_according_to_details_new.cpython-37.pyc


BIN
__pycache__/read_from_clustered_merged.cpython-37.pyc


+ 1 - 18
clustering_precomputed_dbscan.py

@@ -12,20 +12,16 @@ def get_average_xy(list_input, path):
     wr.writerow(["element", "xmin","ymin","xmax","ymax", "ausrichtung","point_xmi_ymi","point_xma_ymi","point_xmi_yma","point_xma_yma"])
     result_df = pandas.DataFrame(columns=["point_xmi_ymi","point_xma_ymi","point_xmi_yma","point_xma_yma","ausrichtung"])
     for element in list_input:
-        #print(len(element))
         xavg_elem = 0
         yavg_elem = 0
         ymin = 100000000
         ymax = 0
         xmin = 100000000
         xmax = 0
-        #print(element)
         newList = []
         check = False
         if len(element) == 5 and not isinstance(element[0], list):
-            #print("bb")
             newList.append(element)
-            #print(len(newList))
             element = newList
         """if len(element) != 5 and isinstance(element[0], list):
             for el in element:
@@ -65,12 +61,9 @@ def get_average_xy(list_input, path):
         result_df.loc[len(result_df)]=[point_xmi_ymi,point_xma_ymi, point_xmi_yma, point_xma_yma,ausrichtung]
 
     resultFile.close()
-    #print(result_df)
     return result_df
 
 def intersects(rectangle1, rectangle2): #using the separating axis theorem, returns true if they intersect, otherwise false
-    #print(rectangle2[0])
-    #for rect in rectangle1:
 
     rect_1_min = eval(rectangle1[0])
     rect_1_max = eval(rectangle1[3])
@@ -92,28 +85,21 @@ def intersects(rectangle1, rectangle2): #using the separating axis theorem, retu
 def dist(rectangle1, rectangle2):
  #get minimal distance between two rectangles
     distance = 100000000
-    #print(rectangle1)
     for point1 in rectangle1[:4]:
         point1 = eval(point1)
-        #print(point1)
         for point2 in rectangle2[:4]:
-            #print(point2)
             point2 = eval(point2)
-            #dist1 = (float(point2[0]) - float(point1[0])) + ((float(point2[1]) - float(point1[1])))
             dist = sqrt(((float(point2[0]) - float(point1[0])))**2 + ((float(point2[1]) - float(point1[1])))**2)
-            #print(dist)
             if dist < distance:
                 distance = dist
         if rectangle1[4] != rectangle2[4]:
             distance = dist + 100
-        #print(intersects(rectangle1,rectangle2))
         if intersects(rectangle1, rectangle2):
             distance = 0
-            #print(rectangle1)
     return distance
 
 def clustering(dm,eps,path):
-    db = DBSCAN(eps=eps, min_samples=1, metric="precomputed").fit(dm)                                                                                        ##3.93 until now, bei 5 shon mehr erkannt, 7 noch mehr erkannt aber auch schon zu viel; GV12 ist 4.5 gut für LH zu wenig
+    db = DBSCAN(eps=eps, min_samples=1, metric="precomputed").fit(dm)
     labels = db.labels_
     n_clusters_ = len(set(labels)) - (1 if -1 in labels else 0)
 
@@ -125,9 +111,6 @@ def clustering(dm,eps,path):
 
 def cluster_and_preprocess(result,eps,path):
     result = get_average_xy(result, path) #input: array of arrays, output: either csv file or array of arrays
-
-    #data = pandas.read_csv("/home/bscheibel/PycharmProjects/dxf_reader/temporary/list_to_csv_with_corner_points.csv", sep=";")
-    #data = data[["point_xmi_ymi","point_xma_ymi","point_xmi_yma","point_xma_yma","ausrichtung"]]
     result.to_csv(path+"/temporary/blub.csv", sep=";", index=False, header=None)
     with open(path+"/temporary/blub.csv") as csvfile:
         readCSV = csv.reader(csvfile, delimiter=';')

+ 11 - 12
main.py

@@ -1,4 +1,3 @@
-import organize_drawing_according_to_details_new
 import order_bounding_boxes_in_each_block
 import clustering_precomputed_dbscan
 import read_from_clustered_merged
@@ -9,25 +8,21 @@ import redis
 import sys
 
 def write_redis(uuid, result, db_params):
-    db = redis.Redis(unix_socket_path='/tmp/redis.sock',db=7)
+    db = redis.Redis(db_params)
     db.set(uuid, result)
 
 
 def main(uuid, filepath, db, eps):
-    #db = redis.ConnectionPool(connection_class=redis.UnixDomainSocketConnection, path="/tmp/redis.sock")
-
-    #db  = redis.Redis(unix_socket_path='/tmp/redis.sock')
     path = "/home/centurio/Projects/engineering_drawings_extraction"
-    #path = "/home/bscheibel/PycharmProjects/dxf_reader"
+    #path = "/home/bscheibel/PycharmProjects/engineering_drawings_extraction"
     filename = order_bounding_boxes_in_each_block.pdf_to_html(uuid, filepath, path)
-    #print(filename)
     result, number_blocks, number_words= order_bounding_boxes_in_each_block.get_bound_box(filename)  ##get coordinates+text out of html file into array of arrays
+    print("words:" + str(number_words),"blocks:" + str(number_blocks))
     if eps == '0':
         if number_words > 500:
             eps = 7
         else:
             eps = 1
-    #print(eps)
     isos, general_tol = order_bounding_boxes_in_each_block.extract_isos(result)
     print(general_tol)
     res = clustering_precomputed_dbscan.cluster_and_preprocess(result,eps, path)
@@ -35,7 +30,6 @@ def main(uuid, filepath, db, eps):
     tables = order_bounding_boxes_in_each_block.get_tables(clean_arrays)
     pretty = regex_clean_new.print_clean(clean_arrays)
     res, details_dict = organize_drawing_according_to_details_new.main_function(pretty, tables)
-    #print(res)
 
     json_isos = json.dumps(isos)
     json_result = json.dumps(res)
@@ -45,9 +39,10 @@ def main(uuid, filepath, db, eps):
     write_redis(uuid+"isos",json_isos, db)
     write_redis(uuid+"eps", str(number_blocks)+","+str(number_words), db)
     write_redis(uuid+"details",json_details ,db)
-    #print(json_details)
-    #print(redis.Redis('localhost').get(uuid+"dims"))
-    #print(result)
+
+
+
+
 
 if __name__ == "__main__":
     uuid = sys.argv[1]
@@ -55,4 +50,8 @@ if __name__ == "__main__":
     db = sys.argv[3]
     eps = sys.argv[4]
     main(uuid,filename, db, eps)
+
+
+
+
 #main("33333", "/home/centurio/Projects/engineering_drawings_extraction/drawings/5152166_Rev04.pdf", "'/tmp/redis.sock', db=7",3)

+ 0 - 5
old/blob_dedection.py

@@ -1,5 +0,0 @@
-import text_to_image
-encoded_image_path = text_to_image.encode_file("/home/bscheibel/PycharmProjects/dxf_reader/drawings/5129275_Rev01-GV12.txt", "output_image.png")
-
-import imgkit
-imgkit.from_file('/home/bscheibel/PycharmProjects/dxf_reader/drawings/5129275_Rev01-GV12.html', 'out.jpg')

+ 0 - 330
old/blub.csv

@@ -1,330 +0,0 @@
-[187.180925, 815.746851];[213.724746, 815.746851];[187.180925, 833.267817];[213.724746, 833.267817];3
-[217.300913, 816.360079];[244.143154, 816.360079];[217.300913, 835.440719];[244.143154, 835.440719];3
-[248.020901, 815.746851];[326.284694, 815.746851];[248.020901, 833.267817];[326.284694, 833.267817];3
-[1111.191445, 494.016255];[1124.007599, 494.016255];[1111.191445, 521.039792];[1124.007599, 521.039792];1
-[857.632547, 546.096232];[870.4487, 546.096232];[857.632547, 569.279772];[870.4487, 569.279772];1
-[832.072557, 519.30596];[844.888711, 519.30596];[832.072557, 570.839772];[844.888711, 570.839772];1
-[977.620609, 769.211228];[1000.804027, 769.211228];[977.620609, 782.027838];[1000.804027, 782.027838];3
-[591.940763, 812.619667];[677.33106, 812.619667];[591.940763, 831.815352];[677.33106, 831.815352];3
-[967.300113, 797.508989];[1032.901811, 797.508989];[967.300113, 812.147826];[1032.901811, 812.147826];3
-[769.540692, 816.46685];[851.142478, 816.46685];[769.540692, 833.855725];[851.142478, 833.855725];3
-[655.420738, 835.066843];[721.049117, 835.066843];[655.420738, 853.935153];[721.049117, 853.935153];3
-[745.300702, 835.634036];[751.889104, 835.634036];[745.300702, 853.935153];[751.889104, 853.935153];1
-[719.740712, 836.280071];[745.382909, 836.280071];[719.740712, 855.120711];[745.382909, 855.120711];3
-[1563.832702, 193.366806];[1581.806998, 193.366806];[1563.832702, 213.119915];[1581.806998, 213.119915];3
-[1418.610908, 294.223619];[1441.16683, 294.223619];[1418.610908, 310.919876];[1441.16683, 310.919876];3
-[1451.610894, 284.771268];[1474.166716, 284.771268];[1451.610894, 310.319876];[1474.166716, 310.319876];3
-[1532.270923, 352.755985];[1545.087533, 352.755985];[1532.270923, 397.319841];[1545.087533, 397.319841];1
-[1657.540637, 377.651385];[1667.544521, 377.651385];[1657.540637, 390.467994];[1667.544521, 390.467994];3
-[1513.659395, 496.451337];[1577.643206, 496.451337];[1513.659395, 509.267947];[1577.643206, 509.267947];3
-[1295.620462, 613.779747];[1336.738707, 613.779747];[1295.620462, 659.135421];[1336.738707, 659.135421];3
-[1260.580303, 614.619746];[1273.259539, 614.619746];[1260.580303, 633.815431];[1273.259539, 633.815431];1
-[1275.09949, 761.989003];[1314.661698, 761.989003];[1275.09949, 776.74784];[1314.661698, 776.74784];3
-[1409.379436, 651.586916];[1485.023195, 651.586916];[1409.379436, 686.627876];[1485.023195, 686.627876];3
-[1657.900637, 661.091271];[1667.142452, 661.091271];[1657.900637, 673.907881];[1667.142452, 673.907881];3
-[1380.099448, 768.70687];[1450.703209, 768.70687];[1380.099448, 786.347836];[1450.703209, 786.347836];3
-[1658.260637, 802.811214];[1666.726527, 802.811214];[1658.260637, 815.627824];[1666.726527, 815.627824];1
-[978.460609, 826.811205];[1019.882984, 826.811205];[978.460609, 839.627815];[1019.882984, 839.627815];3
-[769.540692, 839.0512];[855.724489, 839.0512];[769.540692, 851.86781];[855.724489, 851.86781];3
-[1657.540637, 519.371328];[1667.544521, 519.371328];[1657.540637, 532.187938];[1667.544521, 532.187938];3
-[1380.099448, 729.106885];[1441.421242, 729.106885];[1380.099448, 764.027845];[1441.421242, 764.027845];3
-[1185.099526, 732.469015];[1227.901758, 732.469015];[1185.099526, 746.267852];[1227.901758, 746.267852];3
-[986.860605, 735.586883];[1013.404455, 735.586883];[986.860605, 753.107849];[1013.404455, 753.107849];3
-[769.540692, 799.331216];[784.148564, 799.331216];[769.540692, 812.147826];[784.148564, 812.147826];3
-[578.860768, 857.411193];[586.56459, 857.411193];[578.860768, 870.227803];[586.56459, 870.227803];1
-[1592.619358, 266.534156];[1598.21495, 266.534156];[1592.619358, 279.347249];[1598.21495, 279.347249];1
-[1186.059526, 704.629026];[1228.861757, 704.629026];[1186.059526, 718.427863];[1228.861757, 718.427863];3
-[947.860621, 708.219709];[961.701948, 708.219709];[947.860621, 727.415394];[961.701948, 727.415394];3
-[775.66069, 748.811236];[784.902505, 748.811236];[775.66069, 761.627846];[784.902505, 761.627846];3
-[475.42081, 787.186862];[567.02468, 787.186862];[475.42081, 804.575736];[567.02468, 804.575736];3
-[472.900811, 807.346854];[532.084584, 807.346854];[472.900811, 842.267814];[532.084584, 842.267814];3
-[1657.900637, 235.931441];[1667.142452, 235.931441];[1657.900637, 248.748051];[1667.142452, 248.748051];3
-[1392.939443, 468.251348];[1402.181258, 468.251348];[1392.939443, 481.067958];[1402.181258, 481.067958];3
-[1296.339481, 507.699789];[1310.180808, 507.699789];[1296.339481, 526.895474];[1310.180808, 526.895474];3
-[1210.311051, 758.495881];[1223.127661, 758.495881];[1210.311051, 799.31968];[1223.127661, 799.31968];1
-[472.900811, 759.946873];[532.084584, 759.946873];[472.900811, 777.335747];[532.084584, 777.335747];3
-[179.020928, 781.066865];[354.702677, 781.066865];[179.020928, 801.360733];[354.702677, 801.360733];3
-[771.100692, 705.946895];[817.564493, 705.946895];[771.100692, 723.587861];[817.564493, 723.587861];3
-[729.820708, 717.851248];[745.204504, 717.851248];[729.820708, 730.667858];[745.204504, 730.667858];3
-[475.42081, 739.786881];[553.104666, 739.786881];[475.42081, 757.175755];[553.104666, 757.175755];3
-[1620.699352, 247.680578];[1631.29553, 247.680578];[1620.699352, 262.080869];[1631.29553, 262.080869];3
-[1435.648734, 401.91759];[1450.527468, 401.91759];[1435.648734, 433.199827];[1450.527468, 433.199827];1
-[1268.859492, 438.819817];[1290.249016, 438.819817];[1268.859492, 487.77549];[1290.249016, 487.77549];1
-[1142.859506, 455.292437];[1185.925189, 455.292437];[1142.859506, 475.42765];[1185.925189, 475.42765];3
-[1111.191445, 613.776202];[1124.007599, 613.776202];[1111.191445, 648.479741];[1124.007599, 648.479741];1
-[729.700705, 700.179712];[743.542031, 700.179712];[729.700705, 719.375397];[743.542031, 719.375397];3
-[637.660745, 717.851248];[653.044541, 717.851248];[637.660745, 730.667858];[653.044541, 730.667858];3
-[698.99261, 733.416162];[711.808764, 733.416162];[698.99261, 774.23969];[711.808764, 774.23969];1
-[223.540911, 733.906883];[347.920337, 733.906883];[223.540911, 754.080751];[347.920337, 754.080751];3
-[1613.979354, 238.909222];[1620.597104, 238.909222];[1613.979354, 251.31131];[1620.597104, 251.31131];1
-[1409.393554, 314.331737];[1432.64683, 314.331737];[1409.393554, 338.399865];[1432.64683, 338.399865];3
-[1130.379548, 379.931384];[1189.683258, 379.931384];[1130.379548, 392.747994];[1189.683258, 392.747994];3
-[804.712568, 433.17628];[817.528721, 433.17628];[804.712568, 460.199816];[817.528721, 460.199816];1
-[752.380677, 581.53152];[786.388708, 581.53152];[752.380677, 603.947852];[786.388708, 603.947852];3
-[484.900806, 707.411253];[518.764594, 707.411253];[484.900806, 720.227863];[518.764594, 720.227863];3
-[1585.179366, 259.574162];[1592.445584, 259.574162];[1585.179366, 272.387255];[1592.445584, 272.387255];1
-[1599.93936, 229.571512];[1611.892307, 229.571512];[1599.93936, 247.188037];[1611.892307, 247.188037];3
-[1628.979348, 194.293396];[1642.179151, 194.293396];[1628.979348, 213.707502];[1642.179151, 213.707502];3
-[734.860706, 864.37119];[775.684505, 864.37119];[734.860706, 877.1878];[775.684505, 877.1878];3
-[1367.631343, 829.176104];[1380.447496, 829.176104];[1367.631343, 869.999652];[1380.447496, 869.999652];1
-[45.581282, 802.811214];[54.047172, 802.811214];[45.581282, 815.627824];[54.047172, 815.627824];1
-[750.820743, 501.133133];[785.536881, 501.133133];[750.820743, 552.587362];[785.536881, 552.587362];3
-[804.689986, 535.717562];[819.328721, 535.717562];[804.689986, 601.319759];[819.328721, 601.319759];1
-[502.672689, 417.816289];[515.488842, 417.816289];[502.672689, 433.199827];[515.488842, 433.199827];3
-[180.820928, 729.491244];[220.924745, 729.491244];[180.820928, 742.307854];[220.924745, 742.307854];3
-[434.980826, 679.211264];[445.804646, 679.211264];[434.980826, 707.747868];[445.804646, 707.747868];1
-[337.540432, 705.21971];[351.381759, 705.21971];[337.540432, 724.415395];[351.381759, 724.415395];3
-[261.820895, 707.411253];[295.684713, 707.411253];[261.820895, 720.227863];[295.684713, 720.227863];3
-[87.701265, 799.691216];[97.705149, 799.691216];[87.701265, 812.507826];[97.705149, 812.507826];3
-[404.740838, 536.171321];[420.124663, 536.171321];[404.740838, 548.987931];[420.124663, 548.987931];3
-[1571.859407, 246.974197];[1582.53141, 246.974197];[1571.859407, 265.067288];[1582.53141, 265.067288];1
-[1419.579432, 354.219851];[1528.12988, 354.219851];[1419.579432, 373.415535];[1528.12988, 373.415535];3
-[1276.17949, 367.059845];[1310.780751, 367.059845];[1276.17949, 386.25553];[1310.780751, 386.25553];3
-[437.500825, 652.331275];[444.428722, 652.331275];[437.500825, 665.147885];[444.428722, 665.147885];1
-[162.820935, 662.531271];[203.644764, 662.531271];[162.820935, 675.34788];[203.644764, 675.34788];3
-[138.580945, 776.771225];[178.684762, 776.771225];[138.580945, 789.587835];[178.684762, 789.587835];3
-[1130.379548, 357.347034];[1226.663298, 357.347034];[1130.379548, 374.735908];[1226.663298, 374.735908];3
-[947.860621, 369.099845];[961.701948, 369.099845];[947.860621, 388.295529];[961.701948, 388.295529];3
-[726.940709, 370.779844];[740.782036, 370.779844];[726.940709, 389.975529];[740.782036, 389.975529];3
-[671.992621, 738.57614];[684.808775, 738.57614];[671.992621, 779.399688];[684.808775, 779.399688];1
-[76.781269, 671.506908];[146.664829, 671.506908];[76.781269, 706.547868];[146.664829, 706.547868];3
-[355.420858, 536.171321];[370.804683, 536.171321];[355.420858, 548.987931];[370.804683, 548.987931];3
-[233.621312, 585.517542];[252.581952, 585.517542];[233.621312, 642.479743];[252.581952, 642.479743];1
-[158.632472, 521.975989];[171.449082, 521.975989];[158.632472, 537.359785];[171.449082, 537.359785];3
-[158.632472, 599.855958];[171.449082, 599.855958];[158.632472, 615.359754];[171.449082, 615.359754];3
-[77.021169, 649.186917];[146.26276, 649.186917];[77.021169, 666.827884];[146.26276, 666.827884];3
-[45.221282, 661.091271];[54.463097, 661.091271];[45.221282, 673.907881];[54.463097, 673.907881];3
-[312.700875, 371.739844];[328.845631, 371.739844];[312.700875, 390.935528];[328.845631, 390.935528];3
-[237.34131, 497.077577];[256.181951, 497.077577];[237.34131, 546.359781];[256.181951, 546.359781];1
-[82.421267, 506.411333];[123.245081, 506.411333];[82.421267, 519.227943];[123.245081, 519.227943];3
-[44.741282, 519.371328];[54.745166, 519.371328];[44.741282, 532.187938];[54.745166, 532.187938];3
-[490.180804, 362.867032];[549.244577, 362.867032];[490.180804, 380.255906];[549.244577, 380.255906];3
-[181.901332, 442.477574];[200.861973, 442.477574];[181.901332, 483.599807];[200.861973, 483.599807];1
-[73.061271, 454.306995];[142.182762, 454.306995];[73.061271, 489.347955];[142.182762, 489.347955];3
-[158.610245, 432.877574];[173.249081, 432.877574];[158.610245, 472.439811];[173.249081, 472.439811];1
-[73.301171, 431.987004];[142.182762, 431.987004];[73.301171, 449.627971];[142.182762, 449.627971];3
-[209.500916, 386.291381];[250.324745, 386.291381];[209.500916, 399.107991];[250.324745, 399.107991];3
-[1591.299363, 217.787433];[1599.876461, 217.787433];[1591.299363, 235.1759];[1599.876461, 235.1759];1
-[1130.379548, 340.2114];[1144.987478, 340.2114];[1130.379548, 353.028009];[1144.987478, 353.028009];3
-[581.272303, 536.616011];[594.088913, 536.616011];[581.272303, 589.799764];[594.088913, 589.799764];1
-[73.78127, 385.787023];[157.422756, 385.787023];[73.78127, 420.707982];[157.422756, 420.707982];3
-[677.860729, 333.227044];[704.88452, 333.227044];[677.860729, 350.74801];[704.88452, 350.74801];3
-[254.152434, 391.056019];[266.969044, 391.056019];[254.152434, 398.75984];[266.969044, 398.75984];3
-[44.741282, 377.651385];[54.745166, 377.651385];[44.741282, 390.467994];[54.745166, 390.467994];3
-[1615.059375, 182.053432];[1625.999058, 182.053432];[1615.059375, 199.907543];[1625.999058, 199.907543];1
-[1374.086627, 520.331387];[1394.260495, 520.331387];[1374.086627, 616.919753];[1394.260495, 616.919753];1
-[73.78127, 368.171388];[88.389164, 368.171388];[73.78127, 380.987998];[88.389164, 380.987998];3
-[1257.4595, 290.041339];[1261.277371, 290.041339];[1257.4595, 299.160632];[1261.277371, 299.160632];1
-[1369.791342, 637.89618];[1382.607495, 637.89618];[1369.791342, 678.719729];[1382.607495, 678.719729];1
-[492.700803, 342.70704];[569.622591, 342.70704];[492.700803, 360.095914];[569.622591, 360.095914];3
-[674.38073, 302.627056];[708.484496, 302.627056];[674.38073, 320.148023];[708.484496, 320.148023];3
-[1238.499505, 291.361338];[1257.366341, 291.361338];[1238.499505, 303.871018];[1257.366341, 303.871018];3
-[1340.379464, 273.707068];[1404.101257, 273.707068];[1340.379464, 291.348034];[1404.101257, 291.348034];3
-[1193.391412, 508.156254];[1206.207566, 508.156254];[1193.391412, 556.679777];[1206.207566, 556.679777];1
-[168.340933, 336.827042];[292.720359, 336.827042];[168.340933, 357.00091];[292.720359, 357.00091];3
-[1216.779513, 295.213001];[1237.144475, 295.213001];[1216.779513, 311.987569];[1237.144475, 311.987569];3
-[1193.391412, 582.436225];[1206.207566, 582.436225];[1193.391412, 630.839748];[1206.207566, 630.839748];1
-[489.700804, 299.267057];[583.704673, 299.267057];[489.700804, 336.695923];[583.704673, 336.695923];3
-[228.820908, 293.880288];[240.663153, 293.880288];[228.820908, 303.120932];[240.663153, 303.120932];3
-[550.31267, 418.896286];[563.128823, 418.896286];[550.31267, 464.279781];[563.128823, 464.279781];1
-[128.260949, 332.411403];[168.244766, 332.411403];[128.260949, 345.228013];[168.244766, 345.228013];3
-[170.620932, 293.26706];[296.560358, 293.26706];[170.620932, 312.840928];[296.560358, 312.840928];3
-[552.952669, 551.616227];[565.768822, 551.616227];[552.952669, 604.679734];[565.768822, 604.679734];1
-[79.901168, 311.771411];[89.142983, 311.771411];[79.901168, 324.588021];[89.142983, 324.588021];3
-[1433.271895, 131.897561];[1452.567304, 131.897561];[1433.271895, 150.83994];[1452.567304, 150.83994];3
-[1340.379464, 253.787075];[1404.101257, 253.787075];[1340.379464, 271.548042];[1404.101257, 271.548042];3
-[502.672689, 532.896242];[534.328937, 532.896242];[502.672689, 595.319762];[534.328937, 595.319762];1
-[127.060949, 288.85142];[167.044766, 288.85142];[127.060949, 301.66803];[167.044766, 301.66803];3
-[1574.73937, 71.054519];[1591.878028, 71.054519];[1574.73937, 92.747251];[1591.878028, 92.747251];3
-[1657.900637, 94.211498];[1667.142452, 94.211498];[1657.900637, 107.028108];[1667.142452, 107.028108];3
-[1447.781876, 255.401002];[1460.619875, 255.401002];[1447.781876, 267.599893];[1460.619875, 267.599893];3
-[745.313263, 223.799864];[760.046536, 223.799864];[745.313263, 233.709778];[760.046536, 233.709778];3
-[1301.01948, 195.707099];[1370.903339, 195.707099];[1301.01948, 230.628058];[1370.903339, 230.628058];3
-[372.700851, 266.027071];[406.924675, 266.027071];[372.700851, 283.548037];[406.924675, 283.548037];3
-[1559.619391, 60.494536];[1571.652708, 60.494536];[1559.619391, 77.627266];[1571.652708, 77.627266];3
-[1411.299435, 92.531499];[1421.303319, 92.531499];[1411.299435, 105.348108];[1421.303319, 105.348108];3
-[1332.339467, 144.947119];[1386.483301, 144.947119];[1332.339467, 162.588086];[1386.483301, 162.588086];3
-[1176.09953, 169.539924];[1271.929969, 169.539924];[1176.09953, 188.735609];[1271.929969, 188.735609];3
-[372.580851, 242.499895];[407.182201, 242.499895];[372.580851, 261.69558];[407.182201, 261.69558];3
-[1457.379417, 40.299976];[1543.96988, 40.299976];[1457.379417, 89.255649];[1543.96988, 89.255649];3
-[1431.833544, 267.658168];[1452.850286, 267.658168];[1431.833544, 294.239882];[1452.850286, 294.239882];3
-[840.340664, 152.991573];[847.160648, 152.991573];[840.340664, 165.390912];[847.160648, 165.390912];1
-[730.673304, 198.479921];[754.286545, 198.479921];[730.673304, 223.749789];[754.286545, 223.749789];3
-[647.740741, 183.587104];[698.342945, 183.587104];[647.740741, 201.10807];[698.342945, 201.10807];3
-[847.060661, 144.481675];[858.961488, 144.481675];[847.060661, 160.320606];[858.961488, 160.320606];3
-[1251.579502, 89.162099];[1260.241052, 89.162099];[1251.579502, 100.440512];[1260.241052, 100.440512];3
-[1613.740655, 16.211529];[1629.124509, 16.211529];[1613.740655, 29.028139];[1629.124509, 29.028139];3
-[1393.52662, 184.50045];[1413.700488, 184.50045];[1393.52662, 250.0799];[1413.700488, 250.0799];1
-[823.060671, 159.013418];[839.8344, 159.013418];[823.060671, 181.187519];[839.8344, 181.187519];3
-[1238.619505, 80.271514];[1251.573457, 80.271514];[1238.619505, 96.120516];[1251.573457, 96.120516];3
-[1388.51098, 68.616142];[1401.32759, 68.616142];[1388.51098, 109.439956];[1401.32759, 109.439956];1
-[1217.139513, 73.093945];[1236.388601, 73.093945];[1217.139513, 92.027408];[1236.388601, 92.027408];3
-[1254.459903, 146.79769];[1273.420544, 146.79769];[1254.459903, 201.719919];[1273.420544, 201.719919];1
-[662.500742, 156.493919];[666.896688, 156.493919];[662.500742, 169.30739];[666.896688, 169.30739];1
-[1472.020711, 16.211529];[1487.404566, 16.211529];[1472.020711, 29.028139];[1487.404566, 29.028139];3
-[1175.25953, 51.819971];[1272.169911, 51.819971];[1175.25953, 71.015656];[1272.169911, 71.015656];3
-[965.154963, 118.015049];[989.607477, 118.015049];[965.154963, 151.079919];[989.607477, 151.079919];3
-[566.141179, 136.597692];[575.261823, 136.597692];[566.141179, 150.23994];[575.261823, 150.23994];3
-[1330.300768, 16.211529];[1345.684622, 16.211529];[1330.300768, 29.028139];[1345.684622, 29.028139];3
-[820.420672, 81.960372];[875.102857, 81.960372];[820.420672, 100.921013];[875.102857, 100.921013];3
-[536.873313, 215.759904];[551.606776, 215.759904];[536.873313, 225.783307];[551.606776, 225.783307];3
-[45.221282, 235.931441];[54.463097, 235.931441];[45.221282, 248.748051];[54.463097, 248.748051];3
-[1192.420823, 16.211529];[1200.124645, 16.211529];[1192.420823, 29.028139];[1200.124645, 29.028139];1
-[1180.299933, 195.87767];[1199.260573, 195.87767];[1180.299933, 250.6799];[1199.260573, 250.6799];1
-[238.183122, 152.933404];[250.061432, 152.933404];[238.183122, 162.479935];[250.061432, 162.479935];3
-[650.26074, 147.133914];[662.491106, 147.133914];[650.26074, 164.627387];[662.491106, 164.627387];3
-[1050.70088, 16.211529];[1058.404701, 16.211529];[1050.70088, 29.028139];[1058.404701, 29.028139];1
-[761.980695, 59.139969];[858.891018, 59.139969];[761.980695, 78.335653];[858.891018, 78.335653];3
-[606.820757, 68.739965];[697.971028, 68.739965];[606.820757, 87.93565];[697.971028, 87.93565];3
-[522.233344, 190.439924];[545.846784, 190.439924];[522.233344, 215.703307];[545.846784, 215.703307];3
-[115.540954, 194.747099];[166.143187, 194.747099];[115.540954, 212.268066];[166.143187, 212.268066];3
-[908.980936, 16.211529];[916.684758, 16.211529];[908.980936, 29.028139];[916.684758, 29.028139];1
-[701.872255, 100.776133];[714.688865, 100.776133];[701.872255, 119.999952];[714.688865, 119.999952];3
-[293.275079, 106.188465];[312.101354, 106.188465];[293.275079, 142.079943];[312.101354, 142.079943];1
-[243.58312, 149.465167];[252.701429, 149.465167];[243.58312, 152.879935];[252.701429, 152.879935];3
-[439.660824, 137.173567];[455.330763, 137.173567];[439.660824, 160.307476];[455.330763, 160.307476];3
-[355.900858, 150.240345];[410.703102, 150.240345];[355.900858, 169.200985];[410.703102, 169.200985];3
-[220.795036, 162.385232];[242.891778, 162.385232];[220.795036, 190.199924];[242.891778, 190.199924];3
-[138.100945, 165.973981];[158.335568, 165.973981];[138.100945, 182.747352];[158.335568, 182.747352];3
-[767.380993, 16.211529];[775.084815, 16.211529];[767.380993, 29.028139];[775.084815, 29.028139];1
-[1612.431742, 158.879936];[1626.565951, 158.879936];[1612.431742, 179.640138];[1626.565951, 179.640138];3
-[62.610583, 140.197691];[76.40932, 140.197691];[62.610583, 183.599927];[76.40932, 183.599927];1
-[45.101282, 94.211498];[54.343097, 94.211498];[45.101282, 107.028108];[54.343097, 107.028108];3
-[404.740838, 74.619962];[490.251222, 74.619962];[404.740838, 93.815647];[490.251222, 93.815647];3
-[304.423275, 97.113139];[314.981355, 97.113139];[304.423275, 106.199961];[314.981355, 106.199961];3
-[200.741325, 86.43772];[209.861969, 86.43772];[200.741325, 100.19996];[209.861969, 100.19996];1
-[201.341325, 86.43772];[219.581965, 86.43772];[201.341325, 116.399953];[219.581965, 116.399953];1
-[74.753731, 72.479925];[89.487002, 72.479925];[74.753731, 82.509835];[89.487002, 82.509835];3
-[279.580888, 66.339966];[377.811261, 66.339966];[279.580888, 85.53565];[377.811261, 85.53565];3
-[566.741178, 136.597692];[584.981819, 136.597692];[566.741178, 166.559933];[584.981819, 166.559933];1
-[60.113772, 47.159981];[83.727013, 47.159981];[60.113772, 72.429849];[83.727013, 72.429849];3
-[136.060946, 59.259968];[220.371271, 59.259968];[136.060946, 78.455653];[220.371271, 78.455653];3
-[625.54105, 16.091529];[633.244872, 16.091529];[625.54105, 28.908139];[633.244872, 28.908139];1
-[483.941106, 16.211529];[491.644928, 16.211529];[483.941106, 29.028139];[491.644928, 29.028139];1
-[567.343079, 61.628617];[579.221279, 61.628617];[567.343079, 69.71997];[579.221279, 69.71997];3
-[342.101163, 16.211529];[349.804985, 16.211529];[342.101163, 29.028139];[349.804985, 29.028139];1
-[547.194758, 69.778187];[573.581277, 69.778187];[547.194758, 102.359959];[573.581277, 102.359959];3
-[200.50122, 16.211529];[208.205042, 16.211529];[200.50122, 29.028139];[208.205042, 29.028139];1
-[498.832336, 118.536128];[511.648946, 118.536128];[498.832336, 126.23995];[511.648946, 126.23995];3
-[58.661277, 16.211529];[66.365098, 16.211529];[58.661277, 29.028139];[66.365098, 29.028139];1
-[986.500605, 865.811189];[1013.52445, 865.811189];[986.500605, 878.627799];[1013.52445, 878.627799];3
-[59.741276, 992.0344];[105.967008, 992.0344];[59.741276, 999.307117];[105.967008, 999.307117];3
-[225.581259, 1064.342753];[299.797623, 1064.342753];[225.581259, 1069.826817];[299.797623, 1069.826817];3
-[59.741276, 1074.354367];[267.006923, 1074.354367];[59.741276, 1081.627084];[267.006923, 1081.627084];3
-[140.141244, 1086.71997];[228.783448, 1086.71997];[140.141244, 1095.840615];[228.783448, 1095.840615];3
-[59.741276, 1102.674356];[102.847006, 1102.674356];[59.741276, 1109.947073];[102.847006, 1109.947073];3
-[59.741276, 1113.075261];[294.113384, 1113.075261];[59.741276, 1131.800507];[294.113384, 1131.800507];3
-[59.741276, 1136.634342];[128.406996, 1136.634342];[59.741276, 1143.907059];[128.406996, 1143.907059];3
-[475.06081, 1107.706734];[572.446712, 1107.706734];[475.06081, 1127.280602];[572.446712, 1127.280602];3
-[530.020788, 1108.319962];[541.863032, 1108.319962];[530.020788, 1117.440606];[541.863032, 1117.440606];3
-[619.060752, 1103.291094];[659.884552, 1103.291094];[619.060752, 1116.107704];[659.884552, 1116.107704];3
-[753.340699, 1094.411098];[797.904584, 1094.411098];[753.340699, 1107.227708];[797.904584, 1107.227708];3
-[753.580699, 1120.06886];[796.50293, 1120.06886];[753.580699, 1133.867697];[796.50293, 1133.867697];3
-[970.900611, 1030.77958];[986.123277, 1030.77958];[970.900611, 1077.215254];[986.123277, 1077.215254];1
-[342.101163, 1164.13107];[349.804985, 1164.13107];[342.101163, 1176.94768];[349.804985, 1176.94768];1
-[483.941106, 1164.25107];[491.644928, 1164.25107];[483.941106, 1177.06768];[491.644928, 1177.06768];1
-[625.54105, 1164.13107];[633.244872, 1164.13107];[625.54105, 1176.94768];[633.244872, 1176.94768];1
-[767.381016, 1164.13107];[775.084838, 1164.13107];[767.381016, 1176.94768];[775.084838, 1176.94768];1
-[1451.619419, 965.229798];[1453.980015, 965.229798];[1451.619419, 971.787009];[1453.980015, 971.787009];1
-[1491.579403, 965.829798];[1527.32109, 965.829798];[1491.579403, 972.387009];[1527.32109, 972.387009];3
-[1547.259381, 965.949798];[1556.667662, 965.949798];[1547.259381, 972.507009];[1556.667662, 972.507009];3
-[1576.659369, 965.829798];[1612.401056, 965.829798];[1576.659369, 972.387009];[1612.401056, 972.387009];3
-[1630.419348, 965.949798];[1640.734494, 965.949798];[1630.419348, 972.507009];[1640.734494, 972.507009];3
-[1451.619419, 977.469793];[1453.980015, 977.469793];[1451.619419, 984.027005];[1453.980015, 984.027005];1
-[1491.579403, 978.189793];[1527.32109, 978.189793];[1491.579403, 984.747004];[1527.32109, 984.747004];3
-[1547.259691, 978.189793];[1556.667972, 978.189793];[1547.259691, 984.747004];[1556.667972, 984.747004];3
-[1576.659669, 978.189793];[1612.401356, 978.189793];[1576.659669, 984.747004];[1612.401356, 984.747004];3
-[1630.899994, 978.189793];[1640.271303, 978.189793];[1630.899994, 984.747004];[1640.271303, 984.747004];3
-[1153.179539, 990.429788];[1157.120954, 990.429788];[1153.179539, 996.986999];[1157.120954, 996.986999];1
-[1167.939533, 989.709788];[1232.481401, 989.709788];[1167.939533, 996.267];[1232.481401, 996.267];3
-[1451.619419, 989.709788];[1453.980015, 989.709788];[1451.619419, 996.267];[1453.980015, 996.267];1
-[1491.579403, 990.429788];[1527.32109, 990.429788];[1491.579403, 996.986999];[1527.32109, 996.986999];3
-[1547.259691, 990.429788];[1556.667972, 990.429788];[1547.259691, 996.986999];[1556.667972, 996.986999];3
-[1576.659669, 990.429788];[1612.401356, 990.429788];[1576.659669, 996.986999];[1612.401356, 996.986999];3
-[1630.899994, 990.429788];[1640.271303, 990.429788];[1630.899994, 996.986999];[1640.271303, 996.986999];3
-[1153.179539, 1002.669783];[1157.120954, 1002.669783];[1153.179539, 1009.226994];[1157.120954, 1009.226994];1
-[1167.939533, 1001.949783];[1326.801563, 1001.949783];[1167.939533, 1008.506995];[1326.801563, 1008.506995];3
-[1451.619419, 1001.949783];[1453.980015, 1001.949783];[1451.619419, 1008.506995];[1453.980015, 1008.506995];1
-[1491.579403, 1002.669783];[1527.32109, 1002.669783];[1491.579403, 1009.226994];[1527.32109, 1009.226994];3
-[1547.259691, 1002.669783];[1556.667972, 1002.669783];[1547.259691, 1009.226994];[1556.667972, 1009.226994];3
-[1576.659669, 1002.669783];[1612.401356, 1002.669783];[1576.659669, 1009.226994];[1612.401356, 1009.226994];3
-[1437.819425, 1014.947386];[1467.73837, 1014.947386];[1437.819425, 1021.146955];[1467.73837, 1021.146955];3
-[1500.4594, 1014.947386];[1518.369774, 1014.947386];[1500.4594, 1021.146955];[1518.369774, 1021.146955];3
-[1268.259493, 1014.947386];[1314.258403, 1014.947386];[1268.259493, 1021.146955];[1314.258403, 1021.146955];3
-[1148.019541, 1079.874365];[1174.925371, 1079.874365];[1148.019541, 1087.147082];[1174.925371, 1087.147082];3
-[846.460661, 1086.251101];[861.068533, 1086.251101];[846.460661, 1099.067711];[861.068533, 1099.067711];3
-[846.460661, 1103.386736];[913.182453, 1103.386736];[846.460661, 1120.77561];[913.182453, 1120.77561];3
-[184.421226, 1151.519945];[250.820238, 1151.519945];[184.421226, 1160.640589];[250.820238, 1160.640589];3
-[200.501243, 1164.25107];[208.205065, 1164.25107];[200.501243, 1177.06768];[208.205065, 1177.06768];1
-[1167.939533, 965.109798];[1198.041153, 965.109798];[1167.939533, 971.667009];[1198.041153, 971.667009];3
-[1167.939533, 977.469793];[1232.481401, 977.469793];[1167.939533, 984.027005];[1232.481401, 984.027005];3
-[908.981001, 1164.13107];[916.684822, 1164.13107];[908.981001, 1176.94768];[916.684822, 1176.94768];1
-[1630.899994, 1002.669783];[1640.271303, 1002.669783];[1630.899994, 1009.226994];[1640.271303, 1009.226994];3
-[1533.819386, 1014.947386];[1613.16964, 1014.947386];[1533.819386, 1021.146955];[1613.16964, 1021.146955];3
-[1621.419351, 1014.947386];[1649.76968, 1014.947386];[1621.419351, 1021.146955];[1649.76968, 1021.146955];3
-[1368.339453, 1026.467381];[1432.329619, 1026.467381];[1368.339453, 1032.666951];[1432.329619, 1032.666951];3
-[141.941243, 1136.87995];[145.224675, 1136.87995];[141.941243, 1146.000595];[145.224675, 1146.000595];1
-[59.741276, 1150.914336];[174.126989, 1150.914336];[59.741276, 1158.187054];[174.126989, 1158.187054];3
-[58.661277, 1164.25107];[66.365098, 1164.25107];[58.661277, 1177.06768];[66.365098, 1177.06768];1
-[550.18078, 1077.731105];[591.004579, 1077.731105];[550.18078, 1090.547714];[591.004579, 1090.547714];3
-[446.140822, 1083.946743];[504.543022, 1083.946743];[446.140822, 1101.46771];[504.543022, 1101.46771];3
-[1153.179539, 965.949798];[1157.120954, 965.949798];[1153.179539, 972.507009];[1157.120954, 972.507009];1
-[1153.179539, 978.189793];[1157.120954, 978.189793];[1153.179539, 984.747004];[1157.120954, 984.747004];1
-[1148.019541, 1037.512985];[1624.438334, 1037.512985];[1148.019541, 1074.96047];[1624.438334, 1074.96047];3
-[1065.351837, 1093.199563];[1087.526593, 1093.199563];[1065.351837, 1157.877165];[1087.526593, 1157.877165];1
-[44.741282, 1086.251101];[54.745166, 1086.251101];[44.741282, 1099.067711];[54.745166, 1099.067711];3
-[1657.180637, 944.531158];[1667.960445, 944.531158];[1657.180637, 957.347768];[1667.960445, 957.347768];3
-[1147.299541, 1014.947386];[1163.082836, 1014.947386];[1147.299541, 1021.146955];[1163.082836, 1021.146955];3
-[842.140651, 1058.052974];[885.813743, 1058.052974];[842.140651, 1074.107185];[885.813743, 1074.107185];3
-[671.752621, 1078.535992];[684.568775, 1078.535992];[671.752621, 1130.879548];[684.568775, 1130.879548];1
-[59.741276, 1064.342753];[130.717626, 1064.342753];[59.741276, 1069.826817];[130.717626, 1069.826817];3
-[976.900609, 938.619617];[991.883275, 938.619617];[976.900609, 957.815302];[991.883275, 957.815302];3
-[782.860736, 1018.310953];[834.843042, 1018.310953];[782.860736, 1039.066935];[834.843042, 1039.066935];3
-[715.180714, 1020.699584];[752.123423, 1020.699584];[715.180714, 1039.895269];[752.123423, 1039.895269];3
-[517.432683, 1043.376041];[530.248836, 1043.376041];[517.432683, 1062.719575];[530.248836, 1062.719575];1
-[234.101206, 1015.805621];[294.334146, 1015.805621];[234.101206, 1038.17417];[294.334146, 1038.17417];3
-[89.021264, 1026.011125];[137.645082, 1026.011125];[89.021264, 1038.827735];[137.645082, 1038.827735];3
-[573.94077, 1004.651134];[614.76457, 1004.651134];[573.94077, 1017.467744];[614.76457, 1017.467744];3
-[354.232748, 1051.385739];[367.048902, 1051.385739];[354.232748, 1116.839553];[367.048902, 1116.839553];1
-[204.221218, 1006.314394];[245.646978, 1006.314394];[204.221218, 1013.587111];[245.646978, 1013.587111];3
-[322.541276, 1013.437387];[341.501917, 1013.437387];[322.541276, 1049.03958];[341.501917, 1049.03958];1
-[59.741276, 1006.314394];[115.566992, 1006.314394];[59.741276, 1013.587111];[115.566992, 1013.587111];3
-[1103.979558, 914.893963];[1165.020547, 914.893963];[1103.979558, 951.706963];[1165.020547, 951.706963];3
-[857.740653, 919.813756];[901.536558, 919.813756];[857.740653, 935.74703];[901.536558, 935.74703];3
-[825.232206, 969.095757];[838.048815, 969.095757];[825.232206, 995.999602];[838.048815, 995.999602];1
-[593.860762, 960.733091];[610.305287, 960.733091];[593.860762, 983.147201];[610.305287, 983.147201];3
-[59.741276, 977.994406];[155.167011, 977.994406];[59.741276, 985.267123];[155.167011, 985.267123];3
-[804.47264, 919.60313];[823.168699, 919.60313];[804.47264, 938.999624];[823.168699, 938.999624];3
-[414.580834, 932.019619];[502.371181, 932.019619];[414.580834, 951.215304];[502.371181, 951.215304];3
-[673.9751, 917.411228];[693.581776, 917.411228];[673.9751, 1006.799597];[693.581776, 1006.799597];1
-[362.740855, 935.051162];[403.564654, 935.051162];[362.740855, 947.867771];[403.564654, 947.867771];3
-[59.741276, 943.07442];[291.286592, 943.07442];[59.741276, 972.840664];[291.286592, 972.840664];3
-[490.552694, 959.136077];[503.368847, 959.136077];[490.552694, 966.839613];[503.368847, 966.839613];3
-[44.381282, 944.531158];[55.16109, 944.531158];[44.381282, 957.347768];[55.16109, 957.347768];3
-[570.952661, 912.936093];[583.768815, 912.936093];[570.952661, 932.159627];[583.768815, 932.159627];3
-[857.740644, 890.774196];[892.181091, 890.774196];[857.740644, 912.466914];[892.181091, 912.466914];3
-[1050.700422, 1164.13107];[1058.404244, 1164.13107];[1050.700422, 1176.94768];[1058.404244, 1176.94768];1
-[1204.779518, 1079.994365];[1226.765291, 1079.994365];[1204.779518, 1087.267082];[1226.765291, 1087.267082];3
-[1158.819536, 1092.359968];[1191.181708, 1092.359968];[1158.819536, 1101.480613];[1191.181708, 1101.480613];3
-[1222.059511, 1093.319968];[1241.341711, 1093.319968];[1222.059511, 1102.440612];[1241.341711, 1102.440612];3
-[1261.419495, 1079.874365];[1277.765169, 1079.874365];[1261.419495, 1087.147082];[1277.765169, 1087.147082];3
-[1278.699489, 1092.479968];[1295.192954, 1092.479968];[1278.699489, 1101.600612];[1295.192954, 1101.600612];3
-[1318.179473, 1079.874365];[1355.645224, 1079.874365];[1318.179473, 1107.547074];[1355.645224, 1107.547074];3
-[1417.299433, 1079.879973];[1486.640378, 1079.879973];[1417.299433, 1089.000618];[1486.640378, 1089.000618];3
-[1417.299433, 1108.319962];[1469.600455, 1108.319962];[1417.299433, 1117.440606];[1469.600455, 1117.440606];3
-[1181.619527, 1123.451086];[1201.583466, 1123.451086];[1181.619527, 1136.267696];[1201.583466, 1136.267696];3
-[1188.459525, 1153.696277];[1255.031485, 1153.696277];[1188.459525, 1159.24017];[1255.031485, 1159.24017];3
-[1192.420397, 1164.13107];[1200.124219, 1164.13107];[1192.420397, 1176.94768];[1200.124219, 1176.94768];1
-[1491.099404, 1116.371089];[1630.083507, 1116.371089];[1491.099404, 1129.187699];[1630.083507, 1129.187699];3
-[1221.459511, 1124.165578];[1280.97267, 1124.165578];[1221.459511, 1135.134131];[1280.97267, 1135.134131];3
-[1417.299433, 1136.632945];[1469.158167, 1136.632945];[1417.299433, 1144.680442];[1469.158167, 1144.680442];3
-[1165.299534, 1139.752944];[1280.536955, 1139.752944];[1165.299534, 1147.800441];[1280.536955, 1147.800441];3
-[1615.779354, 1136.632945];[1638.598109, 1136.632945];[1615.779354, 1144.680442];[1638.598109, 1144.680442];3
-[1498.059401, 1145.771077];[1552.083419, 1145.771077];[1498.059401, 1158.587687];[1552.083419, 1158.587687];3
-[1323.219471, 1153.312939];[1389.616813, 1153.312939];[1323.219471, 1161.360435];[1389.616813, 1161.360435];3
-[1330.300378, 1164.13107];[1345.684232, 1164.13107];[1330.300378, 1176.94768];[1345.684232, 1176.94768];3
-[1657.540637, 1086.251101];[1667.544521, 1086.251101];[1657.540637, 1099.067711];[1667.544521, 1099.067711];3
-[1491.099404, 1087.091101];[1615.083514, 1087.091101];[1491.099404, 1099.907711];[1615.083514, 1099.907711];3
-[1472.020711, 1164.25107];[1487.404566, 1164.25107];[1472.020711, 1177.06768];[1487.404566, 1177.06768];3
-[1622.499425, 1147.325569];[1645.892419, 1147.325569];[1622.499425, 1158.294122];[1645.892419, 1158.294122];3
-[1612.900791, 1164.25107];[1629.964553, 1164.25107];[1612.900791, 1177.06768];[1629.964553, 1177.06768];3

+ 0 - 47
old/cluster_by_distance_csv_only.py

@@ -1,47 +0,0 @@
-#go through csv file, speichern x und y
-#dann loop durch alle anderen x und y:
-#    if abstand x weniger als
-#    if abstand y weniger als
-#    dann selber cluster
-#    alles in ein file/variable speichern und werte löschen??? oder markieren als bereits geclustert
-#    alles durchgehen
-#wenn alles durch dann neues x und y und nochmal alles von vorn
-
-
-import csv
-
-csvfile1 = open('values_LH.csv', 'r')
-spamreader1 = list(csv.reader(csvfile1, dialect='excel', delimiter=','))
-csvfile1.close()
-already_merged=False
-new_rows_list = []
-with open("values_LH.csv", "r") as csvfile:
-    reader = csv.reader(csvfile, delimiter=',')
-    for row in reader:
-        #print(row)
-        x = row[5]
-        #print(x)
-        y = row[6]
-        #print(y)
-        for row1 in spamreader1:
-            #print(row1)
-            x1 = row1[5]
-            #print(x1)
-            y1 = row1[6]
-            #print(abs(float(x1) - float(x)))
-            #print(abs(float(y1) - float(y)))
-            if (abs(float(x1) - float(x)) < 30.0) and (abs(float(y1) - float(y)) < 5.0): # and row[7] == False:
-                #print(row)
-                row[4] = row[4] + " " + row1[4]
-                #print(row[4])
-                row[7] = True
-                new_row = [row[0], row[1], row[2],row[3],row[4],row[5],row[6]] #write all values, including new merged text
-                print(new_row)
-                new_rows_list.append(new_row)
-csvfile.close()
-
-
-file2 = open("merged_values.csv", 'w')
-writer = csv.writer(file2)
-writer.writerows(new_rows_list)
-file2.close()

+ 0 - 29
old/csv_to_text.py

@@ -1,29 +0,0 @@
-import pandas
-import csv
-import re
-#data_df = pandas.read_csv("values_LH.csv", sep=",")
-#print(data_df.head(3))
-
-#data = data_df[["X1","Y1","X2","Y2"]]
-#print(data)
-
-
-def read_csv(file):
-    text = []
-    with open(file, 'r') as csvFile:
-        reader = csv.reader(csvFile, delimiter=",")
-        for row in reader:
-            text.append(row[2])
-    csvFile.close()
-    ###extract ISOs
-    matches = []
-    regex = r"(ISO\s\d\d\d\d?\W?\d?\W?\d?\W?\d?)"
-    for line in text:
-        match = re.findall(regex, line)
-        if match:
-            matches.append(match)
-
-    print(matches)
-
-
-    return text

+ 0 - 120
old/dbscan_clustering.py

@@ -1,120 +0,0 @@
-import numpy as np
-import pandas
-import csv
-import order_bounding_boxes_in_each_block
-
-from sklearn.cluster import DBSCAN
-from sklearn import metrics
-from sklearn.datasets.samples_generator import make_blobs
-from sklearn.preprocessing import StandardScaler
-
-def my_distance(x,y):
-    blub = "ddd"
-    return blub
-
-
-def cluster(file_in, file_out):
-    # #############################################################################
-    data_df = pandas.read_csv("/home/bscheibel/PycharmProjects/dxf_reader/temporary/list_to_csv_with_avg_points.csv", sep=";")
-    data_df.head(3)
-    data = data_df[["xavg_elem","yavg_elem","ausrichtung"]]
-    #print(data)
-    data = StandardScaler().fit_transform(data)
-
-    # #############################################################################
-    # Compute DBSCAN
-    db = DBSCAN(eps=0.075, min_samples=1, metric="euclidean").fit(data)
-    #core_samples_mask = np.zeros_like(db.labels_, dtype=bool)
-    #core_samples_mask[db.core_sample_indices_] = True
-    labels = db.labels_
-    print(data[labels == 0])
-    data_df["cluster"] = labels
-
-    # Number of clusters in labels, ignoring noise if present.
-    n_clusters_ = len(set(labels)) - (1 if -1 in labels else 0)
-    n_noise_ = list(labels).count(-1)
-
-    print('Estimated number of clusters: %d' % n_clusters_)
-    print('Estimated number of noise points: %d' % n_noise_)
-    print("Silhouette Coefficient: %0.3f"
-          % metrics.silhouette_score(data, labels))
-
-    # #############################################################################
-    # Plot result
-    """ort matplotlib.pyplot as plt
-
-    # Black removed and is used for noise instead.
-    unique_labels = set(labels)
-    colors = [plt.cm.Spectral(each)
-              for each in np.linspace(0, 1, len(unique_labels))]
-    for k, col in zip(unique_labels, colors):
-        if k == -1:
-            # Black used for noise.
-            col = [0, 0, 0, 1]
-
-        class_member_mask = (labels == k)
-
-        xy = data[class_member_mask & core_samples_mask]
-        plt.plot(xy[:, 0], xy[:, 1], 'o', markerfacecolor=tuple(col),
-                 markeredgecolor='k', markersize=14)
-
-        xy = data[class_member_mask & ~core_samples_mask]
-        plt.plot(xy[:, 0], xy[:, 1], 'o', markerfacecolor=tuple(col),
-                 markeredgecolor='k', markersize=6)
-
-    plt.title('Estimated number of clusters: %d' % n_clusters_)
-    plt.show()"""
-
-    #print(data_df.head(3))
-    #data_df.to_csv("values_clusteredfromPDF_GV12.csv")
-    data_df.groupby('cluster')['element'].apply(' '.join).reset_index().to_csv("values_clusteredfromHTML_layout_LH.csv",sep=";")
-
-
-def get_average_xy(list_input):
-    csv_name = "temporary/list_to_csv_with_avg_points.csv"
-    new_list = []
-    resultFile = open(csv_name, 'w')
-    wr = csv.writer(resultFile, delimiter=";")
-    wr.writerow(["element", "xavg_elem","yavg_elem", "ausrichtung"])
-    for element in list_input:
-        xavg_elem = 0
-        yavg_elem = 0
-        y_min = 1000000
-        y_max = 0
-        x_min = 1000000
-        x_max = 0
-        for blub in element:
-            xavg_elem += (float(blub[0]) + float(blub[2]))/2
-            yavg_elem += (float(blub[1]) + float(blub[3]))/2
-            if float(blub[1]) < y_min:
-                y_min = float(blub[1])
-                #print("y_min:",y_min)
-            if float(blub[0]) < x_min:
-                x_min = float(blub[0])
-            if float(blub[3]) > y_max:
-                y_max = float(blub[3])
-            if float(blub[2]) > x_max:
-                x_max = float(blub[2])
-        if x_max-x_min > y_max-y_min:
-            ausrichtung = 0
-        else:
-            ausrichtung = 1
-        xavg_elem = xavg_elem/len(element)
-        #print(xavg_elem)
-        yavg_elem = yavg_elem/len(element)
-        #element.extend([xavg_elem, yavg_elem])
-        #print(element)
-        #new_list.append(element)
-        wr.writerow([element,xavg_elem,yavg_elem, ausrichtung])
-
-    resultFile.close()
-    #print(new_list)
-    return csv_name
-
-
-#cluster(33,33)
-file = "/home/bscheibel/PycharmProjects/dxf_reader/drawings/5152166_Rev04.html"
-#file = "/home/bscheibel/PycharmProjects/dxf_reader/drawings/5129275_Rev01-GV12.html"
-#result = order_bounding_boxes_in_each_block.get_bound_box(file)
-#get_average_xy(result)
-cluster(33,33)

+ 0 - 34
old/dxf_line_reader.py

@@ -1,34 +0,0 @@
-
-def printpoint(b):
-    print(b)
-    obj = dict(zip(b[::2], b[1::2]))
-    try:
-        if obj['100'] == 'AcDbMText':
-            print('{}'.format(obj['0']))
-    except:
-        pass
-
-buffer = ['0', 'fake']
-filepath = '../drawings/GV_12.DXF'
-with open(filepath,'r') as fp:
-    line = fp.readline()
-    cnt = 1
-    while line:
-        line = fp.readline()
-    #line = line.rstrip()
-        print(line)
-        if line == '0':  # we've started a new section, so
-            print("Line {}: {}".format(cnt, line.strip()))
-            try:
-                printpoint(buffer)  # handle the captured section
-            except:
-                print("ERROR")
-
-    #buffer = []  # and start a new one
-    #buffer.append(line)
-    cnt += 1
-fp.close()
-
-#printpoint(buffer)        # buffer left over from last pass through loop
-
-#https://leancrew.com/all-this/2016/12/dxf-data-extraction/

+ 0 - 24
old/dxf_reader.py

@@ -1,24 +0,0 @@
-#!/usr/bin/env python
-
-#from fileinput \
-import fileinput
-
-
-def printpoint(b):
-    print(b)
-    obj = dict(zip(b[::2], b[1::2]))
-    if obj['0'] == 'AcDbMText':
-        print('{}'.format(obj['0']))
-
-
-#print('Code','Text')# header line
-buffer = ['0', 'fake']    # give first pass through loop something to process
-for line in fileinput.input("../drawings/GV_12.DXF"):
-    line = line.rstrip()
-    #print(line)
-    if line == '0':         # we've started a new section, so
-        printpoint(buffer)      # handle the captured section
-        buffer = []             # and start a new one
-    buffer.append(line)
-
-printpoint(buffer)        # buffer left over from last pass through loop

+ 0 - 18
old/find_page_in_pdf.py

@@ -1,18 +0,0 @@
-import PyPDF2
-import re
-
-# Open the pdf file
-object = PyPDF2.PdfFileReader("iso_documents/ISO8015.PDF")
-
-# Get number of pages
-NumPages = object.getNumPages()
-
-# Enter code here
-String = "Inhalt"
-
-# Extract text and do the search
-for i in range(0, NumPages):
-    PageObj = object.getPage(i)
-    Text = PageObj.extractText()
-    if re.search(String,Text):
-         print("Pattern Found on Page: " + str(i))

+ 0 - 10
old/main.py

@@ -1,10 +0,0 @@
-from old import read_text_lines_from_dxf, read_data
-
-#import merge_pandas
-
-
-
-file = "drawings/5152166.dxf"
-file_out = "5152166_extracted.csv"
-read_text_lines_from_dxf.read(file, file_out)
-read_data.read_dimensions(file_out, 0)

+ 0 - 43
old/merge_lines.py

@@ -1,43 +0,0 @@
-import csv
-
-## open CSV file and rea it
-myfile  = open('text.csv', "r")
-reader = csv.reader(myfile, delimiter=";")
-## create an empty dictionary
-mydictionary = {}
-
-rownum = 0
-
-for row in reader:
-    ## check if it is the header
-    if rownum == 0:
-        pass
-    else:
-        ## split the line of CSV in elements..Use the name for the key in dictionary and the other two in a list
-        #line = row.split(";")
-        #print(row)
-        text = row[0]
-        #print(text)
-        x = row[1]
-        y = row[2]
-
-        if x in mydictionary:
-            mydictionary[text][1] += text
-            print(mydictionary[text][1] )
-        else:
-            mydictionary[text] = [x,y]
-
-    rownum += 1
-
-myfile.close()
-
-## create a new list of lists with the data from the dictionary
-newcsvfile = ["text","x","y"]
-
-for i in mydictionary:
-    newcsvfile.append(mydictionary[i])
-
-## write the new list of lists in a new CSV file
-with open("output.csv", "wb") as f:
-    writer = csv.writer(f)
-    writer.writerows(newcsvfile)

+ 0 - 7
old/merge_pandas.py

@@ -1,7 +0,0 @@
-import pandas
-
-def merge_lines(file_out):
-    df = pandas.read_csv(file_out, header = 0, delimiter=";")
-    df['Text'] = df.groupby(['X','Y'])['TEXT'].transform('sum')
-    df.drop_duplicates()
-    df.to_csv(file_out)

+ 0 - 43
old/ocr_test.py

@@ -1,43 +0,0 @@
-import PyPDF2
-from tika import parser
-from nltk.tokenize import word_tokenize
-from nltk.corpus import stopwords
-import nltk
-nltk.download('stopwords')
-
-
-#write a for-loop to open many files -- leave a comment if you'd #like to learn how
-filename = "../drawings/GV_12.PDF"
-#open allows you to read the file
-pdfFileObj = open(filename,'rb')
-#The pdfReader variable is a reada2ble object that will be parsed
-pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
-#discerning the number of pages will allow us to parse through all #the pages
-num_pages = pdfReader.numPages
-count = 0
-text = ""
-#The while loop will read each page
-while count < num_pages:
-    pageObj = pdfReader.getPage(count)
-    count +=1
-    text += pageObj.extractText()
-#This if statement exists to check if the above library returned #words. It's done because PyPDF2 cannot read scanned files.
-if text != "":
-   text = text
-#If the above returns as False, we run the OCR library textract to #convert scanned/image based PDF files into text
-else:
-    raw = parser.from_file("../drawings/GV_12.PDF")
-    raw = str(raw)
-    safe_text = raw.encode('utf-8', errors='ignore')
-    text = str(safe_text).replace("\n", "").replace("\\", "")
-    print(raw)
-
-#The word_tokenize() function will break our text phrases into #individual words
-tokens = word_tokenize(text)
-#we'll create a new list which contains punctuation we wish to clean
-punctuations = ['(',')',';',':','[',']',',']
-#We initialize the stopwords variable which is a list of words like #"The", "I", "and", etc. that don't hold much value as keywords
-stop_words = stopwords.words('english')
-#We create a list comprehension which only returns a list of words #that are NOT IN stop_words and NOT IN punctuations.
-keywords = [word for word in tokens if not word in stop_words and not word in punctuations]
-print(keywords)

+ 0 - 131
old/read_data.py

@@ -1,131 +0,0 @@
-import csv
-import re
-
-
-def read_dimensions(file_out, num):
-    toleranzen_included = False
-    
-    with open(file_out) as csv_file:
-        csv_reader = csv.reader(csv_file, delimiter=';')
-        for row in csv_reader:
-            #print("test")
-            if row[num] == "-" or row[num] == "+":
-                toleranzen_included = True
-            #    print("test2")
-
-    with open(file_out) as csv_file:
-        csv_reader = csv.reader(csv_file, delimiter=';')
-        line_count = 0
-        durchmesser = False
-        vorzeichen1 = "nix"
-        is2vorzeichen = False
-        vorzeichen2 = "nix"
-        isos = []
-        dimensions = []
-
-
-
-
-
-        for row in csv_reader:
-            #print(row)
-            line_count += 1
-            #print(line_count)
-
-            if "ISO" in row[num]:
-                isos.append(row[num])
-
-            if durchmesser:
-                #print("Durchmesser: " + row[1])
-                dimensions.append("Durchmesser: " + row[num])
-                durchmesser = False
-                continue
-
-            if row[num] == "%%c":
-                durchmesser = True
-                continue
-
-            if vorzeichen1 != "nix" and (row[num] == "-" or row[num] == "+"):
-                is2vorzeichen = True
-                vorzeichen2 = row[num]
-                continue
-            if (row[num] == "-" or row[num] == "+") and ismaybenumber:
-                dimensions.append(ismaybenumber[0])
-
-            if row[num] == "-" or row[num] == "+":
-                vorzeichen1 = row[num]
-                continue
-
-            if "%%c<>" in row[num]:
-                continue
-
-            if "2x %%c" in row[num]:
-                continue
-
-            if "16%" in row[num]:
-                continue
-            if "R" in row[num][0] and not "Rz" in row[num]:
-                dimensions.append("Radius: " + row[num][1:])
-                continue
-
-            isnumber = re.findall(r"\d*\,\d+|\d*\.\d+", row[num][0:6]) #regex to get number from line
-            ismaybenumber = re.findall(r"^[0-9]+$",row[num])
-            if isnumber:
-                #print(isnumber)
-                if vorzeichen1 != "nix":
-                    if vorzeichen1 == "-" and (row[num] == "0,00" or row[num] == "0,0"):
-                        dimensions.append(row[num])
-                    else:
-                    #print(vorzeichen + isnumber[0])
-                        dimensions.append(vorzeichen1 + isnumber[0])
-                        vorzeichen1 = "nix"
-                else:
-                    if row[num][0]!="?":
-                        #print(isnumber[0])
-                        dimensions.append(isnumber[0])
-                if is2vorzeichen is True:
-                    vorzeichen1 = vorzeichen2
-                    is2vorzeichen = False
-                    vorzeichen2 = "nix"
-
-
-            if row[num][0] == "?" and row[num][1].isdigit():
-                #print("+/- " + row[1][1:])
-                dimensions.append("+/- " + row[num][1:])
-
-        if isos.__len__()>0:
-            print(isos)
-        else:
-            print("No regulations found.")
-        #print(dimensions)
-        print(f'Processed {line_count} lines.')
-
-        dim = []
-        dim_count = 0
-        if not toleranzen_included:
-            print("Maße")
-        for x in dimensions:
-            if not toleranzen_included:
-                print(x)
-                continue
-            if x == "Durchmesser: ":
-                dim_count = 0
-            if dim_count > 2:
-                dim_count = 0
-            if dim_count == 0:
-                print("Maße: " + "\n" + x)
-                dim_count += 1
-                continue
-            if dim_count == 1:
-                print("Toleranzen: " + "\n" + x)
-                dim_count += 1
-                if "+/-" in x:
-                    dim_count += 1
-                continue
-            if dim_count == 2:
-                print(x)
-                dim_count += 1
-                continue
-
-
-

+ 0 - 34
old/read_html_to_csv.py

@@ -1,34 +0,0 @@
-import re
-import csv
-
-
-with open("drawings/5129275_Rev01-GV12.html", "r") as f:
-    with open('values_fromhtml_GV12.csv', 'w') as writeFile:
-        for line in f.readlines():
-            #print(line)
-            row = []
-            if "<word" in line:
-                exMin = r"xMin=\"(\d*\.?\d*)"
-                exMin = re.findall(exMin,line)[0]
-                row.append(exMin)
-                eyMin = r"yMin=\"(\d*\.?\d*)"
-                eyMin = re.findall(eyMin,line)[0]
-                row.append(eyMin)
-                exMax = r"xMax=\"(\d*\.?\d*)"
-                exMax = re.findall(exMax,line)[0]
-                row.append(exMax)
-                eyMax = r"yMax=\"(\d*\.?\d*)"
-                eyMax = re.findall(eyMax,line)[0]
-                row.append(eyMax)
-                Text = r">(.+)<" #wieso wird was mit "" extrahiert???
-                Text = re.findall(Text,line)[0]
-                row.append(Text.replace(',','.'))
-                avgX=(float(exMin)+float(exMax))/2.0
-                row.append(avgX)
-                avgY=(float(eyMin)+float(eyMax))/2.0
-                row.append(avgY)
-                row.append(False)
-                writer = csv.writer(writeFile)
-                writer.writerow(row)
-    writeFile.close()
-

+ 0 - 17
old/read_pdf.py

@@ -1,17 +0,0 @@
-# from tika import parser
-#
-# raw = parser.from_file("GV_12.pdf")
-# raw = str(raw)
-#
-# safe_text = raw.encode('utf-8', errors='ignore')
-#
-# #safe_text = str(safe_text).replace("\n", "").replace("\\", "")
-# print('--- safe text ---' )
-# print(safe_text
-#
-# )
-
-
-import textract
-text = textract.process("../drawings/GV_12.PDF")
-print(text)

+ 0 - 33
old/read_text_lines_from_dxf.py

@@ -1,33 +0,0 @@
-import csv
-import math
-
-def printsection(buffer, file_out):
-    obj = dict(zip(buffer[::2], buffer[1::2]))
-    for keys, values in obj.items():
-        if keys == '1':
-            try:
-                row = [values, math.floor(float(obj['10'])),math.floor(float(obj['20']))]
-                with open(file_out, 'a') as csvFile:
-                    writer = csv.writer(csvFile, delimiter =';')
-                    if row[0] != '':
-                        writer.writerow(row)
-
-                csvFile.close()
-            except:
-                print("ERROR")
-
-
-def read(file, file_out):
-    buffer = []
-    file = open(file, "r")
-    for line in file:
-        line = line.strip()
-        #print(line)
-        if line == '100':
-            printsection(buffer, file_out)
-            buffer = []
-        buffer.append(line)
-    printsection(buffer, file_out)
-
-
-read("../drawings/sample.DXF", "sample.csv")

+ 0 - 121
old/regex_extraction.py

@@ -1,121 +0,0 @@
-# coding=utf8
-import re
-import pandas
-
-def clean(extracted_dimensions):
-    #next part extracts the isos and removes everything we dont need like just text or detail/maßstab, einzelne buchstaben und zahlen
-    isos = []
-    for line in extracted_dimensions:
-        matches = re.findall(regex_isos,line)
-        for match in matches:
-            isos.append(match)
-
-
-    i = 0
-    new_matches = []
-    for match in extracted_dimensions:
-        match = match.split('\n')[0]
-        if not re.search(reg_all, match):
-            new_matches.append(match)
-        i += 1
-
-    #print(isos)
-    #print(extracted_dimensions)
-    return isos, new_matches
-
-
-def print_clean(dims):
-    dims_new = []
-    dimss = []
-    #or dim in dims:
-    #    if "CT" in dim:
-    #        dim = re.split("CT",dim)
-    #        for di in dim:
-    #            dimss.extend(di)
-    #print(dimss)
-    for dim in dimss:
-        if re.search(r"b\s\d*\W?\d*\s.",dim):
-            dim = dim.replace('b', u"\u27C2")
-        if re.search(r"g\s\d*\W?\d*", dim):
-            dim = dim.replace('g', u"\u232D")
-        if re.search(r"f\s\d*\W?\d*", dim):
-            dim = dim.replace('f',  u"\u2225")
-        if re.search(r"r\s\d*\W?\d*", dim):
-            dim = dim.replace('r', u"\u25CE")
-        if re.search(r"i\s\d*\W?\d*", dim):
-            dim = dim.replace('i', u"\u232F")
-        if re.search(r"j\s\d*\W?\d*", dim):
-            dim = dim.replace('j', u"\u2316")
-        if re.search(r"d\s\d*\W?\d*", dim):
-            dim = dim.replace('d', u"\u2313")
-        if re.search(r"c\s+\d*", dim):
-            dim = dim.replace('c', u"\u23E5")
-        if re.search(r"n\s+\d*", dim):
-            dim = dim.replace('n', u"\u2300")
-        if "È" in dim:
-            dim = dim.replace('È', 'GG')
-        if "`" in dim:
-            dim = dim.replace('`', u"\u00B1")
-        if "#" in dim:
-            dim = dim.replace('#', "↔")
-        if "⌀" in dim:
-            dim = dim.replace('⌀', "Ø")
-        reg12 = re.compile(r"(\d{1,2}\.?\d{0,2})\s\+\s-\s(\d{1,2}\.?\d{0,2})\s(\d{1,2}\.?\d{0,2})") ##???? was machst du?? nach toleranzen suchen, mit +/- blabla
-        g = re.search(reg12, dim)
-        if g:
-            dim = re.sub(reg12, g.group(1) + " + " + g.group(2) + " - " + g.group(3), dim) # +/- toleranzen schön darstellen
-        dims_new.append(dim.strip())
-        dimms = []
-        i = 0
-        for dim in dims_new:
-            last_item = i - 1
-            next_item = i + 1
-            if not re.search(r"[a-zA-Z]{3,}|^\d\s\d$|^[a-zA-Z]{2,}\d.*$",dim) and not dim == "-":
-                dimms.append(dim)
-
-
-        ####nicht dabei: neigungswinkel und lauftoleranzen
-    print(dimms)
-    return dimms
-
-
-
-regex = r"(\S+\s{1,3}?\S*\s?\S*\S*\s?\S*\S*\s?\S*\S*\s?\S*\S*\s+)" #alle gruppen von zahlen raus
-regex1 = r"([A-Z]\W?[A-Z]?\s?\W\s?\d\d?\s?\s?:\s?\d\d?\s?\W)" #ti get the bezeichnungen raus
-regex2 = r"((?!\d)(?!Rpk)[a-zA-Z]{3,})" #alle wörter raus??? außer Rpk
-regex_isos = r"(ISO\s\d\d\d\d?\W?\d?\W?\d?\W?\d?)|(EN\s\d*)" #get iso standards
-reg = r"(^\d{1}$)" #einzelne Zahlen raus #checked
-reg1 = r"(^[A-Z]{1}-?[A-Z]?$)" #einzelne Buchstaben raus #checked
-reg_all = re.compile(r"(ISO\s\d\d\d\d?\W?\d?\W?\d?\W?\d?|(EN\s\d*)|^[A-Z]{1}-?[A-Z]?\s*$)|([A-Z]\W?[A-Z]?\s?\W\s?\d\d?\s?\s?:\s?\d\d?\s?\W)|((?!\d)(?!Rpk)[a-zA-Z]{3,}?\W)|(?!0)(^\d{1}\s*$|A\d{1}|\d\s\d\s\d\s\d\s\d)|BY|to:?|of|or|is|in|as|be|by |\d\d\d\d\d\d\d|\d\s\/\s\d")
-extracted_dimensions = []
-#text = csv_to_text.read_csv('/home/bscheibel/PycharmProjects/dxf_reader/temporary/text_merged_GV12.csv')
-
-#file = open('values_clusteredfromPDF_GV12.csv', 'r')
-#text = file.read()
-#file.close()
-#text_df = pandas.read_csv(file)
-
-def extract_pretty(input):
-    #text = input['element']
-    text_all = []
-    for key, value in input:
-        text_combined = ""
-        #new_arr = ""
-       # print(element)
-        element = eval(element)
-        for x in element:
-            text_combined += x[4] + " "
-            #print(x[4])
-        text_all.append(text_combined)
-    #print(text_all)
-
-    #for line in text_combined:
-    #    extracted_dimensions.append(line.strip())
-
-    isos, dims = clean(text_all)
-    #print(isos)
-    #isos, dims = clean(dims)
-    new_dims = print_clean(dims)
-    #for dim in dims:
-    #    print(dim)
-    return new_dims

+ 1 - 16
order_bounding_boxes_in_each_block.py

@@ -39,23 +39,14 @@ def get_bound_box(file):
         abstand_x = abs(float(element[-1][0])-(float(element[0][2])))
         abstand_y = abs(float(element[-1][3])-float(element[0][1]))
         if later_bigger >= -5:
-            #print(abstand_x-abstand_y)
             new_all_elements.append(element)
         else:
             new_element = sorted(element, key=lambda k: [float(k[0])])
             new_all_elements.append(new_element)
-
-
-    """for element in new_all_elements:
-        for blub in element:
-            #print(blub[4])
-
-        #print("\n")"""
-
     return new_all_elements, number_blocks, number_words
 
 def pdf_to_html(uuid,filepath, path):
-    filename = path +"/temporary/" +str(uuid)+"out.html" #to app/temporary later
+    filename = path +"/temporary/" +str(uuid)+"out.html"
     subprocess.call(['pdftotext', '-bbox-layout',
                      filepath, filename])
     return filename
@@ -87,16 +78,10 @@ def get_tables(result):
     tables = []
     for element in result:
         new = []
-        #print(element)
         if re.search(reg, element):
             new.extend(result[element])
             new.append(element)
             tables.append(new)
     number = len(tables)
-    #print(tables)
     return tables
 
-
-#file="/home/bscheibel/PycharmProjects/dxf_reader/drawings/5152166_Rev04.html"
-#get_bound_box(file)
-#pdf_to_html("/home/bscheibel/PycharmProjects/dxf_reader/drawings/5129275_Rev01-GV12.pdf")

+ 1 - 30
organize_drawing_according_to_details_new.py

@@ -1,7 +1,4 @@
-import order_bounding_boxes_in_each_block
 import re
-import csv
-import clustering_precomputed_dbscan
 
 def get_details(result): #search for all details in drawing and store it in list details, first need to append all text elements of one line and then check if regular expression is found in this text element
     reg = r"([A-Z])-\1|([A-Z]\W?[A-Z]?\s?\W\s?\d\d?\s?\s?:\s?\d\d?\s?\W)"
@@ -43,23 +40,19 @@ def get_borders(details, tables):
             secondy_max = second[3]
 
             if secondx_max < firstx_min and abs(firsty_min-secondy_min) < 90 and first != second:  ###check for left side, are there any other details at the left side at a certain y-span
-                #print(first,second)
                 if abs(firstx_min - secondx_max)/2 < distance_xmax:
                     distance_xmax = abs(firstx_min - secondx_max)/2
                     x_min = secondx_max + distance_xmax
             if secondx_min > firstx_max and abs(firsty_min-secondy_min) < 190 and first != second: ####check for right side
                 if abs(secondx_min - firstx_max)/2 < distance_xmin:
-                    #print(first, second)
                     distance_xmin = abs(secondx_min - firstx_max)/2
                     x_max = firstx_max + distance_xmin
             if firsty_min > secondy_max and abs(firstx_min-secondx_min) < 80 and first != second: ####check above
                 if abs(firsty_min - secondy_max)/2 < distance_ymin:
-                    #print(first, second)
                     distance_ymin = abs(firsty_min - secondy_max)/2
                     y_min = firsty_min
             if firsty_max < secondy_min and abs(firstx_min-secondx_min) < 80 and first != second: ####check below
                 if abs(firsty_max - secondy_min)/2 < distance_ymax:
-                    #print(first, second)
                     distance_ymax = abs(firsty_max - secondy_min)/2
                     y_max = secondy_min
 
@@ -76,20 +69,16 @@ def get_borders(details, tables):
 
         ##check if it intersects with tables
         for table in tables:
-            #print(table)
             table_xmin = table[0]
             if "Start drawing" in table[4]:
                 table_xmax = 100000000
             else:
                 table_xmax = table[2]
             table_ymin = table[1]
-            #table_ymax = table[3]
             if y_max > table_ymin:
                 if firstx_min > table_xmin and firstx_min < table_xmax:
-                    #print("blub",first,table, table_xmax)
                     y_max = table_ymin
                 elif x_max > table_xmin and x_max < table_xmax:
-                    #print(first,table)
                     y_max = table_ymin
 
         sections.append((first,x_min, y_min,x_max,y_max))
@@ -99,8 +88,6 @@ def get_borders(details, tables):
     return sections
 
 def intersects(detail, rectangle): #using the separating axis theorem
-    #print(detail)
-
 
     rect1_bottom_left_x = float(detail[1][0])
     rect1_top_right_x = float(detail[1][2])
@@ -119,13 +106,10 @@ def intersects(detail, rectangle): #using the separating axis theorem
 def main_function(result, tables):
     reg = r"([A-Z])-\1|([A-Z]\W?[A-Z]?\s?\W\s?\d\d?\s?\s?:\s?\d\d?\s?\W)"
     details, number = get_details(result)
-    #details.extend(tables)
-    #print(tables)
-    #print(details)
+
     details = sorted(details, key=lambda x: x[0]) #sort by distance from 0,0
     sections = get_borders(details, tables)
 
-    #sections.append(tables)
     section = []
     details_dict = {}
 
@@ -136,7 +120,6 @@ def main_function(result, tables):
             coord.append(sec)
         details_dict[coord_name] = coord
         section.append(list((coord_name,coord)))
-    #print(section)
     for table in tables:
         table[3] = 10000000
         coord = []
@@ -145,7 +128,6 @@ def main_function(result, tables):
             coord.append(tab)
         details_dict[name] = coord
         section.append(list((name,coord)))
-    #print(section)
 
     if number == 0 | len(section) == 0:
             section.append(list(("No details",list((000.000,000.000,100000000.000,10000000.000)))))
@@ -154,29 +136,18 @@ def main_function(result, tables):
     dict = {}
 
     for res in result:
-        #print(res)
         for det in section:
-            help_array = []
             help_dict = {}
-            #print(det)
             if re.match(reg, res): ###damit nicht details zu details zugeordnet werden!!!
                 break
             if intersects(det,result[res]):
                 name = det[0]
-                #help_array.append(res)
-                #help_array.extend(result[res])
                 help_dict[res] = result[res]
-                #print(name)
                 if name in dict:
                     dict[name].update(help_dict)
                 else:
                     dict[name] = help_dict
                 break
 
-    """for dic in dict:
-        print(dic)
-        for d in dict[dic]:
-            print(d)"""
-
     return dict, details_dict
 

+ 1 - 11
read_from_clustered_merged.py

@@ -23,8 +23,6 @@ def read(file):
 
             for elem in row3:
 
-                #print("start")
-                #print(len(elem))
                 if len(row3) == 1:
                     element = elem[4]
                     xmin = float(elem[0])
@@ -37,20 +35,14 @@ def read(file):
                     if isinstance(elem[0],list):
                         merged_elements += elem
 
-                        #print(length, len(merged_elements))
-                        if len(merged_elements) < length:   ####woher weiß ich die länge????
-                            #print("bb", len(merged_elements), len(elem))
+                        if len(merged_elements) < length:
                             continue
 
                         if int(ausrichtung) == 1:
-                            #print(elem)
                             merged_elements = sorted(merged_elements, key=lambda k: [float(k[3])], reverse=True)
 
-                        #print(merged_elements)
 
                         for elemt in merged_elements:
-                            #print(merged_elements)
-                            #print(elem)
                             element += elemt[4] + " "
                             if float(elemt[0]) < xmin:
                                 xmin = float(elemt[0])
@@ -73,13 +65,11 @@ def read(file):
                         if float(elem[3]) > ymax:
                             ymax = float(elem[3])
 
-            #print(element)
             result.append(element)
             coords.append(xmin)
             coords.append(ymin)
             coords.append(xmax)
             coords.append(ymax)
             dict[element] = coords
-            #print("\n")
 
     return dict

+ 0 - 8
read_iso_tables/pdf_table_extractor.py

@@ -1,8 +0,0 @@
-import camelot
-import matplotlib.pyplot as plt
-tables = camelot.read_pdf('/home/bscheibel/PycharmProjects/dxf_reader/iso_documents/ISO2768-1.PDF', pages="3",line_scale=70, line_tol=2, joint_tol=35)
-tables.export('foo.csv', f='csv')
-print(tables[0].df)
-camelot.plot(tables[0], kind='grid')
-plt.show()
-print(tables[3])

+ 0 - 46
read_iso_tables/read_isos.py

@@ -1,46 +0,0 @@
-import nltk
-import re
-from tika import parser
-einleitung = False
-raw = parser.from_file('/home/bscheibel/PycharmProjects/dxf_reader/iso_documents/ISO2768-1.PDF')
-#raw = parser.from_file('iso_documents/ISO286-2.PDF')
-print(raw['content'])
-#text = raw['content']
-#sent_text = nltk.sent_tokenize(text)
-#tokenized_text = nltk.word_tokenize(sent_text.split)
-#tagged = nltk.pos_tag(tokenized_text)
-#match = text.concordance('Toleranz')
-#for text in sent_text:
-#    if "Toleranz" in text and einleitung is True:
-#        print(text)
-#    if "Einleitung" in text:
-#        einleitung = True
-
-
-import subprocess
-#subprocess.check_output(['ls','-l']) #all that is technically needed...
-cmd = 'pdftotext -layout "/home/bscheibel/PycharmProjects/dxf_reader/iso_documents/ISO8015.PDF"'
-print(subprocess.Popen(cmd, shell=True))
-
-#convert iso document to text
-text = "iso_documents/ISO8015.txt"
-#search for table of content with regex
-contents = []
-regex = r"(.*?)[\W]+(\d+)(?=\n|$)"
-r"([^\.]\d\.?\d?\.?\d?\.?\d?)\s([a-zA-Z]*)\s([a-zA-Z]*)\s*([a-zA-Z]*)\W?\s*([a-zA-Z]+)\s*\.{10,}([\d]+)"
-matches = re.finditer(regex, text, re.MULTILINE)
-#contents = re.findall(r"(.*?)[\W]+(\d+)(?=\n|$)", text, flags=re.M)
-#print(contents)
-for matchNum, match in enumerate(matches, start=1):
-
-    print("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum=matchNum, start=match.start(),
-                                                                        end=match.end(), match=match.group()))
-
-    for groupNum in range(0, len(match.groups())):
-        groupNum = groupNum + 1
-
-        print("Group {groupNum} found at {start}-{end}: {group}".format(groupNum=groupNum, start=match.start(groupNum),
-                                                                        end=match.end(groupNum),
-                                                                        group=match.group(groupNum)))
-#only search for sections with toleranzen/abmaße
-

+ 0 - 37
read_iso_tables/read_tables.py

@@ -1,37 +0,0 @@
-import tabula
-import camelot
-import subprocess
-import re
-
-#tables = tabula.read_pdf("iso_documents/ISO2768-1.PDF", pages=3)
-#for table in tables:
-#    print(table)
-
-#pdftotext - layout!!!!
-
-#tabula.convert_into("iso_documents/ISO2768-1.PDF", "output_mit_tabula.csv", output_format="csv", pages='all', multiple_tables=True)
-#df = tabula.read_pdf("iso_documents/ISO1101.PDF", pages='all', multiple_tables=True)
-#print(df)
-
-def file_read(fname):
-    content_array = []
-    with open(fname) as f:
-        # Content_list is the list that contains the read lines.
-        for line in f:
-            content_array.append(line.strip().replace(" ",""))
-        print(content_array)
-
-
-#file_read('drawings/5129275_Rev01-GV12.txt')
-tables = camelot.read_pdf("/home/bscheibel/PycharmProjects/dxf_reader/iso_documents/ISO2768-1.PDF", pages="3")
-tables.export('output_mit_camelot.csv', f='csv')
-
-output = subprocess.check_output(["less","/home/bscheibel/PycharmProjects/dxf_reader/iso_documents/ISO2768-1.PDF"])
-print(output)
-
-re_data_prefix = re.compile("^[0-9]+[.].*$")
-re_data_fields = re.compile("(([^ ]+[ ]?)+)")
-for line in output.splitlines():
-    if re_data_prefix.match(line):
-        for l in re_data_fields.findall(line):
-            print[l[0].strip()]

+ 363 - 0
temporary/1567790out.html

@@ -0,0 +1,363 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Laeufer</title>
+<meta name="Author" content="DESKTOP-76SLCDL\marce (DESKTOP-76SLCDL)"/>
+<meta name="Creator" content="SOLIDWORKS 2019 SP3.0 (2019115)"/>
+<meta name="Producer" content="SOLIDWORKS PDF Publisher"/>
+<meta name="CreationDate" content=""/>
+</head>
+<body>
+<doc>
+  <page width="595.276000" height="841.890000">
+    <flow>
+      <block xMin="109.274200" yMin="11.005600" xMax="117.586701" yMax="31.510600">
+        <line xMin="109.274200" yMin="11.005600" xMax="117.586701" yMax="31.510600">
+          <word xMin="109.274200" yMin="11.005600" xMax="117.586701" yMax="31.510600">4</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="236.834200" yMin="11.005600" xMax="245.146701" yMax="31.510600">
+        <line xMin="236.834200" yMin="11.005600" xMax="245.146701" yMax="31.510600">
+          <word xMin="236.834200" yMin="11.005600" xMax="245.146701" yMax="31.510600">3</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="378.569200" yMin="11.005600" xMax="386.881701" yMax="31.510600">
+        <line xMin="378.569200" yMin="11.005600" xMax="386.881701" yMax="31.510600">
+          <word xMin="378.569200" yMin="11.005600" xMax="386.881701" yMax="31.510600">2</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="506.129200" yMin="11.005600" xMax="514.441701" yMax="31.510600">
+        <line xMin="506.129200" yMin="11.005600" xMax="514.441701" yMax="31.510600">
+          <word xMin="506.129200" yMin="11.005600" xMax="514.441701" yMax="31.510600">1</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="46.004200" yMin="72.760600" xMax="53.275039" yMax="93.265600">
+        <line xMin="46.004200" yMin="72.760600" xMax="53.275039" yMax="93.265600">
+          <word xMin="46.004200" yMin="72.760600" xMax="53.275039" yMax="93.265600">F</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="570.419200" yMin="72.760600" xMax="577.690039" yMax="93.265600">
+        <line xMin="570.419200" yMin="72.760600" xMax="577.690039" yMax="93.265600">
+          <word xMin="570.419200" yMin="72.760600" xMax="577.690039" yMax="93.265600">F</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="291.384100" yMin="172.578491" xMax="354.384985" yMax="203.493028">
+        <line xMin="320.711241" yMin="172.578491" xMax="354.384985" yMax="190.661577">
+          <word xMin="320.711241" yMin="172.578491" xMax="328.730902" yMax="190.661577">+</word>
+          <word xMin="328.727591" yMin="172.578491" xMax="354.384985" yMax="190.661577">0.10</word>
+        </line>
+        <line xMin="291.384100" yMin="185.251202" xMax="354.384985" yMax="203.493028">
+          <word xMin="291.384100" yMin="185.251202" xMax="317.041494" yMax="203.334288">4.00</word>
+          <word xMin="322.523518" yMin="185.409942" xMax="326.919170" yMax="203.493028">-</word>
+          <word xMin="328.727591" yMin="185.409942" xMax="354.384985" yMax="203.493028">0.03</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="570.029200" yMin="198.085600" xMax="578.070872" yMax="218.590600">
+        <line xMin="570.029200" yMin="198.085600" xMax="578.070872" yMax="218.590600">
+          <word xMin="570.029200" yMin="198.085600" xMax="578.070872" yMax="218.590600">E</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="368.051891" yMin="287.930198" xMax="398.966428" yMax="358.258458">
+        <line xMin="368.051891" yMin="287.930198" xMax="386.134977" yMax="321.603942">
+          <word xMin="368.051891" yMin="313.584281" xMax="386.134977" yMax="321.603942">+</word>
+          <word xMin="368.051891" yMin="287.930198" xMax="386.134977" yMax="313.587592">0.10</word>
+        </line>
+        <line xMin="380.724602" yMin="287.930198" xMax="398.966428" yMax="358.258458">
+          <word xMin="380.724602" yMin="325.270380" xMax="398.807688" yMax="358.258458">38.00</word>
+          <word xMin="380.883342" yMin="315.396013" xMax="398.966428" yMax="319.791665">-</word>
+          <word xMin="380.883342" yMin="287.930198" xMax="398.966428" yMax="313.587592">1.00</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="45.614200" yMin="198.085600" xMax="53.655872" yMax="218.590600">
+        <line xMin="45.614200" yMin="198.085600" xMax="53.655872" yMax="218.590600">
+          <word xMin="45.614200" yMin="198.085600" xMax="53.655872" yMax="218.590600">E</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="44.039200" yMin="339.820600" xMax="55.205863" yMax="360.325600">
+        <line xMin="44.039200" yMin="339.820600" xMax="55.205863" yMax="360.325600">
+          <word xMin="44.039200" yMin="339.820600" xMax="55.205863" yMax="360.325600">D</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="568.454200" yMin="339.820600" xMax="579.620863" yMax="360.325600">
+        <line xMin="568.454200" yMin="339.820600" xMax="579.620863" yMax="360.325600">
+          <word xMin="568.454200" yMin="339.820600" xMax="579.620863" yMax="360.325600">D</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="269.456500" yMin="426.196102" xMax="361.021235" yMax="444.279188">
+        <line xMin="269.456500" yMin="426.196102" xMax="361.021235" yMax="444.279188">
+          <word xMin="269.456500" yMin="426.196102" xMax="302.443622" yMax="444.279188">40.00</word>
+          <word xMin="306.108858" yMin="426.196102" xMax="339.029820" yMax="444.279188">±0.00</word>
+          <word xMin="342.695056" yMin="426.196102" xMax="361.021235" yMax="444.279188">0,2</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="43.529200" yMin="481.555600" xMax="55.716688" yMax="502.060600">
+        <line xMin="43.529200" yMin="481.555600" xMax="55.716688" yMax="502.060600">
+          <word xMin="43.529200" yMin="481.555600" xMax="55.716688" yMax="502.060600">C</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="567.944200" yMin="481.555600" xMax="580.131688" yMax="502.060600">
+        <line xMin="567.944200" yMin="481.555600" xMax="580.131688" yMax="502.060600">
+          <word xMin="567.944200" yMin="481.555600" xMax="580.131688" yMax="502.060600">C</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="45.314200" yMin="623.290600" xMax="53.918371" yMax="643.795600">
+        <line xMin="45.314200" yMin="623.290600" xMax="53.918371" yMax="643.795600">
+          <word xMin="45.314200" yMin="623.290600" xMax="53.918371" yMax="643.795600">B</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="569.729200" yMin="623.290600" xMax="578.333371" yMax="643.795600">
+        <line xMin="569.729200" yMin="623.290600" xMax="578.333371" yMax="643.795600">
+          <word xMin="569.729200" yMin="623.290600" xMax="578.333371" yMax="643.795600">B</word>
+        </line>
+      </block>
+      <block xMin="58.373900" yMin="656.552500" xMax="132.915604" yMax="667.488500">
+        <line xMin="58.373900" yMin="656.552500" xMax="132.915604" yMax="667.488500">
+          <word xMin="58.373900" yMin="656.552500" xMax="91.489701" yMax="667.488500">Material:</word>
+          <word xMin="93.647056" yMin="656.552500" xMax="132.915604" yMax="667.488500">Aluminium</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="154.165900" yMin="656.552500" xMax="214.582566" yMax="667.488500">
+        <line xMin="154.165900" yMin="656.552500" xMax="214.582566" yMax="667.488500">
+          <word xMin="154.165900" yMin="656.552500" xMax="183.171229" yMax="667.488500">Surface</word>
+          <word xMin="185.342122" yMin="656.552500" xMax="214.582566" yMax="667.488500">Texture:</word>
+        </line>
+      </block>
+      <block xMin="223.293900" yMin="677.552500" xMax="258.186970" yMax="688.488500">
+        <line xMin="223.293900" yMin="677.552500" xMax="258.186970" yMax="688.488500">
+          <word xMin="223.293900" yMin="677.552500" xMax="258.186970" yMax="688.488500">Entgratet</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="60.565900" yMin="706.040500" xMax="166.300670" yMax="716.976500">
+        <line xMin="60.565900" yMin="706.040500" xMax="166.300670" yMax="716.976500">
+          <word xMin="60.565900" yMin="706.040500" xMax="89.477934" yMax="716.976500">Surface</word>
+          <word xMin="91.641845" yMin="706.040500" xMax="166.300670" yMax="716.976500">material/treatment:</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="44.054200" yMin="748.825600" xMax="55.158362" yMax="769.330600">
+        <line xMin="44.054200" yMin="748.825600" xMax="55.158362" yMax="769.330600">
+          <word xMin="44.054200" yMin="748.825600" xMax="55.158362" yMax="769.330600">A</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="229.533900" yMin="706.040500" xMax="257.720012" yMax="716.976500">
+        <line xMin="229.533900" yMin="706.040500" xMax="257.720012" yMax="716.976500">
+          <word xMin="229.533900" yMin="706.040500" xMax="257.720012" yMax="716.976500">Harden</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="58.133900" yMin="729.416500" xMax="257.712659" yMax="799.576500">
+        <line xMin="58.373900" yMin="729.416500" xMax="231.514154" yMax="740.352500">
+          <word xMin="58.373900" yMin="729.416500" xMax="97.870106" yMax="740.352500">Concepts,</word>
+          <word xMin="100.031823" yMin="729.416500" xMax="140.948363" yMax="740.352500">principales</word>
+          <word xMin="143.110079" yMin="729.416500" xMax="158.546455" yMax="740.352500">and</word>
+          <word xMin="160.708172" yMin="729.416500" xMax="177.463428" yMax="740.352500">rules</word>
+          <word xMin="179.625145" yMin="729.416500" xMax="219.433512" yMax="740.352500">according</word>
+          <word xMin="221.595229" yMin="729.416500" xMax="231.514154" yMax="740.352500">to:</word>
+        </line>
+        <line xMin="58.373900" yMin="737.416500" xMax="154.416990" yMax="748.352500">
+          <word xMin="58.373900" yMin="737.416500" xMax="100.375683" yMax="748.352500">Dimensions</word>
+          <word xMin="102.537024" yMin="737.416500" xMax="142.338453" yMax="748.352500">according</word>
+          <word xMin="144.499794" yMin="737.416500" xMax="154.416990" yMax="748.352500">to:</word>
+        </line>
+        <line xMin="58.373900" yMin="745.416500" xMax="257.712659" yMax="756.352500">
+          <word xMin="58.373900" yMin="745.416500" xMax="99.034574" yMax="756.352500">Tolerances</word>
+          <word xMin="101.196379" yMin="745.416500" xMax="108.758797" yMax="756.352500">of</word>
+          <word xMin="110.920602" yMin="745.416500" xMax="130.314417" yMax="756.352500">form,</word>
+          <word xMin="132.476222" yMin="745.416500" xMax="175.548441" yMax="756.352500">orientation,</word>
+          <word xMin="177.710246" yMin="745.416500" xMax="208.841807" yMax="756.352500">location</word>
+          <word xMin="211.003612" yMin="745.416500" xMax="226.440620" yMax="756.352500">and</word>
+          <word xMin="228.602426" yMin="745.416500" xMax="257.712659" yMax="756.352500">run-out:</word>
+        </line>
+        <line xMin="58.373900" yMin="753.416500" xMax="152.514224" yMax="764.352500">
+          <word xMin="58.373900" yMin="753.416500" xMax="78.217548" yMax="764.352500">Edge</word>
+          <word xMin="80.378196" yMin="753.416500" xMax="98.490205" yMax="764.352500">finish</word>
+          <word xMin="100.650854" yMin="753.416500" xMax="140.439552" yMax="764.352500">according</word>
+          <word xMin="142.600200" yMin="753.416500" xMax="152.514224" yMax="764.352500">to:</word>
+        </line>
+        <line xMin="58.373900" yMin="761.416500" xMax="170.091969" yMax="772.352500">
+          <word xMin="58.373900" yMin="761.416500" xMax="87.346542" yMax="772.352500">Surface</word>
+          <word xMin="89.514989" yMin="761.416500" xMax="115.872969" yMax="772.352500">texture</word>
+          <word xMin="118.041416" yMin="761.416500" xMax="157.973717" yMax="772.352500">according</word>
+          <word xMin="160.142164" yMin="761.416500" xMax="170.091969" yMax="772.352500">to:</word>
+        </line>
+        <line xMin="58.373900" yMin="769.416500" xMax="132.103065" yMax="780.352500">
+          <word xMin="58.373900" yMin="769.416500" xMax="78.083368" yMax="780.352500">Limits</word>
+          <word xMin="80.243844" yMin="769.416500" xMax="120.029359" yMax="780.352500">according</word>
+          <word xMin="122.189834" yMin="769.416500" xMax="132.103065" yMax="780.352500">to:</word>
+        </line>
+        <line xMin="58.373900" yMin="777.416500" xMax="90.853055" yMax="788.352500">
+          <word xMin="58.373900" yMin="777.416500" xMax="72.949269" yMax="788.352500">16%</word>
+          <word xMin="75.093389" yMin="777.416500" xMax="90.853055" yMax="788.352500">rule:</word>
+        </line>
+        <line xMin="58.133900" yMin="788.640500" xMax="160.029676" yMax="799.576500">
+          <word xMin="58.133900" yMin="788.640500" xMax="84.919046" yMax="799.576500">Quality</word>
+          <word xMin="87.077756" yMin="788.640500" xMax="124.181067" yMax="799.576500">Standard:</word>
+          <word xMin="126.339776" yMin="788.640500" xMax="136.283869" yMax="799.576500">EN</word>
+          <word xMin="138.442579" yMin="788.640500" xMax="160.029676" yMax="799.576500">10095</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="109.274200" yMin="810.370600" xMax="117.586701" yMax="830.875600">
+        <line xMin="109.274200" yMin="810.370600" xMax="117.586701" yMax="830.875600">
+          <word xMin="109.274200" yMin="810.370600" xMax="117.586701" yMax="830.875600">4</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="236.834200" yMin="810.370600" xMax="245.146701" yMax="830.875600">
+        <line xMin="236.834200" yMin="810.370600" xMax="245.146701" yMax="830.875600">
+          <word xMin="236.834200" yMin="810.370600" xMax="245.146701" yMax="830.875600">3</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="340.730737" yMin="708.103869" xMax="373.945560" yMax="715.853802">
+        <line xMin="340.730737" yMin="708.103869" xMax="373.945560" yMax="715.853802">
+          <word xMin="340.730737" yMin="708.103869" xMax="373.945560" yMax="715.853802">Designation:</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="277.077900" yMin="729.416500" xMax="333.068156" yMax="788.352500">
+        <line xMin="277.077900" yMin="729.416500" xMax="308.847335" yMax="740.352500">
+          <word xMin="277.077900" yMin="729.416500" xMax="289.463781" yMax="740.352500">ISO</word>
+          <word xMin="291.617509" yMin="729.416500" xMax="308.847335" yMax="740.352500">8015</word>
+        </line>
+        <line xMin="277.077900" yMin="737.416500" xMax="326.472349" yMax="748.352500">
+          <word xMin="277.077900" yMin="737.416500" xMax="289.455650" yMax="748.352500">ISO</word>
+          <word xMin="291.607965" yMin="737.416500" xMax="313.131108" yMax="748.352500">14405</word>
+          <word xMin="315.283423" yMin="737.416500" xMax="326.472349" yMax="748.352500">1-3</word>
+        </line>
+        <line xMin="277.077900" yMin="745.416500" xMax="308.261239" yMax="756.352500">
+          <word xMin="277.077900" yMin="745.416500" xMax="289.235281" yMax="756.352500">ISO</word>
+          <word xMin="291.349276" yMin="745.416500" xMax="308.261239" yMax="756.352500">1101</word>
+        </line>
+        <line xMin="277.077900" yMin="753.416500" xMax="312.870971" yMax="764.352500">
+          <word xMin="277.077900" yMin="753.416500" xMax="289.366340" yMax="764.352500">ISO</word>
+          <word xMin="291.503125" yMin="753.416500" xMax="312.870971" yMax="764.352500">13715</word>
+        </line>
+        <line xMin="277.077900" yMin="761.416500" xMax="308.859821" yMax="772.352500">
+          <word xMin="277.077900" yMin="761.416500" xMax="289.468649" yMax="772.352500">ISO</word>
+          <word xMin="291.623224" yMin="761.416500" xMax="308.859821" yMax="772.352500">1302</word>
+        </line>
+        <line xMin="277.077900" yMin="769.416500" xMax="311.711238" yMax="780.352500">
+          <word xMin="277.077900" yMin="769.416500" xMax="289.565656" yMax="780.352500">ISO</word>
+          <word xMin="291.737099" yMin="769.416500" xMax="311.711238" yMax="780.352500">286-2</word>
+        </line>
+        <line xMin="277.077900" yMin="777.416500" xMax="333.068156" yMax="788.352500">
+          <word xMin="277.077900" yMin="777.416500" xMax="289.568633" yMax="788.352500">not</word>
+          <word xMin="291.725698" yMin="777.416500" xMax="333.068156" yMax="788.352500">applicable</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="374.179300" yMin="715.331300" xMax="532.907392" yMax="748.139300">
+        <line xMin="374.179300" yMin="715.331300" xMax="532.907392" yMax="748.139300">
+          <word xMin="374.179300" yMin="715.331300" xMax="440.235745" yMax="748.139300">BEATE</word>
+          <word xMin="446.742727" yMin="715.331300" xMax="532.907392" yMax="748.139300">Laeufer</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="340.367901" yMin="803.563542" xMax="365.413942" yMax="811.313475">
+        <line xMin="340.367901" yMin="803.563542" xMax="365.413942" yMax="811.313475">
+          <word xMin="340.367901" yMin="803.563542" xMax="356.398018" yMax="811.313475">Scale:</word>
+          <word xMin="357.900672" yMin="803.563542" xMax="365.413942" yMax="811.313475">1:1</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="568.469200" yMin="748.825600" xMax="579.573363" yMax="769.330600">
+        <line xMin="568.469200" yMin="748.825600" xMax="579.573363" yMax="769.330600">
+          <word xMin="568.469200" yMin="748.825600" xMax="579.573363" yMax="769.330600">A</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="397.987300" yMin="760.115300" xMax="483.981095" yMax="792.923300">
+        <line xMin="397.987300" yMin="760.115300" xMax="483.981095" yMax="792.923300">
+          <word xMin="397.987300" yMin="760.115300" xMax="483.981095" yMax="792.923300">Laeufer</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="340.367901" yMin="766.469312" xMax="372.332990" yMax="774.219245">
+        <line xMin="340.367901" yMin="766.469312" xMax="372.332990" yMax="774.219245">
+          <word xMin="340.367901" yMin="766.469312" xMax="362.705884" yMax="774.219245">Drawing</word>
+          <word xMin="364.236715" yMin="766.469312" xMax="372.332990" yMax="774.219245">nr.:</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="378.569200" yMin="810.370600" xMax="386.881701" yMax="830.875600">
+        <line xMin="378.569200" yMin="810.370600" xMax="386.881701" yMax="830.875600">
+          <word xMin="378.569200" yMin="810.370600" xMax="386.881701" yMax="830.875600">2</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="466.237700" yMin="803.563542" xMax="490.380927" yMax="811.313475">
+        <line xMin="466.237700" yMin="803.563542" xMax="490.380927" yMax="811.313475">
+          <word xMin="466.237700" yMin="803.563542" xMax="480.428674" yMax="811.313475">Page</word>
+          <word xMin="481.941722" yMin="803.563542" xMax="490.380927" yMax="811.313475">1/1</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="542.519200" yMin="769.593300" xMax="556.620596" yMax="784.630300">
+        <line xMin="542.519200" yMin="769.593300" xMax="556.620596" yMax="784.630300">
+          <word xMin="542.519200" yMin="769.593300" xMax="556.620596" yMax="784.630300">A4</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="506.129200" yMin="810.370600" xMax="514.441701" yMax="830.875600">
+        <line xMin="506.129200" yMin="810.370600" xMax="514.441701" yMax="830.875600">
+          <word xMin="506.129200" yMin="810.370600" xMax="514.441701" yMax="830.875600">1</word>
+        </line>
+      </block>
+    </flow>
+  </page>
+</doc>
+</body>
+</html>

+ 363 - 0
temporary/3266082out.html

@@ -0,0 +1,363 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Laeufer</title>
+<meta name="Author" content="DESKTOP-76SLCDL\marce (DESKTOP-76SLCDL)"/>
+<meta name="Creator" content="SOLIDWORKS 2019 SP3.0 (2019115)"/>
+<meta name="Producer" content="SOLIDWORKS PDF Publisher"/>
+<meta name="CreationDate" content=""/>
+</head>
+<body>
+<doc>
+  <page width="595.276000" height="841.890000">
+    <flow>
+      <block xMin="109.274200" yMin="11.005600" xMax="117.586701" yMax="31.510600">
+        <line xMin="109.274200" yMin="11.005600" xMax="117.586701" yMax="31.510600">
+          <word xMin="109.274200" yMin="11.005600" xMax="117.586701" yMax="31.510600">4</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="236.834200" yMin="11.005600" xMax="245.146701" yMax="31.510600">
+        <line xMin="236.834200" yMin="11.005600" xMax="245.146701" yMax="31.510600">
+          <word xMin="236.834200" yMin="11.005600" xMax="245.146701" yMax="31.510600">3</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="378.569200" yMin="11.005600" xMax="386.881701" yMax="31.510600">
+        <line xMin="378.569200" yMin="11.005600" xMax="386.881701" yMax="31.510600">
+          <word xMin="378.569200" yMin="11.005600" xMax="386.881701" yMax="31.510600">2</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="506.129200" yMin="11.005600" xMax="514.441701" yMax="31.510600">
+        <line xMin="506.129200" yMin="11.005600" xMax="514.441701" yMax="31.510600">
+          <word xMin="506.129200" yMin="11.005600" xMax="514.441701" yMax="31.510600">1</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="46.004200" yMin="72.760600" xMax="53.275039" yMax="93.265600">
+        <line xMin="46.004200" yMin="72.760600" xMax="53.275039" yMax="93.265600">
+          <word xMin="46.004200" yMin="72.760600" xMax="53.275039" yMax="93.265600">F</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="570.419200" yMin="72.760600" xMax="577.690039" yMax="93.265600">
+        <line xMin="570.419200" yMin="72.760600" xMax="577.690039" yMax="93.265600">
+          <word xMin="570.419200" yMin="72.760600" xMax="577.690039" yMax="93.265600">F</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="291.384100" yMin="172.578491" xMax="354.384985" yMax="203.493028">
+        <line xMin="320.711241" yMin="172.578491" xMax="354.384985" yMax="190.661577">
+          <word xMin="320.711241" yMin="172.578491" xMax="328.730902" yMax="190.661577">+</word>
+          <word xMin="328.727591" yMin="172.578491" xMax="354.384985" yMax="190.661577">0.10</word>
+        </line>
+        <line xMin="291.384100" yMin="185.251202" xMax="354.384985" yMax="203.493028">
+          <word xMin="291.384100" yMin="185.251202" xMax="317.041494" yMax="203.334288">4.00</word>
+          <word xMin="322.523518" yMin="185.409942" xMax="326.919170" yMax="203.493028">-</word>
+          <word xMin="328.727591" yMin="185.409942" xMax="354.384985" yMax="203.493028">0.03</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="570.029200" yMin="198.085600" xMax="578.070872" yMax="218.590600">
+        <line xMin="570.029200" yMin="198.085600" xMax="578.070872" yMax="218.590600">
+          <word xMin="570.029200" yMin="198.085600" xMax="578.070872" yMax="218.590600">E</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="368.051891" yMin="287.930198" xMax="398.966428" yMax="358.258458">
+        <line xMin="368.051891" yMin="287.930198" xMax="386.134977" yMax="321.603942">
+          <word xMin="368.051891" yMin="313.584281" xMax="386.134977" yMax="321.603942">+</word>
+          <word xMin="368.051891" yMin="287.930198" xMax="386.134977" yMax="313.587592">0.10</word>
+        </line>
+        <line xMin="380.724602" yMin="287.930198" xMax="398.966428" yMax="358.258458">
+          <word xMin="380.724602" yMin="325.270380" xMax="398.807688" yMax="358.258458">38.00</word>
+          <word xMin="380.883342" yMin="315.396013" xMax="398.966428" yMax="319.791665">-</word>
+          <word xMin="380.883342" yMin="287.930198" xMax="398.966428" yMax="313.587592">1.00</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="45.614200" yMin="198.085600" xMax="53.655872" yMax="218.590600">
+        <line xMin="45.614200" yMin="198.085600" xMax="53.655872" yMax="218.590600">
+          <word xMin="45.614200" yMin="198.085600" xMax="53.655872" yMax="218.590600">E</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="44.039200" yMin="339.820600" xMax="55.205863" yMax="360.325600">
+        <line xMin="44.039200" yMin="339.820600" xMax="55.205863" yMax="360.325600">
+          <word xMin="44.039200" yMin="339.820600" xMax="55.205863" yMax="360.325600">D</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="568.454200" yMin="339.820600" xMax="579.620863" yMax="360.325600">
+        <line xMin="568.454200" yMin="339.820600" xMax="579.620863" yMax="360.325600">
+          <word xMin="568.454200" yMin="339.820600" xMax="579.620863" yMax="360.325600">D</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="269.456500" yMin="426.196102" xMax="361.021235" yMax="444.279188">
+        <line xMin="269.456500" yMin="426.196102" xMax="361.021235" yMax="444.279188">
+          <word xMin="269.456500" yMin="426.196102" xMax="302.443622" yMax="444.279188">40.00</word>
+          <word xMin="306.108858" yMin="426.196102" xMax="339.029820" yMax="444.279188">±0.00</word>
+          <word xMin="342.695056" yMin="426.196102" xMax="361.021235" yMax="444.279188">0,2</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="43.529200" yMin="481.555600" xMax="55.716688" yMax="502.060600">
+        <line xMin="43.529200" yMin="481.555600" xMax="55.716688" yMax="502.060600">
+          <word xMin="43.529200" yMin="481.555600" xMax="55.716688" yMax="502.060600">C</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="567.944200" yMin="481.555600" xMax="580.131688" yMax="502.060600">
+        <line xMin="567.944200" yMin="481.555600" xMax="580.131688" yMax="502.060600">
+          <word xMin="567.944200" yMin="481.555600" xMax="580.131688" yMax="502.060600">C</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="45.314200" yMin="623.290600" xMax="53.918371" yMax="643.795600">
+        <line xMin="45.314200" yMin="623.290600" xMax="53.918371" yMax="643.795600">
+          <word xMin="45.314200" yMin="623.290600" xMax="53.918371" yMax="643.795600">B</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="569.729200" yMin="623.290600" xMax="578.333371" yMax="643.795600">
+        <line xMin="569.729200" yMin="623.290600" xMax="578.333371" yMax="643.795600">
+          <word xMin="569.729200" yMin="623.290600" xMax="578.333371" yMax="643.795600">B</word>
+        </line>
+      </block>
+      <block xMin="58.373900" yMin="656.552500" xMax="132.915604" yMax="667.488500">
+        <line xMin="58.373900" yMin="656.552500" xMax="132.915604" yMax="667.488500">
+          <word xMin="58.373900" yMin="656.552500" xMax="91.489701" yMax="667.488500">Material:</word>
+          <word xMin="93.647056" yMin="656.552500" xMax="132.915604" yMax="667.488500">Aluminium</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="154.165900" yMin="656.552500" xMax="214.582566" yMax="667.488500">
+        <line xMin="154.165900" yMin="656.552500" xMax="214.582566" yMax="667.488500">
+          <word xMin="154.165900" yMin="656.552500" xMax="183.171229" yMax="667.488500">Surface</word>
+          <word xMin="185.342122" yMin="656.552500" xMax="214.582566" yMax="667.488500">Texture:</word>
+        </line>
+      </block>
+      <block xMin="223.293900" yMin="677.552500" xMax="258.186970" yMax="688.488500">
+        <line xMin="223.293900" yMin="677.552500" xMax="258.186970" yMax="688.488500">
+          <word xMin="223.293900" yMin="677.552500" xMax="258.186970" yMax="688.488500">Entgratet</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="60.565900" yMin="706.040500" xMax="166.300670" yMax="716.976500">
+        <line xMin="60.565900" yMin="706.040500" xMax="166.300670" yMax="716.976500">
+          <word xMin="60.565900" yMin="706.040500" xMax="89.477934" yMax="716.976500">Surface</word>
+          <word xMin="91.641845" yMin="706.040500" xMax="166.300670" yMax="716.976500">material/treatment:</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="44.054200" yMin="748.825600" xMax="55.158362" yMax="769.330600">
+        <line xMin="44.054200" yMin="748.825600" xMax="55.158362" yMax="769.330600">
+          <word xMin="44.054200" yMin="748.825600" xMax="55.158362" yMax="769.330600">A</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="229.533900" yMin="706.040500" xMax="257.720012" yMax="716.976500">
+        <line xMin="229.533900" yMin="706.040500" xMax="257.720012" yMax="716.976500">
+          <word xMin="229.533900" yMin="706.040500" xMax="257.720012" yMax="716.976500">Harden</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="58.133900" yMin="729.416500" xMax="257.712659" yMax="799.576500">
+        <line xMin="58.373900" yMin="729.416500" xMax="231.514154" yMax="740.352500">
+          <word xMin="58.373900" yMin="729.416500" xMax="97.870106" yMax="740.352500">Concepts,</word>
+          <word xMin="100.031823" yMin="729.416500" xMax="140.948363" yMax="740.352500">principales</word>
+          <word xMin="143.110079" yMin="729.416500" xMax="158.546455" yMax="740.352500">and</word>
+          <word xMin="160.708172" yMin="729.416500" xMax="177.463428" yMax="740.352500">rules</word>
+          <word xMin="179.625145" yMin="729.416500" xMax="219.433512" yMax="740.352500">according</word>
+          <word xMin="221.595229" yMin="729.416500" xMax="231.514154" yMax="740.352500">to:</word>
+        </line>
+        <line xMin="58.373900" yMin="737.416500" xMax="154.416990" yMax="748.352500">
+          <word xMin="58.373900" yMin="737.416500" xMax="100.375683" yMax="748.352500">Dimensions</word>
+          <word xMin="102.537024" yMin="737.416500" xMax="142.338453" yMax="748.352500">according</word>
+          <word xMin="144.499794" yMin="737.416500" xMax="154.416990" yMax="748.352500">to:</word>
+        </line>
+        <line xMin="58.373900" yMin="745.416500" xMax="257.712659" yMax="756.352500">
+          <word xMin="58.373900" yMin="745.416500" xMax="99.034574" yMax="756.352500">Tolerances</word>
+          <word xMin="101.196379" yMin="745.416500" xMax="108.758797" yMax="756.352500">of</word>
+          <word xMin="110.920602" yMin="745.416500" xMax="130.314417" yMax="756.352500">form,</word>
+          <word xMin="132.476222" yMin="745.416500" xMax="175.548441" yMax="756.352500">orientation,</word>
+          <word xMin="177.710246" yMin="745.416500" xMax="208.841807" yMax="756.352500">location</word>
+          <word xMin="211.003612" yMin="745.416500" xMax="226.440620" yMax="756.352500">and</word>
+          <word xMin="228.602426" yMin="745.416500" xMax="257.712659" yMax="756.352500">run-out:</word>
+        </line>
+        <line xMin="58.373900" yMin="753.416500" xMax="152.514224" yMax="764.352500">
+          <word xMin="58.373900" yMin="753.416500" xMax="78.217548" yMax="764.352500">Edge</word>
+          <word xMin="80.378196" yMin="753.416500" xMax="98.490205" yMax="764.352500">finish</word>
+          <word xMin="100.650854" yMin="753.416500" xMax="140.439552" yMax="764.352500">according</word>
+          <word xMin="142.600200" yMin="753.416500" xMax="152.514224" yMax="764.352500">to:</word>
+        </line>
+        <line xMin="58.373900" yMin="761.416500" xMax="170.091969" yMax="772.352500">
+          <word xMin="58.373900" yMin="761.416500" xMax="87.346542" yMax="772.352500">Surface</word>
+          <word xMin="89.514989" yMin="761.416500" xMax="115.872969" yMax="772.352500">texture</word>
+          <word xMin="118.041416" yMin="761.416500" xMax="157.973717" yMax="772.352500">according</word>
+          <word xMin="160.142164" yMin="761.416500" xMax="170.091969" yMax="772.352500">to:</word>
+        </line>
+        <line xMin="58.373900" yMin="769.416500" xMax="132.103065" yMax="780.352500">
+          <word xMin="58.373900" yMin="769.416500" xMax="78.083368" yMax="780.352500">Limits</word>
+          <word xMin="80.243844" yMin="769.416500" xMax="120.029359" yMax="780.352500">according</word>
+          <word xMin="122.189834" yMin="769.416500" xMax="132.103065" yMax="780.352500">to:</word>
+        </line>
+        <line xMin="58.373900" yMin="777.416500" xMax="90.853055" yMax="788.352500">
+          <word xMin="58.373900" yMin="777.416500" xMax="72.949269" yMax="788.352500">16%</word>
+          <word xMin="75.093389" yMin="777.416500" xMax="90.853055" yMax="788.352500">rule:</word>
+        </line>
+        <line xMin="58.133900" yMin="788.640500" xMax="160.029676" yMax="799.576500">
+          <word xMin="58.133900" yMin="788.640500" xMax="84.919046" yMax="799.576500">Quality</word>
+          <word xMin="87.077756" yMin="788.640500" xMax="124.181067" yMax="799.576500">Standard:</word>
+          <word xMin="126.339776" yMin="788.640500" xMax="136.283869" yMax="799.576500">EN</word>
+          <word xMin="138.442579" yMin="788.640500" xMax="160.029676" yMax="799.576500">10095</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="109.274200" yMin="810.370600" xMax="117.586701" yMax="830.875600">
+        <line xMin="109.274200" yMin="810.370600" xMax="117.586701" yMax="830.875600">
+          <word xMin="109.274200" yMin="810.370600" xMax="117.586701" yMax="830.875600">4</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="236.834200" yMin="810.370600" xMax="245.146701" yMax="830.875600">
+        <line xMin="236.834200" yMin="810.370600" xMax="245.146701" yMax="830.875600">
+          <word xMin="236.834200" yMin="810.370600" xMax="245.146701" yMax="830.875600">3</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="340.730737" yMin="708.103869" xMax="373.945560" yMax="715.853802">
+        <line xMin="340.730737" yMin="708.103869" xMax="373.945560" yMax="715.853802">
+          <word xMin="340.730737" yMin="708.103869" xMax="373.945560" yMax="715.853802">Designation:</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="277.077900" yMin="729.416500" xMax="333.068156" yMax="788.352500">
+        <line xMin="277.077900" yMin="729.416500" xMax="308.847335" yMax="740.352500">
+          <word xMin="277.077900" yMin="729.416500" xMax="289.463781" yMax="740.352500">ISO</word>
+          <word xMin="291.617509" yMin="729.416500" xMax="308.847335" yMax="740.352500">8015</word>
+        </line>
+        <line xMin="277.077900" yMin="737.416500" xMax="326.472349" yMax="748.352500">
+          <word xMin="277.077900" yMin="737.416500" xMax="289.455650" yMax="748.352500">ISO</word>
+          <word xMin="291.607965" yMin="737.416500" xMax="313.131108" yMax="748.352500">14405</word>
+          <word xMin="315.283423" yMin="737.416500" xMax="326.472349" yMax="748.352500">1-3</word>
+        </line>
+        <line xMin="277.077900" yMin="745.416500" xMax="308.261239" yMax="756.352500">
+          <word xMin="277.077900" yMin="745.416500" xMax="289.235281" yMax="756.352500">ISO</word>
+          <word xMin="291.349276" yMin="745.416500" xMax="308.261239" yMax="756.352500">1101</word>
+        </line>
+        <line xMin="277.077900" yMin="753.416500" xMax="312.870971" yMax="764.352500">
+          <word xMin="277.077900" yMin="753.416500" xMax="289.366340" yMax="764.352500">ISO</word>
+          <word xMin="291.503125" yMin="753.416500" xMax="312.870971" yMax="764.352500">13715</word>
+        </line>
+        <line xMin="277.077900" yMin="761.416500" xMax="308.859821" yMax="772.352500">
+          <word xMin="277.077900" yMin="761.416500" xMax="289.468649" yMax="772.352500">ISO</word>
+          <word xMin="291.623224" yMin="761.416500" xMax="308.859821" yMax="772.352500">1302</word>
+        </line>
+        <line xMin="277.077900" yMin="769.416500" xMax="311.711238" yMax="780.352500">
+          <word xMin="277.077900" yMin="769.416500" xMax="289.565656" yMax="780.352500">ISO</word>
+          <word xMin="291.737099" yMin="769.416500" xMax="311.711238" yMax="780.352500">286-2</word>
+        </line>
+        <line xMin="277.077900" yMin="777.416500" xMax="333.068156" yMax="788.352500">
+          <word xMin="277.077900" yMin="777.416500" xMax="289.568633" yMax="788.352500">not</word>
+          <word xMin="291.725698" yMin="777.416500" xMax="333.068156" yMax="788.352500">applicable</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="374.179300" yMin="715.331300" xMax="532.907392" yMax="748.139300">
+        <line xMin="374.179300" yMin="715.331300" xMax="532.907392" yMax="748.139300">
+          <word xMin="374.179300" yMin="715.331300" xMax="440.235745" yMax="748.139300">BEATE</word>
+          <word xMin="446.742727" yMin="715.331300" xMax="532.907392" yMax="748.139300">Laeufer</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="340.367901" yMin="803.563542" xMax="365.413942" yMax="811.313475">
+        <line xMin="340.367901" yMin="803.563542" xMax="365.413942" yMax="811.313475">
+          <word xMin="340.367901" yMin="803.563542" xMax="356.398018" yMax="811.313475">Scale:</word>
+          <word xMin="357.900672" yMin="803.563542" xMax="365.413942" yMax="811.313475">1:1</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="568.469200" yMin="748.825600" xMax="579.573363" yMax="769.330600">
+        <line xMin="568.469200" yMin="748.825600" xMax="579.573363" yMax="769.330600">
+          <word xMin="568.469200" yMin="748.825600" xMax="579.573363" yMax="769.330600">A</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="397.987300" yMin="760.115300" xMax="483.981095" yMax="792.923300">
+        <line xMin="397.987300" yMin="760.115300" xMax="483.981095" yMax="792.923300">
+          <word xMin="397.987300" yMin="760.115300" xMax="483.981095" yMax="792.923300">Laeufer</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="340.367901" yMin="766.469312" xMax="372.332990" yMax="774.219245">
+        <line xMin="340.367901" yMin="766.469312" xMax="372.332990" yMax="774.219245">
+          <word xMin="340.367901" yMin="766.469312" xMax="362.705884" yMax="774.219245">Drawing</word>
+          <word xMin="364.236715" yMin="766.469312" xMax="372.332990" yMax="774.219245">nr.:</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="378.569200" yMin="810.370600" xMax="386.881701" yMax="830.875600">
+        <line xMin="378.569200" yMin="810.370600" xMax="386.881701" yMax="830.875600">
+          <word xMin="378.569200" yMin="810.370600" xMax="386.881701" yMax="830.875600">2</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="466.237700" yMin="803.563542" xMax="490.380927" yMax="811.313475">
+        <line xMin="466.237700" yMin="803.563542" xMax="490.380927" yMax="811.313475">
+          <word xMin="466.237700" yMin="803.563542" xMax="480.428674" yMax="811.313475">Page</word>
+          <word xMin="481.941722" yMin="803.563542" xMax="490.380927" yMax="811.313475">1/1</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="542.519200" yMin="769.593300" xMax="556.620596" yMax="784.630300">
+        <line xMin="542.519200" yMin="769.593300" xMax="556.620596" yMax="784.630300">
+          <word xMin="542.519200" yMin="769.593300" xMax="556.620596" yMax="784.630300">A4</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="506.129200" yMin="810.370600" xMax="514.441701" yMax="830.875600">
+        <line xMin="506.129200" yMin="810.370600" xMax="514.441701" yMax="830.875600">
+          <word xMin="506.129200" yMin="810.370600" xMax="514.441701" yMax="830.875600">1</word>
+        </line>
+      </block>
+    </flow>
+  </page>
+</doc>
+</body>
+</html>

File diff suppressed because it is too large
+ 1226 - 0
temporary/5488663out.html


+ 429 - 0
temporary/5587913out.html

@@ -0,0 +1,429 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>GV_12</title>
+<meta name="Author" content="LAPTOP-591JU6SK\ACDP (LAPTOP-591JU6SK)"/>
+<meta name="Creator" content="SOLIDWORKS 2018 SP3.0 (2018134)"/>
+<meta name="Producer" content="SOLIDWORKS PDF Publisher"/>
+<meta name="CreationDate" content=""/>
+</head>
+<body>
+<doc>
+  <page width="595.276000" height="841.890000">
+    <flow>
+      <block xMin="109.274200" yMin="10.977500" xMax="117.586701" yMax="31.482500">
+        <line xMin="109.274200" yMin="10.977500" xMax="117.586701" yMax="31.482500">
+          <word xMin="109.274200" yMin="10.977500" xMax="117.586701" yMax="31.482500">4</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="236.834200" yMin="10.977500" xMax="245.146701" yMax="31.482500">
+        <line xMin="236.834200" yMin="10.977500" xMax="245.146701" yMax="31.482500">
+          <word xMin="236.834200" yMin="10.977500" xMax="245.146701" yMax="31.482500">3</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="378.569200" yMin="10.977500" xMax="386.881701" yMax="31.482500">
+        <line xMin="378.569200" yMin="10.977500" xMax="386.881701" yMax="31.482500">
+          <word xMin="378.569200" yMin="10.977500" xMax="386.881701" yMax="31.482500">2</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="506.129200" yMin="10.977500" xMax="514.441701" yMax="31.482500">
+        <line xMin="506.129200" yMin="10.977500" xMax="514.441701" yMax="31.482500">
+          <word xMin="506.129200" yMin="10.977500" xMax="514.441701" yMax="31.482500">1</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="45.614200" yMin="198.057500" xMax="53.655872" yMax="218.562500">
+        <line xMin="45.614200" yMin="198.057500" xMax="53.655872" yMax="218.562500">
+          <word xMin="45.614200" yMin="198.057500" xMax="53.655872" yMax="218.562500">E</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="570.029200" yMin="198.057500" xMax="578.070872" yMax="218.562500">
+        <line xMin="570.029200" yMin="198.057500" xMax="578.070872" yMax="218.562500">
+          <word xMin="570.029200" yMin="198.057500" xMax="578.070872" yMax="218.562500">E</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="459.894800" yMin="279.875459" xMax="470.830800" yMax="288.142537">
+        <line xMin="459.894800" yMin="279.875459" xMax="470.830800" yMax="288.142537">
+          <word xMin="459.894800" yMin="279.875459" xMax="470.830800" yMax="288.142537">2x</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="451.894800" yMin="226.069084" xMax="470.830800" yMax="266.389049">
+        <line xMin="451.894800" yMin="226.069084" xMax="462.830800" yMax="241.580200">
+          <word xMin="451.894800" yMin="226.069084" xMax="462.830800" yMax="241.580200">0,00</word>
+        </line>
+        <line xMin="459.894800" yMin="226.069084" xMax="470.830800" yMax="266.389049">
+          <word xMin="459.894800" yMin="246.452687" xMax="470.830800" yMax="266.389049">19,20</word>
+          <word xMin="459.894800" yMin="241.580652" xMax="470.830800" yMax="244.236200">-</word>
+          <word xMin="459.894800" yMin="226.069084" xMax="470.830800" yMax="241.580200">0,05</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="570.419200" yMin="72.717500" xMax="577.690039" yMax="93.222500">
+        <line xMin="570.419200" yMin="72.717500" xMax="577.690039" yMax="93.222500">
+          <word xMin="570.419200" yMin="72.717500" xMax="577.690039" yMax="93.222500">F</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="421.329100" yMin="231.326384" xMax="440.265100" yMax="273.837500">
+        <line xMin="421.329100" yMin="231.326384" xMax="432.265100" yMax="251.685500">
+          <word xMin="421.329100" yMin="246.841063" xMax="432.265100" yMax="251.685500">+</word>
+          <word xMin="421.329100" yMin="231.326384" xMax="432.265100" yMax="246.837500">0,05</word>
+        </line>
+        <line xMin="429.329100" yMin="231.326384" xMax="440.265100" yMax="273.837500">
+          <word xMin="429.329100" yMin="253.897509" xMax="440.265100" yMax="273.837500">15,15</word>
+          <word xMin="429.329100" yMin="231.326384" xMax="440.265100" yMax="246.837500">0,00</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="46.004200" yMin="72.717500" xMax="53.275039" yMax="93.222500">
+        <line xMin="46.004200" yMin="72.717500" xMax="53.275039" yMax="93.222500">
+          <word xMin="46.004200" yMin="72.717500" xMax="53.275039" yMax="93.222500">F</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="247.709281" yMin="312.752200" xMax="276.919273" yMax="331.688200">
+        <line xMin="260.993500" yMin="312.752200" xMax="276.919273" yMax="323.688200">
+          <word xMin="260.993500" yMin="312.752200" xMax="265.837937" yMax="323.688200">+</word>
+          <word xMin="265.841500" yMin="312.752200" xMax="276.919273" yMax="323.688200">0,1</word>
+        </line>
+        <line xMin="247.709281" yMin="320.752200" xMax="276.919273" yMax="331.688200">
+          <word xMin="247.709281" yMin="320.752200" xMax="258.778733" yMax="331.688200">1,5</word>
+          <word xMin="265.841500" yMin="320.752200" xMax="276.919273" yMax="331.688200">0,0</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="319.221281" yMin="348.824200" xMax="348.431273" yMax="367.760200">
+        <line xMin="332.505500" yMin="348.824200" xMax="348.431273" yMax="359.760200">
+          <word xMin="332.505500" yMin="348.824200" xMax="337.349937" yMax="359.760200">+</word>
+          <word xMin="337.353500" yMin="348.824200" xMax="348.431273" yMax="359.760200">0,1</word>
+        </line>
+        <line xMin="319.221281" yMin="356.824200" xMax="348.431273" yMax="367.760200">
+          <word xMin="319.221281" yMin="356.824200" xMax="330.290733" yMax="367.760200">9,3</word>
+          <word xMin="337.353500" yMin="356.824200" xMax="348.431273" yMax="367.760200">0,0</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="245.726269" yMin="356.824200" xMax="278.902066" yMax="367.760200">
+        <line xMin="245.726269" yMin="356.824200" xMax="278.902066" yMax="367.760200">
+          <word xMin="245.726269" yMin="356.824200" xMax="256.798192" yMax="367.760200">4,8</word>
+          <word xMin="259.012576" yMin="356.824200" xMax="278.902066" yMax="367.760200">±0,05</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="568.454200" yMin="339.792500" xMax="579.620863" yMax="360.297500">
+        <line xMin="568.454200" yMin="339.792500" xMax="579.620863" yMax="360.297500">
+          <word xMin="568.454200" yMin="339.792500" xMax="579.620863" yMax="360.297500">D</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="387.313300" yMin="343.474461" xMax="406.249300" yMax="383.442900">
+        <line xMin="387.313300" yMin="343.474461" xMax="398.249300" yMax="368.266900">
+          <word xMin="387.313300" yMin="363.422463" xMax="398.249300" yMax="368.266900">+</word>
+          <word xMin="387.313300" yMin="343.474461" xMax="398.249300" yMax="363.418900">0,040</word>
+        </line>
+        <line xMin="395.313300" yMin="343.474461" xMax="406.249300" yMax="383.442900">
+          <word xMin="395.313300" yMin="372.368828" xMax="406.249300" yMax="383.442900">4,5</word>
+          <word xMin="395.313300" yMin="363.422463" xMax="406.249300" yMax="368.266900">+</word>
+          <word xMin="395.313300" yMin="343.474461" xMax="406.249300" yMax="363.418900">0,028</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="44.039200" yMin="339.792500" xMax="55.205863" yMax="360.297500">
+        <line xMin="44.039200" yMin="339.792500" xMax="55.205863" yMax="360.297500">
+          <word xMin="44.039200" yMin="339.792500" xMax="55.205863" yMax="360.297500">D</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="322.540168" yMin="321.664200" xMax="345.103273" yMax="340.600200">
+        <line xMin="329.177500" yMin="321.664200" xMax="345.103273" yMax="332.600200">
+          <word xMin="329.177500" yMin="321.664200" xMax="334.021937" yMax="332.600200">+</word>
+          <word xMin="334.025500" yMin="321.664200" xMax="345.103273" yMax="332.600200">0,1</word>
+        </line>
+        <line xMin="322.540168" yMin="329.664200" xMax="345.103273" yMax="340.600200">
+          <word xMin="322.540168" yMin="329.664200" xMax="326.966837" yMax="340.600200">2</word>
+          <word xMin="334.025500" yMin="329.664200" xMax="345.103273" yMax="340.600200">0,0</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="43.529200" yMin="481.527500" xMax="55.716688" yMax="502.032500">
+        <line xMin="43.529200" yMin="481.527500" xMax="55.716688" yMax="502.032500">
+          <word xMin="43.529200" yMin="481.527500" xMax="55.716688" yMax="502.032500">C</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="567.944200" yMin="481.527500" xMax="580.131688" yMax="502.032500">
+        <line xMin="567.944200" yMin="481.527500" xMax="580.131688" yMax="502.032500">
+          <word xMin="567.944200" yMin="481.527500" xMax="580.131688" yMax="502.032500">C</word>
+        </line>
+      </block>
+      <block xMin="369.210300" yMin="531.213302" xMax="378.999242" yMax="549.296388">
+        <line xMin="369.210300" yMin="531.213302" xMax="378.999242" yMax="549.296388">
+          <word xMin="369.210300" yMin="531.213302" xMax="378.999242" yMax="549.296388">A</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="261.571623" yMin="533.144634" xMax="271.360565" yMax="551.227720">
+        <line xMin="261.571623" yMin="533.144634" xMax="271.360565" yMax="551.227720">
+          <word xMin="261.571623" yMin="533.144634" xMax="271.360565" yMax="551.227720">A</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="45.314200" yMin="623.262500" xMax="53.918371" yMax="643.767500">
+        <line xMin="45.314200" yMin="623.262500" xMax="53.918371" yMax="643.767500">
+          <word xMin="45.314200" yMin="623.262500" xMax="53.918371" yMax="643.767500">B</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="569.729200" yMin="623.262500" xMax="578.333371" yMax="643.767500">
+        <line xMin="569.729200" yMin="623.262500" xMax="578.333371" yMax="643.767500">
+          <word xMin="569.729200" yMin="623.262500" xMax="578.333371" yMax="643.767500">B</word>
+        </line>
+      </block>
+      <block xMin="58.373900" yMin="656.552500" xMax="116.958623" yMax="667.488500">
+        <line xMin="58.373900" yMin="656.552500" xMax="116.958623" yMax="667.488500">
+          <word xMin="58.373900" yMin="656.552500" xMax="91.254344" yMax="667.488500">Material:</word>
+          <word xMin="93.396367" yMin="656.552500" xMax="116.958623" yMax="667.488500">1.4021</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="154.165900" yMin="656.552500" xMax="214.582566" yMax="667.488500">
+        <line xMin="154.165900" yMin="656.552500" xMax="214.582566" yMax="667.488500">
+          <word xMin="154.165900" yMin="656.552500" xMax="183.171229" yMax="667.488500">Surface</word>
+          <word xMin="185.342122" yMin="656.552500" xMax="214.582566" yMax="667.488500">Texture:</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="280.308900" yMin="671.852300" xMax="304.485982" yMax="685.522300">
+        <line xMin="280.308900" yMin="671.852300" xMax="304.485982" yMax="685.522300">
+          <word xMin="280.308900" yMin="671.852300" xMax="290.631924" yMax="685.522300">Rz</word>
+          <word xMin="293.402735" yMin="671.852300" xMax="304.485982" yMax="685.522300">16</word>
+        </line>
+      </block>
+      <block xMin="60.565900" yMin="706.040500" xMax="166.300670" yMax="716.976500">
+        <line xMin="60.565900" yMin="706.040500" xMax="166.300670" yMax="716.976500">
+          <word xMin="60.565900" yMin="706.040500" xMax="89.477934" yMax="716.976500">Surface</word>
+          <word xMin="91.641845" yMin="706.040500" xMax="166.300670" yMax="716.976500">material/treatment:</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="44.054200" yMin="748.797500" xMax="55.158362" yMax="769.302500">
+        <line xMin="44.054200" yMin="748.797500" xMax="55.158362" yMax="769.302500">
+          <word xMin="44.054200" yMin="748.797500" xMax="55.158362" yMax="769.302500">A</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="194.791300" yMin="706.040500" xMax="294.677458" yMax="716.976500">
+        <line xMin="194.791300" yMin="706.040500" xMax="294.677458" yMax="716.976500">
+          <word xMin="194.791300" yMin="706.040500" xMax="233.568419" yMax="716.976500">Hardened</word>
+          <word xMin="235.739687" yMin="706.040500" xMax="243.531168" yMax="716.976500">to</word>
+          <word xMin="245.702435" yMin="706.040500" xMax="254.387507" yMax="716.976500">48</word>
+          <word xMin="256.558775" yMin="706.040500" xMax="273.043165" yMax="716.976500">HRC</word>
+          <word xMin="275.214433" yMin="706.040500" xMax="294.677458" yMax="716.976500">+2/-0</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="58.127300" yMin="729.416500" xMax="257.712659" yMax="799.576500">
+        <line xMin="58.373900" yMin="729.416500" xMax="231.514154" yMax="740.352500">
+          <word xMin="58.373900" yMin="729.416500" xMax="97.870106" yMax="740.352500">Concepts,</word>
+          <word xMin="100.031823" yMin="729.416500" xMax="140.948363" yMax="740.352500">principales</word>
+          <word xMin="143.110079" yMin="729.416500" xMax="158.546455" yMax="740.352500">and</word>
+          <word xMin="160.708172" yMin="729.416500" xMax="177.463428" yMax="740.352500">rules</word>
+          <word xMin="179.625145" yMin="729.416500" xMax="219.433512" yMax="740.352500">according</word>
+          <word xMin="221.595229" yMin="729.416500" xMax="231.514154" yMax="740.352500">to:</word>
+        </line>
+        <line xMin="58.373900" yMin="737.416500" xMax="154.416990" yMax="748.352500">
+          <word xMin="58.373900" yMin="737.416500" xMax="100.375683" yMax="748.352500">Dimensions</word>
+          <word xMin="102.537024" yMin="737.416500" xMax="142.338453" yMax="748.352500">according</word>
+          <word xMin="144.499794" yMin="737.416500" xMax="154.416990" yMax="748.352500">to:</word>
+        </line>
+        <line xMin="58.373900" yMin="745.416500" xMax="257.712659" yMax="756.352500">
+          <word xMin="58.373900" yMin="745.416500" xMax="99.034574" yMax="756.352500">Tolerances</word>
+          <word xMin="101.196379" yMin="745.416500" xMax="108.758797" yMax="756.352500">of</word>
+          <word xMin="110.920602" yMin="745.416500" xMax="130.314417" yMax="756.352500">form,</word>
+          <word xMin="132.476222" yMin="745.416500" xMax="175.548441" yMax="756.352500">orientation,</word>
+          <word xMin="177.710246" yMin="745.416500" xMax="208.841807" yMax="756.352500">location</word>
+          <word xMin="211.003612" yMin="745.416500" xMax="226.440620" yMax="756.352500">and</word>
+          <word xMin="228.602426" yMin="745.416500" xMax="257.712659" yMax="756.352500">run-out:</word>
+        </line>
+        <line xMin="58.373900" yMin="753.416500" xMax="152.514224" yMax="764.352500">
+          <word xMin="58.373900" yMin="753.416500" xMax="78.217548" yMax="764.352500">Edge</word>
+          <word xMin="80.378196" yMin="753.416500" xMax="98.490205" yMax="764.352500">finish</word>
+          <word xMin="100.650854" yMin="753.416500" xMax="140.439552" yMax="764.352500">according</word>
+          <word xMin="142.600200" yMin="753.416500" xMax="152.514224" yMax="764.352500">to:</word>
+        </line>
+        <line xMin="58.373900" yMin="761.416500" xMax="170.091969" yMax="772.352500">
+          <word xMin="58.373900" yMin="761.416500" xMax="87.346542" yMax="772.352500">Surface</word>
+          <word xMin="89.514989" yMin="761.416500" xMax="115.872969" yMax="772.352500">texture</word>
+          <word xMin="118.041416" yMin="761.416500" xMax="157.973717" yMax="772.352500">according</word>
+          <word xMin="160.142164" yMin="761.416500" xMax="170.091969" yMax="772.352500">to:</word>
+        </line>
+        <line xMin="58.373900" yMin="769.416500" xMax="132.103065" yMax="780.352500">
+          <word xMin="58.373900" yMin="769.416500" xMax="78.083368" yMax="780.352500">Limits</word>
+          <word xMin="80.243844" yMin="769.416500" xMax="120.029359" yMax="780.352500">according</word>
+          <word xMin="122.189834" yMin="769.416500" xMax="132.103065" yMax="780.352500">to:</word>
+        </line>
+        <line xMin="58.373900" yMin="777.416500" xMax="90.853055" yMax="788.352500">
+          <word xMin="58.373900" yMin="777.416500" xMax="72.949269" yMax="788.352500">16%</word>
+          <word xMin="75.093389" yMin="777.416500" xMax="90.853055" yMax="788.352500">rule:</word>
+        </line>
+        <line xMin="58.127300" yMin="788.640500" xMax="160.023076" yMax="799.576500">
+          <word xMin="58.127300" yMin="788.640500" xMax="84.912446" yMax="799.576500">Quality</word>
+          <word xMin="87.071156" yMin="788.640500" xMax="124.174467" yMax="799.576500">Standard:</word>
+          <word xMin="126.333176" yMin="788.640500" xMax="136.277269" yMax="799.576500">EN</word>
+          <word xMin="138.435979" yMin="788.640500" xMax="160.023076" yMax="799.576500">10095</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="109.274200" yMin="810.342500" xMax="117.586701" yMax="830.847500">
+        <line xMin="109.274200" yMin="810.342500" xMax="117.586701" yMax="830.847500">
+          <word xMin="109.274200" yMin="810.342500" xMax="117.586701" yMax="830.847500">4</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="236.834200" yMin="810.342500" xMax="245.146701" yMax="830.847500">
+        <line xMin="236.834200" yMin="810.342500" xMax="245.146701" yMax="830.847500">
+          <word xMin="236.834200" yMin="810.342500" xMax="245.146701" yMax="830.847500">3</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="277.077900" yMin="729.416500" xMax="333.068156" yMax="788.352500">
+        <line xMin="277.077900" yMin="729.416500" xMax="308.847335" yMax="740.352500">
+          <word xMin="277.077900" yMin="729.416500" xMax="289.463781" yMax="740.352500">ISO</word>
+          <word xMin="291.617509" yMin="729.416500" xMax="308.847335" yMax="740.352500">8015</word>
+        </line>
+        <line xMin="277.077900" yMin="737.416500" xMax="326.472349" yMax="748.352500">
+          <word xMin="277.077900" yMin="737.416500" xMax="289.455650" yMax="748.352500">ISO</word>
+          <word xMin="291.607965" yMin="737.416500" xMax="313.131108" yMax="748.352500">14405</word>
+          <word xMin="315.283423" yMin="737.416500" xMax="326.472349" yMax="748.352500">1-3</word>
+        </line>
+        <line xMin="277.077900" yMin="745.416500" xMax="308.261239" yMax="756.352500">
+          <word xMin="277.077900" yMin="745.416500" xMax="289.235281" yMax="756.352500">ISO</word>
+          <word xMin="291.349276" yMin="745.416500" xMax="308.261239" yMax="756.352500">1101</word>
+        </line>
+        <line xMin="277.077900" yMin="753.416500" xMax="312.870971" yMax="764.352500">
+          <word xMin="277.077900" yMin="753.416500" xMax="289.366340" yMax="764.352500">ISO</word>
+          <word xMin="291.503125" yMin="753.416500" xMax="312.870971" yMax="764.352500">13715</word>
+        </line>
+        <line xMin="277.077900" yMin="761.416500" xMax="308.859821" yMax="772.352500">
+          <word xMin="277.077900" yMin="761.416500" xMax="289.468649" yMax="772.352500">ISO</word>
+          <word xMin="291.623224" yMin="761.416500" xMax="308.859821" yMax="772.352500">1302</word>
+        </line>
+        <line xMin="277.077900" yMin="769.416500" xMax="311.711238" yMax="780.352500">
+          <word xMin="277.077900" yMin="769.416500" xMax="289.565656" yMax="780.352500">ISO</word>
+          <word xMin="291.737099" yMin="769.416500" xMax="311.711238" yMax="780.352500">286-2</word>
+        </line>
+        <line xMin="277.077900" yMin="777.416500" xMax="333.068156" yMax="788.352500">
+          <word xMin="277.077900" yMin="777.416500" xMax="289.568633" yMax="788.352500">not</word>
+          <word xMin="291.725698" yMin="777.416500" xMax="333.068156" yMax="788.352500">applicable</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="340.730737" yMin="708.103869" xMax="373.945560" yMax="715.853802">
+        <line xMin="340.730737" yMin="708.103869" xMax="373.945560" yMax="715.853802">
+          <word xMin="340.730737" yMin="708.103869" xMax="373.945560" yMax="715.853802">Designation:</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="385.899600" yMin="715.331300" xMax="521.187122" yMax="748.139300">
+        <line xMin="385.899600" yMin="715.331300" xMax="521.187122" yMax="748.139300">
+          <word xMin="385.899600" yMin="715.331300" xMax="451.820326" yMax="748.139300">BEATE</word>
+          <word xMin="458.313940" yMin="715.331300" xMax="521.187122" yMax="748.139300">GV12</word>
+        </line>
+      </block>
+      <block xMin="568.469200" yMin="748.797500" xMax="579.573363" yMax="769.302500">
+        <line xMin="568.469200" yMin="748.797500" xMax="579.573363" yMax="769.302500">
+          <word xMin="568.469200" yMin="748.797500" xMax="579.573363" yMax="769.302500">A</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="340.367901" yMin="766.469312" xMax="372.332990" yMax="774.219245">
+        <line xMin="340.367901" yMin="766.469312" xMax="372.332990" yMax="774.219245">
+          <word xMin="340.367901" yMin="766.469312" xMax="362.705884" yMax="774.219245">Drawing</word>
+          <word xMin="364.236715" yMin="766.469312" xMax="372.332990" yMax="774.219245">nr.:</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="340.367901" yMin="803.563542" xMax="365.628761" yMax="811.313475">
+        <line xMin="340.367901" yMin="803.563542" xMax="365.628761" yMax="811.313475">
+          <word xMin="340.367901" yMin="803.563542" xMax="356.535508" yMax="811.313475">Scale:</word>
+          <word xMin="358.051050" yMin="803.563542" xMax="365.628761" yMax="811.313475">2:1</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="542.519200" yMin="769.593300" xMax="556.620596" yMax="784.630300">
+        <line xMin="542.519200" yMin="769.593300" xMax="556.620596" yMax="784.630300">
+          <word xMin="542.519200" yMin="769.593300" xMax="556.620596" yMax="784.630300">A4</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="395.283600" yMin="770.075300" xMax="469.874211" yMax="802.883300">
+        <line xMin="395.283600" yMin="770.075300" xMax="469.874211" yMax="802.883300">
+          <word xMin="395.283600" yMin="770.075300" xMax="469.874211" yMax="802.883300">GV_12</word>
+        </line>
+      </block>
+      <block xMin="378.569200" yMin="810.342500" xMax="386.881701" yMax="830.847500">
+        <line xMin="378.569200" yMin="810.342500" xMax="386.881701" yMax="830.847500">
+          <word xMin="378.569200" yMin="810.342500" xMax="386.881701" yMax="830.847500">2</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="466.237700" yMin="803.563542" xMax="490.380927" yMax="811.313475">
+        <line xMin="466.237700" yMin="803.563542" xMax="490.380927" yMax="811.313475">
+          <word xMin="466.237700" yMin="803.563542" xMax="480.428674" yMax="811.313475">Page</word>
+          <word xMin="481.941722" yMin="803.563542" xMax="490.380927" yMax="811.313475">1/1</word>
+        </line>
+      </block>
+    </flow>
+    <flow>
+      <block xMin="506.129200" yMin="810.342500" xMax="514.441701" yMax="830.847500">
+        <line xMin="506.129200" yMin="810.342500" xMax="514.441701" yMax="830.847500">
+          <word xMin="506.129200" yMin="810.342500" xMax="514.441701" yMax="830.847500">1</word>
+        </line>
+      </block>
+    </flow>
+  </page>
+</doc>
+</body>
+</html>

File diff suppressed because it is too large
+ 1226 - 0
temporary/7943331out.html


File diff suppressed because it is too large
+ 1226 - 0
temporary/9324539out.html


+ 126 - 44
temporary/blub.csv

@@ -1,44 +1,126 @@
-[109.2742, 10.9775];[117.586701, 10.9775];[109.2742, 31.4825];[117.586701, 31.4825];1
-[236.8342, 10.9775];[245.146701, 10.9775];[236.8342, 31.4825];[245.146701, 31.4825];1
-[378.5692, 10.9775];[386.881701, 10.9775];[378.5692, 31.4825];[386.881701, 31.4825];1
-[506.1292, 10.9775];[514.441701, 10.9775];[506.1292, 31.4825];[514.441701, 31.4825];1
-[45.6142, 198.0575];[53.655872, 198.0575];[45.6142, 218.5625];[53.655872, 218.5625];1
-[570.0292, 198.0575];[578.070872, 198.0575];[570.0292, 218.5625];[578.070872, 218.5625];1
-[459.8948, 279.875459];[470.8308, 279.875459];[459.8948, 288.142537];[470.8308, 288.142537];3
-[451.8948, 226.069084];[470.8308, 226.069084];[451.8948, 266.389049];[470.8308, 266.389049];1
-[570.4192, 72.7175];[577.690039, 72.7175];[570.4192, 93.2225];[577.690039, 93.2225];1
-[421.3291, 231.326384];[440.2651, 231.326384];[421.3291, 273.8375];[440.2651, 273.8375];1
-[46.0042, 72.7175];[53.275039, 72.7175];[46.0042, 93.2225];[53.275039, 93.2225];1
-[247.709281, 312.7522];[276.919273, 312.7522];[247.709281, 331.6882];[276.919273, 331.6882];3
-[319.221281, 348.8242];[348.431273, 348.8242];[319.221281, 367.7602];[348.431273, 367.7602];3
-[245.726269, 356.8242];[278.902066, 356.8242];[245.726269, 367.7602];[278.902066, 367.7602];3
-[568.4542, 339.7925];[579.620863, 339.7925];[568.4542, 360.2975];[579.620863, 360.2975];1
-[387.3133, 343.474461];[406.2493, 343.474461];[387.3133, 383.4429];[406.2493, 383.4429];1
-[44.0392, 339.7925];[55.205863, 339.7925];[44.0392, 360.2975];[55.205863, 360.2975];1
-[322.540168, 321.6642];[345.103273, 321.6642];[322.540168, 340.6002];[345.103273, 340.6002];3
-[43.5292, 481.5275];[55.716688, 481.5275];[43.5292, 502.0325];[55.716688, 502.0325];1
-[567.9442, 481.5275];[580.131688, 481.5275];[567.9442, 502.0325];[580.131688, 502.0325];1
-[369.2103, 531.213302];[378.999242, 531.213302];[369.2103, 549.296388];[378.999242, 549.296388];1
-[261.571623, 533.144634];[271.360565, 533.144634];[261.571623, 551.22772];[271.360565, 551.22772];1
-[45.3142, 623.2625];[53.918371, 623.2625];[45.3142, 643.7675];[53.918371, 643.7675];1
-[569.7292, 623.2625];[578.333371, 623.2625];[569.7292, 643.7675];[578.333371, 643.7675];1
-[58.3739, 656.5525];[116.958623, 656.5525];[58.3739, 667.4885];[116.958623, 667.4885];3
-[154.1659, 656.5525];[214.582566, 656.5525];[154.1659, 667.4885];[214.582566, 667.4885];3
-[280.3089, 671.8523];[304.485982, 671.8523];[280.3089, 685.5223];[304.485982, 685.5223];3
-[60.5659, 706.0405];[166.30067, 706.0405];[60.5659, 716.9765];[166.30067, 716.9765];3
-[44.0542, 748.7975];[55.158362, 748.7975];[44.0542, 769.3025];[55.158362, 769.3025];1
-[194.7913, 706.0405];[294.677458, 706.0405];[194.7913, 716.9765];[294.677458, 716.9765];3
-[58.1273, 729.4165];[257.712659, 729.4165];[58.1273, 799.5765];[257.712659, 799.5765];3
-[109.2742, 810.3425];[117.586701, 810.3425];[109.2742, 830.8475];[117.586701, 830.8475];1
-[236.8342, 810.3425];[245.146701, 810.3425];[236.8342, 830.8475];[245.146701, 830.8475];1
-[277.0779, 729.4165];[333.068156, 729.4165];[277.0779, 788.3525];[333.068156, 788.3525];3
-[340.730737, 708.103869];[373.94556, 708.103869];[340.730737, 715.853802];[373.94556, 715.853802];3
-[385.8996, 715.3313];[521.187122, 715.3313];[385.8996, 748.1393];[521.187122, 748.1393];3
-[568.4692, 748.7975];[579.573363, 748.7975];[568.4692, 769.3025];[579.573363, 769.3025];1
-[340.367901, 766.469312];[372.33299, 766.469312];[340.367901, 774.219245];[372.33299, 774.219245];3
-[340.367901, 803.563542];[365.628761, 803.563542];[340.367901, 811.313475];[365.628761, 811.313475];3
-[542.5192, 769.5933];[556.620596, 769.5933];[542.5192, 784.6303];[556.620596, 784.6303];3
-[395.2836, 770.0753];[469.874211, 770.0753];[395.2836, 802.8833];[469.874211, 802.8833];3
-[378.5692, 810.3425];[386.881701, 810.3425];[378.5692, 830.8475];[386.881701, 830.8475];1
-[466.2377, 803.563542];[490.380927, 803.563542];[466.2377, 811.313475];[490.380927, 811.313475];3
-[506.1292, 810.3425];[514.441701, 810.3425];[506.1292, 830.8475];[514.441701, 830.8475];1
+[67.790402, 11.570546];[73.239534, 11.570546];[67.790402, 20.626588];[73.239534, 20.626588];1
+[268.068994, 11.450546];[273.518126, 11.450546];[268.068994, 20.506588];[273.518126, 20.506588];1
+[167.989461, 11.570546];[173.438592, 11.570546];[167.989461, 20.626588];[173.438592, 20.626588];1
+[368.268523, 11.450546];[373.717654, 11.450546];[368.268523, 20.506588];[373.717654, 20.506588];1
+[468.348387, 11.450546];[473.797518, 11.450546];[468.348387, 20.506588];[473.797518, 20.506588];1
+[568.547916, 11.450546];[573.997047, 11.450546];[568.547916, 20.506588];[573.997047, 20.506588];1
+[122.630951, 46.695792];[190.286116, 46.695792];[122.630951, 60.279874];[190.286116, 60.279874];3
+[120.761894, 78.819233];[130.537431, 78.819233];[120.761894, 91.199965];[130.537431, 91.199965];3
+[646.430741, 113.055766];[715.046105, 113.055766];[646.430741, 126.639848];[715.046105, 126.639848];3
+[475.533479, 179.470821];[487.897401, 179.470821];[475.533479, 198.119921];[487.897401, 198.119921];1
+[150.11094, 166.850483];[169.239999, 166.850483];[150.11094, 175.906526];[169.239999, 175.906526];3
+[108.590957, 216.735724];[177.206123, 216.735724];[108.590957, 230.319806];[177.206123, 230.319806];3
+[141.830943, 335.450416];[147.819107, 335.450416];[141.830943, 344.506458];[147.819107, 344.506458];1
+[356.870857, 355.005249];[378.1424, 355.005249];[356.870857, 368.279803];[378.1424, 368.279803];3
+[144.590942, 406.782692];[173.852474, 406.782692];[144.590942, 411.90645];[173.852474, 411.90645];3
+[165.590934, 413.627848];[184.771375, 413.627848];[165.590934, 429.293089];[184.771375, 429.293089];3
+[63.230575, 420.770382];[88.83962, 420.770382];[63.230575, 429.826424];[88.83962, 429.826424];3
+[42.470583, 443.753959];[92.560972, 443.753959];[42.470583, 451.706412];[92.560972, 451.706412];3
+[193.670836, 421.547845];[210.211285, 421.547845];[193.670836, 429.293089];[210.211285, 429.293089];3
+[375.23085, 376.24524];[404.662389, 376.24524];[375.23085, 389.639794];[404.662389, 389.639794];3
+[302.030879, 379.143886];[336.502426, 379.143886];[302.030879, 388.906441];[336.502426, 388.906441];3
+[823.066288, 343.730413];[830.142318, 343.730413];[823.066288, 352.786455];[830.142318, 352.786455];3
+[463.790814, 439.010375];[470.327812, 439.010375];[463.790814, 448.066417];[470.327812, 448.066417];3
+[159.710792, 447.833957];[212.081156, 447.833957];[159.710792, 451.706412];[212.081156, 451.706412];3
+[42.470335, 454.902672];[211.633124, 454.902672];[42.470335, 505.626412];[211.633124, 505.626412];3
+[466.670813, 461.872555];[469.467056, 461.872555];[466.670813, 466.51979];[469.467056, 466.51979];1
+[705.831325, 461.872555];[731.067818, 461.872555];[705.831325, 466.51979];[731.067818, 466.51979];3
+[548.030781, 470.504063];[580.469249, 470.504063];[548.030781, 474.853041];[580.469249, 474.853041];3
+[667.910733, 470.504063];[688.949102, 470.504063];[667.910733, 474.853041];[688.949102, 474.853041];3
+[314.630874, 505.335609];[324.436384, 505.335609];[314.630874, 518.919691];[324.436384, 518.919691];3
+[408.110604, 505.335609];[417.916114, 505.335609];[408.110604, 518.919691];[417.916114, 518.919691];3
+[463.070815, 516.462648];[482.012282, 516.462648];[463.070815, 521.586406];[482.012282, 521.586406];3
+[143.870942, 524.02246];[197.447921, 524.02246];[143.870942, 536.386382];[197.447921, 536.386382];3
+[503.150619, 516.582648];[518.732192, 516.582648];[503.150619, 521.706406];[518.732192, 521.706406];3
+[480.950808, 525.285181];[483.269564, 525.285181];[480.950808, 531.719737];[483.269564, 531.719737];1
+[515.390794, 526.005181];[528.982379, 526.005181];[515.390794, 532.439737];[528.982379, 532.439737];3
+[543.230783, 516.462648];[554.732298, 516.462648];[543.230783, 521.586406];[554.732298, 521.586406];3
+[583.310767, 516.462648];[609.692421, 516.462648];[583.310767, 535.9864];[609.692421, 535.9864];3
+[555.350778, 525.405181];[567.031154, 525.405181];[555.350778, 531.839737];[567.031154, 531.839737];3
+[653.390739, 516.525184];[702.366371, 516.525184];[653.390739, 522.959741];[702.366371, 522.959741];3
+[653.390739, 536.445176];[690.366444, 536.445176];[653.390739, 542.879733];[690.366444, 542.879733];3
+[481.910807, 545.930332];[504.234616, 545.930332];[481.910807, 554.986374];[504.234616, 554.986374];3
+[514.190794, 546.467795];[556.170929, 546.467795];[514.190794, 554.213039];[556.170929, 554.213039];3
+[777.711531, 461.392555];[779.386259, 461.392555];[777.711531, 466.03979];[779.386259, 466.03979];1
+[743.751643, 461.872555];[753.346152, 461.872555];[743.751643, 466.51979];[753.346152, 466.51979];3
+[806.751614, 461.392555];[808.426342, 461.392555];[806.751614, 466.03979];[808.426342, 466.03979];1
+[735.710706, 470.504063];[791.770297, 470.504063];[735.710706, 474.853041];[791.770297, 474.853041];3
+[797.510681, 470.504063];[817.690262, 470.504063];[797.510681, 474.853041];[817.690262, 474.853041];3
+[368.269029, 575.93032];[373.71816, 575.93032];[368.269029, 584.986362];[373.71816, 584.986362];1
+[468.348598, 575.93032];[473.797729, 575.93032];[468.348598, 584.986362];[473.797729, 584.986362];1
+[705.470718, 542.210333];[790.359576, 542.210333];[705.470718, 551.266376];[790.359576, 551.266376];3
+[568.548127, 575.93032];[573.997258, 575.93032];[568.548127, 584.986362];[573.997258, 584.986362];1
+[668.627696, 575.93032];[674.076827, 575.93032];[668.627696, 584.986362];[674.076827, 584.986362];1
+[823.666285, 544.010333];[829.654449, 544.010333];[823.666285, 553.066375];[829.654449, 553.066375];1
+[793.551216, 556.486651];[809.654008, 556.486651];[793.551216, 562.146317];[809.654008, 562.146317];3
+[710.390716, 562.970325];[748.599674, 562.970325];[710.390716, 572.026367];[748.599674, 572.026367];3
+[586.910765, 568.366647];[633.756366, 568.366647];[586.910765, 574.026312];[633.756366, 574.026312];3
+[491.630803, 568.507468];[538.636672, 568.507468];[491.630803, 572.439753];[538.636672, 572.439753];3
+[268.0695, 575.93032];[273.518632, 575.93032];[268.0695, 584.986362];[273.518632, 584.986362];1
+[705.470718, 521.570342];[794.679443, 521.570342];[705.470718, 530.626384];[794.679443, 530.626384];3
+[653.390739, 556.486651];[689.893473, 556.486651];[653.390739, 562.146317];[689.893473, 562.146317];3
+[466.430813, 557.446651];[563.915856, 557.446651];[466.430813, 563.226317];[563.915856, 563.226317];3
+[100.550559, 567.405164];[110.302109, 567.405164];[100.550559, 573.83972];[110.302109, 573.83972];3
+[167.989931, 575.93032];[173.439062, 575.93032];[167.989931, 584.986362];[173.439062, 584.986362];1
+[712.190715, 470.504063];[724.810175, 470.504063];[712.190715, 474.853041];[724.810175, 474.853041];3
+[463.070815, 486.526679];[799.693722, 486.526679];[463.070815, 512.946337];[799.693722, 512.946337];3
+[42.470803, 542.502637];[72.932298, 542.502637];[42.470803, 547.626395];[72.932298, 547.626395];3
+[67.790402, 575.93032];[73.239534, 575.93032];[67.790402, 584.986362];[73.239534, 584.986362];1
+[477.110851, 461.392555];[506.78728, 461.392555];[477.110851, 466.03979];[506.78728, 466.03979];3
+[618.710753, 478.78406];[663.970438, 478.78406];[618.710753, 483.133038];[663.970438, 483.133038];3
+[42.470583, 549.941496];[208.019915, 549.941496];[42.470583, 563.159698];[208.019915, 563.159698];3
+[42.470583, 566.502628];[91.052115, 566.502628];[42.470583, 571.626386];[91.052115, 571.626386];3
+[823.426286, 443.810373];[829.963283, 443.810373];[823.426286, 452.866415];[829.963283, 452.866415];3
+[462.470815, 470.504063];[473.619336, 470.504063];[462.470815, 474.853041];[473.619336, 474.853041];3
+[99.35056, 510.285187];[161.902038, 510.285187];[99.35056, 516.719743];[161.902038, 516.719743];3
+[42.470803, 522.582645];[135.452419, 522.582645];[42.470803, 527.706403];[135.452419, 527.706403];3
+[528.950788, 309.462546];[583.367767, 309.462546];[528.950788, 321.730116];[583.367767, 321.730116];3
+[447.401371, 378.550836];[456.457414, 378.550836];[447.401371, 407.399837];[456.457414, 407.399837];1
+[233.270907, 372.222521];[277.119929, 372.222521];[233.270907, 384.826442];[277.119929, 384.826442];3
+[112.551016, 387.885236];[195.982459, 387.885236];[112.551016, 402.959789];[195.982459, 402.959789];3
+[275.44144, 398.470841];[284.497482, 398.470841];[275.44144, 432.239827];[284.497482, 432.239827];1
+[42.470803, 396.822696];[75.092321, 396.822696];[42.470803, 401.946454];[75.092321, 401.946454];3
+[527.270789, 295.662551];[583.367767, 295.662551];[527.270789, 307.930122];[583.367767, 307.930122];3
+[450.516211, 316.048318];[456.950767, 316.048318];[450.516211, 329.519874];[456.950767, 329.519874];1
+[260.030896, 338.445256];[289.342435, 338.445256];[260.030896, 351.839809];[289.342435, 351.839809];3
+[42.470583, 362.14271];[206.062152, 362.14271];[42.470583, 383.279797];[206.062152, 383.279797];3
+[42.470583, 406.782692];[81.93211, 406.782692];[42.470583, 411.90645];[81.93211, 411.90645];3
+[735.470706, 220.252619];[754.843312, 220.252619];[735.470706, 234.705879];[754.843312, 234.705879];3
+[263.683349, 260.725762];[278.136932, 260.725762];[263.683349, 273.479891];[278.136932, 273.479891];3
+[363.710855, 295.095693];[373.516364, 295.095693];[363.710855, 308.679775];[373.516364, 308.679775];3
+[267.833014, 296.210432];[281.562101, 296.210432];[267.833014, 305.266474];[281.562101, 305.266474];3
+[255.230898, 322.010421];[261.767895, 322.010421];[255.230898, 331.066464];[261.767895, 331.066464];3
+[42.470803, 386.8627];[109.892388, 386.8627];[42.470803, 391.986458];[109.892388, 391.986458];3
+[730.790708, 159.650486];[753.159781, 159.650486];[730.790708, 168.706529];[753.159781, 168.706529];3
+[664.790734, 162.770485];[681.759836, 162.770485];[664.790734, 171.826528];[681.759836, 171.826528];3
+[823.066288, 243.770453];[830.142318, 243.770453];[823.066288, 252.826495];[830.142318, 252.826495];3
+[174.59093, 249.050451];[208.359931, 249.050451];[174.59093, 267.946489];[208.359931, 267.946489];3
+[154.790938, 281.142557];[203.687919, 281.142557];[154.790938, 321.466468];[203.687919, 321.466468];3
+[31.910589, 343.730413];[38.986619, 343.730413];[31.910589, 352.786455];[38.986619, 352.786455];3
+[823.426286, 143.690493];[829.963283, 143.690493];[823.426286, 152.746535];[829.963283, 152.746535];3
+[614.150754, 225.772685];[631.59029, 225.772685];[614.150754, 242.985857];[631.59029, 242.985857];3
+[450.453489, 286.28323];[464.150764, 286.28323];[450.453489, 376.07985];[464.150764, 376.07985];1
+[141.950943, 244.850452];[148.487941, 244.850452];[141.950943, 253.906495];[148.487941, 253.906495];3
+[666.230734, 143.210493];[683.199836, 143.210493];[666.230734, 152.266535];[683.199836, 152.266535];3
+[528.03618, 149.412075];[541.310733, 149.412075];[528.03618, 224.63991];[541.310733, 224.63991];1
+[408.230413, 143.535754];[417.212672, 143.535754];[408.230413, 157.119836];[417.212672, 157.119836];1
+[502.59619, 161.248393];[515.990744, 161.248393];[502.59619, 212.879915];[515.990744, 212.879915];1
+[379.841398, 133.990852];[388.897441, 133.990852];[379.841398, 156.479937];[388.897441, 156.479937];1
+[348.163641, 125.988458];[365.976808, 125.988458];[348.163641, 142.79992];[365.976808, 142.79992];3
+[205.963601, 116.896848];[216.216897, 116.896848];[205.963601, 125.99995];[216.216897, 125.99995];3
+[552.470779, 63.102644];[620.927752, 63.102644];[552.470779, 75.370215];[620.927752, 75.370215];3
+[401.270839, 73.18264];[439.239891, 73.18264];[401.270839, 85.450211];[439.239891, 85.450211];3
+[32.150587, 143.690493];[38.687585, 143.690493];[32.150587, 152.746535];[38.687585, 152.746535];3
+[31.910589, 243.770453];[38.986619, 243.770453];[31.910589, 252.826495];[38.986619, 252.826495];3
+[823.426286, 43.490533];[829.963283, 43.490533];[823.426286, 52.546575];[829.963283, 52.546575];3
+[552.470779, 50.93053];[562.771048, 50.93053];[552.470779, 59.986572];[562.771048, 59.986572];3
+[407.750837, 53.382648];[456.287818, 53.382648];[407.750837, 65.650219];[456.287818, 65.650219];3
+[343.430863, 65.055785];[353.236372, 65.055785];[343.430863, 78.639867];[353.236372, 78.639867];3
+[32.390586, 544.010333];[38.37875, 544.010333];[32.390586, 553.066375];[38.37875, 553.066375];1
+[768.827013, 11.450546];[774.276145, 11.450546];[768.827013, 20.506588];[774.276145, 20.506588];1
+[342.230863, 30.855799];[417.326089, 30.855799];[342.230863, 44.439881];[417.326089, 44.439881];3
+[32.150587, 43.490533];[38.687585, 43.490533];[32.150587, 52.546575];[38.687585, 52.546575];3
+[32.150587, 443.810373];[38.687585, 443.810373];[32.150587, 452.866415];[38.687585, 452.866415];3
+[668.627485, 11.450546];[674.076616, 11.450546];[668.627485, 20.506588];[674.076616, 20.506588];1
+[798.35074, 564.107788];[814.89116, 564.107788];[798.35074, 571.853032];[814.89116, 571.853032];3
+[765.587245, 575.93032];[777.516363, 575.93032];[765.587245, 584.986362];[777.516363, 584.986362];3

+ 44 - 0
temporary/blub.csv~HEAD

@@ -0,0 +1,44 @@
+[109.2742, 10.9775];[117.586701, 10.9775];[109.2742, 31.4825];[117.586701, 31.4825];1
+[236.8342, 10.9775];[245.146701, 10.9775];[236.8342, 31.4825];[245.146701, 31.4825];1
+[378.5692, 10.9775];[386.881701, 10.9775];[378.5692, 31.4825];[386.881701, 31.4825];1
+[506.1292, 10.9775];[514.441701, 10.9775];[506.1292, 31.4825];[514.441701, 31.4825];1
+[45.6142, 198.0575];[53.655872, 198.0575];[45.6142, 218.5625];[53.655872, 218.5625];1
+[570.0292, 198.0575];[578.070872, 198.0575];[570.0292, 218.5625];[578.070872, 218.5625];1
+[459.8948, 279.875459];[470.8308, 279.875459];[459.8948, 288.142537];[470.8308, 288.142537];3
+[451.8948, 226.069084];[470.8308, 226.069084];[451.8948, 266.389049];[470.8308, 266.389049];1
+[570.4192, 72.7175];[577.690039, 72.7175];[570.4192, 93.2225];[577.690039, 93.2225];1
+[421.3291, 231.326384];[440.2651, 231.326384];[421.3291, 273.8375];[440.2651, 273.8375];1
+[46.0042, 72.7175];[53.275039, 72.7175];[46.0042, 93.2225];[53.275039, 93.2225];1
+[247.709281, 312.7522];[276.919273, 312.7522];[247.709281, 331.6882];[276.919273, 331.6882];3
+[319.221281, 348.8242];[348.431273, 348.8242];[319.221281, 367.7602];[348.431273, 367.7602];3
+[245.726269, 356.8242];[278.902066, 356.8242];[245.726269, 367.7602];[278.902066, 367.7602];3
+[568.4542, 339.7925];[579.620863, 339.7925];[568.4542, 360.2975];[579.620863, 360.2975];1
+[387.3133, 343.474461];[406.2493, 343.474461];[387.3133, 383.4429];[406.2493, 383.4429];1
+[44.0392, 339.7925];[55.205863, 339.7925];[44.0392, 360.2975];[55.205863, 360.2975];1
+[322.540168, 321.6642];[345.103273, 321.6642];[322.540168, 340.6002];[345.103273, 340.6002];3
+[43.5292, 481.5275];[55.716688, 481.5275];[43.5292, 502.0325];[55.716688, 502.0325];1
+[567.9442, 481.5275];[580.131688, 481.5275];[567.9442, 502.0325];[580.131688, 502.0325];1
+[369.2103, 531.213302];[378.999242, 531.213302];[369.2103, 549.296388];[378.999242, 549.296388];1
+[261.571623, 533.144634];[271.360565, 533.144634];[261.571623, 551.22772];[271.360565, 551.22772];1
+[45.3142, 623.2625];[53.918371, 623.2625];[45.3142, 643.7675];[53.918371, 643.7675];1
+[569.7292, 623.2625];[578.333371, 623.2625];[569.7292, 643.7675];[578.333371, 643.7675];1
+[58.3739, 656.5525];[116.958623, 656.5525];[58.3739, 667.4885];[116.958623, 667.4885];3
+[154.1659, 656.5525];[214.582566, 656.5525];[154.1659, 667.4885];[214.582566, 667.4885];3
+[280.3089, 671.8523];[304.485982, 671.8523];[280.3089, 685.5223];[304.485982, 685.5223];3
+[60.5659, 706.0405];[166.30067, 706.0405];[60.5659, 716.9765];[166.30067, 716.9765];3
+[44.0542, 748.7975];[55.158362, 748.7975];[44.0542, 769.3025];[55.158362, 769.3025];1
+[194.7913, 706.0405];[294.677458, 706.0405];[194.7913, 716.9765];[294.677458, 716.9765];3
+[58.1273, 729.4165];[257.712659, 729.4165];[58.1273, 799.5765];[257.712659, 799.5765];3
+[109.2742, 810.3425];[117.586701, 810.3425];[109.2742, 830.8475];[117.586701, 830.8475];1
+[236.8342, 810.3425];[245.146701, 810.3425];[236.8342, 830.8475];[245.146701, 830.8475];1
+[277.0779, 729.4165];[333.068156, 729.4165];[277.0779, 788.3525];[333.068156, 788.3525];3
+[340.730737, 708.103869];[373.94556, 708.103869];[340.730737, 715.853802];[373.94556, 715.853802];3
+[385.8996, 715.3313];[521.187122, 715.3313];[385.8996, 748.1393];[521.187122, 748.1393];3
+[568.4692, 748.7975];[579.573363, 748.7975];[568.4692, 769.3025];[579.573363, 769.3025];1
+[340.367901, 766.469312];[372.33299, 766.469312];[340.367901, 774.219245];[372.33299, 774.219245];3
+[340.367901, 803.563542];[365.628761, 803.563542];[340.367901, 811.313475];[365.628761, 811.313475];3
+[542.5192, 769.5933];[556.620596, 769.5933];[542.5192, 784.6303];[556.620596, 784.6303];3
+[395.2836, 770.0753];[469.874211, 770.0753];[395.2836, 802.8833];[469.874211, 802.8833];3
+[378.5692, 810.3425];[386.881701, 810.3425];[378.5692, 830.8475];[386.881701, 830.8475];1
+[466.2377, 803.563542];[490.380927, 803.563542];[466.2377, 811.313475];[490.380927, 811.313475];3
+[506.1292, 810.3425];[514.441701, 810.3425];[506.1292, 830.8475];[514.441701, 830.8475];1

File diff suppressed because it is too large
+ 38 - 0
temporary/ist_to_csv_with_corner_points.csv


File diff suppressed because it is too large
+ 126 - 44
temporary/list_to_csv_with_corner_points.csv


File diff suppressed because it is too large
+ 125 - 44
temporary/values_clusteredfrom_precomputed_dbscan.csv


+ 10 - 0
venv/bin/chardetect

@@ -0,0 +1,10 @@
+#!/home/bscheibel/PycharmProjects/dxf_reader/venv/bin/python
+# -*- coding: utf-8 -*-
+import re
+import sys
+
+from chardet.cli.chardetect import main
+
+if __name__ == '__main__':
+    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
+    sys.exit(main())

+ 10 - 0
venv/bin/f2py

@@ -0,0 +1,10 @@
+#!/home/bscheibel/PycharmProjects/dxf_reader/venv/bin/python
+# -*- coding: utf-8 -*-
+import re
+import sys
+
+from numpy.f2py.f2py2e import main
+
+if __name__ == '__main__':
+    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
+    sys.exit(main())

+ 10 - 0
venv/bin/f2py3

@@ -0,0 +1,10 @@
+#!/home/bscheibel/PycharmProjects/dxf_reader/venv/bin/python
+# -*- coding: utf-8 -*-
+import re
+import sys
+
+from numpy.f2py.f2py2e import main
+
+if __name__ == '__main__':
+    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
+    sys.exit(main())

+ 10 - 0
venv/bin/f2py3.7

@@ -0,0 +1,10 @@
+#!/home/bscheibel/PycharmProjects/dxf_reader/venv/bin/python
+# -*- coding: utf-8 -*-
+import re
+import sys
+
+from numpy.f2py.f2py2e import main
+
+if __name__ == '__main__':
+    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
+    sys.exit(main())

+ 12 - 0
venv/bin/tika-python

@@ -0,0 +1,12 @@
+#!/home/bscheibel/PycharmProjects/dxf_reader/venv/bin/python
+# EASY-INSTALL-ENTRY-SCRIPT: 'tika==1.19','console_scripts','tika-python'
+__requires__ = 'tika==1.19'
+import re
+import sys
+from pkg_resources import load_entry_point
+
+if __name__ == '__main__':
+    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
+    sys.exit(
+        load_entry_point('tika==1.19', 'console_scripts', 'tika-python')()
+    )

BIN
venv/lib/python3.7/site-packages/__pycache__/pyparsing.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/__pycache__/six.cpython-37.pyc


+ 50 - 0
venv/lib/python3.7/site-packages/certifi-2019.6.16.dist-info/DESCRIPTION.rst

@@ -0,0 +1,50 @@
+Certifi: Python SSL Certificates
+================================
+
+`Certifi`_ is a carefully curated collection of Root Certificates for
+validating the trustworthiness of SSL certificates while verifying the identity
+of TLS hosts. It has been extracted from the `Requests`_ project.
+
+Installation
+------------
+
+``certifi`` is available on PyPI. Simply install it with ``pip``::
+
+    $ pip install certifi
+
+Usage
+-----
+
+To reference the installed certificate authority (CA) bundle, you can use the
+built-in function::
+
+    >>> import certifi
+
+    >>> certifi.where()
+    '/usr/local/lib/python2.7/site-packages/certifi/cacert.pem'
+
+Or from the command line::
+
+    $ python -m certifi
+    /usr/local/lib/python2.7/site-packages/certifi/cacert.pem
+
+Enjoy!
+
+1024-bit Root Certificates
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Browsers and certificate authorities have concluded that 1024-bit keys are
+unacceptably weak for certificates, particularly root certificates. For this
+reason, Mozilla has removed any weak (i.e. 1024-bit key) certificate from its
+bundle, replacing it with an equivalent strong (i.e. 2048-bit or greater key)
+certificate from the same CA. Because Mozilla removed these certificates from
+its bundle, ``certifi`` removed them as well.
+
+In previous versions, ``certifi`` provided the ``certifi.old_where()`` function
+to intentionally re-add the 1024-bit roots back into your bundle. This was not
+recommended in production and therefore was removed at the end of 2018.
+
+.. _`Certifi`: https://certifi.io/en/latest/
+.. _`Requests`: http://docs.python-requests.org/en/latest/
+
+

+ 1 - 0
venv/lib/python3.7/site-packages/certifi-2019.6.16.dist-info/INSTALLER

@@ -0,0 +1 @@
+pip

+ 21 - 0
venv/lib/python3.7/site-packages/certifi-2019.6.16.dist-info/LICENSE.txt

@@ -0,0 +1,21 @@
+This packge contains a modified version of ca-bundle.crt:
+
+ca-bundle.crt -- Bundle of CA Root Certificates
+
+Certificate data from Mozilla as of: Thu Nov  3 19:04:19 2011#
+This is a bundle of X.509 certificates of public Certificate Authorities
+(CA). These were automatically extracted from Mozilla's root certificates
+file (certdata.txt).  This file can be found in the mozilla source tree:
+http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1#
+It contains the certificates in PEM format and therefore
+can be directly used with curl / libcurl / php_curl, or with
+an Apache+mod_ssl webserver for SSL client authentication.
+Just configure this file as the SSLCACertificateFile.#
+
+***** BEGIN LICENSE BLOCK *****
+This Source Code Form is subject to the terms of the Mozilla Public License,
+v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain
+one at http://mozilla.org/MPL/2.0/.
+
+***** END LICENSE BLOCK *****
+@(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $

+ 74 - 0
venv/lib/python3.7/site-packages/certifi-2019.6.16.dist-info/METADATA

@@ -0,0 +1,74 @@
+Metadata-Version: 2.0
+Name: certifi
+Version: 2019.6.16
+Summary: Python package for providing Mozilla's CA Bundle.
+Home-page: https://certifi.io/
+Author: Kenneth Reitz
+Author-email: me@kennethreitz.com
+License: MPL-2.0
+Platform: UNKNOWN
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
+Classifier: Natural Language :: English
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
+
+Certifi: Python SSL Certificates
+================================
+
+`Certifi`_ is a carefully curated collection of Root Certificates for
+validating the trustworthiness of SSL certificates while verifying the identity
+of TLS hosts. It has been extracted from the `Requests`_ project.
+
+Installation
+------------
+
+``certifi`` is available on PyPI. Simply install it with ``pip``::
+
+    $ pip install certifi
+
+Usage
+-----
+
+To reference the installed certificate authority (CA) bundle, you can use the
+built-in function::
+
+    >>> import certifi
+
+    >>> certifi.where()
+    '/usr/local/lib/python2.7/site-packages/certifi/cacert.pem'
+
+Or from the command line::
+
+    $ python -m certifi
+    /usr/local/lib/python2.7/site-packages/certifi/cacert.pem
+
+Enjoy!
+
+1024-bit Root Certificates
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Browsers and certificate authorities have concluded that 1024-bit keys are
+unacceptably weak for certificates, particularly root certificates. For this
+reason, Mozilla has removed any weak (i.e. 1024-bit key) certificate from its
+bundle, replacing it with an equivalent strong (i.e. 2048-bit or greater key)
+certificate from the same CA. Because Mozilla removed these certificates from
+its bundle, ``certifi`` removed them as well.
+
+In previous versions, ``certifi`` provided the ``certifi.old_where()`` function
+to intentionally re-add the 1024-bit roots back into your bundle. This was not
+recommended in production and therefore was removed at the end of 2018.
+
+.. _`Certifi`: https://certifi.io/en/latest/
+.. _`Requests`: http://docs.python-requests.org/en/latest/
+
+

+ 15 - 0
venv/lib/python3.7/site-packages/certifi-2019.6.16.dist-info/RECORD

@@ -0,0 +1,15 @@
+certifi-2019.6.16.dist-info/DESCRIPTION.rst,sha256=aLNHONztn2ZiBpSTivVFy6EDIWmuNYSsEQwx4NWbvB4,1580
+certifi-2019.6.16.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
+certifi-2019.6.16.dist-info/LICENSE.txt,sha256=anCkv2sBABbVmmS4rkrY3H9e8W8ftFPMLs13HFo0ETE,1048
+certifi-2019.6.16.dist-info/METADATA,sha256=bmxei5fIjQJCT_5_2k2ReQ1IDvrguA5Qan26BXRcbN0,2522
+certifi-2019.6.16.dist-info/RECORD,,
+certifi-2019.6.16.dist-info/WHEEL,sha256=5wvfB7GvgZAbKBSE9uX9Zbi6LCL-_KgezgHblXhCRnM,113
+certifi-2019.6.16.dist-info/metadata.json,sha256=soH2Ke2dIXqmSFFz1swsK3Uno_9ed57OqPIXuOxFXYA,1048
+certifi-2019.6.16.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8
+certifi/__init__.py,sha256=phsMyKTQP7MMe1wAHfhXPbQVxL3wXixOomxzNh5Cwa4,52
+certifi/__main__.py,sha256=FiOYt1Fltst7wk9DRa6GCoBr8qBUxlNQu_MKJf04E6s,41
+certifi/__pycache__/__init__.cpython-37.pyc,,
+certifi/__pycache__/__main__.cpython-37.pyc,,
+certifi/__pycache__/core.cpython-37.pyc,,
+certifi/cacert.pem,sha256=DddOv7pQyMB8zNNgiXSSFrPVn7EN8qbe7P6h_IYyuek,282085
+certifi/core.py,sha256=EuFc2BsToG5O1-qsx4BSjQ1r1-7WRtH87b1WflZOWhI,218

+ 6 - 0
venv/lib/python3.7/site-packages/certifi-2019.6.16.dist-info/WHEEL

@@ -0,0 +1,6 @@
+Wheel-Version: 1.0
+Generator: bdist_wheel (0.30.0.a0)
+Root-Is-Purelib: true
+Tag: py2-none-any
+Tag: py3-none-any
+

File diff suppressed because it is too large
+ 1 - 0
venv/lib/python3.7/site-packages/certifi-2019.6.16.dist-info/metadata.json


+ 1 - 0
venv/lib/python3.7/site-packages/certifi-2019.6.16.dist-info/top_level.txt

@@ -0,0 +1 @@
+certifi

+ 3 - 0
venv/lib/python3.7/site-packages/certifi/__init__.py

@@ -0,0 +1,3 @@
+from .core import where
+
+__version__ = "2019.06.16"

+ 2 - 0
venv/lib/python3.7/site-packages/certifi/__main__.py

@@ -0,0 +1,2 @@
+from certifi import where
+print(where())

BIN
venv/lib/python3.7/site-packages/certifi/__pycache__/__init__.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/certifi/__pycache__/__main__.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/certifi/__pycache__/core.cpython-37.pyc


File diff suppressed because it is too large
+ 4618 - 0
venv/lib/python3.7/site-packages/certifi/cacert.pem


+ 15 - 0
venv/lib/python3.7/site-packages/certifi/core.py

@@ -0,0 +1,15 @@
+# -*- coding: utf-8 -*-
+
+"""
+certifi.py
+~~~~~~~~~~
+
+This module returns the installation location of cacert.pem.
+"""
+import os
+
+
+def where():
+    f = os.path.dirname(__file__)
+
+    return os.path.join(f, 'cacert.pem')

+ 70 - 0
venv/lib/python3.7/site-packages/chardet-3.0.4.dist-info/DESCRIPTION.rst

@@ -0,0 +1,70 @@
+Chardet: The Universal Character Encoding Detector
+--------------------------------------------------
+
+.. image:: https://img.shields.io/travis/chardet/chardet/stable.svg
+   :alt: Build status
+   :target: https://travis-ci.org/chardet/chardet
+
+.. image:: https://img.shields.io/coveralls/chardet/chardet/stable.svg
+   :target: https://coveralls.io/r/chardet/chardet
+
+.. image:: https://img.shields.io/pypi/v/chardet.svg
+   :target: https://warehouse.python.org/project/chardet/
+   :alt: Latest version on PyPI
+
+.. image:: https://img.shields.io/pypi/l/chardet.svg
+   :alt: License
+
+
+Detects
+ - ASCII, UTF-8, UTF-16 (2 variants), UTF-32 (4 variants)
+ - Big5, GB2312, EUC-TW, HZ-GB-2312, ISO-2022-CN (Traditional and Simplified Chinese)
+ - EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP (Japanese)
+ - EUC-KR, ISO-2022-KR (Korean)
+ - KOI8-R, MacCyrillic, IBM855, IBM866, ISO-8859-5, windows-1251 (Cyrillic)
+ - ISO-8859-5, windows-1251 (Bulgarian)
+ - ISO-8859-1, windows-1252 (Western European languages)
+ - ISO-8859-7, windows-1253 (Greek)
+ - ISO-8859-8, windows-1255 (Visual and Logical Hebrew)
+ - TIS-620 (Thai)
+
+.. note::
+   Our ISO-8859-2 and windows-1250 (Hungarian) probers have been temporarily
+   disabled until we can retrain the models.
+
+Requires Python 2.6, 2.7, or 3.3+.
+
+Installation
+------------
+
+Install from `PyPI <https://pypi.python.org/pypi/chardet>`_::
+
+    pip install chardet
+
+Documentation
+-------------
+
+For users, docs are now available at https://chardet.readthedocs.io/.
+
+Command-line Tool
+-----------------
+
+chardet comes with a command-line script which reports on the encodings of one
+or more files::
+
+    % chardetect somefile someotherfile
+    somefile: windows-1252 with confidence 0.5
+    someotherfile: ascii with confidence 1.0
+
+About
+-----
+
+This is a continuation of Mark Pilgrim's excellent chardet. Previously, two
+versions needed to be maintained: one that supported python 2.x and one that
+supported python 3.x.  We've recently merged with `Ian Cordasco <https://github.com/sigmavirus24>`_'s
+`charade <https://github.com/sigmavirus24/charade>`_ fork, so now we have one
+coherent version that works for Python 2.6+.
+
+:maintainer: Dan Blanchard
+
+

+ 1 - 0
venv/lib/python3.7/site-packages/chardet-3.0.4.dist-info/INSTALLER

@@ -0,0 +1 @@
+pip

+ 96 - 0
venv/lib/python3.7/site-packages/chardet-3.0.4.dist-info/METADATA

@@ -0,0 +1,96 @@
+Metadata-Version: 2.0
+Name: chardet
+Version: 3.0.4
+Summary: Universal encoding detector for Python 2 and 3
+Home-page: https://github.com/chardet/chardet
+Author: Daniel Blanchard
+Author-email: dan.blanchard@gmail.com
+License: LGPL
+Keywords: encoding,i18n,xml
+Platform: UNKNOWN
+Classifier: Development Status :: 4 - Beta
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Classifier: Topic :: Text Processing :: Linguistic
+
+Chardet: The Universal Character Encoding Detector
+--------------------------------------------------
+
+.. image:: https://img.shields.io/travis/chardet/chardet/stable.svg
+   :alt: Build status
+   :target: https://travis-ci.org/chardet/chardet
+
+.. image:: https://img.shields.io/coveralls/chardet/chardet/stable.svg
+   :target: https://coveralls.io/r/chardet/chardet
+
+.. image:: https://img.shields.io/pypi/v/chardet.svg
+   :target: https://warehouse.python.org/project/chardet/
+   :alt: Latest version on PyPI
+
+.. image:: https://img.shields.io/pypi/l/chardet.svg
+   :alt: License
+
+
+Detects
+ - ASCII, UTF-8, UTF-16 (2 variants), UTF-32 (4 variants)
+ - Big5, GB2312, EUC-TW, HZ-GB-2312, ISO-2022-CN (Traditional and Simplified Chinese)
+ - EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP (Japanese)
+ - EUC-KR, ISO-2022-KR (Korean)
+ - KOI8-R, MacCyrillic, IBM855, IBM866, ISO-8859-5, windows-1251 (Cyrillic)
+ - ISO-8859-5, windows-1251 (Bulgarian)
+ - ISO-8859-1, windows-1252 (Western European languages)
+ - ISO-8859-7, windows-1253 (Greek)
+ - ISO-8859-8, windows-1255 (Visual and Logical Hebrew)
+ - TIS-620 (Thai)
+
+.. note::
+   Our ISO-8859-2 and windows-1250 (Hungarian) probers have been temporarily
+   disabled until we can retrain the models.
+
+Requires Python 2.6, 2.7, or 3.3+.
+
+Installation
+------------
+
+Install from `PyPI <https://pypi.python.org/pypi/chardet>`_::
+
+    pip install chardet
+
+Documentation
+-------------
+
+For users, docs are now available at https://chardet.readthedocs.io/.
+
+Command-line Tool
+-----------------
+
+chardet comes with a command-line script which reports on the encodings of one
+or more files::
+
+    % chardetect somefile someotherfile
+    somefile: windows-1252 with confidence 0.5
+    someotherfile: ascii with confidence 1.0
+
+About
+-----
+
+This is a continuation of Mark Pilgrim's excellent chardet. Previously, two
+versions needed to be maintained: one that supported python 2.x and one that
+supported python 3.x.  We've recently merged with `Ian Cordasco <https://github.com/sigmavirus24>`_'s
+`charade <https://github.com/sigmavirus24/charade>`_ fork, so now we have one
+coherent version that works for Python 2.6+.
+
+:maintainer: Dan Blanchard
+
+

+ 91 - 0
venv/lib/python3.7/site-packages/chardet-3.0.4.dist-info/RECORD

@@ -0,0 +1,91 @@
+../../../bin/chardetect,sha256=x7hXNI2IRLtM-HCwdzrg7eNDuOsU7-n2Sbl0rA1ZB5Y,266
+chardet-3.0.4.dist-info/DESCRIPTION.rst,sha256=PQ4sBsMyKFZkjC6QpmbpLn0UtCNyeb-ZqvCGEgyZMGk,2174
+chardet-3.0.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
+chardet-3.0.4.dist-info/METADATA,sha256=RV_2I4B1Z586DL8oVO5Kp7X5bUdQ5EuKAvNoAEF8wSw,3239
+chardet-3.0.4.dist-info/RECORD,,
+chardet-3.0.4.dist-info/WHEEL,sha256=o2k-Qa-RMNIJmUdIc7KU6VWR_ErNRbWNlxDIpl7lm34,110
+chardet-3.0.4.dist-info/entry_points.txt,sha256=fAMmhu5eJ-zAJ-smfqQwRClQ3-nozOCmvJ6-E8lgGJo,60
+chardet-3.0.4.dist-info/metadata.json,sha256=0htbRM18ujyGZDdfowgAqj6Hq2eQtwzwyhaEveKntgo,1375
+chardet-3.0.4.dist-info/top_level.txt,sha256=AowzBbZy4x8EirABDdJSLJZMkJ_53iIag8xfKR6D7kI,8
+chardet/__init__.py,sha256=YsP5wQlsHJ2auF1RZJfypiSrCA7_bQiRm3ES_NI76-Y,1559
+chardet/__pycache__/__init__.cpython-37.pyc,,
+chardet/__pycache__/big5freq.cpython-37.pyc,,
+chardet/__pycache__/big5prober.cpython-37.pyc,,
+chardet/__pycache__/chardistribution.cpython-37.pyc,,
+chardet/__pycache__/charsetgroupprober.cpython-37.pyc,,
+chardet/__pycache__/charsetprober.cpython-37.pyc,,
+chardet/__pycache__/codingstatemachine.cpython-37.pyc,,
+chardet/__pycache__/compat.cpython-37.pyc,,
+chardet/__pycache__/cp949prober.cpython-37.pyc,,
+chardet/__pycache__/enums.cpython-37.pyc,,
+chardet/__pycache__/escprober.cpython-37.pyc,,
+chardet/__pycache__/escsm.cpython-37.pyc,,
+chardet/__pycache__/eucjpprober.cpython-37.pyc,,
+chardet/__pycache__/euckrfreq.cpython-37.pyc,,
+chardet/__pycache__/euckrprober.cpython-37.pyc,,
+chardet/__pycache__/euctwfreq.cpython-37.pyc,,
+chardet/__pycache__/euctwprober.cpython-37.pyc,,
+chardet/__pycache__/gb2312freq.cpython-37.pyc,,
+chardet/__pycache__/gb2312prober.cpython-37.pyc,,
+chardet/__pycache__/hebrewprober.cpython-37.pyc,,
+chardet/__pycache__/jisfreq.cpython-37.pyc,,
+chardet/__pycache__/jpcntx.cpython-37.pyc,,
+chardet/__pycache__/langbulgarianmodel.cpython-37.pyc,,
+chardet/__pycache__/langcyrillicmodel.cpython-37.pyc,,
+chardet/__pycache__/langgreekmodel.cpython-37.pyc,,
+chardet/__pycache__/langhebrewmodel.cpython-37.pyc,,
+chardet/__pycache__/langhungarianmodel.cpython-37.pyc,,
+chardet/__pycache__/langthaimodel.cpython-37.pyc,,
+chardet/__pycache__/langturkishmodel.cpython-37.pyc,,
+chardet/__pycache__/latin1prober.cpython-37.pyc,,
+chardet/__pycache__/mbcharsetprober.cpython-37.pyc,,
+chardet/__pycache__/mbcsgroupprober.cpython-37.pyc,,
+chardet/__pycache__/mbcssm.cpython-37.pyc,,
+chardet/__pycache__/sbcharsetprober.cpython-37.pyc,,
+chardet/__pycache__/sbcsgroupprober.cpython-37.pyc,,
+chardet/__pycache__/sjisprober.cpython-37.pyc,,
+chardet/__pycache__/universaldetector.cpython-37.pyc,,
+chardet/__pycache__/utf8prober.cpython-37.pyc,,
+chardet/__pycache__/version.cpython-37.pyc,,
+chardet/big5freq.py,sha256=D_zK5GyzoVsRes0HkLJziltFQX0bKCLOrFe9_xDvO_8,31254
+chardet/big5prober.py,sha256=kBxHbdetBpPe7xrlb-e990iot64g_eGSLd32lB7_h3M,1757
+chardet/chardistribution.py,sha256=3woWS62KrGooKyqz4zQSnjFbJpa6V7g02daAibTwcl8,9411
+chardet/charsetgroupprober.py,sha256=6bDu8YIiRuScX4ca9Igb0U69TA2PGXXDej6Cc4_9kO4,3787
+chardet/charsetprober.py,sha256=KSmwJErjypyj0bRZmC5F5eM7c8YQgLYIjZXintZNstg,5110
+chardet/cli/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
+chardet/cli/__pycache__/__init__.cpython-37.pyc,,
+chardet/cli/__pycache__/chardetect.cpython-37.pyc,,
+chardet/cli/chardetect.py,sha256=YBO8L4mXo0WR6_-Fjh_8QxPBoEBNqB9oNxNrdc54AQs,2738
+chardet/codingstatemachine.py,sha256=VYp_6cyyki5sHgXDSZnXW4q1oelHc3cu9AyQTX7uug8,3590
+chardet/compat.py,sha256=PKTzHkSbtbHDqS9PyujMbX74q1a8mMpeQTDVsQhZMRw,1134
+chardet/cp949prober.py,sha256=TZ434QX8zzBsnUvL_8wm4AQVTZ2ZkqEEQL_lNw9f9ow,1855
+chardet/enums.py,sha256=Aimwdb9as1dJKZaFNUH2OhWIVBVd6ZkJJ_WK5sNY8cU,1661
+chardet/escprober.py,sha256=kkyqVg1Yw3DIOAMJ2bdlyQgUFQhuHAW8dUGskToNWSc,3950
+chardet/escsm.py,sha256=RuXlgNvTIDarndvllNCk5WZBIpdCxQ0kcd9EAuxUh84,10510
+chardet/eucjpprober.py,sha256=iD8Jdp0ISRjgjiVN7f0e8xGeQJ5GM2oeZ1dA8nbSeUw,3749
+chardet/euckrfreq.py,sha256=-7GdmvgWez4-eO4SuXpa7tBiDi5vRXQ8WvdFAzVaSfo,13546
+chardet/euckrprober.py,sha256=MqFMTQXxW4HbzIpZ9lKDHB3GN8SP4yiHenTmf8g_PxY,1748
+chardet/euctwfreq.py,sha256=No1WyduFOgB5VITUA7PLyC5oJRNzRyMbBxaKI1l16MA,31621
+chardet/euctwprober.py,sha256=13p6EP4yRaxqnP4iHtxHOJ6R2zxHq1_m8hTRjzVZ95c,1747
+chardet/gb2312freq.py,sha256=JX8lsweKLmnCwmk8UHEQsLgkr_rP_kEbvivC4qPOrlc,20715
+chardet/gb2312prober.py,sha256=gGvIWi9WhDjE-xQXHvNIyrnLvEbMAYgyUSZ65HUfylw,1754
+chardet/hebrewprober.py,sha256=c3SZ-K7hvyzGY6JRAZxJgwJ_sUS9k0WYkvMY00YBYFo,13838
+chardet/jisfreq.py,sha256=vpmJv2Bu0J8gnMVRPHMFefTRvo_ha1mryLig8CBwgOg,25777
+chardet/jpcntx.py,sha256=PYlNqRUQT8LM3cT5FmHGP0iiscFlTWED92MALvBungo,19643
+chardet/langbulgarianmodel.py,sha256=1HqQS9Pbtnj1xQgxitJMvw8X6kKr5OockNCZWfEQrPE,12839
+chardet/langcyrillicmodel.py,sha256=LODajvsetH87yYDDQKA2CULXUH87tI223dhfjh9Zx9c,17948
+chardet/langgreekmodel.py,sha256=8YAW7bU8YwSJap0kIJSbPMw1BEqzGjWzqcqf0WgUKAA,12688
+chardet/langhebrewmodel.py,sha256=JSnqmE5E62tDLTPTvLpQsg5gOMO4PbdWRvV7Avkc0HA,11345
+chardet/langhungarianmodel.py,sha256=RhapYSG5l0ZaO-VV4Fan5sW0WRGQqhwBM61yx3yxyOA,12592
+chardet/langthaimodel.py,sha256=8l0173Gu_W6G8mxmQOTEF4ls2YdE7FxWf3QkSxEGXJQ,11290
+chardet/langturkishmodel.py,sha256=W22eRNJsqI6uWAfwXSKVWWnCerYqrI8dZQTm_M0lRFk,11102
+chardet/latin1prober.py,sha256=S2IoORhFk39FEFOlSFWtgVybRiP6h7BlLldHVclNkU8,5370
+chardet/mbcharsetprober.py,sha256=AR95eFH9vuqSfvLQZN-L5ijea25NOBCoXqw8s5O9xLQ,3413
+chardet/mbcsgroupprober.py,sha256=h6TRnnYq2OxG1WdD5JOyxcdVpn7dG0q-vB8nWr5mbh4,2012
+chardet/mbcssm.py,sha256=SY32wVIF3HzcjY3BaEspy9metbNSKxIIB0RKPn7tjpI,25481
+chardet/sbcharsetprober.py,sha256=LDSpCldDCFlYwUkGkwD2oFxLlPWIWXT09akH_2PiY74,5657
+chardet/sbcsgroupprober.py,sha256=1IprcCB_k1qfmnxGC6MBbxELlKqD3scW6S8YIwdeyXA,3546
+chardet/sjisprober.py,sha256=IIt-lZj0WJqK4rmUZzKZP4GJlE8KUEtFYVuY96ek5MQ,3774
+chardet/universaldetector.py,sha256=qL0174lSZE442eB21nnktT9_VcAye07laFWUeUrjttY,12485
+chardet/utf8prober.py,sha256=IdD8v3zWOsB8OLiyPi-y_fqwipRFxV9Nc1eKBLSuIEw,2766
+chardet/version.py,sha256=sp3B08mrDXB-pf3K9fqJ_zeDHOCLC8RrngQyDFap_7g,242

+ 6 - 0
venv/lib/python3.7/site-packages/chardet-3.0.4.dist-info/WHEEL

@@ -0,0 +1,6 @@
+Wheel-Version: 1.0
+Generator: bdist_wheel (0.29.0)
+Root-Is-Purelib: true
+Tag: py2-none-any
+Tag: py3-none-any
+

+ 3 - 0
venv/lib/python3.7/site-packages/chardet-3.0.4.dist-info/entry_points.txt

@@ -0,0 +1,3 @@
+[console_scripts]
+chardetect = chardet.cli.chardetect:main
+

File diff suppressed because it is too large
+ 1 - 0
venv/lib/python3.7/site-packages/chardet-3.0.4.dist-info/metadata.json


+ 1 - 0
venv/lib/python3.7/site-packages/chardet-3.0.4.dist-info/top_level.txt

@@ -0,0 +1 @@
+chardet

+ 39 - 0
venv/lib/python3.7/site-packages/chardet/__init__.py

@@ -0,0 +1,39 @@
+######################## BEGIN LICENSE BLOCK ########################
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+# 02110-1301  USA
+######################### END LICENSE BLOCK #########################
+
+
+from .compat import PY2, PY3
+from .universaldetector import UniversalDetector
+from .version import __version__, VERSION
+
+
+def detect(byte_str):
+    """
+    Detect the encoding of the given byte string.
+
+    :param byte_str:     The byte sequence to examine.
+    :type byte_str:      ``bytes`` or ``bytearray``
+    """
+    if not isinstance(byte_str, bytearray):
+        if not isinstance(byte_str, bytes):
+            raise TypeError('Expected object of type bytes or bytearray, got: '
+                            '{0}'.format(type(byte_str)))
+        else:
+            byte_str = bytearray(byte_str)
+    detector = UniversalDetector()
+    detector.feed(byte_str)
+    return detector.close()

BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/__init__.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/big5freq.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/big5prober.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/chardistribution.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/charsetgroupprober.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/charsetprober.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/codingstatemachine.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/compat.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/cp949prober.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/enums.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/escprober.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/escsm.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/eucjpprober.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/euckrfreq.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/euckrprober.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/euctwfreq.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/euctwprober.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/gb2312freq.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/gb2312prober.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/hebrewprober.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/jisfreq.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/jpcntx.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/langbulgarianmodel.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/langcyrillicmodel.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/langgreekmodel.cpython-37.pyc


BIN
venv/lib/python3.7/site-packages/chardet/__pycache__/langhebrewmodel.cpython-37.pyc


+ 0 - 0
venv/lib/python3.7/site-packages/chardet/__pycache__/langhungarianmodel.cpython-37.pyc


Some files were not shown because too many files changed in this diff