From 087558904b352a63223ede6ca12fad60414726ee Mon Sep 17 00:00:00 2001 From: Matthias Neeracher Date: Wed, 30 Dec 2020 06:14:25 +0100 Subject: [PATCH] Design and implement discs --- Designs.ezdraw | 1296 ++++++++++++++++++++++++++++++++++++++++++++++++ honeyrack.py | 93 ++++ 2 files changed, 1389 insertions(+) create mode 100644 Designs.ezdraw create mode 100755 honeyrack.py diff --git a/Designs.ezdraw b/Designs.ezdraw new file mode 100644 index 0000000..7afae81 --- /dev/null +++ b/Designs.ezdraw @@ -0,0 +1,1296 @@ + + + + + AAAA_CurrentOSXVersion + macOS Big Sur: 1775.104000 + AAAA_DKDDocumentVersion + 9.0.0 : Mobile Friendly + AAAA_EazyDrawVersion + 10.2.4 + AAAB_Build + 4006 + AAAB_Distribution + App Store + AAA_DKDQuicklookData + + JVBERi0xLjMKJcTl8uXrp/Og0MTGCjMgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNv + ZGUgL0xlbmd0aCAxMjc1ID4+CnN0cmVhbQp4AZWWS29URxCF9/dX9NImoumq6ueCTVAU + CZQFYnbAIjIhEJkFGIm/n6/6zr0zhgGBvZhxu6vq1OOc6o/hefgYUqzhfXj05E7CzV2Q + cHcTEr+ljNBTDZ/+CW+Dhqd+Q8OTF/OfKbx4gqnMPx76B1eXmw+haVCpQXIOJbvtixnj + /sXARW5FraPOL1yXwFnv69mQmK1mXW6DWYnJShDp8yzcBq02jzRbnJa34d1Ff5diO0ji + BBs59mQeFbzaUkyj2PSusVXAu/vjmVlez6y2aTUj9r6cvFyK5XnacC/ScKdxaPU8/UyS + EUIFvyrByLyPkhdNtCO1zEmKrRcS7xJT6SPcBGsa66DEUiWWJNyq3OJTwFpqs2C5xJYT + ZtpjJciCmbkroytisVodwURjz4NbSWItBjog6dDAR+GgEk2b4YrS9xJzKdkWLRpL7y0A + SXMrQY1G8W0elCEOUiXRxHS6JH2Qbd3dgH7EUlpZzoJJSScwYhpTZf52wCINHxRhS4tA + kjSKeYWOyS8jRSmqJLrVp7sj80RPVSQtKk3r91qDp+Waxt6PxU9Ka5xsXbsJp1s109Kk + 4eSJEmnOEGaLZ4mJGZYp/47KNEcrhNmRG961g25Lz0rD0azjXgTvugqz4TWynqOM7imu + RWSY3AdNpSLHSmeGyAZHey8ycGrKfe/Y4idlGJwPe1tPt7bWnzwd5+Ms2jZEy45pH7QN + 8mkczxLbZnZLfp/qrT44PM7+VkVAbgyBvMdan1i09eMbrlH9dxcZ6GxNq9K9/0bHnLa/ + Hxi1o7rBtwKrtKNtjFpX6cvhQ3h0OAgKeHgbrr48/uvvz789uw6H/8IfB/e9aaq6pqY4 + SJofvglshSDQCp199OedLP/eMYkSR6ar0CLqZK+Hn9L7MmR+X4PlzUWkQrEQX8bZtSDX + tnyY054NP6oNgnZkbc3YhX2Nq4G4blsrFEICYkMGMG09pgZdC0pC/QsaLB1VyDqPlLl3 + 9XNClSYWSq8x9e5KKj6ctXIRJ0WTx3V/dUANP6tqhr/L1m+9LiV8CS9/nOwErNVXhXmu + G2DPvw6SOQGeJRkO4yykyogDxp0DnnVqwxfODtjPrNX2XWsv6bY2vztMvm/uD1Nzhe6V + 5pRKWdHae8P0Mly9efzpmlEIVw+/PKAkD+4+fvr86speXV8vr8Ph6Tpi4pU6m4115L7e + yT7L7MioWgQ5QMlpkmfOILNgWTgua6RJlt9bYQCuje00xVAyPWJppsF6Kc4IdkKiv7fL + sR7ryE/uMGr0CTX25wBbu7fWMXaHvUKBUqkA3CD4DALPOJMoKuucqAujaZvWmbJtoROO + ig88W4IXgaNx4XeHLCXf4/4kWI0XD300/pkh2yF7bqKqZ5AXtRFzqvkcMtJPauzF86hr + ZdDWc8gKqdD3M8jTYas/MPayft3sS21ulQdSa+3osXqtxNjh2mg9sHltOGz3R4oDnfG6 + Vu9P9RSxhxaw1/9beQzcLn5WDeGbJRw4mlTKvv8z3Me6FxThGKmwT4qrcaYXUMmjJz9i + V0luK/UvGP9kV1bInkpn58D9HbKiX8mm4OyQ18lUnw/Yv0V1a8lowhlkOsKToGVn/xGy + Gpn3+SC8bHwc9vlm/hXyQwJmn9VsndpQr3vkv7p5HMurqzcPn0H2fZvQ/eXnqG4wHIby + woDyabjG+RuNrjpT0TOWAVk6+Of/A3jwb08KZW5kc3RyZWFtCmVuZG9iagoxIDAgb2Jq + Cjw8IC9UeXBlIC9QYWdlIC9QYXJlbnQgMiAwIFIgL1Jlc291cmNlcyA0IDAgUiAvQ29u + dGVudHMgMyAwIFIgL01lZGlhQm94IFswIDAgNTU5IDgwNl0KPj4KZW5kb2JqCjQgMCBv + YmoKPDwgL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gL0NvbG9yU3BhY2UgPDwgL0NzMSA1 + IDAgUiAvQ3MyIDYgMCBSID4+IC9FeHRHU3RhdGUKPDwgL0dzMSA4IDAgUiAvR3MyIDkg + MCBSID4+IC9Gb250IDw8IC9UVDEgNyAwIFIgPj4gPj4KZW5kb2JqCjggMCBvYmoKPDwg + L1R5cGUgL0V4dEdTdGF0ZSAvY2EgMC44OTkgPj4KZW5kb2JqCjkgMCBvYmoKPDwgL1R5 + cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PgplbmRvYmoKMTAgMCBvYmoKPDwgL04gMSAvQWx0 + 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 + kh2S5cltKZopM1IaUl6lhqSuSe2aNmHagmkX00zSxGnN6fT0lPT69MHpodPXT++Z4TGj + csbNmfYzi2demGUyK3fW8dmas3mzD2dQM1Iz9ma848Xy6niDc7hztswZ4AfzN/CfCoIE + 6wR9Qn/hGuHjTP/MNZm9Wf5Za7P6RIGiGlG/OFi8Wfw8OyJ7e/arnNic3TkfclNzD+Qx + 8jLyWiQ6khzJ2Xzz/OL8q1InaaW0a67v3PVzB2RRsvoCrGBmQXOhHvxT2iF3kH8u7y4K + KKotej0vZd7hYu1iSXFHiWPJspLHpWGlX88n5vPnt5VZli0p617AWbBjIbZwzsK2RdaL + Khb1LA5fvGeJ6pKcJT+Vs8vXlP/5WepnrRVmFYsrHn0e/vm+SmalrPLWUr+l278gvhB/ + cWnZxGWblr2vElT9WM2urql+t5y//Mcv3b7c+OWHFZkrLq30XLltFW2VZNXN1YGr96zR + XlO65tHaqWub1rHWVa37c/3s9RdqJtVs36C6Qb6ha2P0xuZNNptWbXq3WbS5s3ZK7YEt + pluWbXm1VbD12ragbY3bzbZXb3/7lfir2zvCdzTV2dXV7KTtLNr5666UXe1fe3/dUG9S + X13/127J7q49CXvONng1NOw13btyH2WffF/f/hn7r3wT8k1zo0vjjgMGB6oPooPyg0++ + zfj25qGoQ22HvQ83fmf73ZYjukeqmrCmkqaBo6KjXc1pzVdbIlvaWv1aj3zv+v3uY5bH + ao/rH195QvVExYkPJ0tPDp6Snuo/nXX6Udvstntnpp25cTb+7KVzUefO/xD2w5l2TvvJ + 8/7nj13wvdDyo/ePRy96Xmzq8Og48pPHT0cueV5quux1ufmKz5XWq5OvnrgWeO309ZDr + P9zg3rjYGdN59Wbyzdu3Ztzqui243Xsn987zu0V3h+4thot91QOtBzUPTR/W/Wv8vw50 + eXYd7w7p7vg58ed7j/iPnv5S8Mu7nopfNX6teWzxuKHXvfdYX1jflSfTn/Q8lT4d6q/8 + Tfu3Lc8cnn33e9DvHQPTBnqey55/+GP5C+MXu/+c9GfbYNzgw5d5L4deVb02fr3njfeb + 9repbx8PzXtHf7fxr/F/tb6Pen//Q96HD/8GCQ/4YgplbmRzdHJlYW0KZW5kb2JqCjUg + MCBvYmoKWyAvSUNDQmFzZWQgMTAgMCBSIF0KZW5kb2JqCjExIDAgb2JqCjw8IC9OIDMg + L0FsdGVybmF0ZSAvRGV2aWNlUkdCIC9MZW5ndGggMzM2IC9GaWx0ZXIgL0ZsYXRlRGVj + b2RlID4+CnN0cmVhbQp4AWNgYFJJLCjIYWFgYMjNKykKcndSiIiMUmB/yMAOhLwMYgwK + icnFBY4BAT5AJQwwGsRGgG/XGBhBvMu6ILNOSU1tUq0X8LWYKXz14ivRJoQ6rCyulNTi + ZKDMHyBOTS4oKmFgYEwBspXLSwpA7A4gW6QI6Cggew6InQ5hbwCxkyDsI2A1IUHOQDU3 + gGyF5IxEoBmMP4BsnSQk8XQkNtReoBIGbpfM4oKcxEqFAGMQl7qgJLUC6A8GBuf8gsqi + zPSMEgVHYCilKnjmJevpKBgZGJozMIDCHGLr50BwWDKKnUGINd9nYLDd/////90IMa/9 + DAwbgTq5diLENCwYGAS5GRhO7CxILEoEm8cMJJnS0hgYPi1nYOCNZGAQvgDUE12cZmwE + lmfkcWJgYL33//9nNQYG9skMDH8n/P//e9H//38XMzAw32FgOJAHABUhZe4KZW5kc3Ry + ZWFtCmVuZG9iago2IDAgb2JqClsgL0lDQ0Jhc2VkIDExIDAgUiBdCmVuZG9iagoyIDAg + b2JqCjw8IC9UeXBlIC9QYWdlcyAvTWVkaWFCb3ggWzAgMCA1NTkgODA2XSAvQ291bnQg + MSAvS2lkcyBbIDEgMCBSIF0gPj4KZW5kb2JqCjEyIDAgb2JqCjw8IC9UeXBlIC9DYXRh + bG9nIC9QYWdlcyAyIDAgUiAvVmVyc2lvbiAvMS40ID4+CmVuZG9iago3IDAgb2JqCjw8 + IC9UeXBlIC9Gb250IC9TdWJ0eXBlIC9UcnVlVHlwZSAvQmFzZUZvbnQgL0FBQUFBQitB + dmVuaXItQm9vayAvRm9udERlc2NyaXB0b3IKMTMgMCBSIC9FbmNvZGluZyAvTWFjUm9t + YW5FbmNvZGluZyAvRmlyc3RDaGFyIDQwIC9MYXN0Q2hhciAxMTkgL1dpZHRocyBbIDI2 + MAoyNjAgNDQ0IDY2NiAwIDMzMyAyNzggMCAwIDAgNTU2IDU1NiAwIDU1NiAwIDAgMCAw + IDAgMCAwIDY2NiAwIDAgMCAwIDAgMCAwCjAgMCAwIDAgMCAwIDYzMCAwIDg5MCAwIDAg + MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDUxOSAwIDQ4MiA2MTEKMCAw + IDAgMCAwIDAgMCAwIDAgMCAwIDAgNjExIDMzMiA0MjYgMzMyIDAgMCA3MjIgXSA+Pgpl + bmRvYmoKMTMgMCBvYmoKPDwgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9Gb250TmFtZSAv + QUFBQUFCK0F2ZW5pci1Cb29rIC9GbGFncyAzMiAvRm9udEJCb3gKWy0xNjcgLTI4OCAx + MDAwIDk0MF0gL0l0YWxpY0FuZ2xlIDAgL0FzY2VudCAxMDAwIC9EZXNjZW50IC0zNjYg + L0NhcEhlaWdodAo3MDggL1N0ZW1WIDcyIC9YSGVpZ2h0IDQ2OCAvU3RlbUggNjYgL0F2 + Z1dpZHRoIDUyNyAvTWF4V2lkdGggMTAwMCAvRm9udEZpbGUyCjE0IDAgUiA+PgplbmRv + YmoKMTQgMCBvYmoKPDwgL0xlbmd0aDEgMTQ2MjggL0xlbmd0aCA3NTkzIC9GaWx0ZXIg + L0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4AZ1bC3RV1Zne+5yc3Ny8L3mTkNybmyfkffMg + CiEJCQ9ByIBIYkWwCIJVAwoCVkfWlNbKtKNtFaXTVldbKNhZy8xq1RA7SlcVxXEqrSCC + aUVbnroKq9X6KCbzff8+O+Cjs2YV3ezv/Gc///2/9n8u625Zv0Ilq83KVe3Lb7p2jZI/ + XiaqweW3rQubZ3cK6vDKNdff5D9frZT+4vU3blppnr0PlGr4xaoV115nntV51M2rQDDP + uhF1yaqb1m00z3F7UV9xY/9y/733Ep6rbrp2oz+/GsZz+OZrb1qBGn9a+VfJmv5b1xEo + Nfnn+GvumltW+O11L9bzlry6+C+Nhyw1WcUJkU9KJSrlqOCOMYpWnfNGElcvTZvynspz + T5F+R+kPZdxDGx44Ndo3csw95f4HyEF0NH8wkntq5Nv8e7RvtA+9zNj+a1RZg0pNUkOg + O8qZpIfAXpfgaVQzVYdqUqUqVyVMehpru/wTz5664qJn9TSGuJjwNAa8Ws1Qzf4AmCNe + eSowCROGu+9cnds1pJapBKVvHVJ3YbOsH/brZ/z6Db8e9esi1uuG1DS/XurX9/r1Y379 + sl+f9es01uuHVK1fz/frfr9+DILF+c/6dRFrzFPr10v9+l6/ftivn/Hrl/161K/TWMt8 + pp7mP8/3636/Pssa80g/zC/9UL/h09NVqqyr3a97/Poxvz7r17WshS+oMe+oT+8XOk9Z + daopap6ahVqpcaMFKlkfVOOcZ1HeVck4kqo5gyrY0/ufWv9b36Ae/eqg6pqwB5LkLr2m + elDpqnC4e3XXgF6GB6cKhIkRILcqPGPALZ2xoDfaF94a3jr7uq3hGeFV1143EFcqNV6s + 2NpXGx5QC3tX4+8reiMD7X35Y3BFX98lGCeO46ALmm/twwg3+COgFlLtx2jkVc0JD7hl + Pb3/1DuwuSt/oL2rLz8SCXcP7O3pHdjblR/p60Or+LGVYsWUMrPmANYcPxHvE8woCzEG + hujbupVjLuyNRgb2bt2avxX78J8Htfo0od0nYOPogo13D+rNPeiLKhrJJyEaiUawrL4u + TBWsmrOwtxsLi/RVU5dRblPL3NvVMieg6vQvVBEsQZ2zXFU431XznCrQLldlOk41oyTo + bLVI6Hiv56o5+lEVQZ2KdmVs6/wWhwtjgv/4Jxna9SjqCtUDoU6CtqbgKQi6+ZOhxgEk + +E+2CljwOTXHtXbkc15/guTiycMK/t6fVIh2ugrJa1pspW5wlPuONxzYGHw08XxSY/IP + kvelDKRuSX0nbXL6gvTzGVMyM7NvyHkn7xpjE2Gcfg2LFFXlsFazB1VV7aCqRqlKH1Rl + B1Bq96hsFXceVFBKh/eoAjypp9BHqxIVN+kpmCGt8gTFCdfiJtXVtzTFsmp1Y0ubbmlz + mxrLosXxgfI2HWvIzsqMD+C/rJxQJKRRfj+5yUkJZIfSMxPjqouKquMbApc1N8/IKyuN + j39m5Dr96xG1fvr09aHJeSkTQmk5GaFgSX1VLGFWx8wp4aZoJCOzcdBZ/fGDzvc+bsBO + NEyfcm6H/qU6fxpUydhJYLjDVdNVQOklAD+zYNSC71iwxoJ2grUQRuzfrUWnhdztkg5P + /QjgZygOh3reUF3VR7AWlIcMJQiz4IItLoy8q7pR4tai8ysAf0CRzl8BkAWdswC+RGaN + G0bb5TidW1HQ1sNocRgND5zjQwDp2ExASrcFmIeUNPjyOHUfyiMoAyh7UQ6gHEMJLAFb + 0vdQknGoARxqPBn0FoQMwwYwczxmjldfQXG5zV+ZN676iwUuwVq0vQ/gEZQBFGl7gG+W + DEFkk1R8aFwrus/AAxp7UCAPjtjjLjx1N8CDfOAMOwFkS48LGFRJWFXqAbwpgnDLHgcI + lijY0+5evKvN3wMlTW7r8wkuCe5FhCQSsIaxFgESAiQMQUlclYTVoTPkI8jtd0Oj9Vou + HLptFl7OxZC/T9rl+VtxcSD+qwz62bV19RrNjkKpZRfvWPA/Fjxrz/hZHIC0OW7HfN6C + BDvmfo5JtgwLUODWIQx0HEW49ZztMTbGEWmYcanWsaCO6kk6FA3Fdumgvvz6kX/Xm24Y + +XGSnjVLf0vHRp4ZuVPfNPId6ActHHTFHU9dcb8/BOYkKHcS5p3P4bjx+aIH5FeCCgi/ + KC4u+XXM7mizBT0WDAjYg51SwDRbT6Nd4JaWWrDHgiMC4D4wcjLbPkMXzbbiwwnutZSl + AqzoprL1q3TEbPSEBQstqLMgDTZS9rOUwAztAyNW6H6XyBfAwxYcsKD9/xa9BApWghWs + VJVgpOcWMphzvWLBIgM8BG4KWgEzRd2eDrCQD2T4zwCk0zEL9gqAxIM9+oBhU9wBymmC + SjUzvWTkwVPfAPgeikjJlw3VVT+1YNjXzSD4IotkjyB6IKrlSl4CGDYPrvoygKzkpwLM + xElUyV5hhxH5J+0yV9vj3G6Ap3jA+1FkMaft60ct2CKLwawHAf6IIktYAbDePATUDoDH + UZ5DEeOyjeK4pCOIsw6ofSivopxAiSOfrweQFf/EglWUY77aZcF2A4JYXQJWl6CoOadR + ZITdZs8e3gTxRtgSUDcA3I6yFUWW8RSADPu2BTuspK20YJsF+yw4YcFiAQrLesRy71sW + HLTgCQtOCCjNiEGlo9Bt/B2K6f86e/MsZ1SVjSpn1s1bnPaPpzjXffw9KVBsR9WNvquf + 1sdwUo1uz5AqRLzt4npQC7PvQSsx9yiIsokiAvi6QrwbpzxobDrErBbiloM6h97vrMpB + 20E1DsQoRaAOfk06vwFZFjAqwJrnPKpEnkocM74TSZh4kTWOkhA1StOIphPFujTWQiAO + qEZYl0YIxB7s3cGCJmJpiYLygDKBhhCS2E7ZZonZXIiHpWWrdhQHTqgMUzZSRzz1Oh7e + RnGWGMFdb4yVpw4DnEQR8XsckvMcisjsX60YxRPQZx1G5HcSRV5/XWWYrX8V3kCmfhzg + ORQZahvATvPgQkaliYsRfPAXLFEYt5CAqv+cocBlAfC/MpRmlBkonpk+G9Nza2j+mpwJ + FrVN5WOifEPdieBMhn3QgsNwu0I5oqoNOGNBBZiFqQPqHoDtKLtRRMLzzBsX99N626Qe + TerRpN40qTRvPBx5g3oBBasKqEqAVpTZKO5ayvhGw2hXnbLgiAVjDD4Knsoa37ZgjLnv + WYY9ZICHjWdhLOGyCzX2+bkYfJEzOgJw2jLpVcMkF5GGz5fXLDtOG+BBz6vRodrw72vc + FdmbY7f3BHayD0WYng2g15YWpzpZmYVOrKHNmeo2RosD5c2xhkJngs7MzonW6KZoqo4W + 1zhNjW1OTC/Im9NdnxEuzyxpKgltXDC1onNL8bSaAs9td11nwvzWokuq8y/tWzHxtJdR + Ec2JZAVzK1uKipuTN7XUdmVWtk36Tf6lGaGKjNrKUDRW3NoRxkVDqyK9TH9fYtwReudk + 0W4F9XSGcQp1sADtKD0oLiVnDcBmFNnEOXGijAEHVSJDzbugXPdSwXiCTADwEs8EgIt4 + yOULo0OX4mEOingq6g1tAidFwOriZs3IBpdJPjTQ51Cq/2ydT4mlPGwpv7Ngun21wALY + IdOddx9GZfFYszLe7ggeOE8iJk4YhjPogflehrIGZTOKmHISadUk9p9oFNhFSsp3EVOt + SqcBFKHInuYaqqu+YMFvCSgP9wkYgsH32eGq31nrv92CRgLu+pyNM5b+3dABCyPnA+C8 + b28k2OJcD/pzKTgKE3UpYxcV7CIsIjbPSEAjdMVxMxhF3MlptxNwhNstaLGv3rMUXCJM + Y6OG5gLg0ajPHOO1mRak7wqvAb5sgeE+KItIAYMdShFXgzoJNeUh+YCNDvz1PGS601jE + w1jQ2dM27LKLesGCIQu2mx4B3LzjJb/1ImrYpgAsUCLUPhE+GgK6JKMlJ5ATKA+Ut5S3 + 5DTFzn8j65tX1V19dd1V38z6xhSnqXpy9aaSO+4o2QRwL/SmbvQv+hX9poq47w+pCFyI + xLv9ANwLvQvkh+6xH2+Fp2kW3EcA1kewwdABLKRfRXGAURxg1JjEswDC/qUEPJDHLGW+ + Beyg11o/WUgvWHiRn8wkIdPGkoUqU9wijj+gwjj6OpR2FBfroL+GLsI9ZgLBKcEppqNv + oXRJp8RMA2E+inV6NBWywL9Z8I4F/QRc8i4boDFxKY3PWPC6BWfMKTGQ9eR6J3blJ5Qf + St9Oc3YuAjgkB0lpwk1MwAwLdlqwy6oKc3T+fD74SJQH+3gd4G3ZB8bqJ5Ur/RWyHujg + IQoMwcOGaL88SHFILeaDaTLOjHkFQhvpdIKASzpFh0HAUELARxYkErD7ZQZ46kX4g6Mo + ss/Zarx5/SG8rixgCOBF64ITSWVvJkpk4CMWfGhBIoGZwQdX4nyF8jwB1/UrkTeAxVYC + j1pKmvLlq18AVYmhknR7zR7SZ0Pu3faAdtkDmmlPYadl/gkLThrmu0hs+vyeDa5iiR44 + EVJnyGIuM9lQebOT17wf+Lw+Y3jtiT/+ELyUDmP8ftKwz1XvWzDDsuVJy6jDFrxvgIcw + KYzbcNiMNca1hZZHz1keHbfAs68OC0XX6GiZ8d8tDc0tOak6EG9cdU6hztHfD00tr+yo + yc2t6agsnxpqjvbWtV7dUVzccXVrXW9UrxxfogsauisquhsKdMn4yspyrUs7v9DU9IXO + Uq3LK2GdVcXou04+cr8ZqsYJD0EjI+KdI9BSBeNi9BUJBCAazizYk2oTVNeaI3yD0Rd5 + u9SGYc8IxVqNMhqJsousRjUJ1Sp1LNwuIKHgonA7i4QsQyjAQnBHxPRlQGl+NF2gyuhf + g6IPL+KwjqKcQYlDID0J0xWY14/j4TmUQyjHUeIkoPbUA9j5DhRRwgdgmXbQOlEjmwFm + 2Ift8G27jcfz4K8S8JBgmm2HKO1G8QcIYQBfpZsBZtiHByBUO1BEloJqgtGaoFxiMFkr + wGwUqD+voEVwE0W2bZFp+wGVhgvjBWQ/ij+Ur1OtfE3dnIXspoA9BDyPDy0I2letFnyg + Sk2bIAEiX+4uBRvybwuTqR0c4xK75BewML2kxY8jmxprnCjiSh1F9OiORY+IKnNiodia + PIgjZY6yB/HM0z/tdNKr6mI5LRA8CGBLTqyuKt3pPFPe1TBhQkNXuV+PnJ2XW5ydWNp5 + VVPTVZ2lidnFufpmnNI8tc+Zq5mtDDDnmyChBJz4MOI3yCSdejxqOvXgMOQugAYuXkq8 + cQ4D0BOOpQ7PiT2Bz8+KNJWiOHNHHD2C4kyZsm3KFFgk3kfPIF4tda4dglMYJxrB62QJ + ZilBhlmLZpSAEgUlCopjHPEy60M2W9AugLfRPdAxKlQiUL6PkKLGAKW8Ew7ImVitKaUK + lF6UIUwjIc3oRClGgAGFC/XQJk1cqFfLaMSTJ4z2B9n1EKZMU540yOAkx+QaOKjSMALc + BlbjAcGGY6yo35sbMhHRIfBbxOBKC5jGEMpY+uJJS3mcMSwF9UqAlUZPXFxGhOqqn0NZ + pOciAzy8SoYzFBVigOZfqlZasM+Cr1thvEUWj10csveokxbMxt1PRr/Egl2MkijCQQmX + AHZTlkmh1gm4zIJTqhgUeibeqfGOuwhgF36wO2QXf49dy0azFt6ys3DN9S94HmenNs60 + y9hhlxFvl/GoXcZJmVRHAvzOUIg7Wip0qqy8pRCPbbiOUcXiAxkR/ZuR38fl1OU2LLg0 + UtK+ODb9xgkzM2fVFl8yKW98TXtZ2ZzigF7t/MuhYELx1IX1sUVTi9vbiibW5028JFLa + Vp2bNU73Q2DL1Mu6XIegQ824AkFBqD0KxRuGEYWKmOByLPU5TQQIWzkmoK6+NNIU0eUj + o1q/3InWzaPL1HnnmArp7zDBjYaSwKQhI+CXSob+uLIxSelHVryuCX8E8CzO+uqh6FNa + Jaxj9pA2X1wOVCwJiwwdgGKEsOokXzSPYwk4pzR1G8DXULah7ER5AmUfyqsoAc5wJYDM + SXsvx37cgm0GMCp00A7ugGdH6y8dZlAWSNlhhXibAR5mSRDRFvM/Aw8Ueum9w1yvAlhY + EAsLYmGSiGMaMIg+QawsiAAwyJsfZw6iL3J3nOeE4RNtfTJsPVWDMrmBO+BWZtoFsbtP + 8e9wBy2LjwvISHV5588J4H7f2NxyPlxfHAqF64qapl82e5bzdGzZ8hva2lYtu6ax4ppT + t68780UwHpMk4Ex/LWe6+pNnypS4n7g+ZsFmAZQhrGy2nBwAY35a2wtHyCtWIk93NleG + ewsJIXbqpjKBkMTDTcLhhuRwmeHR8EcaGgupJJf2AxxBEd/XByDH8tmYf+xK2ceTJUsf + NUfMj17+YdKNC+/6CEwboQTVJrD1HhRekZldxQkFMLfJrp5GLemmPgB/fgCey2l7bk/g + zGjWZJ1XAqAdhSUdVF5seJonuXz2OsVxluTwe2ONQ7Xnp8aET5zUP3/eQWm1aPQj9UtY + pyT1Q16ScNXkd5AeYT3AOQP4bQjMRoFwJSEnoCSFO4B6L8oBFI8b7McAd6Hcy4G4sLMA + ssKzxgR7aJKCJhIceHBUKRjAf2gH6JEH67n8b1vyKSs4jE+rmfEwa5BCfEz9ZWFubiFL + XVYkkoWCNYAd8/AVe65Tg/3czBSOv59R6iFEyYW8qAOmdmAL4vEc8OsgBWsa5of1Jitc + wwrzkdJ0iUNTDsEIgaIX9OskrE3HsqJZiGGaYk0x/aU335yC//Xl/PtNiY1Hjjn5yEsj + NtYD/0hs3I5MtojKWJBsYmMsup1BMqUvLADcy4IGyOfCvxcxX0hQX4iY//HgmOZmEs85 + AKd3IUp2/QiZtnEnTSL17xNB8TZweSeKvPl/RsgXRZcc7aIIeRsedqLIaNsQa+204TID + Y9GfTwTGrQxETbh8UTzsB72MqEtgaEog8p+NVUOfiVWb/vFY9eOX9c2fDlbnQZbnQKAX + QWZydAK/RzDMoiOLg9TlQPpSaPioPaJgb9joIM1GB49ZymYBVqn878MXJCCO4WDcRbeq + bBKyTS4mHpqUzQsQz9jX5VcEwM7Ct+KKfN5EeLOsMZwsxggd/gr2y9riCSigsyyl1YJ4 + Bj+SL6frk9ZNtv9MAzxkUcbBwvPqk9FYVh7LirW5sYacAH5agftsKDrf1R1OYHxpfVFB + VkpKXllzSahTdxa1xxZnRAtC8R3ehOrG3JEPxD5EEI//K3ha7/6JeZdKo+RhAFlgOwEN + V49QBlUl9uhnxh5BexqRSvB+7AvRUiba4XgYBYclEk/D63ocUT0DmXbmzTneNBUz4A0D + grjjxmAMYzCGMdjLGDyEPaEa8r/mogP5ZHKs5kJyjBNASDB/DeaHHiH2TkJXkz1LQhyf + i2t4jQTtuUyMDYCwF4XxFLNn+HoCieKPDkooTe/yVud/KCqTkUF8ioCqy98lMm8mLqmX + vofOYBPAPSjWy+4BhjNwcYcW7+Sp/wZgCk30cgME9m6x8hhxPRz/V1HkDb9j86OhDP9H + OnSOcsgAD79FCOF3J37y5XkjP/woki0ZLel0iofBlb6CLf5BtokR9lk9eNKC40xkcfAn + LHjVgsMSSePVLgtmEVB4t1vKaQP4m45yiHS5WfEZABl0sqoy4CDNMac5aUGT+bjiIgKp + xytelsNgaB2ZyinGvipvBEW6vmbBRsvNhwB2GW4GkFLWYIEGCyS8ceUkpCOPQcBVBCZ2 + MEHjp4+BUaFEZORxKnjsH8F+KjeXj2jKAl+h91v1PcKrH9swYeID/wyeALfJejmZExf4 + 67Pe3JPAALJ1N4q0m03WkhNHP4fH/GRVjgjJZ3iz5fNxy95XLTgk7MXgpQBkurOW6S/5 + fJVdpBkffeqGVFaraxA94btVQ3aObk9rKAnBdtTUTK/vKIp1FjcvibRmTp2YWVGU0Vja + nlxZXjChvi1Sf0WOXjGhOCE0PiNSmJSeNL2hrCWaXtlQHi4LZhRmRouCaW5qQXWkpLk4 + VFbDk1SpsD9tTq8ar695Co8ezF8cI65z9rjYSI6rB2AZivBlr7welLyERMkUGeF3OoFE + vgx8MdLDsADy5py5V7poQBsLbvQALEPxh+Rn3EGVAeXPRGDDOht2i6mPPMZCd9kU5DIB + EINcG1Z85jN3Ck1Wikkp8GMClg27kgKEay8QB83A4Hmos+UjiSf5Vf6kQlaz0Qrbagvu + saCPAC4iAG+fiFtOIm45/EQHAlO0HGIVikT3mwDY0VmC3wtIhgmZTgSNSHSGJDTLiulL + 7k4cl5cWKklzSxszKouzly/vvFs/NPLO+Mi4QGLC1FBiQV25Lp+yZQsYix8avKtPOgdU + S1xoCLpaAX8xqMLYRRZ2kwWfHA+jD2b128+r8y14TMCgqkDjFDROQeNkOPAh1YI3YbHJ + LbDQ4/FsnirALjgksCsMVI+BrUdIJ3vTL0rh+Dkd+U2XxptSGY4fxtLRFZcBTJM8Rudv + ATXozaBjrYkEVDKhIMsJlVTNGGEI05eqdBmrkrK0TNwhskroDKPme/pD8sETr7F3M9BB + CLLI3NjdMRuzyBwnCWgh1lu5vNsAan4qNN+3Nh5NChd1vbUtWUZsmTvJwBU4A1fgDHOr + MEEDBHolvNttKCJCrxjrzwSQb4ICAPxPbOtYQiUHjkHU4RDSJ8dR0JtJmgkYTh7odPy0 + zm0WyLcIbuM3xjC5aAxTRcoJC+IJuIXFlrLBgsUKuVU23mDBKaRRhEJ7JuB1C16ABxdK + AgEH3M/gn91fQKDgg0YDPsAPRky+6TV7LIhXTLfD9lhO2UM4YsF4ez4b7bHcY4/lQRzJ + T+yxrLSnMcbzDTiFu1GE57kAssKNOAUsjD/OIn99nvcByHKHLcg1zGcuTU6Bv/UD4N54 + HAIWW9Br2bfRgtUWHLEgSEAe9SqfxRstWG3B6QvAZ/prltdj3N9nmR6wTH/eMv1Fy/T9 + wusOV30kIMMk1y78wtdk3gI5hciYfMq/1ODfP7xUWtQ6Ma+7rbore1p4ecfEyyZHMiJV + uW5hQ0lmSduCmnnrJswdN7O9sLkyp7ChI1qk708taoi2TqsoC7e25NZ2V01onFiU4MRH + 6qZE6uc25nfNyYnVZ5Y2FlW0FCM0ZRih/wxbFXZ+METHa2LbZTbqabfA3AcufPU1ae8Q + bFSISj9q3H0A4W4IN6QQ2IBc31oaINomB7agCAgt/yaZfGPVw+gerrUGy49YL/xMVdGC + Ib/Q1mdyxBiHPuZdyanwpo6fcMPugMQ4VsTgXQEmTsUlBxaNX3nZClYOhhMfiW2fRHO/ + 4/d/X3GfsuCoBd+1oFeAubR8ZHVmtb3c7DbAg+WLxxUQX+wpXG/b171WgY5YvXlergVo + c8YAfiYchwf/S80qagjF+4wFG2yo9L4FpdQOTvM1qyZ/taDZvtpgKbdZfWnl10O69Ur4 + 51YUR+5R/NGgTHjcgrHP0tdbyiq7iz4L/LwTE1B++HDUghftBg9bW0CDLFMctuA9u5Wx + zfk78GDxcmAv/E/IG2TxlbpJm1zV2I/jjeqk6Yj+80ibHp8eHp+eVdZQ0Dw3aW7arQsm + XX5pNK8ilv+GXrdQF6WXVFTlTqgJh6bEEuZflVPTXVPZNaV5/O/or/HvF5xn8e9Q0pwf + PYWz9SBDcfDYzNqkDuOaxlvOGruhHgLy/ZhQKKAuxIyjuEYYd+JBdrrBggctOGTBHwXg + Xo45gsP8kBJnf0h91Brgtw2gz/Pg8/AVkrZyI8DX5UF+0cOQy78DLyXgys4KhWEUdS8I + 3UtEXMBbHjYmqsD0aIoJQtZAQ2S1B4wKj+kyf0nsx/DytZry+IylTCPgXI9YCv9ZhVDa + BVil9nX4QubgQtRHpuEfhximHTSc8ZAo1Wo1iriK9YYaUFsA7kf5MYokCd+SN8hYgYGu + /MJ3bKgfgzuyo/UGcEwPYwoDqS9jcYcPvm0pbwlAeg92KQUDJ2Jg/sOVFLPGlcyo8gyG + Ad5BkTWOfVBqBKVLqMZOLEZP4chirpXM6qUuGeBngyvsmVUwAOOr16x28feTso1yiJa8 + KhfRy9exDPnPjcp/V9/o3Nl1p3PjvPsvu8O547L79cGRLfoOKVV688hmCDYMpvwZfRyp + hc/7kwViDXxBF+acgTx/GCqXDnnh7xVS8c/pFiHU4Y8Gs9RVaKmp0zIMkzSqg386J3Xc + tuLm1bdUd/b3f+l/AdmbuIYKZW5kc3RyZWFtCmVuZG9iagoxNSAwIG9iago8PCAvUHJv + ZHVjZXIgKG1hY09TIFZlcnNpb24gMTEuMyBcKEJ1aWxkIDIwRTE1M1wpIFF1YXJ0eiBQ + REZDb250ZXh0KSAvQ3JlYXRpb25EYXRlCihEOjIwMjAxMjMwMDQyNjQyWjAwJzAwJykg + L01vZERhdGUgKEQ6MjAyMDEyMzAwNDI2NDJaMDAnMDAnKSA+PgplbmRvYmoKeHJlZgow + IDE2CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMTM3MCAwMDAwMCBuIAowMDAwMDA1 + NzA4IDAwMDAwIG4gCjAwMDAwMDAwMjIgMDAwMDAgbiAKMDAwMDAwMTQ3NCAwMDAwMCBu + IAowMDAwMDA1MjAwIDAwMDAwIG4gCjAwMDAwMDU2NzIgMDAwMDAgbiAKMDAwMDAwNTg1 + NSAwMDAwMCBuIAowMDAwMDAxNjIxIDAwMDAwIG4gCjAwMDAwMDE2NjkgMDAwMDAgbiAK + MDAwMDAwMTcxMyAwMDAwMCBuIAowMDAwMDA1MjM2IDAwMDAwIG4gCjAwMDAwMDU3OTEg + MDAwMDAgbiAKMDAwMDAwNjIyOCAwMDAwMCBuIAowMDAwMDA2NDgwIDAwMDAwIG4gCjAw + MDAwMTQxNjIgMDAwMDAgbiAKdHJhaWxlcgo8PCAvU2l6ZSAxNiAvUm9vdCAxMiAwIFIg + L0luZm8gMTUgMCBSIC9JRCBbIDw1ZTYyMTQwMGU5YTI1NzM2NjE5ODE4YTNkNjk1NTc5 + Yj4KPDVlNjIxNDAwZTlhMjU3MzY2MTk4MThhM2Q2OTU1NzliPiBdID4+CnN0YXJ0eHJl + ZgoxNDMyNQolJUVPRgo= + + ArchiveMatchStore + + Archive_Stores + + + Class_Store + DKDLock + Match_Hashes + + + BinIndex + 10 + BinMatches + + + CenterLock + YES + + + + + BinIndex + 14 + BinMatches + + + + + + NHashBins + 16 + + + Class_Store + DKDGraphicStyle + Match_Hashes + + + BinIndex + 8 + BinMatches + + + DrawsFill + NO + DrawsLine + YES + LineCapStyle + Square + LineJoinStyle + Miter + LineRGB + + Blue + 0 + BluePlus + 0 + ColorSpace + NSCalibratedRGBColorSpace + ColorSpacePlus + DKDP3ColorSpace + Green + 0 + GreenPlus + 0 + Opacity + 1 + OpacityPlus + 1 + Red + 0 + RedPlus + 0 + + LineWidth + 1 + MiterLimit + 10 + StrokePosition + Front + WindingRule + Non-Zero + + + + + BinIndex + 10 + BinMatches + + + DrawsFill + NO + DrawsLine + NO + LineCapStyle + Square + LineJoinStyle + Miter + LineWidth + 1 + MiterLimit + 10 + StrokePosition + Front + WindingRule + Non-Zero + + + + + NHashBins + 16 + + + Class_Store + DKDParagraph + Match_Hashes + + + BinIndex + 0 + BinMatches + + + FirstLineHeadIndent + 0 + HeadIndent + 0 + LineFragmentPadding + 5 + LineSpacing + 0 + ParagraphSpacing + 0 + ParagraphSpacingBefore + 0 + TailIndent + 0 + TextAlignment + Left + + + + + NHashBins + 16 + + + Class_Store + DKDFont + Match_Hashes + + + BinIndex + 0 + BinMatches + + + Family + Avenir + Name + Avenir-Book + Size + 12 + + + + + NHashBins + 16 + + + Class_Store + DKDTextAttributes + Match_Hashes + + + BinIndex + 0 + BinMatches + + + Font + 0 + ForeColor + + ColorSpace + NSCalibratedWhiteColorSpace + Opacity + 1 + White + 0 + + Paragraph + 0 + + + + + NHashBins + 16 + + + Class_Store + DKDArrow + Match_Hashes + + + BinIndex + 6 + BinMatches + + + ArrowAngle + 160 + ArrowArchiveVersion + 9 + ArrowBackEnd + YES + ArrowForEachSegment + NO + ArrowForm + solid + ArrowFrontEnd + YES + ArrowLineWidthFraction + 0.25 + ArrowOffset + 0 + ArrowSize + 8 + ReferenceArrow + Relief + UseCurveFillAndStroke + YES + + + + + NHashBins + 16 + + + Class_Store + DKDDashPattern + Match_Hashes + + + BinIndex + 8 + BinMatches + + + DashName + Short + DashOn + YES + DashSequence + + 4 + 4 + + + + + + NHashBins + 16 + + + + DKDChangeTimeStamp + 2020-12-30 04:26:29 +0000 + DKDCreateTimeStamp + 2020-12-30 03:07:44 +0000 + DKDDisplayGraphicDetails + + AngleFormatDisplayDetails + + AngleDirection + Right + AngleForm + degrees + AngleRotation + Counter Clockwise + PrecisionAngles + 2 + + AnglesDisplaySpec + + FormDisplaySpec + Decimal + PrecisionDisplaySpec + 2 + TextAlignDisplaySpec + Left + UnitsDisplaySpec + Punctuation + + AreaForm + Natural + HelpTipDisplaySpec + + FormDisplaySpec + Decimal + PrecisionDisplaySpec + 3 + TextAlignDisplaySpec + Left + UnitsDisplaySpec + Abbreviate + + InspectingSpecIndex + 0 + LengthsDisplaySpec + + FormDisplaySpec + Decimal + PrecisionDisplaySpec + 2 + TextAlignDisplaySpec + Left + UnitsDisplaySpec + Nothing + + PercentDisplaySpec + + FormDisplaySpec + Decimal + PrecisionDisplaySpec + 1 + TextAlignDisplaySpec + Left + UnitsDisplaySpec + Punctuation + + PercentFormatDisplayDetails + + PercentForm + Percent + PrecisionPercents + 1 + + + DKDGrids + + DynamicSnapGrid + YES + GuidesLayer + NO + MajorGrid + + GridAboveGraphics + NO + GridRGB + + Blue + 1 + BluePlus + 1 + ColorSpace + NSCalibratedRGBColorSpace + ColorSpacePlus + DKDP3ColorSpace + Green + 0.713725 + GreenPlus + 0.713725 + Opacity + 0.6 + OpacityPlus + 0.6 + Red + 0.54902 + RedPlus + 0.54902 + + GridSpacingX + 72 + GridSpacingY + 72 + LinkGridToRulers + NO + PrintLineWidth + 1 + PrintsGrid + NO + ShowsGrid + YES + SnapsToGrid + NO + + MinorGrid + + GridAboveGraphics + NO + GridRGB + + Blue + 0.87451 + BluePlus + 0.87451 + ColorSpace + NSCalibratedRGBColorSpace + ColorSpacePlus + DKDP3ColorSpace + Green + 0.854902 + GreenPlus + 0.854902 + Opacity + 1 + OpacityPlus + 1 + Red + 0.745098 + RedPlus + 0.745098 + + GridSpacingX + 18 + GridSpacingY + 18 + LinkGridToRulers + NO + PrintLineWidth + 0.5 + PrintsGrid + NO + ShowsGrid + YES + SnapsToGrid + NO + + SnapDrawing + NO + SnapEnds + NO + SnapGuidelines + NO + SnapRadiusGrid + 3 + SnapSound + None + SoftSnap + NO + + DKDHideExtension + YES + DKDLayersList + + + CloakLayerGuidelines + NO + CloakLayerVertices + NO + FullLayerScale + + ArchivePrecision + 12 + ScaleOriginX + 0 + ScaleOriginY + 0 + ScalePlusDown + YES + ScalePlusToRight + YES + ScaleScale + 1 + ScaleUnits + Centimeters + + GraphicsList + + + Bounds + {{72, 216}, {144, 54}} + Class + DKDRectangle + DKDLockInfo + 14 + GraphicID + 7F103856 + GraphicStyle + 8 + + + AngleRotatedRect + 300 + Bounds + {{216.269598048, 91.4364178411}, {118.765371804, 151.707658145}} + CenterRotatedRect + {275.652283951, 167.290246914} + Class + DKDRotatedRect + DKDLockInfo + 14 + GraphicID + C9032956 + GraphicStyle + 8 + HeightRotatedRect + 54 + WidthRotatedRect + 144 + + + AngleRotatedRect + 240 + Bounds + {{216, 243.095308642}, {118.765371804, 151.707658145}} + CenterRotatedRect + {275.382685902, 318.949137714} + Class + DKDRotatedRect + DKDLockInfo + 14 + GraphicID + D4DD3956 + GraphicStyle + 8 + HeightRotatedRect + 54 + WidthRotatedRect + 144 + + + Bounds + {{69.7577864185, 81.25919297}, {323.333900332, 323.333900332}} + Class + DKDCircle + DKDLockInfo + 10 + GraphicID + 2EBAE966 + GraphicStyle + 8 + + + AttributedText + + String + w=Mat+Kerf + + TextAttribute + 0 + + Bounds + {{150.728190743, 231.821773144}, {63.2203840323, 16.9732029081}} + Class + DKDTextArea + DKDLockInfo + 14 + GraphicID + 72438F76 + GraphicStyle + 10 + + + Class + DKDLine + DKDLockInfo + 14 + DkBezArrow + 6 + DkBezDashPattern + 8 + GraphicID + 04F76186 + GraphicStyle + 8 + SVGPath + M180.665507944,268.26297029 L181.571345305,219.911730138 + + + AttributedText + + String + d=r-w*.25*sqrt(3) + TextAttribute + 0 + + Bounds + {{70.7486475269, 244.543608396}, {111.452, 16.1480836237}} + Class + DKDTextArea + DKDLockInfo + 14 + GraphicID + 245F1E86 + GraphicStyle + 10 + + + Class + DKDLine + DKDLockInfo + 14 + DkBezDashPattern + 8 + GraphicID + F2C60996 + GraphicStyle + 8 + SVGPath + M144.225083452,215.418376059 L143.642376732,269.737600506 + + + Class + DKDLine + DKDLockInfo + 14 + DkBezArrow + 6 + DkBezDashPattern + 8 + GraphicID + 40909A96 + GraphicStyle + 8 + SVGPath + M68.1614378349,242.122180048 L217.132743011,242.5252265 + + + Class + DKDLine + DKDLockInfo + 14 + DkBezArrow + 6 + DkBezDashPattern + 8 + GraphicID + 7535FB96 + GraphicStyle + 8 + SVGPath + M68.9205671339,239.838414421 L141.244276957,239.149800849 + + + AttributedText + + String + c=.5(d-K) + TextAttribute + 0 + + Bounds + {{68.8686926377, 226.703141056}, {59.912, 16}} + Class + DKDTextArea + DKDLockInfo + 14 + GraphicID + A9DDAC96 + GraphicStyle + 10 + + + Class + DKDLine + DKDLockInfo + 14 + DkBezDashPattern + 8 + GraphicID + 78419A27 + GraphicStyle + 8 + SVGPath + M315.141968732,104.20969452 L231.172171971,247.342821819 + + + HideDimensions + NO + LayerColorMod + + DKDOnColorMod + NO + DKDOpacityColorMod + 0.5 + DKDOutlineColorMod + NO + DKDTintColorColorMod + + ColorSpace + NSCalibratedWhiteColorSpace + Opacity + 1 + White + 0.5 + + DKDTintFractionColorMod + 0.5 + + LayerLock + NO + LayerName + Paper + LayerState + Active + OutlineLayer + NO + + + DKDPagesSpec + + BackgroundDisplay + Background + CanvasBorder + + Blue + 0.533333 + BluePlus + 0.533333 + ColorSpace + NSCalibratedRGBColorSpace + ColorSpacePlus + DKDP3ColorSpace + Green + 0.533333 + GreenPlus + 0.533333 + Opacity + 1 + OpacityPlus + 1 + Red + 0.54902 + RedPlus + 0.54902 + + CanvasColor + + Catalog + System + Catalog-Color + windowBackgroundColor + + CanvasMargin + 0 + DetailsDrawerWidth + 260 + DisplayAttributesBar + YES + DisplayRulers + NO + FullScreen + NO + FullScreenCanvasMargin + 141.73228 + LayersDrawerWidth + 266 + NonFullScreenCanvasMargin + 0 + NumberAcrossFirst + YES + PagesAcross + 1 + PagesDown + 1 + PagesSpecBackgroundRGB + + ColorSpace + NSCalibratedWhiteColorSpace + Opacity + 1 + White + 1 + + PagesSpecPrintBackground + NO + ShowPageBreaks + NO + SizeChecker + 8 + aCheckerColor + + Blue + 0.941176 + BluePlus + 0.941176 + ColorSpace + NSCalibratedRGBColorSpace + ColorSpacePlus + DKDP3ColorSpace + Green + 0.941176 + GreenPlus + 0.941176 + Opacity + 1 + OpacityPlus + 1 + Red + 0.941176 + RedPlus + 0.941176 + + bCheckerColor + + Blue + 0.784314 + BluePlus + 0.784314 + ColorSpace + NSCalibratedRGBColorSpace + ColorSpacePlus + DKDP3ColorSpace + Green + 0.784314 + GreenPlus + 0.784314 + Opacity + 1 + OpacityPlus + 1 + Red + 0.784314 + RedPlus + 0.784314 + + + DKDPrintInfo + + BottomMargin + 18 + Copies + 1 + FallBackPaperSizeHeight + 842 + FallBackPaperSizeWidth + 595 + FirstPage + 1 + HorizontalPagination + 2 + HorizontallyCentered + YES + LastPage + -1 + LeftMargin + 18 + MustCollate + YES + Orientation + 0 + PaperName + A4 + PaperSizeHeight + 842 + PaperSizeWidth + 595 + PreviewPageNumber + 1 + PrintAllPages + YES + PrintJobDisposition + NSPrintSpoolJob + PrintSavePath + + PrintScalingFactor + 1 + PrinterName + Annus Horribilis + ReversePageOrder + NO + RightMargin + 18 + TopMargin + 18 + VerticalPagination + 0 + VerticallyCentered + YES + XPrintMirror + NO + YPrintMirror + NO + + DKDSaveTimeStamp + 2020-12-30 04:26:42 +0000 + DKDTablet + + BrushDynamic + NO + BrushFit + 6 + PenMax + 25 + PenMin + 0.5 + PenPressureFactor + 0.5 + PencilDynamic + NO + PencilFit + 7 + + DKDTimeFormat + + Field 0 Include + Weekday + Field 0 Type + Long + Field 1 Include + Month + Field 1 Type + Short + Field 2 Include + Day + Field 2 Type + Number + Field 3 Include + Year + Field 3 Type + Long + Include GMT + NO + Include Title + YES + IncludeDate + YES + IncludeTime + YES + Seperator 0 + - + Seperator 1 + . + Seperator 2 + , + Seperator 3 + + Time Seperator + : + TimeAfterDate + YES + Twelve Hour Clock + YES + Used Once + YES + + DKDToolbarSelectedButtonPairs + + ColorTextToolbarItemIdentifier_0 + + HSB_000020 + + + DKDWindowState + + CursorMode + Nothing + DocCenter + {279.5, 254.507839721} + DocumentFileName + /Users/neeri/Development/honeyrack/Designs.ezdraw + DrawersOnMainView + YES + GDetailsLayersDrawerEdgePreference + Auto + GraphicDetailsOpen + NO + LayerActiveAbove + NO + LayerOpen + NO + LayerSelect + Active Only + LayersDrawerEdgePreference + Auto + OutlineDrawing + NO + WindowLocation + 300 85 845 751 0 0 1440 875 + ZoomPercent + 142.382812 + + GroupEdit + Fixed + NumberColorsToListInContextMenu + 12 + NumberPairColorsToListInContextMenu + 6 + + diff --git a/honeyrack.py b/honeyrack.py new file mode 100755 index 0000000..9185eef --- /dev/null +++ b/honeyrack.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python3 +# +# honeyrack.py - Generate laser cut parts for honeycomb style shelf +# + +import argparse +import re +import math +import sys + +parser = argparse.ArgumentParser('Generate parts for honeycomb style shelf') +parser.add_argument('x', type=int, help='Number of cells in bottom row') +parser.add_argument('y', type=int, default=3, help='Number of rows') +parser.add_argument('--side', default='5cm', help='Length of side') +parser.add_argument('--depth', default='10cm', help='Depth') +parser.add_argument('--tab', default='1cm', help='Length of connective tabs') +parser.add_argument('--kerf', default='.2mm', help='Amount of kerf adjustment') +parser.add_argument('--fringe', default='1cm', help='Space around tabs') +parser.add_argument('--stem', default='2cm', help='Width of connectors') +parser.add_argument('--disc', default='2cm', help='Radius of auxiliary discs') +parser.add_argument('--num_discs', default='2', help='Number of auxiliary discs') +parser.add_argument('--thickness', default='.125in', help='Material thickness') + +args = parser.parse_args() + +DIMENSION = re.compile(r'(\-?\d*(?:\.\d*)?)\s*(cm|mm|m|in)') +def to_mm(length): + m = DIMENSION.fullmatch(length) + if m == None: + abort("{} should be a length with an unit (m, cm, mm, in)".format(length)) + v = float(m.group(1)) + u = m.group(2) + if u == 'mm': + return v + elif u == 'cm': + return v*10 + elif u == 'm': + return v*1000 + elif u == 'in': + return v*25.4 + +args.side = to_mm(args.side) +args.depth = to_mm(args.depth) +args.tab = to_mm(args.tab) +args.kerf = to_mm(args.kerf) +args.fringe = to_mm(args.fringe) +args.stem = to_mm(args.stem) +args.disc = to_mm(args.disc) +args.thickness = to_mm(args.thickness) + +def compute_notch(): + global args + if 'notch' in args: + return + + depth = args.disc - (args.thickness+args.kerf)*0.25*math.sqrt(3) # Half of the height of equilateral triangle + args.notch = 0.5*(depth-args.kerf) + +def disc(x, y): + compute_notch() + global args + + cut = args.thickness+args.kerf + cone = math.asin(0.5*cut/args.disc) + cx = x+args.disc + cy = y+args.disc + t0 = -cone + x0 = cx+math.cos(t0)*args.disc + y0 = cy-math.sin(t0)*args.disc + print(''.format(args.disc, args.disc, x0, y0)) + +print('') +disc(50, 50) +print('')