Repository: lentinj/tp-compact-keyboard Branch: master Commit: 778912c0f8ca Files: 23 Total size: 296.1 KB Directory structure: gitextract_41kwzyiw/ ├── .gitignore ├── LICENSE ├── README.md ├── kernel-patch/ │ ├── 0001-HID-lenovo-Rename-hid-lenovo-tpkbd-to-hid-lenovo.patch │ ├── 0002-HID-lenovo-Prepare-support-for-adding-other-devices.patch │ ├── 0003-HID-lenovo-Style-fixes.patch │ ├── 0004-HID-lenovo-Add-support-for-Compact-BT-USB-keyboard.patch │ ├── 1001-HID-lenovo-Move-USB-KEY_FILE-to-0x00f9-to-prevent-sc.patch │ ├── 1002-HID-lenovo-Don-t-set-EV_REP-to-avoid-repeating-mice-.patch │ ├── 2001-HID-lenovo-Add-sensitivity-control-to-compact-keyboa.patch │ ├── 2002-HID-lenovo-Use-native-middle-button-mode-for-compact.patch │ ├── 3001-HID-lenovo-Use-constants-for-axes-names.patch │ ├── 3002-HID-lenovo-Add-missing-return-value-check.patch │ └── 3003-HID-lenovo-Hide-middle-button-press-until-release.patch ├── tp-compact-bt-keyboard/ │ ├── README.md │ └── tp-compact-keyboard ├── tp-compact-usb-keyboard/ │ ├── Makefile │ ├── README.md │ └── tp-compact-usb-keyboard.c ├── tp-multi-connect/ │ └── README.md ├── tp-tablet2/ │ └── README.md └── x1-tablet-keyboard/ ├── README.md └── tp-x1t-gen1-adapter.dxf ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ /module/*.mod.c /module/*.cmd /module/*.ko /module/*.tmp_versions /module/Module.symvers /module/modules.order /linux /*.pcap /tp-compact-usb-keyboard/tp-compact-usb-keyboard ================================================ FILE: LICENSE ================================================ GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. {description} Copyright (C) {year} {fullname} This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. {signature of Ty Coon}, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. ================================================ FILE: README.md ================================================ # Lenovo Thinkpad Keyboards Repository dedicated to using ~standalone Lenovo Thinkpad Keyboards, particularly under Linux * [ThinkPad Compact Bluetooth Keyboard with TrackPoint](tp-compact-bt-keyboard/) * [ThinkPad Compact USB Keyboard with TrackPoint / Lenovo Low Profile USB Keyboard](tp-compact-usb-keyboard/) * [Thinkpad Multi-Connect Keyboard](tp-multi-connect/) * [Thinkpad Tablet 2 Keyboard](tp-tablet2/) ================================================ FILE: kernel-patch/0001-HID-lenovo-Rename-hid-lenovo-tpkbd-to-hid-lenovo.patch ================================================ diff --git a/Documentation/ABI/testing/sysfs-driver-hid-lenovo-tpkbd b/Documentation/ABI/testing/sysfs-driver-hid-lenovo similarity index 100% rename from Documentation/ABI/testing/sysfs-driver-hid-lenovo-tpkbd rename to Documentation/ABI/testing/sysfs-driver-hid-lenovo diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig index 800c8b6..9b7acfc 100644 --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig @@ -331,18 +331,18 @@ config HID_LCPOWER ---help--- Support for LC-Power RC1000MCE RF remote control. -config HID_LENOVO_TPKBD - tristate "Lenovo ThinkPad USB Keyboard with TrackPoint" +config HID_LENOVO + tristate "Lenovo / Thinkpad devices" depends on HID select NEW_LEDS select LEDS_CLASS ---help--- - Support for the Lenovo ThinkPad USB Keyboard with TrackPoint. + Support for Lenovo devices that are not fully compliant with HID standard. - Say Y here if you have a Lenovo ThinkPad USB Keyboard with TrackPoint - and would like to use device-specific features like changing the - sensitivity of the trackpoint, using the microphone mute button or - controlling the mute and microphone mute LEDs. + Say Y if you want support for the non-compliant features of the Lenovo + Thinkpad standalone keyboards, e.g: + - ThinkPad USB Keyboard with TrackPoint (supports extra LEDs and trackpoint + configuration) config HID_LOGITECH tristate "Logitech devices" if EXPERT diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile index a6fa6ba..5e96be3 100644 --- a/drivers/hid/Makefile +++ b/drivers/hid/Makefile @@ -59,7 +59,7 @@ obj-$(CONFIG_HID_KENSINGTON) += hid-kensington.o obj-$(CONFIG_HID_KEYTOUCH) += hid-keytouch.o obj-$(CONFIG_HID_KYE) += hid-kye.o obj-$(CONFIG_HID_LCPOWER) += hid-lcpower.o -obj-$(CONFIG_HID_LENOVO_TPKBD) += hid-lenovo-tpkbd.o +obj-$(CONFIG_HID_LENOVO) += hid-lenovo.o obj-$(CONFIG_HID_LOGITECH) += hid-logitech.o obj-$(CONFIG_HID_LOGITECH_DJ) += hid-logitech-dj.o obj-$(CONFIG_HID_MAGICMOUSE) += hid-magicmouse.o diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 8ed66fd..55841bd 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c @@ -1796,7 +1796,7 @@ static const struct hid_device_id hid_have_special_driver[] = { { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_EASYPEN_M610X) }, { HID_USB_DEVICE(USB_VENDOR_ID_LABTEC, USB_DEVICE_ID_LABTEC_WIRELESS_KEYBOARD) }, { HID_USB_DEVICE(USB_VENDOR_ID_LCPOWER, USB_DEVICE_ID_LCPOWER_LC1000 ) }, -#if IS_ENABLED(CONFIG_HID_LENOVO_TPKBD) +#if IS_ENABLED(CONFIG_HID_LENOVO) { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_TPKBD) }, #endif { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_MX3000_RECEIVER) }, diff --git a/drivers/hid/hid-lenovo-tpkbd.c b/drivers/hid/hid-lenovo.c similarity index 64% rename from drivers/hid/hid-lenovo-tpkbd.c rename to drivers/hid/hid-lenovo.c index 2d25b6c..0320b96 100644 --- a/drivers/hid/hid-lenovo-tpkbd.c +++ b/drivers/hid/hid-lenovo.c @@ -20,8 +20,7 @@ #include "hid-ids.h" -/* This is only used for the trackpoint part of the driver, hence _tp */ -struct tpkbd_data_pointer { +struct lenovo_drvdata_tpkbd { int led_state; struct led_classdev led_mute; struct led_classdev led_micmute; @@ -35,7 +34,7 @@ struct tpkbd_data_pointer { #define map_key_clear(c) hid_map_usage_clear(hi, usage, bit, max, EV_KEY, (c)) -static int tpkbd_input_mapping(struct hid_device *hdev, +static int lenovo_input_mapping_tpkbd(struct hid_device *hdev, struct hid_input *hi, struct hid_field *field, struct hid_usage *usage, unsigned long **bit, int *max) { @@ -50,10 +49,10 @@ static int tpkbd_input_mapping(struct hid_device *hdev, #undef map_key_clear -static int tpkbd_features_set(struct hid_device *hdev) +static int lenovo_features_set_tpkbd(struct hid_device *hdev) { struct hid_report *report; - struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev); + struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); report = hdev->report_enum[HID_FEATURE_REPORT].report_id_hash[4]; @@ -69,23 +68,23 @@ static int tpkbd_features_set(struct hid_device *hdev) return 0; } -static ssize_t pointer_press_to_select_show(struct device *dev, +static ssize_t attr_press_to_select_show_tpkbd(struct device *dev, struct device_attribute *attr, char *buf) { struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev); + struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); return snprintf(buf, PAGE_SIZE, "%u\n", data_pointer->press_to_select); } -static ssize_t pointer_press_to_select_store(struct device *dev, +static ssize_t attr_press_to_select_store_tpkbd(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev); + struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); int value; if (kstrtoint(buf, 10, &value)) @@ -94,28 +93,28 @@ static ssize_t pointer_press_to_select_store(struct device *dev, return -EINVAL; data_pointer->press_to_select = value; - tpkbd_features_set(hdev); + lenovo_features_set_tpkbd(hdev); return count; } -static ssize_t pointer_dragging_show(struct device *dev, +static ssize_t attr_dragging_show_tpkbd(struct device *dev, struct device_attribute *attr, char *buf) { struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev); + struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); return snprintf(buf, PAGE_SIZE, "%u\n", data_pointer->dragging); } -static ssize_t pointer_dragging_store(struct device *dev, +static ssize_t attr_dragging_store_tpkbd(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev); + struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); int value; if (kstrtoint(buf, 10, &value)) @@ -124,28 +123,28 @@ static ssize_t pointer_dragging_store(struct device *dev, return -EINVAL; data_pointer->dragging = value; - tpkbd_features_set(hdev); + lenovo_features_set_tpkbd(hdev); return count; } -static ssize_t pointer_release_to_select_show(struct device *dev, +static ssize_t attr_release_to_select_show_tpkbd(struct device *dev, struct device_attribute *attr, char *buf) { struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev); + struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); return snprintf(buf, PAGE_SIZE, "%u\n", data_pointer->release_to_select); } -static ssize_t pointer_release_to_select_store(struct device *dev, +static ssize_t attr_release_to_select_store_tpkbd(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev); + struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); int value; if (kstrtoint(buf, 10, &value)) @@ -154,28 +153,28 @@ static ssize_t pointer_release_to_select_store(struct device *dev, return -EINVAL; data_pointer->release_to_select = value; - tpkbd_features_set(hdev); + lenovo_features_set_tpkbd(hdev); return count; } -static ssize_t pointer_select_right_show(struct device *dev, +static ssize_t attr_select_right_show_tpkbd(struct device *dev, struct device_attribute *attr, char *buf) { struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev); + struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); return snprintf(buf, PAGE_SIZE, "%u\n", data_pointer->select_right); } -static ssize_t pointer_select_right_store(struct device *dev, +static ssize_t attr_select_right_store_tpkbd(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev); + struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); int value; if (kstrtoint(buf, 10, &value)) @@ -184,119 +183,119 @@ static ssize_t pointer_select_right_store(struct device *dev, return -EINVAL; data_pointer->select_right = value; - tpkbd_features_set(hdev); + lenovo_features_set_tpkbd(hdev); return count; } -static ssize_t pointer_sensitivity_show(struct device *dev, +static ssize_t attr_sensitivity_show_tpkbd(struct device *dev, struct device_attribute *attr, char *buf) { struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev); + struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); return snprintf(buf, PAGE_SIZE, "%u\n", data_pointer->sensitivity); } -static ssize_t pointer_sensitivity_store(struct device *dev, +static ssize_t attr_sensitivity_store_tpkbd(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev); + struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); int value; if (kstrtoint(buf, 10, &value) || value < 1 || value > 255) return -EINVAL; data_pointer->sensitivity = value; - tpkbd_features_set(hdev); + lenovo_features_set_tpkbd(hdev); return count; } -static ssize_t pointer_press_speed_show(struct device *dev, +static ssize_t attr_press_speed_show_tpkbd(struct device *dev, struct device_attribute *attr, char *buf) { struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev); + struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); return snprintf(buf, PAGE_SIZE, "%u\n", data_pointer->press_speed); } -static ssize_t pointer_press_speed_store(struct device *dev, +static ssize_t attr_press_speed_store_tpkbd(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev); + struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); int value; if (kstrtoint(buf, 10, &value) || value < 1 || value > 255) return -EINVAL; data_pointer->press_speed = value; - tpkbd_features_set(hdev); + lenovo_features_set_tpkbd(hdev); return count; } -static struct device_attribute dev_attr_pointer_press_to_select = +static struct device_attribute dev_attr_press_to_select_tpkbd = __ATTR(press_to_select, S_IWUSR | S_IRUGO, - pointer_press_to_select_show, - pointer_press_to_select_store); + attr_press_to_select_show_tpkbd, + attr_press_to_select_store_tpkbd); -static struct device_attribute dev_attr_pointer_dragging = +static struct device_attribute dev_attr_dragging_tpkbd = __ATTR(dragging, S_IWUSR | S_IRUGO, - pointer_dragging_show, - pointer_dragging_store); + attr_dragging_show_tpkbd, + attr_dragging_store_tpkbd); -static struct device_attribute dev_attr_pointer_release_to_select = +static struct device_attribute dev_attr_release_to_select_tpkbd = __ATTR(release_to_select, S_IWUSR | S_IRUGO, - pointer_release_to_select_show, - pointer_release_to_select_store); + attr_release_to_select_show_tpkbd, + attr_release_to_select_store_tpkbd); -static struct device_attribute dev_attr_pointer_select_right = +static struct device_attribute dev_attr_select_right_tpkbd = __ATTR(select_right, S_IWUSR | S_IRUGO, - pointer_select_right_show, - pointer_select_right_store); + attr_select_right_show_tpkbd, + attr_select_right_store_tpkbd); -static struct device_attribute dev_attr_pointer_sensitivity = +static struct device_attribute dev_attr_sensitivity_tpkbd = __ATTR(sensitivity, S_IWUSR | S_IRUGO, - pointer_sensitivity_show, - pointer_sensitivity_store); + attr_sensitivity_show_tpkbd, + attr_sensitivity_store_tpkbd); -static struct device_attribute dev_attr_pointer_press_speed = +static struct device_attribute dev_attr_press_speed_tpkbd = __ATTR(press_speed, S_IWUSR | S_IRUGO, - pointer_press_speed_show, - pointer_press_speed_store); - -static struct attribute *tpkbd_attributes_pointer[] = { - &dev_attr_pointer_press_to_select.attr, - &dev_attr_pointer_dragging.attr, - &dev_attr_pointer_release_to_select.attr, - &dev_attr_pointer_select_right.attr, - &dev_attr_pointer_sensitivity.attr, - &dev_attr_pointer_press_speed.attr, + attr_press_speed_show_tpkbd, + attr_press_speed_store_tpkbd); + +static struct attribute *lenovo_attributes_tpkbd[] = { + &dev_attr_press_to_select_tpkbd.attr, + &dev_attr_dragging_tpkbd.attr, + &dev_attr_release_to_select_tpkbd.attr, + &dev_attr_select_right_tpkbd.attr, + &dev_attr_sensitivity_tpkbd.attr, + &dev_attr_press_speed_tpkbd.attr, NULL }; -static const struct attribute_group tpkbd_attr_group_pointer = { - .attrs = tpkbd_attributes_pointer, +static const struct attribute_group lenovo_attr_group_tpkbd = { + .attrs = lenovo_attributes_tpkbd, }; -static enum led_brightness tpkbd_led_brightness_get( +static enum led_brightness lenovo_led_brightness_get_tpkbd( struct led_classdev *led_cdev) { struct device *dev = led_cdev->dev->parent; struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev); + struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); int led_nr = 0; if (led_cdev == &data_pointer->led_micmute) @@ -307,12 +306,12 @@ static enum led_brightness tpkbd_led_brightness_get( : LED_OFF; } -static void tpkbd_led_brightness_set(struct led_classdev *led_cdev, +static void lenovo_led_brightness_set_tpkbd(struct led_classdev *led_cdev, enum led_brightness value) { struct device *dev = led_cdev->dev->parent; struct hid_device *hdev = container_of(dev, struct hid_device, dev); - struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev); + struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); struct hid_report *report; int led_nr = 0; @@ -330,10 +329,10 @@ static void tpkbd_led_brightness_set(struct led_classdev *led_cdev, hid_hw_request(hdev, report, HID_REQ_SET_REPORT); } -static int tpkbd_probe_tp(struct hid_device *hdev) +static int lenovo_probe_tpkbd(struct hid_device *hdev) { struct device *dev = &hdev->dev; - struct tpkbd_data_pointer *data_pointer; + struct lenovo_drvdata_tpkbd *data_pointer; size_t name_sz = strlen(dev_name(dev)) + 16; char *name_mute, *name_micmute; int i; @@ -347,12 +346,12 @@ static int tpkbd_probe_tp(struct hid_device *hdev) return -ENODEV; if (sysfs_create_group(&hdev->dev.kobj, - &tpkbd_attr_group_pointer)) { + &lenovo_attr_group_tpkbd)) { hid_warn(hdev, "Could not create sysfs group\n"); } data_pointer = devm_kzalloc(&hdev->dev, - sizeof(struct tpkbd_data_pointer), + sizeof(struct lenovo_drvdata_tpkbd), GFP_KERNEL); if (data_pointer == NULL) { hid_err(hdev, "Could not allocate memory for driver data\n"); @@ -375,23 +374,25 @@ static int tpkbd_probe_tp(struct hid_device *hdev) hid_set_drvdata(hdev, data_pointer); data_pointer->led_mute.name = name_mute; - data_pointer->led_mute.brightness_get = tpkbd_led_brightness_get; - data_pointer->led_mute.brightness_set = tpkbd_led_brightness_set; + data_pointer->led_mute.brightness_get = lenovo_led_brightness_get_tpkbd; + data_pointer->led_mute.brightness_set = lenovo_led_brightness_set_tpkbd; data_pointer->led_mute.dev = dev; led_classdev_register(dev, &data_pointer->led_mute); data_pointer->led_micmute.name = name_micmute; - data_pointer->led_micmute.brightness_get = tpkbd_led_brightness_get; - data_pointer->led_micmute.brightness_set = tpkbd_led_brightness_set; + data_pointer->led_micmute.brightness_get = + lenovo_led_brightness_get_tpkbd; + data_pointer->led_micmute.brightness_set = + lenovo_led_brightness_set_tpkbd; data_pointer->led_micmute.dev = dev; led_classdev_register(dev, &data_pointer->led_micmute); - tpkbd_features_set(hdev); + lenovo_features_set_tpkbd(hdev); return 0; } -static int tpkbd_probe(struct hid_device *hdev, +static int lenovo_probe(struct hid_device *hdev, const struct hid_device_id *id) { int ret; @@ -410,7 +411,7 @@ static int tpkbd_probe(struct hid_device *hdev, if (hid_get_drvdata(hdev)) { hid_set_drvdata(hdev, NULL); - ret = tpkbd_probe_tp(hdev); + ret = lenovo_probe_tpkbd(hdev); if (ret) goto err_hid; } @@ -422,12 +423,12 @@ err: return ret; } -static void tpkbd_remove_tp(struct hid_device *hdev) +static void lenovo_remove_tpkbd(struct hid_device *hdev) { - struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev); + struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); sysfs_remove_group(&hdev->dev.kobj, - &tpkbd_attr_group_pointer); + &lenovo_attr_group_tpkbd); led_classdev_unregister(&data_pointer->led_micmute); led_classdev_unregister(&data_pointer->led_mute); @@ -435,28 +436,28 @@ static void tpkbd_remove_tp(struct hid_device *hdev) hid_set_drvdata(hdev, NULL); } -static void tpkbd_remove(struct hid_device *hdev) +static void lenovo_remove(struct hid_device *hdev) { if (hid_get_drvdata(hdev)) - tpkbd_remove_tp(hdev); + lenovo_remove_tpkbd(hdev); hid_hw_stop(hdev); } -static const struct hid_device_id tpkbd_devices[] = { +static const struct hid_device_id lenovo_devices[] = { { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_TPKBD) }, { } }; -MODULE_DEVICE_TABLE(hid, tpkbd_devices); +MODULE_DEVICE_TABLE(hid, lenovo_devices); -static struct hid_driver tpkbd_driver = { - .name = "lenovo_tpkbd", - .id_table = tpkbd_devices, - .input_mapping = tpkbd_input_mapping, - .probe = tpkbd_probe, - .remove = tpkbd_remove, +static struct hid_driver lenovo_driver = { + .name = "lenovo", + .id_table = lenovo_devices, + .input_mapping = lenovo_input_mapping_tpkbd, + .probe = lenovo_probe, + .remove = lenovo_remove, }; -module_hid_driver(tpkbd_driver); +module_hid_driver(lenovo_driver); MODULE_LICENSE("GPL"); ================================================ FILE: kernel-patch/0002-HID-lenovo-Prepare-support-for-adding-other-devices.patch ================================================ diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c index 0320b96..a56b9e7 100644 --- a/drivers/hid/hid-lenovo.c +++ b/drivers/hid/hid-lenovo.c @@ -1,5 +1,6 @@ /* - * HID driver for Lenovo ThinkPad USB Keyboard with TrackPoint + * HID driver for Lenovo: + * - ThinkPad USB Keyboard with TrackPoint (tpkbd) * * Copyright (c) 2012 Bernhard Seibold */ @@ -39,7 +40,7 @@ static int lenovo_input_mapping_tpkbd(struct hid_device *hdev, struct hid_usage *usage, unsigned long **bit, int *max) { if (usage->hid == (HID_UP_BUTTON | 0x0010)) { - /* mark the device as pointer */ + /* This sub-device contains trackpoint, mark it */ hid_set_drvdata(hdev, (void *)1); map_key_clear(KEY_MICMUTE); return 1; @@ -47,6 +48,19 @@ static int lenovo_input_mapping_tpkbd(struct hid_device *hdev, return 0; } +static int lenovo_input_mapping(struct hid_device *hdev, + struct hid_input *hi, struct hid_field *field, + struct hid_usage *usage, unsigned long **bit, int *max) +{ + switch (hdev->product) { + case USB_DEVICE_ID_LENOVO_TPKBD: + return lenovo_input_mapping_tpkbd(hdev, hi, field, + usage, bit, max); + default: + return 0; + } +} + #undef map_key_clear static int lenovo_features_set_tpkbd(struct hid_device *hdev) @@ -337,6 +351,15 @@ static int lenovo_probe_tpkbd(struct hid_device *hdev) char *name_mute, *name_micmute; int i; + /* + * Only register extra settings against subdevice where input_mapping + * set drvdata to 1, i.e. the trackpoint. + */ + if (!hid_get_drvdata(hdev)) + return 0; + + hid_set_drvdata(hdev, NULL); + /* Validate required reports. */ for (i = 0; i < 4; i++) { if (!hid_validate_values(hdev, HID_FEATURE_REPORT, 4, i, 1)) @@ -409,12 +432,16 @@ static int lenovo_probe(struct hid_device *hdev, goto err; } - if (hid_get_drvdata(hdev)) { - hid_set_drvdata(hdev, NULL); + switch (hdev->product) { + case USB_DEVICE_ID_LENOVO_TPKBD: ret = lenovo_probe_tpkbd(hdev); - if (ret) - goto err_hid; + break; + default: + ret = 0; + break; } + if (ret) + goto err_hid; return 0; err_hid: @@ -427,6 +454,13 @@ static void lenovo_remove_tpkbd(struct hid_device *hdev) { struct lenovo_drvdata_tpkbd *data_pointer = hid_get_drvdata(hdev); + /* + * Only the trackpoint half of the keyboard has drvdata and stuff that + * needs unregistering. + */ + if (data_pointer == NULL) + return; + sysfs_remove_group(&hdev->dev.kobj, &lenovo_attr_group_tpkbd); @@ -438,8 +472,11 @@ static void lenovo_remove_tpkbd(struct hid_device *hdev) static void lenovo_remove(struct hid_device *hdev) { - if (hid_get_drvdata(hdev)) + switch (hdev->product) { + case USB_DEVICE_ID_LENOVO_TPKBD: lenovo_remove_tpkbd(hdev); + break; + } hid_hw_stop(hdev); } @@ -454,7 +491,7 @@ MODULE_DEVICE_TABLE(hid, lenovo_devices); static struct hid_driver lenovo_driver = { .name = "lenovo", .id_table = lenovo_devices, - .input_mapping = lenovo_input_mapping_tpkbd, + .input_mapping = lenovo_input_mapping, .probe = lenovo_probe, .remove = lenovo_remove, }; ================================================ FILE: kernel-patch/0003-HID-lenovo-Style-fixes.patch ================================================ diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c index a56b9e7..f96bf09 100644 --- a/drivers/hid/hid-lenovo.c +++ b/drivers/hid/hid-lenovo.c @@ -350,6 +350,7 @@ static int lenovo_probe_tpkbd(struct hid_device *hdev) size_t name_sz = strlen(dev_name(dev)) + 16; char *name_mute, *name_micmute; int i; + int ret; /* * Only register extra settings against subdevice where input_mapping @@ -368,10 +369,9 @@ static int lenovo_probe_tpkbd(struct hid_device *hdev) if (!hid_validate_values(hdev, HID_OUTPUT_REPORT, 3, 0, 2)) return -ENODEV; - if (sysfs_create_group(&hdev->dev.kobj, - &lenovo_attr_group_tpkbd)) { - hid_warn(hdev, "Could not create sysfs group\n"); - } + ret = sysfs_create_group(&hdev->dev.kobj, &lenovo_attr_group_tpkbd); + if (ret) + hid_warn(hdev, "Could not create sysfs group: %d\n", ret); data_pointer = devm_kzalloc(&hdev->dev, sizeof(struct lenovo_drvdata_tpkbd), ================================================ FILE: kernel-patch/0004-HID-lenovo-Add-support-for-Compact-BT-USB-keyboard.patch ================================================ diff --git a/Documentation/ABI/testing/sysfs-driver-hid-lenovo b/Documentation/ABI/testing/sysfs-driver-hid-lenovo index 57b92cb..53a0725 100644 --- a/Documentation/ABI/testing/sysfs-driver-hid-lenovo +++ b/Documentation/ABI/testing/sysfs-driver-hid-lenovo @@ -4,18 +4,21 @@ Contact: linux-input@vger.kernel.org Description: This controls if mouse clicks should be generated if the trackpoint is quickly pressed. How fast this press has to be is being controlled by press_speed. Values are 0 or 1. + Applies to Thinkpad USB Keyboard with TrackPoint. What: /sys/bus/usb/devices/-:./::./dragging Date: July 2011 Contact: linux-input@vger.kernel.org Description: If this setting is enabled, it is possible to do dragging by pressing the trackpoint. This requires press_to_select to be enabled. Values are 0 or 1. + Applies to Thinkpad USB Keyboard with TrackPoint. What: /sys/bus/usb/devices/-:./::./release_to_select Date: July 2011 Contact: linux-input@vger.kernel.org Description: For details regarding this setting please refer to http://www.pc.ibm.com/ww/healthycomputing/trkpntb.html Values are 0 or 1. + Applies to Thinkpad USB Keyboard with TrackPoint. What: /sys/bus/usb/devices/-:./::./select_right Date: July 2011 @@ -23,16 +26,25 @@ Contact: linux-input@vger.kernel.org Description: This setting controls if the mouse click events generated by pressing the trackpoint (if press_to_select is enabled) generate a left or right mouse button click. Values are 0 or 1. + Applies to Thinkpad USB Keyboard with TrackPoint. What: /sys/bus/usb/devices/-:./::./sensitivity Date: July 2011 Contact: linux-input@vger.kernel.org Description: This file contains the trackpoint sensitivity. Values are decimal integers from 1 (lowest sensitivity) to 255 (highest sensitivity). + Applies to Thinkpad USB Keyboard with TrackPoint. What: /sys/bus/usb/devices/-:./::./press_speed Date: July 2011 Contact: linux-input@vger.kernel.org Description: This setting controls how fast the trackpoint needs to be pressed to generate a mouse click if press_to_select is enabled. Values are decimal integers from 1 (slowest) to 255 (fastest). + Applies to Thinkpad USB Keyboard with TrackPoint. +What: /sys/bus/usb/devices/-:./::./fn_lock +Date: July 2014 +Contact: linux-input@vger.kernel.org +Description: This setting controls whether Fn Lock is enabled on the keyboard (i.e. if F1 is Mute or F1) + Values are 0 or 1 + Applies to ThinkPad Compact (USB|Bluetooth) Keyboard with TrackPoint. diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig index 9b7acfc..1e19292 100644 --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig @@ -343,6 +343,8 @@ config HID_LENOVO Thinkpad standalone keyboards, e.g: - ThinkPad USB Keyboard with TrackPoint (supports extra LEDs and trackpoint configuration) + - ThinkPad Compact Bluetooth Keyboard with TrackPoint (supports Fn keys) + - ThinkPad Compact USB Keyboard with TrackPoint (supports Fn keys) config HID_LOGITECH tristate "Logitech devices" if EXPERT diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 55841bd..81b3bb6 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c @@ -1798,6 +1798,8 @@ static const struct hid_device_id hid_have_special_driver[] = { { HID_USB_DEVICE(USB_VENDOR_ID_LCPOWER, USB_DEVICE_ID_LCPOWER_LC1000 ) }, #if IS_ENABLED(CONFIG_HID_LENOVO) { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_TPKBD) }, + { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_CUSBKBD) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_CBTKBD) }, #endif { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_MX3000_RECEIVER) }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_S510_RECEIVER) }, diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index 6d00bb9..d2e2a96 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -560,6 +560,8 @@ #define USB_VENDOR_ID_LENOVO 0x17ef #define USB_DEVICE_ID_LENOVO_TPKBD 0x6009 +#define USB_DEVICE_ID_LENOVO_CUSBKBD 0x6047 +#define USB_DEVICE_ID_LENOVO_CBTKBD 0x6048 #define USB_VENDOR_ID_LG 0x1fd2 #define USB_DEVICE_ID_LG_MULTITOUCH 0x0064 diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c index 6d55939..eb5493e 100644 --- a/drivers/hid/hid-lenovo.c +++ b/drivers/hid/hid-lenovo.c @@ -1,8 +1,11 @@ /* * HID driver for Lenovo: * - ThinkPad USB Keyboard with TrackPoint (tpkbd) + * - ThinkPad Compact Bluetooth Keyboard with TrackPoint (cptkbd) + * - ThinkPad Compact USB Keyboard with TrackPoint (cptkbd) * * Copyright (c) 2012 Bernhard Seibold + * Copyright (c) 2014 Jamie Lentin */ /* @@ -33,6 +36,10 @@ struct lenovo_drvdata_tpkbd { int press_speed; }; +struct lenovo_drvdata_cptkbd { + bool fn_lock; +}; + #define map_key_clear(c) hid_map_usage_clear(hi, usage, bit, max, EV_KEY, (c)) static int lenovo_input_mapping_tpkbd(struct hid_device *hdev, @@ -48,6 +55,49 @@ static int lenovo_input_mapping_tpkbd(struct hid_device *hdev, return 0; } +static int lenovo_input_mapping_cptkbd(struct hid_device *hdev, + struct hid_input *hi, struct hid_field *field, + struct hid_usage *usage, unsigned long **bit, int *max) +{ + /* HID_UP_LNVENDOR = USB, HID_UP_MSVENDOR = BT */ + if ((usage->hid & HID_USAGE_PAGE) == HID_UP_MSVENDOR || + (usage->hid & HID_USAGE_PAGE) == HID_UP_LNVENDOR) { + set_bit(EV_REP, hi->input->evbit); + switch (usage->hid & HID_USAGE) { + case 0x00f1: /* Fn-F4: Mic mute */ + map_key_clear(KEY_MICMUTE); + return 1; + case 0x00f2: /* Fn-F5: Brightness down */ + map_key_clear(KEY_BRIGHTNESSDOWN); + return 1; + case 0x00f3: /* Fn-F6: Brightness up */ + map_key_clear(KEY_BRIGHTNESSUP); + return 1; + case 0x00f4: /* Fn-F7: External display (projector) */ + map_key_clear(KEY_SWITCHVIDEOMODE); + return 1; + case 0x00f5: /* Fn-F8: Wireless */ + map_key_clear(KEY_WLAN); + return 1; + case 0x00f6: /* Fn-F9: Control panel */ + map_key_clear(KEY_CONFIG); + return 1; + case 0x00f8: /* Fn-F11: View open applications (3 boxes) */ + map_key_clear(KEY_SCALE); + return 1; + case 0x00fa: /* Fn-Esc: Fn-lock toggle */ + map_key_clear(KEY_FN_ESC); + return 1; + case 0x00fb: /* Fn-F12: Open My computer (6 boxes) USB-only */ + /* NB: This mapping is invented in raw_event below */ + map_key_clear(KEY_FILE); + return 1; + } + } + + return 0; +} + static int lenovo_input_mapping(struct hid_device *hdev, struct hid_input *hi, struct hid_field *field, struct hid_usage *usage, unsigned long **bit, int *max) @@ -56,6 +106,10 @@ static int lenovo_input_mapping(struct hid_device *hdev, case USB_DEVICE_ID_LENOVO_TPKBD: return lenovo_input_mapping_tpkbd(hdev, hi, field, usage, bit, max); + case USB_DEVICE_ID_LENOVO_CUSBKBD: + case USB_DEVICE_ID_LENOVO_CBTKBD: + return lenovo_input_mapping_cptkbd(hdev, hi, field, + usage, bit, max); default: return 0; } @@ -63,6 +117,103 @@ static int lenovo_input_mapping(struct hid_device *hdev, #undef map_key_clear +/* Send a config command to the keyboard */ +static int lenovo_send_cmd_cptkbd(struct hid_device *hdev, + unsigned char byte2, unsigned char byte3) +{ + int ret; + unsigned char buf[] = {0x18, byte2, byte3}; + + switch (hdev->product) { + case USB_DEVICE_ID_LENOVO_CUSBKBD: + ret = hid_hw_raw_request(hdev, 0x13, buf, sizeof(buf), + HID_FEATURE_REPORT, HID_REQ_SET_REPORT); + break; + case USB_DEVICE_ID_LENOVO_CBTKBD: + ret = hid_hw_output_report(hdev, buf, sizeof(buf)); + break; + default: + ret = -EINVAL; + break; + } + + return ret < 0 ? ret : 0; /* BT returns 0, USB returns sizeof(buf) */ +} + +static void lenovo_features_set_cptkbd(struct hid_device *hdev) +{ + int ret; + struct lenovo_drvdata_cptkbd *cptkbd_data = hid_get_drvdata(hdev); + + ret = lenovo_send_cmd_cptkbd(hdev, 0x05, cptkbd_data->fn_lock); + if (ret) + hid_err(hdev, "Fn-lock setting failed: %d\n", ret); +} + +static ssize_t attr_fn_lock_show_cptkbd(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct hid_device *hdev = container_of(dev, struct hid_device, dev); + struct lenovo_drvdata_cptkbd *cptkbd_data = hid_get_drvdata(hdev); + + return snprintf(buf, PAGE_SIZE, "%u\n", cptkbd_data->fn_lock); +} + +static ssize_t attr_fn_lock_store_cptkbd(struct device *dev, + struct device_attribute *attr, + const char *buf, + size_t count) +{ + struct hid_device *hdev = container_of(dev, struct hid_device, dev); + struct lenovo_drvdata_cptkbd *cptkbd_data = hid_get_drvdata(hdev); + int value; + + if (kstrtoint(buf, 10, &value)) + return -EINVAL; + if (value < 0 || value > 1) + return -EINVAL; + + cptkbd_data->fn_lock = !!value; + lenovo_features_set_cptkbd(hdev); + + return count; +} + +static struct device_attribute dev_attr_fn_lock_cptkbd = + __ATTR(fn_lock, S_IWUSR | S_IRUGO, + attr_fn_lock_show_cptkbd, + attr_fn_lock_store_cptkbd); + +static struct attribute *lenovo_attributes_cptkbd[] = { + &dev_attr_fn_lock_cptkbd.attr, + NULL +}; + +static const struct attribute_group lenovo_attr_group_cptkbd = { + .attrs = lenovo_attributes_cptkbd, +}; + +static int lenovo_raw_event(struct hid_device *hdev, + struct hid_report *report, u8 *data, int size) +{ + /* + * Compact USB keyboard's Fn-F12 report holds down many other keys, and + * its own key is outside the usage page range. Remove extra + * keypresses and remap to inside usage page. + */ + if (unlikely(hdev->product == USB_DEVICE_ID_LENOVO_CUSBKBD + && size == 3 + && data[0] == 0x15 + && data[1] == 0x94 + && data[2] == 0x01)) { + data[1] = 0x0; + data[2] = 0x4; + } + + return 0; +} + static int lenovo_features_set_tpkbd(struct hid_device *hdev) { struct hid_report *report; @@ -415,6 +566,46 @@ static int lenovo_probe_tpkbd(struct hid_device *hdev) return 0; } +static int lenovo_probe_cptkbd(struct hid_device *hdev) +{ + int ret; + struct lenovo_drvdata_cptkbd *cptkbd_data; + + /* All the custom action happens on the USBMOUSE device for USB */ + if (hdev->product == USB_DEVICE_ID_LENOVO_CUSBKBD + && hdev->type != HID_TYPE_USBMOUSE) { + hid_dbg(hdev, "Ignoring keyboard half of device\n"); + return 0; + } + + cptkbd_data = devm_kzalloc(&hdev->dev, + sizeof(*cptkbd_data), + GFP_KERNEL); + if (cptkbd_data == NULL) { + hid_err(hdev, "can't alloc keyboard descriptor\n"); + return -ENOMEM; + } + hid_set_drvdata(hdev, cptkbd_data); + + /* + * Tell the keyboard a driver understands it, and turn F7, F9, F11 into + * regular keys + */ + ret = lenovo_send_cmd_cptkbd(hdev, 0x01, 0x03); + if (ret) + hid_warn(hdev, "Failed to switch F7/9/11 mode: %d\n", ret); + + /* Turn Fn-Lock on by default */ + cptkbd_data->fn_lock = true; + lenovo_features_set_cptkbd(hdev); + + ret = sysfs_create_group(&hdev->dev.kobj, &lenovo_attr_group_cptkbd); + if (ret) + hid_warn(hdev, "Could not create sysfs group: %d\n", ret); + + return 0; +} + static int lenovo_probe(struct hid_device *hdev, const struct hid_device_id *id) { @@ -436,6 +627,10 @@ static int lenovo_probe(struct hid_device *hdev, case USB_DEVICE_ID_LENOVO_TPKBD: ret = lenovo_probe_tpkbd(hdev); break; + case USB_DEVICE_ID_LENOVO_CUSBKBD: + case USB_DEVICE_ID_LENOVO_CBTKBD: + ret = lenovo_probe_cptkbd(hdev); + break; default: ret = 0; break; @@ -470,12 +665,22 @@ static void lenovo_remove_tpkbd(struct hid_device *hdev) hid_set_drvdata(hdev, NULL); } +static void lenovo_remove_cptkbd(struct hid_device *hdev) +{ + sysfs_remove_group(&hdev->dev.kobj, + &lenovo_attr_group_cptkbd); +} + static void lenovo_remove(struct hid_device *hdev) { switch (hdev->product) { case USB_DEVICE_ID_LENOVO_TPKBD: lenovo_remove_tpkbd(hdev); break; + case USB_DEVICE_ID_LENOVO_CUSBKBD: + case USB_DEVICE_ID_LENOVO_CBTKBD: + lenovo_remove_cptkbd(hdev); + break; } hid_hw_stop(hdev); @@ -483,6 +688,8 @@ static void lenovo_remove(struct hid_device *hdev) static const struct hid_device_id lenovo_devices[] = { { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_TPKBD) }, + { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_CUSBKBD) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_CBTKBD) }, { } }; @@ -494,6 +701,7 @@ static struct hid_driver lenovo_driver = { .input_mapping = lenovo_input_mapping, .probe = lenovo_probe, .remove = lenovo_remove, + .raw_event = lenovo_raw_event, }; module_hid_driver(lenovo_driver); diff --git a/include/linux/hid.h b/include/linux/hid.h index 77632cf..fca74f1 100644 --- a/include/linux/hid.h +++ b/include/linux/hid.h @@ -167,6 +167,7 @@ struct hid_item { #define HID_UP_MSVENDOR 0xff000000 #define HID_UP_CUSTOM 0x00ff0000 #define HID_UP_LOGIVENDOR 0xffbc0000 +#define HID_UP_LNVENDOR 0xffa00000 #define HID_UP_SENSOR 0x00200000 #define HID_USAGE 0x0000ffff ================================================ FILE: kernel-patch/1001-HID-lenovo-Move-USB-KEY_FILE-to-0x00f9-to-prevent-sc.patch ================================================ From 40d0b99beb52e25a444b914e4986f6c33a43fee8 Mon Sep 17 00:00:00 2001 From: Jamie Lentin Date: Mon, 3 Nov 2014 22:14:38 +0000 Subject: [PATCH 1/2] HID: lenovo: Move USB KEY_FILE to 0x00f9 to prevent scancode clash The bluetooth keyboard also generates 0x00fa when the middle button is pressed. Move the made-up report out of the way so we don't trigger KEY_FILE when middle button is pressed Signed-off-by: Jamie Lentin --- drivers/hid/hid-lenovo.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c index bf227f7..4716f1e 100644 --- a/drivers/hid/hid-lenovo.c +++ b/drivers/hid/hid-lenovo.c @@ -85,13 +85,13 @@ static int lenovo_input_mapping_cptkbd(struct hid_device *hdev, case 0x00f8: /* Fn-F11: View open applications (3 boxes) */ map_key_clear(KEY_SCALE); return 1; - case 0x00fa: /* Fn-Esc: Fn-lock toggle */ - map_key_clear(KEY_FN_ESC); - return 1; - case 0x00fb: /* Fn-F12: Open My computer (6 boxes) USB-only */ + case 0x00f9: /* Fn-F12: Open My computer (6 boxes) USB-only */ /* NB: This mapping is invented in raw_event below */ map_key_clear(KEY_FILE); return 1; + case 0x00fa: /* Fn-Esc: Fn-lock toggle */ + map_key_clear(KEY_FN_ESC); + return 1; } } @@ -207,8 +207,8 @@ static int lenovo_raw_event(struct hid_device *hdev, && data[0] == 0x15 && data[1] == 0x94 && data[2] == 0x01)) { - data[1] = 0x0; - data[2] = 0x4; + data[1] = 0x00; + data[2] = 0x01; } return 0; -- 2.1.0 ================================================ FILE: kernel-patch/1002-HID-lenovo-Don-t-set-EV_REP-to-avoid-repeating-mice-.patch ================================================ From 941f424a0e0a370727f8aaaafc2e289aa6187c9d Mon Sep 17 00:00:00 2001 From: Jamie Lentin Date: Mon, 3 Nov 2014 22:18:59 +0000 Subject: [PATCH 2/2] HID: lenovo: Don't set EV_REP to avoid repeating mice buttons On the USB keyboard, the VENDOR hotkeys share the same device as the mouse. Setting EV_REP also affects mouse buttons, so leave it off. The bluetooth keyboard still has autorepeating mouse buttons, as it only has one device and is set by the KEYBOARD pages. Signed-off-by: Jamie Lentin --- drivers/hid/hid-lenovo.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c index 4716f1e..4c55f4d 100644 --- a/drivers/hid/hid-lenovo.c +++ b/drivers/hid/hid-lenovo.c @@ -62,7 +62,6 @@ static int lenovo_input_mapping_cptkbd(struct hid_device *hdev, /* HID_UP_LNVENDOR = USB, HID_UP_MSVENDOR = BT */ if ((usage->hid & HID_USAGE_PAGE) == HID_UP_MSVENDOR || (usage->hid & HID_USAGE_PAGE) == HID_UP_LNVENDOR) { - set_bit(EV_REP, hi->input->evbit); switch (usage->hid & HID_USAGE) { case 0x00f1: /* Fn-F4: Mic mute */ map_key_clear(KEY_MICMUTE); -- 2.1.0 ================================================ FILE: kernel-patch/2001-HID-lenovo-Add-sensitivity-control-to-compact-keyboa.patch ================================================ From 5120cff1d8ebb1e8cc7d5dd1c2396f405ff23717 Mon Sep 17 00:00:00 2001 From: Jamie Lentin Date: Tue, 11 Nov 2014 22:18:31 +0000 Subject: [PATCH 1/2] HID: lenovo: Add sensitivity control to compact keyboards The trackpoint sensitivity can also be controlled, expose this via sysfs. Signed-off-by: Jamie Lentin --- drivers/hid/hid-lenovo.c | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c index 4c55f4d..0f35a76 100644 --- a/drivers/hid/hid-lenovo.c +++ b/drivers/hid/hid-lenovo.c @@ -38,6 +38,7 @@ struct lenovo_drvdata_tpkbd { struct lenovo_drvdata_cptkbd { bool fn_lock; + int sensitivity; }; #define map_key_clear(c) hid_map_usage_clear(hi, usage, bit, max, EV_KEY, (c)) @@ -145,6 +146,7 @@ static void lenovo_features_set_cptkbd(struct hid_device *hdev) struct lenovo_drvdata_cptkbd *cptkbd_data = hid_get_drvdata(hdev); ret = lenovo_send_cmd_cptkbd(hdev, 0x05, cptkbd_data->fn_lock); + ret = lenovo_send_cmd_cptkbd(hdev, 0x02, cptkbd_data->sensitivity); if (ret) hid_err(hdev, "Fn-lock setting failed: %d\n", ret); } @@ -179,13 +181,50 @@ static ssize_t attr_fn_lock_store_cptkbd(struct device *dev, return count; } +static ssize_t attr_sensitivity_show_cptkbd(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct hid_device *hdev = container_of(dev, struct hid_device, dev); + struct lenovo_drvdata_cptkbd *cptkbd_data = hid_get_drvdata(hdev); + + return snprintf(buf, PAGE_SIZE, "%u\n", + cptkbd_data->sensitivity); +} + +static ssize_t attr_sensitivity_store_cptkbd(struct device *dev, + struct device_attribute *attr, + const char *buf, + size_t count) +{ + struct hid_device *hdev = container_of(dev, struct hid_device, dev); + struct lenovo_drvdata_cptkbd *cptkbd_data = hid_get_drvdata(hdev); + int value; + + if (kstrtoint(buf, 10, &value) || value < 1 || value > 255) + return -EINVAL; + + cptkbd_data->sensitivity = value; + lenovo_features_set_cptkbd(hdev); + + return count; +} + + static struct device_attribute dev_attr_fn_lock_cptkbd = __ATTR(fn_lock, S_IWUSR | S_IRUGO, attr_fn_lock_show_cptkbd, attr_fn_lock_store_cptkbd); +static struct device_attribute dev_attr_sensitivity_cptkbd = + __ATTR(sensitivity, S_IWUSR | S_IRUGO, + attr_sensitivity_show_cptkbd, + attr_sensitivity_store_cptkbd); + + static struct attribute *lenovo_attributes_cptkbd[] = { &dev_attr_fn_lock_cptkbd.attr, + &dev_attr_sensitivity_cptkbd.attr, NULL }; @@ -594,8 +633,9 @@ static int lenovo_probe_cptkbd(struct hid_device *hdev) if (ret) hid_warn(hdev, "Failed to switch F7/9/11 mode: %d\n", ret); - /* Turn Fn-Lock on by default */ + /* Set keyboard settings to known state */ cptkbd_data->fn_lock = true; + cptkbd_data->sensitivity = 0x05; lenovo_features_set_cptkbd(hdev); ret = sysfs_create_group(&hdev->dev.kobj, &lenovo_attr_group_cptkbd); -- 2.1.3 ================================================ FILE: kernel-patch/2002-HID-lenovo-Use-native-middle-button-mode-for-compact.patch ================================================ From 6550fd74d659e44b8711534eea67fd8868d81a3b Mon Sep 17 00:00:00 2001 From: Jamie Lentin Date: Sun, 14 Dec 2014 12:53:00 +0000 Subject: [PATCH 2/2] HID: lenovo: Use native middle-button mode for compact keyboards By default the middle button is in a compatibility mode, and generates standard wheel events when dragging with the middle trackpoint button. Unfortunately this is buggy: * The middle button comes up before starting wheel events, causing a middle click on whatever the mouse cursor was sitting on * The USB keyboard always generates the "native" horizontal wheel event, regardless of mode. Instead, enable the "native" mode the Windows driver uses, and add support for the custom events this generates. This fixes the USB keyboard wheel events, and the middle-click up event comes after the wheel events. Signed-off-by: Jamie Lentin --- drivers/hid/hid-lenovo.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c index 0f35a76..c4c3f09 100644 --- a/drivers/hid/hid-lenovo.c +++ b/drivers/hid/hid-lenovo.c @@ -92,6 +92,38 @@ static int lenovo_input_mapping_cptkbd(struct hid_device *hdev, case 0x00fa: /* Fn-Esc: Fn-lock toggle */ map_key_clear(KEY_FN_ESC); return 1; + case 0x00fb: /* Middle mouse button (in native mode) */ + map_key_clear(BTN_MIDDLE); + return 1; + } + } + + /* Compatibility middle/wheel mappings should be ignored */ + if (usage->hid == HID_GD_WHEEL) + return -1; + if ((usage->hid & HID_USAGE_PAGE) == HID_UP_BUTTON && + (usage->hid & HID_USAGE) == 0x003) + return -1; + if ((usage->hid & HID_USAGE_PAGE) == HID_UP_CONSUMER && + (usage->hid & HID_USAGE) == 0x238) + return -1; + + /* Map wheel emulation reports: 0xffa1 = USB, 0xff10 = BT */ + if ((usage->hid & HID_USAGE_PAGE) == 0xff100000 || + (usage->hid & HID_USAGE_PAGE) == 0xffa10000) { + field->flags |= HID_MAIN_ITEM_RELATIVE | HID_MAIN_ITEM_VARIABLE; + field->logical_minimum = -127; + field->logical_maximum = 127; + + switch (usage->hid & HID_USAGE) { + case 0x0000: + hid_map_usage(hi, usage, bit, max, EV_REL, 0x06); + return 1; + case 0x0001: + hid_map_usage(hi, usage, bit, max, EV_REL, 0x08); + return 1; + default: + return -1; } } @@ -633,6 +665,11 @@ static int lenovo_probe_cptkbd(struct hid_device *hdev) if (ret) hid_warn(hdev, "Failed to switch F7/9/11 mode: %d\n", ret); + /* Switch middle button to native mode */ + ret = lenovo_send_cmd_cptkbd(hdev, 0x09, 0x01); + if (ret) + hid_warn(hdev, "Failed to switch middle button: %d\n", ret); + /* Set keyboard settings to known state */ cptkbd_data->fn_lock = true; cptkbd_data->sensitivity = 0x05; -- 2.1.3 ================================================ FILE: kernel-patch/3001-HID-lenovo-Use-constants-for-axes-names.patch ================================================ From 2decbccdcfcfe19b35ed7424881d57213bfc5a17 Mon Sep 17 00:00:00 2001 From: Jamie Lentin Date: Sun, 2 Aug 2015 10:45:39 +0100 Subject: [PATCH 1/3] HID: lenovo: Use constants for axes names Signed-off-by: Jamie Lentin --- drivers/hid/hid-lenovo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c index c4c3f09..65df414 100644 --- a/drivers/hid/hid-lenovo.c +++ b/drivers/hid/hid-lenovo.c @@ -117,10 +117,10 @@ static int lenovo_input_mapping_cptkbd(struct hid_device *hdev, switch (usage->hid & HID_USAGE) { case 0x0000: - hid_map_usage(hi, usage, bit, max, EV_REL, 0x06); + hid_map_usage(hi, usage, bit, max, EV_REL, REL_HWHEEL); return 1; case 0x0001: - hid_map_usage(hi, usage, bit, max, EV_REL, 0x08); + hid_map_usage(hi, usage, bit, max, EV_REL, REL_WHEEL); return 1; default: return -1; -- 2.1.4 ================================================ FILE: kernel-patch/3002-HID-lenovo-Add-missing-return-value-check.patch ================================================ From 543e190688a51d947a024c011a09dbc6ed23a62b Mon Sep 17 00:00:00 2001 From: Jamie Lentin Date: Sun, 2 Aug 2015 10:46:10 +0100 Subject: [PATCH 2/3] HID: lenovo: Add missing return-value check Signed-off-by: Jamie Lentin --- drivers/hid/hid-lenovo.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c index 65df414..265bfe2 100644 --- a/drivers/hid/hid-lenovo.c +++ b/drivers/hid/hid-lenovo.c @@ -178,9 +178,12 @@ static void lenovo_features_set_cptkbd(struct hid_device *hdev) struct lenovo_drvdata_cptkbd *cptkbd_data = hid_get_drvdata(hdev); ret = lenovo_send_cmd_cptkbd(hdev, 0x05, cptkbd_data->fn_lock); - ret = lenovo_send_cmd_cptkbd(hdev, 0x02, cptkbd_data->sensitivity); if (ret) hid_err(hdev, "Fn-lock setting failed: %d\n", ret); + + ret = lenovo_send_cmd_cptkbd(hdev, 0x02, cptkbd_data->sensitivity); + if (ret) + hid_err(hdev, "Sensitivity setting failed: %d\n", ret); } static ssize_t attr_fn_lock_show_cptkbd(struct device *dev, -- 2.1.4 ================================================ FILE: kernel-patch/3003-HID-lenovo-Hide-middle-button-press-until-release.patch ================================================ From 9a8c4f2d805fbc4589ab238e7f04cd1a34f5b922 Mon Sep 17 00:00:00 2001 From: Jamie Lentin Date: Sun, 2 Aug 2015 10:49:30 +0100 Subject: [PATCH 3/3] HID: lenovo: Hide middle-button press until release Don't relay a middle button press to userspace until release, and then only if there was no scroll events inbetween. This is closer to what Xorg's wheel emulation does, and avoids spurious middle-click pastes. Signed-off-by: Jamie Lentin --- drivers/hid/hid-lenovo.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c index 265bfe2..629d988 100644 --- a/drivers/hid/hid-lenovo.c +++ b/drivers/hid/hid-lenovo.c @@ -37,6 +37,7 @@ struct lenovo_drvdata_tpkbd { }; struct lenovo_drvdata_cptkbd { + u8 middlebutton_state; /* 0:Up, 1:Down (undecided), 2:Scrolling */ bool fn_lock; int sensitivity; }; @@ -287,6 +288,53 @@ static int lenovo_raw_event(struct hid_device *hdev, return 0; } +static int lenovo_event_cptkbd(struct hid_device *hdev, + struct hid_field *field, struct hid_usage *usage, __s32 value) +{ + struct lenovo_drvdata_cptkbd *cptkbd_data = hid_get_drvdata(hdev); + + /* "wheel" scroll events */ + if (usage->type == EV_REL && (usage->code == REL_WHEEL || + usage->code == REL_HWHEEL)) { + /* Scroll events disable middle-click event */ + cptkbd_data->middlebutton_state = 2; + return 0; + } + + /* Middle click events */ + if (usage->type == EV_KEY && usage->code == BTN_MIDDLE) { + if (value == 1) { + cptkbd_data->middlebutton_state = 1; + } else if (value == 0) { + if (cptkbd_data->middlebutton_state == 1) { + /* No scrolling inbetween, send middle-click */ + input_event(field->hidinput->input, + EV_KEY, BTN_MIDDLE, 1); + input_sync(field->hidinput->input); + input_event(field->hidinput->input, + EV_KEY, BTN_MIDDLE, 0); + input_sync(field->hidinput->input); + } + cptkbd_data->middlebutton_state = 0; + } + return 1; + } + + return 0; +} + +static int lenovo_event(struct hid_device *hdev, struct hid_field *field, + struct hid_usage *usage, __s32 value) +{ + switch (hdev->product) { + case USB_DEVICE_ID_LENOVO_CUSBKBD: + case USB_DEVICE_ID_LENOVO_CBTKBD: + return lenovo_event_cptkbd(hdev, field, usage, value); + default: + return 0; + } +} + static int lenovo_features_set_tpkbd(struct hid_device *hdev) { struct hid_report *report; @@ -674,6 +722,7 @@ static int lenovo_probe_cptkbd(struct hid_device *hdev) hid_warn(hdev, "Failed to switch middle button: %d\n", ret); /* Set keyboard settings to known state */ + cptkbd_data->middlebutton_state = 0; cptkbd_data->fn_lock = true; cptkbd_data->sensitivity = 0x05; lenovo_features_set_cptkbd(hdev); @@ -781,6 +830,7 @@ static struct hid_driver lenovo_driver = { .probe = lenovo_probe, .remove = lenovo_remove, .raw_event = lenovo_raw_event, + .event = lenovo_event, }; module_hid_driver(lenovo_driver); -- 2.1.4 ================================================ FILE: tp-compact-bt-keyboard/README.md ================================================ # ThinkPad Compact Bluetooth Keyboard with TrackPoint [Images of BT keyboard internals](http://bdm.cc/2016/06/lenovo-bluetooth-keyboard-repairs/) * **HID Name:** ThinkPad Compact Bluetooth Keyboard with TrackPoint * **Model:** KT-1255 * **Fru P/N:** 03X8713 * **Vendor ID:** 0x17ef * **Product ID:** 0x6048 The Lenovo Thinkpad Compact Keyboard with TrackPoint is a repackaging of a Thinkpad laptop keyboard into a stand-alone case with a Bluetooth connection to the computer. Following the current fashion, Lenovo has made the top row of keys serve two purposes, using them for both the traditional Fn keys and for "hotkeys" intended to control various functions such as volume and screen brightness. Pressing FnLk (Fn+Esc) switches these keys between generating Fn keypresses and hotkey keypresses, but unlike laptop keyboards this mode change is handled not by the keyboard itself but by Lenovo's keyboard driver for Windows. ## Pairing the Keyboard The Bluetooth keyboard uses [BT 2.1 Simple Secure Pairing](https://en.wikipedia.org/wiki/Bluetooth#Pairing_mechanisms) (SSP), which should be supported by modern Linux distributions. Several different utilities can be used to pair the keyboard. If your distribution does not support SSP, or if you have problems pairing with SSP, you can try disabling it with ``hciconfig hci0 sspmode 0``. [See this note on a Logitech keyboard](https://wiki.archlinux.org/index.php/Bluetooth#Logitech_keyboard_does_not_pair). ### bluetoothctl Pairing can be done with the ``pair`` command. You should be prompted for the PIN code to type as part of the process. See: https://wiki.archlinux.org/index.php/Bluetooth_keyboard#Pairing_process ### bluetooth-wizard Select the device (keyboard) and click "Continue". Watch for the PIN code in the hcidump window and enter that. See: https://bugzilla.redhat.com/show_bug.cgi?id=1019287#c3 ### bluez-test-* Versions of Bluez that ship with these scripts don't support SSP and thus don't report the PIN code the keyboard requires you to use. To get around this, run the following in a separate console before you start pairing: sudo hcidump -at | grep -i passkey -A1 During the pairing process, you are looking out for lines like: > HCI Event: User Passkey Notification (0x3b) plen 10 bdaddr 90:7F:61:01:02:03 passkey 123456 In this case, ``123456`` is the PIN you need to enter. Put the keyboard into discoverable mode by holding down the power button until the light starts flashing. Then use ``hcitool scan`` to find out what the address of your keyboard is. It should resemble ``90:7F:61:01:02:03``. Firstly, create the device: bluez-test-device create 90:7F:61:01:02:03 Then start trying to pair: bluez-simple-agent hci0 90:7F:61:01:02:03 You should see the passkey appear in the hcidump window. Type that passkey at the prompt (using a keyboard already connected to your computer) and press enter. You should now be paired. Finally: bluez-test-device trusted 90:7F:61:01:02:03 1 bluez-test-input connect 90:7F:61:01:02:03 ## Toggling FnLk ### Linux Linux kernels 3.17 and above have support for toggling Fn-Lock in the [hid-lenovo](https://elixir.bootlin.com/linux/latest/source/drivers/hid/hid-lenovo.c) module. This means all keys should work out the box, and you can control whether fn_lock is enabled by: echo 0 > /sys/bus/hid/devices/*17EF\:604*/fn_lock The kernel can't currently switch fn_lock automatically for you, however you can use [esekeyd](https://github.com/burghardt/esekeyd) to map KEY_FN_ESC to a script such as: { grep -q 1 /sys/bus/hid/devices/*17EF\:604*/fn_lock && echo 0 || echo 1; } \ > /sys/bus/hid/devices/*17EF\:604*/fn_lock ...to toggle it. ### Disable FnLk by default Linux assumes you want Fn keys to act as Fn keys and Enables Fn-Lock, however you may want the opposite. Thinkpad TrackPoint Keyboard II is in Linux kernel 5.19 and greater. If so create a udev rule with the following command: #Creates udev rules file cat <<'EOF' > /etc/udev/rules.d/99-thinkpad-trackpoint-disable-fn-lock.rules #ThinkPad TrackPoint Keyboard I & II USB SUBSYSTEM=="hid", \ DRIVER=="lenovo", \ ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="6047|60ee", \ ATTR{fn_lock}="0" #ThinkPad TrackPoint Keyboard I & II Bluetooth SUBSYSTEM=="input", \ ATTRS{id/vendor}=="17ef", ATTRS{id/product}=="6048|60e1", \ RUN+="/bin/sh -c 'sleep 0.1; FILE=\"/sys/$devpath/device/fn_lock\"; [ -e \"$FILE\" ] && echo 0 > \"$FILE\"'" EOF #Run commands to reload udev udevadm control --reload-rules && udevadm trigger ### Apple OS X (MacOS) [tpkb](https://github.com/unknownzerx/tpkb) is a Mac userland tool similar to ``tp-compact-keyboard``. It uses the cross-platform hidapi library. ## Replacement trackpoint caps The keyboards use the "ThinkPad Low Profile TrackPoint Caps" (FRU 0A33908 for a 10-pack) by default. The original-size will fit also, but stick out more. This is fine for the cat-tongue, but with the others your finger can catch the edge. ## Disassembling the Keyboard The upper part of the keyboard case is just clipped on; run something around the seam on the underside of the keyboard to release it. The keyboard itself is fastened to the lower part of the case with double-sided tape. Very gentle persuasion (probably some heat too) removes it. The keyboard itself looks like it comes out of a Thinkpad, with metal plates stuck to it to add heft. The keyboard connects to a controller board in the top right. ## Repairing the Trackpoint Some users of the Bluetooth keyboard have found that the TrackPoint stops working whilst the rest of the keyboard is fine. This isn't a software issue; apparently the chip that controls the TrackPoint isn't correctly soldered down. See: http://bdm.cc/2016/06/lenovo-bluetooth-keyboard-repairs/ ## Old userland utility The linux kernel can now control this directly, the below is of historical interest only. ``tp-compact-keyboard`` is a small utility to control some features of the keyboard, most importantly to enable FnLk. It works only with the Bluetooth keyboard, whilst the USB keyboard accepts the same commands but not in the same way, one has to tweak the hidraw ioctls which (AFAIK) can't be done in a Bash script. #### Requirements This was developed under a Debian unstable kernel, 3.12-1-amd64, and has been reported to work on kernels as early as 3.10 (CentOS 7). However older kernels (3.6, for example) don't send the report; I'm not currently sure why. #### Using To enable or disable FnLk on all connected ThinkPad Bluetooth keyboards, run ``./tp-compact-keyboard --fn-lock-enable`` or ``./tp-compact-keyboard --fn-lock-disable``. The program has a few other functions as well, but they're not very useful on their own. Have a look at the source. #### Other options There are a few other options, however they are mostly useless without a custom kernel module handling the keyboard: --sensitivity xx Set sensitivity of TrackPoint. xx is hex value 01--09 (although values up to FF work). --native-fn-enable By default, F7/F9/F11 generate a string of keypresses that might be useful under Windows. This stops this, and instead only generates custom events. --native-mouse-enable The middle button generates 2 events by default, but Linux only understands one of them. This disables the event that Linux does understand, leaving you with no middle button. --native-mouse-disable Restore middle button to a working state. Pair/unpair isn't enough to reset the keyboard, you need to power down the keyboard to get it back to it's original state. #### How the commands were found I worked out the custom commands by sniffing what the Windows driver did. First I set up a Windows XP virtual machine in KVM/QEMU and installed the drivers. Then I disconnected the keyboard from my computer and ensured that the user running QEMU could write to the ``/dev/bus/usb`` node associated with my Bluetooth dongle. Wireshark was readied for capture: # modprobe usbmon # wireshark Then, I let Windows use the Bluetooth dongle: (qemu) usb_add host:0a5c:217f If you capture the whole association process then you should be able to view HID packets to/from the keyboard (filter for ``bthid``). The particuarly interesting ones here are the ones going to the keyboard. ================================================ FILE: tp-compact-bt-keyboard/tp-compact-keyboard ================================================ #!/bin/sh if [ "$1" = "--help" ]; then cat </dev/null elif [ "$1" = "--fn-lock-enable" ]; then echo Enabling Fn lock for /dev/$HIDRAW... /bin/echo -ne "\x18\x05\x01" | dd of=/dev/$HIDRAW 2>/dev/null elif [ "$1" = "--native-fn-enable" ]; then echo Enabling native mode for F7/F9/F11 for /dev/$HIDRAW... /bin/echo -ne "\x18\x01\x03" | dd of=/dev/$HIDRAW 2>/dev/null elif [ "$1" = "--native-mouse-disable" ]; then echo Disabling native mode for middle button for /dev/$HIDRAW... /bin/echo -ne "\x18\x09\x00" | dd of=/dev/$HIDRAW 2>/dev/null elif [ "$1" = "--native-mouse-enable" ]; then echo Enabling native mode for middle button for /dev/$HIDRAW... /bin/echo -ne "\x18\x09\x01" | dd of=/dev/$HIDRAW 2>/dev/null elif [ "$1" = "--sensitivity" ]; then echo Setting sensitivity for /dev/$HIDRAW to $2... /bin/echo -ne "\x18\x02\x$2" | dd of=/dev/$HIDRAW 2>/dev/null else echo "No actions specified. Run --help to see possible actions." fi done # All HID DATA packets sent to keyboard on startup # 18 01 03 - Make F7/F9/F11 return custom single events, as opposed to strings of keys # 18 05 01 - Enable fn-lock # 18 02 05 - Sensitivity, 01--09 in windows, 00--FF works # 18 09 01 - Disable middle mouse button's standard response (leave custom one working) ================================================ FILE: tp-compact-usb-keyboard/Makefile ================================================ # kbuild trick to avoid linker error. Can be omitted if a module is built. obj- := dummy.o all: tp-compact-usb-keyboard # List of programs to build hostprogs-y := tp-compact-usb-keyboard # Tell kbuild to always build the programs always := $(hostprogs-y) HOSTCFLAGS_hid-example.o += -I$(objtree)/usr/include ================================================ FILE: tp-compact-usb-keyboard/README.md ================================================ # ThinkPad Compact USB Keyboard with TrackPoint [Images of USB keyboard internals](tp-compact-usb-keyboard/) * **HID Name:** Lenovo ThinkPad Compact Keyboard with TrackPoint * **Model:** KU-1255 * **Fru P/N:** 03X8746 * **Vendor ID:** 0x17ef * **Product ID:** 0x6047 The Lenovo Thinkpad Compact Keyboard with TrackPoint is a repackaging of a Thinkpad laptop keyboard into a stand-alone case with a cabled USB connection to the computer. Following the current fashion, Lenovo has made the top row of keys serve two purposes, using them for both the traditional Fn keys and for "hotkeys" intended to control various functions such as volume and screen brightness. Pressing FnLk (Fn+Esc) switches these keys between generating Fn keypresses and hotkey keypresses, but unlike laptop keyboards this mode change is handled not by the keyboard itself but by Lenovo's keyboard driver for Windows. ## Toggling FnLk Same as [the bluetooth keyboard](../tp-compact-bt-keyboard/#toggling-fnlk) ## Replacement trackpoint caps Same as [the bluetooth keyboard](../tp-compact-bt-keyboard/#replacement-trackpoint-caps) ## Disassembling the Keyboard Same as [the bluetooth keyboard](../tp-compact-bt-keyboard/#disassembling-the-keyboard) ## Repairing the Trackpoint Same as [the bluetooth keyboard](../tp-compact-bt-keyboard/#repairing-the-trackpoint) ## Old userland utility The linux kernel can now control this directly, the below is of historical interest only. The C utility in this directory demonstrates the commands understood by the keyboard. It supports: * [Thinkpad Compact USB keyboard with Trackpoint](https://www.google.com/search?tbm=isch&q=KU-1255) (KU-1255) * [Lenovo Low Profile USB Keyboard](https://www.google.com/search?tbm=isch&q=LXH-JME2209U) (LXH-JME2209U) Anything this tool can do is already handled by linux now, but the could be used to add support to another operating system, for example. To build, run ``make``. ### udev rule To run ``tp-compact-usb-keyboard`` whenever a keyboard is inserted, you can use udev rule similar to the following: ``` SUBSYSTEM=="hidraw", ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="6018", RUN+="/path/to/tp-compact-usb-keyboard %E{DEVNAME}" ``` ================================================ FILE: tp-compact-usb-keyboard/tp-compact-usb-keyboard.c ================================================ /* * Utility to play with Thinkpad compact USB keyboard * * Based on Hidraw Userspace Example * * Copyright (c) 2010 Alan Ott * Copyright (c) 2010 Signal 11 Software * * The code may be used by anyone for any purpose, * and can serve as a starting point for developing * applications using hidraw. */ /* Linux */ #include #include #include /* * Ugly hack to work around failing compilation on systems that don't * yet populate new version of hidraw.h to userspace. */ #ifndef HIDIOCSFEATURE #warning Please have your distro update the userspace kernel headers #define HIDIOCSFEATURE(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x06, len) #define HIDIOCGFEATURE(len) _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x07, len) #endif /* Unix */ #include #include #include #include #include /* C */ #include #include #include #include void send_cmd(int fd, int arg1, int arg2) { int res; char buf[3]; memset(buf, 0x0, sizeof(buf)); buf[0] = 0x13; buf[1] = arg1; buf[2] = arg2; res = ioctl(fd, HIDIOCSFEATURE(3), buf); if (res < 0) perror("HIDIOCSFEATURE"); else if (res == 3) printf("Sent command %02x %02x\n", arg1, arg2); else printf("ioctl HIDIOCSFEATURE returned: %d\n", res); } int main(int argc, char **argv) { int fd; if (argc < 2) { printf("Usage: tp-compact-usb-keyboard (hidraw device, e.g. /dev/hidraw1)\n"); return 1; } /* Open the Device with non-blocking reads. In real life, don't use a hard coded path; use libudev instead. */ fd = open(argv[1], O_RDWR|O_NONBLOCK); if (fd < 0) { perror("Unable to open device"); return 1; } /* Same commands as bluetooth, except they start with 13 * * 13 01 03 - Make F7/F9/F11 return custom single events, as opposed to strings of keys * 13 02 05 - Sensitivity 01--09 * 13 05 01 - Enable fn-lock * 13 05 00 - Disable fn-lock * 13 09 01 - Disable middle mouse button's standard response (leave custom one working) * 13 09 00 - Enable middle mouse button's standard response (leave custom one working) * 13 02 01 -- 09 - Sensitivity control */ /* Enable Fn keys */ send_cmd(fd, 0x01, 0x03); /* Enable native middle mouse mode */ send_cmd(fd, 0x09, 0x01); /* Fn-lock enable */ send_cmd(fd, 0x05, 0x01); } ================================================ FILE: tp-multi-connect/README.md ================================================ Thinkpad Multi-Connect Keyboard =============================== There is also another physically-identical keyboard, the Thinkpad *Multi-Connect* Keyboard, which allows you to toggle between 3 paired devices. * **HID Name:** ThinkPad Multi Connect Bluetooth Keyboard with Trackpoint * **Model:** KT-1525 * **P/N:** 4X30K12182 * **Fru P/N:** 03X7111 * **Vendor ID:** 0x17ef * **Product ID:** 0x6083 * **MFG:** CEM 2019-04-02 It appears to be China-only, and only available through sites like AliExpress. There are no drivers for any OS (iOS/Android or Windows), just a single-sheet manual is available here: http://webdoc.lenovo.com.cn/lenovowsi/new_cskb/att/147372/%E5%BF%AB%E9%80%9F%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97.pdf Unlike the Compact keyboards, the keyboard does not have (known) built-in Fn-Lock functions, Fn, Fn-F1 and F1 are all separate scancodes, so they can be remapped using a ``hwdb`` database. Keyboard-supported key combinations: * **Fn+Up/Down:** Trackpoint sensitivity * **Fn+Delete:** Change paired device type (Windows/Android/iOS). Changes behaviour of some keys, e.g. Super. There is no known way of performing Fn-Lock (even under windows), or changing middle-button behaviour. See: https://github.com/lentinj/tp-compact-keyboard/issues/48 ================================================ FILE: tp-tablet2/README.md ================================================ Thinkpad Tablet 2 Keyboard ========================== * [User guide](https://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles_pdf/tablet2_bluetooth_keyboard_ug_en_0b40450.pdf) * **HID Name:** ThinkPad Keyboard / ThinkPad Keyboard Mouse / ThinkPad Keyboard (3 HID endpoints) * **Model:** EBK-209A * **Fru P/N:** O4Y1511 * **Vendor ID:** 0x17ef * **Product ID:** 0x603f Older than the compact keyboards the above, it was sold with the Tablet 2 and has a fold-out stand for said tablet. It doesn't have a trackpoint, rather a Blackberry-esque tiny trackpad which you use like a trackball. Pairing ------- Pairing is a bit temperamental, it helps to reset the keyboard. * Enter pair mode: ``Fn``+``Delete`` * Full reset: Turn off keyboard, pull power switch pressing ``Esc``+``Delete`` until status LED blinks Amber. * There is also a paperclip hole next to the charging LED that also factory resets Dissassembly ------------ * Unclip the frame around the keyboard, the power slider just pokes the real button underneath. * Undo the 4 screws holding the keyboard down (including the tri-wing screw with ground connection) * Gently pry the keyboard from the metal backing plate it's glued to * The keyboard ribbon cable loops around underneath the trackpoint buttons, don't pry there * The trackpoint ribbon is underneath the trackpoint * Do **not** pry the backing plate away from the bottom plastic, whilst some screws are visible and it looks like it will come off that way, there are more screws underneath the keyboard. * Undo all the metal backing plate screws. Drivers ------- Drivers are listed [as part of the Thinkpad Tablet 2 page](https://pcsupport.lenovo.com/gb/en/products/tablets/thinkpad-tablet-series/thinkpad-tablet-2/downloads/driver-list), "ThinkPad Optical TrackPoint Driver for Windows 8.1 (32-bit), 8 (32-bit) - ThinkPad Tablet 2" & "Hotkey Features Integration for Windows 8.1 (32-bit, 64-bit) - ThinkPad". However, neither seem to do anything in a Windows 8 VM. ================================================ FILE: x1-tablet-keyboard/README.md ================================================ # X1 Tablet Thin Keyboard (gen1 / gen2) A USB keyboard with a connector built-in to the hinge. ![keyboard](keyboard.jpg) * **HID Name:** Lenovo ThinkPad X1 Tablet Thin Keyboard / Lenovo ThinkPad X1 Tablet Thin Keyboard Gen 2 * **Fru P/N:** 01AW626 (gen1) / 01AY129 (gen2) * **Vendor ID:** 0x17ef * **Product ID:** 0x6085 (gen1) / 0x60a3 (gen2) ## Adaptor for use as a normal USB keyboard The PCB can attach over the tablet's mounting posts, connecting with the pogo pins, breaking these out ready for a USB cable to be attached. The gerbers can be found in [Gerber_tp-x1t-gen1-adapter.zip](https://github.com/lentinj/tp-compact-keyboard/raw/master/x1-tablet-keyboard/Gerber_tp-x1t-gen1-adapter.zip), which can be uploaded to JLPCB to manufacture more. Magnets can be superglued to the PCB to hold it on, I used 8mm diameter magnets off Amazon. Hold the PCB in place on the keyboard, and they will naturally find the corresponding magnet in the connector. Then, solder a USB cable to the pins. The colour scheme *should* (but may not) be: * GND: Black * DN: White * DP: Green * 5v: Red This is my first attempt at designing a PCB, and it probably shows. * The holes are fractionally too tight, and need a slight amount of filing to fit * The hole closest to 5v should be ~1mm closer to the 5v pin, again, filing solves this You could extend this further by designing a USB socket onto the PCB, but what I've got is fine for me at this stage. ### Other adaptors This isn't the first attempt at attaching a regular USB cable to a X1 tablet, however IMO this is the quickest to replicate. * https://www.reddit.com/r/thinkpad/comments/10klmxv/pinout_of_thinkpad_x1_tablet_gen1_keyboard/?rdt=51762 * https://www.reddit.com/r/thinkpad/comments/10gneh1/diy_a_usb_thinkpad_keyboard_with_backlit_and/ * https://spawn.link/posts/2019-02-18_-_lenovo_x1_tablet_keyboard/ ## Slow trackpoint on gen2 keyboards The trackpoint sensitivity for gen2 keyboards is currently far lower than libinput sensivity can adjust. The reason behind this libinput doesn't know it's a trackpoint. This can be worked around with the following in ``/etc/udev/hwdb.d/90-thinkpad-x1-tablet-keyboard.hwdb``: ``` # Lenovo "PRIMAX ThinkPad X1 Tablet Thin Keyboard Gen 2" id-input:modalias:input:b0003v17EFp60A3e0111-e0,1,2,4,* ID_INPUT_POINTINGSTICK=1 ``` This isn't a problem for gen1, since the hid-rmi driver it uses exposes a full PS/2 port which the trackpoint driver attaches to. In gen2, hid-multitouch receives a combined HID report, with both trackpad & touchpoint events. The real solution is probably to register all mice applications as trackpoints [in hid-multitouch](https://github.com/torvalds/linux/blob/de2f378f2b771b39594c04695feee86476743a69/drivers/hid/hid-multitouch.c#L1653) (aside: This says hid core will add a prefix, but it won't because [that needs HID_QUIRK_INPUT_PER_APP](https://github.com/torvalds/linux/blob/de2f378f2b771b39594c04695feee86476743a69/drivers/hid/hid-input.c#L2006), which MT_CLS_WIN_8_FORCE_MULTI_INPUT turns off). Generally, [this quirk is used to register trackpoint devices](https://github.com/torvalds/linux/commit/4a6a4c966ccf38b2d74c05bb7c7dd3b94dbb3c30) ================================================ FILE: x1-tablet-keyboard/tp-x1t-gen1-adapter.dxf ================================================ 0 SECTION 2 HEADER 9 $ACADVER 1 AC1021 9 $ACADMAINTVER 70 50 9 $DWGCODEPAGE 3 ANSI_936 9 $LASTSAVEDBY 1 win10 9 $INSBASE 10 0.0 20 0.0 30 0.0 9 $EXTMIN 10 -3.083330976318947 20 -68.55251785135624 30 0.0 9 $EXTMAX 10 243.0101934157901 20 119.8244141966261 30 0.0 9 $LIMMIN 10 0.0 20 0.0 9 $LIMMAX 10 420.0 20 297.0 9 $ORTHOMODE 70 0 9 $REGENMODE 70 1 9 $FILLMODE 70 1 9 $QTEXTMODE 70 0 9 $MIRRTEXT 70 0 9 $LTSCALE 40 1.0 9 $ATTMODE 70 1 9 $TEXTSIZE 40 2.5 9 $TRACEWID 40 1.0 9 $TEXTSTYLE 7 Standard 9 $CLAYER 8 0 9 $CELTYPE 6 ByLayer 9 $CECOLOR 62 256 9 $CELTSCALE 40 1.0 9 $DISPSILH 70 0 9 $DIMSCALE 40 1.0 9 $DIMASZ 40 2.5 9 $DIMEXO 40 0.625 9 $DIMDLI 40 3.75 9 $DIMRND 40 0.0 9 $DIMDLE 40 0.0 9 $DIMEXE 40 1.25 9 $DIMTP 40 0.0 9 $DIMTM 40 0.0 9 $DIMTXT 40 2.5 9 $DIMCEN 40 2.5 9 $DIMTSZ 40 0.0 9 $DIMTOL 70 0 9 $DIMLIM 70 0 9 $DIMTIH 70 0 9 $DIMTOH 70 0 9 $DIMSE1 70 0 9 $DIMSE2 70 0 9 $DIMTAD 70 1 9 $DIMZIN 70 8 9 $DIMBLK 1 9 $DIMASO 70 1 9 $DIMSHO 70 1 9 $DIMPOST 1 9 $DIMAPOST 1 9 $DIMALT 70 0 9 $DIMALTD 70 3 9 $DIMALTF 40 0.03937007874016 9 $DIMLFAC 40 1.0 9 $DIMTOFL 70 1 9 $DIMTVP 40 0.0 9 $DIMTIX 70 0 9 $DIMSOXD 70 0 9 $DIMSAH 70 0 9 $DIMBLK1 1 9 $DIMBLK2 1 9 $DIMSTYLE 2 ISO-25 9 $DIMCLRD 70 0 9 $DIMCLRE 70 0 9 $DIMCLRT 70 0 9 $DIMTFAC 40 1.0 9 $DIMGAP 40 0.625 9 $DIMJUST 70 0 9 $DIMSD1 70 0 9 $DIMSD2 70 0 9 $DIMTOLJ 70 0 9 $DIMTZIN 70 8 9 $DIMALTZ 70 0 9 $DIMALTTZ 70 0 9 $DIMUPT 70 0 9 $DIMDEC 70 2 9 $DIMTDEC 70 2 9 $DIMALTU 70 2 9 $DIMALTTD 70 3 9 $DIMTXSTY 7 Standard 9 $DIMAUNIT 70 0 9 $DIMADEC 70 0 9 $DIMALTRND 40 0.0 9 $DIMAZIN 70 0 9 $DIMDSEP 70 44 9 $DIMATFIT 70 3 9 $DIMFRAC 70 0 9 $DIMLDRBLK 1 9 $DIMLUNIT 70 2 9 $DIMLWD 70 -2 9 $DIMLWE 70 -2 9 $DIMTMOVE 70 0 9 $DIMFXL 40 1.0 9 $DIMFXLON 70 0 9 $DIMJOGANG 40 0.7853981633974483 9 $DIMTFILL 70 0 9 $DIMTFILLCLR 70 0 9 $DIMARCSYM 70 0 9 $DIMLTYPE 6 9 $DIMLTEX1 6 9 $DIMLTEX2 6 9 $LUNITS 70 2 9 $LUPREC 70 4 9 $SKETCHINC 40 1.0 9 $FILLETRAD 40 0.0 9 $AUNITS 70 0 9 $AUPREC 70 0 9 $MENU 1 . 9 $ELEVATION 40 0.0 9 $PELEVATION 40 0.0 9 $THICKNESS 40 0.0 9 $LIMCHECK 70 0 9 $CHAMFERA 40 0.0 9 $CHAMFERB 40 0.0 9 $CHAMFERC 40 0.0 9 $CHAMFERD 40 0.0 9 $SKPOLY 70 0 9 $TDCREATE 40 2458590.383113426 9 $TDUCREATE 40 2458590.049780092 9 $TDUPDATE 40 2458590.384224537 9 $TDUUPDATE 40 2458590.050891204 9 $TDINDWG 40 0.0011111111 9 $TDUSRTIMER 40 0.0011111111 9 $USRTIMER 70 1 9 $ANGBASE 50 0.0 9 $ANGDIR 70 0 9 $PDMODE 70 0 9 $PDSIZE 40 0.0 9 $PLINEWID 40 0.0 9 $SPLFRAME 70 0 9 $SPLINETYPE 70 6 9 $SPLINESEGS 70 8 9 $HANDSEED 5 2B8 9 $SURFTAB1 70 6 9 $SURFTAB2 70 6 9 $SURFTYPE 70 6 9 $SURFU 70 6 9 $SURFV 70 6 9 $UCSBASE 2 9 $UCSNAME 2 9 $UCSORG 10 0.0 20 0.0 30 0.0 9 $UCSXDIR 10 1.0 20 0.0 30 0.0 9 $UCSYDIR 10 0.0 20 1.0 30 0.0 9 $UCSORTHOREF 2 9 $UCSORTHOVIEW 70 0 9 $UCSORGTOP 10 0.0 20 0.0 30 0.0 9 $UCSORGBOTTOM 10 0.0 20 0.0 30 0.0 9 $UCSORGLEFT 10 0.0 20 0.0 30 0.0 9 $UCSORGRIGHT 10 0.0 20 0.0 30 0.0 9 $UCSORGFRONT 10 0.0 20 0.0 30 0.0 9 $UCSORGBACK 10 0.0 20 0.0 30 0.0 9 $PUCSBASE 2 9 $PUCSNAME 2 9 $PUCSORG 10 0.0 20 0.0 30 0.0 9 $PUCSXDIR 10 1.0 20 0.0 30 0.0 9 $PUCSYDIR 10 0.0 20 1.0 30 0.0 9 $PUCSORTHOREF 2 9 $PUCSORTHOVIEW 70 0 9 $PUCSORGTOP 10 0.0 20 0.0 30 0.0 9 $PUCSORGBOTTOM 10 0.0 20 0.0 30 0.0 9 $PUCSORGLEFT 10 0.0 20 0.0 30 0.0 9 $PUCSORGRIGHT 10 0.0 20 0.0 30 0.0 9 $PUCSORGFRONT 10 0.0 20 0.0 30 0.0 9 $PUCSORGBACK 10 0.0 20 0.0 30 0.0 9 $USERI1 70 0 9 $USERI2 70 0 9 $USERI3 70 0 9 $USERI4 70 0 9 $USERI5 70 0 9 $USERR1 40 0.0 9 $USERR2 40 0.0 9 $USERR3 40 0.0 9 $USERR4 40 0.0 9 $USERR5 40 0.0 9 $WORLDVIEW 70 1 9 $SHADEDGE 70 3 9 $SHADEDIF 70 70 9 $TILEMODE 70 1 9 $MAXACTVP 70 64 9 $PINSBASE 10 0.0 20 0.0 30 0.0 9 $PLIMCHECK 70 0 9 $PEXTMIN 10 0.0 20 0.0 30 0.0 9 $PEXTMAX 10 0.0 20 0.0 30 0.0 9 $PLIMMIN 10 0.0 20 0.0 9 $PLIMMAX 10 12.0 20 9.0 9 $UNITMODE 70 0 9 $VISRETAIN 70 1 9 $PLINEGEN 70 0 9 $PSLTSCALE 70 1 9 $TREEDEPTH 70 3020 9 $CMLSTYLE 2 Standard 9 $CMLJUST 70 0 9 $CMLSCALE 40 20.0 9 $PROXYGRAPHICS 70 1 9 $MEASUREMENT 70 1 9 $CELWEIGHT 370 -1 9 $ENDCAPS 280 0 9 $JOINSTYLE 280 0 9 $LWDISPLAY 290 0 9 $INSUNITS 70 4 9 $HYPERLINKBASE 1 9 $STYLESHEET 1 9 $XEDIT 290 1 9 $CEPSNTYPE 380 0 9 $PSTYLEMODE 290 1 9 $FINGERPRINTGUID 2 {96A53CC7-ACDD-234C-B0F9-88300B14E85D} 9 $VERSIONGUID 2 {FDA5A254-6150-FA48-A4B8-168CBCE559AD} 9 $EXTNAMES 290 1 9 $PSVPSCALE 40 0.0 9 $OLESTARTUP 290 0 9 $SORTENTS 280 127 9 $INDEXCTL 280 0 9 $HIDETEXT 280 1 9 $XCLIPFRAME 290 0 9 $HALOGAP 280 0 9 $OBSCOLOR 70 257 9 $OBSLTYPE 280 0 9 $INTERSECTIONDISPLAY 280 0 9 $INTERSECTIONCOLOR 70 257 9 $DIMASSOC 280 2 9 $PROJECTNAME 1 9 $CAMERADISPLAY 290 0 9 $LENSLENGTH 40 50.0 9 $CAMERAHEIGHT 40 0.0 9 $STEPSPERSEC 40 2.0 9 $STEPSIZE 40 6.0 9 $3DDWFPREC 40 2.0 9 $PSOLWIDTH 40 5.0 9 $PSOLHEIGHT 40 80.0 9 $LOFTANG1 40 1.570796326794896 9 $LOFTANG2 40 1.570796326794896 9 $LOFTMAG1 40 0.0 9 $LOFTMAG2 40 0.0 9 $LOFTPARAM 70 7 9 $LOFTNORMALS 280 1 9 $LATITUDE 40 37.795 9 $LONGITUDE 40 -122.394 9 $NORTHDIRECTION 40 0.0 9 $TIMEZONE 70 -8000 9 $LIGHTGLYPHDISPLAY 280 1 9 $TILEMODELIGHTSYNCH 280 1 9 $CMATERIAL 347 EC 9 $SOLIDHIST 280 0 9 $SHOWHIST 280 1 9 $DWFFRAME 280 2 9 $DGNFRAME 280 0 9 $REALWORLDSCALE 290 1 9 $INTERFERECOLOR 62 1 9 $INTERFEREOBJVS 345 F9 9 $INTERFEREVPVS 346 F6 9 $CSHADOW 280 0 9 $SHADOWPLANELOCATION 40 0.0 0 ENDSEC 0 SECTION 2 CLASSES 0 CLASS 1 ACDBDICTIONARYWDFLT 2 AcDbDictionaryWithDefault 3 ObjectDBX Classes 90 0 91 1 280 0 281 0 0 CLASS 1 DICTIONARYVAR 2 AcDbDictionaryVar 3 ObjectDBX Classes 90 0 91 12 280 0 281 0 0 CLASS 1 TABLESTYLE 2 AcDbTableStyle 3 ObjectDBX Classes 90 4095 91 1 280 0 281 0 0 CLASS 1 MATERIAL 2 AcDbMaterial 3 ObjectDBX Classes 90 1153 91 3 280 0 281 0 0 CLASS 1 VISUALSTYLE 2 AcDbVisualStyle 3 ObjectDBX Classes 90 4095 91 24 280 0 281 0 0 CLASS 1 SCALE 2 AcDbScale 3 ObjectDBX Classes 90 1153 91 17 280 0 281 0 0 CLASS 1 MLEADERSTYLE 2 AcDbMLeaderStyle 3 ACDB_MLEADERSTYLE_CLASS 90 4095 91 2 280 0 281 0 0 CLASS 1 CELLSTYLEMAP 2 AcDbCellStyleMap 3 ObjectDBX Classes 90 1152 91 1 280 0 281 0 0 CLASS 1 EXACXREFPANELOBJECT 2 ExAcXREFPanelObject 3 EXAC_ESW 90 1025 91 0 280 0 281 0 0 CLASS 1 NPOCOLLECTION 2 AcDbImpNonPersistentObjectsCollection 3 ObjectDBX Classes 90 1153 91 0 280 0 281 0 0 CLASS 1 LAYER_INDEX 2 AcDbLayerIndex 3 ObjectDBX Classes 90 0 91 0 280 0 281 0 0 CLASS 1 SPATIAL_INDEX 2 AcDbSpatialIndex 3 ObjectDBX Classes 90 0 91 0 280 0 281 0 0 CLASS 1 IDBUFFER 2 AcDbIdBuffer 3 ObjectDBX Classes 90 0 91 0 280 0 281 0 0 CLASS 1 ACDBSECTIONVIEWSTYLE 2 AcDbSectionViewStyle 3 ObjectDBX Classes 90 1025 91 1 280 0 281 0 0 CLASS 1 ACDBDETAILVIEWSTYLE 2 AcDbDetailViewStyle 3 ObjectDBX Classes 90 1025 91 1 280 0 281 0 0 ENDSEC 0 SECTION 2 TABLES 0 TABLE 2 VPORT 5 8 330 0 100 AcDbSymbolTable 70 1 0 VPORT 5 EA 330 8 100 AcDbSymbolTableRecord 100 AcDbViewportTableRecord 2 *Active 70 0 10 0.0 20 0.0 11 1.0 21 1.0 12 26.13531116233776 22 8.376287332784158 13 0.0 23 0.0 14 10.0 24 10.0 15 10.0 25 10.0 16 0.0 26 0.0 36 1.0 17 0.0 27 0.0 37 0.0 40 393.0272442228397 41 2.104271356783919 42 50.0 43 0.0 44 0.0 50 0.0 51 0.0 71 0 72 1000 73 1 74 3 75 0 76 1 77 0 78 0 281 0 65 1 110 0.0 120 0.0 130 0.0 111 1.0 121 0.0 131 0.0 112 0.0 122 1.0 132 0.0 79 0 146 0.0 348 F5 60 3 61 5 292 1 282 1 141 0.0 142 0.0 63 250 421 3355443 1001 ACAD_NAV_VCDISPLAY 1070 3 0 ENDTAB 0 TABLE 2 LTYPE 5 5 330 0 100 AcDbSymbolTable 70 2 0 LTYPE 5 14 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 ByBlock 70 0 3 72 65 73 0 40 0.0 0 LTYPE 5 15 330 5 100 AcDbSymbolTableRecord 100 AcDbLinetypeTableRecord 2 ByLayer 70 0 3 72 65 73 0 40 0.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 0 ENDTAB 0 TABLE 2 LAYER 5 2 102 {ACAD_XDICTIONARY 360 1FF 102 } 330 0 100 AcDbSymbolTable 70 1 0 LAYER 5 44c 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 BottomLayer 70 0 420 255 6 Continuous 370 -3 390 F 347 21 0 LAYER 5 44d 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 BottomPasteMaskLayer 70 0 420 8388608 6 Continuous 370 -3 390 F 347 21 0 LAYER 5 44e 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 TopSolderMaskLayer 70 0 420 8388736 6 Continuous 370 -3 390 F 347 21 0 LAYER 5 44f 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 BottomSolderMaskLayer 70 0 420 11141375 6 Continuous 370 -3 390 F 347 21 0 LAYER 5 450 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 BoardOutLine 70 0 420 16711935 6 Continuous 370 -3 390 F 347 21 0 LAYER 5 451 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 Multi-Layer 70 0 420 12632256 6 Continuous 370 -3 390 F 347 21 0 LAYER 5 10 102 {ACAD_XDICTIONARY 360 13C 102 } 330 2 100 AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 0 70 0 62 7 6 Continuous 370 -3 390 F 347 EE 0 ENDTAB 0 TABLE 2 STYLE 5 3 330 0 100 AcDbSymbolTable 70 2 0 STYLE 5 11 330 3 100 AcDbSymbolTableRecord 100 AcDbTextStyleTableRecord 2 Standard 70 0 40 0.0 41 1.0 50 0.0 71 0 42 2.5 3 arial.ttf 4 1001 ACAD 1000 Arial 1071 34 0 STYLE 5 132 330 3 100 AcDbSymbolTableRecord 100 AcDbTextStyleTableRecord 2 Annotative 70 0 40 0.0 41 1.0 50 0.0 71 0 42 2.5 3 arial.ttf 4 1001 AcadAnnotative 1000 AnnotativeData 1002 { 1070 1 1070 1 1002 } 1001 ACAD 1000 Arial 1071 34 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 9 0 APPID 5 12 330 9 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 ACAD 70 0 0 APPID 5 9E 330 9 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 ACAD_PSEXT 70 0 0 APPID 5 133 330 9 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 AcadAnnoPO 70 0 0 APPID 5 134 330 9 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 AcadAnnotative 70 0 0 APPID 5 135 330 9 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 ACAD_DSTYLE_DIMJAG 70 0 0 APPID 5 136 330 9 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 ACAD_DSTYLE_DIMTALN 70 0 0 APPID 5 165 330 9 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 ACAD_MLEADERVER 70 0 0 APPID 5 217 330 9 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 ACAD_NAV_VCDISPLAY 70 0 0 APPID 5 26E 330 9 100 AcDbSymbolTableRecord 100 AcDbRegAppTableRecord 2 ACAD_EXEMPT_FROM_CAD_STANDARDS 70 0 0 ENDTAB 0 TABLE 2 DIMSTYLE 5 A 330 0 100 AcDbSymbolTable 70 4 100 AcDbDimStyleTable 71 2 340 27 340 137 0 DIMSTYLE 105 1B0 330 A 100 AcDbSymbolTableRecord 100 AcDbDimStyleTableRecord 2 Standard 70 0 340 11 0 DIMSTYLE 105 137 330 A 100 AcDbSymbolTableRecord 100 AcDbDimStyleTableRecord 2 Annotative 70 0 40 0.0 41 2.5 42 0.625 43 3.75 44 1.25 73 0 74 0 77 1 78 8 140 2.5 141 2.5 143 0.03937007874016 147 0.625 171 3 172 1 271 2 272 2 274 3 278 44 283 0 284 8 340 11 1001 AcadAnnotative 1000 AnnotativeData 1002 { 1070 1 1070 1 1002 } 1001 ACAD_DSTYLE_DIMJAG 1070 388 1040 1.5 1001 ACAD_DSTYLE_DIMTALN 1070 392 1070 0 0 DIMSTYLE 105 27 330 A 100 AcDbSymbolTableRecord 100 AcDbDimStyleTableRecord 2 ISO-25 70 0 41 2.5 42 0.625 43 3.75 44 1.25 73 0 74 0 77 1 78 8 140 2.5 141 2.5 143 0.03937007874016 147 0.625 171 3 172 1 271 2 272 2 274 3 278 44 283 0 284 8 340 11 0 ENDTAB 0 TABLE 2 BLOCK_RECORD 5 1 330 0 100 AcDbSymbolTable 70 2 0 BLOCK_RECORD 5 1F 102 {ACAD_XDICTIONARY 360 1CE 102 } 330 1 100 AcDbSymbolTableRecord 100 AcDbBlockTableRecord 2 *Model_Space 340 22 70 0 280 1 281 0 0 BLOCK_RECORD 5 D2 330 1 100 AcDbSymbolTableRecord 100 AcDbBlockTableRecord 2 *Paper_Space 340 D3 70 0 280 1 281 0 0 BLOCK_RECORD 5 D6 330 1 100 AcDbSymbolTableRecord 100 AcDbBlockTableRecord 2 *Paper_Space0 340 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.0 20 0.0 30 0.0 3 *Model_Space 1 0 ENDBLK 5 21 330 1F 100 AcDbEntity 8 0 100 AcDbBlockEnd 0 BLOCK 5 D4 330 D2 100 AcDbEntity 67 1 8 0 100 AcDbBlockBegin 2 *Paper_Space 70 0 10 0.0 20 0.0 30 0.0 3 *Paper_Space 1 0 ENDBLK 5 D5 330 D2 100 AcDbEntity 67 1 8 0 100 AcDbBlockEnd 0 BLOCK 5 D8 330 D6 100 AcDbEntity 67 1 8 0 100 AcDbBlockBegin 2 *Paper_Space0 70 0 10 0.0 20 0.0 30 0.0 3 *Paper_Space0 1 0 ENDBLK 5 D9 330 D6 100 AcDbEntity 67 1 8 0 100 AcDbBlockEnd 0 ENDSEC 0 SECTION 2 ENTITIES 0 LWPOLYLINE 5 3e8 330 1F 100 AcDbEntity 8 BottomLayer 100 AcDbPolyline 90 2 70 0 43 0.30000000000000004 10 40 20 10 10 40 20 5.249987299974578 10 39.75001270002531 20 5 0 LWPOLYLINE 5 3e9 330 1F 100 AcDbEntity 8 BottomLayer 100 AcDbPolyline 90 3 70 0 43 0.30000000000000004 10 45.00127000253997 20 10 10 43.40106680213353 20 10 10 41.02108204216415 20 7.6200152400305114 10 41.00076200152398 20 2.9997459994920064 0 LWPOLYLINE 5 3ea 330 1F 100 AcDbEntity 8 BottomLayer 100 AcDbPolyline 90 4 70 0 43 0.4 10 50.00000000000023 20 10 10 48.22707645415289 20 10 10 45.84709169418352 20 7.6200152400305114 10 44.870027940055934 20 7.6200152400305114 10 42.250012700025536 20 5 0 LWPOLYLINE 5 3eb 330 1F 100 AcDbEntity 8 BottomLayer 100 AcDbPolyline 90 2 70 0 43 0.4 10 35 20 10 10 35 20 6.499999999999886 10 38.5 20 3 0 LWPOLYLINE 5 3ec 330 1F 100 AcDbEntity 8 BottomLayer 100 AcDbPolyline 90 5 70 0 43 0.4 10 43.5 20 3 10 43.5 20 2.3519177038353973 10 42.291084582169105 20 1.1430022860045028 10 40.259080518161 20 1.1430022860045028 10 39.49707899415807 20 2.0029210058419267 10 38.5 20 3 0 LWPOLYLINE 5 3ed 330 1F 100 AcDbEntity 8 BoardOutLine 100 AcDbPolyline 90 3 70 0 43 0.25400050800101603 10 0 20 11.999974599949155 10 91.00002540005084 20 11.999974599949155 10 91.00002540005084 20 8.414833629667214 10 91.00002540005084 20 0 0 LWPOLYLINE 5 3ee 330 1F 100 AcDbEntity 8 BoardOutLine 100 AcDbPolyline 90 1 70 0 43 0.25400050800101603 10 0 20 0 10 0 20 11.999974599949155 0 LWPOLYLINE 5 3ef 330 1F 100 AcDbEntity 8 BoardOutLine 100 AcDbPolyline 90 1 70 0 43 0.25400050800101603 10 90.96004572009156 20 0 10 -0.03997967995940144 20 0 0 TEXT 5 446 100 AcDbEntity 8 TopSilkLayer 7 461 2.0320040640081283 100 AcDbText 10 28.448056896113712 20 8.763017526035014 30 0 40 2.0320040640081283 1 GND 50 0 71 1 100 AcDbText 0 TEXT 5 447 100 AcDbEntity 8 TopSilkLayer 7 461 2.0320040640081283 100 AcDbText 10 38.60807721615447 20 6.731013462026908 30 0 40 2.0320040640081283 1 DN 50 0 71 1 100 AcDbText 0 TEXT 5 448 100 AcDbEntity 8 TopSilkLayer 7 461 2.0320040640081283 100 AcDbText 10 43.561087122174285 20 6.731013462026908 30 0 40 2.0320040640081283 1 DP 50 0 71 1 100 AcDbText 0 TEXT 5 449 100 AcDbEntity 8 TopSilkLayer 7 461 2.0320040640081283 100 AcDbText 10 51.30810261620536 20 8.763017526035014 30 0 40 2.0320040640081283 1 5V 50 0 71 1 100 AcDbText 0 CIRCLE 5 3f1 330 1F 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbCircle 10 43.500127000254 20 3 30 0.0 40 0.7874015748031498 0 HATCH 5 3f2 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 42.71272542545085 20 3 42 1 10 44.287528575057145 20 3 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 3f4 330 1F 100 AcDbEntity 8 BottomPasteMaskLayer 100 AcDbCircle 10 43.500127000254 20 3 30 0.0 40 0.7620015240030481 0 HATCH 5 3f5 100 AcDbEntity 8 BottomPasteMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 42.73812547625095 20 3 42 1 10 44.262128524257044 20 3 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 3f7 330 1F 100 AcDbEntity 8 BottomLayer 100 AcDbCircle 10 43.500127000254 20 3 30 0.0 40 0.7620015240030481 0 HATCH 5 3f8 100 AcDbEntity 8 BottomLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 42.73812547625095 20 3 42 1 10 44.262128524257044 20 3 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 3fa 330 1F 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbCircle 10 41.00000000000023 20 3 30 0.0 40 0.7874015748031498 0 HATCH 5 3fb 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 40.21259842519708 20 3 42 1 10 41.787401574803376 20 3 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 3fd 330 1F 100 AcDbEntity 8 BottomPasteMaskLayer 100 AcDbCircle 10 41.00000000000023 20 3 30 0.0 40 0.7620015240030481 0 HATCH 5 3fe 100 AcDbEntity 8 BottomPasteMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 40.23799847599718 20 3 42 1 10 41.762001524003274 20 3 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 400 330 1F 100 AcDbEntity 8 BottomLayer 100 AcDbCircle 10 41.00000000000023 20 3 30 0.0 40 0.7620015240030481 0 HATCH 5 401 100 AcDbEntity 8 BottomLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 40.23799847599718 20 3 42 1 10 41.762001524003274 20 3 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 403 330 1F 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbCircle 10 38.499872999746 20 3 30 0.0 40 0.7874015748031498 0 HATCH 5 404 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 37.712471424942855 20 3 42 1 10 39.28727457454915 20 3 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 406 330 1F 100 AcDbEntity 8 BottomPasteMaskLayer 100 AcDbCircle 10 38.499872999746 20 3 30 0.0 40 0.7620015240030481 0 HATCH 5 407 100 AcDbEntity 8 BottomPasteMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 37.737871475742956 20 3 42 1 10 39.26187452374905 20 3 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 409 330 1F 100 AcDbEntity 8 BottomLayer 100 AcDbCircle 10 38.499872999746 20 3 30 0.0 40 0.7620015240030481 0 HATCH 5 40a 100 AcDbEntity 8 BottomLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 37.737871475742956 20 3 42 1 10 39.26187452374905 20 3 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 40c 330 1F 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbCircle 10 44.750063500127 20 5 30 0.0 40 0.7874015748031498 0 HATCH 5 40d 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 43.96266192532385 20 5 42 1 10 45.53746507493015 20 5 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 40f 330 1F 100 AcDbEntity 8 BottomPasteMaskLayer 100 AcDbCircle 10 44.750063500127 20 5 30 0.0 40 0.7620015240030481 0 HATCH 5 410 100 AcDbEntity 8 BottomPasteMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 43.98806197612395 20 5 42 1 10 45.512065024130045 20 5 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 412 330 1F 100 AcDbEntity 8 BottomLayer 100 AcDbCircle 10 44.750063500127 20 5 30 0.0 40 0.7620015240030481 0 HATCH 5 413 100 AcDbEntity 8 BottomLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 43.98806197612395 20 5 42 1 10 45.512065024130045 20 5 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 415 330 1F 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbCircle 10 42.249936499873 20 5 30 0.0 40 0.7874015748031498 0 HATCH 5 416 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 41.46253492506985 20 5 42 1 10 43.03733807467615 20 5 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 418 330 1F 100 AcDbEntity 8 BottomPasteMaskLayer 100 AcDbCircle 10 42.249936499873 20 5 30 0.0 40 0.7620015240030481 0 HATCH 5 419 100 AcDbEntity 8 BottomPasteMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 41.487934975869955 20 5 42 1 10 43.01193802387605 20 5 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 41b 330 1F 100 AcDbEntity 8 BottomLayer 100 AcDbCircle 10 42.249936499873 20 5 30 0.0 40 0.7620015240030481 0 HATCH 5 41c 100 AcDbEntity 8 BottomLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 41.487934975869955 20 5 42 1 10 43.01193802387605 20 5 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 41e 330 1F 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbCircle 10 39.750063500127 20 5 30 0.0 40 0.7874015748031498 0 HATCH 5 41f 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 38.96266192532385 20 5 42 1 10 40.53746507493015 20 5 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 421 330 1F 100 AcDbEntity 8 BottomPasteMaskLayer 100 AcDbCircle 10 39.750063500127 20 5 30 0.0 40 0.7620015240030481 0 HATCH 5 422 100 AcDbEntity 8 BottomPasteMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 38.98806197612395 20 5 42 1 10 40.512065024130045 20 5 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 424 330 1F 100 AcDbEntity 8 BottomLayer 100 AcDbCircle 10 39.750063500127 20 5 30 0.0 40 0.7620015240030481 0 HATCH 5 425 100 AcDbEntity 8 BottomLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 38.98806197612395 20 5 42 1 10 40.512065024130045 20 5 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 426 330 1F 100 AcDbEntity 8 TopSolderMaskLayer 100 AcDbCircle 10 35 20 10 30 0.0 40 0.47244094488188987 0 CIRCLE 5 427 330 1F 100 AcDbEntity 8 TopSolderMaskLayer 100 AcDbCircle 10 35 20 10 30 0.0 40 0.7874015748031498 0 HATCH 5 428 100 AcDbEntity 8 TopSolderMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 34.21259842519685 20 10 42 1 10 35.78740157480315 20 10 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 429 330 1F 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbCircle 10 35 20 10 30 0.0 40 0.47244094488188987 0 CIRCLE 5 42a 330 1F 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbCircle 10 35 20 10 30 0.0 40 0.7874015748031498 0 HATCH 5 42b 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 34.21259842519685 20 10 42 1 10 35.78740157480315 20 10 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 42c 330 1F 100 AcDbEntity 8 Multi-Layer 100 AcDbCircle 10 35 20 10 30 0.0 40 0.45720091440182886 0 CIRCLE 5 42d 330 1F 100 AcDbEntity 8 Multi-Layer 100 AcDbCircle 10 35 20 10 30 0.0 40 0.7620015240030481 0 CIRCLE 5 42e 330 1F 100 AcDbEntity 8 TopSolderMaskLayer 100 AcDbCircle 10 40 20 10 30 0.0 40 0.47244094488188987 0 CIRCLE 5 42f 330 1F 100 AcDbEntity 8 TopSolderMaskLayer 100 AcDbCircle 10 40 20 10 30 0.0 40 0.7874015748031498 0 HATCH 5 430 100 AcDbEntity 8 TopSolderMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 39.21259842519685 20 10 42 1 10 40.78740157480315 20 10 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 431 330 1F 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbCircle 10 40 20 10 30 0.0 40 0.47244094488188987 0 CIRCLE 5 432 330 1F 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbCircle 10 40 20 10 30 0.0 40 0.7874015748031498 0 HATCH 5 433 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 39.21259842519685 20 10 42 1 10 40.78740157480315 20 10 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 434 330 1F 100 AcDbEntity 8 Multi-Layer 100 AcDbCircle 10 40 20 10 30 0.0 40 0.45720091440182886 0 CIRCLE 5 435 330 1F 100 AcDbEntity 8 Multi-Layer 100 AcDbCircle 10 40 20 10 30 0.0 40 0.7620015240030481 0 CIRCLE 5 436 330 1F 100 AcDbEntity 8 TopSolderMaskLayer 100 AcDbCircle 10 45 20 10 30 0.0 40 0.47244094488188987 0 CIRCLE 5 437 330 1F 100 AcDbEntity 8 TopSolderMaskLayer 100 AcDbCircle 10 45 20 10 30 0.0 40 0.7874015748031498 0 HATCH 5 438 100 AcDbEntity 8 TopSolderMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 44.21259842519685 20 10 42 1 10 45.78740157480315 20 10 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 439 330 1F 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbCircle 10 45 20 10 30 0.0 40 0.47244094488188987 0 CIRCLE 5 43a 330 1F 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbCircle 10 45 20 10 30 0.0 40 0.7874015748031498 0 HATCH 5 43b 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 44.21259842519685 20 10 42 1 10 45.78740157480315 20 10 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 43c 330 1F 100 AcDbEntity 8 Multi-Layer 100 AcDbCircle 10 45 20 10 30 0.0 40 0.45720091440182886 0 CIRCLE 5 43d 330 1F 100 AcDbEntity 8 Multi-Layer 100 AcDbCircle 10 45 20 10 30 0.0 40 0.7620015240030481 0 CIRCLE 5 43e 330 1F 100 AcDbEntity 8 TopSolderMaskLayer 100 AcDbCircle 10 50.00000000000023 20 10 30 0.0 40 0.47244094488188987 0 CIRCLE 5 43f 330 1F 100 AcDbEntity 8 TopSolderMaskLayer 100 AcDbCircle 10 50.00000000000023 20 10 30 0.0 40 0.7874015748031498 0 HATCH 5 440 100 AcDbEntity 8 TopSolderMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 49.21259842519708 20 10 42 1 10 50.787401574803376 20 10 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 441 330 1F 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbCircle 10 50.00000000000023 20 10 30 0.0 40 0.47244094488188987 0 CIRCLE 5 442 330 1F 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbCircle 10 50.00000000000023 20 10 30 0.0 40 0.7874015748031498 0 HATCH 5 443 100 AcDbEntity 8 BottomSolderMaskLayer 100 AcDbHatch 10 0 20 0 30 0 210 0 220 0 230 1 2 SOLID 70 1 71 0 91 1 92 7 72 1 73 1 93 2 10 49.21259842519708 20 10 42 1 10 50.787401574803376 20 10 42 1 97 1 330 75 0 76 1 47 0.8681437583925616 98 1 10 3.629517071192367 20 33.92795499968543 450 0 451 0 460 0 461 0 452 1 462 1 453 2 463 0 63 5 421 255 463 1 63 7 421 16777215 470 LINEAR 1001 ACAD 1010 0 1020 0 1030 0 0 CIRCLE 5 444 330 1F 100 AcDbEntity 8 Multi-Layer 100 AcDbCircle 10 50.00000000000023 20 10 30 0.0 40 0.45720091440182886 0 CIRCLE 5 445 330 1F 100 AcDbEntity 8 Multi-Layer 100 AcDbCircle 10 50.00000000000023 20 10 30 0.0 40 0.7620015240030481 0 CIRCLE 5 44a 330 1F 100 AcDbEntity 8 Multi-Layer 100 AcDbCircle 10 61.249936499873 20 5.4998729997458895 30 0.0 40 1.7500127000254002 0 CIRCLE 5 44b 330 1F 100 AcDbEntity 8 Multi-Layer 100 AcDbCircle 10 30.249936499873 20 5.4998729997458895 30 0.0 40 1.7500127000254002 0 ENDSEC 0 SECTION 2 OBJECTS 0 DICTIONARY 5 C 330 0 100 AcDbDictionary 281 1 3 ACAD_CIP_PREVIOUS_PRODUCT_INFO 350 216 3 ACAD_COLOR 350 6B 3 ACAD_DETAILVIEWSTYLE 350 21B 3 ACAD_GROUP 350 D 3 ACAD_LAYOUT 350 1A 3 ACAD_MATERIAL 350 6A 3 ACAD_MLEADERSTYLE 350 12D 3 ACAD_MLINESTYLE 350 17 3 ACAD_PLOTSETTINGS 350 19 3 ACAD_PLOTSTYLENAME 350 E 3 ACAD_SCALELIST 350 10C 3 ACAD_SECTIONVIEWSTYLE 350 219 3 ACAD_TABLESTYLE 350 7E 3 ACAD_VISUALSTYLE 350 EF 3 ACDB_RECOMPOSE_DATA 350 27D 3 AcDbVariableDictionary 350 5E 3 AcDsDecomposeData 350 283 0 DICTIONARY 5 1FF 330 2 100 AcDbDictionary 280 1 281 1 3 ACAD_LAYERSTATES 360 200 0 DICTIONARY 5 13C 330 10 100 AcDbDictionary 280 1 281 1 0 DICTIONARY 5 1CE 330 1F 100 AcDbDictionary 280 1 281 1 0 XRECORD 5 216 102 {ACAD_REACTORS 330 C 102 } 330 C 100 AcDbXrecord 280 1 300 ACD 300 2017 300 ACD_F_S 0 DICTIONARY 5 6B 102 {ACAD_REACTORS 330 C 102 } 330 C 100 AcDbDictionary 281 1 0 DICTIONARY 5 21B 102 {ACAD_REACTORS 330 C 102 } 330 C 100 AcDbDictionary 281 1 3 Metric50 350 21C 0 DICTIONARY 5 D 102 {ACAD_REACTORS 330 C 102 } 330 C 100 AcDbDictionary 281 1 0 DICTIONARY 5 1A 102 {ACAD_REACTORS 330 C 102 } 330 C 100 AcDbDictionary 281 1 3 Model 350 22 3 布局1 350 D3 3 布局2 350 D7 0 DICTIONARY 5 6A 102 {ACAD_REACTORS 330 C 102 } 330 C 100 AcDbDictionary 281 1 3 ByBlock 350 ED 3 ByLayer 350 EC 3 Global 350 EE 0 DICTIONARY 5 12D 102 {ACAD_REACTORS 330 C 102 } 330 C 100 AcDbDictionary 281 1 3 Annotative 350 13B 3 Standard 350 12E 0 DICTIONARY 5 17 102 {ACAD_REACTORS 330 C 102 } 330 C 100 AcDbDictionary 281 1 3 Standard 350 18 0 DICTIONARY 5 19 102 {ACAD_REACTORS 330 C 102 } 330 C 100 AcDbDictionary 281 1 0 ACDBDICTIONARYWDFLT 5 E 102 {ACAD_REACTORS 330 C 102 } 330 C 100 AcDbDictionary 281 1 3 Normal 350 F 100 AcDbDictionaryWithDefault 340 F 0 DICTIONARY 5 10C 102 {ACAD_REACTORS 330 C 102 } 330 C 100 AcDbDictionary 281 1 3 A0 350 10D 3 A1 350 1BE 3 A2 350 1BF 3 A3 350 1C0 3 A4 350 1C1 3 A5 350 1C2 3 A6 350 1C3 3 A7 350 1C4 3 A8 350 1C5 3 A9 350 1C6 3 B0 350 1C7 3 B1 350 1C8 3 B2 350 1C9 3 B3 350 1CA 3 B4 350 1CB 3 B5 350 1CC 3 B6 350 1CD 0 DICTIONARY 5 219 102 {ACAD_REACTORS 330 C 102 } 330 C 100 AcDbDictionary 281 1 3 Metric50 350 21A 0 DICTIONARY 5 7E 102 {ACAD_REACTORS 330 C 102 } 330 C 100 AcDbDictionary 281 1 3 Standard 350 7F 0 DICTIONARY 5 EF 102 {ACAD_REACTORS 330 C 102 } 330 C 100 AcDbDictionary 281 1 3 2dWireframe 350 F5 3 Basic 350 F4 3 Brighten 350 FB 3 ColorChange 350 FF 3 Conceptual 350 F8 3 Dim 350 FA 3 EdgeColorOff 350 1E6 3 Facepattern 350 FE 3 Flat 350 F0 3 FlatWithEdges 350 F1 3 Gouraud 350 F2 3 GouraudWithEdges 350 F3 3 Hidden 350 F7 3 JitterOff 350 1E4 3 Linepattern 350 FD 3 OverhangOff 350 1E5 3 Realistic 350 F9 3 Shaded 350 1F3 3 Shaded with edges 350 1F2 3 Shades of Gray 350 1EF 3 Sketchy 350 1F0 3 Thicken 350 FC 3 Wireframe 350 F6 3 X-Ray 350 1F1 0 XRECORD 5 27D 102 {ACAD_REACTORS 330 C 102 } 330 C 100 AcDbXrecord 280 1 90 1 330 7F 0 DICTIONARY 5 5E 102 {ACAD_REACTORS 330 C 102 } 330 C 100 AcDbDictionary 281 1 3 CANNOSCALE 350 146 3 CENTEREXE 350 259 3 CENTERLTYPEFILE 350 25A 3 CMLEADERSTYLE 350 145 3 CTABLESTYLE 350 84 3 CVIEWDETAILSTYLE 350 227 3 CVIEWSECTIONSTYLE 350 228 3 DIMASSOC 350 5F 3 HIDETEXT 350 63 3 LAYEREVAL 350 1AE 3 LAYERNOTIFY 350 1AF 3 XCLIPFRAME 350 27B 0 DICTIONARY 5 283 102 {ACAD_REACTORS 330 C 102 } 330 C 100 AcDbDictionary 281 1 3 AcDsRecords 350 285 3 AcDsSchemas 350 284 1001 ACAD 1070 2 0 DICTIONARY 5 200 102 {ACAD_REACTORS 330 1FF 102 } 330 1FF 100 AcDbDictionary 281 1 0 ACDBDETAILVIEWSTYLE 5 21C 102 {ACAD_XDICTIONARY 360 236 102 } 102 {ACAD_REACTORS 330 21B 102 } 330 21B 100 AcDbModelDocViewStyle 70 0 3 Metric50 290 0 100 AcDbDetailViewStyle 70 0 71 0 90 3 71 1 340 11 62 256 40 5.0 340 0 62 256 40 5.0 300 40 0.0 280 1 71 2 340 16 90 25 62 256 71 3 340 11 62 256 40 5.0 90 0 40 15.0 90 1 300 %% (%%) 71 4 340 16 90 25 62 256 340 16 90 25 62 256 280 0 0 LAYOUT 5 22 102 {ACAD_XDICTIONARY 360 205 102 } 102 {ACAD_REACTORS 330 1A 102 } 330 1A 100 AcDbPlotSettings 1 2 none_device 4 ISO_A4_(210.00_x_297.00_MM) 6 40 7.5 41 20.0 42 7.5 43 20.0 44 210.0 45 297.0 46 11.54999923706054 47 -13.65000009536743 48 0.0 49 0.0 140 0.0 141 0.0 142 1.0 143 8.704084754739808 70 11952 72 1 73 0 74 0 7 75 0 147 0.1148885871608098 76 0 77 2 78 300 148 0.0 149 0.0 100 AcDbLayout 1 Model 70 1 71 0 10 0.0 20 0.0 11 12.0 21 9.0 12 0.0 22 0.0 32 0.0 14 0.0 24 0.0 34 0.0 15 0.0 25 0.0 35 0.0 146 0.0 13 0.0 23 0.0 33 0.0 16 1.0 26 0.0 36 0.0 17 0.0 27 1.0 37 0.0 76 0 330 1F 331 EA 1001 ACAD_PSEXT 1000 None 1000 None 1000 Not applicable 1000 The layout will not be plotted unless a new plotter configuration name is selected. 1070 0 0 LAYOUT 5 D3 102 {ACAD_REACTORS 330 1A 102 } 330 1A 100 AcDbPlotSettings 1 2 C:Documents and SettingsasasApplication DataAutodeskAutoCAD 2005R16.1enuplottersDefault Windows System Printer.pc3 4 6 40 0.0 41 0.0 42 0.0 43 0.0 44 0.0 45 0.0 46 0.0 47 0.0 48 0.0 49 0.0 140 0.0 141 0.0 142 1.0 143 1.0 70 688 72 0 73 0 74 5 7 75 16 147 1.0 76 0 77 2 78 300 148 0.0 149 0.0 100 AcDbLayout 1 布局1 70 1 71 1 10 0.0 20 0.0 11 12.0 21 9.0 12 0.0 22 0.0 32 0.0 14 0.0 24 0.0 34 0.0 15 0.0 25 0.0 35 0.0 146 0.0 13 0.0 23 0.0 33 0.0 16 1.0 26 0.0 36 0.0 17 0.0 27 1.0 37 0.0 76 0 330 D2 0 LAYOUT 5 D7 102 {ACAD_REACTORS 330 1A 102 } 330 1A 100 AcDbPlotSettings 1 2 C:Documents and SettingsasasApplication DataAutodeskAutoCAD 2005R16.1enuplottersDefault Windows System Printer.pc3 4 6 40 0.0 41 0.0 42 0.0 43 0.0 44 0.0 45 0.0 46 0.0 47 0.0 48 0.0 49 0.0 140 0.0 141 0.0 142 1.0 143 1.0 70 688 72 0 73 0 74 5 7 75 16 147 1.0 76 0 77 2 78 300 148 0.0 149 0.0 100 AcDbLayout 1 布局2 70 1 71 2 10 0.0 20 0.0 11 12.0 21 9.0 12 0.0 22 0.0 32 0.0 14 0.0 24 0.0 34 0.0 15 0.0 25 0.0 35 0.0 146 0.0 13 0.0 23 0.0 33 0.0 16 1.0 26 0.0 36 0.0 17 0.0 27 1.0 37 0.0 76 0 330 D6 0 MATERIAL 5 ED 102 {ACAD_XDICTIONARY 360 1F9 102 } 102 {ACAD_REACTORS 330 6A 102 } 330 6A 100 AcDbMaterial 1 ByBlock 94 63 0 MATERIAL 5 EC 102 {ACAD_XDICTIONARY 360 1F7 102 } 102 {ACAD_REACTORS 330 6A 102 } 330 6A 100 AcDbMaterial 1 ByLayer 94 63 0 MATERIAL 5 EE 102 {ACAD_XDICTIONARY 360 173 102 } 102 {ACAD_REACTORS 330 6A 102 } 330 6A 100 AcDbMaterial 1 Global 43 0.0007999999797903 43 0.0 43 0.0 43 0.0 43 0.0 43 0.0007999999797903 43 0.0 43 0.0 43 0.0 43 0.0 43 1.0 43 0.0 43 0.0 43 0.0 43 0.0 43 1.0 49 0.0007999999797903 49 0.0 49 0.0 49 0.0 49 0.0 49 0.0007999999797903 49 0.0 49 0.0 49 0.0 49 0.0 49 1.0 49 0.0 49 0.0 49 0.0 49 0.0 49 1.0 142 0.0007999999797903 142 0.0 142 0.0 142 0.0 142 0.0 142 0.0007999999797903 142 0.0 142 0.0 142 0.0 142 0.0 142 1.0 142 0.0 142 0.0 142 0.0 142 0.0 142 1.0 144 0.0007999999797903 144 0.0 144 0.0 144 0.0 144 0.0 144 0.0007999999797903 144 0.0 144 0.0 144 0.0 144 0.0 144 1.0 144 0.0 144 0.0 144 0.0 144 0.0 144 1.0 94 63 1001 ACAD 1070 -1 1070 3 1070 0 1000 1071 0 1070 0 0 MLEADERSTYLE 5 13B 102 {ACAD_REACTORS 330 12D 102 } 330 12D 100 AcDbMLeaderStyle 170 2 171 1 172 0 90 2 40 0.0 41 0.0 173 1 91 -1056964608 340 14 92 -2 290 1 42 2.0 291 1 43 8.0 3 Standard 44 4.0 300 342 11 174 1 178 1 175 1 176 0 93 -1056964608 45 4.0 292 0 297 0 46 4.0 94 -1056964608 47 1.0 49 1.0 140 1.0 293 1 141 0.0 294 1 177 0 142 1.0 295 0 296 1 143 3.75 1001 ACAD_MLEADERVER 1070 2 0 MLEADERSTYLE 5 12E 102 {ACAD_REACTORS 330 12D 102 } 330 12D 100 AcDbMLeaderStyle 170 2 171 1 172 0 90 2 40 0.0 41 0.0 173 1 91 -1056964608 340 14 92 -2 290 1 42 2.0 291 1 43 8.0 3 Standard 44 4.0 300 342 11 174 1 178 1 175 1 176 0 93 -1056964608 45 4.0 292 0 297 0 46 4.0 94 -1056964608 47 1.0 49 1.0 140 1.0 293 1 141 0.0 294 1 177 0 142 1.0 295 0 296 0 143 3.75 1001 ACAD_MLEADERVER 1070 2 0 MLINESTYLE 5 18 102 {ACAD_REACTORS 330 17 102 } 330 17 100 AcDbMlineStyle 2 STANDARD 70 0 3 62 256 51 90.0 52 90.0 71 2 49 0.5 62 256 6 BYLAYER 49 -0.5 62 256 6 BYLAYER 0 ACDBPLACEHOLDER 5 F 102 {ACAD_REACTORS 330 E 102 } 330 E 0 SCALE 5 10D 102 {ACAD_REACTORS 330 10C 102 } 330 10C 100 AcDbScale 70 0 300 1:1 140 1.0 141 1.0 290 1 0 SCALE 5 1BE 102 {ACAD_REACTORS 330 10C 102 } 330 10C 100 AcDbScale 70 0 300 1:2 140 1.0 141 2.0 290 0 0 SCALE 5 1BF 102 {ACAD_REACTORS 330 10C 102 } 330 10C 100 AcDbScale 70 0 300 1:4 140 1.0 141 4.0 290 0 0 SCALE 5 1C0 102 {ACAD_REACTORS 330 10C 102 } 330 10C 100 AcDbScale 70 0 300 1:5 140 1.0 141 5.0 290 0 0 SCALE 5 1C1 102 {ACAD_REACTORS 330 10C 102 } 330 10C 100 AcDbScale 70 0 300 1:8 140 1.0 141 8.0 290 0 0 SCALE 5 1C2 102 {ACAD_REACTORS 330 10C 102 } 330 10C 100 AcDbScale 70 0 300 1:10 140 1.0 141 10.0 290 0 0 SCALE 5 1C3 102 {ACAD_REACTORS 330 10C 102 } 330 10C 100 AcDbScale 70 0 300 1:16 140 1.0 141 16.0 290 0 0 SCALE 5 1C4 102 {ACAD_REACTORS 330 10C 102 } 330 10C 100 AcDbScale 70 0 300 1:20 140 1.0 141 20.0 290 0 0 SCALE 5 1C5 102 {ACAD_REACTORS 330 10C 102 } 330 10C 100 AcDbScale 70 0 300 1:30 140 1.0 141 30.0 290 0 0 SCALE 5 1C6 102 {ACAD_REACTORS 330 10C 102 } 330 10C 100 AcDbScale 70 0 300 1:40 140 1.0 141 40.0 290 0 0 SCALE 5 1C7 102 {ACAD_REACTORS 330 10C 102 } 330 10C 100 AcDbScale 70 0 300 1:50 140 1.0 141 50.0 290 0 0 SCALE 5 1C8 102 {ACAD_REACTORS 330 10C 102 } 330 10C 100 AcDbScale 70 0 300 1:100 140 1.0 141 100.0 290 0 0 SCALE 5 1C9 102 {ACAD_REACTORS 330 10C 102 } 330 10C 100 AcDbScale 70 0 300 2:1 140 2.0 141 1.0 290 0 0 SCALE 5 1CA 102 {ACAD_REACTORS 330 10C 102 } 330 10C 100 AcDbScale 70 0 300 4:1 140 4.0 141 1.0 290 0 0 SCALE 5 1CB 102 {ACAD_REACTORS 330 10C 102 } 330 10C 100 AcDbScale 70 0 300 8:1 140 8.0 141 1.0 290 0 0 SCALE 5 1CC 102 {ACAD_REACTORS 330 10C 102 } 330 10C 100 AcDbScale 70 0 300 10:1 140 10.0 141 1.0 290 0 0 SCALE 5 1CD 102 {ACAD_REACTORS 330 10C 102 } 330 10C 100 AcDbScale 70 0 300 100:1 140 100.0 141 1.0 290 0 0 ACDBSECTIONVIEWSTYLE 5 21A 102 {ACAD_XDICTIONARY 360 234 102 } 102 {ACAD_REACTORS 330 219 102 } 330 219 100 AcDbModelDocViewStyle 70 0 3 Metric50 290 0 100 AcDbSectionViewStyle 70 0 71 0 90 102 71 1 340 11 62 256 40 5.0 340 0 340 0 62 256 40 5.0 300 I, O, Q, S, X, Z 40 10.0 90 0 40 2.5 90 0 71 2 340 16 90 25 62 256 340 16 90 50 62 256 40 5.0 40 2.5 40 5.0 71 3 340 11 62 256 40 5.0 90 0 40 15.0 90 1 300 %%-%% (%%) 71 4 62 256 62 257 300 ANSI31 40 1.0 90 0 290 0 290 0 90 6 40 0.0 40 1.570796326794896 40 0.2617993877991494 40 1.308996938995747 40 -0.2617993877991494 40 1.832595714594046 0 TABLESTYLE 5 7F 102 {ACAD_XDICTIONARY 360 162 102 } 102 {ACAD_REACTORS 330 7E 102 } 330 7E 100 AcDbTableStyle 3 Standard 70 0 71 0 40 1.5 41 1.5 280 0 281 0 7 Standard 140 4.5 170 2 62 0 63 7 283 0 90 512 91 0 1 274 -2 284 1 64 0 275 -2 285 1 65 0 276 -2 286 1 66 0 277 -2 287 1 67 0 278 -2 288 1 68 0 279 -2 289 1 69 0 7 Standard 140 6.0 170 5 62 0 63 7 283 0 90 512 91 0 1 274 -2 284 1 64 0 275 -2 285 1 65 0 276 -2 286 1 66 0 277 -2 287 1 67 0 278 -2 288 1 68 0 279 -2 289 1 69 0 7 Standard 140 4.5 170 5 62 0 63 7 283 0 90 512 91 0 1 274 -2 284 1 64 0 275 -2 285 1 65 0 276 -2 286 1 66 0 277 -2 287 1 67 0 278 -2 288 1 68 0 279 -2 289 1 69 0 0 VISUALSTYLE 5 F5 102 {ACAD_XDICTIONARY 360 290 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 2dWireframe 70 4 71 0 72 2 73 1 90 0 40 -0.6 41 -30.0 62 5 63 7 421 16777215 74 1 91 4 64 7 65 257 75 1 175 1 42 1.0 92 0 66 257 43 1.0 76 1 77 6 78 2 67 7 79 5 170 0 171 0 290 0 174 0 93 1 44 0.0 173 0 291 0 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 F4 102 {ACAD_XDICTIONARY 360 28E 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 Basic 70 7 71 1 72 0 73 1 90 0 40 -0.6 41 -30.0 62 5 63 7 421 16777215 74 0 91 4 64 7 65 257 75 1 175 1 42 1.0 92 8 66 7 43 1.0 76 1 77 6 78 2 67 7 79 5 170 0 171 0 290 0 174 0 93 1 44 0.0 173 0 291 1 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 FB 102 {ACAD_XDICTIONARY 360 29C 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 Brighten 70 12 71 2 72 2 73 1 90 0 40 -0.6 41 -30.0 62 5 63 7 421 16777215 74 1 91 4 64 7 65 257 75 1 175 1 42 1.0 92 8 66 7 43 1.0 76 1 77 6 78 2 67 7 79 5 170 0 171 0 290 0 174 0 93 1 44 50.0 173 0 291 1 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 FF 102 {ACAD_XDICTIONARY 360 2A4 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 ColorChange 70 16 71 2 72 2 73 3 90 0 40 -0.6 41 -30.0 62 5 63 8 421 8421504 74 1 91 4 64 7 65 257 75 1 175 1 42 1.0 92 8 66 8 424 8421504 43 1.0 76 1 77 6 78 2 67 7 79 5 170 0 171 0 290 0 174 0 93 1 44 0.0 173 0 291 1 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 F8 102 {ACAD_XDICTIONARY 360 296 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 Conceptual 70 9 71 3 72 2 73 1 90 0 40 -0.6 41 -30.0 62 5 63 7 421 16777215 74 2 91 2 64 7 65 257 75 1 175 1 42 40.0 92 8 66 7 43 1.0 76 1 77 6 78 2 67 7 79 3 170 0 171 0 290 0 174 0 93 1 44 0.0 173 0 291 0 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 FA 102 {ACAD_XDICTIONARY 360 29A 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 Dim 70 11 71 2 72 2 73 1 90 0 40 -0.6 41 -30.0 62 5 63 7 421 16777215 74 1 91 4 64 7 65 257 75 1 175 1 42 1.0 92 8 66 7 43 1.0 76 1 77 6 78 2 67 7 79 5 170 0 171 0 290 0 174 0 93 1 44 -50.0 173 0 291 1 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 1E6 102 {ACAD_XDICTIONARY 360 2AA 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 EdgeColorOff 70 22 71 2 72 2 73 0 90 0 40 -0.6 41 -30.0 62 5 63 7 421 16777215 74 1 91 4 64 7 65 257 75 1 175 1 42 1.0 92 8 66 7 43 1.0 76 1 77 6 78 2 67 7 79 5 170 0 171 0 290 0 174 0 93 1 44 0.0 173 0 291 1 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 FE 102 {ACAD_XDICTIONARY 360 2A2 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 Facepattern 70 15 71 2 72 2 73 1 90 0 40 -0.6 41 -30.0 62 5 63 7 421 16777215 74 1 91 4 64 7 65 257 75 1 175 1 42 1.0 92 8 66 7 43 1.0 76 1 77 6 78 2 67 7 79 5 170 0 171 0 290 0 174 0 93 1 44 0.0 173 0 291 1 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 F0 102 {ACAD_XDICTIONARY 360 286 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 Flat 70 0 71 2 72 1 73 1 90 2 40 -0.6 41 30.0 62 5 63 7 421 16777215 74 0 91 0 64 7 65 257 75 1 175 1 42 1.0 92 8 66 7 43 1.0 76 1 77 6 78 2 67 7 79 5 170 0 171 0 290 0 174 0 93 13 44 0.0 173 0 291 1 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 F1 102 {ACAD_XDICTIONARY 360 288 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 FlatWithEdges 70 1 71 2 72 1 73 1 90 2 40 -0.6 41 30.0 62 5 63 7 421 16777215 74 1 91 0 64 7 65 257 75 1 175 1 42 1.0 92 0 66 257 43 1.0 76 1 77 6 78 2 67 7 79 5 170 0 171 0 290 0 174 0 93 13 44 0.0 173 0 291 1 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 F2 102 {ACAD_XDICTIONARY 360 28A 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 Gouraud 70 2 71 2 72 2 73 1 90 2 40 -0.6 41 30.0 62 5 63 7 421 16777215 74 0 91 0 64 7 65 257 75 1 175 1 42 1.0 92 0 66 7 43 1.0 76 1 77 6 78 2 67 7 79 5 170 0 171 0 290 0 174 0 93 13 44 0.0 173 0 291 1 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 F3 102 {ACAD_XDICTIONARY 360 28C 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 GouraudWithEdges 70 3 71 2 72 2 73 1 90 2 40 -0.6 41 30.0 62 5 63 7 421 16777215 74 1 91 0 64 7 65 257 75 1 175 1 42 1.0 92 0 66 257 43 1.0 76 1 77 6 78 2 67 7 79 5 170 0 171 0 290 0 174 0 93 13 44 0.0 173 0 291 1 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 F7 102 {ACAD_XDICTIONARY 360 294 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 Hidden 70 6 71 1 72 2 73 2 90 0 40 -0.6 41 -30.0 62 5 63 7 421 16777215 74 2 91 2 64 7 65 257 75 2 175 1 42 40.0 92 0 66 257 43 1.0 76 1 77 6 78 2 67 7 79 3 170 0 171 0 290 0 174 0 93 1 44 0.0 173 0 291 0 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 1E4 102 {ACAD_XDICTIONARY 360 2A6 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 JitterOff 70 20 71 2 72 2 73 0 90 0 40 -0.6 41 -30.0 62 5 63 7 421 16777215 74 1 91 4 64 7 65 257 75 1 175 1 42 1.0 92 10 66 7 43 1.0 76 1 77 6 78 2 67 7 79 5 170 0 171 0 290 0 174 0 93 1 44 0.0 173 0 291 1 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 FD 102 {ACAD_XDICTIONARY 360 2A0 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 Linepattern 70 14 71 2 72 2 73 1 90 0 40 -0.6 41 -30.0 62 5 63 7 421 16777215 74 1 91 4 64 7 65 257 75 7 175 7 42 1.0 92 8 66 7 43 1.0 76 1 77 6 78 2 67 7 79 5 170 0 171 0 290 0 174 0 93 1 44 0.0 173 0 291 1 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 1E5 102 {ACAD_XDICTIONARY 360 2A8 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 OverhangOff 70 21 71 2 72 2 73 0 90 0 40 -0.6 41 -30.0 62 5 63 7 421 16777215 74 1 91 4 64 7 65 257 75 1 175 1 42 1.0 92 9 66 7 43 1.0 76 1 77 6 78 2 67 7 79 5 170 0 171 0 290 0 174 0 93 1 44 0.0 173 0 291 1 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 F9 102 {ACAD_XDICTIONARY 360 298 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 Realistic 70 8 71 2 72 3 73 0 90 2 40 -0.6 41 30.0 62 5 63 7 421 16777215 74 0 91 0 64 7 65 257 75 1 175 1 42 1.0 92 8 66 257 43 1.0 76 1 77 6 78 2 67 7 79 3 170 0 171 0 290 0 174 0 93 13 44 0.0 173 0 291 0 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 1F3 102 {ACAD_XDICTIONARY 360 2B4 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 Shaded 70 27 71 2 72 2 73 1 90 2 40 -0.6 41 30.0 62 5 63 7 421 16777215 74 0 91 4 64 7 65 257 75 1 175 1 42 1.0 92 8 66 257 43 1.0 76 1 77 6 78 2 67 8 425 7895160 79 3 170 0 171 0 290 0 174 0 93 5 44 0.0 173 0 291 0 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 1F2 102 {ACAD_XDICTIONARY 360 2B2 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 Shaded with edges 70 26 71 2 72 2 73 1 90 2 40 -0.6 41 30.0 62 5 63 7 421 16777215 74 1 91 2 64 7 65 257 75 2 175 1 42 1.0 92 8 66 257 43 1.0 76 1 77 6 78 2 67 7 79 3 170 0 171 0 290 0 174 0 93 5 44 0.0 173 0 291 0 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 1EF 102 {ACAD_XDICTIONARY 360 2AC 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 Shades of Gray 70 23 71 2 72 2 73 3 90 0 40 -0.6 41 -30.0 62 5 63 7 421 16777215 74 2 91 2 64 7 65 7 75 1 175 1 42 40.0 92 8 66 7 43 1.0 76 1 77 6 78 2 67 7 79 3 170 0 171 0 290 0 174 0 93 1 44 0.0 173 0 291 0 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 1F0 102 {ACAD_XDICTIONARY 360 2AE 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 Sketchy 70 24 71 1 72 2 73 2 90 0 40 -0.6 41 -30.0 62 5 63 7 421 16777215 74 2 91 2 64 7 65 7 75 1 175 1 42 40.0 92 11 66 7 43 1.0 76 1 77 6 78 2 67 7 79 6 170 0 171 0 290 0 174 0 93 1 44 0.0 173 0 291 0 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 FC 102 {ACAD_XDICTIONARY 360 29E 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 Thicken 70 13 71 2 72 2 73 1 90 0 40 -0.6 41 -30.0 62 5 63 7 421 16777215 74 1 91 4 64 7 65 257 75 1 175 1 42 1.0 92 12 66 7 43 1.0 76 1 77 6 78 2 67 7 79 5 170 0 171 0 290 0 174 0 93 1 44 0.0 173 0 291 1 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 F6 102 {ACAD_XDICTIONARY 360 292 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 Wireframe 70 5 71 0 72 2 73 0 90 0 40 -0.6 41 -30.0 62 5 63 7 421 16777215 74 1 91 4 64 7 65 257 75 1 175 1 42 1.0 92 0 66 257 43 1.0 76 1 77 6 78 2 67 7 79 3 170 0 171 0 290 0 174 0 93 1 44 0.0 173 0 291 0 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 VISUALSTYLE 5 1F1 102 {ACAD_XDICTIONARY 360 2B0 102 } 102 {ACAD_REACTORS 330 EF 102 } 330 EF 100 AcDbVisualStyle 2 X-Ray 70 25 71 2 72 2 73 1 90 1 40 0.5 41 -30.0 62 5 63 7 421 16777215 74 1 91 0 64 7 65 257 75 1 175 1 42 1.0 92 8 66 7 43 1.0 76 1 77 6 78 2 67 7 79 3 170 0 171 0 290 0 174 0 93 13 44 0.0 173 0 291 0 45 0.0 1001 ACAD 1000 AcDbSavedByObjectVersion 1070 0 0 DICTIONARYVAR 5 146 102 {ACAD_REACTORS 330 5E 102 } 330 5E 100 DictionaryVariables 280 0 1 1:1 0 DICTIONARYVAR 5 259 102 {ACAD_REACTORS 330 5E 102 } 330 5E 100 DictionaryVariables 280 0 1 3.500000 0 DICTIONARYVAR 5 25A 102 {ACAD_REACTORS 330 5E 102 } 330 5E 100 DictionaryVariables 280 0 1 acadiso.lin 0 DICTIONARYVAR 5 145 102 {ACAD_REACTORS 330 5E 102 } 330 5E 100 DictionaryVariables 280 0 1 STANDARD 0 DICTIONARYVAR 5 84 102 {ACAD_REACTORS 330 5E 102 } 330 5E 100 DictionaryVariables 280 0 1 STANDARD 0 DICTIONARYVAR 5 227 102 {ACAD_REACTORS 330 5E 102 } 330 5E 100 DictionaryVariables 280 0 1 Metric50 0 DICTIONARYVAR 5 228 102 {ACAD_REACTORS 330 5E 102 } 330 5E 100 DictionaryVariables 280 0 1 Metric50 0 DICTIONARYVAR 5 5F 102 {ACAD_REACTORS 330 5E 102 } 330 5E 100 DictionaryVariables 280 0 1 2 0 DICTIONARYVAR 5 63 102 {ACAD_REACTORS 330 5E 102 } 330 5E 100 DictionaryVariables 280 0 1 1 0 DICTIONARYVAR 5 1AE 102 {ACAD_REACTORS 330 5E 102 } 330 5E 100 DictionaryVariables 280 0 1 0 0 DICTIONARYVAR 5 1AF 102 {ACAD_REACTORS 330 5E 102 } 330 5E 100 DictionaryVariables 280 0 1 0 0 DICTIONARYVAR 5 27B 102 {ACAD_REACTORS 330 5E 102 } 330 5E 100 DictionaryVariables 280 0 1 2 0 DICTIONARY 5 285 102 {ACAD_REACTORS 330 283 102 } 330 283 100 AcDbDictionary 281 1 0 DICTIONARY 5 284 102 {ACAD_REACTORS 330 283 102 } 330 283 100 AcDbDictionary 281 1 3 1923465580128 350 27E 3 1923465580144 350 27F 3 1923465580160 350 280 3 1923465580176 350 281 3 1923465580192 350 282 0 DICTIONARY 5 236 330 21C 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 2B7 0 DICTIONARY 5 205 330 22 100 AcDbDictionary 280 1 281 1 0 DICTIONARY 5 1F9 330 ED 100 AcDbDictionary 280 1 281 1 3 FBXASSET 360 1FA 0 DICTIONARY 5 1F7 330 EC 100 AcDbDictionary 280 1 281 1 3 FBXASSET 360 1F8 0 DICTIONARY 5 173 330 EE 100 AcDbDictionary 280 1 281 1 3 BUMPTILE 360 175 3 DIFFUSETILE 360 174 3 FBXASSET 360 1FB 3 OPACITYTILE 360 176 3 REFLECTIONTILE 360 177 0 DICTIONARY 5 234 330 21A 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 2B6 0 DICTIONARY 5 162 330 7F 100 AcDbDictionary 280 1 281 1 3 ACAD_ROUNDTRIP_2008_TABLESTYLE_CELLSTYLEMAP 360 27C 0 DICTIONARY 5 290 330 F5 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 291 0 DICTIONARY 5 28E 330 F4 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 28F 0 DICTIONARY 5 29C 330 FB 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 29D 0 DICTIONARY 5 2A4 330 FF 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 2A5 0 DICTIONARY 5 296 330 F8 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 297 0 DICTIONARY 5 29A 330 FA 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 29B 0 DICTIONARY 5 2AA 330 1E6 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 2AB 0 DICTIONARY 5 2A2 330 FE 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 2A3 0 DICTIONARY 5 286 330 F0 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 287 0 DICTIONARY 5 288 330 F1 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 289 0 DICTIONARY 5 28A 330 F2 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 28B 0 DICTIONARY 5 28C 330 F3 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 28D 0 DICTIONARY 5 294 330 F7 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 295 0 DICTIONARY 5 2A6 330 1E4 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 2A7 0 DICTIONARY 5 2A0 330 FD 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 2A1 0 DICTIONARY 5 2A8 330 1E5 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 2A9 0 DICTIONARY 5 298 330 F9 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 299 0 DICTIONARY 5 2B4 330 1F3 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 2B5 0 DICTIONARY 5 2B2 330 1F2 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 2B3 0 DICTIONARY 5 2AC 330 1EF 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 2AD 0 DICTIONARY 5 2AE 330 1F0 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 2AF 0 DICTIONARY 5 29E 330 FC 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 29F 0 DICTIONARY 5 292 330 F6 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 293 0 DICTIONARY 5 2B0 330 1F1 100 AcDbDictionary 280 1 281 1 3 ACAD_XREC_ROUNDTRIP 360 2B1 0 XRECORD 5 27E 102 {ACAD_REACTORS 330 284 102 } 330 284 100 AcDbXrecord 280 1 1 AcDb_Thumbnail_Schema 102 {ATTRRECORD 341 27F 2 AcDbDs::TreatedAsObjectData 280 1 291 1 102 ATTRRECORD} 102 {ATTRRECORD 341 280 2 AcDbDs::Legacy 280 1 291 1 102 ATTRRECORD} 2 AcDbDs::ID 280 10 91 8 102 {ATTRRECORD 341 281 2 AcDs:Indexable 280 1 291 1 102 ATTRRECORD} 102 {ATTRRECORD 341 282 2 AcDbDs::HandleAttribute 280 7 282 1 102 ATTRRECORD} 2 Thumbnail_Data 280 15 91 0 0 XRECORD 5 27F 102 {ACAD_REACTORS 330 284 102 } 330 284 100 AcDbXrecord 280 1 1 AcDbDs::TreatedAsObjectDataSchema 2 AcDbDs::TreatedAsObjectData 280 1 91 0 0 XRECORD 5 280 102 {ACAD_REACTORS 330 284 102 } 330 284 100 AcDbXrecord 280 1 1 AcDbDs::LegacySchema 2 AcDbDs::Legacy 280 1 91 0 0 XRECORD 5 281 102 {ACAD_REACTORS 330 284 102 } 330 284 100 AcDbXrecord 280 1 1 AcDbDs::IndexedPropertySchema 2 AcDs:Indexable 280 1 91 0 0 XRECORD 5 282 102 {ACAD_REACTORS 330 284 102 } 330 284 100 AcDbXrecord 280 1 1 AcDbDs::HandleAttributeSchema 2 AcDbDs::HandleAttribute 280 7 91 1 284 1 0 XRECORD 5 2B7 102 {ACAD_REACTORS 330 236 102 } 330 236 100 AcDbXrecord 280 1 102 DISPLAYNAME 1 Metric50 102 FLAGS 90 0 0 XRECORD 5 1FA 102 {ACAD_REACTORS 330 1F9 102 } 330 1F9 100 AcDbXrecord 280 1 70 1 90 429727718 1 D62C5603-E3A1-4AEA-B7FB-FE5D8D0755AF 310 504B03040A0000080000CC70623B3DEE336E79000000790000001B0000006175746F6465736B2D64657369676E2D7061636B6167652E786D6C3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D227574662D3822203F3E3C666F726D6174733E3C666F726D61743E687474703A2F2F736368656D612E 310 6175746F6465736B2E636F6D2F64657369676E2D7061636B6167652F323030393C2F666F726D61743E3C2F666F726D6174733E504B0304140006080800CC70623BD486FD9CA0000000F4000000130000005B436F6E74656E745F54797065735D2E786D6C7D8EC10E82300C865F65E91D8A1E8C310C0EEA1BF002731658846E 310 D98AC1B77784ABF1D8FE5FBFBF75BBCE937A534CCEB38643598122B6FEE978D0B0485F9C41B54DDD7D022595594E1A469170414C76A4D9A4D207E29CF43ECE46F218070CC6BECC4078ACAA135ACF422C856C0E68EA1BF5669944DDD7BCDE7B1F8E415D77AECB980613C2E4AC91FC167A2B244592486606FC29C8FD7F045B9A 310 EF7053A7E60B504B0304140006080800CC70623B853B8169EB0000007C01000008000000636F72652E786D6C8D90416EC3201045AF62CDB6C206821CC7C244919D9CA01740401C94182C03558F5F9C3852BBEB6A467FFE9B197D7EFC9E1EC5975982F5AE035262288C535E5B377690E21535501C055FBC8FBF6C503839990E 310 5619041F179FE64D52DE45E362569DD7661365082642A11EB9E920A89B99642953CC8E702F67A9EE7234257977194EC9EAE275C4EABCCF5EAD5940D4AC6F0E35A568B8F43562CD7046CD199FD07E60174276A7BE677B5EADB0E0D14EEFFB6A31321A0D82627C4084204C3F096B71DD52F6819B16635EADF63F509AF53FA164 310 5DDCD1EDDD17164090FCC8732078B56691CB33A85CD7DCC40F504B0304140006080800CC70623B55019EA25F0000007C00000007000000636E782E786D6C4DCB3B0E80201045D1AD90E915ED2CF8AC45050C11660C8261F98AB1B07AC9C97D42D718D865D3E909258CFD00CCE24AC6E326A164D74DC0B4128928FF32603847 310 2BA13128B1252AC747C6BAB984FC68F0B87FE8960A5C09FE86CFB69FBA01504B0304140006080800CC70623BDBABAAF470010000D40300000C0000006662782F636F72652E786D6CC553D16E823014FD95A6AF4B694182CC941A83FA05FB810A9511A125A5257EFE2E82712ECEB8A7F100CD39F7F69E734AF9FADC366850B6 310 AF8DCE7018308C942E4C59EB2AC3DE1D498AD15A706B8CFB56869196ADCAF00863C12B6B7C374385D14E6907A836A59A41D9F7CA615434B0C8705F7CAA5606D23BA8E84F41278B93AC54100640439DE0BDB320004D43C63716C7C399D30917DCFBBA9CD9BA8469F5B156168B24CED3F7248AC8769F27244EB73B92EED8862C 310 B7F13E0C179B3C8F979C8ECD82BBBABDAA2BAC924E9558448CBD9330242CFA08E3154B5651FCC6D215639C8EE5774DBE2B5F6CF2B5768B68963BB5F5588420E442FC700B1139D4CB01F450C1E918227C2E09DF070D8140C84E1E9AAB8F1340832A9CB13130A5F1376A908D57309505ECF2A0DF179C4E9D30F5B239B87E3823 310 7A79C6F31DE1A8A5AEC08474B03C7837EAE4938639B44E5932B833D2C6B6B279CDC613877FA26EE21F4A2A4C63EC7F29A2F301D1F9F7A0E37D145F504B0304140006080800CC70623B9C113CC27E0000009D0000000B0000006662782F636E782E786D6C4DCCDF0A83201C86E15B91DFB94BFB330DD428C8FB886521330DA7 310 6397BF1A1DECE883878F57749FCDA1B7892F1BBC047A23808C7F84D9FA55424E0BE6803A256208E9EF06C84F9B91703228B1C690F78B66B34CD9A5439DF5CF0BFBF65E35BCA1B8D6A5C6F540381E886698B5741C695F9503EBA150A2F8958E3DC3EA0B504B0304140006080800CC70623B7DF2F77C2A010000120200003100 310 00006662782F41393633353835312D344632462D344230382D423046372D3739314545314133324237412F636F72652E786D6C8D51DB8EC22014FC15C2939B0D2DB4B45643319AE817EC0F6041255A68B86CFCFC856D4D76DF7CE190393373060EDB3DC707F856CE6B6B7A480A0C81328395DA5C7B18C3057510EC3873D686 310 3F34088C18550F330C39BB3A1BA7051AAC09CA84841A2BD5020AEF55806078A44B0FFD7053A328440C89E1EFC52486BBB8AA8214A99D789CF9E05200300FC927E4FB4D5B375D43103D5527440FB843077C5AA3F5861C8F645F5787F59E95B390B318B55CE45AA638FAA2957BD7248B390B7A7CC51F9C124149C82B8C378810 310 84AB2F42B7B8DD56F413775B8C5999E9FF4471926F8AA236A1AE96B8B3CC434E5839373893369E1FAF30EA395917409EB7F26AF8801C171837A4A6AC9C89E9F9C9B1A58BA30FD6A5EF5DDDCF894B9AD9B6A59C957943A9FCAE2FD5BC4DFE03504B0304140006080800CC70623BAD7543B64E01000033030000300000006662 310 782F41393633353835312D344632462D344230382D423046372D3739314545314133324237412F636E782E786D6CD593CD6EC32010845F0571AD6CE3D48AD20813A9873E410FBD12D82434182C7EAAE6EDBB2424CD25871E7B41D6EC30B3FA84F9E67BB2E40B4234DE8DB46F1925E094D7C6ED479AD3AE5951B2113C789FEE 310 6C943839C1488B4C05DF079FE72A69D8C96C13AAD6B8631503449F83828872B949AC57D26200B826A308D316B4064D6E46FCDA41C05550DC9E483A00797BFD207EFB092A45DE9514C1BBD22178396BD39D891265658C238DEA00936C654E5E433CB65A26D9F6EDB5EBC14EBF49A45CB856E66048291F6939A9A81BB5C89177 310 38143CA680F4AA299D66A042CEB3354A2684DC9D8D178FE0D9B8B41CAAD720F880EE7EF93C0C18769E099ECC04D5A102C8049A8A05632F4DDF376CF1DE0F6BB65C2F8627B65A33C6BB62177CEBBDAD973006829F89F22E814B54F4BC2BE347F8AA8F681390B50FA73F804400B5F542E796F19FF974E7F78DB802FE05E20750 310 4B0304140006080800CC70623BE75B7789680500003C100000340000006662782F41393633353835312D344632462D344230382D423046372D3739314545314133324237412F6F626A656374732E786D6CAD575B8F9B3818FD2B887D06C22499CB8AA1CA655245D5B455A356FB305264C061D8018C6C3393D95FBFC7600890 310 A4CD5EF210B0B1BFEBF98E3F7B1FF6596ABC522E1296DF9BAE3D320D9A872C4AF2F8DE2CE5CEBA358D0FBEC719939D65A691938CDE9B6ADAF4BD98B3B2D05311DD91329583D9D5FC0F438434A7A611A644887B5384CF34233629258BA878B12322891DEFF6B66BD70BFB62634E8AE781D082709A4B588AF91C528CDA28B73F 310 1C998EEF39EABBEFA97FBD6A7C7E9553F9D3D79FE442923C3C523610337627CB87ABE99D359D4CC6D6E4FACAB5E6ABF9D2726FC6A3C5F56271377BB88362213924694B38DD99FE47C48627A1E7D49F5A8BB5E1A74C0A599ED3B0F21F1E56366B89112D681E218F0915D0D6F17AD41FBA2A369DCF6335D62ABBD39779D5DDD1 310 11D4D8DE3CBB96B2E04FB8202E41051754A1AA8E8F76B4C6DFE810B580B1547F4B84911149794252234D024EF8BBE963A95AE27B3D310A9D5C215C7960FAEE415ED75694C6AFB17BCACA5D99A60A9AA65F217B0BFC53292ACB92BF283FAD0D3621576592CB5BED907C2FA8E9DF794E35E97BEA31BED21FEB401ABB94C44839 310 DCACBF0E1C5DA8DA5B2F4DFFD32AD86F543D9E565E7056502E157C00AD2671CD534549AB752FCA9CDA00677A313F04E51B22FF19E57B300579E3C97EB29F682D92935CEC18CF901B7B54FD8C51F362B56FC72FE0B3C1EAE335EDCCBF5AEC39ADB17DC238973F804BA5E6F6BFE7AF1FB32E523BE9F3BD571418E3631DCA4D48 310 5250CF639223210A9446CA30052EDF057BD35F8329C1ECD84552BF0DC8D18BE7BCE23BFE6BD960AB4A7DE79923A103BEBD80F911CBAA2C60DB19B01CF164A5583B772EE6D3FFA56666CBCDA74DC97724A48F9A58967497E489C4D979006FD7A05E227A1EBDD0F737C623387A9C844D3709995625106D157315F8B8392CD4E0 310 A0B9A720C4BE9829CEF37EA1E13111214D53925356365ADA634861B52519DD27A00AEB808EAF0628E6F435519D446F45CF2C9CF5214F0A15B2F6D06B79DA3EE3CBF7F56780D2F4E7EF73A0F5E5B02A38D07DC852C6B7C1FBB6664213E0C39E3EBA7FF4E1AD23EA2829407C85E586727488B751B2DB9502BC7B228A3FD68B6E 310 A65A22397E690AA8D158D7E404EC8CDA235CC3B7D1898680131CEC2CDF2638C65196279577750F15884AEE19F94199155B92B13297978469D4F8D358DF0AEF7631E28DC8F0D9F437D5D39A83B2231A1D52D543813A824EF8D44BCFF2FA6A31BD1E8DAD87F1CCB526B3879935BF59CDADD5C37479BB1CDD4CA7B3556B516589 310 EF352754B706114D9C885EC9131DE6EFEB43D99AFE2391C2F958179413D7CFEF6B1B6DB1E7600F00DE6E5C67454A339A4BA2E0FBA85ED26F045D454F463DBFCE484C2F90F2E5E3666003662ED8F755951A7D1BECD5B30B550B2785C8E7320B7292A4838DDA71BBC863ED7613CAF659337A3354231D4FF4A182A54904C2898C 310 98B28C4AD0CE056CCF332A80986E571EE9DBC305BB5FEB7E509220A58D25CF042D712A806AC0AD0C657FDEF80D2D9CEAA2EE4D1C76F60BFE74219A06527D6F82DF6412526107381E55E353090704D085B52408A8913C4ED159D79BDA71BB4BC506F4831350EB6F975CD22D69BF7AC49B91A2C0A9DDA3D5CA36AD20FC478E37 310 E61844E2352865EBCB61A275A65283CAAA9DD27703B4102F5AF51EF5F573B75CBB5AD38BC845F7A49F82A0966A49C2E3EA5EA0ECD326CD965F1DB402C6FA8B51A4658C5C5E2EC9E214602E55810345408596591009A82E7E7FFACA19EEA299B14A0081A705CB3296EBC14CDF658DCD336EA6D1136881AAEB87B81AB9EE53D5 310 F5EB8BC8362082DA24122F98680A4E7930C01A0079749CEA14382A0783E5EBA5A10F8C098456A03D6A4AEB6BB881E2513747552A5DB22C7EDAF83BD5528081A365F7FF06504B0304140006080000CC70623B000000000000000000000000350000006662782F41393633353835312D344632462D344230382D423046372D37 310 39314545314133324237412F76657274696365732E62696E504B0304140006080800CC70623BF270F1330600000004000000360000006662782F41393633353835312D344632462D344230382D423046372D3739314545314133324237412F747269616E676C65732E62696E636660600000504B0304140006080000CC7062 310 3B000000000000000000000000370000006662782F41393633353835312D344632462D344230382D423046372D3739314545314133324237412F617474726962757465732E62696E504B0304140006080800CC70623B08DA0BD19000000041010000360000006662782F41393633353835312D344632462D344230382D4230 310 46372D3739314545314133324237412F6469726563746F72792E786D6C858F410AC3201045AF22B36F53E9A60B35CBEEBAE80D244E44489C6234F4F835464A48035D0DF398FF9F8AF63D0E6CC63039F212F8F9020C7D47C6792B21C5FE7403D62A1188E2E60C98D7234A5830286103A55745067B9D86B8A3CF9C7F90C11DE6 310 07FB144396D7B6A82D282E9A152AD114D5EF2CB866EEE831B8EEA07A7BB5A8D7D61A2BAAEB7FD5F70921FF497D00504B0304140006080800CC70623BEDD1DC58FD000000A00100003B0000006662782F41393633353835312D344632462D344230382D423046372D3739314545314133324237412F7265736F75726365732F 310 636F72652E786D6C8D504B6E833010BD0A9A6D65B00922041947112427E8052C33A156828DFCA97AFC9A40A576D7CDCCE87D344F8F9FBFE667F689CE6B6B3A6039850C8DB2A336530731DC4903D95970676DF82583CCC8193B5861107C72362E3BA4AC096842428D1D7107A5F7182053CF7474E0D507CE32973124857FE48B 310 540F3961CEF244279DE03EB81420DB9EAC1384436FA353E879B1B182C7A8C75DA3C7F453DF353A1075D537A7BA6464B8F535A99AE14A9A2BBD90E350DD183B5CFABE3AF262350B1EF4FC9351399401471025A527C218A1E53BAB5A5AB765F5469B96525EACF23FA6B88CFF34456DC2A1DCE36E360F82A5202F42F062ED2BAD 310 579969AFDD8A6F504B010214000A0000080000CC70623B3DEE336E79000000790000001B00000000000000000000000000000000006175746F6465736B2D64657369676E2D7061636B6167652E786D6C504B01021400140006080800CC70623BD486FD9CA0000000F40000001300000000000000000000000000B20000005B 310 436F6E74656E745F54797065735D2E786D6C504B01021400140006080800CC70623B853B8169EB0000007C010000080000000000000000000000000083010000636F72652E786D6C504B01021400140006080800CC70623B55019EA25F0000007C000000070000000000000000000000000094020000636E782E786D6C504B 310 01021400140006080800CC70623BDBABAAF470010000D40300000C00000000000000000000000000180300006662782F636F72652E786D6C504B01021400140006080800CC70623B9C113CC27E0000009D0000000B00000000000000000000000000B20400006662782F636E782E786D6C504B01021400140006080800CC70 310 623B7DF2F77C2A010000120200003100000000000000000000000000590500006662782F41393633353835312D344632462D344230382D423046372D3739314545314133324237412F636F72652E786D6C504B01021400140006080800CC70623BAD7543B64E010000330300003000000000000000000000000000D2060000 310 6662782F41393633353835312D344632462D344230382D423046372D3739314545314133324237412F636E782E786D6C504B01021400140006080800CC70623BE75B7789680500003C10000034000000000000000000000000006E0800006662782F41393633353835312D344632462D344230382D423046372D3739314545 310 314133324237412F6F626A656374732E786D6C504B01021400140006080000CC70623B0000000000000000000000003500000000000000000000000000280E00006662782F41393633353835312D344632462D344230382D423046372D3739314545314133324237412F76657274696365732E62696E504B01021400140006 310 080800CC70623BF270F133060000000400000036000000000000000000000000007B0E00006662782F41393633353835312D344632462D344230382D423046372D3739314545314133324237412F747269616E676C65732E62696E504B01021400140006080000CC70623B0000000000000000000000003700000000000000 310 000000000000D50E00006662782F41393633353835312D344632462D344230382D423046372D3739314545314133324237412F617474726962757465732E62696E504B01021400140006080800CC70623B08DA0BD1900000004101000036000000000000000000000000002A0F00006662782F41393633353835312D344632 310 462D344230382D423046372D3739314545314133324237412F6469726563746F72792E786D6C504B01021400140006080800CC70623BEDD1DC58FD000000A00100003B000000000000000000000000000E1000006662782F41393633353835312D344632462D344230382D423046372D3739314545314133324237412F7265 310 736F75726365732F636F72652E786D6C504B0506000000000E000E0080040000641100000000 0 XRECORD 5 1F8 102 {ACAD_REACTORS 330 1F7 102 } 330 1F7 100 AcDbXrecord 280 1 70 1 90 429727718 1 30362254-06B7-45E0-A893-8CFA70E3D6BC 310 504B03040A0000080000CC70623B3DEE336E79000000790000001B0000006175746F6465736B2D64657369676E2D7061636B6167652E786D6C3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D227574662D3822203F3E3C666F726D6174733E3C666F726D61743E687474703A2F2F736368656D612E 310 6175746F6465736B2E636F6D2F64657369676E2D7061636B6167652F323030393C2F666F726D61743E3C2F666F726D6174733E504B0304140006080800CC70623BD486FD9CA0000000F4000000130000005B436F6E74656E745F54797065735D2E786D6C7D8EC10E82300C865F65E91D8A1E8C310C0EEA1BF002731658846E 310 D98AC1B77784ABF1D8FE5FBFBF75BBCE937A534CCEB38643598122B6FEE978D0B0485F9C41B54DDD7D022595594E1A469170414C76A4D9A4D207E29CF43ECE46F218070CC6BECC4078ACAA135ACF422C856C0E68EA1BF5669944DDD7BCDE7B1F8E415D77AECB980613C2E4AC91FC167A2B244592486606FC29C8FD7F045B9A 310 EF7053A7E60B504B0304140006080800CC70623B1EC5D7A3EB0000007C01000008000000636F72652E786D6C8D90416EC3201045AF82665B6103C6756C6122AB4D4ED00B204C5C94182C03558F5F9C3852BBEB6A467FFE9B197D71FC9E6FE8CBACC17AD7032D0820E3B41FAD9B7A48F1820F808E52ACDEC75F36404ECDA687 310 4D0629A6D5A76597B477D1B89855E747B38B2A041301E95B6E7A08FAD3CCAA50296647B8168BD2573599823EBB0CA76447F43862C7BCCF5EAC59410E4DDD9C7973C2755553CCCFA4C603E3040F1565ED3B1FDE4E432BCA0D9622DAF9795FAF464533826484B498524CD807E51D79ED187F21878E10516EF63F505AC67F42C9 310 BA58B1FDDD071640D2FCC87D2045B96591CB3DA85CB7DCE40F504B0304140006080800CC70623B55019EA25F0000007C00000007000000636E782E786D6C4DCB3B0E80201045D1AD90E915ED2CF8AC45050C11660C8261F98AB1B07AC9C97D42D718D865D3E909258CFD00CCE24AC6E326A164D74DC0B4128928FF32603847 310 2BA13128B1252AC747C6BAB984FC68F0B87FE8960A5C09FE86CFB69FBA01504B0304140006080800CC70623B8C9102E971010000D40300000C0000006662782F636F72652E786D6CC5535B6E833010BC8AE5DF0A6C08340F1947A84D4ED00B38C6A128602363A31CBFCB234A53A551FA553EC09AD9F5CE8C31DB9E9B1AF5CA 310 7695D1198E428A91D2D214952E33ECDD315861B4E5CC1AE3BE9561A445A3323CC098B3D21ADFCE9034DA29ED00D5A6503328BA4E398C640D8B0C77F253352214DE4145770A5B214FA2546114020D759C75CE8200340D19DE981F0F6746269C33EFAB6266AB02A655C74A59CCF365BADC27CB5D902ED22848F6340DF238A141 310 BE88E2F57B92BFEDF23523433367AE6A2EEAA455C2A902F398D2751045018D3FA264435F3771F242571B4A1919CA6F9A7C5B3CD9E42BED16F12C776AEB308F40C848FC700B1139D4891EF410CEC810227CC6846F8386402064270EF5C5C709A05E49676C024C61FC95EA45ED154CA5211D1FF4FB8291A913A68E9B83EBBB33 310 E2A7673CDE118E5AE8124C0807CB8377834E366998436B950D7A7746DAD846D4CFD978E0F04FD455FC5D49D2D4C6FE9722321F10997F0F32DC47FE05504B0304140006080800CC70623BFFEA85907E0000009D0000000B0000006662782F636E782E786D6C4DCCD10A83201886E15B91FFDC95D95A811AB6F23E625948A6C3 310 E9D8E5AF46073BFAE0E1E365ED67B3E8ADC3CB78C7815C7240DA3DFC64DCC221C519D7805AC182F7F1EF06C88D9BE6703008B6049F9E274D7A1E938DBB5AE3D6131B2589BA0D3D965551E0B2EA732C9B9A624AAEB41E3A557677029960D9AFB4EF11165F504B0304140006080800CC70623B4FEEA4082C0100001202000031 310 0000006662782F39464131463745442D413632322D343644302D413938332D3331353338454246344243312F636F72652E786D6C8D515B6EC32010BC0AE2AB55850DD871ED0813254D72825EC00192A2C460F1A872FC42ED48ED5F7E00CDCECCCEB26C731F6FE05B39AFADE921293004CA082BB5B9F43086336A21D870E6AC 310 0D7F68109861543DCC30E4ECE26C9C164858139409093556AA051CBC570102714B8F1E7AF1A5C6A11862480C7F2DA6415C878B2A4891CA89C7990F2E050073937C42DE1DB7E4F87ED8A36D4329AA9B3D46DBAEAD504556557BD81DEBDD0761E52CE42C462D17B996298E3E6BE59E35C962CE821E1FF18553435012728A7187 310 0841987E927A8D9B35ADDF70BBC6989599FE4F1427F9A4286A132ABAC49D651EF234CD5CE04CDA78BA3DC2A8FB645D00B9DF8B57E215725C60BCA2A463E54C4CE327C7A65E1C7DB02E7DEFCBF594B864C5CA6CDBD49C957943E9FA5D5FBAF336F90F504B0304140006080800CC70623BAD7543B64E01000033030000300000 310 006662782F39464131463745442D413632322D343644302D413938332D3331353338454246344243312F636E782E786D6CD593CD6EC32010845F0571AD6CE3D48AD20813A9873E410FBD12D82434182C7EAAE6EDBB2424CD25871E7B41D6EC30B3FA84F9E67BB2E40B4234DE8DB46F1925E094D7C6ED479AD3AE5951B2113C 310 789FEE6C943839C1488B4C05DF079FE72A69D8C96C13AAD6B8631503449F83828872B949AC57D26200B826A308D316B4064D6E46FCDA41C05550DC9E483A00797BFD207EFB092A45DE9514C1BBD22178396BD39D891265658C238DEA00936C654E5E433CB65A26D9F6EDB5EBC14EBF49A45CB856E66048291F6939A9A81BB5 310 C8917738143CA680F4AA299D66A042CEB3354A2684DC9D8D178FE0D9B8B41CAAD720F880EE7EF93C0C18769E099ECC04D5A102C8049A8A05632F4DDF376CF1DE0F6BB65C2F8627B65A33C6BB62177CEBBDAD973006829F89F22E814B54F4BC2BE347F8AA8F681390B50FA73F804400B5F542E796F19FF974E7F78DB802FE05 310 E207504B0304140006080800CC70623B16AB87BA640500003C100000340000006662782F39464131463745442D413632322D343644302D413938332D3331353338454246344243312F6F626A656374732E786D6CAD575B6FA33818FD2B887DE6924B3BED8A326A92B68A663B534DD4D13E548A0C38942D60649B369D5FBFC7 310 600890A493BDE42160637FD7F31D7FF63E6FB3D478A55C242CBF3247B66B1A340F5994E4F19559CA8D75611A9F7D8F33263BCB4C232719BD32D5B4E97B316765A1A722BA21652A07B3B7B33F0D11D29C9A46981221AE4C113ED38CD8A4942CA2E2C58E882476BCD9DA23BB5ED8171B73523C0F841684D35CC252CCE79062D4 310 468DFA43D7747CCF51DF7D4FFDEB5593E3AB9CCA9FBEFE241792E4E19EB28198C968BAB8199F5D5A67D3E9C49A9E8F47D6EC76B6B0469F26EEFC7C3EBFBCBEB98462213924694B38DD98FE1D62C393D073EA4FADC5DAF04326852CCF6958F90F0F2B9BB5C48816348F90C7840A68EB78EDF68723159BCEE7891A6B95DDE9D3 310 BCEAEEE8086A6C6F9E5D4B59F0175C10A7A0820BAA5055C7473B5AE3CFDD452D602CD5DF12616444529E90D448938013FE6EFA58AA96F85E4F8C42275708571E98FE6827AF6B2B4AE3D7D83D64E5A64C53054DD3AF90BD06FEA9149565C94FCA0F6B834DC85599E4F2423B24DF0B6AFA979E534DFA9E7A4CC6FA631D486393 310 921829879BF5D781A373557BCB85E97FB90DB62B558F8795179C15944B051F40AB495CF35451D26A4727654E6D8033BD98EF82F21D91FF8AF2DD9982BCF1643BDD4EB516C9492E368C67C88DED563FC36D5EACF66DFF057C3658BDBFA69DF9578B3DA735B64F18C7F20770A9D45CFCF7FCF563D6456A277DBEF78A02637CA2 310 43B90A490AEAB94F72244481D24819A6C0E59B606BFA4B3025981DBB48EAB701D97BF19C577CC77F2D1B6C55A9EF3C732474C0B727303F625995056C3B02963D9EAC146BE78EC5FCEC7FA999EBC5EACBAAE41B12D27B4D2C0BBA49F244E2ECDC81B76B502F113D8F5EE8FB1BE3111CDD4FC2AA9B844CAB1288B68AB90A7CDC 310 1C166AB0D3DC5310625FCC14E779BFD0709F8890A629C9292B1B2DED31A4B0DA928CEE135085754027E3018A397D4D5427D15BD1330B677DC8934285AC3DF45A9EB68FF8F2B8FC0A509AFEECFD0FF2DE25CC6047F7214B195F07EFEB9A094D800F7BFAE8FED187B78EA8A3A400F115961BCAD1215E47C966530AF0EE8128FE 310 58CEBB996A8964FFA529A046635D9353B0336A8F700DDF46271A024E70B0B37C9DE01847591E54DED53D54202AB947E4076556AC49C6CA5C9E1226B7F1A7B1BE15DEED62C41B91E1B3E9AFAAA735036547343A925075041DF0A9979E893B391F8FCFA6967B3EFB644DCF6E5CEBFAE272625DCC6FAF3FB93793C5F90CE1EF57 310 407342756B10D1C489E8953CD1617E5CEECAD6F4EF8914CE5D5D504E5C3F1F9736DA62CFC11E00BCDDB8CC8A9466349744C1F75EBDA4DF09BA8A9E8C7A7E9991989E20E5DBDD6A6003664ED8F7A04A8DBE0DF6EAD9B9AA858342E47399053949D2C146EDB85DE4B176BB0965FBAC19BD19AA918E27FA50C1D22402E144464C 310 59462568E704B6E71915404CB72B8FF4EDE184DDAF753F284990D2C6926782963815403548A70C657FDEF80D2D9CEAA2AE4C1C76F60BFE74219A06527D6582DF6412526107381E55E353090704D085B52408D0933C4ED159D79BDA71BB4BC506F4831350EB6F979CD22D69BF7AC49B91A2C0A9DDA3D5CA36AD20FC478E37E6 310 1844E2352865EBCB6EA275A652E3836BE04EFB400BF1A2556F515F1FBB35B2AB35BD889C744FFA1004B5544B121E57F70215746DD2F5E2C1412B602CBF19455AC6C8E5E9922C4E01E65215385004546899059180EAFCF7A707CE7017CD8CDB0410789AB32C63B91E5CEBBBACB17AC6CD347A022D5075FD106377347AAABA7E 310 7D11590744509B44E205134DC1290F06580320F78E537D3D73540E06CB970B431F185308AD40BBD794D6D77003C5A36E8EAA54BA64597CD8F83BD552A080A365F7FF06504B0304140006080000CC70623B000000000000000000000000350000006662782F39464131463745442D413632322D343644302D413938332D3331 310 353338454246344243312F76657274696365732E62696E504B0304140006080800CC70623BF270F1330600000004000000360000006662782F39464131463745442D413632322D343644302D413938332D3331353338454246344243312F747269616E676C65732E62696E636660600000504B0304140006080000CC70623B 310 000000000000000000000000370000006662782F39464131463745442D413632322D343644302D413938332D3331353338454246344243312F617474726962757465732E62696E504B0304140006080800CC70623B08DA0BD19000000041010000360000006662782F39464131463745442D413632322D343644302D413938 310 332D3331353338454246344243312F6469726563746F72792E786D6C858F410AC3201045AF22B36F53E9A60B35CBEEBAE80D244E44489C6234F4F835464A48035D0DF398FF9F8AF63D0E6CC63039F212F8F9020C7D47C6792B21C5FE7403D62A1188E2E60C98D7234A5830286103A55745067B9D86B8A3CF9C7F90C11DE607 310 FB144396D7B6A82D282E9A152AD114D5EF2CB866EEE831B8EEA07A7BB5A8D7D61A2BAAEB7FD5F70921FF497D00504B0304140006080800CC70623B0D6EF93BFE000000A00100003B0000006662782F39464131463745442D413632322D343644302D413938332D3331353338454246344243312F7265736F75726365732F63 310 6F72652E786D6C8D50596E833010BD0A9ADFCA60B334011947A8694ED00B586642AC041B79A97AFC9A40A5F6AF3F33A3B7689E1E3F7DCD8FEC139DD7D6F4C0720A191A65476DA61E62B892236427C19DB5E1970C322367EC618541F0C9D9B8EC90B226A009093576C41D94DE63804C3DD2D18357379C652E63480A7FCF17A9 310 EE72C29CE5894E3AC17D702940B63D59270887DE46A7D0F36263058F518FBB468FE9A7BE6A7420864373B8D4873369AA8691FA421B3294352543C5CAF65C0F6FEF43CB8BD52C78D0F34F46E550061C419494B6843142CB0F5677F4B52BEB177AEC28E5C52AFF638ACBF84F53D42654E51E77B379102C05791282176B5F693D 310 CB4C7BED567C03504B010214000A0000080000CC70623B3DEE336E79000000790000001B00000000000000000000000000000000006175746F6465736B2D64657369676E2D7061636B6167652E786D6C504B01021400140006080800CC70623BD486FD9CA0000000F40000001300000000000000000000000000B20000005B 310 436F6E74656E745F54797065735D2E786D6C504B01021400140006080800CC70623B1EC5D7A3EB0000007C010000080000000000000000000000000083010000636F72652E786D6C504B01021400140006080800CC70623B55019EA25F0000007C000000070000000000000000000000000094020000636E782E786D6C504B 310 01021400140006080800CC70623B8C9102E971010000D40300000C00000000000000000000000000180300006662782F636F72652E786D6C504B01021400140006080800CC70623BFFEA85907E0000009D0000000B00000000000000000000000000B30400006662782F636E782E786D6C504B01021400140006080800CC70 310 623B4FEEA4082C0100001202000031000000000000000000000000005A0500006662782F39464131463745442D413632322D343644302D413938332D3331353338454246344243312F636F72652E786D6C504B01021400140006080800CC70623BAD7543B64E010000330300003000000000000000000000000000D5060000 310 6662782F39464131463745442D413632322D343644302D413938332D3331353338454246344243312F636E782E786D6C504B01021400140006080800CC70623B16AB87BA640500003C1000003400000000000000000000000000710800006662782F39464131463745442D413632322D343644302D413938332D3331353338 310 454246344243312F6F626A656374732E786D6C504B01021400140006080000CC70623B0000000000000000000000003500000000000000000000000000270E00006662782F39464131463745442D413632322D343644302D413938332D3331353338454246344243312F76657274696365732E62696E504B01021400140006 310 080800CC70623BF270F133060000000400000036000000000000000000000000007A0E00006662782F39464131463745442D413632322D343644302D413938332D3331353338454246344243312F747269616E676C65732E62696E504B01021400140006080000CC70623B0000000000000000000000003700000000000000 310 000000000000D40E00006662782F39464131463745442D413632322D343644302D413938332D3331353338454246344243312F617474726962757465732E62696E504B01021400140006080800CC70623B08DA0BD190000000410100003600000000000000000000000000290F00006662782F39464131463745442D413632 310 322D343644302D413938332D3331353338454246344243312F6469726563746F72792E786D6C504B01021400140006080800CC70623B0D6EF93BFE000000A00100003B000000000000000000000000000D1000006662782F39464131463745442D413632322D343644302D413938332D3331353338454246344243312F7265 310 736F75726365732F636F72652E786D6C504B0506000000000E000E0080040000641100000000 0 XRECORD 5 175 102 {ACAD_REACTORS 330 173 102 } 330 173 100 AcDbXrecord 280 1 270 1 271 1 0 XRECORD 5 174 102 {ACAD_REACTORS 330 173 102 } 330 173 100 AcDbXrecord 280 1 270 1 271 1 0 XRECORD 5 1FB 102 {ACAD_REACTORS 330 173 102 } 330 173 100 AcDbXrecord 280 1 70 0 90 1673772943 1 ECE7A1D2-D628-4531-984C-D00F80459256 310 504B03040A0000080000CC70623B3DEE336E79000000790000001B0000006175746F6465736B2D64657369676E2D7061636B6167652E786D6C3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D227574662D3822203F3E3C666F726D6174733E3C666F726D61743E687474703A2F2F736368656D612E 310 6175746F6465736B2E636F6D2F64657369676E2D7061636B6167652F323030393C2F666F726D61743E3C2F666F726D6174733E504B0304140006080800CC70623BD486FD9CA0000000F4000000130000005B436F6E74656E745F54797065735D2E786D6C7D8EC10E82300C865F65E91D8A1E8C310C0EEA1BF002731658846E 310 D98AC1B77784ABF1D8FE5FBFBF75BBCE937A534CCEB38643598122B6FEE978D0B0485F9C41B54DDD7D022595594E1A469170414C76A4D9A4D207E29CF43ECE46F218070CC6BECC4078ACAA135ACF422C856C0E68EA1BF5669944DDD7BCDE7B1F8E415D77AECB980613C2E4AC91FC167A2B244592486606FC29C8FD7F045B9A 310 EF7053A7E60B504B0304140006080800CC70623BD9DDAED0EC0000007C01000008000000636F72652E786D6C8D90416EC3201045AF82665B61836D9CD8C2444DD39CA01740405C94182C03558F5F9C3852BBEB6A467FFE9B197D7EF89E6EE8CB2CC17A37002D0820E394D7D68D03A478C17B4007C117EFE32F1B20272733C0 310 2A83E0E3E2D3BC49CABB685CCCAAF3DA6CA20CC14440EA969B0182FA34932C648AD911AEC52CD5558EA6A0CF2EC329598D1E47ACCEFBECC59A050463A7EA5833865FEBDD0E37353BE3EE8DBDE3F6786A48D375FBF6CC78B9C282473B3DEFABC5C86834888A900E538A49F5419B9EB47DD5BC907D4F082F57FB1F28CDFA9F50 310 B22ED6D5F6EE030B20687EE43E10BC5CB3C8E51E54AE6B6EE207504B0304140006080800CC70623B55019EA25F0000007C00000007000000636E782E786D6C4DCB3B0E80201045D1AD90E915ED2CF8AC45050C11660C8261F98AB1B07AC9C97D42D718D865D3E909258CFD00CCE24AC6E326A164D74DC0B4128928FF326038 310 472BA13128B1252AC747C6BAB984FC68F0B87FE8960A5C09FE86CFB69FBA01504B0304140006080800CC70623BA24EB22D72010000D40300000C0000006662782F636F72652E786D6CC5535B6E833010BC8AE5DF0A6C5E49888CA3A6694ED00B38E05014B091B1518EDFE511A5A9D228FD2A1F60CDEC7A67C6986DCE4D8D7A 310 69BA4AAB0C073EC548AA5C17952A33ECECD15B61B4E1CC686DBF9561A44423333CC098B3D268D7CE50AE9595CA02AA74216750749DB418E5352C32DCE59FB211BE70162ABA93DF8AFC244AE9073ED050C759670D0840D390E18DF9F1706664C23973AE2A66B62A605A75ACA4C13C4976E1364A12EF355A2EBD384AF65EFA96 310 BC7B8BED2EA6719AAE16FB8491A199335B351775B991C2CA02F390D2D40B028F861F41BCA68B7518BFD0D59A524686F29B26D7164F36B94AD9289CE54E6D1DE6010819891F6E21228B3AD1831EC219194284CF98F06DD01008846CC5A1BEF83801D4CBDC6A1303536877A57A513B0953A94FC707FDBE6064EA84A9E3E6E0FA 310 EE8CF0E9198F7784A316AA0413C2C2F2E0ECA0934D1AE6D05A69BCDE9E91D2A611F573361E38FC1375157F5752AE6B6DFE4B11990F88CCBF0719EE23FF02504B0304140006080800CC70623B408A7D3B7C0000009D0000000B0000006662782F636E782E786D6C4DCCD10A83201886E15B91FFDC552A92A0064DBC8F581632 310 D3703A76F9ABD1C18E3E78F878E5F0D9027ABBFCF2292AE86E2D20171F69F6715550CB827B40839639A5F2770314A7CD293819B45C73AAFB45B35BA61ACAA1C1C7E7855C58C15BC331339661262CC762340413D68D77DA5B42298546CBE6573AF60CEB2F504B0304140006080800CC70623B449FB9BD290100001202000031 310 0000006662782F36394639363044362D344446342D343946362D394244322D3234314243333846323333332F636F72652E786D6C8D515B6EC32010BC0AE22B55850D98B871848994463E412FE002495162B07854397EA176A4F62F3F2C9A9D991D587EB84F37F0AD7D30CEF6905418026DA553C65E7A98E219ED203808EE9D 310 8B7F6810D871D23D2C3014FCE25D9A57483A1BB58D19B54EE9151C43D0110279CB971E06F9A5A7B11A53CC8C70ADE6515EC78BAE4895DB992778883E0700CB907242D17643D7E2538BD869608875438BBAE38922CAC8F1BDD90DB4691A5E2F42C153326A951B95E398B3D1FE599322163C9AE9115F7A3D46ADA0A018778810 310 84E907617BDCEE297BC5BB3DC6BC2EF47FA234AB2745C9D8D8D035EE220B50105E2F0DC1954B9FB747187D9F9D8FA0CCDB042D5FA0C015C65B42DF78BD10F3F3B363CB56C7109DCFDFBBB97E662ED92EB62D13BC2E1BCAE5777DB9966D8A1F504B0304140006080800CC70623BAD7543B64E01000033030000300000006662 310 782F36394639363044362D344446342D343946362D394244322D3234314243333846323333332F636E782E786D6CD593CD6EC32010845F0571AD6CE3D48AD20813A9873E410FBD12D82434182C7EAAE6EDBB2424CD25871E7B41D6EC30B3FA84F9E67BB2E40B4234DE8DB46F1925E094D7C6ED479AD3AE5951B2113C789FEE 310 6C943839C1488B4C05DF079FE72A69D8C96C13AAD6B8631503449F83828872B949AC57D26200B826A308D316B4064D6E46FCDA41C05550DC9E483A00797BFD207EFB092A45DE9514C1BBD22178396BD39D891265658C238DEA00936C654E5E433CB65A26D9F6EDB5EBC14EBF49A45CB856E66048291F6939A9A81BB5C89177 310 38143CA680F4AA299D66A042CEB3354A2684DC9D8D178FE0D9B8B41CAAD720F880EE7EF93C0C18769E099ECC04D5A102C8049A8A05632F4DDF376CF1DE0F6BB65C2F8627B65A33C6BB62177CEBBDAD973006829F89F22E814B54F4BC2BE347F8AA8F681390B50FA73F804400B5F542E796F19FF974E7F78DB802FE05E20750 310 4B0304140006080800CC70623B8D05915C650500003B100000340000006662782F36394639363044362D344446342D343946362D394244322D3234314243333846323333332F6F626A656374732E786D6CAD575B6FA33814FE2B887D06429276DA1565D4266D158D3A339A6846FB502932E050B66023DB74D2FDF5FB190C01 310 9276B2973C046C8ECFF53B17071F77456EBD502133CEAE6CDF9DD81665314F32965ED995DA3A17B6F5310C04E7AA47665B8C14F4CAD6DB7618A48257A5D94AE89654B91AEDDEDDFC61C998326A5B714EA4BCB265FC440BE2924AF184CA6737218AB8E976E7FA6E4338649B0A523E8D98964450A6A029F619B8588D52FE7039 310 B1BD30F0F4F730D0FF866AF6369557DB33949F31A9088B0F848DD8CCFCF9F2767A76E99CCDE733677E3EF59D9BBB9BA5E37F984D16E78BC5E5F5ED25044B25C0C96822E8D60EEFE11B91C581D77CEA34368A1F5329E68CD1B8B61F16D63A1B8E092D294B10C78C4A48EB593D192E7DED9BDEE7995E1B91FDEDD3ACEA9FE831 310 6A756F9F7D4D79F4274C90A7A04248AA51D5F8C718DAE06FB2F75AC4796EBE65D22A88A22223B995679120E2D50E41AA49C260C046A35368846B0BECD0DFF3EBEB8AD4F835768F69B9ADF25C43D30E6B646F807FAA64AD59F61715C7A54127C4AACA98BA3006A9D792DAE165E0D59B61A01FB3A9F9D838D2DAE62445C86166 310 F37564E842E7DE6A69879FEEA2DD5AE7E371E1A5E025154AC307D06A03D73EB5978C58FFA4C8E9033066E0F3BD53BEC1F39F91BE7B55103791EDE6BBB991A2046172CB4581D8B893FA674DDA17A77B3B7C413D1B511FD2743BFF8A38F03A658705E3ADF8015C3A3417FF3D7E439FF591DA0B5F18BC20C1B8981957AE6392A3 310 F43C640C01D1A0B4728E2DD4F26DB4B3C3152A252A3B4E913CEC1C72F012782FF88EFF8637AA552DBEF76408E8A8DE9E50F9E1CB3A2DA0DB1B6039A893B56063DC5B3E3FFB5F72E67AB9FEB4AEC496C4F4C1149625DD662C53E89D7BF0F6151A046260D1337DFDC94502430F83B0EE07A130A224BCAD7DAE1D9FB6CD422FF6 310 920702629C4BB9AE79C12F243C6432A6794E18E5552BA56B431AAB5D91317302B2B071E86C3A42B1A02F999E24061403B5D0EB639195DA655DD3EBEAB4FB862DDF579F014AD0E73C22F99E28DA57FB98E75C6CA2D74D53086D600F4786E0FE3144B771A8A7B900F03594DB8A633CBC49B2EDB69228BB479CF863B5E807AAAB 310 23872F6DFEB4129B949CA33823F58830E86D65621E10047D9DB34D862E8EAC3C2ABC2F7B2C40D67CDFE01F5545B92105AF983AC54D93D69E56FB8E797F88913F898A9FEC705D3F9D1B54EC8426FB500D40A03BD0119B06E1B95DDC7EB8F6975367793EBD70E66733DFB9BC982F9CE564727731999F5D4ECFCE3B8D6A4DC2A0 310 6D50FD148437D110834A64C6CDDF57FBACB5C307A2A477DFE4939736CFEF2B175371E0E10CF0DD1D5C15654E0BCA14D1E87DD02FF93782A162C0A3D95F1524A52770F972BF1EE9809D13CE7DD599467F8ECE9ADD85CE85A34CD45355448C64F9E8A031DC2D596ACC6E5DD93D9B82DE2EF5CAF81363A8E47996A0DE24564A79 310 4115AACE09C55E14540231FDA13C319787134EBF34E3A022514E5B4D9E0826E25C02D5805B15ABE1BEF51B26383D445DD9E875EE33FE4C22DA16427D65A3BCA92CA6D28DD01DF5DC53330704308475351050232CCD31583787BA75774AFB06E5070DD0C8EF484E19968C5D83BA5B90B244D31E54D55A372320FE4786B7EA58 310 44E135AA5467CB7EA333A61683CC6A8C3257034C10CF46F40EF9F5BE59BE5BD30C3C72D235E95D10345C1D45445A5F0BB47E46A5EBE5570F9380B5FA629579952296A773720405982B9DE04011506178964401AA8BDF1FBF0A8EAB6861DD6580C0E38217056766716DAEB2D6FA0917D3E4116581EADB879C4E7CFFB11EFACD 310 3D641311495D92C8676CB409A72D18610D803CE8A626049E8EC1887CB5B44CC39883690DDA8399B4B9855B481E7D71D4A9D22F96E5BB73BF5793020C02137BF837504B0304140006080000CC70623B000000000000000000000000350000006662782F36394639363044362D344446342D343946362D394244322D32343142 310 43333846323333332F76657274696365732E62696E504B0304140006080800CC70623BF270F1330600000004000000360000006662782F36394639363044362D344446342D343946362D394244322D3234314243333846323333332F747269616E676C65732E62696E636660600000504B0304140006080000CC70623B0000 310 00000000000000000000370000006662782F36394639363044362D344446342D343946362D394244322D3234314243333846323333332F617474726962757465732E62696E504B0304140006080800CC70623B08DA0BD19000000041010000360000006662782F36394639363044362D344446342D343946362D394244322D 310 3234314243333846323333332F6469726563746F72792E786D6C858F410AC3201045AF22B36F53E9A60B35CBEEBAE80D244E44489C6234F4F835464A48035D0DF398FF9F8AF63D0E6CC63039F212F8F9020C7D47C6792B21C5FE7403D62A1188E2E60C98D7234A5830286103A55745067B9D86B8A3CF9C7F90C11DE607FB14 310 4396D7B6A82D282E9A152AD114D5EF2CB866EEE831B8EEA07A7BB5A8D7D61A2BAAEB7FD5F70921FF497D00504B0304140006080800CC70623BCA768048FE000000A00100003B0000006662782F36394639363044362D344446342D343946362D394244322D3234314243333846323333332F7265736F75726365732F636F72 310 652E786D6C8D50596E833010BD0A9ADFCA60D600328E9AA639412F609909B1126CE4A5EAF16B0295DABFFECC8CDEA2797AECF8353F924FB44E193D409E5248504B332A3D0D10FC95B4901C39B3C6F85F3248B49871801506CE266BC2B243D2688FDA47549B11775038871E12F988C7004EDE7016A9083E2ADC3D5D84BC8B09 310 D33C8D74D471E6BC8D0192EDC93A815B742658898E651BCB59086ADC356A8C3FD555A1055ED7E7E254D615792D0F075295F585746FF53B694EE78A565DD736979A65AB9933AFE69F8CD2A2F038022F28ED489E135A7CE4554F9BBEA85E68DB53CAB255FEC71496F19FA6A0B42F8B3DEE6673C0F318E4497096AD7DC5F52C33 310 EEB55BFE0D504B010214000A0000080000CC70623B3DEE336E79000000790000001B00000000000000000000000000000000006175746F6465736B2D64657369676E2D7061636B6167652E786D6C504B01021400140006080800CC70623BD486FD9CA0000000F40000001300000000000000000000000000B20000005B436F 310 6E74656E745F54797065735D2E786D6C504B01021400140006080800CC70623BD9DDAED0EC0000007C010000080000000000000000000000000083010000636F72652E786D6C504B01021400140006080800CC70623B55019EA25F0000007C000000070000000000000000000000000095020000636E782E786D6C504B0102 310 1400140006080800CC70623BA24EB22D72010000D40300000C00000000000000000000000000190300006662782F636F72652E786D6C504B01021400140006080800CC70623B408A7D3B7C0000009D0000000B00000000000000000000000000B50400006662782F636E782E786D6C504B01021400140006080800CC70623B 310 449FB9BD290100001202000031000000000000000000000000005A0500006662782F36394639363044362D344446342D343946362D394244322D3234314243333846323333332F636F72652E786D6C504B01021400140006080800CC70623BAD7543B64E010000330300003000000000000000000000000000D20600006662 310 782F36394639363044362D344446342D343946362D394244322D3234314243333846323333332F636E782E786D6C504B01021400140006080800CC70623B8D05915C650500003B10000034000000000000000000000000006E0800006662782F36394639363044362D344446342D343946362D394244322D32343142433338 310 46323333332F6F626A656374732E786D6C504B01021400140006080000CC70623B0000000000000000000000003500000000000000000000000000250E00006662782F36394639363044362D344446342D343946362D394244322D3234314243333846323333332F76657274696365732E62696E504B010214001400060808 310 00CC70623BF270F13306000000040000003600000000000000000000000000780E00006662782F36394639363044362D344446342D343946362D394244322D3234314243333846323333332F747269616E676C65732E62696E504B01021400140006080000CC70623B00000000000000000000000037000000000000000000 310 00000000D20E00006662782F36394639363044362D344446342D343946362D394244322D3234314243333846323333332F617474726962757465732E62696E504B01021400140006080800CC70623B08DA0BD190000000410100003600000000000000000000000000270F00006662782F36394639363044362D344446342D 310 343946362D394244322D3234314243333846323333332F6469726563746F72792E786D6C504B01021400140006080800CC70623BCA768048FE000000A00100003B000000000000000000000000000B1000006662782F36394639363044362D344446342D343946362D394244322D3234314243333846323333332F7265736F 310 75726365732F636F72652E786D6C504B0506000000000E000E0080040000621100000000 0 XRECORD 5 176 102 {ACAD_REACTORS 330 173 102 } 330 173 100 AcDbXrecord 280 1 270 1 271 1 0 XRECORD 5 177 102 {ACAD_REACTORS 330 173 102 } 330 173 100 AcDbXrecord 280 1 270 1 271 1 0 XRECORD 5 2B6 102 {ACAD_REACTORS 330 234 102 } 330 234 100 AcDbXrecord 280 1 102 DISPLAYNAME 1 Metric50 102 FLAGS 90 0 0 CELLSTYLEMAP 5 27C 102 {ACAD_REACTORS 330 162 102 } 330 162 100 AcDbCellStyleMap 90 3 300 CELLSTYLE 1 TABLEFORMAT_BEGIN 90 5 170 1 91 0 92 32768 62 257 93 1 300 CONTENTFORMAT 1 CONTENTFORMAT_BEGIN 90 0 91 0 92 512 93 0 300 40 0.0 140 1.0 94 5 62 0 340 11 144 6.0 309 CONTENTFORMAT_END 171 1 301 MARGIN 1 CELLMARGIN_BEGIN 40 1.5 40 1.5 40 1.5 40 1.5 40 4.5 40 4.5 309 CELLMARGIN_END 94 6 95 1 302 GRIDFORMAT 1 GRIDFORMAT_BEGIN 90 0 91 1 62 0 92 -2 340 14 93 0 40 1.125 309 GRIDFORMAT_END 95 2 302 GRIDFORMAT 1 GRIDFORMAT_BEGIN 90 0 91 1 62 0 92 -2 340 14 93 0 40 1.125 309 GRIDFORMAT_END 95 4 302 GRIDFORMAT 1 GRIDFORMAT_BEGIN 90 0 91 1 62 0 92 -2 340 14 93 0 40 1.125 309 GRIDFORMAT_END 95 8 302 GRIDFORMAT 1 GRIDFORMAT_BEGIN 90 0 91 1 62 0 92 -2 340 14 93 0 40 1.125 309 GRIDFORMAT_END 95 16 302 GRIDFORMAT 1 GRIDFORMAT_BEGIN 90 0 91 1 62 0 92 -2 340 14 93 0 40 1.125 309 GRIDFORMAT_END 95 32 302 GRIDFORMAT 1 GRIDFORMAT_BEGIN 90 0 91 1 62 0 92 -2 340 14 93 0 40 1.125 309 GRIDFORMAT_END 309 TABLEFORMAT_END 1 CELLSTYLE_BEGIN 90 1 91 1 300 _TITLE 309 CELLSTYLE_END 300 CELLSTYLE 1 TABLEFORMAT_BEGIN 90 5 170 1 91 0 92 0 62 257 93 1 300 CONTENTFORMAT 1 CONTENTFORMAT_BEGIN 90 0 91 0 92 512 93 0 300 40 0.0 140 1.0 94 5 62 0 340 11 144 4.5 309 CONTENTFORMAT_END 171 1 301 MARGIN 1 CELLMARGIN_BEGIN 40 1.5 40 1.5 40 1.5 40 1.5 40 4.5 40 4.5 309 CELLMARGIN_END 94 6 95 1 302 GRIDFORMAT 1 GRIDFORMAT_BEGIN 90 0 91 1 62 0 92 -2 340 14 93 0 40 1.125 309 GRIDFORMAT_END 95 2 302 GRIDFORMAT 1 GRIDFORMAT_BEGIN 90 0 91 1 62 0 92 -2 340 14 93 0 40 1.125 309 GRIDFORMAT_END 95 4 302 GRIDFORMAT 1 GRIDFORMAT_BEGIN 90 0 91 1 62 0 92 -2 340 14 93 0 40 1.125 309 GRIDFORMAT_END 95 8 302 GRIDFORMAT 1 GRIDFORMAT_BEGIN 90 0 91 1 62 0 92 -2 340 14 93 0 40 1.125 309 GRIDFORMAT_END 95 16 302 GRIDFORMAT 1 GRIDFORMAT_BEGIN 90 0 91 1 62 0 92 -2 340 14 93 0 40 1.125 309 GRIDFORMAT_END 95 32 302 GRIDFORMAT 1 GRIDFORMAT_BEGIN 90 0 91 1 62 0 92 -2 340 14 93 0 40 1.125 309 GRIDFORMAT_END 309 TABLEFORMAT_END 1 CELLSTYLE_BEGIN 90 2 91 1 300 _HEADER 309 CELLSTYLE_END 300 CELLSTYLE 1 TABLEFORMAT_BEGIN 90 5 170 1 91 0 92 0 62 257 93 1 300 CONTENTFORMAT 1 CONTENTFORMAT_BEGIN 90 0 91 0 92 512 93 0 300 40 0.0 140 1.0 94 2 62 0 340 11 144 4.5 309 CONTENTFORMAT_END 171 1 301 MARGIN 1 CELLMARGIN_BEGIN 40 1.5 40 1.5 40 1.5 40 1.5 40 4.5 40 4.5 309 CELLMARGIN_END 94 6 95 1 302 GRIDFORMAT 1 GRIDFORMAT_BEGIN 90 0 91 1 62 0 92 -2 340 14 93 0 40 1.125 309 GRIDFORMAT_END 95 2 302 GRIDFORMAT 1 GRIDFORMAT_BEGIN 90 0 91 1 62 0 92 -2 340 14 93 0 40 1.125 309 GRIDFORMAT_END 95 4 302 GRIDFORMAT 1 GRIDFORMAT_BEGIN 90 0 91 1 62 0 92 -2 340 14 93 0 40 1.125 309 GRIDFORMAT_END 95 8 302 GRIDFORMAT 1 GRIDFORMAT_BEGIN 90 0 91 1 62 0 92 -2 340 14 93 0 40 1.125 309 GRIDFORMAT_END 95 16 302 GRIDFORMAT 1 GRIDFORMAT_BEGIN 90 0 91 1 62 0 92 -2 340 14 93 0 40 1.125 309 GRIDFORMAT_END 95 32 302 GRIDFORMAT 1 GRIDFORMAT_BEGIN 90 0 91 1 62 0 92 -2 340 14 93 0 40 1.125 309 GRIDFORMAT_END 309 TABLEFORMAT_END 1 CELLSTYLE_BEGIN 90 3 91 2 300 _DATA 309 CELLSTYLE_END 0 XRECORD 5 291 102 {ACAD_REACTORS 330 290 102 } 330 290 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 1 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 0 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 28F 102 {ACAD_REACTORS 330 28E 102 } 330 28E 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 29D 102 {ACAD_REACTORS 330 29C 102 } 330 29C 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 2A5 102 {ACAD_REACTORS 330 2A4 102 } 330 2A4 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 297 102 {ACAD_REACTORS 330 296 102 } 330 296 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 29B 102 {ACAD_REACTORS 330 29A 102 } 330 29A 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 2AB 102 {ACAD_REACTORS 330 2AA 102 } 330 2AA 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 0 102 RTVSPropertyOp1 70 0 102 RTVSPropertyOp2 70 0 102 RTVSPropertyOp3 70 0 102 RTVSPropertyOp4 70 0 102 RTVSPropertyOp5 70 0 102 RTVSPropertyOp6 70 0 102 RTVSPropertyOp7 70 0 102 RTVSPropertyOp8 70 0 102 RTVSPropertyOp9 70 0 102 RTVSPropertyOp10 70 0 102 RTVSPropertyOp11 70 0 102 RTVSPropertyOp12 70 0 102 RTVSPropertyOp13 70 0 102 RTVSPropertyOp14 70 2 102 RTVSPropertyOp15 70 0 102 RTVSPropertyOp16 70 0 102 RTVSPropertyOp17 70 0 102 RTVSPropertyOp18 70 0 102 RTVSPropertyOp19 70 0 102 RTVSPropertyOp20 70 0 102 RTVSPropertyOp21 70 0 102 RTVSPropertyOp22 70 0 102 RTVSPropertyOp23 70 0 102 RTVSPropertyOp24 70 0 102 RTVSPropertyOp25 70 0 102 RTVSPropertyOp26 70 0 102 RTVSPropertyOp27 70 0 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 2A3 102 {ACAD_REACTORS 330 2A2 102 } 330 2A2 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 287 102 {ACAD_REACTORS 330 286 102 } 330 286 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 289 102 {ACAD_REACTORS 330 288 102 } 330 288 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 28B 102 {ACAD_REACTORS 330 28A 102 } 330 28A 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 28D 102 {ACAD_REACTORS 330 28C 102 } 330 28C 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 295 102 {ACAD_REACTORS 330 294 102 } 330 294 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 2A7 102 {ACAD_REACTORS 330 2A6 102 } 330 2A6 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 0 102 RTVSPropertyOp1 70 0 102 RTVSPropertyOp2 70 0 102 RTVSPropertyOp3 70 0 102 RTVSPropertyOp4 70 0 102 RTVSPropertyOp5 70 0 102 RTVSPropertyOp6 70 0 102 RTVSPropertyOp7 70 0 102 RTVSPropertyOp8 70 0 102 RTVSPropertyOp9 70 0 102 RTVSPropertyOp10 70 0 102 RTVSPropertyOp11 70 0 102 RTVSPropertyOp12 70 0 102 RTVSPropertyOp13 70 0 102 RTVSPropertyOp14 70 2 102 RTVSPropertyOp15 70 0 102 RTVSPropertyOp16 70 0 102 RTVSPropertyOp17 70 0 102 RTVSPropertyOp18 70 0 102 RTVSPropertyOp19 70 0 102 RTVSPropertyOp20 70 0 102 RTVSPropertyOp21 70 0 102 RTVSPropertyOp22 70 0 102 RTVSPropertyOp23 70 0 102 RTVSPropertyOp24 70 0 102 RTVSPropertyOp25 70 0 102 RTVSPropertyOp26 70 0 102 RTVSPropertyOp27 70 0 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 2A1 102 {ACAD_REACTORS 330 2A0 102 } 330 2A0 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 2A9 102 {ACAD_REACTORS 330 2A8 102 } 330 2A8 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 0 102 RTVSPropertyOp1 70 0 102 RTVSPropertyOp2 70 0 102 RTVSPropertyOp3 70 0 102 RTVSPropertyOp4 70 0 102 RTVSPropertyOp5 70 0 102 RTVSPropertyOp6 70 0 102 RTVSPropertyOp7 70 0 102 RTVSPropertyOp8 70 0 102 RTVSPropertyOp9 70 0 102 RTVSPropertyOp10 70 0 102 RTVSPropertyOp11 70 0 102 RTVSPropertyOp12 70 0 102 RTVSPropertyOp13 70 0 102 RTVSPropertyOp14 70 2 102 RTVSPropertyOp15 70 0 102 RTVSPropertyOp16 70 0 102 RTVSPropertyOp17 70 0 102 RTVSPropertyOp18 70 0 102 RTVSPropertyOp19 70 0 102 RTVSPropertyOp20 70 0 102 RTVSPropertyOp21 70 0 102 RTVSPropertyOp22 70 0 102 RTVSPropertyOp23 70 0 102 RTVSPropertyOp24 70 0 102 RTVSPropertyOp25 70 0 102 RTVSPropertyOp26 70 0 102 RTVSPropertyOp27 70 0 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 299 102 {ACAD_REACTORS 330 298 102 } 330 298 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 2B5 102 {ACAD_REACTORS 330 2B4 102 } 330 2B4 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 2B3 102 {ACAD_REACTORS 330 2B2 102 } 330 2B2 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 2AD 102 {ACAD_REACTORS 330 2AC 102 } 330 2AC 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 2AF 102 {ACAD_REACTORS 330 2AE 102 } 330 2AE 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 29F 102 {ACAD_REACTORS 330 29E 102 } 330 29E 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 293 102 {ACAD_REACTORS 330 292 102 } 330 292 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 XRECORD 5 2B1 102 {ACAD_REACTORS 330 2B0 102 } 330 2B0 100 AcDbXrecord 280 1 102 RTVSPost2010Prop28 280 0 102 RTVSPost2010PropOp28 70 1 102 RTVSPost2010Prop29 280 1 102 RTVSPost2010PropOp29 70 1 102 RTVSPost2010Prop30 280 1 102 RTVSPost2010PropOp30 70 1 102 RTVSPost2010Prop31 280 0 102 RTVSPost2010PropOp31 70 1 102 RTVSPost2010Prop32 280 0 102 RTVSPost2010PropOp32 70 1 102 RTVSPost2010Prop33 280 0 102 RTVSPost2010PropOp33 70 1 102 RTVSPost2010Prop34 280 0 102 RTVSPost2010PropOp34 70 1 102 RTVSPost2010Prop35 280 0 102 RTVSPost2010PropOp35 70 1 102 RTVSPost2010Prop36 280 0 102 RTVSPost2010PropOp36 70 1 102 RTVSPost2010Prop37 90 50 102 RTVSPost2010PropOp37 70 1 102 RTVSPost2010Prop38 140 0.0 102 RTVSPost2010PropOp38 70 1 102 RTVSPost2010Prop39 140 1.0 102 RTVSPost2010PropOp39 70 1 102 RTVSPost2010Prop40 90 0 102 RTVSPost2010PropOp40 70 1 102 RTVSPost2010Prop41ColorIndex 90 18 102 RTVSPost2010Prop41ColorRGB 90 0 102 RTVSPost2010PropOp41 70 1 102 RTVSPost2010Prop42 90 50 102 RTVSPost2010PropOp42 70 1 102 RTVSPost2010Prop43 90 3 102 RTVSPost2010PropOp43 70 1 102 RTVSPost2010Prop44ColorIndex 90 5 102 RTVSPost2010Prop44ColorRGB 90 255 102 RTVSPost2010PropOp44 70 1 102 RTVSPost2010Prop45 280 0 102 RTVSPost2010PropOp45 70 1 102 RTVSPost2010Prop46 90 50 102 RTVSPost2010PropOp46 70 1 102 RTVSPost2010Prop47 90 50 102 RTVSPost2010PropOp47 70 1 102 RTVSPost2010Prop48 90 50 102 RTVSPost2010PropOp48 70 1 102 RTVSPost2010Prop49 280 0 102 RTVSPost2010PropOp49 70 1 102 RTVSPost2010Prop50 90 50 102 RTVSPost2010PropOp50 70 1 102 RTVSPost2010Prop51ColorIndex 90 256 102 RTVSPost2010Prop51ColorRGB 90 -16777216 102 RTVSPost2010PropOp51 70 0 102 RTVSPost2010Prop52 140 1.0 102 RTVSPost2010PropOp52 70 0 102 RTVSPost2010Prop53 90 2 102 RTVSPost2010PropOp53 70 1 102 RTVSPost2010Prop54 1 strokes_ogs.tif 102 RTVSPost2010PropOp54 70 1 102 RTVSPost2010Prop55 280 0 102 RTVSPost2010PropOp55 70 1 102 RTVSPost2010Prop56 140 1.0 102 RTVSPost2010PropOp56 70 1 102 RTVSPost2010Prop57 140 1.0 102 RTVSPost2010PropOp57 70 1 102 RTVSPropertyOp0 70 1 102 RTVSPropertyOp1 70 1 102 RTVSPropertyOp2 70 1 102 RTVSPropertyOp3 70 1 102 RTVSPropertyOp4 70 1 102 RTVSPropertyOp5 70 1 102 RTVSPropertyOp6 70 1 102 RTVSPropertyOp7 70 1 102 RTVSPropertyOp8 70 1 102 RTVSPropertyOp9 70 1 102 RTVSPropertyOp10 70 1 102 RTVSPropertyOp11 70 1 102 RTVSPropertyOp12 70 1 102 RTVSPropertyOp13 70 1 102 RTVSPropertyOp14 70 1 102 RTVSPropertyOp15 70 1 102 RTVSPropertyOp16 70 1 102 RTVSPropertyOp17 70 1 102 RTVSPropertyOp18 70 1 102 RTVSPropertyOp19 70 1 102 RTVSPropertyOp20 70 1 102 RTVSPropertyOp21 70 1 102 RTVSPropertyOp22 70 1 102 RTVSPropertyOp23 70 1 102 RTVSPropertyOp24 70 1 102 RTVSPropertyOp25 70 1 102 RTVSPropertyOp26 70 1 102 RTVSPropertyOp27 70 1 102 RTVSPropertyOp28 70 1 102 RTVSPropertyOp29 70 1 102 RTVSPropertyOp30 70 1 102 RTVSPropertyOp31 70 1 102 RTVSPropertyOp32 70 1 102 RTVSPropertyOp33 70 1 102 RTVSPropertyOp34 70 1 102 RTVSPropertyOp35 70 1 102 RTVSPropertyOp36 70 1 102 RTVSPropertyOp37 70 1 102 RTVSPropertyOp38 70 1 102 RTVSPropertyOp39 70 1 102 RTVSPropertyOp40 70 1 102 RTVSPropertyOp41 70 1 102 RTVSPropertyOp42 70 1 102 RTVSPropertyOp43 70 1 102 RTVSPropertyOp44 70 1 102 RTVSPropertyOp45 70 1 102 RTVSPropertyOp46 70 1 102 RTVSPropertyOp47 70 1 102 RTVSPropertyOp48 70 1 102 RTVSPropertyOp49 70 1 102 RTVSPropertyOp50 70 1 102 RTVSPropertyOp51 70 0 102 RTVSPropertyOp52 70 0 102 RTVSPropertyOp53 70 1 102 RTVSPropertyOp54 70 1 102 RTVSPropertyOp55 70 1 102 RTVSPropertyOp56 70 1 102 RTVSPropertyOp57 70 1 102 RTVSPropertyOp58 70 1 102 RTVSPropertyOp59 70 1 102 RTVSPropertyOp60 70 1 102 RTVSPropertyOp61 70 1 102 RTVSPropertyOp62 70 1 0 ENDSEC 0 EOF