[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

gEDA-cvs: gaf.git: branch: master updated (1.5.0-20080706-310-gd5f4b18)



The branch, master has been updated
       via  d5f4b1882e98bde4f26e93e243fdb8d0ba120e99 (commit)
       via  f421f5143b44939bfad52d7c51445142b7854c87 (commit)
      from  70bf7f8e7470d9962af920553b2e858db0d95938 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


=========
 Summary
=========

 utils/Makefile.am                                  |    2 +-
 utils/configure.ac                                 |    4 +
 utils/gxyrs/.gitignore                             |    1 +
 {docs => utils/gxyrs}/COPYING                      |   27 +-
 utils/gxyrs/Makefile.am                            |   29 +
 utils/gxyrs/gxyrs.pl                               |  619 ++
 utils/gxyrs/gxyrs.pm                               |  658 ++
 utils/tests/Makefile.am                            |    2 +-
 utils/tests/{refdes_renum => gxyrs}/Makefile.am    |    0 
 utils/tests/{refdes_renum => gxyrs}/README.txt     |    4 +-
 utils/tests/gxyrs/inputs/Makefile.am               |   12 +
 utils/tests/gxyrs/inputs/do_nothing.pl             |    3 +
 utils/tests/gxyrs/inputs/pcb_example1.xy           |   43 +
 utils/tests/gxyrs/inputs/pcb_example2.xy           |   43 +
 utils/tests/gxyrs/inputs/protel_example1_mil.txt   |   37 +
 utils/tests/gxyrs/inputs/protel_example1_mm.txt    |   37 +
 utils/tests/gxyrs/inputs/report1.txt               |   36 +
 utils/tests/gxyrs/inputs/report2.txt               |   36 +
 utils/tests/gxyrs/outputs/Makefile.am              |  248 +
 ...ange_units_already_done-protel_example1_mil.txt |   37 +
 ...nits_already_done-protel_example1_mil.txt-error |    4 +
 ...s_already_done_no_title-protel_example1_mil.txt |   37 +
 ...ady_done_no_title-protel_example1_mil.txt-error |    0 
 ...change_units_bad_column_number1-pcb_example1.xy |   43 +
 ..._units_bad_column_number1-pcb_example1.xy-error |   70 +
 ...change_units_bad_column_number2-pcb_example1.xy |   43 +
 ..._units_bad_column_number2-pcb_example1.xy-error |   70 +
 ...ge_units_column_number_too_high-pcb_example1.xy |   43 +
 ...ts_column_number_too_high-pcb_example1.xy-error |   70 +
 ...ge_units_negative_column_number-pcb_example1.xy |   43 +
 ...ts_negative_column_number-pcb_example1.xy-error |   70 +
 .../outputs/change_units_no_units-pcb_example1.xy  |   43 +
 .../change_units_no_units-pcb_example1.xy-error    |  140 +
 .../change_units_to_mil-protel_example1_mm.txt     |   37 +
 ...hange_units_to_mil-protel_example1_mm.txt-error |    0 
 ...hange_units_to_mil_2cols-protel_example1_mm.txt |   37 +
 ...units_to_mil_2cols-protel_example1_mm.txt-error |    0 
 .../change_units_to_mm-protel_example1_mil.txt     |   37 +
 ...hange_units_to_mm-protel_example1_mil.txt-error |    4 +
 ...hange_units_to_mm_2cols-protel_example1_mil.txt |   37 +
 ...units_to_mm_2cols-protel_example1_mil.txt-error |    0 
 ...ts_to_mm_6col_tabulated-protel_example1_mil.txt |   37 +
 ...mm_6col_tabulated-protel_example1_mil.txt-error |   24 +
 ...6col_tabulated_no_title-protel_example1_mil.txt |   37 +
 ...abulated_no_title-protel_example1_mil.txt-error |    0 
 ...ge_units_to_mm_no_title-protel_example1_mil.txt |   37 +
 ...ts_to_mm_no_title-protel_example1_mil.txt-error |    0 
 ...its_units_not_supported-protel_example1_mil.txt |   37 +
 ...its_not_supported-protel_example1_mil.txt-error |  144 +
 .../outputs/del_case_insensitive1-pcb_example1.xy  |   32 +
 .../del_case_insensitive1-pcb_example1.xy-error    |    0 
 .../outputs/del_case_insensitive2-pcb_example2.xy  |   32 +
 .../del_case_insensitive2-pcb_example2.xy-error    |    0 
 .../outputs/del_case_sensitive1-pcb_example1.xy    |   32 +
 .../del_case_sensitive1-pcb_example1.xy-error      |    0 
 .../outputs/del_case_sensitive2-pcb_example2.xy    |   43 +
 .../del_case_sensitive2-pcb_example2.xy-error      |    0 
 .../outputs/del_case_sensitive3-pcb_example1.xy    |   43 +
 .../del_case_sensitive3-pcb_example1.xy-error      |    0 
 .../outputs/del_case_sensitive4-pcb_example2.xy    |   32 +
 .../del_case_sensitive4-pcb_example2.xy-error      |    0 
 .../del_check_columns_no_match-pcb_example1.xy     |   43 +
 ...el_check_columns_no_match-pcb_example1.xy-error |    0 
 ...del_check_columns_return_minus1-pcb_example1.xy |   43 +
 ...eck_columns_return_minus1-pcb_example1.xy-error |   70 +
 .../tests/gxyrs/outputs/do_nothing-pcb_example1.xy |   43 +
 .../gxyrs/outputs/do_nothing-pcb_example1.xy-error |    0 
 .../outputs/do_nothing_tabulated-pcb_example1.xy   |   43 +
 .../do_nothing_tabulated-pcb_example1.xy-error     |    0 
 .../gxyrs/outputs/footprint_pcb1-pcb_example1.xy   |   43 +
 .../outputs/footprint_pcb1-pcb_example1.xy-error   |    0 
 .../footprint_protel1-protel_example1_mil.txt      |   37 +
 ...footprint_protel1-protel_example1_mil.txt-error |    0 
 .../gxyrs/outputs/footprint_report1-report1.txt    |   36 +
 .../outputs/footprint_report1-report1.txt-error    |    0 
 ...nsert_column_bad_column_number1-pcb_example1.xy |   43 +
 ...column_bad_column_number1-pcb_example1.xy-error |   70 +
 ...nsert_column_bad_column_number2-pcb_example1.xy |   43 +
 ...column_bad_column_number2-pcb_example1.xy-error |   70 +
 ...t_column_column_number_too_high-pcb_example1.xy |   43 +
 ...mn_column_number_too_high-pcb_example1.xy-error |   70 +
 .../insert_column_first_pos-pcb_example1.xy        |   43 +
 .../insert_column_first_pos-pcb_example1.xy-error  |    0 
 ...t_column_negative_column_number-pcb_example1.xy |   43 +
 ...mn_negative_column_number-pcb_example1.xy-error |   70 +
 .../insert_column_second_pos-pcb_example1.xy       |   43 +
 .../insert_column_second_pos-pcb_example1.xy-error |    0 
 .../match_column_insensitive1-pcb_example2.xy      |   43 +
 ...match_column_insensitive1-pcb_example2.xy-error |    0 
 .../match_column_insensitive2-pcb_example2.xy      |   43 +
 ...match_column_insensitive2-pcb_example2.xy-error |    0 
 .../match_column_insensitive3-pcb_example1.xy      |   43 +
 ...match_column_insensitive3-pcb_example1.xy-error |    0 
 .../match_column_insensitive4-pcb_example1.xy      |   43 +
 ...match_column_insensitive4-pcb_example1.xy-error |    0 
 .../match_column_is_negative-pcb_example1.xy       |   43 +
 .../match_column_is_negative-pcb_example1.xy-error |   70 +
 .../match_column_is_not_number-pcb_example1.xy     |   43 +
 ...atch_column_is_not_number-pcb_example1.xy-error |   70 +
 .../match_column_is_not_number2-pcb_example1.xy    |   43 +
 ...tch_column_is_not_number2-pcb_example1.xy-error |   70 +
 .../outputs/match_column_is_real-pcb_example1.xy   |   43 +
 .../match_column_is_real-pcb_example1.xy-error     |   70 +
 .../match_column_is_too_high-pcb_example1.xy       |   43 +
 .../match_column_is_too_high-pcb_example1.xy-error |   70 +
 .../match_column_sensitive1-pcb_example1.xy        |   43 +
 .../match_column_sensitive1-pcb_example1.xy-error  |    0 
 .../match_column_sensitive2-pcb_example1.xy        |   43 +
 .../match_column_sensitive2-pcb_example1.xy-error  |    0 
 .../match_column_sensitive3-pcb_example2.xy        |   43 +
 .../match_column_sensitive3-pcb_example2.xy-error  |    0 
 .../match_column_sensitive4-pcb_example2.xy        |   43 +
 .../match_column_sensitive4-pcb_example2.xy-error  |    0 
 .../gxyrs/outputs/match_no_args-pcb_example1.xy    |   43 +
 .../outputs/match_no_args-pcb_example1.xy-error    |    0 
 .../multiply_bad_column_number1-pcb_example1.xy    |   43 +
 ...ltiply_bad_column_number1-pcb_example1.xy-error |   70 +
 .../multiply_bad_column_number2-pcb_example1.xy    |   43 +
 ...ltiply_bad_column_number2-pcb_example1.xy-error |   70 +
 ...multiply_column_number_too_high-pcb_example1.xy |   43 +
 ...ly_column_number_too_high-pcb_example1.xy-error |   70 +
 .../multiply_integer_factor-pcb_example1.xy        |   43 +
 .../multiply_integer_factor-pcb_example1.xy-error  |    0 
 ...multiply_negative_column_number-pcb_example1.xy |   43 +
 ...ly_negative_column_number-pcb_example1.xy-error |   70 +
 ...ultiply_negative_integer_factor-pcb_example1.xy |   43 +
 ...y_negative_integer_factor-pcb_example1.xy-error |    0 
 .../multiply_negative_real_factor-pcb_example1.xy  |   43 +
 ...iply_negative_real_factor-pcb_example1.xy-error |    0 
 .../outputs/multiply_real_factor-pcb_example1.xy   |   43 +
 .../multiply_real_factor-pcb_example1.xy-error     |    0 
 .../multiply_with_checklist-pcb_example1.xy        |   43 +
 .../multiply_with_checklist-pcb_example1.xy-error  |    0 
 .../offset_bad_column_number1-pcb_example1.xy      |   43 +
 ...offset_bad_column_number1-pcb_example1.xy-error |   70 +
 .../offset_bad_column_number2-pcb_example1.xy      |   43 +
 ...offset_bad_column_number2-pcb_example1.xy-error |   70 +
 .../offset_check_columns_match-pcb_example1.xy     |   43 +
 ...ffset_check_columns_match-pcb_example1.xy-error |    0 
 .../offset_check_columns_no_match-pcb_example1.xy  |   43 +
 ...et_check_columns_no_match-pcb_example1.xy-error |    0 
 ...set_check_columns_return_minus1-pcb_example1.xy |   43 +
 ...eck_columns_return_minus1-pcb_example1.xy-error |   70 +
 .../offset_column_number_too_high-pcb_example1.xy  |   43 +
 ...et_column_number_too_high-pcb_example1.xy-error |   70 +
 .../offset_match_negative_offset-pcb_example1.xy   |   43 +
 ...set_match_negative_offset-pcb_example1.xy-error |    0 
 ...fset_match_negative_real_offset-pcb_example1.xy |   43 +
 ...atch_negative_real_offset-pcb_example1.xy-error |    0 
 ...with_units_but_no_units_in_file-pcb_example1.xy |   43 +
 ...nits_but_no_units_in_file-pcb_example1.xy-error |   22 +
 .../offset_match_real_offset-pcb_example1.xy       |   43 +
 .../offset_match_real_offset-pcb_example1.xy-error |    0 
 .../offset_negative_column_number-pcb_example1.xy  |   43 +
 ...et_negative_column_number-pcb_example1.xy-error |   70 +
 .../gxyrs/outputs/output_delimiter-pcb_example1.xy |   43 +
 .../outputs/output_delimiter-pcb_example1.xy-error |    0 
 ...panelize_bad_ref_column_number1-pcb_example1.xy |   43 +
 ...ze_bad_ref_column_number1-pcb_example1.xy-error |   70 +
 ...panelize_bad_ref_column_number2-pcb_example1.xy |   43 +
 ...ze_bad_ref_column_number2-pcb_example1.xy-error |   70 +
 .../panelize_bad_x_column_number1-pcb_example1.xy  |   43 +
 ...lize_bad_x_column_number1-pcb_example1.xy-error |   70 +
 .../panelize_bad_x_column_number2-pcb_example1.xy  |   43 +
 ...lize_bad_x_column_number2-pcb_example1.xy-error |   70 +
 .../panelize_bad_y_column_number1-pcb_example1.xy  |   43 +
 ...lize_bad_y_column_number1-pcb_example1.xy-error |   70 +
 .../panelize_bad_y_column_number2-pcb_example1.xy  |   43 +
 ...lize_bad_y_column_number2-pcb_example1.xy-error |   70 +
 ...lize_negative_ref_column_number-pcb_example1.xy |   43 +
 ...egative_ref_column_number-pcb_example1.xy-error |   70 +
 ...nelize_negative_x_column_number-pcb_example1.xy |   43 +
 ..._negative_x_column_number-pcb_example1.xy-error |   70 +
 ...nelize_negative_y_column_number-pcb_example1.xy |   43 +
 ..._negative_y_column_number-pcb_example1.xy-error |   70 +
 ...lize_ref_column_number_too_high-pcb_example1.xy |   43 +
 ...ef_column_number_too_high-pcb_example1.xy-error |   70 +
 .../outputs/panelize_tabulate-pcb_example1.xy      | 7883 ++++++++++++++++++++
 .../panelize_tabulate-pcb_example1.xy-error        |    0 
 ...nelize_x_column_number_too_high-pcb_example1.xy |   43 +
 ..._x_column_number_too_high-pcb_example1.xy-error |   70 +
 ...nelize_y_column_number_too_high-pcb_example1.xy |   43 +
 ..._y_column_number_too_high-pcb_example1.xy-error |   70 +
 .../gxyrs/outputs/process_comment-pcb_example1.xy  |   43 +
 .../outputs/process_comment-pcb_example1.xy-error  |    0 
 .../rotate_bad_column_number1-pcb_example1.xy      |   43 +
 ...rotate_bad_column_number1-pcb_example1.xy-error |   70 +
 .../rotate_bad_column_number2-pcb_example1.xy      |   43 +
 ...rotate_bad_column_number2-pcb_example1.xy-error |   70 +
 .../rotate_case_insensitive-pcb_example1.xy        |   43 +
 .../rotate_case_insensitive-pcb_example1.xy-error  |    0 
 .../outputs/rotate_case_sensitive-pcb_example1.xy  |   43 +
 .../rotate_case_sensitive-pcb_example1.xy-error    |    0 
 .../rotate_check_columns_no_match-pcb_example1.xy  |   43 +
 ...te_check_columns_no_match-pcb_example1.xy-error |    0 
 ...ate_check_columns_return_minus1-pcb_example1.xy |   43 +
 ...eck_columns_return_minus1-pcb_example1.xy-error |   70 +
 .../rotate_column_number_too_high-pcb_example1.xy  |   43 +
 ...te_column_number_too_high-pcb_example1.xy-error |   70 +
 .../outputs/rotate_negative_angle-pcb_example1.xy  |   43 +
 .../rotate_negative_angle-pcb_example1.xy-error    |    0 
 .../rotate_negative_column_number-pcb_example1.xy  |   43 +
 ...te_negative_column_number-pcb_example1.xy-error |   70 +
 .../rotate_negative_real_angle-pcb_example1.xy     |   43 +
 ...otate_negative_real_angle-pcb_example1.xy-error |    0 
 .../outputs/rotate_real_angle-pcb_example1.xy      |   43 +
 .../rotate_real_angle-pcb_example1.xy-error        |    0 
 .../subst_bad_column_number1-pcb_example1.xy       |   43 +
 .../subst_bad_column_number1-pcb_example1.xy-error |   70 +
 .../subst_bad_column_number2-pcb_example1.xy       |   43 +
 .../subst_bad_column_number2-pcb_example1.xy-error |   70 +
 .../subst_check_columns_match-pcb_example1.xy      |   43 +
 ...subst_check_columns_match-pcb_example1.xy-error |    0 
 .../subst_check_columns_no_match-pcb_example1.xy   |   43 +
 ...st_check_columns_no_match-pcb_example1.xy-error |    0 
 ...bst_check_columns_return_minus1-pcb_example1.xy |   43 +
 ...eck_columns_return_minus1-pcb_example1.xy-error |   70 +
 .../subst_column_number_too_high-pcb_example1.xy   |   43 +
 ...st_column_number_too_high-pcb_example1.xy-error |   70 +
 .../subst_negative_column_number-pcb_example1.xy   |   43 +
 ...st_negative_column_number-pcb_example1.xy-error |   70 +
 ...wap_columns_bad_column1_number1-pcb_example1.xy |   43 +
 ...lumns_bad_column1_number1-pcb_example1.xy-error |   70 +
 ...wap_columns_bad_column1_number2-pcb_example1.xy |   43 +
 ...lumns_bad_column1_number2-pcb_example1.xy-error |   70 +
 ...wap_columns_bad_column2_number1-pcb_example1.xy |   43 +
 ...lumns_bad_column2_number1-pcb_example1.xy-error |   70 +
 ...wap_columns_bad_column2_number2-pcb_example1.xy |   43 +
 ...lumns_bad_column2_number2-pcb_example1.xy-error |   70 +
 ...columns_column1_number_too_high-pcb_example1.xy |   43 +
 ...s_column1_number_too_high-pcb_example1.xy-error |   70 +
 ...columns_column2_number_too_high-pcb_example1.xy |   43 +
 ...s_column2_number_too_high-pcb_example1.xy-error |   70 +
 ...columns_negative_column1_number-pcb_example1.xy |   43 +
 ...s_negative_column1_number-pcb_example1.xy-error |   70 +
 ...columns_negative_column2_number-pcb_example1.xy |   43 +
 ...s_negative_column2_number-pcb_example1.xy-error |   70 +
 .../outputs/swap_columns_no_match-pcb_example1.xy  |   43 +
 .../swap_columns_no_match-pcb_example1.xy-error    |    0 
 .../swap_columns_no_matchlist-pcb_example1.xy      |   43 +
 ...swap_columns_no_matchlist-pcb_example1.xy-error |    0 
 .../swap_columns_with_match-pcb_example1.xy        |   43 +
 .../swap_columns_with_match-pcb_example1.xy-error  |    0 
 .../translate_bad_column_number1-pcb_example1.xy   |   43 +
 ...nslate_bad_column_number1-pcb_example1.xy-error |   70 +
 .../translate_bad_column_number2-pcb_example1.xy   |   43 +
 ...nslate_bad_column_number2-pcb_example1.xy-error |   70 +
 ...anslate_column_change_R10_value-pcb_example1.xy |   43 +
 ...e_column_change_R10_value-pcb_example1.xy-error |    0 
 ...ange_R10_value_case_insensitive-pcb_example1.xy |   43 +
 ...10_value_case_insensitive-pcb_example1.xy-error |    0 
 ..._column_change_all_value_plus_k-pcb_example1.xy |   43 +
 ...n_change_all_value_plus_k-pcb_example1.xy-error |    0 
 .../translate_column_no_match1-pcb_example1.xy     |   43 +
 ...ranslate_column_no_match1-pcb_example1.xy-error |    0 
 .../translate_column_no_match2-pcb_example1.xy     |   43 +
 ...ranslate_column_no_match2-pcb_example1.xy-error |    0 
 ...ranslate_column_number_too_high-pcb_example1.xy |   43 +
 ...te_column_number_too_high-pcb_example1.xy-error |   70 +
 ...ranslate_negative_column_number-pcb_example1.xy |   43 +
 ...te_negative_column_number-pcb_example1.xy-error |   70 +
 utils/tests/{refdes_renum => gxyrs}/run_tests.sh   |   68 +-
 utils/tests/gxyrs/tests.list                       |  191 +
 utils/tests/refdes_renum/run_tests.sh              |   19 +
 264 files changed, 19340 insertions(+), 33 deletions(-)
 create mode 100644 utils/gxyrs/.gitignore
 copy {docs => utils/gxyrs}/COPYING (97%)
 create mode 100644 utils/gxyrs/Makefile.am
 create mode 100644 utils/gxyrs/gxyrs.pl
 create mode 100644 utils/gxyrs/gxyrs.pm
 copy utils/tests/{refdes_renum => gxyrs}/Makefile.am (100%)
 copy utils/tests/{refdes_renum => gxyrs}/README.txt (65%)
 create mode 100644 utils/tests/gxyrs/inputs/Makefile.am
 create mode 100644 utils/tests/gxyrs/inputs/do_nothing.pl
 create mode 100644 utils/tests/gxyrs/inputs/pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/inputs/pcb_example2.xy
 create mode 100644 utils/tests/gxyrs/inputs/protel_example1_mil.txt
 create mode 100644 utils/tests/gxyrs/inputs/protel_example1_mm.txt
 create mode 100644 utils/tests/gxyrs/inputs/report1.txt
 create mode 100644 utils/tests/gxyrs/inputs/report2.txt
 create mode 100644 utils/tests/gxyrs/outputs/Makefile.am
 create mode 100644 utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt
 create mode 100644 utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt-error
 create mode 100644 utils/tests/gxyrs/outputs/change_units_already_done_no_title-protel_example1_mil.txt
 copy docs/NEWS => utils/tests/gxyrs/outputs/change_units_already_done_no_title-protel_example1_mil.txt-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/change_units_to_mil-protel_example1_mm.txt
 copy docs/NEWS => utils/tests/gxyrs/outputs/change_units_to_mil-protel_example1_mm.txt-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/change_units_to_mil_2cols-protel_example1_mm.txt
 copy docs/NEWS => utils/tests/gxyrs/outputs/change_units_to_mil_2cols-protel_example1_mm.txt-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt
 create mode 100644 utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt-error
 create mode 100644 utils/tests/gxyrs/outputs/change_units_to_mm_2cols-protel_example1_mil.txt
 copy docs/NEWS => utils/tests/gxyrs/outputs/change_units_to_mm_2cols-protel_example1_mil.txt-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt
 create mode 100644 utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt-error
 create mode 100644 utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt
 copy docs/NEWS => utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/change_units_to_mm_no_title-protel_example1_mil.txt
 copy docs/NEWS => utils/tests/gxyrs/outputs/change_units_to_mm_no_title-protel_example1_mil.txt-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt
 create mode 100644 utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt-error
 create mode 100644 utils/tests/gxyrs/outputs/del_case_insensitive1-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/del_case_insensitive1-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/del_case_insensitive2-pcb_example2.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/del_case_insensitive2-pcb_example2.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/del_case_sensitive1-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/del_case_sensitive1-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/del_case_sensitive2-pcb_example2.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/del_case_sensitive2-pcb_example2.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/del_case_sensitive3-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/del_case_sensitive3-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/del_case_sensitive4-pcb_example2.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/del_case_sensitive4-pcb_example2.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/del_check_columns_no_match-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/del_check_columns_no_match-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/do_nothing-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/do_nothing-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/do_nothing_tabulated-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/do_nothing_tabulated-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/footprint_pcb1-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/footprint_pcb1-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/footprint_protel1-protel_example1_mil.txt
 copy docs/NEWS => utils/tests/gxyrs/outputs/footprint_protel1-protel_example1_mil.txt-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/footprint_report1-report1.txt
 copy docs/NEWS => utils/tests/gxyrs/outputs/footprint_report1-report1.txt-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/insert_column_first_pos-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/insert_column_first_pos-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/insert_column_second_pos-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/insert_column_second_pos-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/match_column_insensitive1-pcb_example2.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/match_column_insensitive1-pcb_example2.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/match_column_insensitive2-pcb_example2.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/match_column_insensitive2-pcb_example2.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/match_column_insensitive3-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/match_column_insensitive3-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/match_column_insensitive4-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/match_column_insensitive4-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/match_column_sensitive1-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/match_column_sensitive1-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/match_column_sensitive2-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/match_column_sensitive2-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/match_column_sensitive3-pcb_example2.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/match_column_sensitive3-pcb_example2.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/match_column_sensitive4-pcb_example2.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/match_column_sensitive4-pcb_example2.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/match_no_args-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/match_no_args-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/multiply_integer_factor-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/multiply_integer_factor-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/multiply_negative_integer_factor-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/multiply_negative_integer_factor-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/multiply_negative_real_factor-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/multiply_negative_real_factor-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/multiply_real_factor-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/multiply_real_factor-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/multiply_with_checklist-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/multiply_with_checklist-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/offset_check_columns_match-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/offset_check_columns_match-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/offset_check_columns_no_match-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/offset_check_columns_no_match-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/offset_match_negative_offset-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/offset_match_negative_offset-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/offset_match_negative_real_offset-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/offset_match_negative_real_offset-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/offset_match_real_offset-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/offset_match_real_offset-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/output_delimiter-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/output_delimiter-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/panelize_tabulate-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/panelize_tabulate-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/process_comment-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/process_comment-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/rotate_case_insensitive-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/rotate_case_insensitive-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/rotate_case_sensitive-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/rotate_case_sensitive-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/rotate_check_columns_no_match-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/rotate_check_columns_no_match-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/rotate_negative_angle-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/rotate_negative_angle-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/rotate_negative_real_angle-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/rotate_negative_real_angle-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/rotate_real_angle-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/rotate_real_angle-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/subst_check_columns_match-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/subst_check_columns_match-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/subst_check_columns_no_match-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/subst_check_columns_no_match-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_no_match-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/swap_columns_no_match-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_no_matchlist-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/swap_columns_no_matchlist-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/swap_columns_with_match-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/swap_columns_with_match-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/translate_column_change_R10_value-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/translate_column_change_R10_value-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/translate_column_change_R10_value_case_insensitive-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/translate_column_change_R10_value_case_insensitive-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/translate_column_change_all_value_plus_k-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/translate_column_change_all_value_plus_k-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/translate_column_no_match1-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/translate_column_no_match1-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/translate_column_no_match2-pcb_example1.xy
 copy docs/NEWS => utils/tests/gxyrs/outputs/translate_column_no_match2-pcb_example1.xy-error (100%)
 create mode 100644 utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy-error
 create mode 100644 utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy
 create mode 100644 utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy-error
 copy utils/tests/{refdes_renum => gxyrs}/run_tests.sh (62%)
 create mode 100644 utils/tests/gxyrs/tests.list


=================
 Commit Messages
=================

commit d5f4b1882e98bde4f26e93e243fdb8d0ba120e99
Author: Carlos Nieves Onega <cnieves@xxxxxxxxxx>
Date:   Tue Nov 18 21:31:13 2008 +0100

    Added copyright notice to refdes_renum's run_tests.sh script.
    
    Added GPLv2 copyright notice to refdes_renum's run_tests.sh script,
    as required by Dan McMahill, its original author:
    http://archives.seul.org/geda/dev/Oct-2008/msg00132.html

:100755 100755 a2e35da... 9bcfab2... M	utils/tests/refdes_renum/run_tests.sh

commit f421f5143b44939bfad52d7c51445142b7854c87
Author: Carlos Nieves Onega <cnieves@xxxxxxxxxx>
Date:   Tue Nov 18 21:29:10 2008 +0100

    Added new util: gxyrs.
    
    Added gxyrs, a new util to process XYRS files.

:100644 100644 b97f2a3... 23906bb... M	utils/Makefile.am
:100644 100644 17587e9... c7c9e57... M	utils/configure.ac
:000000 100644 0000000... 87998d7... A	utils/gxyrs/.gitignore
:000000 100644 0000000... d511905... A	utils/gxyrs/COPYING
:000000 100644 0000000... e977086... A	utils/gxyrs/Makefile.am
:000000 100644 0000000... 8af6779... A	utils/gxyrs/gxyrs.pl
:000000 100644 0000000... e60b6db... A	utils/gxyrs/gxyrs.pm
:100644 100644 24ddc26... fdd3664... M	utils/tests/Makefile.am
:000000 100644 0000000... aa78a73... A	utils/tests/gxyrs/Makefile.am
:000000 100644 0000000... 1c325bb... A	utils/tests/gxyrs/README.txt
:000000 100644 0000000... e84a892... A	utils/tests/gxyrs/inputs/Makefile.am
:000000 100644 0000000... 915fd43... A	utils/tests/gxyrs/inputs/do_nothing.pl
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/inputs/pcb_example1.xy
:000000 100644 0000000... c1bda42... A	utils/tests/gxyrs/inputs/pcb_example2.xy
:000000 100644 0000000... 1621d7c... A	utils/tests/gxyrs/inputs/protel_example1_mil.txt
:000000 100644 0000000... 725a003... A	utils/tests/gxyrs/inputs/protel_example1_mm.txt
:000000 100644 0000000... ea31f9e... A	utils/tests/gxyrs/inputs/report1.txt
:000000 100644 0000000... ad33c97... A	utils/tests/gxyrs/inputs/report2.txt
:000000 100644 0000000... 5884d44... A	utils/tests/gxyrs/outputs/Makefile.am
:000000 100644 0000000... 54b8075... A	utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt
:000000 100644 0000000... 08dd3df... A	utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt-error
:000000 100644 0000000... 54b8075... A	utils/tests/gxyrs/outputs/change_units_already_done_no_title-protel_example1_mil.txt
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/change_units_already_done_no_title-protel_example1_mil.txt-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy
:000000 100644 0000000... 5192ce9... A	utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy
:000000 100644 0000000... ae540a9... A	utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... 1de09fb... A	utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy
:000000 100644 0000000... f894d41... A	utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy
:000000 100644 0000000... f2a1cf3... A	utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy-error
:000000 100644 0000000... b88c61f... A	utils/tests/gxyrs/outputs/change_units_to_mil-protel_example1_mm.txt
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/change_units_to_mil-protel_example1_mm.txt-error
:000000 100644 0000000... fd3c5ad... A	utils/tests/gxyrs/outputs/change_units_to_mil_2cols-protel_example1_mm.txt
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/change_units_to_mil_2cols-protel_example1_mm.txt-error
:000000 100644 0000000... 4368356... A	utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt
:000000 100644 0000000... 08dd3df... A	utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt-error
:000000 100644 0000000... f726e12... A	utils/tests/gxyrs/outputs/change_units_to_mm_2cols-protel_example1_mil.txt
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/change_units_to_mm_2cols-protel_example1_mil.txt-error
:000000 100644 0000000... 725a003... A	utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt
:000000 100644 0000000... cdaacb1... A	utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt-error
:000000 100644 0000000... 725a003... A	utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt-error
:000000 100644 0000000... 4368356... A	utils/tests/gxyrs/outputs/change_units_to_mm_no_title-protel_example1_mil.txt
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/change_units_to_mm_no_title-protel_example1_mil.txt-error
:000000 100644 0000000... 54b8075... A	utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt
:000000 100644 0000000... a8c066f... A	utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt-error
:000000 100644 0000000... 3d383f4... A	utils/tests/gxyrs/outputs/del_case_insensitive1-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/del_case_insensitive1-pcb_example1.xy-error
:000000 100644 0000000... 3d383f4... A	utils/tests/gxyrs/outputs/del_case_insensitive2-pcb_example2.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/del_case_insensitive2-pcb_example2.xy-error
:000000 100644 0000000... 3d383f4... A	utils/tests/gxyrs/outputs/del_case_sensitive1-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/del_case_sensitive1-pcb_example1.xy-error
:000000 100644 0000000... c1bda42... A	utils/tests/gxyrs/outputs/del_case_sensitive2-pcb_example2.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/del_case_sensitive2-pcb_example2.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/del_case_sensitive3-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/del_case_sensitive3-pcb_example1.xy-error
:000000 100644 0000000... 3d383f4... A	utils/tests/gxyrs/outputs/del_case_sensitive4-pcb_example2.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/del_case_sensitive4-pcb_example2.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/del_check_columns_no_match-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/del_check_columns_no_match-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy
:000000 100644 0000000... d62840d... A	utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/do_nothing-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/do_nothing-pcb_example1.xy-error
:000000 100644 0000000... a47d267... A	utils/tests/gxyrs/outputs/do_nothing_tabulated-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/do_nothing_tabulated-pcb_example1.xy-error
:000000 100644 0000000... 8d7d3c1... A	utils/tests/gxyrs/outputs/footprint_pcb1-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/footprint_pcb1-pcb_example1.xy-error
:000000 100644 0000000... 3f33258... A	utils/tests/gxyrs/outputs/footprint_protel1-protel_example1_mil.txt
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/footprint_protel1-protel_example1_mil.txt-error
:000000 100644 0000000... bc55f92... A	utils/tests/gxyrs/outputs/footprint_report1-report1.txt
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/footprint_report1-report1.txt-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy
:000000 100644 0000000... 423755a... A	utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy
:000000 100644 0000000... 4bdea7d... A	utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... 2478a46... A	utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... 6ff6762... A	utils/tests/gxyrs/outputs/insert_column_first_pos-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/insert_column_first_pos-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy
:000000 100644 0000000... 29c6356... A	utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy-error
:000000 100644 0000000... 2e4092b... A	utils/tests/gxyrs/outputs/insert_column_second_pos-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/insert_column_second_pos-pcb_example1.xy-error
:000000 100644 0000000... c1bda42... A	utils/tests/gxyrs/outputs/match_column_insensitive1-pcb_example2.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/match_column_insensitive1-pcb_example2.xy-error
:000000 100644 0000000... c1bda42... A	utils/tests/gxyrs/outputs/match_column_insensitive2-pcb_example2.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/match_column_insensitive2-pcb_example2.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/match_column_insensitive3-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/match_column_insensitive3-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/match_column_insensitive4-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/match_column_insensitive4-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy
:000000 100644 0000000... d62840d... A	utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy
:000000 100644 0000000... 9b094f0... A	utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy
:000000 100644 0000000... e11f3d4... A	utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy
:000000 100644 0000000... 69dfd65... A	utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy
:000000 100644 0000000... 33b666e... A	utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/match_column_sensitive1-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/match_column_sensitive1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/match_column_sensitive2-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/match_column_sensitive2-pcb_example1.xy-error
:000000 100644 0000000... c1bda42... A	utils/tests/gxyrs/outputs/match_column_sensitive3-pcb_example2.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/match_column_sensitive3-pcb_example2.xy-error
:000000 100644 0000000... c1bda42... A	utils/tests/gxyrs/outputs/match_column_sensitive4-pcb_example2.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/match_column_sensitive4-pcb_example2.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/match_no_args-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/match_no_args-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy
:000000 100644 0000000... 6b9b64d... A	utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy
:000000 100644 0000000... c03074e... A	utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... 7b1301c... A	utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... 3327e3b... A	utils/tests/gxyrs/outputs/multiply_integer_factor-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/multiply_integer_factor-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy
:000000 100644 0000000... 00d3e27... A	utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy-error
:000000 100644 0000000... 8fc8f45... A	utils/tests/gxyrs/outputs/multiply_negative_integer_factor-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/multiply_negative_integer_factor-pcb_example1.xy-error
:000000 100644 0000000... 848230d... A	utils/tests/gxyrs/outputs/multiply_negative_real_factor-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/multiply_negative_real_factor-pcb_example1.xy-error
:000000 100644 0000000... 8f888df... A	utils/tests/gxyrs/outputs/multiply_real_factor-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/multiply_real_factor-pcb_example1.xy-error
:000000 100644 0000000... 5effa79... A	utils/tests/gxyrs/outputs/multiply_with_checklist-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/multiply_with_checklist-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy
:000000 100644 0000000... 559f994... A	utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy
:000000 100644 0000000... ba3b700... A	utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy-error
:000000 100644 0000000... fe66459... A	utils/tests/gxyrs/outputs/offset_check_columns_match-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/offset_check_columns_match-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/offset_check_columns_no_match-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/offset_check_columns_no_match-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy
:000000 100644 0000000... d62840d... A	utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... 2671611... A	utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... d729afb... A	utils/tests/gxyrs/outputs/offset_match_negative_offset-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/offset_match_negative_offset-pcb_example1.xy-error
:000000 100644 0000000... 550c389... A	utils/tests/gxyrs/outputs/offset_match_negative_real_offset-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/offset_match_negative_real_offset-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy
:000000 100644 0000000... 19f4537... A	utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy-error
:000000 100644 0000000... d71e0e9... A	utils/tests/gxyrs/outputs/offset_match_real_offset-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/offset_match_real_offset-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy
:000000 100644 0000000... 91cd836... A	utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy-error
:000000 100644 0000000... 7926249... A	utils/tests/gxyrs/outputs/output_delimiter-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/output_delimiter-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy
:000000 100644 0000000... b12314c... A	utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy
:000000 100644 0000000... 8804054... A	utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy
:000000 100644 0000000... b12314c... A	utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy
:000000 100644 0000000... 8804054... A	utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy
:000000 100644 0000000... b12314c... A	utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy
:000000 100644 0000000... 8804054... A	utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy
:000000 100644 0000000... 29fddf4... A	utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy
:000000 100644 0000000... 29fddf4... A	utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy
:000000 100644 0000000... 29fddf4... A	utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... 8c0e150... A	utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... bf2c302... A	utils/tests/gxyrs/outputs/panelize_tabulate-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/panelize_tabulate-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... 8c0e150... A	utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... 8c0e150... A	utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... 92a695a... A	utils/tests/gxyrs/outputs/process_comment-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/process_comment-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy
:000000 100644 0000000... cf4c991... A	utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy
:000000 100644 0000000... b806f02... A	utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy-error
:000000 100644 0000000... 6fe78d2... A	utils/tests/gxyrs/outputs/rotate_case_insensitive-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/rotate_case_insensitive-pcb_example1.xy-error
:000000 100644 0000000... 6fe78d2... A	utils/tests/gxyrs/outputs/rotate_case_sensitive-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/rotate_case_sensitive-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/rotate_check_columns_no_match-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/rotate_check_columns_no_match-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy
:000000 100644 0000000... d62840d... A	utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... 87e7c6d... A	utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... b0436cd... A	utils/tests/gxyrs/outputs/rotate_negative_angle-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/rotate_negative_angle-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy
:000000 100644 0000000... 556a5ef... A	utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy-error
:000000 100644 0000000... b0436cd... A	utils/tests/gxyrs/outputs/rotate_negative_real_angle-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/rotate_negative_real_angle-pcb_example1.xy-error
:000000 100644 0000000... 6fe78d2... A	utils/tests/gxyrs/outputs/rotate_real_angle-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/rotate_real_angle-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy
:000000 100644 0000000... e87c6af... A	utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy
:000000 100644 0000000... 7dd1b11... A	utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy-error
:000000 100644 0000000... 7abaf4d... A	utils/tests/gxyrs/outputs/subst_check_columns_match-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/subst_check_columns_match-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/subst_check_columns_no_match-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/subst_check_columns_no_match-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy
:000000 100644 0000000... d62840d... A	utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... 2075c59... A	utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy
:000000 100644 0000000... c428ba7... A	utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy
:000000 100644 0000000... 24658e1... A	utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy
:000000 100644 0000000... 00f6fde... A	utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy
:000000 100644 0000000... 24658e1... A	utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy
:000000 100644 0000000... 00f6fde... A	utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy
:000000 100644 0000000... 5d891bc... A	utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy
:000000 100644 0000000... 5d891bc... A	utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy
:000000 100644 0000000... 4ed6cf0... A	utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy
:000000 100644 0000000... 4ed6cf0... A	utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/swap_columns_no_match-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/swap_columns_no_match-pcb_example1.xy-error
:000000 100644 0000000... acd1c59... A	utils/tests/gxyrs/outputs/swap_columns_no_matchlist-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/swap_columns_no_matchlist-pcb_example1.xy-error
:000000 100644 0000000... 4baaba0... A	utils/tests/gxyrs/outputs/swap_columns_with_match-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/swap_columns_with_match-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy
:000000 100644 0000000... 7f984fd... A	utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy
:000000 100644 0000000... b7829f3... A	utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy-error
:000000 100644 0000000... 05027e2... A	utils/tests/gxyrs/outputs/translate_column_change_R10_value-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/translate_column_change_R10_value-pcb_example1.xy-error
:000000 100644 0000000... 6d4deaa... A	utils/tests/gxyrs/outputs/translate_column_change_R10_value_case_insensitive-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/translate_column_change_R10_value_case_insensitive-pcb_example1.xy-error
:000000 100644 0000000... 867ce82... A	utils/tests/gxyrs/outputs/translate_column_change_all_value_plus_k-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/translate_column_change_all_value_plus_k-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/translate_column_no_match1-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/translate_column_no_match1-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/translate_column_no_match2-pcb_example1.xy
:000000 100644 0000000... e69de29... A	utils/tests/gxyrs/outputs/translate_column_no_match2-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy
:000000 100644 0000000... a26d9ad... A	utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy-error
:000000 100644 0000000... ee9854b... A	utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy
:000000 100644 0000000... 5f213ba... A	utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy-error
:000000 100755 0000000... a508c17... A	utils/tests/gxyrs/run_tests.sh
:000000 100644 0000000... d22d9a9... A	utils/tests/gxyrs/tests.list

=========
 Changes
=========

commit d5f4b1882e98bde4f26e93e243fdb8d0ba120e99
Author: Carlos Nieves Onega <cnieves@xxxxxxxxxx>
Date:   Tue Nov 18 21:31:13 2008 +0100

    Added copyright notice to refdes_renum's run_tests.sh script.
    
    Added GPLv2 copyright notice to refdes_renum's run_tests.sh script,
    as required by Dan McMahill, its original author:
    http://archives.seul.org/geda/dev/Oct-2008/msg00132.html

diff --git a/utils/tests/refdes_renum/run_tests.sh b/utils/tests/refdes_renum/run_tests.sh
index a2e35da..9bcfab2 100755
--- a/utils/tests/refdes_renum/run_tests.sh
+++ b/utils/tests/refdes_renum/run_tests.sh
@@ -3,6 +3,25 @@
 # $Id$
 #
 
+# Copyright (C) 2007-2008 Dan McMahill
+ 
+# This file is part of refdes_renum.
+
+# 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, version 2
+# of the License.
+
+# 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.
+
 regen=no
 
 usage() {

commit f421f5143b44939bfad52d7c51445142b7854c87
Author: Carlos Nieves Onega <cnieves@xxxxxxxxxx>
Date:   Tue Nov 18 21:29:10 2008 +0100

    Added new util: gxyrs.
    
    Added gxyrs, a new util to process XYRS files.

diff --git a/utils/Makefile.am b/utils/Makefile.am
index b97f2a3..23906bb 100644
--- a/utils/Makefile.am
+++ b/utils/Makefile.am
@@ -1,5 +1,5 @@
 
-SUBDIRS = src gschlas scripts lib include examples docs man tests
+SUBDIRS = src gschlas scripts lib include examples docs man tests gxyrs
 
 EXTRA_DIST = ChangeLog.tragesym-1.0 ChangeLog.gsch2pcb-1.0 ChangeLog-1.0 \
 	autogen.sh
diff --git a/utils/configure.ac b/utils/configure.ac
index 17587e9..c7c9e57 100644
--- a/utils/configure.ac
+++ b/utils/configure.ac
@@ -485,6 +485,7 @@ AC_CONFIG_FILES([Makefile
                  examples/gmk_sym/Makefile 
                  examples/tragesym/Makefile 
                  examples/gsch2pcb/Makefile 
+		 gxyrs/Makefile
                  include/Makefile 
                  scripts/Makefile 
                  docs/Makefile 
@@ -497,6 +498,9 @@ AC_CONFIG_FILES([Makefile
                  tests/refdes_renum/Makefile
                  tests/refdes_renum/inputs/Makefile
                  tests/refdes_renum/outputs/Makefile
+                 tests/gxyrs/Makefile
+                 tests/gxyrs/inputs/Makefile
+                 tests/gxyrs/outputs/Makefile
 ])
 
 AC_OUTPUT
diff --git a/utils/gxyrs/.gitignore b/utils/gxyrs/.gitignore
new file mode 100644
index 0000000..87998d7
--- /dev/null
+++ b/utils/gxyrs/.gitignore
@@ -0,0 +1 @@
+gxyrs
diff --git a/utils/gxyrs/COPYING b/utils/gxyrs/COPYING
new file mode 100644
index 0000000..d511905
--- /dev/null
+++ b/utils/gxyrs/COPYING
@@ -0,0 +1,339 @@
+		    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.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    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.
diff --git a/utils/gxyrs/Makefile.am b/utils/gxyrs/Makefile.am
new file mode 100644
index 0000000..e977086
--- /dev/null
+++ b/utils/gxyrs/Makefile.am
@@ -0,0 +1,29 @@
+## $Id$
+##
+## Process this file with automake to produce Makefile.in
+
+bin_SCRIPTS = gxyrs
+	      
+rcdatadir = @GEDARCDIR@/gxyrs
+rcdata_DATA = gxyrs.pm
+
+EXTRA_DIST = gxyrs.pm
+
+distclean-local:
+	-rm -rf autom4te.cache
+
+maintainer-clean-local:
+	-rm -rf autom4te.cache
+
+##  This hardcodes the path to the
+##  system libraries into geda_filter prior to installation.
+gxyrs: $(srcdir)/gxyrs.pl
+	sed -e "s#GEDADATADIR#$(GEDADATADIR)#" $(srcdir)/gxyrs.pl | sed -e "s#GEDARCDIR#$(GEDARCDIR)#" > tmp$@
+	chmod a+x tmp$@
+	mv -f tmp$@ $@
+
+MOSTLYCLEANFILES = *.log *.ps core FILE tmp *~
+CLEANFILES = *.log *.ps core FILE tmp  *~
+DISTCLEANFILES = *.log core FILE tmp *~ gxyrs
+MAINTAINERCLEANFILES = *.log *.ps core FILE tmp *~ Makefile.in \
+	               configure gxyrs
diff --git a/utils/gxyrs/gxyrs.pl b/utils/gxyrs/gxyrs.pl
new file mode 100644
index 0000000..8af6779
--- /dev/null
+++ b/utils/gxyrs/gxyrs.pl
@@ -0,0 +1,619 @@
+#!/usr/bin/perl -w
+#
+# Copyright (C) 2008 Carlos Nieves Onega
+# Copyright (C) 2008 other contributors
+#                        (see ChangeLog or SCM history for details)
+ 
+# This file is part of gxyrs.
+
+# 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.
+
+use strict;
+use warnings;
+
+use lib 'GEDARCDIR/gxyrs'; # Where gxyrs package is located
+
+use gxyrs;
+use gxyrs qw($CASE_INSENSITIVE);
+
+# for parsing input options
+use Getopt::Long;
+
+use vars qw {
+	$REF_COL $FOOTPRINT_COL $X_COL $Y_COL $ANGLE_COL
+        $LAYER_COL $VALUE_COL $CASE_INSENSITIVE $LINE_NUMBER
+        $LINE $TITLE_LINE
+};
+
+my $tempfile;
+		
+
+# Set these for debugging purposes
+my $DEBUG = 0;
+my $DEBUG_GUESSING = 0;
+my $DEBUG_COL_LENGTH = 0;
+my $DEBUG_RETURN_CODE = 0;
+
+# Initialize global variables
+$REF_COL = -1;
+$FOOTPRINT_COL = -1;
+$X_COL = -1;
+$Y_COL = -1;
+$ANGLE_COL = -1;
+$LAYER_COL = -1;
+$VALUE_COL = -1;
+
+#######################################################################
+#
+# Subroutines
+#
+#######################################################################
+
+
+#---------------------------------
+# guess_file_format()
+#
+# Check current line and try to guess column numbers by 
+# testing if it is the title line and there are some title keywords.
+#---------------------------------
+sub guess_file_format () {
+    my $num_elems = scalar(@LINE);
+    my @positions = ();
+    my $position_repeated=0;
+
+    if ($DEBUG_GUESSING == 1) {
+	print "guess_file_format processing line $LINE_NUMBER.\n";
+	print "Line: @LINE\n";
+	print "Number of elements in line: $num_elems.\n";
+    }
+
+    # Remove '#' and spacer characters from the beginning of first element
+    while ($LINE[0] =~ /^#/) {
+	$LINE[0] = substr($LINE[0], 1);
+    }
+    while ($LINE[0] =~ /^\s+/) {
+	$LINE[0] = substr($LINE[0], 1);
+    }
+    
+
+    # Now try to guess column numbers from column titles.
+    for (my $i = 0; $i <= $num_elems-1; $i++) {
+	if ($DEBUG_GUESSING == 1) {
+	    print "Testing element $i: ".$LINE[$i].".\n";
+	}
+	if ( ($LINE[$i] =~ /^Designator$/) ||
+	     ($LINE[$i] =~ /^RefDesignator$/) ||
+	     ($LINE[$i] =~ /^RefDes$/)
+	    ) {
+	    if ($DEBUG_GUESSING) {
+		print "Found reference column: ".($i+1).".\n";
+	    }
+	    $REF_COL = $i+1;
+	    if (grep(/\b$REF_COL\b/, @positions)) {
+		$position_repeated = 1;
+	    }
+	    push(@positions,$REF_COL);
+	}
+	if ( ($LINE[$i] =~ /^Footprint$/) ||
+	     ($LINE[$i] =~ /^TopCell$/) ||
+	     ( ($LINE[$i] =~ /^Description$/) && 
+	       (! grep(/\bTopCell\b/,@LINE)) )
+	    ) {
+	    if ($DEBUG_GUESSING) {
+		print "Found footprint column: ".($i+1).".\n";
+	    }
+	    $FOOTPRINT_COL = $i+1;
+	    if (grep(/\b$FOOTPRINT_COL\b/, @positions)) {
+		$position_repeated = 1;
+	    }
+	    push(@positions,$FOOTPRINT_COL);
+	}
+	if ( ($LINE[$i] =~ /^Mid X$/) ||
+	     ($LINE[$i] =~ /^X$/)
+	    ) {
+	    if ($DEBUG_GUESSING) {
+		print "Found X column: ".($i+1).".\n";
+	    }
+	    $X_COL = $i+1;
+	}
+	if ( ($LINE[$i] =~ /^Mid Y$/) ||
+	     ($LINE[$i] =~ /^Y$/)
+	    ) {
+	    if ($DEBUG_GUESSING) {
+		print "Found Y column: ".($i+1).".\n";
+	    }
+	    $Y_COL = $i+1;
+	    if (grep(/\b$Y_COL\b/, @positions)) {
+		$position_repeated = 1;
+	    }
+	    push(@positions,$Y_COL);
+	}
+	if ( ($LINE[$i] =~ /^[Rr]otation$/) ||
+	     ($LINE[$i] =~ /^Rot$/) 
+	     
+	    ) {
+	    if ($DEBUG_GUESSING) {
+		print "Found angle column: ".($i+1).".\n";
+	    }
+	    $ANGLE_COL = $i+1;
+	    if (grep(/\b$ANGLE_COL\b/, @positions)) {
+		$position_repeated = 1;
+	    }
+	    push(@positions,$ANGLE_COL);
+	}
+	if ( ($LINE[$i] =~ /^TB$/) ||
+	     ($LINE[$i] =~ /^Side$/) ||
+	     ($LINE[$i] =~ /^top\/bottom$/)
+	    ) {
+	    if ($DEBUG_GUESSING) {
+		print "Found layer column: ".($i+1).".\n";
+	    }
+	    $LAYER_COL = $i+1;
+	    if (grep(/\b$LAYER_COL\b/, @positions)) {
+		$position_repeated = 1;
+	    }
+	    push(@positions,$LAYER_COL);
+	}
+	if ( ($LINE[$i] =~ /^Comment$/) ||
+	     ($LINE[$i] =~ /^PartNumber$/) ||
+	     ($LINE[$i] =~ /^Value$/)
+	    ) {
+	    if ($DEBUG_GUESSING) {
+		print "Found value column: ".($i+1).".\n";
+	    }
+	    $VALUE_COL = $i+1; 	
+	    if (grep(/\b$VALUE_COL\b/, @positions)) {
+		$position_repeated = 1;
+	    }
+	    push(@positions,$VALUE_COL);
+	}
+    }
+
+    # If there is any repeated position, warn the user.
+    if ($position_repeated == 1) {
+	print STDERR "A position was repeated while guessing file format.\n";
+    }
+    # If not all columns were guessed, or a position is repeated then reset all.
+    if ( ($position_repeated == 1) ||
+	 ($REF_COL == -1) ||
+	 ($FOOTPRINT_COL == -1) ||
+	 ($X_COL == -1) ||
+	 ($Y_COL == -1) ||
+	 ($ANGLE_COL == -1) ||
+	 ($LAYER_COL == -1) ||
+	 ($VALUE_COL == -1)
+	) {
+
+	# All columns should be defined in the same line.
+	$REF_COL = -1;
+	$FOOTPRINT_COL = -1;
+	$X_COL = -1;
+	$Y_COL = -1;
+	$ANGLE_COL = -1;
+	$LAYER_COL = -1;
+	$VALUE_COL = -1;
+    }
+
+    if ($DEBUG_GUESSING == 1) {
+	print "guess_file_format ended processing line $LINE_NUMBER.\n";
+    }
+
+}
+
+#---------------------------------
+# stdin()
+#
+# open a temp file, to allow multiple passes to the input file.
+#---------------------------------
+sub stdin () {
+        $tempfile = 'temp_'.time() . '_' . int(rand(1000000));
+        open(TEMP, "+>$tempfile") or print STDERR $!;
+        local $/ = undef;
+        print TEMP <STDIN>;
+        seek(TEMP, 0, 0);
+        \*TEMP;
+}
+
+
+#---------------------------------
+# usage()
+#
+# prints program usage
+#---------------------------------
+sub usage {
+    print "Usage:\n";
+    print "  gxyrs [--tabulate] <input_file> --adjust <adjust_file> --output <outputfile> \n";
+    exit(0);
+}
+
+
+#######################################################################
+#
+# Main program
+#
+#######################################################################
+
+
+{
+
+    my @fname=();
+    my ($file_in, $adjust_file, $file_out);
+    my ($this_line, $line_out);
+    my @lengths;
+    my $output_delimiter="";
+
+    # Delimiters to try when guessing file format.
+    my @delimiters = ('\s+', ',\s*'); 
+    my @delimiters_char = (' ', ','); # Used when writing the output file
+    my $delimiter_index=-1; 
+    
+    my $pass;
+    my $total_passes = scalar(@delimiters) + 1;
+    my $guessing_file_format;
+    my $is_comment = 0; # Mark the current line as a comment.
+    my $eval_string;
+
+    my $tabulate=0; # Output should be tabulated or not.
+    my $verbose;
+    my $process_comments;
+
+    my $return_code;
+
+    # Comparisons are case insensitive by default.
+    $CASE_INSENSITIVE=0;
+
+    &GetOptions(("help" => \&usage, 
+		 "verbose" => \$verbose,
+		 "process-comments" => \$process_comments,
+		 "tabulate!" => \$tabulate,
+		 "caseinsensitive!" => \$CASE_INSENSITIVE,
+		 "adjust=s" => \$adjust_file,
+		 "eval=s" => \$eval_string,
+		 "output=s" => \$file_out,
+		 "output-delimiter=s" => \$output_delimiter,
+		));
+
+    if ($Getopt::Long::error) {
+	print STDERR "Wrong arguments.\n";
+	usage();
+    }
+    
+    # Print usage string in event user didn't call out any args
+    usage() unless @ARGV;
+    
+    # Make sure the input schematic exists and we can read it.
+    # Also count number of files to open.
+    while(@ARGV) {
+	my $i=0;
+	$fname[$i]=shift(@ARGV);
+	print "Checking argument $fname[$i].\n";
+ 	if (! -r $fname[$i]) {  
+ 	    die("Input file $fname[$i] does not exist or can not be read");
+ 	}
+	$i++;
+    }
+    
+    $file_in = $fname[0];
+	
+    # Print usage string in event user didn't specify input, adjust 
+    # and output files.
+    if (! ($file_in && $file_out && ($adjust_file || $eval_string))) {
+	print STDERR "Nothing to do.\n";
+	if ($eval_string) {
+	    print STDERR "Eval string: $eval_string.\n";
+	}
+	if ($adjust_file) {
+	    print STDERR "Commands file: $adjust_file.\n";
+	}
+	usage();
+    }
+    
+
+    if ($file_in !~ '^-$') {
+	open(FILE_IN, $file_in) || die ("Can't open input file $file_in: $!");
+    }
+    else {
+	*FILE_IN = &stdin();	
+    }
+
+    if (length($output_delimiter) > 1) {
+	die ("Output delimiter $output_delimiter must be a character.");
+    }
+
+    # Don't know yet the file format.
+    $guessing_file_format = 1;
+    $TITLE_LINE = 0;
+
+    # Last pass is to process the file. Others are for guessing the
+    # file format with several delimiters (one for each element in @delimiters.
+    for ($pass = 1; $pass <= $total_passes; $pass++) {
+	if (seek(FILE_IN, 0, 0) != 1) {
+	    print STDERR "Error when seek input file to 0\n";
+	}
+	if ($pass >= $total_passes) {
+	    open(FILE_OUT, "> ".$file_out) || die ("Can't open output file $file_out: $!");
+	}
+	
+	# Set the return code to 0
+	$return_code = 0;
+	if ($DEBUG_RETURN_CODE) {
+	    print "Setting global return code to 0.\n";
+	}
+
+	# Parse file
+	$LINE_NUMBER = 0;
+	print "Pass number: $pass.\n" if ($DEBUG);
+	while ( <FILE_IN> ) {
+	    $this_line=$_;
+	    $_ = $this_line;
+
+	    # Remove end line characters.
+	    chomp($this_line);
+
+	    # For the last pass, use the delimiter guessed.
+	    # For the others, get the delimiter from @delimiters array.
+	    if ($pass < $total_passes) {
+		my $this_delimiter = $delimiters[$pass-1];
+		@LINE = split ($this_delimiter, $this_line);
+	    } else {
+		my $this_delimiter = $delimiters[$delimiter_index];
+		@LINE = split ($this_delimiter, $this_line);
+	    }
+	    $LINE_NUMBER += 1;
+	    next if /^@/;
+	    next if /^q/;
+	    
+	    # Test if the line is a comment 
+	    # (which shouldn't be processed).
+	    if ( ($this_line =~ /^\s*#/) ||
+		 ($this_line =~ /^\s*$/) ) {
+		if ($DEBUG) {
+		    print "Line is comment: @LINE\n";
+		}
+		$is_comment = 1;
+	    } else {
+		$is_comment = 0;
+	    }
+	    
+	    # First, some column titles are separated by spaces, so join them.
+	    if ($LINE_NUMBER == 1) {
+		my $num_elems = scalar(@LINE);
+		for (my $i = 0; $i <= $num_elems-1; $i++) {
+		    if ($i <= $num_elems-2) {
+			# Join titles like "Pad X", "Pad Y", "Mid X", "Mid Y",
+			# "ref X", "ref Y" (Protel output)
+			if ( ( ($LINE[$i] =~ /^Pad$/) &&
+			       ($LINE[$i+1] =~/^[XY]$/) ) ||
+			     ( ($LINE[$i] =~ /^Mid$/) &&
+			       ($LINE[$i+1] =~/^[XY]$/) ) ||
+			     ( ($LINE[$i] =~ /^Ref$/) &&
+			       ($LINE[$i+1] =~/^[XY]$/) ) 
+			    ) {
+			    $LINE[$i] = $LINE[$i]." ".$LINE[$i+1];
+			    for (my $j = $i+1; $j <= $num_elems-2; $j++) {
+				$LINE[$j] = $LINE[$j+1];
+			    }
+			    delete $LINE[$num_elems-1];
+			    $num_elems -= 1;
+			}
+		    }
+		}
+		
+	    }
+	    
+	    if ( ($pass != $total_passes) &&
+		 $guessing_file_format ) {
+		my $old_guessing_file_format = $guessing_file_format;
+		# Try to guess the file format
+		guess_file_format();
+		# Check if already guessed the file format.
+		$guessing_file_format = ( ($REF_COL == -1) ||
+					  ($FOOTPRINT_COL == -1) ||
+					  ($X_COL == -1) ||
+					  ($Y_COL == -1) ||
+					  ($ANGLE_COL == -1) ||
+					  ($LAYER_COL == -1) ||
+					  ($VALUE_COL == -1) );
+		
+		if (!$guessing_file_format) {
+		    if ($old_guessing_file_format == 1) {
+			$TITLE_LINE = $LINE_NUMBER;
+		    }
+		    if ($verbose) {
+			print "Found file format. ";
+			print "Delimiter is $delimiters[$pass-1].\n";
+		    }
+		    
+		    $delimiter_index = $pass-1;
+		}
+	    }
+	    
+	    if (!$guessing_file_format) {
+		if (($is_comment == 0) || $process_comments) {
+		    my $rc ;
+
+		    # If it's parsing the file then keep the number
+		    # of columns constant, joining all the fields 
+		    # in the last one.
+ 		    while ( (@LINE > @lengths) &&
+			    (scalar(@lengths) > 0) ) {
+ 			$LINE[@LINE-2] = $LINE[@LINE-2].
+			    $delimiters_char[$delimiter_index].$LINE[@LINE-1];
+ 			pop @LINE;
+ 		    }
+
+		    if ($DEBUG_RETURN_CODE) {
+			print "Global return code before evaluation: $return_code.\n";
+		    }
+
+		    # Run the adjust file.
+		    if (defined $adjust_file) {
+			$rc = do $adjust_file || 
+			    die("Can't use adjust file: $!\n");
+		    } else {
+			#print "Eval: $eval_string\n";
+			$rc = eval $eval_string;
+		    }
+		    if ($@) {
+			print STDERR "Error: ".$@."\n";
+			$rc = -10;
+		    }
+		    
+		    # Set $return_code based on priorities.
+		    # 1 means the command found a match and was succesful 
+		    #   at least one time in the whole file.
+		    # 0 means there was no match.
+		    # -1 means there was an error.
+		    # -2 means there was a warning.
+		    if ($DEBUG_RETURN_CODE) {
+			print "Return code $rc after evaluation.\n";
+		    }
+		    if ($rc == -1) {
+			$return_code = -1;
+		    }
+		    elsif (($rc == -2) && ($return_code >= 0)) {
+			$return_code = -2;
+		    }
+		    elsif (($rc == 1) && ($return_code == 0)) {
+			$return_code = 1;
+		    }
+		    elsif (($rc == 0) && ($return_code == 1)) {
+			$return_code = 1;
+		    }
+		    elsif (($rc >= 0) && ($return_code < 0)) {
+			# Do nothing
+		    }
+		    else {
+			$return_code = $rc;
+		    }
+		    if ($DEBUG_RETURN_CODE) {
+			print "Global return code: $return_code.\n";
+		    }
+		}	
+		if ( ($pass != $total_passes) &&
+		     ( ($is_comment == 0) || $process_comments) ) {
+		    if ($DEBUG_COL_LENGTH == 1) {
+			print "Measuring column length of line: ".
+			    "'$this_line'\n"; 
+		    }
+		    # Calcule max length array
+		    if ($tabulate) {
+			my $j=0;
+			for (my $i=0; $i <= scalar(@LINE)-1; $i++) {
+			    # Allow adding more lines, and checking
+			    # element's length right.
+			    if ($LINE[$i] eq "\n") {
+				$j = $i+1;
+				next;
+			    }
+			    if (! exists $lengths[$i-$j]) {
+				$lengths[$i-$j]= length($LINE[$i]);
+			    }
+			    elsif ($lengths[$i-$j] < length($LINE[$i]) ) {
+				$lengths[$i-$j]= length($LINE[$i]);
+			    }
+			    if ($DEBUG_COL_LENGTH == 1) {
+				print "Column ".($i-$j+1).
+				    ", length: $lengths[$i].\n"; 
+			    }
+			}
+		    }
+		}
+		
+		# Print the result after processing
+		if ($pass >= $total_passes) {
+		    if (($is_comment == 1) && !$process_comments) {
+			print FILE_OUT "$this_line\n";
+		    }
+		    elsif (@LINE > 0) {
+			my $delimiter;
+			my $j=0;
+			
+			# Set the output delimiter 
+			if (length($output_delimiter) != 0) {
+			    $delimiter = $output_delimiter;
+			}
+			else {
+			    $delimiter = $delimiters_char[$delimiter_index];
+			}
+
+			# Write output
+			for (my $i=0; $i <= scalar(@LINE)-1; $i++) {
+			    # Allow adding more lines, and handle
+			    # new lines.
+			    if ($LINE[$i] eq "\n") {
+				print FILE_OUT "\n";
+				$j = $i+1;
+				next;
+			    }
+			    if (($i-$j) > scalar(@lengths)-1) {
+				# If column length array has no number 
+				# for this column, print it as is.
+				print FILE_OUT $LINE[$i];
+				} else {
+				    printf FILE_OUT "%-$lengths[$i-$j]s",$LINE[$i];
+				}
+			    # print the last column without delimiter
+			    if ( ($i < @LINE-1) &&
+				 (!($LINE[$i+1] eq "\n"))) {
+				    print FILE_OUT $delimiter;
+			    }
+			}
+			print FILE_OUT "\n";
+		    }
+		}
+	    }
+	    
+	}	
+	# Close output file.
+	if ($pass >= $total_passes) {
+	    close(FILE_OUT);
+	}
+	
+	# Print all column numbers (DEBUGGING)
+	if ( ($pass != $total_passes) && ($DEBUG_GUESSING==1) ) {
+	    print "Reference column: $REF_COL.\n";
+	    print "Footprint column: $FOOTPRINT_COL.\n";
+	    print "X column:         $X_COL.\n";
+	    print "Y column:         $Y_COL.\n";
+	    print "Rotation column:  $ANGLE_COL.\n";
+	    print "Layer column:     $LAYER_COL.\n";
+	    print "Value column:     $VALUE_COL.\n";
+	}
+
+	# If last guessing pass is complete, but all columns were not guessed, 
+	# exit with an error.
+	if ( $guessing_file_format &&
+	     ($pass == $total_passes-1) )
+	{
+	    die ("Can't guess file format.\n");
+	}
+
+	# If file format was guessed, but next pass is not the last one,
+	# then go to the last one (processing pass).
+	if ( (!$guessing_file_format) &&
+	     ($pass < $total_passes-1) ) {
+	    $pass = $total_passes-1;
+	}
+    }        
+    close(FILE_IN);
+    if ($tempfile) {
+	unlink $tempfile;
+    }
+
+    exit $return_code;
+}
+
diff --git a/utils/gxyrs/gxyrs.pm b/utils/gxyrs/gxyrs.pm
new file mode 100644
index 0000000..e60b6db
--- /dev/null
+++ b/utils/gxyrs/gxyrs.pm
@@ -0,0 +1,658 @@
+#
+# Copyright (C) 2008 Carlos Nieves Onega
+# Copyright (C) 2008 other contributors
+#                        (see ChangeLog or SCM history for details)
+ 
+# This file is part of gxyrs.
+
+# 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.
+
+use strict;
+use warnings;
+
+package gxyrs;
+
+BEGIN {
+	use Exporter   ();
+        our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+        # if using RCS/CVS, this may be preferred
+        $VERSION = do { my @r = (q$Revision: 2.21 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+        @ISA         = qw(Exporter);
+        @EXPORT      = qw(&check_columns &del_line &rotate_comp &subst_col_val &change_col_units &add_number_to_col &translate_col_val @LINE &panelize_xyrs &mul_col_val &gxyrs_get_xy_transform_matrix &gxyrs_apply_xy_transform &swap_columns &insert_column);
+        %EXPORT_TAGS = ( );     # eg: TAG => [ qw!name1 name2! ],
+        # your exported package globals go here,
+        # as well as any optionally exported functions
+        @EXPORT_OK   = qw(@LINE $CASE_INSENSITIVE);
+}
+
+use vars qw(
+        $CASE_INSENSITIVE
+);
+
+our @LINE ;# = ( "Package", "Filters" );
+#our $CASE_INSENSITIVE;
+
+# Checks if a column number is a number between the specified range.
+# 
+# Returns 1 if success, 0 otherwise
+# If error, prints an error with the function caller (passed as argument)
+# to STDERR
+sub check_column_number {
+    my ($f_name,$number, $min, $max) = @_;
+
+    if ($number !~ /^[0-9]+$/ ) {
+	print STDERR "Error: $f_name: wrong column argument: $number.\n";
+	return 0;
+    }
+    # Column number must be a number within line columns number
+    if (($number > $max) ||
+	($number < $min)) { 
+	print STDERR "Error: $f_name: Element number ($number) is not within ($min..$max).\n";
+	return 0;
+    }
+    return 1;
+}
+	
+# This function checks if the data has the pattern specified by the checklist.
+# The data to be checked is in the global variable $LINE;
+# The check list is a list of elements. Each element is a list with two single elements specifying
+# the data number 'n' and the pattern. The element 'nth' of the data list should pass the pattern.
+# The first element of the data has the number 1.
+# The functions returns 1 if the data passes all the checks and 0 otherwise.
+#
+# Returns -1 if error, 0 if not match, 1 if match.
+#   if no argument is given, returns 1.
+#
+# Example: check_columns 2, '[0-9]+', 3, 'R[0-9]+';
+#   column 2 should be a number, and 
+#   column 3 is a string beginning with R followed by a number.
+sub check_columns {
+	my(@check_list) = @_;   # Check list. Each pair is (column, pattern)
+	
+	# Pair list expected. The parameter number should be odd.
+	if ( (@LINE == 0) || (@check_list & 1 != 0) )  { return 0 };
+
+	for (my $i=0; $i <= @check_list-1; $i+=2) {
+	  my($number, $pattern) = ($check_list[$i], $check_list[$i+1]);
+	  # Column number must be a number
+	  if ($number !~ /^[0-9]+$/ ) {
+	  	print STDERR "Error: check_columns: wrong column argument: $number.\n";
+	  	return -1;
+	  }
+	  # Column number must be a number within line columns number
+	  if (($number > @LINE) ||
+	     ($number <= 0)) { 
+	     print STDERR "Error: Check pattern: Element number ($number) is not within (1..".(@LINE).").\n";
+	     return -1;
+	  }
+	  $number-=1; 
+
+	  if (! defined $CASE_INSENSITIVE ) {
+	  	print STDERR "Error: Check pattern: variable CASE_INSENSITIVE should be defined.\n";
+	  	print STDERR "Changing it to 0 (default).\n";
+	  	$CASE_INSENSITIVE=0;
+	  }
+	  if ($CASE_INSENSITIVE !~ /^[0,1]$/) {
+	  	print STDERR "Error: Check pattern: variable CASE_INSENSITIVE ($CASE_INSENSITIVE) should be 0 or 1.\n";
+	  	print STDERR "Changing it to 0 (default).\n";
+	  	$CASE_INSENSITIVE=0;
+	  }
+	  # Build the pattern, adding beginning and end marks.
+	  $pattern='^'.$pattern.'$';
+
+	  # Test the pattern
+	  if ($CASE_INSENSITIVE == 1) {
+	      if (! ($LINE[$number] =~ /$pattern/i)) {
+		  return 0; # Found one non-matching test. Return FALSE.
+	      }
+	  }
+	  else {
+	      if (! ($LINE[$number] =~ /$pattern/)) {
+		  return 0; # Found one non-matching test. Return FALSE.
+	      }
+	  }
+	}
+	return 1;
+}
+
+
+# Delete the line (global variable @LINE) if it matches the pattern specified.
+# It uses check_columns for pattern matching, and if it matches, 
+# then the line is deleted.
+#
+# Returns -1 if error, 0 if not match, 1 if match and changed.
+#
+# Example: del 2, 'R[0-9]+';
+#   delete all lines having a R followed by a number in column number 2.
+sub del_line {
+	my (@check_list) = @_;
+	my $rc = check_columns (@check_list);
+	if ($rc == 1) {
+		splice(@LINE);
+		return 1;
+	} else {
+	    return $rc;
+	}
+}
+
+# Rotate the component if it matches the pattern specified.
+# It uses check_columns for pattern matching, and if it matches, 
+# then the component is rotated.
+#
+# Returns 1 if match and changed, 0 if not match, -1 if error.
+#
+# Example: rotate 5, 90, 2, 'R[0-9]+';
+#   rotate all components having a R followed by a number in column number 2,
+#   by 90º. Rotation angle is in column 5.
+sub rotate_comp {
+	my ($angle_col, $angle, @check_list) = @_;
+	my $rc;
+
+	if (! (check_column_number("rotate_comp",$angle_col, 0, scalar(@LINE)))) {
+	    return -1;
+	}
+
+	if ($angle !~ /^[+-]??[0-9]*(\.[0-9]+)*$/ ) {
+		# Angle doesn't match the expression "number.number", where 
+		# ".number" may not exist.
+		print STDERR "Error: rotate_comp: wrong angle: $angle.\n";
+		return -1;
+	}
+	$rc = check_columns (@check_list);
+	if ($rc < 0) {
+	    return $rc;
+	}
+	if ($rc) {
+		$LINE[$angle_col-1] += $angle;
+		$LINE[$angle_col-1] -= 360*int($LINE[$angle_col-1] / 360) ;
+		return 1;
+	}
+	return 0;
+}
+
+# Replace a column value if it matches the pattern specified.
+# It uses check_columns for pattern matching, and if it matches, 
+# then the column is replaced.
+#
+# Returns 1 if match and changed, 0 if not match, -1 if error.
+#
+# Example: subst 3 , '100nF', 3, '0.1u';
+#   if the value in column 3 is "0.1u", then replace it with "100nF".
+#
+# Example: subst 2 , 'D1', 3, '1n4148';
+#   if the value in column 3 is "1n4148", then replace column 2 with "D1".
+sub subst_col_val {
+	my ($col, $value, @check_list) = @_;
+	my $rc;
+
+	if (! (check_column_number("subst_col_val",$col, 0, scalar(@LINE)))) {
+	    return -1;
+	}
+
+	$rc = check_columns (@check_list);
+	if ($rc < 0) {
+	    return $rc;
+	}
+	if ($rc) {
+		$LINE[$col-1] = $value;
+		return 1;
+	}
+	return 0;
+}
+
+# Change units of a given text.
+# Returns:
+#   1 if match and changed, 
+#   0 if not match, 
+#  -1 if units not supported or wrong format.
+#  -2 if string to change has no units.
+#
+# Example: change_text_units 'mm', '102.40mil';
+#    replaces string '102.40mil' by the its equivalent in mm: '2.60096mm'
+#
+sub change_text_units {
+    my($return_value) = 0;
+    my($desired_units, $string) = @_; # $_[1] MUST be the string to be changed. See below.
+
+	# If the text has no units, warn the user.
+	if ($string =~ /^[+-]??[0-9]*(\.[0-9]*)*$/) {
+	    print STDERR "Warning: change_text_units: Text ".$string." has no units. Leaving it as is.\n";
+	    return -2;
+	}
+
+	# If it's only text, then warn the user.
+	if ($string !~ /^[+-]??[0-9]/) {
+	    print STDERR "Warning: change_text_units: Text $string has no numbers!\n";
+	    return -2;
+	}
+
+	# If it is already in the desired units, don't change it.
+	if ($string =~ /^[+-]??[0-9]*(\.[0-9]*)*$desired_units$/) {
+	    return 0;
+	}
+	if ($desired_units =~ /^mm$/) {
+	    # The desired units are mm.
+	    if ($string =~ /^[+-]??[0-9]*(\.[0-9]*)*[A-Za-z]*$/) {
+		# The format is N.Nunits, where N is a number. 
+		if ($string =~ /(.*)mil$/i) {
+		    # The original units are mils (1/1000th inches).
+		    $string = ($1*0.0254)."mm";
+		    $_[1] = $string;
+		    return 1;
+		}
+		elsif ($string =~ /(.*)in$/i) {
+		    # The original units are inches.
+		    $string = ($1*25.4)."mm";
+		    $_[1] = $string;
+		    return 1;
+		}
+		else {
+		    # Units are not supported.
+		    $_=$string;
+		    m/([A-Za-z]*)$/;
+		    print STDERR "Changing $string to mm: Units $1 not supported.\n";
+		    print STDERR "Line: @LINE\n";
+		    return -1;
+		}
+	    }
+	    else {
+		# Wrong format. It is not N.Nunits, where N is a number.
+		print STDERR "Error: change_text_units: Wrong format: $string.\n";
+	        return -1;
+	    }
+	}
+	elsif ($desired_units =~ /^mil$/) {
+	    # The desired units are mils (1/1000th inches).
+	    if ($string =~ /^[+-]??[0-9]*(\.[0-9]*)*[A-Za-z]*$/) {
+		# The format is N.Nunits, where N is a number. 
+		if ($string =~ /(.*)mm$/i) {
+		    # The original units are mils (1/1000th inches).
+		    $string = ($1/0.0254)."mil";
+		    $_[1] = $string;
+		    return 1;
+		}
+		elsif ($string =~ /(.*)in$/i) {
+		    # The original units are inches.
+		    $string = ($1*1000)."mm";
+		    $_[1] = $string;
+		    return 1;
+		}
+		else {
+		    # Units are not supported.
+		    $_=$string;
+		    m/([A-Za-z]*)$/;
+		    print STDERR "Changing to mils: Units $1 not supported.\n";
+		    print STDERR "Line: @LINE\n";
+		    return -1;
+		}
+	    }
+	    else {
+		# Wrong format. It is not N.Nunits, where N is a number.
+		print STDERR "Error: change_units: Wrong format: $string.\n";
+	        return -1;
+	    }
+	}
+	else {
+	    # Desired units are not supported.
+	    print STDERR "Error: Desired units '$desired_units' not supported.\n";
+	    return -1;
+	}
+}
+
+
+# Change units of a given column number.
+# Returns -1 if error, -2 if warning, and 1 if success.
+# 
+# Example: change_units 'mm', 3, 5;
+#    convert all numbers in column 3 and 5 to its equivalent in mm.
+#
+sub change_col_units {
+    my($return_value) = 0;
+    my($value);
+    my($changed) = 0;
+    my($desired_units, @columns) = @_;
+
+    $return_value = 0;
+    if (@columns == 0) {return 0};
+    if (@LINE == 0) {return 0};
+    
+    foreach $value (@columns) {
+
+	if (! (check_column_number("change_col_units",$value, 0, scalar(@LINE)))) {
+	    return -1;
+	}
+
+	# If the column is empty, continue.
+	if ($LINE[$value-1] =~ /^\s*$/) {next};
+	
+	# Change the units
+	$changed = change_text_units($desired_units, $LINE[$value-1]);
+	if ($changed == -1) {
+		print STDERR "Error at column $value\n";
+	}
+	elsif ($changed == -2) {
+		print STDERR "Warning at column $value\n";
+	}
+	
+	# Update return value
+	if ( ($changed == 1) && ($return_value == 0) ) {
+		$return_value++;
+	}
+	elsif ( ($changed == -2) && ($changed != -1) ) {
+		$return_value = -2;
+	}
+	elsif ($changed == -1) {
+		$return_value = -1;	
+	}
+    }
+    return $return_value;
+}
+
+
+# Adds a number to a value in a given column number.
+# Note: offset and the value to be changed can be in different units.
+# Returns -1 if error, -2 if warning, and 1 if success.
+# 
+# Example: offset 3, '102.5mm', 4, 'R[0-9]+' ;
+#    if the text in column number 4 is R followed by a number, then adds
+#    102.5mm to the value in column 3. 
+#    Note: Value in column 3 can be in other units. For example: '640mil'.
+# 
+sub add_number_to_col {
+    my($return_value) = 0;
+    my($changed) = 0;
+    my($column, $offset, @check_list) = @_;
+    my($offset_value) = 0;
+    my($units);
+    my $rc;
+
+    $return_value = 0;
+    
+    if (! (check_column_number("add_number_to_col",$column, 0, scalar(@LINE)))) {
+	return -1;
+    }
+
+    if (@LINE == 0) {return 0};
+
+    $rc = check_columns (@check_list);
+    if ($rc < 0) {
+	return $rc;
+    }
+    if ($rc) {
+	# If the column is empty, continue.
+	if ($LINE[$column-1] =~ /^\s*$/) {next};
+	
+	# Guess the line's units.
+	if ($LINE[$column-1] =~ /^[+-]??[0-9]*(\.[0-9]*)*[a-zA-Z]+$/) {
+	    if ($LINE[$column-1] =~ /^.*[0-9]+([a-zA-Z]+)$/) {
+		$units = $1;	
+	    }
+	}
+	elsif ($LINE[$column-1] =~ /^[+-]??[0-9]*(\.[0-9]*)*$/) {
+	    # Line number has no units.
+	    $units = "";
+
+	    if ($offset =~ /^[+-]??[0-9]*(\.[0-9]*)*[a-zA-Z]+$/) {
+		print STDERR "Error: add_number_to_col: Offset has units, but number $LINE[$column-1] has no units.\n";
+		return -1;
+	    }
+	}
+	else {
+		print STDERR "Error: add_number_to_col: Wrong value at column $column: $LINE[$column-1]\n";
+		return -1;
+	}
+	
+	# Change offset to line's units.
+	if (! $units =~ /^$/) {
+	    $changed = change_text_units($units, $offset);
+	}
+	else {
+	    $changed = 1;
+	}
+	
+	# If there's an error changing the offset units, then return.
+	if ($changed == -1 ) {
+		print STDERR "Error: add_number_to_col: Error with offset parameter: $offset.\n";
+		return -1;
+	}
+	elsif ($changed == -2) {
+		print STDERR "Warning: add_number_to_col: warning in offset parameter: $offset.\n";
+	}
+	
+	# Change the units
+	$_=$offset;
+	/(.*)$units$/i;
+	$offset_value = $1;
+
+	$_=$LINE[$column-1];
+	/(.*)$units$/i;
+	$LINE[$column-1] = $1+$offset_value."$units";	
+	
+	# Update return value
+	if ( ($changed == 1) && ($return_value == 0) ) {
+		$return_value++;
+	}
+	elsif ( ($changed == -2) && ($changed != -1) ) {
+		$return_value = -2;
+	}
+	elsif ($changed == -1) {
+		$return_value = -1;	
+	}
+    }
+    return $return_value;
+}
+
+# Translate a string if it matches the pattern specified.
+# It uses check_columns for pattern matching, and if it matches, 
+# then the column is replaced.
+#
+# Returns -1 if error, 0 if not match, 1 if match and changed.
+#
+# Example:
+#   translate 2, '^([0-9]+)n$','sprintf("%dnF",$1)', 3, 'C[0-9]+';
+#     if the value in column 3 is C followed by a number, then 
+#     if the value in column 2 is a number followed by 'n', translate it
+#     to the same value followed by 'nF'.
+#     If there is 'C10' in column 3 and '10n' in column 2, 
+#     change '10n' to '10nF'.
+sub translate_col_val {
+	my($column, $string, $substitution, @checklist) = @_;
+	my $rc;
+
+	if (! (check_column_number("translate_col_val",$column, 0, scalar(@LINE)))) {
+	    return -1;
+	}
+	if (@LINE == 0) {return 0};
+
+	if ( (! @checklist) || (@checklist)) {
+	    $rc = check_columns (@checklist);
+	    if ($rc <= 0) {
+		return $rc;
+	    }
+	    else {
+		if ($CASE_INSENSITIVE == 1) {
+		    if ($LINE[$column-1] =~ s/$string/$substitution/ixee) {
+			return 1;
+		    } else {
+			return 0;
+		    }
+		}
+		else {
+		    if ($LINE[$column-1] =~ s/$string/$substitution/xee) {
+			return 1;
+		    } else {
+			return 0;
+		    }
+		}
+	    }
+	}
+	return 0;
+}
+
+# Panelize the list.
+# 
+# Warning: this should ALWAYS be the last command in your script.
+sub panelize_xyrs {
+    my ($no_x, $no_y, $AX, $AY, $X_COL, $Y_COL, $REF_COL, $REF_PATTERN) = @_;
+    my ($i, $j);
+    my @new_array = ();
+    my $refdes;
+
+    if (! (check_column_number("panelize_xyrs", $X_COL, 0, scalar(@LINE)) &&
+	   check_column_number("panelize_xyrs", $Y_COL, 0, scalar(@LINE)) &&
+	   check_column_number("panelize_xyrs", $REF_COL, 0, scalar(@LINE)) )) {
+	return -1;
+    }
+
+    $refdes = $LINE[$REF_COL-1];
+
+    for ($i=0; $i<=$no_x-1; $i++) {
+ 	for ($j=0; $j<=$no_y-1; $j++) {
+ 	    my @new_line = @LINE;
+	    
+	    
+	    if (length($REF_PATTERN) == 0) {
+		$new_line[$REF_COL-1] = $refdes."-$i-$j";
+	    }
+	    else {
+		$new_line[$REF_COL-1] = $refdes.$REF_PATTERN;		
+	    }
+	    
+	    if (($i == 0) && ($j == 0)) {
+		$LINE[$REF_COL-1] = $new_line[$REF_COL-1];
+		next;
+	    }
+	    
+ 	    $new_line[$X_COL-1] = $LINE[$X_COL-1]+$i*$AX;
+ 	    $new_line[$Y_COL-1] = $LINE[$Y_COL-1]+$j*$AY;
+	    
+ 	    unshift(@new_line, "\n");
+ 	    push (@new_array, @new_line);
+	    
+ 	}
+    }
+    push (@LINE, @new_array);
+    return 1;
+}
+
+# Multiply the number in the specified column by the given amount.
+#
+# It uses check_columns for pattern matching, and if it matches, 
+# then the column is replaced.
+# The number to be multiplied may have units at the end.
+#
+# Returns -1 if error, 0 if not match, 1 if match and changed.
+#
+# Example: multiply 3, 2.5, 4, 'R[0-9]+' ;
+#    if the text in column number 4 is R followed by a number, then multiply
+#    the value in column 3 by 2.5. 
+#    Note: Value in column 3 may have units or not. For example: '640mil'.
+
+sub mul_col_val {
+    my($string_format)='^([+-]??[0-9]*(\.[0-9]*)*)([a-zA-Z]*)$';
+    my($column, $factor, @checklist) = @_;
+    my $rc;
+    
+    
+    if (! (check_column_number("mul_col_val", $column, 0, scalar(@LINE)))) {
+	return -1;
+    }
+    
+    if ($factor !~ /^[+-]??[0-9]*(\.[0-9]*)*$/) {
+	print STDERR "Error: mul_col_val: Multiplying factor is not a number.\n";
+	return -1;
+    }
+    
+    $rc = check_columns (@checklist);
+    
+    if ($rc < 0) {
+	return $rc;
+    }
+    if ($rc) {	    
+	if ($LINE[$column-1] =~ /$string_format/) {
+	    return translate_col_val $column, $string_format,'sprintf("%f%s", $1*'.($factor).',$3)';
+	}
+	else {
+	    print STDERR "Error: mul_col_val: bad number parameter ($LINE[$column-1]) passed to multiply function.\n";
+	    return -1;
+	}
+    }
+   
+    return 0;
+}
+
+# Swap two columns
+#
+# Given two column numbers, this function swaps the contents of the columns.
+#
+# Returns -1 if error, 0 if not match, 1 if match and changed.
+#
+# Example: swap_columns 3, 4, 4, 'R[0-9]+' ;
+#    if the text in column number 4 is R followed by a number, then
+#    swap columns 3 and 4.
+sub swap_columns {
+    my($column1, $column2, @checklist) = @_;
+    my $rc;
+
+    if (! (check_column_number("swap_columns", $column1, 0, scalar(@LINE)))) {
+	return -1;
+    }
+    if (! (check_column_number("swap_columns", $column2, 0, scalar(@LINE)))) {
+	return -1;
+    }
+    $rc = check_columns (@checklist);
+    
+    if ($rc < 0) {
+	return $rc;
+    }
+    if ($rc) {	    
+	my $temp;
+
+	$temp = $LINE[$column1-1];
+	$LINE[$column1-1]=$LINE[$column2-1];
+	$LINE[$column2-1]=$temp;
+
+	return 1;
+    }
+   
+    return 0;
+}
+
+# Insert a column with the given text in the given position
+#
+# Insert a column in the given position (0 if it's going to be the 
+# first column), with the given value.
+#
+# Returns -1 if error, 0 if not match, 1 if match and changed.
+#
+# Example: insert_column 0, 'new_column_value';
+#    insert a column in the first position. Column value is 'new_column_value'
+sub insert_column {
+    my($column1, $value) = @_;
+
+    if (! (check_column_number("insert_column", $column1, 0, scalar(@LINE)))) {
+	return -1;
+    }
+
+    splice @LINE,$column1,$#LINE-$column1,($value,@LINE[$column1..($#LINE+-1)]);
+
+    return 1;
+}
+
+END { }
+
+1;
diff --git a/utils/tests/Makefile.am b/utils/tests/Makefile.am
index 24ddc26..fdd3664 100644
--- a/utils/tests/Makefile.am
+++ b/utils/tests/Makefile.am
@@ -1,5 +1,5 @@
 ## $Id$
 ##
 
-SUBDIRS = refdes_renum
+SUBDIRS = refdes_renum gxyrs
 
diff --git a/utils/tests/gxyrs/Makefile.am b/utils/tests/gxyrs/Makefile.am
new file mode 100644
index 0000000..aa78a73
--- /dev/null
+++ b/utils/tests/gxyrs/Makefile.am
@@ -0,0 +1,15 @@
+## $Id$
+##
+
+SUBDIRS= inputs outputs
+
+TESTS_ENVIRONMENT= PERL=${PERL} top_srcdir=${top_srcdir}
+
+RUN_TESTS= run_tests.sh
+
+check_SCRIPTS= ${RUN_TESTS}
+
+TESTS= ${RUN_TESTS}
+
+EXTRA_DIST= ${RUN_TESTS} tests.list README.txt
+
diff --git a/utils/tests/gxyrs/README.txt b/utils/tests/gxyrs/README.txt
new file mode 100644
index 0000000..1c325bb
--- /dev/null
+++ b/utils/tests/gxyrs/README.txt
@@ -0,0 +1,12 @@
+# $Id$
+#
+
+This directory contains the testsuite for the "gxyrs" script.
+No modifications to this script are allowed without adding tests here.
+If a bug report is filed, a test must be added to show the bug before
+it is allowed to be fixed.
+
+If you require additional input files, add them in the inputs/ directory.
+Reference output files go in outputs/.  Add the test description to
+tests.list.
+
diff --git a/utils/tests/gxyrs/inputs/Makefile.am b/utils/tests/gxyrs/inputs/Makefile.am
new file mode 100644
index 0000000..e84a892
--- /dev/null
+++ b/utils/tests/gxyrs/inputs/Makefile.am
@@ -0,0 +1,12 @@
+## $Id$
+##
+
+EXTRA_DIST= \
+	do_nothing.pl \
+	pcb_example1.xy \
+	pcb_example2.xy \
+	protel_example1_mil.txt \
+	protel_example1_mm.txt \
+	report1.txt \
+	report2.txt
+
diff --git a/utils/tests/gxyrs/inputs/do_nothing.pl b/utils/tests/gxyrs/inputs/do_nothing.pl
new file mode 100644
index 0000000..915fd43
--- /dev/null
+++ b/utils/tests/gxyrs/inputs/do_nothing.pl
@@ -0,0 +1,3 @@
+
+# Keep the following line at the end of the file
+1;
diff --git a/utils/tests/gxyrs/inputs/pcb_example1.xy b/utils/tests/gxyrs/inputs/pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/inputs/pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/inputs/pcb_example2.xy b/utils/tests/gxyrs/inputs/pcb_example2.xy
new file mode 100644
index 0000000..c1bda42
--- /dev/null
+++ b/utils/tests/gxyrs/inputs/pcb_example2.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+r6,"ACY1000","unknown",3225.00,4275.00,180,top
+r5,"ACY1000","unknown",3225.00,4050.00,180,top
+r8,"ACY1000","unknown",3225.00,3825.00,0,top
+r7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+r4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+r9,"1206","1k",1875.00,3350.00,90,bottom
+r10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+r11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+r2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+r1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+r3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/inputs/protel_example1_mil.txt b/utils/tests/gxyrs/inputs/protel_example1_mil.txt
new file mode 100644
index 0000000..1621d7c
--- /dev/null
+++ b/utils/tests/gxyrs/inputs/protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator Footprint     Mid X      Mid Y      Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4      CONNECTOR-3-1 2000mil    3650mil    0mil  0mil  0mil  0mil  T  90.00    unknown
+R6         ACY1000       3225mil    4275mil    0mil  0mil  0mil  0mil  T  180.00   unknown
+R5         ACY1000       3225mil    4050mil    0mil  0mil  0mil  0mil  T  180.00   unknown
+R8         ACY1000       3225mil    3825mil    0mil  0mil  0mil  0mil  T  0.00     unknown
+R7         ACY1000       3225mil    3600mil    0mil  0mil  0mil  0mil  T  0.00     unknown
+C1         1206          950mil     3775mil    0mil  0mil  0mil  0mil  B  0.00     unknown
+C14        1206          1225mil    3600mil    0mil  0mil  0mil  0mil  B  90.00    unknown
+D6         1206          1125mil    3875mil    0mil  0mil  0mil  0mil  B  180.00   unknown
+C13        1206          1615.95mil 3738.19mil 0mil  0mil  0mil  0mil  B  180.00   unknown
+CONN3      CONNECTOR-4-1 2225mil    3600mil    0mil  0mil  0mil  0mil  T  270.00   unknown
+C12        1206          1438.19mil 3834.05mil 0mil  0mil  0mil  0mil  B  270.00   unknown
+U2         TO220         1342.50mil 4175mil    0mil  0mil  0mil  0mil  T  90.00    unknown
+D7         1206          1775mil    3350mil    0mil  0mil  0mil  0mil  B  270.00   unknown
+D5         1206          1125mil    3775mil    0mil  0mil  0mil  0mil  B  180.00   unknown
+R4         1206          504.14mil  3527.76mil 0mil  0mil  0mil  0mil  B  180.00   unknown
+C15        1206          1225mil    3350mil    0mil  0mil  0mil  0mil  B  90.00    unknown
+U1         TO220         407.50mil  4180mil    0mil  0mil  0mil  0mil  T  90.00    unknown
+R9         1206          1875mil    3350mil    0mil  0mil  0mil  0mil  B  90.00    1k     
+R10        1206          1550mil    3300mil    0mil  0mil  0mil  0mil  B  0.00     1k     
+U3         SO8           1075mil    3525mil    0mil  0mil  0mil  0mil  B  270.00   unknown
+R11        1206          1375mil    3300mil    0mil  0mil  0mil  0mil  B  180.00   10k    
+D2         CONNECTOR-2-1 500mil     3850mil    0mil  0mil  0mil  0mil  T  0.00     unknown
+C2         1206          925mil     3350mil    0mil  0mil  0mil  0mil  B  270.00   unknown
+R2         1206          506.90mil  3751.38mil 0mil  0mil  0mil  0mil  B  180.00   unknown
+CONN1      CONNECTOR-2-1 275mil     3625mil    0mil  0mil  0mil  0mil  T  0.00     unknown
+D4         CONNECTOR-2-1 500mil     3625mil    0mil  0mil  0mil  0mil  T  0.00     unknown
+R1         1206          425mil     3375mil    0mil  0mil  0mil  0mil  B  90.00    unknown
+C11        1206          1336.81mil 3834.05mil 0mil  0mil  0mil  0mil  B  90.00    unknown
+CONN2      CONNECTOR-2-1 750mil     3625mil    0mil  0mil  0mil  0mil  T  0.00     unknown
+S2         CONNECTOR-2-1 750mil     3850mil    0mil  0mil  0mil  0mil  T  180.00   unknown
+S1         CONNECTOR-2-1 275mil     3850mil    0mil  0mil  0mil  0mil  T  0.00     unknown
+D3         CONNECTOR-2-1 750mil     3350mil    0mil  0mil  0mil  0mil  T  0.00     unknown
+U4         SO16          1500mil    3525mil    0mil  0mil  0mil  0mil  B  90.00    unknown
+D1         CONNECTOR-2-1 275mil     3350mil    0mil  0mil  0mil  0mil  T  0.00     unknown
+R3         1206          600mil     3375mil    0mil  0mil  0mil  0mil  B  90.00    unknown
diff --git a/utils/tests/gxyrs/inputs/protel_example1_mm.txt b/utils/tests/gxyrs/inputs/protel_example1_mm.txt
new file mode 100644
index 0000000..725a003
--- /dev/null
+++ b/utils/tests/gxyrs/inputs/protel_example1_mm.txt
@@ -0,0 +1,37 @@
+Designator Footprint     Mid X       Mid Y       Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4      CONNECTOR-3-1 50.8mm      92.71mm     0mm   0mm   0mm   0mm   T  90.00    unknown
+R6         ACY1000       81.915mm    108.585mm   0mm   0mm   0mm   0mm   T  180.00   unknown
+R5         ACY1000       81.915mm    102.87mm    0mm   0mm   0mm   0mm   T  180.00   unknown
+R8         ACY1000       81.915mm    97.155mm    0mm   0mm   0mm   0mm   T  0.00     unknown
+R7         ACY1000       81.915mm    91.44mm     0mm   0mm   0mm   0mm   T  0.00     unknown
+C1         1206          24.13mm     95.885mm    0mm   0mm   0mm   0mm   B  0.00     unknown
+C14        1206          31.115mm    91.44mm     0mm   0mm   0mm   0mm   B  90.00    unknown
+D6         1206          28.575mm    98.425mm    0mm   0mm   0mm   0mm   B  180.00   unknown
+C13        1206          41.04513mm  94.950026mm 0mm   0mm   0mm   0mm   B  180.00   unknown
+CONN3      CONNECTOR-4-1 56.515mm    91.44mm     0mm   0mm   0mm   0mm   T  270.00   unknown
+C12        1206          36.530026mm 97.38487mm  0mm   0mm   0mm   0mm   B  270.00   unknown
+U2         TO220         34.0995mm   106.045mm   0mm   0mm   0mm   0mm   T  90.00    unknown
+D7         1206          45.085mm    85.09mm     0mm   0mm   0mm   0mm   B  270.00   unknown
+D5         1206          28.575mm    95.885mm    0mm   0mm   0mm   0mm   B  180.00   unknown
+R4         1206          12.805156mm 89.605104mm 0mm   0mm   0mm   0mm   B  180.00   unknown
+C15        1206          31.115mm    85.09mm     0mm   0mm   0mm   0mm   B  90.00    unknown
+U1         TO220         10.3505mm   106.172mm   0mm   0mm   0mm   0mm   T  90.00    unknown
+R9         1206          47.625mm    85.09mm     0mm   0mm   0mm   0mm   B  90.00    1k     
+R10        1206          39.37mm     83.82mm     0mm   0mm   0mm   0mm   B  0.00     1k     
+U3         SO8           27.305mm    89.535mm    0mm   0mm   0mm   0mm   B  270.00   unknown
+R11        1206          34.925mm    83.82mm     0mm   0mm   0mm   0mm   B  180.00   10k    
+D2         CONNECTOR-2-1 12.7mm      97.79mm     0mm   0mm   0mm   0mm   T  0.00     unknown
+C2         1206          23.495mm    85.09mm     0mm   0mm   0mm   0mm   B  270.00   unknown
+R2         1206          12.87526mm  95.285052mm 0mm   0mm   0mm   0mm   B  180.00   unknown
+CONN1      CONNECTOR-2-1 6.985mm     92.075mm    0mm   0mm   0mm   0mm   T  0.00     unknown
+D4         CONNECTOR-2-1 12.7mm      92.075mm    0mm   0mm   0mm   0mm   T  0.00     unknown
+R1         1206          10.795mm    85.725mm    0mm   0mm   0mm   0mm   B  90.00    unknown
+C11        1206          33.954974mm 97.38487mm  0mm   0mm   0mm   0mm   B  90.00    unknown
+CONN2      CONNECTOR-2-1 19.05mm     92.075mm    0mm   0mm   0mm   0mm   T  0.00     unknown
+S2         CONNECTOR-2-1 19.05mm     97.79mm     0mm   0mm   0mm   0mm   T  180.00   unknown
+S1         CONNECTOR-2-1 6.985mm     97.79mm     0mm   0mm   0mm   0mm   T  0.00     unknown
+D3         CONNECTOR-2-1 19.05mm     85.09mm     0mm   0mm   0mm   0mm   T  0.00     unknown
+U4         SO16          38.1mm      89.535mm    0mm   0mm   0mm   0mm   B  90.00    unknown
+D1         CONNECTOR-2-1 6.985mm     85.09mm     0mm   0mm   0mm   0mm   T  0.00     unknown
+R3         1206          15.24mm     85.725mm    0mm   0mm   0mm   0mm   B  90.00    unknown
diff --git a/utils/tests/gxyrs/inputs/report1.txt b/utils/tests/gxyrs/inputs/report1.txt
new file mode 100644
index 0000000..ea31f9e
--- /dev/null
+++ b/utils/tests/gxyrs/inputs/report1.txt
@@ -0,0 +1,36 @@
+RefDesignator MountTYPE X       Y       Rot Side     Mirror PartNumber TopCell         Description     
+"CONN4"       "THROUGH" 2000,00 3650,00 90  "TOP"    "NO"   "unknown"  "CONNECTOR-3-1" "No_description"
+"R6"          "THROUGH" 3225,00 4275,00 180 "TOP"    "NO"   "unknown"  "ACY1000"       "No_description"
+"R5"          "THROUGH" 3225,00 4050,00 180 "TOP"    "NO"   "unknown"  "ACY1000"       "No_description"
+"R8"          "THROUGH" 3225,00 3825,00 0   "TOP"    "NO"   "unknown"  "ACY1000"       "No_description"
+"R7"          "THROUGH" 3225,00 3600,00 0   "TOP"    "NO"   "unknown"  "ACY1000"       "No_description"
+"C1"          "SMD"     950,00  3775,00 0   "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"C14"         "SMD"     1225,00 3600,00 90  "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"D6"          "SMD"     1125,00 3875,00 180 "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"C13"         "SMD"     1615,95 3738,19 180 "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"CONN3"       "THROUGH" 2225,00 3600,00 270 "TOP"    "NO"   "unknown"  "CONNECTOR-4-1" "No_description"
+"C12"         "SMD"     1438,19 3834,05 270 "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"U2"          "SMD"     1342,50 4175,00 90  "TOP"    "NO"   "unknown"  "TO220"         "No_description"
+"D7"          "SMD"     1775,00 3350,00 270 "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"D5"          "SMD"     1125,00 3775,00 180 "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"R4"          "SMD"     504,14  3527,76 180 "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"C15"         "SMD"     1225,00 3350,00 90  "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"U1"          "SMD"     407,50  4180,00 90  "TOP"    "NO"   "unknown"  "TO220"         "No_description"
+"R9"          "SMD"     1875,00 3350,00 90  "BOTTOM" "NO"   "1k"       "1206"          "No_description"
+"R10"         "SMD"     1550,00 3300,00 0   "BOTTOM" "NO"   "1k"       "1206"          "No_description"
+"U3"          "SMD"     1075,00 3525,00 270 "BOTTOM" "NO"   "unknown"  "SO8"           "No_description"
+"R11"         "SMD"     1375,00 3300,00 180 "BOTTOM" "NO"   "10k"      "1206"          "No_description"
+"D2"          "THROUGH" 500,00  3850,00 0   "TOP"    "NO"   "unknown"  "CONNECTOR-2-1" "No_description"
+"C2"          "SMD"     925,00  3350,00 270 "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"R2"          "SMD"     506,90  3751,38 180 "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"CONN1"       "THROUGH" 275,00  3625,00 0   "TOP"    "NO"   "unknown"  "CONNECTOR-2-1" "No_description"
+"D4"          "THROUGH" 500,00  3625,00 0   "TOP"    "NO"   "unknown"  "CONNECTOR-2-1" "No_description"
+"R1"          "SMD"     425,00  3375,00 90  "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"C11"         "SMD"     1336,81 3834,05 90  "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"CONN2"       "THROUGH" 750,00  3625,00 0   "TOP"    "NO"   "unknown"  "CONNECTOR-2-1" "No_description"
+"S2"          "THROUGH" 750,00  3850,00 180 "TOP"    "NO"   "unknown"  "CONNECTOR-2-1" "No_description"
+"S1"          "THROUGH" 275,00  3850,00 0   "TOP"    "NO"   "unknown"  "CONNECTOR-2-1" "No_description"
+"D3"          "THROUGH" 750,00  3350,00 0   "TOP"    "NO"   "unknown"  "CONNECTOR-2-1" "No_description"
+"U4"          "SMD"     1500,00 3525,00 90  "BOTTOM" "NO"   "unknown"  "SO16"          "No_description"
+"D1"          "THROUGH" 275,00  3350,00 0   "TOP"    "NO"   "unknown"  "CONNECTOR-2-1" "No_description"
+"R3"          "SMD"     600,00  3375,00 90  "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
diff --git a/utils/tests/gxyrs/inputs/report2.txt b/utils/tests/gxyrs/inputs/report2.txt
new file mode 100644
index 0000000..ad33c97
--- /dev/null
+++ b/utils/tests/gxyrs/inputs/report2.txt
@@ -0,0 +1,36 @@
+RefDesignator MountTYPE X       Y       Rot Side     Mirror PartNumber TopCell         Description     
+"CONN4"       "THROUGH" 2000.00 3650.00 90  "TOP"    "NO"   "unknown"  "CONNECTOR-3-1" "No_description"
+"R6"          "THROUGH" 3225.00 4275.00 180 "TOP"    "NO"   "unknown"  "ACY1000"       "No_description"
+"R5"          "THROUGH" 3225.00 4050.00 180 "TOP"    "NO"   "unknown"  "ACY1000"       "No_description"
+"R8"          "THROUGH" 3225.00 3825.00 0   "TOP"    "NO"   "unknown"  "ACY1000"       "No_description"
+"R7"          "THROUGH" 3225.00 3600.00 0   "TOP"    "NO"   "unknown"  "ACY1000"       "No_description"
+"C1"          "SMD"     950.00  3775.00 0   "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"C14"         "SMD"     1225.00 3600.00 90  "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"D6"          "SMD"     1125.00 3875.00 180 "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"C13"         "SMD"     1615.95 3738.19 180 "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"CONN3"       "THROUGH" 2225.00 3600.00 270 "TOP"    "NO"   "unknown"  "CONNECTOR-4-1" "No_description"
+"C12"         "SMD"     1438.19 3834.05 270 "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"U2"          "SMD"     1342.50 4175.00 90  "TOP"    "NO"   "unknown"  "TO220"         "No_description"
+"D7"          "SMD"     1775.00 3350.00 270 "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"D5"          "SMD"     1125.00 3775.00 180 "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"R4"          "SMD"     504.14  3527.76 180 "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"C15"         "SMD"     1225.00 3350.00 90  "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"U1"          "SMD"     407.50  4180.00 90  "TOP"    "NO"   "unknown"  "TO220"         "No_description"
+"R9"          "SMD"     1875.00 3350.00 90  "BOTTOM" "NO"   "1k"       "1206"          "No_description"
+"R10"         "SMD"     1550.00 3300.00 0   "BOTTOM" "NO"   "1k"       "1206"          "No_description"
+"U3"          "SMD"     1075.00 3525.00 270 "BOTTOM" "NO"   "unknown"  "SO8"           "No_description"
+"R11"         "SMD"     1375.00 3300.00 180 "BOTTOM" "NO"   "10k"      "1206"          "No_description"
+"D2"          "THROUGH" 500.00  3850.00 0   "TOP"    "NO"   "unknown"  "CONNECTOR-2-1" "No_description"
+"C2"          "SMD"     925.00  3350.00 270 "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"R2"          "SMD"     506.90  3751.38 180 "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"CONN1"       "THROUGH" 275.00  3625.00 0   "TOP"    "NO"   "unknown"  "CONNECTOR-2-1" "No_description"
+"D4"          "THROUGH" 500.00  3625.00 0   "TOP"    "NO"   "unknown"  "CONNECTOR-2-1" "No_description"
+"R1"          "SMD"     425.00  3375.00 90  "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"C11"         "SMD"     1336.81 3834.05 90  "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
+"CONN2"       "THROUGH" 750.00  3625.00 0   "TOP"    "NO"   "unknown"  "CONNECTOR-2-1" "No_description"
+"S2"          "THROUGH" 750.00  3850.00 180 "TOP"    "NO"   "unknown"  "CONNECTOR-2-1" "No_description"
+"S1"          "THROUGH" 275.00  3850.00 0   "TOP"    "NO"   "unknown"  "CONNECTOR-2-1" "No_description"
+"D3"          "THROUGH" 750.00  3350.00 0   "TOP"    "NO"   "unknown"  "CONNECTOR-2-1" "No_description"
+"U4"          "SMD"     1500.00 3525.00 90  "BOTTOM" "NO"   "unknown"  "SO16"          "No_description"
+"D1"          "THROUGH" 275.00  3350.00 0   "TOP"    "NO"   "unknown"  "CONNECTOR-2-1" "No_description"
+"R3"          "SMD"     600.00  3375.00 90  "BOTTOM" "NO"   "unknown"  "1206"          "No_description"
diff --git a/utils/tests/gxyrs/outputs/Makefile.am b/utils/tests/gxyrs/outputs/Makefile.am
new file mode 100644
index 0000000..5884d44
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/Makefile.am
@@ -0,0 +1,248 @@
+## $Id$
+##
+
+# dir | sort | awk '{printf("\t%s \\\n", $0)}' |grep -v Makefile >> Makefile.am
+
+EXTRA_DIST= \
+	change_units_already_done_no_title-protel_example1_mil.txt \
+	change_units_already_done_no_title-protel_example1_mil.txt-error \
+	change_units_already_done-protel_example1_mil.txt \
+	change_units_already_done-protel_example1_mil.txt-error \
+	change_units_bad_column_number1-pcb_example1.xy \
+	change_units_bad_column_number1-pcb_example1.xy-error \
+	change_units_bad_column_number2-pcb_example1.xy \
+	change_units_bad_column_number2-pcb_example1.xy-error \
+	change_units_column_number_too_high-pcb_example1.xy \
+	change_units_column_number_too_high-pcb_example1.xy-error \
+	change_units_negative_column_number-pcb_example1.xy \
+	change_units_negative_column_number-pcb_example1.xy-error \
+	change_units_no_units-pcb_example1.xy \
+	change_units_no_units-pcb_example1.xy-error \
+	change_units_to_mil_2cols-protel_example1_mm.txt \
+	change_units_to_mil_2cols-protel_example1_mm.txt-error \
+	change_units_to_mil-protel_example1_mm.txt \
+	change_units_to_mil-protel_example1_mm.txt-error \
+	change_units_to_mm_2cols-protel_example1_mil.txt \
+	change_units_to_mm_2cols-protel_example1_mil.txt-error \
+	change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt \
+	change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt-error \
+	change_units_to_mm_6col_tabulated-protel_example1_mil.txt \
+	change_units_to_mm_6col_tabulated-protel_example1_mil.txt-error \
+	change_units_to_mm_no_title-protel_example1_mil.txt \
+	change_units_to_mm_no_title-protel_example1_mil.txt-error \
+	change_units_to_mm-protel_example1_mil.txt \
+	change_units_to_mm-protel_example1_mil.txt-error \
+	change_units_units_not_supported-protel_example1_mil.txt \
+	change_units_units_not_supported-protel_example1_mil.txt-error \
+	del_case_insensitive1-pcb_example1.xy \
+	del_case_insensitive1-pcb_example1.xy-error \
+	del_case_insensitive2-pcb_example2.xy \
+	del_case_insensitive2-pcb_example2.xy-error \
+	del_case_sensitive1-pcb_example1.xy \
+	del_case_sensitive1-pcb_example1.xy-error \
+	del_case_sensitive2-pcb_example2.xy \
+	del_case_sensitive2-pcb_example2.xy-error \
+	del_case_sensitive3-pcb_example1.xy \
+	del_case_sensitive3-pcb_example1.xy-error \
+	del_case_sensitive4-pcb_example2.xy \
+	del_case_sensitive4-pcb_example2.xy-error \
+	del_check_columns_no_match-pcb_example1.xy \
+	del_check_columns_no_match-pcb_example1.xy-error \
+	del_check_columns_return_minus1-pcb_example1.xy \
+	del_check_columns_return_minus1-pcb_example1.xy-error \
+	do_nothing-pcb_example1.xy \
+	do_nothing-pcb_example1.xy-error \
+	do_nothing_tabulated-pcb_example1.xy \
+	do_nothing_tabulated-pcb_example1.xy-error \
+	footprint_pcb1-pcb_example1.xy \
+	footprint_pcb1-pcb_example1.xy-error \
+	footprint_protel1-protel_example1_mil.txt \
+	footprint_protel1-protel_example1_mil.txt-error \
+	footprint_report1-report1.txt \
+	footprint_report1-report1.txt-error \
+	insert_column_bad_column_number1-pcb_example1.xy \
+	insert_column_bad_column_number1-pcb_example1.xy-error \
+	insert_column_bad_column_number2-pcb_example1.xy \
+	insert_column_bad_column_number2-pcb_example1.xy-error \
+	insert_column_column_number_too_high-pcb_example1.xy \
+	insert_column_column_number_too_high-pcb_example1.xy-error \
+	insert_column_first_pos-pcb_example1.xy \
+	insert_column_first_pos-pcb_example1.xy-error \
+	insert_column_negative_column_number-pcb_example1.xy \
+	insert_column_negative_column_number-pcb_example1.xy-error \
+	insert_column_second_pos-pcb_example1.xy \
+	insert_column_second_pos-pcb_example1.xy-error \
+	match_column_insensitive1-pcb_example2.xy \
+	match_column_insensitive1-pcb_example2.xy-error \
+	match_column_insensitive2-pcb_example2.xy \
+	match_column_insensitive2-pcb_example2.xy-error \
+	match_column_insensitive3-pcb_example1.xy \
+	match_column_insensitive3-pcb_example1.xy-error \
+	match_column_insensitive4-pcb_example1.xy \
+	match_column_insensitive4-pcb_example1.xy-error \
+	match_column_is_negative-pcb_example1.xy \
+	match_column_is_negative-pcb_example1.xy-error \
+	match_column_is_not_number2-pcb_example1.xy \
+	match_column_is_not_number2-pcb_example1.xy-error \
+	match_column_is_not_number-pcb_example1.xy \
+	match_column_is_not_number-pcb_example1.xy-error \
+	match_column_is_real-pcb_example1.xy \
+	match_column_is_real-pcb_example1.xy-error \
+	match_column_is_too_high-pcb_example1.xy \
+	match_column_is_too_high-pcb_example1.xy-error \
+	match_column_sensitive1-pcb_example1.xy \
+	match_column_sensitive1-pcb_example1.xy-error \
+	match_column_sensitive2-pcb_example1.xy \
+	match_column_sensitive2-pcb_example1.xy-error \
+	match_column_sensitive3-pcb_example2.xy \
+	match_column_sensitive3-pcb_example2.xy-error \
+	match_column_sensitive4-pcb_example2.xy \
+	match_column_sensitive4-pcb_example2.xy-error \
+	match_no_args-pcb_example1.xy \
+	match_no_args-pcb_example1.xy-error \
+	multiply_bad_column_number1-pcb_example1.xy \
+	multiply_bad_column_number1-pcb_example1.xy-error \
+	multiply_bad_column_number2-pcb_example1.xy \
+	multiply_bad_column_number2-pcb_example1.xy-error \
+	multiply_column_number_too_high-pcb_example1.xy \
+	multiply_column_number_too_high-pcb_example1.xy-error \
+	multiply_integer_factor-pcb_example1.xy \
+	multiply_integer_factor-pcb_example1.xy-error \
+	multiply_negative_column_number-pcb_example1.xy \
+	multiply_negative_column_number-pcb_example1.xy-error \
+	multiply_negative_integer_factor-pcb_example1.xy \
+	multiply_negative_integer_factor-pcb_example1.xy-error \
+	multiply_negative_real_factor-pcb_example1.xy \
+	multiply_negative_real_factor-pcb_example1.xy-error \
+	multiply_real_factor-pcb_example1.xy \
+	multiply_real_factor-pcb_example1.xy-error \
+	multiply_with_checklist-pcb_example1.xy \
+	multiply_with_checklist-pcb_example1.xy-error \
+	offset_bad_column_number1-pcb_example1.xy \
+	offset_bad_column_number1-pcb_example1.xy-error \
+	offset_bad_column_number2-pcb_example1.xy \
+	offset_bad_column_number2-pcb_example1.xy-error \
+	offset_check_columns_match-pcb_example1.xy \
+	offset_check_columns_match-pcb_example1.xy-error \
+	offset_check_columns_no_match-pcb_example1.xy \
+	offset_check_columns_no_match-pcb_example1.xy-error \
+	offset_check_columns_return_minus1-pcb_example1.xy \
+	offset_check_columns_return_minus1-pcb_example1.xy-error \
+	offset_column_number_too_high-pcb_example1.xy \
+	offset_column_number_too_high-pcb_example1.xy-error \
+	offset_match_negative_offset-pcb_example1.xy \
+	offset_match_negative_offset-pcb_example1.xy-error \
+	offset_match_negative_real_offset-pcb_example1.xy \
+	offset_match_negative_real_offset-pcb_example1.xy-error \
+	offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy \
+	offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy-error \
+	offset_match_real_offset-pcb_example1.xy \
+	offset_match_real_offset-pcb_example1.xy-error \
+	offset_negative_column_number-pcb_example1.xy \
+	offset_negative_column_number-pcb_example1.xy-error \
+	output_delimiter-pcb_example1.xy \
+	output_delimiter-pcb_example1.xy-error \
+	panelize_bad_ref_column_number1-pcb_example1.xy \
+	panelize_bad_ref_column_number1-pcb_example1.xy-error \
+	panelize_bad_ref_column_number2-pcb_example1.xy \
+	panelize_bad_ref_column_number2-pcb_example1.xy-error \
+	panelize_bad_x_column_number1-pcb_example1.xy \
+	panelize_bad_x_column_number1-pcb_example1.xy-error \
+	panelize_bad_x_column_number2-pcb_example1.xy \
+	panelize_bad_x_column_number2-pcb_example1.xy-error \
+	panelize_bad_y_column_number1-pcb_example1.xy \
+	panelize_bad_y_column_number1-pcb_example1.xy-error \
+	panelize_bad_y_column_number2-pcb_example1.xy \
+	panelize_bad_y_column_number2-pcb_example1.xy-error \
+	panelize_negative_ref_column_number-pcb_example1.xy \
+	panelize_negative_ref_column_number-pcb_example1.xy-error \
+	panelize_negative_x_column_number-pcb_example1.xy \
+	panelize_negative_x_column_number-pcb_example1.xy-error \
+	panelize_negative_y_column_number-pcb_example1.xy \
+	panelize_negative_y_column_number-pcb_example1.xy-error \
+	panelize_ref_column_number_too_high-pcb_example1.xy \
+	panelize_ref_column_number_too_high-pcb_example1.xy-error \
+	panelize_tabulate-pcb_example1.xy \
+	panelize_tabulate-pcb_example1.xy-error \
+	panelize_x_column_number_too_high-pcb_example1.xy \
+	panelize_x_column_number_too_high-pcb_example1.xy-error \
+	panelize_y_column_number_too_high-pcb_example1.xy \
+	panelize_y_column_number_too_high-pcb_example1.xy-error \
+	process_comment-pcb_example1.xy \
+	process_comment-pcb_example1.xy-error \
+	rotate_bad_column_number1-pcb_example1.xy \
+	rotate_bad_column_number1-pcb_example1.xy-error \
+	rotate_bad_column_number2-pcb_example1.xy \
+	rotate_bad_column_number2-pcb_example1.xy-error \
+	rotate_case_insensitive-pcb_example1.xy \
+	rotate_case_insensitive-pcb_example1.xy-error \
+	rotate_case_sensitive-pcb_example1.xy \
+	rotate_case_sensitive-pcb_example1.xy-error \
+	rotate_check_columns_no_match-pcb_example1.xy \
+	rotate_check_columns_no_match-pcb_example1.xy-error \
+	rotate_check_columns_return_minus1-pcb_example1.xy \
+	rotate_check_columns_return_minus1-pcb_example1.xy-error \
+	rotate_column_number_too_high-pcb_example1.xy \
+	rotate_column_number_too_high-pcb_example1.xy-error \
+	rotate_negative_angle-pcb_example1.xy \
+	rotate_negative_angle-pcb_example1.xy-error \
+	rotate_negative_column_number-pcb_example1.xy \
+	rotate_negative_column_number-pcb_example1.xy-error \
+	rotate_negative_real_angle-pcb_example1.xy \
+	rotate_negative_real_angle-pcb_example1.xy-error \
+	rotate_real_angle-pcb_example1.xy \
+	rotate_real_angle-pcb_example1.xy-error \
+	subst_bad_column_number1-pcb_example1.xy \
+	subst_bad_column_number1-pcb_example1.xy-error \
+	subst_bad_column_number2-pcb_example1.xy \
+	subst_bad_column_number2-pcb_example1.xy-error \
+	subst_check_columns_match-pcb_example1.xy \
+	subst_check_columns_match-pcb_example1.xy-error \
+	subst_check_columns_no_match-pcb_example1.xy \
+	subst_check_columns_no_match-pcb_example1.xy-error \
+	subst_check_columns_return_minus1-pcb_example1.xy \
+	subst_check_columns_return_minus1-pcb_example1.xy-error \
+	subst_column_number_too_high-pcb_example1.xy \
+	subst_column_number_too_high-pcb_example1.xy-error \
+	subst_negative_column_number-pcb_example1.xy \
+	subst_negative_column_number-pcb_example1.xy-error \
+	swap_columns_bad_column1_number1-pcb_example1.xy \
+	swap_columns_bad_column1_number1-pcb_example1.xy-error \
+	swap_columns_bad_column1_number2-pcb_example1.xy \
+	swap_columns_bad_column1_number2-pcb_example1.xy-error \
+	swap_columns_bad_column2_number1-pcb_example1.xy \
+	swap_columns_bad_column2_number1-pcb_example1.xy-error \
+	swap_columns_bad_column2_number2-pcb_example1.xy \
+	swap_columns_bad_column2_number2-pcb_example1.xy-error \
+	swap_columns_column1_number_too_high-pcb_example1.xy \
+	swap_columns_column1_number_too_high-pcb_example1.xy-error \
+	swap_columns_column2_number_too_high-pcb_example1.xy \
+	swap_columns_column2_number_too_high-pcb_example1.xy-error \
+	swap_columns_negative_column1_number-pcb_example1.xy \
+	swap_columns_negative_column1_number-pcb_example1.xy-error \
+	swap_columns_negative_column2_number-pcb_example1.xy \
+	swap_columns_negative_column2_number-pcb_example1.xy-error \
+	swap_columns_no_matchlist-pcb_example1.xy \
+	swap_columns_no_matchlist-pcb_example1.xy-error \
+	swap_columns_no_match-pcb_example1.xy \
+	swap_columns_no_match-pcb_example1.xy-error \
+	swap_columns_with_match-pcb_example1.xy \
+	swap_columns_with_match-pcb_example1.xy-error \
+	translate_bad_column_number1-pcb_example1.xy \
+	translate_bad_column_number1-pcb_example1.xy-error \
+	translate_bad_column_number2-pcb_example1.xy \
+	translate_bad_column_number2-pcb_example1.xy-error \
+	translate_column_change_all_value_plus_k-pcb_example1.xy \
+	translate_column_change_all_value_plus_k-pcb_example1.xy-error \
+	translate_column_change_R10_value_case_insensitive-pcb_example1.xy \
+	translate_column_change_R10_value_case_insensitive-pcb_example1.xy-error \
+	translate_column_change_R10_value-pcb_example1.xy \
+	translate_column_change_R10_value-pcb_example1.xy-error \
+	translate_column_no_match1-pcb_example1.xy \
+	translate_column_no_match1-pcb_example1.xy-error \
+	translate_column_no_match2-pcb_example1.xy \
+	translate_column_no_match2-pcb_example1.xy-error \
+	translate_column_number_too_high-pcb_example1.xy \
+	translate_column_number_too_high-pcb_example1.xy-error \
+	translate_negative_column_number-pcb_example1.xy \
+	translate_negative_column_number-pcb_example1.xy-error
diff --git a/utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt b/utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt
new file mode 100644
index 0000000..54b8075
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 2000mil 3650mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R6 ACY1000 3225mil 4275mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R5 ACY1000 3225mil 4050mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R8 ACY1000 3225mil 3825mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R7 ACY1000 3225mil 3600mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C1 1206 950mil 3775mil 0mil 0mil 0mil 0mil B 0.00 unknown
+C14 1206 1225mil 3600mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D6 1206 1125mil 3875mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C13 1206 1615.95mil 3738.19mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN3 CONNECTOR-4-1 2225mil 3600mil 0mil 0mil 0mil 0mil T 270.00 unknown
+C12 1206 1438.19mil 3834.05mil 0mil 0mil 0mil 0mil B 270.00 unknown
+U2 TO220 1342.50mil 4175mil 0mil 0mil 0mil 0mil T 90.00 unknown
+D7 1206 1775mil 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+D5 1206 1125mil 3775mil 0mil 0mil 0mil 0mil B 180.00 unknown
+R4 1206 504.14mil 3527.76mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C15 1206 1225mil 3350mil 0mil 0mil 0mil 0mil B 90.00 unknown
+U1 TO220 407.50mil 4180mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R9 1206 1875mil 3350mil 0mil 0mil 0mil 0mil B 90.00 1k
+R10 1206 1550mil 3300mil 0mil 0mil 0mil 0mil B 0.00 1k
+U3 SO8 1075mil 3525mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R11 1206 1375mil 3300mil 0mil 0mil 0mil 0mil B 180.00 10k
+D2 CONNECTOR-2-1 500mil 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C2 1206 925mil 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R2 1206 506.90mil 3751.38mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN1 CONNECTOR-2-1 275mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D4 CONNECTOR-2-1 500mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R1 1206 425mil 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
+C11 1206 1336.81mil 3834.05mil 0mil 0mil 0mil 0mil B 90.00 unknown
+CONN2 CONNECTOR-2-1 750mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+S2 CONNECTOR-2-1 750mil 3850mil 0mil 0mil 0mil 0mil T 180.00 unknown
+S1 CONNECTOR-2-1 275mil 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D3 CONNECTOR-2-1 750mil 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+U4 SO16 1500mil 3525mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D1 CONNECTOR-2-1 275mil 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R3 1206 600mil 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt-error b/utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt-error
new file mode 100644
index 0000000..08dd3df
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_already_done-protel_example1_mil.txt-error
@@ -0,0 +1,4 @@
+Warning: change_text_units: Text Mid X has no numbers!
+Warning at column 3
+Warning: change_text_units: Text Mid X has no numbers!
+Warning at column 3
diff --git a/utils/tests/gxyrs/outputs/change_units_already_done_no_title-protel_example1_mil.txt b/utils/tests/gxyrs/outputs/change_units_already_done_no_title-protel_example1_mil.txt
new file mode 100644
index 0000000..54b8075
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_already_done_no_title-protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 2000mil 3650mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R6 ACY1000 3225mil 4275mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R5 ACY1000 3225mil 4050mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R8 ACY1000 3225mil 3825mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R7 ACY1000 3225mil 3600mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C1 1206 950mil 3775mil 0mil 0mil 0mil 0mil B 0.00 unknown
+C14 1206 1225mil 3600mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D6 1206 1125mil 3875mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C13 1206 1615.95mil 3738.19mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN3 CONNECTOR-4-1 2225mil 3600mil 0mil 0mil 0mil 0mil T 270.00 unknown
+C12 1206 1438.19mil 3834.05mil 0mil 0mil 0mil 0mil B 270.00 unknown
+U2 TO220 1342.50mil 4175mil 0mil 0mil 0mil 0mil T 90.00 unknown
+D7 1206 1775mil 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+D5 1206 1125mil 3775mil 0mil 0mil 0mil 0mil B 180.00 unknown
+R4 1206 504.14mil 3527.76mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C15 1206 1225mil 3350mil 0mil 0mil 0mil 0mil B 90.00 unknown
+U1 TO220 407.50mil 4180mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R9 1206 1875mil 3350mil 0mil 0mil 0mil 0mil B 90.00 1k
+R10 1206 1550mil 3300mil 0mil 0mil 0mil 0mil B 0.00 1k
+U3 SO8 1075mil 3525mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R11 1206 1375mil 3300mil 0mil 0mil 0mil 0mil B 180.00 10k
+D2 CONNECTOR-2-1 500mil 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C2 1206 925mil 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R2 1206 506.90mil 3751.38mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN1 CONNECTOR-2-1 275mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D4 CONNECTOR-2-1 500mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R1 1206 425mil 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
+C11 1206 1336.81mil 3834.05mil 0mil 0mil 0mil 0mil B 90.00 unknown
+CONN2 CONNECTOR-2-1 750mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+S2 CONNECTOR-2-1 750mil 3850mil 0mil 0mil 0mil 0mil T 180.00 unknown
+S1 CONNECTOR-2-1 275mil 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D3 CONNECTOR-2-1 750mil 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+U4 SO16 1500mil 3525mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D1 CONNECTOR-2-1 275mil 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R3 1206 600mil 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_already_done_no_title-protel_example1_mil.txt-error b/utils/tests/gxyrs/outputs/change_units_already_done_no_title-protel_example1_mil.txt-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..5192ce9
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_bad_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
+Error: change_col_units: wrong column argument: 4d.
diff --git a/utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..ae540a9
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_bad_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
+Error: change_col_units: wrong column argument: d4.
diff --git a/utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..1de09fb
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
+Error: change_col_units: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..f894d41
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_negative_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
+Error: change_col_units: wrong column argument: -4.
diff --git a/utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy b/utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy-error
new file mode 100644
index 0000000..f2a1cf3
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_no_units-pcb_example1.xy-error
@@ -0,0 +1,140 @@
+Warning: change_text_units: Text 2000.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 3225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 3225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 3225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 3225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 950.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1125.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1615.95 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 2225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1438.19 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1342.50 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1775.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1125.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 504.14 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 407.50 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1875.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1550.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1075.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1375.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 500.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 925.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 506.90 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 275.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 500.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 425.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1336.81 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 750.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 750.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 275.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 750.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1500.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 275.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 600.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 2000.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 3225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 3225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 3225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 3225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 950.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1125.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1615.95 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 2225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1438.19 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1342.50 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1775.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1125.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 504.14 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1225.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 407.50 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1875.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1550.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1075.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1375.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 500.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 925.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 506.90 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 275.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 500.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 425.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1336.81 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 750.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 750.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 275.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 750.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 1500.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 275.00 has no units. Leaving it as is.
+Warning at column 4
+Warning: change_text_units: Text 600.00 has no units. Leaving it as is.
+Warning at column 4
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mil-protel_example1_mm.txt b/utils/tests/gxyrs/outputs/change_units_to_mil-protel_example1_mm.txt
new file mode 100644
index 0000000..b88c61f
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_to_mil-protel_example1_mm.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 2000mil 92.71mm 0mm 0mm 0mm 0mm T 90.00 unknown
+R6 ACY1000 3225mil 108.585mm 0mm 0mm 0mm 0mm T 180.00 unknown
+R5 ACY1000 3225mil 102.87mm 0mm 0mm 0mm 0mm T 180.00 unknown
+R8 ACY1000 3225mil 97.155mm 0mm 0mm 0mm 0mm T 0.00 unknown
+R7 ACY1000 3225mil 91.44mm 0mm 0mm 0mm 0mm T 0.00 unknown
+C1 1206 950mil 95.885mm 0mm 0mm 0mm 0mm B 0.00 unknown
+C14 1206 1225mil 91.44mm 0mm 0mm 0mm 0mm B 90.00 unknown
+D6 1206 1125mil 98.425mm 0mm 0mm 0mm 0mm B 180.00 unknown
+C13 1206 1615.95mil 94.950026mm 0mm 0mm 0mm 0mm B 180.00 unknown
+CONN3 CONNECTOR-4-1 2225mil 91.44mm 0mm 0mm 0mm 0mm T 270.00 unknown
+C12 1206 1438.19mil 97.38487mm 0mm 0mm 0mm 0mm B 270.00 unknown
+U2 TO220 1342.5mil 106.045mm 0mm 0mm 0mm 0mm T 90.00 unknown
+D7 1206 1775mil 85.09mm 0mm 0mm 0mm 0mm B 270.00 unknown
+D5 1206 1125mil 95.885mm 0mm 0mm 0mm 0mm B 180.00 unknown
+R4 1206 504.14mil 89.605104mm 0mm 0mm 0mm 0mm B 180.00 unknown
+C15 1206 1225mil 85.09mm 0mm 0mm 0mm 0mm B 90.00 unknown
+U1 TO220 407.5mil 106.172mm 0mm 0mm 0mm 0mm T 90.00 unknown
+R9 1206 1875mil 85.09mm 0mm 0mm 0mm 0mm B 90.00 1k
+R10 1206 1550mil 83.82mm 0mm 0mm 0mm 0mm B 0.00 1k
+U3 SO8 1075mil 89.535mm 0mm 0mm 0mm 0mm B 270.00 unknown
+R11 1206 1375mil 83.82mm 0mm 0mm 0mm 0mm B 180.00 10k
+D2 CONNECTOR-2-1 500mil 97.79mm 0mm 0mm 0mm 0mm T 0.00 unknown
+C2 1206 925mil 85.09mm 0mm 0mm 0mm 0mm B 270.00 unknown
+R2 1206 506.9mil 95.285052mm 0mm 0mm 0mm 0mm B 180.00 unknown
+CONN1 CONNECTOR-2-1 275mil 92.075mm 0mm 0mm 0mm 0mm T 0.00 unknown
+D4 CONNECTOR-2-1 500mil 92.075mm 0mm 0mm 0mm 0mm T 0.00 unknown
+R1 1206 425mil 85.725mm 0mm 0mm 0mm 0mm B 90.00 unknown
+C11 1206 1336.81mil 97.38487mm 0mm 0mm 0mm 0mm B 90.00 unknown
+CONN2 CONNECTOR-2-1 750mil 92.075mm 0mm 0mm 0mm 0mm T 0.00 unknown
+S2 CONNECTOR-2-1 750mil 97.79mm 0mm 0mm 0mm 0mm T 180.00 unknown
+S1 CONNECTOR-2-1 275mil 97.79mm 0mm 0mm 0mm 0mm T 0.00 unknown
+D3 CONNECTOR-2-1 750mil 85.09mm 0mm 0mm 0mm 0mm T 0.00 unknown
+U4 SO16 1500mil 89.535mm 0mm 0mm 0mm 0mm B 90.00 unknown
+D1 CONNECTOR-2-1 275mil 85.09mm 0mm 0mm 0mm 0mm T 0.00 unknown
+R3 1206 600mil 85.725mm 0mm 0mm 0mm 0mm B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mil-protel_example1_mm.txt-error b/utils/tests/gxyrs/outputs/change_units_to_mil-protel_example1_mm.txt-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mil_2cols-protel_example1_mm.txt b/utils/tests/gxyrs/outputs/change_units_to_mil_2cols-protel_example1_mm.txt
new file mode 100644
index 0000000..fd3c5ad
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_to_mil_2cols-protel_example1_mm.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 2000mil 3650mil 0mm 0mm 0mm 0mm T 90.00 unknown
+R6 ACY1000 3225mil 4275mil 0mm 0mm 0mm 0mm T 180.00 unknown
+R5 ACY1000 3225mil 4050mil 0mm 0mm 0mm 0mm T 180.00 unknown
+R8 ACY1000 3225mil 3825mil 0mm 0mm 0mm 0mm T 0.00 unknown
+R7 ACY1000 3225mil 3600mil 0mm 0mm 0mm 0mm T 0.00 unknown
+C1 1206 950mil 3775mil 0mm 0mm 0mm 0mm B 0.00 unknown
+C14 1206 1225mil 3600mil 0mm 0mm 0mm 0mm B 90.00 unknown
+D6 1206 1125mil 3875mil 0mm 0mm 0mm 0mm B 180.00 unknown
+C13 1206 1615.95mil 3738.19mil 0mm 0mm 0mm 0mm B 180.00 unknown
+CONN3 CONNECTOR-4-1 2225mil 3600mil 0mm 0mm 0mm 0mm T 270.00 unknown
+C12 1206 1438.19mil 3834.05mil 0mm 0mm 0mm 0mm B 270.00 unknown
+U2 TO220 1342.5mil 4175mil 0mm 0mm 0mm 0mm T 90.00 unknown
+D7 1206 1775mil 3350mil 0mm 0mm 0mm 0mm B 270.00 unknown
+D5 1206 1125mil 3775mil 0mm 0mm 0mm 0mm B 180.00 unknown
+R4 1206 504.14mil 3527.76mil 0mm 0mm 0mm 0mm B 180.00 unknown
+C15 1206 1225mil 3350mil 0mm 0mm 0mm 0mm B 90.00 unknown
+U1 TO220 407.5mil 4180mil 0mm 0mm 0mm 0mm T 90.00 unknown
+R9 1206 1875mil 3350mil 0mm 0mm 0mm 0mm B 90.00 1k
+R10 1206 1550mil 3300mil 0mm 0mm 0mm 0mm B 0.00 1k
+U3 SO8 1075mil 3525mil 0mm 0mm 0mm 0mm B 270.00 unknown
+R11 1206 1375mil 3300mil 0mm 0mm 0mm 0mm B 180.00 10k
+D2 CONNECTOR-2-1 500mil 3850mil 0mm 0mm 0mm 0mm T 0.00 unknown
+C2 1206 925mil 3350mil 0mm 0mm 0mm 0mm B 270.00 unknown
+R2 1206 506.9mil 3751.38mil 0mm 0mm 0mm 0mm B 180.00 unknown
+CONN1 CONNECTOR-2-1 275mil 3625mil 0mm 0mm 0mm 0mm T 0.00 unknown
+D4 CONNECTOR-2-1 500mil 3625mil 0mm 0mm 0mm 0mm T 0.00 unknown
+R1 1206 425mil 3375mil 0mm 0mm 0mm 0mm B 90.00 unknown
+C11 1206 1336.81mil 3834.05mil 0mm 0mm 0mm 0mm B 90.00 unknown
+CONN2 CONNECTOR-2-1 750mil 3625mil 0mm 0mm 0mm 0mm T 0.00 unknown
+S2 CONNECTOR-2-1 750mil 3850mil 0mm 0mm 0mm 0mm T 180.00 unknown
+S1 CONNECTOR-2-1 275mil 3850mil 0mm 0mm 0mm 0mm T 0.00 unknown
+D3 CONNECTOR-2-1 750mil 3350mil 0mm 0mm 0mm 0mm T 0.00 unknown
+U4 SO16 1500mil 3525mil 0mm 0mm 0mm 0mm B 90.00 unknown
+D1 CONNECTOR-2-1 275mil 3350mil 0mm 0mm 0mm 0mm T 0.00 unknown
+R3 1206 600mil 3375mil 0mm 0mm 0mm 0mm B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mil_2cols-protel_example1_mm.txt-error b/utils/tests/gxyrs/outputs/change_units_to_mil_2cols-protel_example1_mm.txt-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt b/utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt
new file mode 100644
index 0000000..4368356
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 50.8mm 3650mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R6 ACY1000 81.915mm 4275mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R5 ACY1000 81.915mm 4050mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R8 ACY1000 81.915mm 3825mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R7 ACY1000 81.915mm 3600mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C1 1206 24.13mm 3775mil 0mil 0mil 0mil 0mil B 0.00 unknown
+C14 1206 31.115mm 3600mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D6 1206 28.575mm 3875mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C13 1206 41.04513mm 3738.19mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN3 CONNECTOR-4-1 56.515mm 3600mil 0mil 0mil 0mil 0mil T 270.00 unknown
+C12 1206 36.530026mm 3834.05mil 0mil 0mil 0mil 0mil B 270.00 unknown
+U2 TO220 34.0995mm 4175mil 0mil 0mil 0mil 0mil T 90.00 unknown
+D7 1206 45.085mm 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+D5 1206 28.575mm 3775mil 0mil 0mil 0mil 0mil B 180.00 unknown
+R4 1206 12.805156mm 3527.76mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C15 1206 31.115mm 3350mil 0mil 0mil 0mil 0mil B 90.00 unknown
+U1 TO220 10.3505mm 4180mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R9 1206 47.625mm 3350mil 0mil 0mil 0mil 0mil B 90.00 1k
+R10 1206 39.37mm 3300mil 0mil 0mil 0mil 0mil B 0.00 1k
+U3 SO8 27.305mm 3525mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R11 1206 34.925mm 3300mil 0mil 0mil 0mil 0mil B 180.00 10k
+D2 CONNECTOR-2-1 12.7mm 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C2 1206 23.495mm 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R2 1206 12.87526mm 3751.38mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN1 CONNECTOR-2-1 6.985mm 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D4 CONNECTOR-2-1 12.7mm 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R1 1206 10.795mm 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
+C11 1206 33.954974mm 3834.05mil 0mil 0mil 0mil 0mil B 90.00 unknown
+CONN2 CONNECTOR-2-1 19.05mm 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+S2 CONNECTOR-2-1 19.05mm 3850mil 0mil 0mil 0mil 0mil T 180.00 unknown
+S1 CONNECTOR-2-1 6.985mm 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D3 CONNECTOR-2-1 19.05mm 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+U4 SO16 38.1mm 3525mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D1 CONNECTOR-2-1 6.985mm 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R3 1206 15.24mm 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt-error b/utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt-error
new file mode 100644
index 0000000..08dd3df
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_to_mm-protel_example1_mil.txt-error
@@ -0,0 +1,4 @@
+Warning: change_text_units: Text Mid X has no numbers!
+Warning at column 3
+Warning: change_text_units: Text Mid X has no numbers!
+Warning at column 3
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm_2cols-protel_example1_mil.txt b/utils/tests/gxyrs/outputs/change_units_to_mm_2cols-protel_example1_mil.txt
new file mode 100644
index 0000000..f726e12
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_to_mm_2cols-protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 50.8mm 92.71mm 0mil 0mil 0mil 0mil T 90.00 unknown
+R6 ACY1000 81.915mm 108.585mm 0mil 0mil 0mil 0mil T 180.00 unknown
+R5 ACY1000 81.915mm 102.87mm 0mil 0mil 0mil 0mil T 180.00 unknown
+R8 ACY1000 81.915mm 97.155mm 0mil 0mil 0mil 0mil T 0.00 unknown
+R7 ACY1000 81.915mm 91.44mm 0mil 0mil 0mil 0mil T 0.00 unknown
+C1 1206 24.13mm 95.885mm 0mil 0mil 0mil 0mil B 0.00 unknown
+C14 1206 31.115mm 91.44mm 0mil 0mil 0mil 0mil B 90.00 unknown
+D6 1206 28.575mm 98.425mm 0mil 0mil 0mil 0mil B 180.00 unknown
+C13 1206 41.04513mm 94.950026mm 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN3 CONNECTOR-4-1 56.515mm 91.44mm 0mil 0mil 0mil 0mil T 270.00 unknown
+C12 1206 36.530026mm 97.38487mm 0mil 0mil 0mil 0mil B 270.00 unknown
+U2 TO220 34.0995mm 106.045mm 0mil 0mil 0mil 0mil T 90.00 unknown
+D7 1206 45.085mm 85.09mm 0mil 0mil 0mil 0mil B 270.00 unknown
+D5 1206 28.575mm 95.885mm 0mil 0mil 0mil 0mil B 180.00 unknown
+R4 1206 12.805156mm 89.605104mm 0mil 0mil 0mil 0mil B 180.00 unknown
+C15 1206 31.115mm 85.09mm 0mil 0mil 0mil 0mil B 90.00 unknown
+U1 TO220 10.3505mm 106.172mm 0mil 0mil 0mil 0mil T 90.00 unknown
+R9 1206 47.625mm 85.09mm 0mil 0mil 0mil 0mil B 90.00 1k
+R10 1206 39.37mm 83.82mm 0mil 0mil 0mil 0mil B 0.00 1k
+U3 SO8 27.305mm 89.535mm 0mil 0mil 0mil 0mil B 270.00 unknown
+R11 1206 34.925mm 83.82mm 0mil 0mil 0mil 0mil B 180.00 10k
+D2 CONNECTOR-2-1 12.7mm 97.79mm 0mil 0mil 0mil 0mil T 0.00 unknown
+C2 1206 23.495mm 85.09mm 0mil 0mil 0mil 0mil B 270.00 unknown
+R2 1206 12.87526mm 95.285052mm 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN1 CONNECTOR-2-1 6.985mm 92.075mm 0mil 0mil 0mil 0mil T 0.00 unknown
+D4 CONNECTOR-2-1 12.7mm 92.075mm 0mil 0mil 0mil 0mil T 0.00 unknown
+R1 1206 10.795mm 85.725mm 0mil 0mil 0mil 0mil B 90.00 unknown
+C11 1206 33.954974mm 97.38487mm 0mil 0mil 0mil 0mil B 90.00 unknown
+CONN2 CONNECTOR-2-1 19.05mm 92.075mm 0mil 0mil 0mil 0mil T 0.00 unknown
+S2 CONNECTOR-2-1 19.05mm 97.79mm 0mil 0mil 0mil 0mil T 180.00 unknown
+S1 CONNECTOR-2-1 6.985mm 97.79mm 0mil 0mil 0mil 0mil T 0.00 unknown
+D3 CONNECTOR-2-1 19.05mm 85.09mm 0mil 0mil 0mil 0mil T 0.00 unknown
+U4 SO16 38.1mm 89.535mm 0mil 0mil 0mil 0mil B 90.00 unknown
+D1 CONNECTOR-2-1 6.985mm 85.09mm 0mil 0mil 0mil 0mil T 0.00 unknown
+R3 1206 15.24mm 85.725mm 0mil 0mil 0mil 0mil B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm_2cols-protel_example1_mil.txt-error b/utils/tests/gxyrs/outputs/change_units_to_mm_2cols-protel_example1_mil.txt-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt b/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt
new file mode 100644
index 0000000..725a003
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator Footprint     Mid X       Mid Y       Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4      CONNECTOR-3-1 50.8mm      92.71mm     0mm   0mm   0mm   0mm   T  90.00    unknown
+R6         ACY1000       81.915mm    108.585mm   0mm   0mm   0mm   0mm   T  180.00   unknown
+R5         ACY1000       81.915mm    102.87mm    0mm   0mm   0mm   0mm   T  180.00   unknown
+R8         ACY1000       81.915mm    97.155mm    0mm   0mm   0mm   0mm   T  0.00     unknown
+R7         ACY1000       81.915mm    91.44mm     0mm   0mm   0mm   0mm   T  0.00     unknown
+C1         1206          24.13mm     95.885mm    0mm   0mm   0mm   0mm   B  0.00     unknown
+C14        1206          31.115mm    91.44mm     0mm   0mm   0mm   0mm   B  90.00    unknown
+D6         1206          28.575mm    98.425mm    0mm   0mm   0mm   0mm   B  180.00   unknown
+C13        1206          41.04513mm  94.950026mm 0mm   0mm   0mm   0mm   B  180.00   unknown
+CONN3      CONNECTOR-4-1 56.515mm    91.44mm     0mm   0mm   0mm   0mm   T  270.00   unknown
+C12        1206          36.530026mm 97.38487mm  0mm   0mm   0mm   0mm   B  270.00   unknown
+U2         TO220         34.0995mm   106.045mm   0mm   0mm   0mm   0mm   T  90.00    unknown
+D7         1206          45.085mm    85.09mm     0mm   0mm   0mm   0mm   B  270.00   unknown
+D5         1206          28.575mm    95.885mm    0mm   0mm   0mm   0mm   B  180.00   unknown
+R4         1206          12.805156mm 89.605104mm 0mm   0mm   0mm   0mm   B  180.00   unknown
+C15        1206          31.115mm    85.09mm     0mm   0mm   0mm   0mm   B  90.00    unknown
+U1         TO220         10.3505mm   106.172mm   0mm   0mm   0mm   0mm   T  90.00    unknown
+R9         1206          47.625mm    85.09mm     0mm   0mm   0mm   0mm   B  90.00    1k     
+R10        1206          39.37mm     83.82mm     0mm   0mm   0mm   0mm   B  0.00     1k     
+U3         SO8           27.305mm    89.535mm    0mm   0mm   0mm   0mm   B  270.00   unknown
+R11        1206          34.925mm    83.82mm     0mm   0mm   0mm   0mm   B  180.00   10k    
+D2         CONNECTOR-2-1 12.7mm      97.79mm     0mm   0mm   0mm   0mm   T  0.00     unknown
+C2         1206          23.495mm    85.09mm     0mm   0mm   0mm   0mm   B  270.00   unknown
+R2         1206          12.87526mm  95.285052mm 0mm   0mm   0mm   0mm   B  180.00   unknown
+CONN1      CONNECTOR-2-1 6.985mm     92.075mm    0mm   0mm   0mm   0mm   T  0.00     unknown
+D4         CONNECTOR-2-1 12.7mm      92.075mm    0mm   0mm   0mm   0mm   T  0.00     unknown
+R1         1206          10.795mm    85.725mm    0mm   0mm   0mm   0mm   B  90.00    unknown
+C11        1206          33.954974mm 97.38487mm  0mm   0mm   0mm   0mm   B  90.00    unknown
+CONN2      CONNECTOR-2-1 19.05mm     92.075mm    0mm   0mm   0mm   0mm   T  0.00     unknown
+S2         CONNECTOR-2-1 19.05mm     97.79mm     0mm   0mm   0mm   0mm   T  180.00   unknown
+S1         CONNECTOR-2-1 6.985mm     97.79mm     0mm   0mm   0mm   0mm   T  0.00     unknown
+D3         CONNECTOR-2-1 19.05mm     85.09mm     0mm   0mm   0mm   0mm   T  0.00     unknown
+U4         SO16          38.1mm      89.535mm    0mm   0mm   0mm   0mm   B  90.00    unknown
+D1         CONNECTOR-2-1 6.985mm     85.09mm     0mm   0mm   0mm   0mm   T  0.00     unknown
+R3         1206          15.24mm     85.725mm    0mm   0mm   0mm   0mm   B  90.00    unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt-error b/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt-error
new file mode 100644
index 0000000..cdaacb1
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated-protel_example1_mil.txt-error
@@ -0,0 +1,24 @@
+Warning: change_text_units: Text Mid X has no numbers!
+Warning at column 3
+Warning: change_text_units: Text Mid Y has no numbers!
+Warning at column 4
+Warning: change_text_units: Text Ref X has no numbers!
+Warning at column 5
+Warning: change_text_units: Text Ref Y has no numbers!
+Warning at column 6
+Warning: change_text_units: Text Pad X has no numbers!
+Warning at column 7
+Warning: change_text_units: Text Pad Y has no numbers!
+Warning at column 8
+Warning: change_text_units: Text Mid X has no numbers!
+Warning at column 3
+Warning: change_text_units: Text Mid Y has no numbers!
+Warning at column 4
+Warning: change_text_units: Text Ref X has no numbers!
+Warning at column 5
+Warning: change_text_units: Text Ref Y has no numbers!
+Warning at column 6
+Warning: change_text_units: Text Pad X has no numbers!
+Warning at column 7
+Warning: change_text_units: Text Pad Y has no numbers!
+Warning at column 8
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt b/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt
new file mode 100644
index 0000000..725a003
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator Footprint     Mid X       Mid Y       Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4      CONNECTOR-3-1 50.8mm      92.71mm     0mm   0mm   0mm   0mm   T  90.00    unknown
+R6         ACY1000       81.915mm    108.585mm   0mm   0mm   0mm   0mm   T  180.00   unknown
+R5         ACY1000       81.915mm    102.87mm    0mm   0mm   0mm   0mm   T  180.00   unknown
+R8         ACY1000       81.915mm    97.155mm    0mm   0mm   0mm   0mm   T  0.00     unknown
+R7         ACY1000       81.915mm    91.44mm     0mm   0mm   0mm   0mm   T  0.00     unknown
+C1         1206          24.13mm     95.885mm    0mm   0mm   0mm   0mm   B  0.00     unknown
+C14        1206          31.115mm    91.44mm     0mm   0mm   0mm   0mm   B  90.00    unknown
+D6         1206          28.575mm    98.425mm    0mm   0mm   0mm   0mm   B  180.00   unknown
+C13        1206          41.04513mm  94.950026mm 0mm   0mm   0mm   0mm   B  180.00   unknown
+CONN3      CONNECTOR-4-1 56.515mm    91.44mm     0mm   0mm   0mm   0mm   T  270.00   unknown
+C12        1206          36.530026mm 97.38487mm  0mm   0mm   0mm   0mm   B  270.00   unknown
+U2         TO220         34.0995mm   106.045mm   0mm   0mm   0mm   0mm   T  90.00    unknown
+D7         1206          45.085mm    85.09mm     0mm   0mm   0mm   0mm   B  270.00   unknown
+D5         1206          28.575mm    95.885mm    0mm   0mm   0mm   0mm   B  180.00   unknown
+R4         1206          12.805156mm 89.605104mm 0mm   0mm   0mm   0mm   B  180.00   unknown
+C15        1206          31.115mm    85.09mm     0mm   0mm   0mm   0mm   B  90.00    unknown
+U1         TO220         10.3505mm   106.172mm   0mm   0mm   0mm   0mm   T  90.00    unknown
+R9         1206          47.625mm    85.09mm     0mm   0mm   0mm   0mm   B  90.00    1k     
+R10        1206          39.37mm     83.82mm     0mm   0mm   0mm   0mm   B  0.00     1k     
+U3         SO8           27.305mm    89.535mm    0mm   0mm   0mm   0mm   B  270.00   unknown
+R11        1206          34.925mm    83.82mm     0mm   0mm   0mm   0mm   B  180.00   10k    
+D2         CONNECTOR-2-1 12.7mm      97.79mm     0mm   0mm   0mm   0mm   T  0.00     unknown
+C2         1206          23.495mm    85.09mm     0mm   0mm   0mm   0mm   B  270.00   unknown
+R2         1206          12.87526mm  95.285052mm 0mm   0mm   0mm   0mm   B  180.00   unknown
+CONN1      CONNECTOR-2-1 6.985mm     92.075mm    0mm   0mm   0mm   0mm   T  0.00     unknown
+D4         CONNECTOR-2-1 12.7mm      92.075mm    0mm   0mm   0mm   0mm   T  0.00     unknown
+R1         1206          10.795mm    85.725mm    0mm   0mm   0mm   0mm   B  90.00    unknown
+C11        1206          33.954974mm 97.38487mm  0mm   0mm   0mm   0mm   B  90.00    unknown
+CONN2      CONNECTOR-2-1 19.05mm     92.075mm    0mm   0mm   0mm   0mm   T  0.00     unknown
+S2         CONNECTOR-2-1 19.05mm     97.79mm     0mm   0mm   0mm   0mm   T  180.00   unknown
+S1         CONNECTOR-2-1 6.985mm     97.79mm     0mm   0mm   0mm   0mm   T  0.00     unknown
+D3         CONNECTOR-2-1 19.05mm     85.09mm     0mm   0mm   0mm   0mm   T  0.00     unknown
+U4         SO16          38.1mm      89.535mm    0mm   0mm   0mm   0mm   B  90.00    unknown
+D1         CONNECTOR-2-1 6.985mm     85.09mm     0mm   0mm   0mm   0mm   T  0.00     unknown
+R3         1206          15.24mm     85.725mm    0mm   0mm   0mm   0mm   B  90.00    unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt-error b/utils/tests/gxyrs/outputs/change_units_to_mm_6col_tabulated_no_title-protel_example1_mil.txt-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm_no_title-protel_example1_mil.txt b/utils/tests/gxyrs/outputs/change_units_to_mm_no_title-protel_example1_mil.txt
new file mode 100644
index 0000000..4368356
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_to_mm_no_title-protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 50.8mm 3650mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R6 ACY1000 81.915mm 4275mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R5 ACY1000 81.915mm 4050mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R8 ACY1000 81.915mm 3825mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R7 ACY1000 81.915mm 3600mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C1 1206 24.13mm 3775mil 0mil 0mil 0mil 0mil B 0.00 unknown
+C14 1206 31.115mm 3600mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D6 1206 28.575mm 3875mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C13 1206 41.04513mm 3738.19mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN3 CONNECTOR-4-1 56.515mm 3600mil 0mil 0mil 0mil 0mil T 270.00 unknown
+C12 1206 36.530026mm 3834.05mil 0mil 0mil 0mil 0mil B 270.00 unknown
+U2 TO220 34.0995mm 4175mil 0mil 0mil 0mil 0mil T 90.00 unknown
+D7 1206 45.085mm 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+D5 1206 28.575mm 3775mil 0mil 0mil 0mil 0mil B 180.00 unknown
+R4 1206 12.805156mm 3527.76mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C15 1206 31.115mm 3350mil 0mil 0mil 0mil 0mil B 90.00 unknown
+U1 TO220 10.3505mm 4180mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R9 1206 47.625mm 3350mil 0mil 0mil 0mil 0mil B 90.00 1k
+R10 1206 39.37mm 3300mil 0mil 0mil 0mil 0mil B 0.00 1k
+U3 SO8 27.305mm 3525mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R11 1206 34.925mm 3300mil 0mil 0mil 0mil 0mil B 180.00 10k
+D2 CONNECTOR-2-1 12.7mm 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C2 1206 23.495mm 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R2 1206 12.87526mm 3751.38mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN1 CONNECTOR-2-1 6.985mm 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D4 CONNECTOR-2-1 12.7mm 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R1 1206 10.795mm 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
+C11 1206 33.954974mm 3834.05mil 0mil 0mil 0mil 0mil B 90.00 unknown
+CONN2 CONNECTOR-2-1 19.05mm 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+S2 CONNECTOR-2-1 19.05mm 3850mil 0mil 0mil 0mil 0mil T 180.00 unknown
+S1 CONNECTOR-2-1 6.985mm 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D3 CONNECTOR-2-1 19.05mm 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+U4 SO16 38.1mm 3525mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D1 CONNECTOR-2-1 6.985mm 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R3 1206 15.24mm 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_to_mm_no_title-protel_example1_mil.txt-error b/utils/tests/gxyrs/outputs/change_units_to_mm_no_title-protel_example1_mil.txt-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt b/utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt
new file mode 100644
index 0000000..54b8075
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator Footprint Mid X Mid Y Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4 CONNECTOR-3-1 2000mil 3650mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R6 ACY1000 3225mil 4275mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R5 ACY1000 3225mil 4050mil 0mil 0mil 0mil 0mil T 180.00 unknown
+R8 ACY1000 3225mil 3825mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R7 ACY1000 3225mil 3600mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C1 1206 950mil 3775mil 0mil 0mil 0mil 0mil B 0.00 unknown
+C14 1206 1225mil 3600mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D6 1206 1125mil 3875mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C13 1206 1615.95mil 3738.19mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN3 CONNECTOR-4-1 2225mil 3600mil 0mil 0mil 0mil 0mil T 270.00 unknown
+C12 1206 1438.19mil 3834.05mil 0mil 0mil 0mil 0mil B 270.00 unknown
+U2 TO220 1342.50mil 4175mil 0mil 0mil 0mil 0mil T 90.00 unknown
+D7 1206 1775mil 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+D5 1206 1125mil 3775mil 0mil 0mil 0mil 0mil B 180.00 unknown
+R4 1206 504.14mil 3527.76mil 0mil 0mil 0mil 0mil B 180.00 unknown
+C15 1206 1225mil 3350mil 0mil 0mil 0mil 0mil B 90.00 unknown
+U1 TO220 407.50mil 4180mil 0mil 0mil 0mil 0mil T 90.00 unknown
+R9 1206 1875mil 3350mil 0mil 0mil 0mil 0mil B 90.00 1k
+R10 1206 1550mil 3300mil 0mil 0mil 0mil 0mil B 0.00 1k
+U3 SO8 1075mil 3525mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R11 1206 1375mil 3300mil 0mil 0mil 0mil 0mil B 180.00 10k
+D2 CONNECTOR-2-1 500mil 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+C2 1206 925mil 3350mil 0mil 0mil 0mil 0mil B 270.00 unknown
+R2 1206 506.90mil 3751.38mil 0mil 0mil 0mil 0mil B 180.00 unknown
+CONN1 CONNECTOR-2-1 275mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D4 CONNECTOR-2-1 500mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R1 1206 425mil 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
+C11 1206 1336.81mil 3834.05mil 0mil 0mil 0mil 0mil B 90.00 unknown
+CONN2 CONNECTOR-2-1 750mil 3625mil 0mil 0mil 0mil 0mil T 0.00 unknown
+S2 CONNECTOR-2-1 750mil 3850mil 0mil 0mil 0mil 0mil T 180.00 unknown
+S1 CONNECTOR-2-1 275mil 3850mil 0mil 0mil 0mil 0mil T 0.00 unknown
+D3 CONNECTOR-2-1 750mil 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+U4 SO16 1500mil 3525mil 0mil 0mil 0mil 0mil B 90.00 unknown
+D1 CONNECTOR-2-1 275mil 3350mil 0mil 0mil 0mil 0mil T 0.00 unknown
+R3 1206 600mil 3375mil 0mil 0mil 0mil 0mil B 90.00 unknown
diff --git a/utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt-error b/utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt-error
new file mode 100644
index 0000000..a8c066f
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/change_units_units_not_supported-protel_example1_mil.txt-error
@@ -0,0 +1,144 @@
+Warning: change_text_units: Text Mid X has no numbers!
+Warning at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Warning: change_text_units: Text Mid X has no numbers!
+Warning at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
+Error: Desired units 'gallons' not supported.
+Error at column 3
diff --git a/utils/tests/gxyrs/outputs/del_case_insensitive1-pcb_example1.xy b/utils/tests/gxyrs/outputs/del_case_insensitive1-pcb_example1.xy
new file mode 100644
index 0000000..3d383f4
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/del_case_insensitive1-pcb_example1.xy
@@ -0,0 +1,32 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
diff --git a/utils/tests/gxyrs/outputs/del_case_insensitive1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/del_case_insensitive1-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/del_case_insensitive2-pcb_example2.xy b/utils/tests/gxyrs/outputs/del_case_insensitive2-pcb_example2.xy
new file mode 100644
index 0000000..3d383f4
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/del_case_insensitive2-pcb_example2.xy
@@ -0,0 +1,32 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
diff --git a/utils/tests/gxyrs/outputs/del_case_insensitive2-pcb_example2.xy-error b/utils/tests/gxyrs/outputs/del_case_insensitive2-pcb_example2.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/del_case_sensitive1-pcb_example1.xy b/utils/tests/gxyrs/outputs/del_case_sensitive1-pcb_example1.xy
new file mode 100644
index 0000000..3d383f4
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/del_case_sensitive1-pcb_example1.xy
@@ -0,0 +1,32 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
diff --git a/utils/tests/gxyrs/outputs/del_case_sensitive1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/del_case_sensitive1-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/del_case_sensitive2-pcb_example2.xy b/utils/tests/gxyrs/outputs/del_case_sensitive2-pcb_example2.xy
new file mode 100644
index 0000000..c1bda42
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/del_case_sensitive2-pcb_example2.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+r6,"ACY1000","unknown",3225.00,4275.00,180,top
+r5,"ACY1000","unknown",3225.00,4050.00,180,top
+r8,"ACY1000","unknown",3225.00,3825.00,0,top
+r7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+r4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+r9,"1206","1k",1875.00,3350.00,90,bottom
+r10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+r11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+r2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+r1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+r3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/del_case_sensitive2-pcb_example2.xy-error b/utils/tests/gxyrs/outputs/del_case_sensitive2-pcb_example2.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/del_case_sensitive3-pcb_example1.xy b/utils/tests/gxyrs/outputs/del_case_sensitive3-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/del_case_sensitive3-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/del_case_sensitive3-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/del_case_sensitive3-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/del_case_sensitive4-pcb_example2.xy b/utils/tests/gxyrs/outputs/del_case_sensitive4-pcb_example2.xy
new file mode 100644
index 0000000..3d383f4
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/del_case_sensitive4-pcb_example2.xy
@@ -0,0 +1,32 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
diff --git a/utils/tests/gxyrs/outputs/del_case_sensitive4-pcb_example2.xy-error b/utils/tests/gxyrs/outputs/del_case_sensitive4-pcb_example2.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/del_check_columns_no_match-pcb_example1.xy b/utils/tests/gxyrs/outputs/del_check_columns_no_match-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/del_check_columns_no_match-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/del_check_columns_no_match-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/del_check_columns_no_match-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy b/utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy-error
new file mode 100644
index 0000000..d62840d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/del_check_columns_return_minus1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/do_nothing-pcb_example1.xy b/utils/tests/gxyrs/outputs/do_nothing-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/do_nothing-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/do_nothing-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/do_nothing-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/do_nothing_tabulated-pcb_example1.xy b/utils/tests/gxyrs/outputs/do_nothing_tabulated-pcb_example1.xy
new file mode 100644
index 0000000..a47d267
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/do_nothing_tabulated-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90 ,top   
+R6   ,"ACY1000"      ,"unknown",3225.00,4275.00,180,top   
+R5   ,"ACY1000"      ,"unknown",3225.00,4050.00,180,top   
+R8   ,"ACY1000"      ,"unknown",3225.00,3825.00,0  ,top   
+R7   ,"ACY1000"      ,"unknown",3225.00,3600.00,0  ,top   
+C1   ,"1206"         ,"unknown",950.00 ,3775.00,0  ,bottom
+C14  ,"1206"         ,"unknown",1225.00,3600.00,90 ,bottom
+D6   ,"1206"         ,"unknown",1125.00,3875.00,180,bottom
+C13  ,"1206"         ,"unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top   
+C12  ,"1206"         ,"unknown",1438.19,3834.05,270,bottom
+U2   ,"TO220"        ,"unknown",1342.50,4175.00,90 ,top   
+D7   ,"1206"         ,"unknown",1775.00,3350.00,270,bottom
+D5   ,"1206"         ,"unknown",1125.00,3775.00,180,bottom
+R4   ,"1206"         ,"unknown",504.14 ,3527.76,180,bottom
+C15  ,"1206"         ,"unknown",1225.00,3350.00,90 ,bottom
+U1   ,"TO220"        ,"unknown",407.50 ,4180.00,90 ,top   
+R9   ,"1206"         ,"1k"     ,1875.00,3350.00,90 ,bottom
+R10  ,"1206"         ,"1k"     ,1550.00,3300.00,0  ,bottom
+U3   ,"SO8"          ,"unknown",1075.00,3525.00,270,bottom
+R11  ,"1206"         ,"10k"    ,1375.00,3300.00,180,bottom
+D2   ,"CONNECTOR-2-1","unknown",500.00 ,3850.00,0  ,top   
+C2   ,"1206"         ,"unknown",925.00 ,3350.00,270,bottom
+R2   ,"1206"         ,"unknown",506.90 ,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00 ,3625.00,0  ,top   
+D4   ,"CONNECTOR-2-1","unknown",500.00 ,3625.00,0  ,top   
+R1   ,"1206"         ,"unknown",425.00 ,3375.00,90 ,bottom
+C11  ,"1206"         ,"unknown",1336.81,3834.05,90 ,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00 ,3625.00,0  ,top   
+S2   ,"CONNECTOR-2-1","unknown",750.00 ,3850.00,180,top   
+S1   ,"CONNECTOR-2-1","unknown",275.00 ,3850.00,0  ,top   
+D3   ,"CONNECTOR-2-1","unknown",750.00 ,3350.00,0  ,top   
+U4   ,"SO16"         ,"unknown",1500.00,3525.00,90 ,bottom
+D1   ,"CONNECTOR-2-1","unknown",275.00 ,3350.00,0  ,top   
+R3   ,"1206"         ,"unknown",600.00 ,3375.00,90 ,bottom
diff --git a/utils/tests/gxyrs/outputs/do_nothing_tabulated-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/do_nothing_tabulated-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/footprint_pcb1-pcb_example1.xy b/utils/tests/gxyrs/outputs/footprint_pcb1-pcb_example1.xy
new file mode 100644
index 0000000..8d7d3c1
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/footprint_pcb1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,footprint,"unknown",2000.00,3650.00,90 ,top   
+R6   ,footprint,"unknown",3225.00,4275.00,180,top   
+R5   ,footprint,"unknown",3225.00,4050.00,180,top   
+R8   ,footprint,"unknown",3225.00,3825.00,0  ,top   
+R7   ,footprint,"unknown",3225.00,3600.00,0  ,top   
+C1   ,footprint,"unknown",950.00 ,3775.00,0  ,bottom
+C14  ,footprint,"unknown",1225.00,3600.00,90 ,bottom
+D6   ,footprint,"unknown",1125.00,3875.00,180,bottom
+C13  ,footprint,"unknown",1615.95,3738.19,180,bottom
+CONN3,footprint,"unknown",2225.00,3600.00,270,top   
+C12  ,footprint,"unknown",1438.19,3834.05,270,bottom
+U2   ,footprint,"unknown",1342.50,4175.00,90 ,top   
+D7   ,footprint,"unknown",1775.00,3350.00,270,bottom
+D5   ,footprint,"unknown",1125.00,3775.00,180,bottom
+R4   ,footprint,"unknown",504.14 ,3527.76,180,bottom
+C15  ,footprint,"unknown",1225.00,3350.00,90 ,bottom
+U1   ,footprint,"unknown",407.50 ,4180.00,90 ,top   
+R9   ,footprint,"1k"     ,1875.00,3350.00,90 ,bottom
+R10  ,footprint,"1k"     ,1550.00,3300.00,0  ,bottom
+U3   ,footprint,"unknown",1075.00,3525.00,270,bottom
+R11  ,footprint,"10k"    ,1375.00,3300.00,180,bottom
+D2   ,footprint,"unknown",500.00 ,3850.00,0  ,top   
+C2   ,footprint,"unknown",925.00 ,3350.00,270,bottom
+R2   ,footprint,"unknown",506.90 ,3751.38,180,bottom
+CONN1,footprint,"unknown",275.00 ,3625.00,0  ,top   
+D4   ,footprint,"unknown",500.00 ,3625.00,0  ,top   
+R1   ,footprint,"unknown",425.00 ,3375.00,90 ,bottom
+C11  ,footprint,"unknown",1336.81,3834.05,90 ,bottom
+CONN2,footprint,"unknown",750.00 ,3625.00,0  ,top   
+S2   ,footprint,"unknown",750.00 ,3850.00,180,top   
+S1   ,footprint,"unknown",275.00 ,3850.00,0  ,top   
+D3   ,footprint,"unknown",750.00 ,3350.00,0  ,top   
+U4   ,footprint,"unknown",1500.00,3525.00,90 ,bottom
+D1   ,footprint,"unknown",275.00 ,3350.00,0  ,top   
+R3   ,footprint,"unknown",600.00 ,3375.00,90 ,bottom
diff --git a/utils/tests/gxyrs/outputs/footprint_pcb1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/footprint_pcb1-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/footprint_protel1-protel_example1_mil.txt b/utils/tests/gxyrs/outputs/footprint_protel1-protel_example1_mil.txt
new file mode 100644
index 0000000..3f33258
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/footprint_protel1-protel_example1_mil.txt
@@ -0,0 +1,37 @@
+Designator footprint Mid X      Mid Y      Ref X Ref Y Pad X Pad Y TB Rotation Comment
+
+CONN4      footprint 2000mil    3650mil    0mil  0mil  0mil  0mil  T  90.00    unknown
+R6         footprint 3225mil    4275mil    0mil  0mil  0mil  0mil  T  180.00   unknown
+R5         footprint 3225mil    4050mil    0mil  0mil  0mil  0mil  T  180.00   unknown
+R8         footprint 3225mil    3825mil    0mil  0mil  0mil  0mil  T  0.00     unknown
+R7         footprint 3225mil    3600mil    0mil  0mil  0mil  0mil  T  0.00     unknown
+C1         footprint 950mil     3775mil    0mil  0mil  0mil  0mil  B  0.00     unknown
+C14        footprint 1225mil    3600mil    0mil  0mil  0mil  0mil  B  90.00    unknown
+D6         footprint 1125mil    3875mil    0mil  0mil  0mil  0mil  B  180.00   unknown
+C13        footprint 1615.95mil 3738.19mil 0mil  0mil  0mil  0mil  B  180.00   unknown
+CONN3      footprint 2225mil    3600mil    0mil  0mil  0mil  0mil  T  270.00   unknown
+C12        footprint 1438.19mil 3834.05mil 0mil  0mil  0mil  0mil  B  270.00   unknown
+U2         footprint 1342.50mil 4175mil    0mil  0mil  0mil  0mil  T  90.00    unknown
+D7         footprint 1775mil    3350mil    0mil  0mil  0mil  0mil  B  270.00   unknown
+D5         footprint 1125mil    3775mil    0mil  0mil  0mil  0mil  B  180.00   unknown
+R4         footprint 504.14mil  3527.76mil 0mil  0mil  0mil  0mil  B  180.00   unknown
+C15        footprint 1225mil    3350mil    0mil  0mil  0mil  0mil  B  90.00    unknown
+U1         footprint 407.50mil  4180mil    0mil  0mil  0mil  0mil  T  90.00    unknown
+R9         footprint 1875mil    3350mil    0mil  0mil  0mil  0mil  B  90.00    1k     
+R10        footprint 1550mil    3300mil    0mil  0mil  0mil  0mil  B  0.00     1k     
+U3         footprint 1075mil    3525mil    0mil  0mil  0mil  0mil  B  270.00   unknown
+R11        footprint 1375mil    3300mil    0mil  0mil  0mil  0mil  B  180.00   10k    
+D2         footprint 500mil     3850mil    0mil  0mil  0mil  0mil  T  0.00     unknown
+C2         footprint 925mil     3350mil    0mil  0mil  0mil  0mil  B  270.00   unknown
+R2         footprint 506.90mil  3751.38mil 0mil  0mil  0mil  0mil  B  180.00   unknown
+CONN1      footprint 275mil     3625mil    0mil  0mil  0mil  0mil  T  0.00     unknown
+D4         footprint 500mil     3625mil    0mil  0mil  0mil  0mil  T  0.00     unknown
+R1         footprint 425mil     3375mil    0mil  0mil  0mil  0mil  B  90.00    unknown
+C11        footprint 1336.81mil 3834.05mil 0mil  0mil  0mil  0mil  B  90.00    unknown
+CONN2      footprint 750mil     3625mil    0mil  0mil  0mil  0mil  T  0.00     unknown
+S2         footprint 750mil     3850mil    0mil  0mil  0mil  0mil  T  180.00   unknown
+S1         footprint 275mil     3850mil    0mil  0mil  0mil  0mil  T  0.00     unknown
+D3         footprint 750mil     3350mil    0mil  0mil  0mil  0mil  T  0.00     unknown
+U4         footprint 1500mil    3525mil    0mil  0mil  0mil  0mil  B  90.00    unknown
+D1         footprint 275mil     3350mil    0mil  0mil  0mil  0mil  T  0.00     unknown
+R3         footprint 600mil     3375mil    0mil  0mil  0mil  0mil  B  90.00    unknown
diff --git a/utils/tests/gxyrs/outputs/footprint_protel1-protel_example1_mil.txt-error b/utils/tests/gxyrs/outputs/footprint_protel1-protel_example1_mil.txt-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/footprint_report1-report1.txt b/utils/tests/gxyrs/outputs/footprint_report1-report1.txt
new file mode 100644
index 0000000..bc55f92
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/footprint_report1-report1.txt
@@ -0,0 +1,36 @@
+RefDesignator MountTYPE X       Y       Rot Side     Mirror PartNumber "footprint" Description     
+"CONN4"       "THROUGH" 2000,00 3650,00 90  "TOP"    "NO"   "unknown"  "footprint" "No_description"
+"R6"          "THROUGH" 3225,00 4275,00 180 "TOP"    "NO"   "unknown"  "footprint" "No_description"
+"R5"          "THROUGH" 3225,00 4050,00 180 "TOP"    "NO"   "unknown"  "footprint" "No_description"
+"R8"          "THROUGH" 3225,00 3825,00 0   "TOP"    "NO"   "unknown"  "footprint" "No_description"
+"R7"          "THROUGH" 3225,00 3600,00 0   "TOP"    "NO"   "unknown"  "footprint" "No_description"
+"C1"          "SMD"     950,00  3775,00 0   "BOTTOM" "NO"   "unknown"  "footprint" "No_description"
+"C14"         "SMD"     1225,00 3600,00 90  "BOTTOM" "NO"   "unknown"  "footprint" "No_description"
+"D6"          "SMD"     1125,00 3875,00 180 "BOTTOM" "NO"   "unknown"  "footprint" "No_description"
+"C13"         "SMD"     1615,95 3738,19 180 "BOTTOM" "NO"   "unknown"  "footprint" "No_description"
+"CONN3"       "THROUGH" 2225,00 3600,00 270 "TOP"    "NO"   "unknown"  "footprint" "No_description"
+"C12"         "SMD"     1438,19 3834,05 270 "BOTTOM" "NO"   "unknown"  "footprint" "No_description"
+"U2"          "SMD"     1342,50 4175,00 90  "TOP"    "NO"   "unknown"  "footprint" "No_description"
+"D7"          "SMD"     1775,00 3350,00 270 "BOTTOM" "NO"   "unknown"  "footprint" "No_description"
+"D5"          "SMD"     1125,00 3775,00 180 "BOTTOM" "NO"   "unknown"  "footprint" "No_description"
+"R4"          "SMD"     504,14  3527,76 180 "BOTTOM" "NO"   "unknown"  "footprint" "No_description"
+"C15"         "SMD"     1225,00 3350,00 90  "BOTTOM" "NO"   "unknown"  "footprint" "No_description"
+"U1"          "SMD"     407,50  4180,00 90  "TOP"    "NO"   "unknown"  "footprint" "No_description"
+"R9"          "SMD"     1875,00 3350,00 90  "BOTTOM" "NO"   "1k"       "footprint" "No_description"
+"R10"         "SMD"     1550,00 3300,00 0   "BOTTOM" "NO"   "1k"       "footprint" "No_description"
+"U3"          "SMD"     1075,00 3525,00 270 "BOTTOM" "NO"   "unknown"  "footprint" "No_description"
+"R11"         "SMD"     1375,00 3300,00 180 "BOTTOM" "NO"   "10k"      "footprint" "No_description"
+"D2"          "THROUGH" 500,00  3850,00 0   "TOP"    "NO"   "unknown"  "footprint" "No_description"
+"C2"          "SMD"     925,00  3350,00 270 "BOTTOM" "NO"   "unknown"  "footprint" "No_description"
+"R2"          "SMD"     506,90  3751,38 180 "BOTTOM" "NO"   "unknown"  "footprint" "No_description"
+"CONN1"       "THROUGH" 275,00  3625,00 0   "TOP"    "NO"   "unknown"  "footprint" "No_description"
+"D4"          "THROUGH" 500,00  3625,00 0   "TOP"    "NO"   "unknown"  "footprint" "No_description"
+"R1"          "SMD"     425,00  3375,00 90  "BOTTOM" "NO"   "unknown"  "footprint" "No_description"
+"C11"         "SMD"     1336,81 3834,05 90  "BOTTOM" "NO"   "unknown"  "footprint" "No_description"
+"CONN2"       "THROUGH" 750,00  3625,00 0   "TOP"    "NO"   "unknown"  "footprint" "No_description"
+"S2"          "THROUGH" 750,00  3850,00 180 "TOP"    "NO"   "unknown"  "footprint" "No_description"
+"S1"          "THROUGH" 275,00  3850,00 0   "TOP"    "NO"   "unknown"  "footprint" "No_description"
+"D3"          "THROUGH" 750,00  3350,00 0   "TOP"    "NO"   "unknown"  "footprint" "No_description"
+"U4"          "SMD"     1500,00 3525,00 90  "BOTTOM" "NO"   "unknown"  "footprint" "No_description"
+"D1"          "THROUGH" 275,00  3350,00 0   "TOP"    "NO"   "unknown"  "footprint" "No_description"
+"R3"          "SMD"     600,00  3375,00 90  "BOTTOM" "NO"   "unknown"  "footprint" "No_description"
diff --git a/utils/tests/gxyrs/outputs/footprint_report1-report1.txt-error b/utils/tests/gxyrs/outputs/footprint_report1-report1.txt-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..423755a
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_bad_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
+Error: insert_column: wrong column argument: d2.
diff --git a/utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..4bdea7d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_bad_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
+Error: insert_column: wrong column argument: 2d.
diff --git a/utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..2478a46
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
+Error: insert_column: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/insert_column_first_pos-pcb_example1.xy b/utils/tests/gxyrs/outputs/insert_column_first_pos-pcb_example1.xy
new file mode 100644
index 0000000..6ff6762
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_first_pos-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+new_value,CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+new_value,R6,"ACY1000","unknown",3225.00,4275.00,180,top
+new_value,R5,"ACY1000","unknown",3225.00,4050.00,180,top
+new_value,R8,"ACY1000","unknown",3225.00,3825.00,0,top
+new_value,R7,"ACY1000","unknown",3225.00,3600.00,0,top
+new_value,C1,"1206","unknown",950.00,3775.00,0,bottom
+new_value,C14,"1206","unknown",1225.00,3600.00,90,bottom
+new_value,D6,"1206","unknown",1125.00,3875.00,180,bottom
+new_value,C13,"1206","unknown",1615.95,3738.19,180,bottom
+new_value,CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+new_value,C12,"1206","unknown",1438.19,3834.05,270,bottom
+new_value,U2,"TO220","unknown",1342.50,4175.00,90,top
+new_value,D7,"1206","unknown",1775.00,3350.00,270,bottom
+new_value,D5,"1206","unknown",1125.00,3775.00,180,bottom
+new_value,R4,"1206","unknown",504.14,3527.76,180,bottom
+new_value,C15,"1206","unknown",1225.00,3350.00,90,bottom
+new_value,U1,"TO220","unknown",407.50,4180.00,90,top
+new_value,R9,"1206","1k",1875.00,3350.00,90,bottom
+new_value,R10,"1206","1k",1550.00,3300.00,0,bottom
+new_value,U3,"SO8","unknown",1075.00,3525.00,270,bottom
+new_value,R11,"1206","10k",1375.00,3300.00,180,bottom
+new_value,D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+new_value,C2,"1206","unknown",925.00,3350.00,270,bottom
+new_value,R2,"1206","unknown",506.90,3751.38,180,bottom
+new_value,CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+new_value,D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+new_value,R1,"1206","unknown",425.00,3375.00,90,bottom
+new_value,C11,"1206","unknown",1336.81,3834.05,90,bottom
+new_value,CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+new_value,S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+new_value,S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+new_value,D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+new_value,U4,"SO16","unknown",1500.00,3525.00,90,bottom
+new_value,D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+new_value,R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/insert_column_first_pos-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/insert_column_first_pos-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..29c6356
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_negative_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
+Error: insert_column: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/insert_column_second_pos-pcb_example1.xy b/utils/tests/gxyrs/outputs/insert_column_second_pos-pcb_example1.xy
new file mode 100644
index 0000000..2e4092b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/insert_column_second_pos-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,new_value,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,new_value,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,new_value,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,new_value,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,new_value,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,new_value,"1206","unknown",950.00,3775.00,0,bottom
+C14,new_value,"1206","unknown",1225.00,3600.00,90,bottom
+D6,new_value,"1206","unknown",1125.00,3875.00,180,bottom
+C13,new_value,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,new_value,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,new_value,"1206","unknown",1438.19,3834.05,270,bottom
+U2,new_value,"TO220","unknown",1342.50,4175.00,90,top
+D7,new_value,"1206","unknown",1775.00,3350.00,270,bottom
+D5,new_value,"1206","unknown",1125.00,3775.00,180,bottom
+R4,new_value,"1206","unknown",504.14,3527.76,180,bottom
+C15,new_value,"1206","unknown",1225.00,3350.00,90,bottom
+U1,new_value,"TO220","unknown",407.50,4180.00,90,top
+R9,new_value,"1206","1k",1875.00,3350.00,90,bottom
+R10,new_value,"1206","1k",1550.00,3300.00,0,bottom
+U3,new_value,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,new_value,"1206","10k",1375.00,3300.00,180,bottom
+D2,new_value,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,new_value,"1206","unknown",925.00,3350.00,270,bottom
+R2,new_value,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,new_value,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,new_value,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,new_value,"1206","unknown",425.00,3375.00,90,bottom
+C11,new_value,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,new_value,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,new_value,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,new_value,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,new_value,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,new_value,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,new_value,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,new_value,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/insert_column_second_pos-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/insert_column_second_pos-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/match_column_insensitive1-pcb_example2.xy b/utils/tests/gxyrs/outputs/match_column_insensitive1-pcb_example2.xy
new file mode 100644
index 0000000..c1bda42
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_insensitive1-pcb_example2.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+r6,"ACY1000","unknown",3225.00,4275.00,180,top
+r5,"ACY1000","unknown",3225.00,4050.00,180,top
+r8,"ACY1000","unknown",3225.00,3825.00,0,top
+r7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+r4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+r9,"1206","1k",1875.00,3350.00,90,bottom
+r10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+r11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+r2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+r1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+r3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_insensitive1-pcb_example2.xy-error b/utils/tests/gxyrs/outputs/match_column_insensitive1-pcb_example2.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/match_column_insensitive2-pcb_example2.xy b/utils/tests/gxyrs/outputs/match_column_insensitive2-pcb_example2.xy
new file mode 100644
index 0000000..c1bda42
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_insensitive2-pcb_example2.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+r6,"ACY1000","unknown",3225.00,4275.00,180,top
+r5,"ACY1000","unknown",3225.00,4050.00,180,top
+r8,"ACY1000","unknown",3225.00,3825.00,0,top
+r7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+r4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+r9,"1206","1k",1875.00,3350.00,90,bottom
+r10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+r11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+r2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+r1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+r3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_insensitive2-pcb_example2.xy-error b/utils/tests/gxyrs/outputs/match_column_insensitive2-pcb_example2.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/match_column_insensitive3-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_column_insensitive3-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_insensitive3-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_insensitive3-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_column_insensitive3-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/match_column_insensitive4-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_column_insensitive4-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_insensitive4-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_insensitive4-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_column_insensitive4-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy-error
new file mode 100644
index 0000000..d62840d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_negative-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy-error
new file mode 100644
index 0000000..9b094f0
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_not_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
+Error: check_columns: wrong column argument: d1.
diff --git a/utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..e11f3d4
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_not_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
+Error: check_columns: wrong column argument: 1d.
diff --git a/utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy-error
new file mode 100644
index 0000000..69dfd65
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_real-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
+Error: check_columns: wrong column argument: 1.1.
diff --git a/utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..33b666e
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_is_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
+Error: Check pattern: Element number (100) is not within (1..7).
diff --git a/utils/tests/gxyrs/outputs/match_column_sensitive1-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_column_sensitive1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_sensitive1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_sensitive1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_column_sensitive1-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/match_column_sensitive2-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_column_sensitive2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_sensitive2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_sensitive2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_column_sensitive2-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/match_column_sensitive3-pcb_example2.xy b/utils/tests/gxyrs/outputs/match_column_sensitive3-pcb_example2.xy
new file mode 100644
index 0000000..c1bda42
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_sensitive3-pcb_example2.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+r6,"ACY1000","unknown",3225.00,4275.00,180,top
+r5,"ACY1000","unknown",3225.00,4050.00,180,top
+r8,"ACY1000","unknown",3225.00,3825.00,0,top
+r7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+r4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+r9,"1206","1k",1875.00,3350.00,90,bottom
+r10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+r11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+r2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+r1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+r3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_sensitive3-pcb_example2.xy-error b/utils/tests/gxyrs/outputs/match_column_sensitive3-pcb_example2.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/match_column_sensitive4-pcb_example2.xy b/utils/tests/gxyrs/outputs/match_column_sensitive4-pcb_example2.xy
new file mode 100644
index 0000000..c1bda42
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_column_sensitive4-pcb_example2.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+r6,"ACY1000","unknown",3225.00,4275.00,180,top
+r5,"ACY1000","unknown",3225.00,4050.00,180,top
+r8,"ACY1000","unknown",3225.00,3825.00,0,top
+r7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+r4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+r9,"1206","1k",1875.00,3350.00,90,bottom
+r10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+r11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+r2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+r1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+r3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_column_sensitive4-pcb_example2.xy-error b/utils/tests/gxyrs/outputs/match_column_sensitive4-pcb_example2.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/match_no_args-pcb_example1.xy b/utils/tests/gxyrs/outputs/match_no_args-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/match_no_args-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/match_no_args-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/match_no_args-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..6b9b64d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_bad_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
+Error: mul_col_val: wrong column argument: d2.
diff --git a/utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..c03074e
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_bad_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
+Error: mul_col_val: wrong column argument: 2d.
diff --git a/utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..7b1301c
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
+Error: mul_col_val: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/multiply_integer_factor-pcb_example1.xy b/utils/tests/gxyrs/outputs/multiply_integer_factor-pcb_example1.xy
new file mode 100644
index 0000000..3327e3b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_integer_factor-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,7300.000000,90,top
+R6,"ACY1000","unknown",3225.00,8550.000000,180,top
+R5,"ACY1000","unknown",3225.00,8100.000000,180,top
+R8,"ACY1000","unknown",3225.00,7650.000000,0,top
+R7,"ACY1000","unknown",3225.00,7200.000000,0,top
+C1,"1206","unknown",950.00,7550.000000,0,bottom
+C14,"1206","unknown",1225.00,7200.000000,90,bottom
+D6,"1206","unknown",1125.00,7750.000000,180,bottom
+C13,"1206","unknown",1615.95,7476.380000,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,7200.000000,270,top
+C12,"1206","unknown",1438.19,7668.100000,270,bottom
+U2,"TO220","unknown",1342.50,8350.000000,90,top
+D7,"1206","unknown",1775.00,6700.000000,270,bottom
+D5,"1206","unknown",1125.00,7550.000000,180,bottom
+R4,"1206","unknown",504.14,7055.520000,180,bottom
+C15,"1206","unknown",1225.00,6700.000000,90,bottom
+U1,"TO220","unknown",407.50,8360.000000,90,top
+R9,"1206","1k",1875.00,6700.000000,90,bottom
+R10,"1206","1k",1550.00,6600.000000,0,bottom
+U3,"SO8","unknown",1075.00,7050.000000,270,bottom
+R11,"1206","10k",1375.00,6600.000000,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,7700.000000,0,top
+C2,"1206","unknown",925.00,6700.000000,270,bottom
+R2,"1206","unknown",506.90,7502.760000,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,7250.000000,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,7250.000000,0,top
+R1,"1206","unknown",425.00,6750.000000,90,bottom
+C11,"1206","unknown",1336.81,7668.100000,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,7250.000000,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,7700.000000,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,7700.000000,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,6700.000000,0,top
+U4,"SO16","unknown",1500.00,7050.000000,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,6700.000000,0,top
+R3,"1206","unknown",600.00,6750.000000,90,bottom
diff --git a/utils/tests/gxyrs/outputs/multiply_integer_factor-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/multiply_integer_factor-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..00d3e27
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_negative_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
+Error: mul_col_val: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/multiply_negative_integer_factor-pcb_example1.xy b/utils/tests/gxyrs/outputs/multiply_negative_integer_factor-pcb_example1.xy
new file mode 100644
index 0000000..8fc8f45
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_negative_integer_factor-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,-7300.000000,90,top
+R6,"ACY1000","unknown",3225.00,-8550.000000,180,top
+R5,"ACY1000","unknown",3225.00,-8100.000000,180,top
+R8,"ACY1000","unknown",3225.00,-7650.000000,0,top
+R7,"ACY1000","unknown",3225.00,-7200.000000,0,top
+C1,"1206","unknown",950.00,-7550.000000,0,bottom
+C14,"1206","unknown",1225.00,-7200.000000,90,bottom
+D6,"1206","unknown",1125.00,-7750.000000,180,bottom
+C13,"1206","unknown",1615.95,-7476.380000,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,-7200.000000,270,top
+C12,"1206","unknown",1438.19,-7668.100000,270,bottom
+U2,"TO220","unknown",1342.50,-8350.000000,90,top
+D7,"1206","unknown",1775.00,-6700.000000,270,bottom
+D5,"1206","unknown",1125.00,-7550.000000,180,bottom
+R4,"1206","unknown",504.14,-7055.520000,180,bottom
+C15,"1206","unknown",1225.00,-6700.000000,90,bottom
+U1,"TO220","unknown",407.50,-8360.000000,90,top
+R9,"1206","1k",1875.00,-6700.000000,90,bottom
+R10,"1206","1k",1550.00,-6600.000000,0,bottom
+U3,"SO8","unknown",1075.00,-7050.000000,270,bottom
+R11,"1206","10k",1375.00,-6600.000000,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,-7700.000000,0,top
+C2,"1206","unknown",925.00,-6700.000000,270,bottom
+R2,"1206","unknown",506.90,-7502.760000,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,-7250.000000,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,-7250.000000,0,top
+R1,"1206","unknown",425.00,-6750.000000,90,bottom
+C11,"1206","unknown",1336.81,-7668.100000,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,-7250.000000,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,-7700.000000,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,-7700.000000,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,-6700.000000,0,top
+U4,"SO16","unknown",1500.00,-7050.000000,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,-6700.000000,0,top
+R3,"1206","unknown",600.00,-6750.000000,90,bottom
diff --git a/utils/tests/gxyrs/outputs/multiply_negative_integer_factor-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/multiply_negative_integer_factor-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/multiply_negative_real_factor-pcb_example1.xy b/utils/tests/gxyrs/outputs/multiply_negative_real_factor-pcb_example1.xy
new file mode 100644
index 0000000..848230d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_negative_real_factor-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,-9125.000000,90,top
+R6,"ACY1000","unknown",3225.00,-10687.500000,180,top
+R5,"ACY1000","unknown",3225.00,-10125.000000,180,top
+R8,"ACY1000","unknown",3225.00,-9562.500000,0,top
+R7,"ACY1000","unknown",3225.00,-9000.000000,0,top
+C1,"1206","unknown",950.00,-9437.500000,0,bottom
+C14,"1206","unknown",1225.00,-9000.000000,90,bottom
+D6,"1206","unknown",1125.00,-9687.500000,180,bottom
+C13,"1206","unknown",1615.95,-9345.475000,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,-9000.000000,270,top
+C12,"1206","unknown",1438.19,-9585.125000,270,bottom
+U2,"TO220","unknown",1342.50,-10437.500000,90,top
+D7,"1206","unknown",1775.00,-8375.000000,270,bottom
+D5,"1206","unknown",1125.00,-9437.500000,180,bottom
+R4,"1206","unknown",504.14,-8819.400000,180,bottom
+C15,"1206","unknown",1225.00,-8375.000000,90,bottom
+U1,"TO220","unknown",407.50,-10450.000000,90,top
+R9,"1206","1k",1875.00,-8375.000000,90,bottom
+R10,"1206","1k",1550.00,-8250.000000,0,bottom
+U3,"SO8","unknown",1075.00,-8812.500000,270,bottom
+R11,"1206","10k",1375.00,-8250.000000,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,-9625.000000,0,top
+C2,"1206","unknown",925.00,-8375.000000,270,bottom
+R2,"1206","unknown",506.90,-9378.450000,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,-9062.500000,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,-9062.500000,0,top
+R1,"1206","unknown",425.00,-8437.500000,90,bottom
+C11,"1206","unknown",1336.81,-9585.125000,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,-9062.500000,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,-9625.000000,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,-9625.000000,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,-8375.000000,0,top
+U4,"SO16","unknown",1500.00,-8812.500000,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,-8375.000000,0,top
+R3,"1206","unknown",600.00,-8437.500000,90,bottom
diff --git a/utils/tests/gxyrs/outputs/multiply_negative_real_factor-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/multiply_negative_real_factor-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/multiply_real_factor-pcb_example1.xy b/utils/tests/gxyrs/outputs/multiply_real_factor-pcb_example1.xy
new file mode 100644
index 0000000..8f888df
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_real_factor-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,9125.000000,90,top
+R6,"ACY1000","unknown",3225.00,10687.500000,180,top
+R5,"ACY1000","unknown",3225.00,10125.000000,180,top
+R8,"ACY1000","unknown",3225.00,9562.500000,0,top
+R7,"ACY1000","unknown",3225.00,9000.000000,0,top
+C1,"1206","unknown",950.00,9437.500000,0,bottom
+C14,"1206","unknown",1225.00,9000.000000,90,bottom
+D6,"1206","unknown",1125.00,9687.500000,180,bottom
+C13,"1206","unknown",1615.95,9345.475000,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,9000.000000,270,top
+C12,"1206","unknown",1438.19,9585.125000,270,bottom
+U2,"TO220","unknown",1342.50,10437.500000,90,top
+D7,"1206","unknown",1775.00,8375.000000,270,bottom
+D5,"1206","unknown",1125.00,9437.500000,180,bottom
+R4,"1206","unknown",504.14,8819.400000,180,bottom
+C15,"1206","unknown",1225.00,8375.000000,90,bottom
+U1,"TO220","unknown",407.50,10450.000000,90,top
+R9,"1206","1k",1875.00,8375.000000,90,bottom
+R10,"1206","1k",1550.00,8250.000000,0,bottom
+U3,"SO8","unknown",1075.00,8812.500000,270,bottom
+R11,"1206","10k",1375.00,8250.000000,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,9625.000000,0,top
+C2,"1206","unknown",925.00,8375.000000,270,bottom
+R2,"1206","unknown",506.90,9378.450000,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,9062.500000,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,9062.500000,0,top
+R1,"1206","unknown",425.00,8437.500000,90,bottom
+C11,"1206","unknown",1336.81,9585.125000,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,9062.500000,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,9625.000000,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,9625.000000,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,8375.000000,0,top
+U4,"SO16","unknown",1500.00,8812.500000,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,8375.000000,0,top
+R3,"1206","unknown",600.00,8437.500000,90,bottom
diff --git a/utils/tests/gxyrs/outputs/multiply_real_factor-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/multiply_real_factor-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/multiply_with_checklist-pcb_example1.xy b/utils/tests/gxyrs/outputs/multiply_with_checklist-pcb_example1.xy
new file mode 100644
index 0000000..5effa79
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/multiply_with_checklist-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,-8550.000000,180,top
+R5,"ACY1000","unknown",3225.00,-8100.000000,180,top
+R8,"ACY1000","unknown",3225.00,-7650.000000,0,top
+R7,"ACY1000","unknown",3225.00,-7200.000000,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,-7055.520000,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,-6700.000000,90,bottom
+R10,"1206","1k",1550.00,-6600.000000,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,-6600.000000,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,-7502.760000,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,-6750.000000,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,-6750.000000,90,bottom
diff --git a/utils/tests/gxyrs/outputs/multiply_with_checklist-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/multiply_with_checklist-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..559f994
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_bad_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
+Error: add_number_to_col: wrong column argument: 4d.
diff --git a/utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..ba3b700
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_bad_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
+Error: add_number_to_col: wrong column argument: d4.
diff --git a/utils/tests/gxyrs/outputs/offset_check_columns_match-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_check_columns_match-pcb_example1.xy
new file mode 100644
index 0000000..fe66459
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_check_columns_match-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3325,4275.00,180,top
+R5,"ACY1000","unknown",3325,4050.00,180,top
+R8,"ACY1000","unknown",3325,3825.00,0,top
+R7,"ACY1000","unknown",3325,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",604.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1975,3350.00,90,bottom
+R10,"1206","1k",1650,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1475,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",606.9,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",525,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",700,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_check_columns_match-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_check_columns_match-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/offset_check_columns_no_match-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_check_columns_no_match-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_check_columns_no_match-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_check_columns_no_match-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_check_columns_no_match-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy-error
new file mode 100644
index 0000000..d62840d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_check_columns_return_minus1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..2671611
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
+Error: add_number_to_col: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/offset_match_negative_offset-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_match_negative_offset-pcb_example1.xy
new file mode 100644
index 0000000..d729afb
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_match_negative_offset-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3125,4275.00,180,top
+R5,"ACY1000","unknown",3125,4050.00,180,top
+R8,"ACY1000","unknown",3125,3825.00,0,top
+R7,"ACY1000","unknown",3125,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",404.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1775,3350.00,90,bottom
+R10,"1206","1k",1450,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1275,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",406.9,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",325,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",500,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_match_negative_offset-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_match_negative_offset-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/offset_match_negative_real_offset-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_match_negative_real_offset-pcb_example1.xy
new file mode 100644
index 0000000..550c389
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_match_negative_real_offset-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3214.7,4275.00,180,top
+R5,"ACY1000","unknown",3214.7,4050.00,180,top
+R8,"ACY1000","unknown",3214.7,3825.00,0,top
+R7,"ACY1000","unknown",3214.7,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",493.84,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1864.7,3350.00,90,bottom
+R10,"1206","1k",1539.7,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1364.7,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",496.6,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",414.7,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",589.7,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_match_negative_real_offset-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_match_negative_real_offset-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy-error
new file mode 100644
index 0000000..19f4537
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_match_offset_with_units_but_no_units_in_file-pcb_example1.xy-error
@@ -0,0 +1,22 @@
+Error: add_number_to_col: Offset has units, but number 3225.00 has no units.
+Error: add_number_to_col: Offset has units, but number 3225.00 has no units.
+Error: add_number_to_col: Offset has units, but number 3225.00 has no units.
+Error: add_number_to_col: Offset has units, but number 3225.00 has no units.
+Error: add_number_to_col: Offset has units, but number 504.14 has no units.
+Error: add_number_to_col: Offset has units, but number 1875.00 has no units.
+Error: add_number_to_col: Offset has units, but number 1550.00 has no units.
+Error: add_number_to_col: Offset has units, but number 1375.00 has no units.
+Error: add_number_to_col: Offset has units, but number 506.90 has no units.
+Error: add_number_to_col: Offset has units, but number 425.00 has no units.
+Error: add_number_to_col: Offset has units, but number 600.00 has no units.
+Error: add_number_to_col: Offset has units, but number 3225.00 has no units.
+Error: add_number_to_col: Offset has units, but number 3225.00 has no units.
+Error: add_number_to_col: Offset has units, but number 3225.00 has no units.
+Error: add_number_to_col: Offset has units, but number 3225.00 has no units.
+Error: add_number_to_col: Offset has units, but number 504.14 has no units.
+Error: add_number_to_col: Offset has units, but number 1875.00 has no units.
+Error: add_number_to_col: Offset has units, but number 1550.00 has no units.
+Error: add_number_to_col: Offset has units, but number 1375.00 has no units.
+Error: add_number_to_col: Offset has units, but number 506.90 has no units.
+Error: add_number_to_col: Offset has units, but number 425.00 has no units.
+Error: add_number_to_col: Offset has units, but number 600.00 has no units.
diff --git a/utils/tests/gxyrs/outputs/offset_match_real_offset-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_match_real_offset-pcb_example1.xy
new file mode 100644
index 0000000..d71e0e9
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_match_real_offset-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3235.3,4275.00,180,top
+R5,"ACY1000","unknown",3235.3,4050.00,180,top
+R8,"ACY1000","unknown",3235.3,3825.00,0,top
+R7,"ACY1000","unknown",3235.3,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",514.44,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1885.3,3350.00,90,bottom
+R10,"1206","1k",1560.3,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1385.3,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",517.2,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",435.3,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",610.3,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_match_real_offset-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_match_real_offset-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..91cd836
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/offset_negative_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
+Error: add_number_to_col: wrong column argument: -4.
diff --git a/utils/tests/gxyrs/outputs/output_delimiter-pcb_example1.xy b/utils/tests/gxyrs/outputs/output_delimiter-pcb_example1.xy
new file mode 100644
index 0000000..7926249
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/output_delimiter-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4 "CONNECTOR-3-1" "unknown" 2000.00 3650.00 90  top   
+R6    "ACY1000"       "unknown" 3225.00 4275.00 180 top   
+R5    "ACY1000"       "unknown" 3225.00 4050.00 180 top   
+R8    "ACY1000"       "unknown" 3225.00 3825.00 0   top   
+R7    "ACY1000"       "unknown" 3225.00 3600.00 0   top   
+C1    "1206"          "unknown" 950.00  3775.00 0   bottom
+C14   "1206"          "unknown" 1225.00 3600.00 90  bottom
+D6    "1206"          "unknown" 1125.00 3875.00 180 bottom
+C13   "1206"          "unknown" 1615.95 3738.19 180 bottom
+CONN3 "CONNECTOR-4-1" "unknown" 2225.00 3600.00 270 top   
+C12   "1206"          "unknown" 1438.19 3834.05 270 bottom
+U2    "TO220"         "unknown" 1342.50 4175.00 90  top   
+D7    "1206"          "unknown" 1775.00 3350.00 270 bottom
+D5    "1206"          "unknown" 1125.00 3775.00 180 bottom
+R4    "1206"          "unknown" 504.14  3527.76 180 bottom
+C15   "1206"          "unknown" 1225.00 3350.00 90  bottom
+U1    "TO220"         "unknown" 407.50  4180.00 90  top   
+R9    "1206"          "1k"      1875.00 3350.00 90  bottom
+R10   "1206"          "1k"      1550.00 3300.00 0   bottom
+U3    "SO8"           "unknown" 1075.00 3525.00 270 bottom
+R11   "1206"          "10k"     1375.00 3300.00 180 bottom
+D2    "CONNECTOR-2-1" "unknown" 500.00  3850.00 0   top   
+C2    "1206"          "unknown" 925.00  3350.00 270 bottom
+R2    "1206"          "unknown" 506.90  3751.38 180 bottom
+CONN1 "CONNECTOR-2-1" "unknown" 275.00  3625.00 0   top   
+D4    "CONNECTOR-2-1" "unknown" 500.00  3625.00 0   top   
+R1    "1206"          "unknown" 425.00  3375.00 90  bottom
+C11   "1206"          "unknown" 1336.81 3834.05 90  bottom
+CONN2 "CONNECTOR-2-1" "unknown" 750.00  3625.00 0   top   
+S2    "CONNECTOR-2-1" "unknown" 750.00  3850.00 180 top   
+S1    "CONNECTOR-2-1" "unknown" 275.00  3850.00 0   top   
+D3    "CONNECTOR-2-1" "unknown" 750.00  3350.00 0   top   
+U4    "SO16"          "unknown" 1500.00 3525.00 90  bottom
+D1    "CONNECTOR-2-1" "unknown" 275.00  3350.00 0   top   
+R3    "1206"          "unknown" 600.00  3375.00 90  bottom
diff --git a/utils/tests/gxyrs/outputs/output_delimiter-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/output_delimiter-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..b12314c
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..8804054
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_ref_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..b12314c
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_x_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..8804054
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_x_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..b12314c
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_y_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
+Error: panelize_xyrs: wrong column argument: d2.
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..8804054
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_bad_y_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
+Error: panelize_xyrs: wrong column argument: 2d.
diff --git a/utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..29fddf4
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_negative_ref_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..29fddf4
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_negative_x_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..29fddf4
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_negative_y_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
+Error: panelize_xyrs: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..8c0e150
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_ref_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/panelize_tabulate-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_tabulate-pcb_example1.xy
new file mode 100644
index 0000000..bf2c302
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_tabulate-pcb_example1.xy
@@ -0,0 +1,7883 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4-0-0   "CONNECTOR-3-1" "unknown" 2000.00 3650.00  90  top   
+CONN4-0-1   "CONNECTOR-3-1" "unknown" 2000    5150     90  top   
+CONN4-0-2   "CONNECTOR-3-1" "unknown" 2000    6650     90  top   
+CONN4-0-3   "CONNECTOR-3-1" "unknown" 2000    8150     90  top   
+CONN4-0-4   "CONNECTOR-3-1" "unknown" 2000    9650     90  top   
+CONN4-0-5   "CONNECTOR-3-1" "unknown" 2000    11150    90  top   
+CONN4-0-6   "CONNECTOR-3-1" "unknown" 2000    12650    90  top   
+CONN4-0-7   "CONNECTOR-3-1" "unknown" 2000    14150    90  top   
+CONN4-0-8   "CONNECTOR-3-1" "unknown" 2000    15650    90  top   
+CONN4-0-9   "CONNECTOR-3-1" "unknown" 2000    17150    90  top   
+CONN4-0-10  "CONNECTOR-3-1" "unknown" 2000    18650    90  top   
+CONN4-0-11  "CONNECTOR-3-1" "unknown" 2000    20150    90  top   
+CONN4-0-12  "CONNECTOR-3-1" "unknown" 2000    21650    90  top   
+CONN4-0-13  "CONNECTOR-3-1" "unknown" 2000    23150    90  top   
+CONN4-0-14  "CONNECTOR-3-1" "unknown" 2000    24650    90  top   
+CONN4-1-0   "CONNECTOR-3-1" "unknown" 2500    3650     90  top   
+CONN4-1-1   "CONNECTOR-3-1" "unknown" 2500    5150     90  top   
+CONN4-1-2   "CONNECTOR-3-1" "unknown" 2500    6650     90  top   
+CONN4-1-3   "CONNECTOR-3-1" "unknown" 2500    8150     90  top   
+CONN4-1-4   "CONNECTOR-3-1" "unknown" 2500    9650     90  top   
+CONN4-1-5   "CONNECTOR-3-1" "unknown" 2500    11150    90  top   
+CONN4-1-6   "CONNECTOR-3-1" "unknown" 2500    12650    90  top   
+CONN4-1-7   "CONNECTOR-3-1" "unknown" 2500    14150    90  top   
+CONN4-1-8   "CONNECTOR-3-1" "unknown" 2500    15650    90  top   
+CONN4-1-9   "CONNECTOR-3-1" "unknown" 2500    17150    90  top   
+CONN4-1-10  "CONNECTOR-3-1" "unknown" 2500    18650    90  top   
+CONN4-1-11  "CONNECTOR-3-1" "unknown" 2500    20150    90  top   
+CONN4-1-12  "CONNECTOR-3-1" "unknown" 2500    21650    90  top   
+CONN4-1-13  "CONNECTOR-3-1" "unknown" 2500    23150    90  top   
+CONN4-1-14  "CONNECTOR-3-1" "unknown" 2500    24650    90  top   
+CONN4-2-0   "CONNECTOR-3-1" "unknown" 3000    3650     90  top   
+CONN4-2-1   "CONNECTOR-3-1" "unknown" 3000    5150     90  top   
+CONN4-2-2   "CONNECTOR-3-1" "unknown" 3000    6650     90  top   
+CONN4-2-3   "CONNECTOR-3-1" "unknown" 3000    8150     90  top   
+CONN4-2-4   "CONNECTOR-3-1" "unknown" 3000    9650     90  top   
+CONN4-2-5   "CONNECTOR-3-1" "unknown" 3000    11150    90  top   
+CONN4-2-6   "CONNECTOR-3-1" "unknown" 3000    12650    90  top   
+CONN4-2-7   "CONNECTOR-3-1" "unknown" 3000    14150    90  top   
+CONN4-2-8   "CONNECTOR-3-1" "unknown" 3000    15650    90  top   
+CONN4-2-9   "CONNECTOR-3-1" "unknown" 3000    17150    90  top   
+CONN4-2-10  "CONNECTOR-3-1" "unknown" 3000    18650    90  top   
+CONN4-2-11  "CONNECTOR-3-1" "unknown" 3000    20150    90  top   
+CONN4-2-12  "CONNECTOR-3-1" "unknown" 3000    21650    90  top   
+CONN4-2-13  "CONNECTOR-3-1" "unknown" 3000    23150    90  top   
+CONN4-2-14  "CONNECTOR-3-1" "unknown" 3000    24650    90  top   
+CONN4-3-0   "CONNECTOR-3-1" "unknown" 3500    3650     90  top   
+CONN4-3-1   "CONNECTOR-3-1" "unknown" 3500    5150     90  top   
+CONN4-3-2   "CONNECTOR-3-1" "unknown" 3500    6650     90  top   
+CONN4-3-3   "CONNECTOR-3-1" "unknown" 3500    8150     90  top   
+CONN4-3-4   "CONNECTOR-3-1" "unknown" 3500    9650     90  top   
+CONN4-3-5   "CONNECTOR-3-1" "unknown" 3500    11150    90  top   
+CONN4-3-6   "CONNECTOR-3-1" "unknown" 3500    12650    90  top   
+CONN4-3-7   "CONNECTOR-3-1" "unknown" 3500    14150    90  top   
+CONN4-3-8   "CONNECTOR-3-1" "unknown" 3500    15650    90  top   
+CONN4-3-9   "CONNECTOR-3-1" "unknown" 3500    17150    90  top   
+CONN4-3-10  "CONNECTOR-3-1" "unknown" 3500    18650    90  top   
+CONN4-3-11  "CONNECTOR-3-1" "unknown" 3500    20150    90  top   
+CONN4-3-12  "CONNECTOR-3-1" "unknown" 3500    21650    90  top   
+CONN4-3-13  "CONNECTOR-3-1" "unknown" 3500    23150    90  top   
+CONN4-3-14  "CONNECTOR-3-1" "unknown" 3500    24650    90  top   
+CONN4-4-0   "CONNECTOR-3-1" "unknown" 4000    3650     90  top   
+CONN4-4-1   "CONNECTOR-3-1" "unknown" 4000    5150     90  top   
+CONN4-4-2   "CONNECTOR-3-1" "unknown" 4000    6650     90  top   
+CONN4-4-3   "CONNECTOR-3-1" "unknown" 4000    8150     90  top   
+CONN4-4-4   "CONNECTOR-3-1" "unknown" 4000    9650     90  top   
+CONN4-4-5   "CONNECTOR-3-1" "unknown" 4000    11150    90  top   
+CONN4-4-6   "CONNECTOR-3-1" "unknown" 4000    12650    90  top   
+CONN4-4-7   "CONNECTOR-3-1" "unknown" 4000    14150    90  top   
+CONN4-4-8   "CONNECTOR-3-1" "unknown" 4000    15650    90  top   
+CONN4-4-9   "CONNECTOR-3-1" "unknown" 4000    17150    90  top   
+CONN4-4-10  "CONNECTOR-3-1" "unknown" 4000    18650    90  top   
+CONN4-4-11  "CONNECTOR-3-1" "unknown" 4000    20150    90  top   
+CONN4-4-12  "CONNECTOR-3-1" "unknown" 4000    21650    90  top   
+CONN4-4-13  "CONNECTOR-3-1" "unknown" 4000    23150    90  top   
+CONN4-4-14  "CONNECTOR-3-1" "unknown" 4000    24650    90  top   
+CONN4-5-0   "CONNECTOR-3-1" "unknown" 4500    3650     90  top   
+CONN4-5-1   "CONNECTOR-3-1" "unknown" 4500    5150     90  top   
+CONN4-5-2   "CONNECTOR-3-1" "unknown" 4500    6650     90  top   
+CONN4-5-3   "CONNECTOR-3-1" "unknown" 4500    8150     90  top   
+CONN4-5-4   "CONNECTOR-3-1" "unknown" 4500    9650     90  top   
+CONN4-5-5   "CONNECTOR-3-1" "unknown" 4500    11150    90  top   
+CONN4-5-6   "CONNECTOR-3-1" "unknown" 4500    12650    90  top   
+CONN4-5-7   "CONNECTOR-3-1" "unknown" 4500    14150    90  top   
+CONN4-5-8   "CONNECTOR-3-1" "unknown" 4500    15650    90  top   
+CONN4-5-9   "CONNECTOR-3-1" "unknown" 4500    17150    90  top   
+CONN4-5-10  "CONNECTOR-3-1" "unknown" 4500    18650    90  top   
+CONN4-5-11  "CONNECTOR-3-1" "unknown" 4500    20150    90  top   
+CONN4-5-12  "CONNECTOR-3-1" "unknown" 4500    21650    90  top   
+CONN4-5-13  "CONNECTOR-3-1" "unknown" 4500    23150    90  top   
+CONN4-5-14  "CONNECTOR-3-1" "unknown" 4500    24650    90  top   
+CONN4-6-0   "CONNECTOR-3-1" "unknown" 5000    3650     90  top   
+CONN4-6-1   "CONNECTOR-3-1" "unknown" 5000    5150     90  top   
+CONN4-6-2   "CONNECTOR-3-1" "unknown" 5000    6650     90  top   
+CONN4-6-3   "CONNECTOR-3-1" "unknown" 5000    8150     90  top   
+CONN4-6-4   "CONNECTOR-3-1" "unknown" 5000    9650     90  top   
+CONN4-6-5   "CONNECTOR-3-1" "unknown" 5000    11150    90  top   
+CONN4-6-6   "CONNECTOR-3-1" "unknown" 5000    12650    90  top   
+CONN4-6-7   "CONNECTOR-3-1" "unknown" 5000    14150    90  top   
+CONN4-6-8   "CONNECTOR-3-1" "unknown" 5000    15650    90  top   
+CONN4-6-9   "CONNECTOR-3-1" "unknown" 5000    17150    90  top   
+CONN4-6-10  "CONNECTOR-3-1" "unknown" 5000    18650    90  top   
+CONN4-6-11  "CONNECTOR-3-1" "unknown" 5000    20150    90  top   
+CONN4-6-12  "CONNECTOR-3-1" "unknown" 5000    21650    90  top   
+CONN4-6-13  "CONNECTOR-3-1" "unknown" 5000    23150    90  top   
+CONN4-6-14  "CONNECTOR-3-1" "unknown" 5000    24650    90  top   
+CONN4-7-0   "CONNECTOR-3-1" "unknown" 5500    3650     90  top   
+CONN4-7-1   "CONNECTOR-3-1" "unknown" 5500    5150     90  top   
+CONN4-7-2   "CONNECTOR-3-1" "unknown" 5500    6650     90  top   
+CONN4-7-3   "CONNECTOR-3-1" "unknown" 5500    8150     90  top   
+CONN4-7-4   "CONNECTOR-3-1" "unknown" 5500    9650     90  top   
+CONN4-7-5   "CONNECTOR-3-1" "unknown" 5500    11150    90  top   
+CONN4-7-6   "CONNECTOR-3-1" "unknown" 5500    12650    90  top   
+CONN4-7-7   "CONNECTOR-3-1" "unknown" 5500    14150    90  top   
+CONN4-7-8   "CONNECTOR-3-1" "unknown" 5500    15650    90  top   
+CONN4-7-9   "CONNECTOR-3-1" "unknown" 5500    17150    90  top   
+CONN4-7-10  "CONNECTOR-3-1" "unknown" 5500    18650    90  top   
+CONN4-7-11  "CONNECTOR-3-1" "unknown" 5500    20150    90  top   
+CONN4-7-12  "CONNECTOR-3-1" "unknown" 5500    21650    90  top   
+CONN4-7-13  "CONNECTOR-3-1" "unknown" 5500    23150    90  top   
+CONN4-7-14  "CONNECTOR-3-1" "unknown" 5500    24650    90  top   
+CONN4-8-0   "CONNECTOR-3-1" "unknown" 6000    3650     90  top   
+CONN4-8-1   "CONNECTOR-3-1" "unknown" 6000    5150     90  top   
+CONN4-8-2   "CONNECTOR-3-1" "unknown" 6000    6650     90  top   
+CONN4-8-3   "CONNECTOR-3-1" "unknown" 6000    8150     90  top   
+CONN4-8-4   "CONNECTOR-3-1" "unknown" 6000    9650     90  top   
+CONN4-8-5   "CONNECTOR-3-1" "unknown" 6000    11150    90  top   
+CONN4-8-6   "CONNECTOR-3-1" "unknown" 6000    12650    90  top   
+CONN4-8-7   "CONNECTOR-3-1" "unknown" 6000    14150    90  top   
+CONN4-8-8   "CONNECTOR-3-1" "unknown" 6000    15650    90  top   
+CONN4-8-9   "CONNECTOR-3-1" "unknown" 6000    17150    90  top   
+CONN4-8-10  "CONNECTOR-3-1" "unknown" 6000    18650    90  top   
+CONN4-8-11  "CONNECTOR-3-1" "unknown" 6000    20150    90  top   
+CONN4-8-12  "CONNECTOR-3-1" "unknown" 6000    21650    90  top   
+CONN4-8-13  "CONNECTOR-3-1" "unknown" 6000    23150    90  top   
+CONN4-8-14  "CONNECTOR-3-1" "unknown" 6000    24650    90  top   
+CONN4-9-0   "CONNECTOR-3-1" "unknown" 6500    3650     90  top   
+CONN4-9-1   "CONNECTOR-3-1" "unknown" 6500    5150     90  top   
+CONN4-9-2   "CONNECTOR-3-1" "unknown" 6500    6650     90  top   
+CONN4-9-3   "CONNECTOR-3-1" "unknown" 6500    8150     90  top   
+CONN4-9-4   "CONNECTOR-3-1" "unknown" 6500    9650     90  top   
+CONN4-9-5   "CONNECTOR-3-1" "unknown" 6500    11150    90  top   
+CONN4-9-6   "CONNECTOR-3-1" "unknown" 6500    12650    90  top   
+CONN4-9-7   "CONNECTOR-3-1" "unknown" 6500    14150    90  top   
+CONN4-9-8   "CONNECTOR-3-1" "unknown" 6500    15650    90  top   
+CONN4-9-9   "CONNECTOR-3-1" "unknown" 6500    17150    90  top   
+CONN4-9-10  "CONNECTOR-3-1" "unknown" 6500    18650    90  top   
+CONN4-9-11  "CONNECTOR-3-1" "unknown" 6500    20150    90  top   
+CONN4-9-12  "CONNECTOR-3-1" "unknown" 6500    21650    90  top   
+CONN4-9-13  "CONNECTOR-3-1" "unknown" 6500    23150    90  top   
+CONN4-9-14  "CONNECTOR-3-1" "unknown" 6500    24650    90  top   
+CONN4-10-0  "CONNECTOR-3-1" "unknown" 7000    3650     90  top   
+CONN4-10-1  "CONNECTOR-3-1" "unknown" 7000    5150     90  top   
+CONN4-10-2  "CONNECTOR-3-1" "unknown" 7000    6650     90  top   
+CONN4-10-3  "CONNECTOR-3-1" "unknown" 7000    8150     90  top   
+CONN4-10-4  "CONNECTOR-3-1" "unknown" 7000    9650     90  top   
+CONN4-10-5  "CONNECTOR-3-1" "unknown" 7000    11150    90  top   
+CONN4-10-6  "CONNECTOR-3-1" "unknown" 7000    12650    90  top   
+CONN4-10-7  "CONNECTOR-3-1" "unknown" 7000    14150    90  top   
+CONN4-10-8  "CONNECTOR-3-1" "unknown" 7000    15650    90  top   
+CONN4-10-9  "CONNECTOR-3-1" "unknown" 7000    17150    90  top   
+CONN4-10-10 "CONNECTOR-3-1" "unknown" 7000    18650    90  top   
+CONN4-10-11 "CONNECTOR-3-1" "unknown" 7000    20150    90  top   
+CONN4-10-12 "CONNECTOR-3-1" "unknown" 7000    21650    90  top   
+CONN4-10-13 "CONNECTOR-3-1" "unknown" 7000    23150    90  top   
+CONN4-10-14 "CONNECTOR-3-1" "unknown" 7000    24650    90  top   
+CONN4-11-0  "CONNECTOR-3-1" "unknown" 7500    3650     90  top   
+CONN4-11-1  "CONNECTOR-3-1" "unknown" 7500    5150     90  top   
+CONN4-11-2  "CONNECTOR-3-1" "unknown" 7500    6650     90  top   
+CONN4-11-3  "CONNECTOR-3-1" "unknown" 7500    8150     90  top   
+CONN4-11-4  "CONNECTOR-3-1" "unknown" 7500    9650     90  top   
+CONN4-11-5  "CONNECTOR-3-1" "unknown" 7500    11150    90  top   
+CONN4-11-6  "CONNECTOR-3-1" "unknown" 7500    12650    90  top   
+CONN4-11-7  "CONNECTOR-3-1" "unknown" 7500    14150    90  top   
+CONN4-11-8  "CONNECTOR-3-1" "unknown" 7500    15650    90  top   
+CONN4-11-9  "CONNECTOR-3-1" "unknown" 7500    17150    90  top   
+CONN4-11-10 "CONNECTOR-3-1" "unknown" 7500    18650    90  top   
+CONN4-11-11 "CONNECTOR-3-1" "unknown" 7500    20150    90  top   
+CONN4-11-12 "CONNECTOR-3-1" "unknown" 7500    21650    90  top   
+CONN4-11-13 "CONNECTOR-3-1" "unknown" 7500    23150    90  top   
+CONN4-11-14 "CONNECTOR-3-1" "unknown" 7500    24650    90  top   
+CONN4-12-0  "CONNECTOR-3-1" "unknown" 8000    3650     90  top   
+CONN4-12-1  "CONNECTOR-3-1" "unknown" 8000    5150     90  top   
+CONN4-12-2  "CONNECTOR-3-1" "unknown" 8000    6650     90  top   
+CONN4-12-3  "CONNECTOR-3-1" "unknown" 8000    8150     90  top   
+CONN4-12-4  "CONNECTOR-3-1" "unknown" 8000    9650     90  top   
+CONN4-12-5  "CONNECTOR-3-1" "unknown" 8000    11150    90  top   
+CONN4-12-6  "CONNECTOR-3-1" "unknown" 8000    12650    90  top   
+CONN4-12-7  "CONNECTOR-3-1" "unknown" 8000    14150    90  top   
+CONN4-12-8  "CONNECTOR-3-1" "unknown" 8000    15650    90  top   
+CONN4-12-9  "CONNECTOR-3-1" "unknown" 8000    17150    90  top   
+CONN4-12-10 "CONNECTOR-3-1" "unknown" 8000    18650    90  top   
+CONN4-12-11 "CONNECTOR-3-1" "unknown" 8000    20150    90  top   
+CONN4-12-12 "CONNECTOR-3-1" "unknown" 8000    21650    90  top   
+CONN4-12-13 "CONNECTOR-3-1" "unknown" 8000    23150    90  top   
+CONN4-12-14 "CONNECTOR-3-1" "unknown" 8000    24650    90  top   
+CONN4-13-0  "CONNECTOR-3-1" "unknown" 8500    3650     90  top   
+CONN4-13-1  "CONNECTOR-3-1" "unknown" 8500    5150     90  top   
+CONN4-13-2  "CONNECTOR-3-1" "unknown" 8500    6650     90  top   
+CONN4-13-3  "CONNECTOR-3-1" "unknown" 8500    8150     90  top   
+CONN4-13-4  "CONNECTOR-3-1" "unknown" 8500    9650     90  top   
+CONN4-13-5  "CONNECTOR-3-1" "unknown" 8500    11150    90  top   
+CONN4-13-6  "CONNECTOR-3-1" "unknown" 8500    12650    90  top   
+CONN4-13-7  "CONNECTOR-3-1" "unknown" 8500    14150    90  top   
+CONN4-13-8  "CONNECTOR-3-1" "unknown" 8500    15650    90  top   
+CONN4-13-9  "CONNECTOR-3-1" "unknown" 8500    17150    90  top   
+CONN4-13-10 "CONNECTOR-3-1" "unknown" 8500    18650    90  top   
+CONN4-13-11 "CONNECTOR-3-1" "unknown" 8500    20150    90  top   
+CONN4-13-12 "CONNECTOR-3-1" "unknown" 8500    21650    90  top   
+CONN4-13-13 "CONNECTOR-3-1" "unknown" 8500    23150    90  top   
+CONN4-13-14 "CONNECTOR-3-1" "unknown" 8500    24650    90  top   
+CONN4-14-0  "CONNECTOR-3-1" "unknown" 9000    3650     90  top   
+CONN4-14-1  "CONNECTOR-3-1" "unknown" 9000    5150     90  top   
+CONN4-14-2  "CONNECTOR-3-1" "unknown" 9000    6650     90  top   
+CONN4-14-3  "CONNECTOR-3-1" "unknown" 9000    8150     90  top   
+CONN4-14-4  "CONNECTOR-3-1" "unknown" 9000    9650     90  top   
+CONN4-14-5  "CONNECTOR-3-1" "unknown" 9000    11150    90  top   
+CONN4-14-6  "CONNECTOR-3-1" "unknown" 9000    12650    90  top   
+CONN4-14-7  "CONNECTOR-3-1" "unknown" 9000    14150    90  top   
+CONN4-14-8  "CONNECTOR-3-1" "unknown" 9000    15650    90  top   
+CONN4-14-9  "CONNECTOR-3-1" "unknown" 9000    17150    90  top   
+CONN4-14-10 "CONNECTOR-3-1" "unknown" 9000    18650    90  top   
+CONN4-14-11 "CONNECTOR-3-1" "unknown" 9000    20150    90  top   
+CONN4-14-12 "CONNECTOR-3-1" "unknown" 9000    21650    90  top   
+CONN4-14-13 "CONNECTOR-3-1" "unknown" 9000    23150    90  top   
+CONN4-14-14 "CONNECTOR-3-1" "unknown" 9000    24650    90  top   
+R6-0-0      "ACY1000"       "unknown" 3225.00 4275.00  180 top   
+R6-0-1      "ACY1000"       "unknown" 3225    5775     180 top   
+R6-0-2      "ACY1000"       "unknown" 3225    7275     180 top   
+R6-0-3      "ACY1000"       "unknown" 3225    8775     180 top   
+R6-0-4      "ACY1000"       "unknown" 3225    10275    180 top   
+R6-0-5      "ACY1000"       "unknown" 3225    11775    180 top   
+R6-0-6      "ACY1000"       "unknown" 3225    13275    180 top   
+R6-0-7      "ACY1000"       "unknown" 3225    14775    180 top   
+R6-0-8      "ACY1000"       "unknown" 3225    16275    180 top   
+R6-0-9      "ACY1000"       "unknown" 3225    17775    180 top   
+R6-0-10     "ACY1000"       "unknown" 3225    19275    180 top   
+R6-0-11     "ACY1000"       "unknown" 3225    20775    180 top   
+R6-0-12     "ACY1000"       "unknown" 3225    22275    180 top   
+R6-0-13     "ACY1000"       "unknown" 3225    23775    180 top   
+R6-0-14     "ACY1000"       "unknown" 3225    25275    180 top   
+R6-1-0      "ACY1000"       "unknown" 3725    4275     180 top   
+R6-1-1      "ACY1000"       "unknown" 3725    5775     180 top   
+R6-1-2      "ACY1000"       "unknown" 3725    7275     180 top   
+R6-1-3      "ACY1000"       "unknown" 3725    8775     180 top   
+R6-1-4      "ACY1000"       "unknown" 3725    10275    180 top   
+R6-1-5      "ACY1000"       "unknown" 3725    11775    180 top   
+R6-1-6      "ACY1000"       "unknown" 3725    13275    180 top   
+R6-1-7      "ACY1000"       "unknown" 3725    14775    180 top   
+R6-1-8      "ACY1000"       "unknown" 3725    16275    180 top   
+R6-1-9      "ACY1000"       "unknown" 3725    17775    180 top   
+R6-1-10     "ACY1000"       "unknown" 3725    19275    180 top   
+R6-1-11     "ACY1000"       "unknown" 3725    20775    180 top   
+R6-1-12     "ACY1000"       "unknown" 3725    22275    180 top   
+R6-1-13     "ACY1000"       "unknown" 3725    23775    180 top   
+R6-1-14     "ACY1000"       "unknown" 3725    25275    180 top   
+R6-2-0      "ACY1000"       "unknown" 4225    4275     180 top   
+R6-2-1      "ACY1000"       "unknown" 4225    5775     180 top   
+R6-2-2      "ACY1000"       "unknown" 4225    7275     180 top   
+R6-2-3      "ACY1000"       "unknown" 4225    8775     180 top   
+R6-2-4      "ACY1000"       "unknown" 4225    10275    180 top   
+R6-2-5      "ACY1000"       "unknown" 4225    11775    180 top   
+R6-2-6      "ACY1000"       "unknown" 4225    13275    180 top   
+R6-2-7      "ACY1000"       "unknown" 4225    14775    180 top   
+R6-2-8      "ACY1000"       "unknown" 4225    16275    180 top   
+R6-2-9      "ACY1000"       "unknown" 4225    17775    180 top   
+R6-2-10     "ACY1000"       "unknown" 4225    19275    180 top   
+R6-2-11     "ACY1000"       "unknown" 4225    20775    180 top   
+R6-2-12     "ACY1000"       "unknown" 4225    22275    180 top   
+R6-2-13     "ACY1000"       "unknown" 4225    23775    180 top   
+R6-2-14     "ACY1000"       "unknown" 4225    25275    180 top   
+R6-3-0      "ACY1000"       "unknown" 4725    4275     180 top   
+R6-3-1      "ACY1000"       "unknown" 4725    5775     180 top   
+R6-3-2      "ACY1000"       "unknown" 4725    7275     180 top   
+R6-3-3      "ACY1000"       "unknown" 4725    8775     180 top   
+R6-3-4      "ACY1000"       "unknown" 4725    10275    180 top   
+R6-3-5      "ACY1000"       "unknown" 4725    11775    180 top   
+R6-3-6      "ACY1000"       "unknown" 4725    13275    180 top   
+R6-3-7      "ACY1000"       "unknown" 4725    14775    180 top   
+R6-3-8      "ACY1000"       "unknown" 4725    16275    180 top   
+R6-3-9      "ACY1000"       "unknown" 4725    17775    180 top   
+R6-3-10     "ACY1000"       "unknown" 4725    19275    180 top   
+R6-3-11     "ACY1000"       "unknown" 4725    20775    180 top   
+R6-3-12     "ACY1000"       "unknown" 4725    22275    180 top   
+R6-3-13     "ACY1000"       "unknown" 4725    23775    180 top   
+R6-3-14     "ACY1000"       "unknown" 4725    25275    180 top   
+R6-4-0      "ACY1000"       "unknown" 5225    4275     180 top   
+R6-4-1      "ACY1000"       "unknown" 5225    5775     180 top   
+R6-4-2      "ACY1000"       "unknown" 5225    7275     180 top   
+R6-4-3      "ACY1000"       "unknown" 5225    8775     180 top   
+R6-4-4      "ACY1000"       "unknown" 5225    10275    180 top   
+R6-4-5      "ACY1000"       "unknown" 5225    11775    180 top   
+R6-4-6      "ACY1000"       "unknown" 5225    13275    180 top   
+R6-4-7      "ACY1000"       "unknown" 5225    14775    180 top   
+R6-4-8      "ACY1000"       "unknown" 5225    16275    180 top   
+R6-4-9      "ACY1000"       "unknown" 5225    17775    180 top   
+R6-4-10     "ACY1000"       "unknown" 5225    19275    180 top   
+R6-4-11     "ACY1000"       "unknown" 5225    20775    180 top   
+R6-4-12     "ACY1000"       "unknown" 5225    22275    180 top   
+R6-4-13     "ACY1000"       "unknown" 5225    23775    180 top   
+R6-4-14     "ACY1000"       "unknown" 5225    25275    180 top   
+R6-5-0      "ACY1000"       "unknown" 5725    4275     180 top   
+R6-5-1      "ACY1000"       "unknown" 5725    5775     180 top   
+R6-5-2      "ACY1000"       "unknown" 5725    7275     180 top   
+R6-5-3      "ACY1000"       "unknown" 5725    8775     180 top   
+R6-5-4      "ACY1000"       "unknown" 5725    10275    180 top   
+R6-5-5      "ACY1000"       "unknown" 5725    11775    180 top   
+R6-5-6      "ACY1000"       "unknown" 5725    13275    180 top   
+R6-5-7      "ACY1000"       "unknown" 5725    14775    180 top   
+R6-5-8      "ACY1000"       "unknown" 5725    16275    180 top   
+R6-5-9      "ACY1000"       "unknown" 5725    17775    180 top   
+R6-5-10     "ACY1000"       "unknown" 5725    19275    180 top   
+R6-5-11     "ACY1000"       "unknown" 5725    20775    180 top   
+R6-5-12     "ACY1000"       "unknown" 5725    22275    180 top   
+R6-5-13     "ACY1000"       "unknown" 5725    23775    180 top   
+R6-5-14     "ACY1000"       "unknown" 5725    25275    180 top   
+R6-6-0      "ACY1000"       "unknown" 6225    4275     180 top   
+R6-6-1      "ACY1000"       "unknown" 6225    5775     180 top   
+R6-6-2      "ACY1000"       "unknown" 6225    7275     180 top   
+R6-6-3      "ACY1000"       "unknown" 6225    8775     180 top   
+R6-6-4      "ACY1000"       "unknown" 6225    10275    180 top   
+R6-6-5      "ACY1000"       "unknown" 6225    11775    180 top   
+R6-6-6      "ACY1000"       "unknown" 6225    13275    180 top   
+R6-6-7      "ACY1000"       "unknown" 6225    14775    180 top   
+R6-6-8      "ACY1000"       "unknown" 6225    16275    180 top   
+R6-6-9      "ACY1000"       "unknown" 6225    17775    180 top   
+R6-6-10     "ACY1000"       "unknown" 6225    19275    180 top   
+R6-6-11     "ACY1000"       "unknown" 6225    20775    180 top   
+R6-6-12     "ACY1000"       "unknown" 6225    22275    180 top   
+R6-6-13     "ACY1000"       "unknown" 6225    23775    180 top   
+R6-6-14     "ACY1000"       "unknown" 6225    25275    180 top   
+R6-7-0      "ACY1000"       "unknown" 6725    4275     180 top   
+R6-7-1      "ACY1000"       "unknown" 6725    5775     180 top   
+R6-7-2      "ACY1000"       "unknown" 6725    7275     180 top   
+R6-7-3      "ACY1000"       "unknown" 6725    8775     180 top   
+R6-7-4      "ACY1000"       "unknown" 6725    10275    180 top   
+R6-7-5      "ACY1000"       "unknown" 6725    11775    180 top   
+R6-7-6      "ACY1000"       "unknown" 6725    13275    180 top   
+R6-7-7      "ACY1000"       "unknown" 6725    14775    180 top   
+R6-7-8      "ACY1000"       "unknown" 6725    16275    180 top   
+R6-7-9      "ACY1000"       "unknown" 6725    17775    180 top   
+R6-7-10     "ACY1000"       "unknown" 6725    19275    180 top   
+R6-7-11     "ACY1000"       "unknown" 6725    20775    180 top   
+R6-7-12     "ACY1000"       "unknown" 6725    22275    180 top   
+R6-7-13     "ACY1000"       "unknown" 6725    23775    180 top   
+R6-7-14     "ACY1000"       "unknown" 6725    25275    180 top   
+R6-8-0      "ACY1000"       "unknown" 7225    4275     180 top   
+R6-8-1      "ACY1000"       "unknown" 7225    5775     180 top   
+R6-8-2      "ACY1000"       "unknown" 7225    7275     180 top   
+R6-8-3      "ACY1000"       "unknown" 7225    8775     180 top   
+R6-8-4      "ACY1000"       "unknown" 7225    10275    180 top   
+R6-8-5      "ACY1000"       "unknown" 7225    11775    180 top   
+R6-8-6      "ACY1000"       "unknown" 7225    13275    180 top   
+R6-8-7      "ACY1000"       "unknown" 7225    14775    180 top   
+R6-8-8      "ACY1000"       "unknown" 7225    16275    180 top   
+R6-8-9      "ACY1000"       "unknown" 7225    17775    180 top   
+R6-8-10     "ACY1000"       "unknown" 7225    19275    180 top   
+R6-8-11     "ACY1000"       "unknown" 7225    20775    180 top   
+R6-8-12     "ACY1000"       "unknown" 7225    22275    180 top   
+R6-8-13     "ACY1000"       "unknown" 7225    23775    180 top   
+R6-8-14     "ACY1000"       "unknown" 7225    25275    180 top   
+R6-9-0      "ACY1000"       "unknown" 7725    4275     180 top   
+R6-9-1      "ACY1000"       "unknown" 7725    5775     180 top   
+R6-9-2      "ACY1000"       "unknown" 7725    7275     180 top   
+R6-9-3      "ACY1000"       "unknown" 7725    8775     180 top   
+R6-9-4      "ACY1000"       "unknown" 7725    10275    180 top   
+R6-9-5      "ACY1000"       "unknown" 7725    11775    180 top   
+R6-9-6      "ACY1000"       "unknown" 7725    13275    180 top   
+R6-9-7      "ACY1000"       "unknown" 7725    14775    180 top   
+R6-9-8      "ACY1000"       "unknown" 7725    16275    180 top   
+R6-9-9      "ACY1000"       "unknown" 7725    17775    180 top   
+R6-9-10     "ACY1000"       "unknown" 7725    19275    180 top   
+R6-9-11     "ACY1000"       "unknown" 7725    20775    180 top   
+R6-9-12     "ACY1000"       "unknown" 7725    22275    180 top   
+R6-9-13     "ACY1000"       "unknown" 7725    23775    180 top   
+R6-9-14     "ACY1000"       "unknown" 7725    25275    180 top   
+R6-10-0     "ACY1000"       "unknown" 8225    4275     180 top   
+R6-10-1     "ACY1000"       "unknown" 8225    5775     180 top   
+R6-10-2     "ACY1000"       "unknown" 8225    7275     180 top   
+R6-10-3     "ACY1000"       "unknown" 8225    8775     180 top   
+R6-10-4     "ACY1000"       "unknown" 8225    10275    180 top   
+R6-10-5     "ACY1000"       "unknown" 8225    11775    180 top   
+R6-10-6     "ACY1000"       "unknown" 8225    13275    180 top   
+R6-10-7     "ACY1000"       "unknown" 8225    14775    180 top   
+R6-10-8     "ACY1000"       "unknown" 8225    16275    180 top   
+R6-10-9     "ACY1000"       "unknown" 8225    17775    180 top   
+R6-10-10    "ACY1000"       "unknown" 8225    19275    180 top   
+R6-10-11    "ACY1000"       "unknown" 8225    20775    180 top   
+R6-10-12    "ACY1000"       "unknown" 8225    22275    180 top   
+R6-10-13    "ACY1000"       "unknown" 8225    23775    180 top   
+R6-10-14    "ACY1000"       "unknown" 8225    25275    180 top   
+R6-11-0     "ACY1000"       "unknown" 8725    4275     180 top   
+R6-11-1     "ACY1000"       "unknown" 8725    5775     180 top   
+R6-11-2     "ACY1000"       "unknown" 8725    7275     180 top   
+R6-11-3     "ACY1000"       "unknown" 8725    8775     180 top   
+R6-11-4     "ACY1000"       "unknown" 8725    10275    180 top   
+R6-11-5     "ACY1000"       "unknown" 8725    11775    180 top   
+R6-11-6     "ACY1000"       "unknown" 8725    13275    180 top   
+R6-11-7     "ACY1000"       "unknown" 8725    14775    180 top   
+R6-11-8     "ACY1000"       "unknown" 8725    16275    180 top   
+R6-11-9     "ACY1000"       "unknown" 8725    17775    180 top   
+R6-11-10    "ACY1000"       "unknown" 8725    19275    180 top   
+R6-11-11    "ACY1000"       "unknown" 8725    20775    180 top   
+R6-11-12    "ACY1000"       "unknown" 8725    22275    180 top   
+R6-11-13    "ACY1000"       "unknown" 8725    23775    180 top   
+R6-11-14    "ACY1000"       "unknown" 8725    25275    180 top   
+R6-12-0     "ACY1000"       "unknown" 9225    4275     180 top   
+R6-12-1     "ACY1000"       "unknown" 9225    5775     180 top   
+R6-12-2     "ACY1000"       "unknown" 9225    7275     180 top   
+R6-12-3     "ACY1000"       "unknown" 9225    8775     180 top   
+R6-12-4     "ACY1000"       "unknown" 9225    10275    180 top   
+R6-12-5     "ACY1000"       "unknown" 9225    11775    180 top   
+R6-12-6     "ACY1000"       "unknown" 9225    13275    180 top   
+R6-12-7     "ACY1000"       "unknown" 9225    14775    180 top   
+R6-12-8     "ACY1000"       "unknown" 9225    16275    180 top   
+R6-12-9     "ACY1000"       "unknown" 9225    17775    180 top   
+R6-12-10    "ACY1000"       "unknown" 9225    19275    180 top   
+R6-12-11    "ACY1000"       "unknown" 9225    20775    180 top   
+R6-12-12    "ACY1000"       "unknown" 9225    22275    180 top   
+R6-12-13    "ACY1000"       "unknown" 9225    23775    180 top   
+R6-12-14    "ACY1000"       "unknown" 9225    25275    180 top   
+R6-13-0     "ACY1000"       "unknown" 9725    4275     180 top   
+R6-13-1     "ACY1000"       "unknown" 9725    5775     180 top   
+R6-13-2     "ACY1000"       "unknown" 9725    7275     180 top   
+R6-13-3     "ACY1000"       "unknown" 9725    8775     180 top   
+R6-13-4     "ACY1000"       "unknown" 9725    10275    180 top   
+R6-13-5     "ACY1000"       "unknown" 9725    11775    180 top   
+R6-13-6     "ACY1000"       "unknown" 9725    13275    180 top   
+R6-13-7     "ACY1000"       "unknown" 9725    14775    180 top   
+R6-13-8     "ACY1000"       "unknown" 9725    16275    180 top   
+R6-13-9     "ACY1000"       "unknown" 9725    17775    180 top   
+R6-13-10    "ACY1000"       "unknown" 9725    19275    180 top   
+R6-13-11    "ACY1000"       "unknown" 9725    20775    180 top   
+R6-13-12    "ACY1000"       "unknown" 9725    22275    180 top   
+R6-13-13    "ACY1000"       "unknown" 9725    23775    180 top   
+R6-13-14    "ACY1000"       "unknown" 9725    25275    180 top   
+R6-14-0     "ACY1000"       "unknown" 10225   4275     180 top   
+R6-14-1     "ACY1000"       "unknown" 10225   5775     180 top   
+R6-14-2     "ACY1000"       "unknown" 10225   7275     180 top   
+R6-14-3     "ACY1000"       "unknown" 10225   8775     180 top   
+R6-14-4     "ACY1000"       "unknown" 10225   10275    180 top   
+R6-14-5     "ACY1000"       "unknown" 10225   11775    180 top   
+R6-14-6     "ACY1000"       "unknown" 10225   13275    180 top   
+R6-14-7     "ACY1000"       "unknown" 10225   14775    180 top   
+R6-14-8     "ACY1000"       "unknown" 10225   16275    180 top   
+R6-14-9     "ACY1000"       "unknown" 10225   17775    180 top   
+R6-14-10    "ACY1000"       "unknown" 10225   19275    180 top   
+R6-14-11    "ACY1000"       "unknown" 10225   20775    180 top   
+R6-14-12    "ACY1000"       "unknown" 10225   22275    180 top   
+R6-14-13    "ACY1000"       "unknown" 10225   23775    180 top   
+R6-14-14    "ACY1000"       "unknown" 10225   25275    180 top   
+R5-0-0      "ACY1000"       "unknown" 3225.00 4050.00  180 top   
+R5-0-1      "ACY1000"       "unknown" 3225    5550     180 top   
+R5-0-2      "ACY1000"       "unknown" 3225    7050     180 top   
+R5-0-3      "ACY1000"       "unknown" 3225    8550     180 top   
+R5-0-4      "ACY1000"       "unknown" 3225    10050    180 top   
+R5-0-5      "ACY1000"       "unknown" 3225    11550    180 top   
+R5-0-6      "ACY1000"       "unknown" 3225    13050    180 top   
+R5-0-7      "ACY1000"       "unknown" 3225    14550    180 top   
+R5-0-8      "ACY1000"       "unknown" 3225    16050    180 top   
+R5-0-9      "ACY1000"       "unknown" 3225    17550    180 top   
+R5-0-10     "ACY1000"       "unknown" 3225    19050    180 top   
+R5-0-11     "ACY1000"       "unknown" 3225    20550    180 top   
+R5-0-12     "ACY1000"       "unknown" 3225    22050    180 top   
+R5-0-13     "ACY1000"       "unknown" 3225    23550    180 top   
+R5-0-14     "ACY1000"       "unknown" 3225    25050    180 top   
+R5-1-0      "ACY1000"       "unknown" 3725    4050     180 top   
+R5-1-1      "ACY1000"       "unknown" 3725    5550     180 top   
+R5-1-2      "ACY1000"       "unknown" 3725    7050     180 top   
+R5-1-3      "ACY1000"       "unknown" 3725    8550     180 top   
+R5-1-4      "ACY1000"       "unknown" 3725    10050    180 top   
+R5-1-5      "ACY1000"       "unknown" 3725    11550    180 top   
+R5-1-6      "ACY1000"       "unknown" 3725    13050    180 top   
+R5-1-7      "ACY1000"       "unknown" 3725    14550    180 top   
+R5-1-8      "ACY1000"       "unknown" 3725    16050    180 top   
+R5-1-9      "ACY1000"       "unknown" 3725    17550    180 top   
+R5-1-10     "ACY1000"       "unknown" 3725    19050    180 top   
+R5-1-11     "ACY1000"       "unknown" 3725    20550    180 top   
+R5-1-12     "ACY1000"       "unknown" 3725    22050    180 top   
+R5-1-13     "ACY1000"       "unknown" 3725    23550    180 top   
+R5-1-14     "ACY1000"       "unknown" 3725    25050    180 top   
+R5-2-0      "ACY1000"       "unknown" 4225    4050     180 top   
+R5-2-1      "ACY1000"       "unknown" 4225    5550     180 top   
+R5-2-2      "ACY1000"       "unknown" 4225    7050     180 top   
+R5-2-3      "ACY1000"       "unknown" 4225    8550     180 top   
+R5-2-4      "ACY1000"       "unknown" 4225    10050    180 top   
+R5-2-5      "ACY1000"       "unknown" 4225    11550    180 top   
+R5-2-6      "ACY1000"       "unknown" 4225    13050    180 top   
+R5-2-7      "ACY1000"       "unknown" 4225    14550    180 top   
+R5-2-8      "ACY1000"       "unknown" 4225    16050    180 top   
+R5-2-9      "ACY1000"       "unknown" 4225    17550    180 top   
+R5-2-10     "ACY1000"       "unknown" 4225    19050    180 top   
+R5-2-11     "ACY1000"       "unknown" 4225    20550    180 top   
+R5-2-12     "ACY1000"       "unknown" 4225    22050    180 top   
+R5-2-13     "ACY1000"       "unknown" 4225    23550    180 top   
+R5-2-14     "ACY1000"       "unknown" 4225    25050    180 top   
+R5-3-0      "ACY1000"       "unknown" 4725    4050     180 top   
+R5-3-1      "ACY1000"       "unknown" 4725    5550     180 top   
+R5-3-2      "ACY1000"       "unknown" 4725    7050     180 top   
+R5-3-3      "ACY1000"       "unknown" 4725    8550     180 top   
+R5-3-4      "ACY1000"       "unknown" 4725    10050    180 top   
+R5-3-5      "ACY1000"       "unknown" 4725    11550    180 top   
+R5-3-6      "ACY1000"       "unknown" 4725    13050    180 top   
+R5-3-7      "ACY1000"       "unknown" 4725    14550    180 top   
+R5-3-8      "ACY1000"       "unknown" 4725    16050    180 top   
+R5-3-9      "ACY1000"       "unknown" 4725    17550    180 top   
+R5-3-10     "ACY1000"       "unknown" 4725    19050    180 top   
+R5-3-11     "ACY1000"       "unknown" 4725    20550    180 top   
+R5-3-12     "ACY1000"       "unknown" 4725    22050    180 top   
+R5-3-13     "ACY1000"       "unknown" 4725    23550    180 top   
+R5-3-14     "ACY1000"       "unknown" 4725    25050    180 top   
+R5-4-0      "ACY1000"       "unknown" 5225    4050     180 top   
+R5-4-1      "ACY1000"       "unknown" 5225    5550     180 top   
+R5-4-2      "ACY1000"       "unknown" 5225    7050     180 top   
+R5-4-3      "ACY1000"       "unknown" 5225    8550     180 top   
+R5-4-4      "ACY1000"       "unknown" 5225    10050    180 top   
+R5-4-5      "ACY1000"       "unknown" 5225    11550    180 top   
+R5-4-6      "ACY1000"       "unknown" 5225    13050    180 top   
+R5-4-7      "ACY1000"       "unknown" 5225    14550    180 top   
+R5-4-8      "ACY1000"       "unknown" 5225    16050    180 top   
+R5-4-9      "ACY1000"       "unknown" 5225    17550    180 top   
+R5-4-10     "ACY1000"       "unknown" 5225    19050    180 top   
+R5-4-11     "ACY1000"       "unknown" 5225    20550    180 top   
+R5-4-12     "ACY1000"       "unknown" 5225    22050    180 top   
+R5-4-13     "ACY1000"       "unknown" 5225    23550    180 top   
+R5-4-14     "ACY1000"       "unknown" 5225    25050    180 top   
+R5-5-0      "ACY1000"       "unknown" 5725    4050     180 top   
+R5-5-1      "ACY1000"       "unknown" 5725    5550     180 top   
+R5-5-2      "ACY1000"       "unknown" 5725    7050     180 top   
+R5-5-3      "ACY1000"       "unknown" 5725    8550     180 top   
+R5-5-4      "ACY1000"       "unknown" 5725    10050    180 top   
+R5-5-5      "ACY1000"       "unknown" 5725    11550    180 top   
+R5-5-6      "ACY1000"       "unknown" 5725    13050    180 top   
+R5-5-7      "ACY1000"       "unknown" 5725    14550    180 top   
+R5-5-8      "ACY1000"       "unknown" 5725    16050    180 top   
+R5-5-9      "ACY1000"       "unknown" 5725    17550    180 top   
+R5-5-10     "ACY1000"       "unknown" 5725    19050    180 top   
+R5-5-11     "ACY1000"       "unknown" 5725    20550    180 top   
+R5-5-12     "ACY1000"       "unknown" 5725    22050    180 top   
+R5-5-13     "ACY1000"       "unknown" 5725    23550    180 top   
+R5-5-14     "ACY1000"       "unknown" 5725    25050    180 top   
+R5-6-0      "ACY1000"       "unknown" 6225    4050     180 top   
+R5-6-1      "ACY1000"       "unknown" 6225    5550     180 top   
+R5-6-2      "ACY1000"       "unknown" 6225    7050     180 top   
+R5-6-3      "ACY1000"       "unknown" 6225    8550     180 top   
+R5-6-4      "ACY1000"       "unknown" 6225    10050    180 top   
+R5-6-5      "ACY1000"       "unknown" 6225    11550    180 top   
+R5-6-6      "ACY1000"       "unknown" 6225    13050    180 top   
+R5-6-7      "ACY1000"       "unknown" 6225    14550    180 top   
+R5-6-8      "ACY1000"       "unknown" 6225    16050    180 top   
+R5-6-9      "ACY1000"       "unknown" 6225    17550    180 top   
+R5-6-10     "ACY1000"       "unknown" 6225    19050    180 top   
+R5-6-11     "ACY1000"       "unknown" 6225    20550    180 top   
+R5-6-12     "ACY1000"       "unknown" 6225    22050    180 top   
+R5-6-13     "ACY1000"       "unknown" 6225    23550    180 top   
+R5-6-14     "ACY1000"       "unknown" 6225    25050    180 top   
+R5-7-0      "ACY1000"       "unknown" 6725    4050     180 top   
+R5-7-1      "ACY1000"       "unknown" 6725    5550     180 top   
+R5-7-2      "ACY1000"       "unknown" 6725    7050     180 top   
+R5-7-3      "ACY1000"       "unknown" 6725    8550     180 top   
+R5-7-4      "ACY1000"       "unknown" 6725    10050    180 top   
+R5-7-5      "ACY1000"       "unknown" 6725    11550    180 top   
+R5-7-6      "ACY1000"       "unknown" 6725    13050    180 top   
+R5-7-7      "ACY1000"       "unknown" 6725    14550    180 top   
+R5-7-8      "ACY1000"       "unknown" 6725    16050    180 top   
+R5-7-9      "ACY1000"       "unknown" 6725    17550    180 top   
+R5-7-10     "ACY1000"       "unknown" 6725    19050    180 top   
+R5-7-11     "ACY1000"       "unknown" 6725    20550    180 top   
+R5-7-12     "ACY1000"       "unknown" 6725    22050    180 top   
+R5-7-13     "ACY1000"       "unknown" 6725    23550    180 top   
+R5-7-14     "ACY1000"       "unknown" 6725    25050    180 top   
+R5-8-0      "ACY1000"       "unknown" 7225    4050     180 top   
+R5-8-1      "ACY1000"       "unknown" 7225    5550     180 top   
+R5-8-2      "ACY1000"       "unknown" 7225    7050     180 top   
+R5-8-3      "ACY1000"       "unknown" 7225    8550     180 top   
+R5-8-4      "ACY1000"       "unknown" 7225    10050    180 top   
+R5-8-5      "ACY1000"       "unknown" 7225    11550    180 top   
+R5-8-6      "ACY1000"       "unknown" 7225    13050    180 top   
+R5-8-7      "ACY1000"       "unknown" 7225    14550    180 top   
+R5-8-8      "ACY1000"       "unknown" 7225    16050    180 top   
+R5-8-9      "ACY1000"       "unknown" 7225    17550    180 top   
+R5-8-10     "ACY1000"       "unknown" 7225    19050    180 top   
+R5-8-11     "ACY1000"       "unknown" 7225    20550    180 top   
+R5-8-12     "ACY1000"       "unknown" 7225    22050    180 top   
+R5-8-13     "ACY1000"       "unknown" 7225    23550    180 top   
+R5-8-14     "ACY1000"       "unknown" 7225    25050    180 top   
+R5-9-0      "ACY1000"       "unknown" 7725    4050     180 top   
+R5-9-1      "ACY1000"       "unknown" 7725    5550     180 top   
+R5-9-2      "ACY1000"       "unknown" 7725    7050     180 top   
+R5-9-3      "ACY1000"       "unknown" 7725    8550     180 top   
+R5-9-4      "ACY1000"       "unknown" 7725    10050    180 top   
+R5-9-5      "ACY1000"       "unknown" 7725    11550    180 top   
+R5-9-6      "ACY1000"       "unknown" 7725    13050    180 top   
+R5-9-7      "ACY1000"       "unknown" 7725    14550    180 top   
+R5-9-8      "ACY1000"       "unknown" 7725    16050    180 top   
+R5-9-9      "ACY1000"       "unknown" 7725    17550    180 top   
+R5-9-10     "ACY1000"       "unknown" 7725    19050    180 top   
+R5-9-11     "ACY1000"       "unknown" 7725    20550    180 top   
+R5-9-12     "ACY1000"       "unknown" 7725    22050    180 top   
+R5-9-13     "ACY1000"       "unknown" 7725    23550    180 top   
+R5-9-14     "ACY1000"       "unknown" 7725    25050    180 top   
+R5-10-0     "ACY1000"       "unknown" 8225    4050     180 top   
+R5-10-1     "ACY1000"       "unknown" 8225    5550     180 top   
+R5-10-2     "ACY1000"       "unknown" 8225    7050     180 top   
+R5-10-3     "ACY1000"       "unknown" 8225    8550     180 top   
+R5-10-4     "ACY1000"       "unknown" 8225    10050    180 top   
+R5-10-5     "ACY1000"       "unknown" 8225    11550    180 top   
+R5-10-6     "ACY1000"       "unknown" 8225    13050    180 top   
+R5-10-7     "ACY1000"       "unknown" 8225    14550    180 top   
+R5-10-8     "ACY1000"       "unknown" 8225    16050    180 top   
+R5-10-9     "ACY1000"       "unknown" 8225    17550    180 top   
+R5-10-10    "ACY1000"       "unknown" 8225    19050    180 top   
+R5-10-11    "ACY1000"       "unknown" 8225    20550    180 top   
+R5-10-12    "ACY1000"       "unknown" 8225    22050    180 top   
+R5-10-13    "ACY1000"       "unknown" 8225    23550    180 top   
+R5-10-14    "ACY1000"       "unknown" 8225    25050    180 top   
+R5-11-0     "ACY1000"       "unknown" 8725    4050     180 top   
+R5-11-1     "ACY1000"       "unknown" 8725    5550     180 top   
+R5-11-2     "ACY1000"       "unknown" 8725    7050     180 top   
+R5-11-3     "ACY1000"       "unknown" 8725    8550     180 top   
+R5-11-4     "ACY1000"       "unknown" 8725    10050    180 top   
+R5-11-5     "ACY1000"       "unknown" 8725    11550    180 top   
+R5-11-6     "ACY1000"       "unknown" 8725    13050    180 top   
+R5-11-7     "ACY1000"       "unknown" 8725    14550    180 top   
+R5-11-8     "ACY1000"       "unknown" 8725    16050    180 top   
+R5-11-9     "ACY1000"       "unknown" 8725    17550    180 top   
+R5-11-10    "ACY1000"       "unknown" 8725    19050    180 top   
+R5-11-11    "ACY1000"       "unknown" 8725    20550    180 top   
+R5-11-12    "ACY1000"       "unknown" 8725    22050    180 top   
+R5-11-13    "ACY1000"       "unknown" 8725    23550    180 top   
+R5-11-14    "ACY1000"       "unknown" 8725    25050    180 top   
+R5-12-0     "ACY1000"       "unknown" 9225    4050     180 top   
+R5-12-1     "ACY1000"       "unknown" 9225    5550     180 top   
+R5-12-2     "ACY1000"       "unknown" 9225    7050     180 top   
+R5-12-3     "ACY1000"       "unknown" 9225    8550     180 top   
+R5-12-4     "ACY1000"       "unknown" 9225    10050    180 top   
+R5-12-5     "ACY1000"       "unknown" 9225    11550    180 top   
+R5-12-6     "ACY1000"       "unknown" 9225    13050    180 top   
+R5-12-7     "ACY1000"       "unknown" 9225    14550    180 top   
+R5-12-8     "ACY1000"       "unknown" 9225    16050    180 top   
+R5-12-9     "ACY1000"       "unknown" 9225    17550    180 top   
+R5-12-10    "ACY1000"       "unknown" 9225    19050    180 top   
+R5-12-11    "ACY1000"       "unknown" 9225    20550    180 top   
+R5-12-12    "ACY1000"       "unknown" 9225    22050    180 top   
+R5-12-13    "ACY1000"       "unknown" 9225    23550    180 top   
+R5-12-14    "ACY1000"       "unknown" 9225    25050    180 top   
+R5-13-0     "ACY1000"       "unknown" 9725    4050     180 top   
+R5-13-1     "ACY1000"       "unknown" 9725    5550     180 top   
+R5-13-2     "ACY1000"       "unknown" 9725    7050     180 top   
+R5-13-3     "ACY1000"       "unknown" 9725    8550     180 top   
+R5-13-4     "ACY1000"       "unknown" 9725    10050    180 top   
+R5-13-5     "ACY1000"       "unknown" 9725    11550    180 top   
+R5-13-6     "ACY1000"       "unknown" 9725    13050    180 top   
+R5-13-7     "ACY1000"       "unknown" 9725    14550    180 top   
+R5-13-8     "ACY1000"       "unknown" 9725    16050    180 top   
+R5-13-9     "ACY1000"       "unknown" 9725    17550    180 top   
+R5-13-10    "ACY1000"       "unknown" 9725    19050    180 top   
+R5-13-11    "ACY1000"       "unknown" 9725    20550    180 top   
+R5-13-12    "ACY1000"       "unknown" 9725    22050    180 top   
+R5-13-13    "ACY1000"       "unknown" 9725    23550    180 top   
+R5-13-14    "ACY1000"       "unknown" 9725    25050    180 top   
+R5-14-0     "ACY1000"       "unknown" 10225   4050     180 top   
+R5-14-1     "ACY1000"       "unknown" 10225   5550     180 top   
+R5-14-2     "ACY1000"       "unknown" 10225   7050     180 top   
+R5-14-3     "ACY1000"       "unknown" 10225   8550     180 top   
+R5-14-4     "ACY1000"       "unknown" 10225   10050    180 top   
+R5-14-5     "ACY1000"       "unknown" 10225   11550    180 top   
+R5-14-6     "ACY1000"       "unknown" 10225   13050    180 top   
+R5-14-7     "ACY1000"       "unknown" 10225   14550    180 top   
+R5-14-8     "ACY1000"       "unknown" 10225   16050    180 top   
+R5-14-9     "ACY1000"       "unknown" 10225   17550    180 top   
+R5-14-10    "ACY1000"       "unknown" 10225   19050    180 top   
+R5-14-11    "ACY1000"       "unknown" 10225   20550    180 top   
+R5-14-12    "ACY1000"       "unknown" 10225   22050    180 top   
+R5-14-13    "ACY1000"       "unknown" 10225   23550    180 top   
+R5-14-14    "ACY1000"       "unknown" 10225   25050    180 top   
+R8-0-0      "ACY1000"       "unknown" 3225.00 3825.00  0   top   
+R8-0-1      "ACY1000"       "unknown" 3225    5325     0   top   
+R8-0-2      "ACY1000"       "unknown" 3225    6825     0   top   
+R8-0-3      "ACY1000"       "unknown" 3225    8325     0   top   
+R8-0-4      "ACY1000"       "unknown" 3225    9825     0   top   
+R8-0-5      "ACY1000"       "unknown" 3225    11325    0   top   
+R8-0-6      "ACY1000"       "unknown" 3225    12825    0   top   
+R8-0-7      "ACY1000"       "unknown" 3225    14325    0   top   
+R8-0-8      "ACY1000"       "unknown" 3225    15825    0   top   
+R8-0-9      "ACY1000"       "unknown" 3225    17325    0   top   
+R8-0-10     "ACY1000"       "unknown" 3225    18825    0   top   
+R8-0-11     "ACY1000"       "unknown" 3225    20325    0   top   
+R8-0-12     "ACY1000"       "unknown" 3225    21825    0   top   
+R8-0-13     "ACY1000"       "unknown" 3225    23325    0   top   
+R8-0-14     "ACY1000"       "unknown" 3225    24825    0   top   
+R8-1-0      "ACY1000"       "unknown" 3725    3825     0   top   
+R8-1-1      "ACY1000"       "unknown" 3725    5325     0   top   
+R8-1-2      "ACY1000"       "unknown" 3725    6825     0   top   
+R8-1-3      "ACY1000"       "unknown" 3725    8325     0   top   
+R8-1-4      "ACY1000"       "unknown" 3725    9825     0   top   
+R8-1-5      "ACY1000"       "unknown" 3725    11325    0   top   
+R8-1-6      "ACY1000"       "unknown" 3725    12825    0   top   
+R8-1-7      "ACY1000"       "unknown" 3725    14325    0   top   
+R8-1-8      "ACY1000"       "unknown" 3725    15825    0   top   
+R8-1-9      "ACY1000"       "unknown" 3725    17325    0   top   
+R8-1-10     "ACY1000"       "unknown" 3725    18825    0   top   
+R8-1-11     "ACY1000"       "unknown" 3725    20325    0   top   
+R8-1-12     "ACY1000"       "unknown" 3725    21825    0   top   
+R8-1-13     "ACY1000"       "unknown" 3725    23325    0   top   
+R8-1-14     "ACY1000"       "unknown" 3725    24825    0   top   
+R8-2-0      "ACY1000"       "unknown" 4225    3825     0   top   
+R8-2-1      "ACY1000"       "unknown" 4225    5325     0   top   
+R8-2-2      "ACY1000"       "unknown" 4225    6825     0   top   
+R8-2-3      "ACY1000"       "unknown" 4225    8325     0   top   
+R8-2-4      "ACY1000"       "unknown" 4225    9825     0   top   
+R8-2-5      "ACY1000"       "unknown" 4225    11325    0   top   
+R8-2-6      "ACY1000"       "unknown" 4225    12825    0   top   
+R8-2-7      "ACY1000"       "unknown" 4225    14325    0   top   
+R8-2-8      "ACY1000"       "unknown" 4225    15825    0   top   
+R8-2-9      "ACY1000"       "unknown" 4225    17325    0   top   
+R8-2-10     "ACY1000"       "unknown" 4225    18825    0   top   
+R8-2-11     "ACY1000"       "unknown" 4225    20325    0   top   
+R8-2-12     "ACY1000"       "unknown" 4225    21825    0   top   
+R8-2-13     "ACY1000"       "unknown" 4225    23325    0   top   
+R8-2-14     "ACY1000"       "unknown" 4225    24825    0   top   
+R8-3-0      "ACY1000"       "unknown" 4725    3825     0   top   
+R8-3-1      "ACY1000"       "unknown" 4725    5325     0   top   
+R8-3-2      "ACY1000"       "unknown" 4725    6825     0   top   
+R8-3-3      "ACY1000"       "unknown" 4725    8325     0   top   
+R8-3-4      "ACY1000"       "unknown" 4725    9825     0   top   
+R8-3-5      "ACY1000"       "unknown" 4725    11325    0   top   
+R8-3-6      "ACY1000"       "unknown" 4725    12825    0   top   
+R8-3-7      "ACY1000"       "unknown" 4725    14325    0   top   
+R8-3-8      "ACY1000"       "unknown" 4725    15825    0   top   
+R8-3-9      "ACY1000"       "unknown" 4725    17325    0   top   
+R8-3-10     "ACY1000"       "unknown" 4725    18825    0   top   
+R8-3-11     "ACY1000"       "unknown" 4725    20325    0   top   
+R8-3-12     "ACY1000"       "unknown" 4725    21825    0   top   
+R8-3-13     "ACY1000"       "unknown" 4725    23325    0   top   
+R8-3-14     "ACY1000"       "unknown" 4725    24825    0   top   
+R8-4-0      "ACY1000"       "unknown" 5225    3825     0   top   
+R8-4-1      "ACY1000"       "unknown" 5225    5325     0   top   
+R8-4-2      "ACY1000"       "unknown" 5225    6825     0   top   
+R8-4-3      "ACY1000"       "unknown" 5225    8325     0   top   
+R8-4-4      "ACY1000"       "unknown" 5225    9825     0   top   
+R8-4-5      "ACY1000"       "unknown" 5225    11325    0   top   
+R8-4-6      "ACY1000"       "unknown" 5225    12825    0   top   
+R8-4-7      "ACY1000"       "unknown" 5225    14325    0   top   
+R8-4-8      "ACY1000"       "unknown" 5225    15825    0   top   
+R8-4-9      "ACY1000"       "unknown" 5225    17325    0   top   
+R8-4-10     "ACY1000"       "unknown" 5225    18825    0   top   
+R8-4-11     "ACY1000"       "unknown" 5225    20325    0   top   
+R8-4-12     "ACY1000"       "unknown" 5225    21825    0   top   
+R8-4-13     "ACY1000"       "unknown" 5225    23325    0   top   
+R8-4-14     "ACY1000"       "unknown" 5225    24825    0   top   
+R8-5-0      "ACY1000"       "unknown" 5725    3825     0   top   
+R8-5-1      "ACY1000"       "unknown" 5725    5325     0   top   
+R8-5-2      "ACY1000"       "unknown" 5725    6825     0   top   
+R8-5-3      "ACY1000"       "unknown" 5725    8325     0   top   
+R8-5-4      "ACY1000"       "unknown" 5725    9825     0   top   
+R8-5-5      "ACY1000"       "unknown" 5725    11325    0   top   
+R8-5-6      "ACY1000"       "unknown" 5725    12825    0   top   
+R8-5-7      "ACY1000"       "unknown" 5725    14325    0   top   
+R8-5-8      "ACY1000"       "unknown" 5725    15825    0   top   
+R8-5-9      "ACY1000"       "unknown" 5725    17325    0   top   
+R8-5-10     "ACY1000"       "unknown" 5725    18825    0   top   
+R8-5-11     "ACY1000"       "unknown" 5725    20325    0   top   
+R8-5-12     "ACY1000"       "unknown" 5725    21825    0   top   
+R8-5-13     "ACY1000"       "unknown" 5725    23325    0   top   
+R8-5-14     "ACY1000"       "unknown" 5725    24825    0   top   
+R8-6-0      "ACY1000"       "unknown" 6225    3825     0   top   
+R8-6-1      "ACY1000"       "unknown" 6225    5325     0   top   
+R8-6-2      "ACY1000"       "unknown" 6225    6825     0   top   
+R8-6-3      "ACY1000"       "unknown" 6225    8325     0   top   
+R8-6-4      "ACY1000"       "unknown" 6225    9825     0   top   
+R8-6-5      "ACY1000"       "unknown" 6225    11325    0   top   
+R8-6-6      "ACY1000"       "unknown" 6225    12825    0   top   
+R8-6-7      "ACY1000"       "unknown" 6225    14325    0   top   
+R8-6-8      "ACY1000"       "unknown" 6225    15825    0   top   
+R8-6-9      "ACY1000"       "unknown" 6225    17325    0   top   
+R8-6-10     "ACY1000"       "unknown" 6225    18825    0   top   
+R8-6-11     "ACY1000"       "unknown" 6225    20325    0   top   
+R8-6-12     "ACY1000"       "unknown" 6225    21825    0   top   
+R8-6-13     "ACY1000"       "unknown" 6225    23325    0   top   
+R8-6-14     "ACY1000"       "unknown" 6225    24825    0   top   
+R8-7-0      "ACY1000"       "unknown" 6725    3825     0   top   
+R8-7-1      "ACY1000"       "unknown" 6725    5325     0   top   
+R8-7-2      "ACY1000"       "unknown" 6725    6825     0   top   
+R8-7-3      "ACY1000"       "unknown" 6725    8325     0   top   
+R8-7-4      "ACY1000"       "unknown" 6725    9825     0   top   
+R8-7-5      "ACY1000"       "unknown" 6725    11325    0   top   
+R8-7-6      "ACY1000"       "unknown" 6725    12825    0   top   
+R8-7-7      "ACY1000"       "unknown" 6725    14325    0   top   
+R8-7-8      "ACY1000"       "unknown" 6725    15825    0   top   
+R8-7-9      "ACY1000"       "unknown" 6725    17325    0   top   
+R8-7-10     "ACY1000"       "unknown" 6725    18825    0   top   
+R8-7-11     "ACY1000"       "unknown" 6725    20325    0   top   
+R8-7-12     "ACY1000"       "unknown" 6725    21825    0   top   
+R8-7-13     "ACY1000"       "unknown" 6725    23325    0   top   
+R8-7-14     "ACY1000"       "unknown" 6725    24825    0   top   
+R8-8-0      "ACY1000"       "unknown" 7225    3825     0   top   
+R8-8-1      "ACY1000"       "unknown" 7225    5325     0   top   
+R8-8-2      "ACY1000"       "unknown" 7225    6825     0   top   
+R8-8-3      "ACY1000"       "unknown" 7225    8325     0   top   
+R8-8-4      "ACY1000"       "unknown" 7225    9825     0   top   
+R8-8-5      "ACY1000"       "unknown" 7225    11325    0   top   
+R8-8-6      "ACY1000"       "unknown" 7225    12825    0   top   
+R8-8-7      "ACY1000"       "unknown" 7225    14325    0   top   
+R8-8-8      "ACY1000"       "unknown" 7225    15825    0   top   
+R8-8-9      "ACY1000"       "unknown" 7225    17325    0   top   
+R8-8-10     "ACY1000"       "unknown" 7225    18825    0   top   
+R8-8-11     "ACY1000"       "unknown" 7225    20325    0   top   
+R8-8-12     "ACY1000"       "unknown" 7225    21825    0   top   
+R8-8-13     "ACY1000"       "unknown" 7225    23325    0   top   
+R8-8-14     "ACY1000"       "unknown" 7225    24825    0   top   
+R8-9-0      "ACY1000"       "unknown" 7725    3825     0   top   
+R8-9-1      "ACY1000"       "unknown" 7725    5325     0   top   
+R8-9-2      "ACY1000"       "unknown" 7725    6825     0   top   
+R8-9-3      "ACY1000"       "unknown" 7725    8325     0   top   
+R8-9-4      "ACY1000"       "unknown" 7725    9825     0   top   
+R8-9-5      "ACY1000"       "unknown" 7725    11325    0   top   
+R8-9-6      "ACY1000"       "unknown" 7725    12825    0   top   
+R8-9-7      "ACY1000"       "unknown" 7725    14325    0   top   
+R8-9-8      "ACY1000"       "unknown" 7725    15825    0   top   
+R8-9-9      "ACY1000"       "unknown" 7725    17325    0   top   
+R8-9-10     "ACY1000"       "unknown" 7725    18825    0   top   
+R8-9-11     "ACY1000"       "unknown" 7725    20325    0   top   
+R8-9-12     "ACY1000"       "unknown" 7725    21825    0   top   
+R8-9-13     "ACY1000"       "unknown" 7725    23325    0   top   
+R8-9-14     "ACY1000"       "unknown" 7725    24825    0   top   
+R8-10-0     "ACY1000"       "unknown" 8225    3825     0   top   
+R8-10-1     "ACY1000"       "unknown" 8225    5325     0   top   
+R8-10-2     "ACY1000"       "unknown" 8225    6825     0   top   
+R8-10-3     "ACY1000"       "unknown" 8225    8325     0   top   
+R8-10-4     "ACY1000"       "unknown" 8225    9825     0   top   
+R8-10-5     "ACY1000"       "unknown" 8225    11325    0   top   
+R8-10-6     "ACY1000"       "unknown" 8225    12825    0   top   
+R8-10-7     "ACY1000"       "unknown" 8225    14325    0   top   
+R8-10-8     "ACY1000"       "unknown" 8225    15825    0   top   
+R8-10-9     "ACY1000"       "unknown" 8225    17325    0   top   
+R8-10-10    "ACY1000"       "unknown" 8225    18825    0   top   
+R8-10-11    "ACY1000"       "unknown" 8225    20325    0   top   
+R8-10-12    "ACY1000"       "unknown" 8225    21825    0   top   
+R8-10-13    "ACY1000"       "unknown" 8225    23325    0   top   
+R8-10-14    "ACY1000"       "unknown" 8225    24825    0   top   
+R8-11-0     "ACY1000"       "unknown" 8725    3825     0   top   
+R8-11-1     "ACY1000"       "unknown" 8725    5325     0   top   
+R8-11-2     "ACY1000"       "unknown" 8725    6825     0   top   
+R8-11-3     "ACY1000"       "unknown" 8725    8325     0   top   
+R8-11-4     "ACY1000"       "unknown" 8725    9825     0   top   
+R8-11-5     "ACY1000"       "unknown" 8725    11325    0   top   
+R8-11-6     "ACY1000"       "unknown" 8725    12825    0   top   
+R8-11-7     "ACY1000"       "unknown" 8725    14325    0   top   
+R8-11-8     "ACY1000"       "unknown" 8725    15825    0   top   
+R8-11-9     "ACY1000"       "unknown" 8725    17325    0   top   
+R8-11-10    "ACY1000"       "unknown" 8725    18825    0   top   
+R8-11-11    "ACY1000"       "unknown" 8725    20325    0   top   
+R8-11-12    "ACY1000"       "unknown" 8725    21825    0   top   
+R8-11-13    "ACY1000"       "unknown" 8725    23325    0   top   
+R8-11-14    "ACY1000"       "unknown" 8725    24825    0   top   
+R8-12-0     "ACY1000"       "unknown" 9225    3825     0   top   
+R8-12-1     "ACY1000"       "unknown" 9225    5325     0   top   
+R8-12-2     "ACY1000"       "unknown" 9225    6825     0   top   
+R8-12-3     "ACY1000"       "unknown" 9225    8325     0   top   
+R8-12-4     "ACY1000"       "unknown" 9225    9825     0   top   
+R8-12-5     "ACY1000"       "unknown" 9225    11325    0   top   
+R8-12-6     "ACY1000"       "unknown" 9225    12825    0   top   
+R8-12-7     "ACY1000"       "unknown" 9225    14325    0   top   
+R8-12-8     "ACY1000"       "unknown" 9225    15825    0   top   
+R8-12-9     "ACY1000"       "unknown" 9225    17325    0   top   
+R8-12-10    "ACY1000"       "unknown" 9225    18825    0   top   
+R8-12-11    "ACY1000"       "unknown" 9225    20325    0   top   
+R8-12-12    "ACY1000"       "unknown" 9225    21825    0   top   
+R8-12-13    "ACY1000"       "unknown" 9225    23325    0   top   
+R8-12-14    "ACY1000"       "unknown" 9225    24825    0   top   
+R8-13-0     "ACY1000"       "unknown" 9725    3825     0   top   
+R8-13-1     "ACY1000"       "unknown" 9725    5325     0   top   
+R8-13-2     "ACY1000"       "unknown" 9725    6825     0   top   
+R8-13-3     "ACY1000"       "unknown" 9725    8325     0   top   
+R8-13-4     "ACY1000"       "unknown" 9725    9825     0   top   
+R8-13-5     "ACY1000"       "unknown" 9725    11325    0   top   
+R8-13-6     "ACY1000"       "unknown" 9725    12825    0   top   
+R8-13-7     "ACY1000"       "unknown" 9725    14325    0   top   
+R8-13-8     "ACY1000"       "unknown" 9725    15825    0   top   
+R8-13-9     "ACY1000"       "unknown" 9725    17325    0   top   
+R8-13-10    "ACY1000"       "unknown" 9725    18825    0   top   
+R8-13-11    "ACY1000"       "unknown" 9725    20325    0   top   
+R8-13-12    "ACY1000"       "unknown" 9725    21825    0   top   
+R8-13-13    "ACY1000"       "unknown" 9725    23325    0   top   
+R8-13-14    "ACY1000"       "unknown" 9725    24825    0   top   
+R8-14-0     "ACY1000"       "unknown" 10225   3825     0   top   
+R8-14-1     "ACY1000"       "unknown" 10225   5325     0   top   
+R8-14-2     "ACY1000"       "unknown" 10225   6825     0   top   
+R8-14-3     "ACY1000"       "unknown" 10225   8325     0   top   
+R8-14-4     "ACY1000"       "unknown" 10225   9825     0   top   
+R8-14-5     "ACY1000"       "unknown" 10225   11325    0   top   
+R8-14-6     "ACY1000"       "unknown" 10225   12825    0   top   
+R8-14-7     "ACY1000"       "unknown" 10225   14325    0   top   
+R8-14-8     "ACY1000"       "unknown" 10225   15825    0   top   
+R8-14-9     "ACY1000"       "unknown" 10225   17325    0   top   
+R8-14-10    "ACY1000"       "unknown" 10225   18825    0   top   
+R8-14-11    "ACY1000"       "unknown" 10225   20325    0   top   
+R8-14-12    "ACY1000"       "unknown" 10225   21825    0   top   
+R8-14-13    "ACY1000"       "unknown" 10225   23325    0   top   
+R8-14-14    "ACY1000"       "unknown" 10225   24825    0   top   
+R7-0-0      "ACY1000"       "unknown" 3225.00 3600.00  0   top   
+R7-0-1      "ACY1000"       "unknown" 3225    5100     0   top   
+R7-0-2      "ACY1000"       "unknown" 3225    6600     0   top   
+R7-0-3      "ACY1000"       "unknown" 3225    8100     0   top   
+R7-0-4      "ACY1000"       "unknown" 3225    9600     0   top   
+R7-0-5      "ACY1000"       "unknown" 3225    11100    0   top   
+R7-0-6      "ACY1000"       "unknown" 3225    12600    0   top   
+R7-0-7      "ACY1000"       "unknown" 3225    14100    0   top   
+R7-0-8      "ACY1000"       "unknown" 3225    15600    0   top   
+R7-0-9      "ACY1000"       "unknown" 3225    17100    0   top   
+R7-0-10     "ACY1000"       "unknown" 3225    18600    0   top   
+R7-0-11     "ACY1000"       "unknown" 3225    20100    0   top   
+R7-0-12     "ACY1000"       "unknown" 3225    21600    0   top   
+R7-0-13     "ACY1000"       "unknown" 3225    23100    0   top   
+R7-0-14     "ACY1000"       "unknown" 3225    24600    0   top   
+R7-1-0      "ACY1000"       "unknown" 3725    3600     0   top   
+R7-1-1      "ACY1000"       "unknown" 3725    5100     0   top   
+R7-1-2      "ACY1000"       "unknown" 3725    6600     0   top   
+R7-1-3      "ACY1000"       "unknown" 3725    8100     0   top   
+R7-1-4      "ACY1000"       "unknown" 3725    9600     0   top   
+R7-1-5      "ACY1000"       "unknown" 3725    11100    0   top   
+R7-1-6      "ACY1000"       "unknown" 3725    12600    0   top   
+R7-1-7      "ACY1000"       "unknown" 3725    14100    0   top   
+R7-1-8      "ACY1000"       "unknown" 3725    15600    0   top   
+R7-1-9      "ACY1000"       "unknown" 3725    17100    0   top   
+R7-1-10     "ACY1000"       "unknown" 3725    18600    0   top   
+R7-1-11     "ACY1000"       "unknown" 3725    20100    0   top   
+R7-1-12     "ACY1000"       "unknown" 3725    21600    0   top   
+R7-1-13     "ACY1000"       "unknown" 3725    23100    0   top   
+R7-1-14     "ACY1000"       "unknown" 3725    24600    0   top   
+R7-2-0      "ACY1000"       "unknown" 4225    3600     0   top   
+R7-2-1      "ACY1000"       "unknown" 4225    5100     0   top   
+R7-2-2      "ACY1000"       "unknown" 4225    6600     0   top   
+R7-2-3      "ACY1000"       "unknown" 4225    8100     0   top   
+R7-2-4      "ACY1000"       "unknown" 4225    9600     0   top   
+R7-2-5      "ACY1000"       "unknown" 4225    11100    0   top   
+R7-2-6      "ACY1000"       "unknown" 4225    12600    0   top   
+R7-2-7      "ACY1000"       "unknown" 4225    14100    0   top   
+R7-2-8      "ACY1000"       "unknown" 4225    15600    0   top   
+R7-2-9      "ACY1000"       "unknown" 4225    17100    0   top   
+R7-2-10     "ACY1000"       "unknown" 4225    18600    0   top   
+R7-2-11     "ACY1000"       "unknown" 4225    20100    0   top   
+R7-2-12     "ACY1000"       "unknown" 4225    21600    0   top   
+R7-2-13     "ACY1000"       "unknown" 4225    23100    0   top   
+R7-2-14     "ACY1000"       "unknown" 4225    24600    0   top   
+R7-3-0      "ACY1000"       "unknown" 4725    3600     0   top   
+R7-3-1      "ACY1000"       "unknown" 4725    5100     0   top   
+R7-3-2      "ACY1000"       "unknown" 4725    6600     0   top   
+R7-3-3      "ACY1000"       "unknown" 4725    8100     0   top   
+R7-3-4      "ACY1000"       "unknown" 4725    9600     0   top   
+R7-3-5      "ACY1000"       "unknown" 4725    11100    0   top   
+R7-3-6      "ACY1000"       "unknown" 4725    12600    0   top   
+R7-3-7      "ACY1000"       "unknown" 4725    14100    0   top   
+R7-3-8      "ACY1000"       "unknown" 4725    15600    0   top   
+R7-3-9      "ACY1000"       "unknown" 4725    17100    0   top   
+R7-3-10     "ACY1000"       "unknown" 4725    18600    0   top   
+R7-3-11     "ACY1000"       "unknown" 4725    20100    0   top   
+R7-3-12     "ACY1000"       "unknown" 4725    21600    0   top   
+R7-3-13     "ACY1000"       "unknown" 4725    23100    0   top   
+R7-3-14     "ACY1000"       "unknown" 4725    24600    0   top   
+R7-4-0      "ACY1000"       "unknown" 5225    3600     0   top   
+R7-4-1      "ACY1000"       "unknown" 5225    5100     0   top   
+R7-4-2      "ACY1000"       "unknown" 5225    6600     0   top   
+R7-4-3      "ACY1000"       "unknown" 5225    8100     0   top   
+R7-4-4      "ACY1000"       "unknown" 5225    9600     0   top   
+R7-4-5      "ACY1000"       "unknown" 5225    11100    0   top   
+R7-4-6      "ACY1000"       "unknown" 5225    12600    0   top   
+R7-4-7      "ACY1000"       "unknown" 5225    14100    0   top   
+R7-4-8      "ACY1000"       "unknown" 5225    15600    0   top   
+R7-4-9      "ACY1000"       "unknown" 5225    17100    0   top   
+R7-4-10     "ACY1000"       "unknown" 5225    18600    0   top   
+R7-4-11     "ACY1000"       "unknown" 5225    20100    0   top   
+R7-4-12     "ACY1000"       "unknown" 5225    21600    0   top   
+R7-4-13     "ACY1000"       "unknown" 5225    23100    0   top   
+R7-4-14     "ACY1000"       "unknown" 5225    24600    0   top   
+R7-5-0      "ACY1000"       "unknown" 5725    3600     0   top   
+R7-5-1      "ACY1000"       "unknown" 5725    5100     0   top   
+R7-5-2      "ACY1000"       "unknown" 5725    6600     0   top   
+R7-5-3      "ACY1000"       "unknown" 5725    8100     0   top   
+R7-5-4      "ACY1000"       "unknown" 5725    9600     0   top   
+R7-5-5      "ACY1000"       "unknown" 5725    11100    0   top   
+R7-5-6      "ACY1000"       "unknown" 5725    12600    0   top   
+R7-5-7      "ACY1000"       "unknown" 5725    14100    0   top   
+R7-5-8      "ACY1000"       "unknown" 5725    15600    0   top   
+R7-5-9      "ACY1000"       "unknown" 5725    17100    0   top   
+R7-5-10     "ACY1000"       "unknown" 5725    18600    0   top   
+R7-5-11     "ACY1000"       "unknown" 5725    20100    0   top   
+R7-5-12     "ACY1000"       "unknown" 5725    21600    0   top   
+R7-5-13     "ACY1000"       "unknown" 5725    23100    0   top   
+R7-5-14     "ACY1000"       "unknown" 5725    24600    0   top   
+R7-6-0      "ACY1000"       "unknown" 6225    3600     0   top   
+R7-6-1      "ACY1000"       "unknown" 6225    5100     0   top   
+R7-6-2      "ACY1000"       "unknown" 6225    6600     0   top   
+R7-6-3      "ACY1000"       "unknown" 6225    8100     0   top   
+R7-6-4      "ACY1000"       "unknown" 6225    9600     0   top   
+R7-6-5      "ACY1000"       "unknown" 6225    11100    0   top   
+R7-6-6      "ACY1000"       "unknown" 6225    12600    0   top   
+R7-6-7      "ACY1000"       "unknown" 6225    14100    0   top   
+R7-6-8      "ACY1000"       "unknown" 6225    15600    0   top   
+R7-6-9      "ACY1000"       "unknown" 6225    17100    0   top   
+R7-6-10     "ACY1000"       "unknown" 6225    18600    0   top   
+R7-6-11     "ACY1000"       "unknown" 6225    20100    0   top   
+R7-6-12     "ACY1000"       "unknown" 6225    21600    0   top   
+R7-6-13     "ACY1000"       "unknown" 6225    23100    0   top   
+R7-6-14     "ACY1000"       "unknown" 6225    24600    0   top   
+R7-7-0      "ACY1000"       "unknown" 6725    3600     0   top   
+R7-7-1      "ACY1000"       "unknown" 6725    5100     0   top   
+R7-7-2      "ACY1000"       "unknown" 6725    6600     0   top   
+R7-7-3      "ACY1000"       "unknown" 6725    8100     0   top   
+R7-7-4      "ACY1000"       "unknown" 6725    9600     0   top   
+R7-7-5      "ACY1000"       "unknown" 6725    11100    0   top   
+R7-7-6      "ACY1000"       "unknown" 6725    12600    0   top   
+R7-7-7      "ACY1000"       "unknown" 6725    14100    0   top   
+R7-7-8      "ACY1000"       "unknown" 6725    15600    0   top   
+R7-7-9      "ACY1000"       "unknown" 6725    17100    0   top   
+R7-7-10     "ACY1000"       "unknown" 6725    18600    0   top   
+R7-7-11     "ACY1000"       "unknown" 6725    20100    0   top   
+R7-7-12     "ACY1000"       "unknown" 6725    21600    0   top   
+R7-7-13     "ACY1000"       "unknown" 6725    23100    0   top   
+R7-7-14     "ACY1000"       "unknown" 6725    24600    0   top   
+R7-8-0      "ACY1000"       "unknown" 7225    3600     0   top   
+R7-8-1      "ACY1000"       "unknown" 7225    5100     0   top   
+R7-8-2      "ACY1000"       "unknown" 7225    6600     0   top   
+R7-8-3      "ACY1000"       "unknown" 7225    8100     0   top   
+R7-8-4      "ACY1000"       "unknown" 7225    9600     0   top   
+R7-8-5      "ACY1000"       "unknown" 7225    11100    0   top   
+R7-8-6      "ACY1000"       "unknown" 7225    12600    0   top   
+R7-8-7      "ACY1000"       "unknown" 7225    14100    0   top   
+R7-8-8      "ACY1000"       "unknown" 7225    15600    0   top   
+R7-8-9      "ACY1000"       "unknown" 7225    17100    0   top   
+R7-8-10     "ACY1000"       "unknown" 7225    18600    0   top   
+R7-8-11     "ACY1000"       "unknown" 7225    20100    0   top   
+R7-8-12     "ACY1000"       "unknown" 7225    21600    0   top   
+R7-8-13     "ACY1000"       "unknown" 7225    23100    0   top   
+R7-8-14     "ACY1000"       "unknown" 7225    24600    0   top   
+R7-9-0      "ACY1000"       "unknown" 7725    3600     0   top   
+R7-9-1      "ACY1000"       "unknown" 7725    5100     0   top   
+R7-9-2      "ACY1000"       "unknown" 7725    6600     0   top   
+R7-9-3      "ACY1000"       "unknown" 7725    8100     0   top   
+R7-9-4      "ACY1000"       "unknown" 7725    9600     0   top   
+R7-9-5      "ACY1000"       "unknown" 7725    11100    0   top   
+R7-9-6      "ACY1000"       "unknown" 7725    12600    0   top   
+R7-9-7      "ACY1000"       "unknown" 7725    14100    0   top   
+R7-9-8      "ACY1000"       "unknown" 7725    15600    0   top   
+R7-9-9      "ACY1000"       "unknown" 7725    17100    0   top   
+R7-9-10     "ACY1000"       "unknown" 7725    18600    0   top   
+R7-9-11     "ACY1000"       "unknown" 7725    20100    0   top   
+R7-9-12     "ACY1000"       "unknown" 7725    21600    0   top   
+R7-9-13     "ACY1000"       "unknown" 7725    23100    0   top   
+R7-9-14     "ACY1000"       "unknown" 7725    24600    0   top   
+R7-10-0     "ACY1000"       "unknown" 8225    3600     0   top   
+R7-10-1     "ACY1000"       "unknown" 8225    5100     0   top   
+R7-10-2     "ACY1000"       "unknown" 8225    6600     0   top   
+R7-10-3     "ACY1000"       "unknown" 8225    8100     0   top   
+R7-10-4     "ACY1000"       "unknown" 8225    9600     0   top   
+R7-10-5     "ACY1000"       "unknown" 8225    11100    0   top   
+R7-10-6     "ACY1000"       "unknown" 8225    12600    0   top   
+R7-10-7     "ACY1000"       "unknown" 8225    14100    0   top   
+R7-10-8     "ACY1000"       "unknown" 8225    15600    0   top   
+R7-10-9     "ACY1000"       "unknown" 8225    17100    0   top   
+R7-10-10    "ACY1000"       "unknown" 8225    18600    0   top   
+R7-10-11    "ACY1000"       "unknown" 8225    20100    0   top   
+R7-10-12    "ACY1000"       "unknown" 8225    21600    0   top   
+R7-10-13    "ACY1000"       "unknown" 8225    23100    0   top   
+R7-10-14    "ACY1000"       "unknown" 8225    24600    0   top   
+R7-11-0     "ACY1000"       "unknown" 8725    3600     0   top   
+R7-11-1     "ACY1000"       "unknown" 8725    5100     0   top   
+R7-11-2     "ACY1000"       "unknown" 8725    6600     0   top   
+R7-11-3     "ACY1000"       "unknown" 8725    8100     0   top   
+R7-11-4     "ACY1000"       "unknown" 8725    9600     0   top   
+R7-11-5     "ACY1000"       "unknown" 8725    11100    0   top   
+R7-11-6     "ACY1000"       "unknown" 8725    12600    0   top   
+R7-11-7     "ACY1000"       "unknown" 8725    14100    0   top   
+R7-11-8     "ACY1000"       "unknown" 8725    15600    0   top   
+R7-11-9     "ACY1000"       "unknown" 8725    17100    0   top   
+R7-11-10    "ACY1000"       "unknown" 8725    18600    0   top   
+R7-11-11    "ACY1000"       "unknown" 8725    20100    0   top   
+R7-11-12    "ACY1000"       "unknown" 8725    21600    0   top   
+R7-11-13    "ACY1000"       "unknown" 8725    23100    0   top   
+R7-11-14    "ACY1000"       "unknown" 8725    24600    0   top   
+R7-12-0     "ACY1000"       "unknown" 9225    3600     0   top   
+R7-12-1     "ACY1000"       "unknown" 9225    5100     0   top   
+R7-12-2     "ACY1000"       "unknown" 9225    6600     0   top   
+R7-12-3     "ACY1000"       "unknown" 9225    8100     0   top   
+R7-12-4     "ACY1000"       "unknown" 9225    9600     0   top   
+R7-12-5     "ACY1000"       "unknown" 9225    11100    0   top   
+R7-12-6     "ACY1000"       "unknown" 9225    12600    0   top   
+R7-12-7     "ACY1000"       "unknown" 9225    14100    0   top   
+R7-12-8     "ACY1000"       "unknown" 9225    15600    0   top   
+R7-12-9     "ACY1000"       "unknown" 9225    17100    0   top   
+R7-12-10    "ACY1000"       "unknown" 9225    18600    0   top   
+R7-12-11    "ACY1000"       "unknown" 9225    20100    0   top   
+R7-12-12    "ACY1000"       "unknown" 9225    21600    0   top   
+R7-12-13    "ACY1000"       "unknown" 9225    23100    0   top   
+R7-12-14    "ACY1000"       "unknown" 9225    24600    0   top   
+R7-13-0     "ACY1000"       "unknown" 9725    3600     0   top   
+R7-13-1     "ACY1000"       "unknown" 9725    5100     0   top   
+R7-13-2     "ACY1000"       "unknown" 9725    6600     0   top   
+R7-13-3     "ACY1000"       "unknown" 9725    8100     0   top   
+R7-13-4     "ACY1000"       "unknown" 9725    9600     0   top   
+R7-13-5     "ACY1000"       "unknown" 9725    11100    0   top   
+R7-13-6     "ACY1000"       "unknown" 9725    12600    0   top   
+R7-13-7     "ACY1000"       "unknown" 9725    14100    0   top   
+R7-13-8     "ACY1000"       "unknown" 9725    15600    0   top   
+R7-13-9     "ACY1000"       "unknown" 9725    17100    0   top   
+R7-13-10    "ACY1000"       "unknown" 9725    18600    0   top   
+R7-13-11    "ACY1000"       "unknown" 9725    20100    0   top   
+R7-13-12    "ACY1000"       "unknown" 9725    21600    0   top   
+R7-13-13    "ACY1000"       "unknown" 9725    23100    0   top   
+R7-13-14    "ACY1000"       "unknown" 9725    24600    0   top   
+R7-14-0     "ACY1000"       "unknown" 10225   3600     0   top   
+R7-14-1     "ACY1000"       "unknown" 10225   5100     0   top   
+R7-14-2     "ACY1000"       "unknown" 10225   6600     0   top   
+R7-14-3     "ACY1000"       "unknown" 10225   8100     0   top   
+R7-14-4     "ACY1000"       "unknown" 10225   9600     0   top   
+R7-14-5     "ACY1000"       "unknown" 10225   11100    0   top   
+R7-14-6     "ACY1000"       "unknown" 10225   12600    0   top   
+R7-14-7     "ACY1000"       "unknown" 10225   14100    0   top   
+R7-14-8     "ACY1000"       "unknown" 10225   15600    0   top   
+R7-14-9     "ACY1000"       "unknown" 10225   17100    0   top   
+R7-14-10    "ACY1000"       "unknown" 10225   18600    0   top   
+R7-14-11    "ACY1000"       "unknown" 10225   20100    0   top   
+R7-14-12    "ACY1000"       "unknown" 10225   21600    0   top   
+R7-14-13    "ACY1000"       "unknown" 10225   23100    0   top   
+R7-14-14    "ACY1000"       "unknown" 10225   24600    0   top   
+C1-0-0      "1206"          "unknown" 950.00  3775.00  0   bottom
+C1-0-1      "1206"          "unknown" 950     5275     0   bottom
+C1-0-2      "1206"          "unknown" 950     6775     0   bottom
+C1-0-3      "1206"          "unknown" 950     8275     0   bottom
+C1-0-4      "1206"          "unknown" 950     9775     0   bottom
+C1-0-5      "1206"          "unknown" 950     11275    0   bottom
+C1-0-6      "1206"          "unknown" 950     12775    0   bottom
+C1-0-7      "1206"          "unknown" 950     14275    0   bottom
+C1-0-8      "1206"          "unknown" 950     15775    0   bottom
+C1-0-9      "1206"          "unknown" 950     17275    0   bottom
+C1-0-10     "1206"          "unknown" 950     18775    0   bottom
+C1-0-11     "1206"          "unknown" 950     20275    0   bottom
+C1-0-12     "1206"          "unknown" 950     21775    0   bottom
+C1-0-13     "1206"          "unknown" 950     23275    0   bottom
+C1-0-14     "1206"          "unknown" 950     24775    0   bottom
+C1-1-0      "1206"          "unknown" 1450    3775     0   bottom
+C1-1-1      "1206"          "unknown" 1450    5275     0   bottom
+C1-1-2      "1206"          "unknown" 1450    6775     0   bottom
+C1-1-3      "1206"          "unknown" 1450    8275     0   bottom
+C1-1-4      "1206"          "unknown" 1450    9775     0   bottom
+C1-1-5      "1206"          "unknown" 1450    11275    0   bottom
+C1-1-6      "1206"          "unknown" 1450    12775    0   bottom
+C1-1-7      "1206"          "unknown" 1450    14275    0   bottom
+C1-1-8      "1206"          "unknown" 1450    15775    0   bottom
+C1-1-9      "1206"          "unknown" 1450    17275    0   bottom
+C1-1-10     "1206"          "unknown" 1450    18775    0   bottom
+C1-1-11     "1206"          "unknown" 1450    20275    0   bottom
+C1-1-12     "1206"          "unknown" 1450    21775    0   bottom
+C1-1-13     "1206"          "unknown" 1450    23275    0   bottom
+C1-1-14     "1206"          "unknown" 1450    24775    0   bottom
+C1-2-0      "1206"          "unknown" 1950    3775     0   bottom
+C1-2-1      "1206"          "unknown" 1950    5275     0   bottom
+C1-2-2      "1206"          "unknown" 1950    6775     0   bottom
+C1-2-3      "1206"          "unknown" 1950    8275     0   bottom
+C1-2-4      "1206"          "unknown" 1950    9775     0   bottom
+C1-2-5      "1206"          "unknown" 1950    11275    0   bottom
+C1-2-6      "1206"          "unknown" 1950    12775    0   bottom
+C1-2-7      "1206"          "unknown" 1950    14275    0   bottom
+C1-2-8      "1206"          "unknown" 1950    15775    0   bottom
+C1-2-9      "1206"          "unknown" 1950    17275    0   bottom
+C1-2-10     "1206"          "unknown" 1950    18775    0   bottom
+C1-2-11     "1206"          "unknown" 1950    20275    0   bottom
+C1-2-12     "1206"          "unknown" 1950    21775    0   bottom
+C1-2-13     "1206"          "unknown" 1950    23275    0   bottom
+C1-2-14     "1206"          "unknown" 1950    24775    0   bottom
+C1-3-0      "1206"          "unknown" 2450    3775     0   bottom
+C1-3-1      "1206"          "unknown" 2450    5275     0   bottom
+C1-3-2      "1206"          "unknown" 2450    6775     0   bottom
+C1-3-3      "1206"          "unknown" 2450    8275     0   bottom
+C1-3-4      "1206"          "unknown" 2450    9775     0   bottom
+C1-3-5      "1206"          "unknown" 2450    11275    0   bottom
+C1-3-6      "1206"          "unknown" 2450    12775    0   bottom
+C1-3-7      "1206"          "unknown" 2450    14275    0   bottom
+C1-3-8      "1206"          "unknown" 2450    15775    0   bottom
+C1-3-9      "1206"          "unknown" 2450    17275    0   bottom
+C1-3-10     "1206"          "unknown" 2450    18775    0   bottom
+C1-3-11     "1206"          "unknown" 2450    20275    0   bottom
+C1-3-12     "1206"          "unknown" 2450    21775    0   bottom
+C1-3-13     "1206"          "unknown" 2450    23275    0   bottom
+C1-3-14     "1206"          "unknown" 2450    24775    0   bottom
+C1-4-0      "1206"          "unknown" 2950    3775     0   bottom
+C1-4-1      "1206"          "unknown" 2950    5275     0   bottom
+C1-4-2      "1206"          "unknown" 2950    6775     0   bottom
+C1-4-3      "1206"          "unknown" 2950    8275     0   bottom
+C1-4-4      "1206"          "unknown" 2950    9775     0   bottom
+C1-4-5      "1206"          "unknown" 2950    11275    0   bottom
+C1-4-6      "1206"          "unknown" 2950    12775    0   bottom
+C1-4-7      "1206"          "unknown" 2950    14275    0   bottom
+C1-4-8      "1206"          "unknown" 2950    15775    0   bottom
+C1-4-9      "1206"          "unknown" 2950    17275    0   bottom
+C1-4-10     "1206"          "unknown" 2950    18775    0   bottom
+C1-4-11     "1206"          "unknown" 2950    20275    0   bottom
+C1-4-12     "1206"          "unknown" 2950    21775    0   bottom
+C1-4-13     "1206"          "unknown" 2950    23275    0   bottom
+C1-4-14     "1206"          "unknown" 2950    24775    0   bottom
+C1-5-0      "1206"          "unknown" 3450    3775     0   bottom
+C1-5-1      "1206"          "unknown" 3450    5275     0   bottom
+C1-5-2      "1206"          "unknown" 3450    6775     0   bottom
+C1-5-3      "1206"          "unknown" 3450    8275     0   bottom
+C1-5-4      "1206"          "unknown" 3450    9775     0   bottom
+C1-5-5      "1206"          "unknown" 3450    11275    0   bottom
+C1-5-6      "1206"          "unknown" 3450    12775    0   bottom
+C1-5-7      "1206"          "unknown" 3450    14275    0   bottom
+C1-5-8      "1206"          "unknown" 3450    15775    0   bottom
+C1-5-9      "1206"          "unknown" 3450    17275    0   bottom
+C1-5-10     "1206"          "unknown" 3450    18775    0   bottom
+C1-5-11     "1206"          "unknown" 3450    20275    0   bottom
+C1-5-12     "1206"          "unknown" 3450    21775    0   bottom
+C1-5-13     "1206"          "unknown" 3450    23275    0   bottom
+C1-5-14     "1206"          "unknown" 3450    24775    0   bottom
+C1-6-0      "1206"          "unknown" 3950    3775     0   bottom
+C1-6-1      "1206"          "unknown" 3950    5275     0   bottom
+C1-6-2      "1206"          "unknown" 3950    6775     0   bottom
+C1-6-3      "1206"          "unknown" 3950    8275     0   bottom
+C1-6-4      "1206"          "unknown" 3950    9775     0   bottom
+C1-6-5      "1206"          "unknown" 3950    11275    0   bottom
+C1-6-6      "1206"          "unknown" 3950    12775    0   bottom
+C1-6-7      "1206"          "unknown" 3950    14275    0   bottom
+C1-6-8      "1206"          "unknown" 3950    15775    0   bottom
+C1-6-9      "1206"          "unknown" 3950    17275    0   bottom
+C1-6-10     "1206"          "unknown" 3950    18775    0   bottom
+C1-6-11     "1206"          "unknown" 3950    20275    0   bottom
+C1-6-12     "1206"          "unknown" 3950    21775    0   bottom
+C1-6-13     "1206"          "unknown" 3950    23275    0   bottom
+C1-6-14     "1206"          "unknown" 3950    24775    0   bottom
+C1-7-0      "1206"          "unknown" 4450    3775     0   bottom
+C1-7-1      "1206"          "unknown" 4450    5275     0   bottom
+C1-7-2      "1206"          "unknown" 4450    6775     0   bottom
+C1-7-3      "1206"          "unknown" 4450    8275     0   bottom
+C1-7-4      "1206"          "unknown" 4450    9775     0   bottom
+C1-7-5      "1206"          "unknown" 4450    11275    0   bottom
+C1-7-6      "1206"          "unknown" 4450    12775    0   bottom
+C1-7-7      "1206"          "unknown" 4450    14275    0   bottom
+C1-7-8      "1206"          "unknown" 4450    15775    0   bottom
+C1-7-9      "1206"          "unknown" 4450    17275    0   bottom
+C1-7-10     "1206"          "unknown" 4450    18775    0   bottom
+C1-7-11     "1206"          "unknown" 4450    20275    0   bottom
+C1-7-12     "1206"          "unknown" 4450    21775    0   bottom
+C1-7-13     "1206"          "unknown" 4450    23275    0   bottom
+C1-7-14     "1206"          "unknown" 4450    24775    0   bottom
+C1-8-0      "1206"          "unknown" 4950    3775     0   bottom
+C1-8-1      "1206"          "unknown" 4950    5275     0   bottom
+C1-8-2      "1206"          "unknown" 4950    6775     0   bottom
+C1-8-3      "1206"          "unknown" 4950    8275     0   bottom
+C1-8-4      "1206"          "unknown" 4950    9775     0   bottom
+C1-8-5      "1206"          "unknown" 4950    11275    0   bottom
+C1-8-6      "1206"          "unknown" 4950    12775    0   bottom
+C1-8-7      "1206"          "unknown" 4950    14275    0   bottom
+C1-8-8      "1206"          "unknown" 4950    15775    0   bottom
+C1-8-9      "1206"          "unknown" 4950    17275    0   bottom
+C1-8-10     "1206"          "unknown" 4950    18775    0   bottom
+C1-8-11     "1206"          "unknown" 4950    20275    0   bottom
+C1-8-12     "1206"          "unknown" 4950    21775    0   bottom
+C1-8-13     "1206"          "unknown" 4950    23275    0   bottom
+C1-8-14     "1206"          "unknown" 4950    24775    0   bottom
+C1-9-0      "1206"          "unknown" 5450    3775     0   bottom
+C1-9-1      "1206"          "unknown" 5450    5275     0   bottom
+C1-9-2      "1206"          "unknown" 5450    6775     0   bottom
+C1-9-3      "1206"          "unknown" 5450    8275     0   bottom
+C1-9-4      "1206"          "unknown" 5450    9775     0   bottom
+C1-9-5      "1206"          "unknown" 5450    11275    0   bottom
+C1-9-6      "1206"          "unknown" 5450    12775    0   bottom
+C1-9-7      "1206"          "unknown" 5450    14275    0   bottom
+C1-9-8      "1206"          "unknown" 5450    15775    0   bottom
+C1-9-9      "1206"          "unknown" 5450    17275    0   bottom
+C1-9-10     "1206"          "unknown" 5450    18775    0   bottom
+C1-9-11     "1206"          "unknown" 5450    20275    0   bottom
+C1-9-12     "1206"          "unknown" 5450    21775    0   bottom
+C1-9-13     "1206"          "unknown" 5450    23275    0   bottom
+C1-9-14     "1206"          "unknown" 5450    24775    0   bottom
+C1-10-0     "1206"          "unknown" 5950    3775     0   bottom
+C1-10-1     "1206"          "unknown" 5950    5275     0   bottom
+C1-10-2     "1206"          "unknown" 5950    6775     0   bottom
+C1-10-3     "1206"          "unknown" 5950    8275     0   bottom
+C1-10-4     "1206"          "unknown" 5950    9775     0   bottom
+C1-10-5     "1206"          "unknown" 5950    11275    0   bottom
+C1-10-6     "1206"          "unknown" 5950    12775    0   bottom
+C1-10-7     "1206"          "unknown" 5950    14275    0   bottom
+C1-10-8     "1206"          "unknown" 5950    15775    0   bottom
+C1-10-9     "1206"          "unknown" 5950    17275    0   bottom
+C1-10-10    "1206"          "unknown" 5950    18775    0   bottom
+C1-10-11    "1206"          "unknown" 5950    20275    0   bottom
+C1-10-12    "1206"          "unknown" 5950    21775    0   bottom
+C1-10-13    "1206"          "unknown" 5950    23275    0   bottom
+C1-10-14    "1206"          "unknown" 5950    24775    0   bottom
+C1-11-0     "1206"          "unknown" 6450    3775     0   bottom
+C1-11-1     "1206"          "unknown" 6450    5275     0   bottom
+C1-11-2     "1206"          "unknown" 6450    6775     0   bottom
+C1-11-3     "1206"          "unknown" 6450    8275     0   bottom
+C1-11-4     "1206"          "unknown" 6450    9775     0   bottom
+C1-11-5     "1206"          "unknown" 6450    11275    0   bottom
+C1-11-6     "1206"          "unknown" 6450    12775    0   bottom
+C1-11-7     "1206"          "unknown" 6450    14275    0   bottom
+C1-11-8     "1206"          "unknown" 6450    15775    0   bottom
+C1-11-9     "1206"          "unknown" 6450    17275    0   bottom
+C1-11-10    "1206"          "unknown" 6450    18775    0   bottom
+C1-11-11    "1206"          "unknown" 6450    20275    0   bottom
+C1-11-12    "1206"          "unknown" 6450    21775    0   bottom
+C1-11-13    "1206"          "unknown" 6450    23275    0   bottom
+C1-11-14    "1206"          "unknown" 6450    24775    0   bottom
+C1-12-0     "1206"          "unknown" 6950    3775     0   bottom
+C1-12-1     "1206"          "unknown" 6950    5275     0   bottom
+C1-12-2     "1206"          "unknown" 6950    6775     0   bottom
+C1-12-3     "1206"          "unknown" 6950    8275     0   bottom
+C1-12-4     "1206"          "unknown" 6950    9775     0   bottom
+C1-12-5     "1206"          "unknown" 6950    11275    0   bottom
+C1-12-6     "1206"          "unknown" 6950    12775    0   bottom
+C1-12-7     "1206"          "unknown" 6950    14275    0   bottom
+C1-12-8     "1206"          "unknown" 6950    15775    0   bottom
+C1-12-9     "1206"          "unknown" 6950    17275    0   bottom
+C1-12-10    "1206"          "unknown" 6950    18775    0   bottom
+C1-12-11    "1206"          "unknown" 6950    20275    0   bottom
+C1-12-12    "1206"          "unknown" 6950    21775    0   bottom
+C1-12-13    "1206"          "unknown" 6950    23275    0   bottom
+C1-12-14    "1206"          "unknown" 6950    24775    0   bottom
+C1-13-0     "1206"          "unknown" 7450    3775     0   bottom
+C1-13-1     "1206"          "unknown" 7450    5275     0   bottom
+C1-13-2     "1206"          "unknown" 7450    6775     0   bottom
+C1-13-3     "1206"          "unknown" 7450    8275     0   bottom
+C1-13-4     "1206"          "unknown" 7450    9775     0   bottom
+C1-13-5     "1206"          "unknown" 7450    11275    0   bottom
+C1-13-6     "1206"          "unknown" 7450    12775    0   bottom
+C1-13-7     "1206"          "unknown" 7450    14275    0   bottom
+C1-13-8     "1206"          "unknown" 7450    15775    0   bottom
+C1-13-9     "1206"          "unknown" 7450    17275    0   bottom
+C1-13-10    "1206"          "unknown" 7450    18775    0   bottom
+C1-13-11    "1206"          "unknown" 7450    20275    0   bottom
+C1-13-12    "1206"          "unknown" 7450    21775    0   bottom
+C1-13-13    "1206"          "unknown" 7450    23275    0   bottom
+C1-13-14    "1206"          "unknown" 7450    24775    0   bottom
+C1-14-0     "1206"          "unknown" 7950    3775     0   bottom
+C1-14-1     "1206"          "unknown" 7950    5275     0   bottom
+C1-14-2     "1206"          "unknown" 7950    6775     0   bottom
+C1-14-3     "1206"          "unknown" 7950    8275     0   bottom
+C1-14-4     "1206"          "unknown" 7950    9775     0   bottom
+C1-14-5     "1206"          "unknown" 7950    11275    0   bottom
+C1-14-6     "1206"          "unknown" 7950    12775    0   bottom
+C1-14-7     "1206"          "unknown" 7950    14275    0   bottom
+C1-14-8     "1206"          "unknown" 7950    15775    0   bottom
+C1-14-9     "1206"          "unknown" 7950    17275    0   bottom
+C1-14-10    "1206"          "unknown" 7950    18775    0   bottom
+C1-14-11    "1206"          "unknown" 7950    20275    0   bottom
+C1-14-12    "1206"          "unknown" 7950    21775    0   bottom
+C1-14-13    "1206"          "unknown" 7950    23275    0   bottom
+C1-14-14    "1206"          "unknown" 7950    24775    0   bottom
+C14-0-0     "1206"          "unknown" 1225.00 3600.00  90  bottom
+C14-0-1     "1206"          "unknown" 1225    5100     90  bottom
+C14-0-2     "1206"          "unknown" 1225    6600     90  bottom
+C14-0-3     "1206"          "unknown" 1225    8100     90  bottom
+C14-0-4     "1206"          "unknown" 1225    9600     90  bottom
+C14-0-5     "1206"          "unknown" 1225    11100    90  bottom
+C14-0-6     "1206"          "unknown" 1225    12600    90  bottom
+C14-0-7     "1206"          "unknown" 1225    14100    90  bottom
+C14-0-8     "1206"          "unknown" 1225    15600    90  bottom
+C14-0-9     "1206"          "unknown" 1225    17100    90  bottom
+C14-0-10    "1206"          "unknown" 1225    18600    90  bottom
+C14-0-11    "1206"          "unknown" 1225    20100    90  bottom
+C14-0-12    "1206"          "unknown" 1225    21600    90  bottom
+C14-0-13    "1206"          "unknown" 1225    23100    90  bottom
+C14-0-14    "1206"          "unknown" 1225    24600    90  bottom
+C14-1-0     "1206"          "unknown" 1725    3600     90  bottom
+C14-1-1     "1206"          "unknown" 1725    5100     90  bottom
+C14-1-2     "1206"          "unknown" 1725    6600     90  bottom
+C14-1-3     "1206"          "unknown" 1725    8100     90  bottom
+C14-1-4     "1206"          "unknown" 1725    9600     90  bottom
+C14-1-5     "1206"          "unknown" 1725    11100    90  bottom
+C14-1-6     "1206"          "unknown" 1725    12600    90  bottom
+C14-1-7     "1206"          "unknown" 1725    14100    90  bottom
+C14-1-8     "1206"          "unknown" 1725    15600    90  bottom
+C14-1-9     "1206"          "unknown" 1725    17100    90  bottom
+C14-1-10    "1206"          "unknown" 1725    18600    90  bottom
+C14-1-11    "1206"          "unknown" 1725    20100    90  bottom
+C14-1-12    "1206"          "unknown" 1725    21600    90  bottom
+C14-1-13    "1206"          "unknown" 1725    23100    90  bottom
+C14-1-14    "1206"          "unknown" 1725    24600    90  bottom
+C14-2-0     "1206"          "unknown" 2225    3600     90  bottom
+C14-2-1     "1206"          "unknown" 2225    5100     90  bottom
+C14-2-2     "1206"          "unknown" 2225    6600     90  bottom
+C14-2-3     "1206"          "unknown" 2225    8100     90  bottom
+C14-2-4     "1206"          "unknown" 2225    9600     90  bottom
+C14-2-5     "1206"          "unknown" 2225    11100    90  bottom
+C14-2-6     "1206"          "unknown" 2225    12600    90  bottom
+C14-2-7     "1206"          "unknown" 2225    14100    90  bottom
+C14-2-8     "1206"          "unknown" 2225    15600    90  bottom
+C14-2-9     "1206"          "unknown" 2225    17100    90  bottom
+C14-2-10    "1206"          "unknown" 2225    18600    90  bottom
+C14-2-11    "1206"          "unknown" 2225    20100    90  bottom
+C14-2-12    "1206"          "unknown" 2225    21600    90  bottom
+C14-2-13    "1206"          "unknown" 2225    23100    90  bottom
+C14-2-14    "1206"          "unknown" 2225    24600    90  bottom
+C14-3-0     "1206"          "unknown" 2725    3600     90  bottom
+C14-3-1     "1206"          "unknown" 2725    5100     90  bottom
+C14-3-2     "1206"          "unknown" 2725    6600     90  bottom
+C14-3-3     "1206"          "unknown" 2725    8100     90  bottom
+C14-3-4     "1206"          "unknown" 2725    9600     90  bottom
+C14-3-5     "1206"          "unknown" 2725    11100    90  bottom
+C14-3-6     "1206"          "unknown" 2725    12600    90  bottom
+C14-3-7     "1206"          "unknown" 2725    14100    90  bottom
+C14-3-8     "1206"          "unknown" 2725    15600    90  bottom
+C14-3-9     "1206"          "unknown" 2725    17100    90  bottom
+C14-3-10    "1206"          "unknown" 2725    18600    90  bottom
+C14-3-11    "1206"          "unknown" 2725    20100    90  bottom
+C14-3-12    "1206"          "unknown" 2725    21600    90  bottom
+C14-3-13    "1206"          "unknown" 2725    23100    90  bottom
+C14-3-14    "1206"          "unknown" 2725    24600    90  bottom
+C14-4-0     "1206"          "unknown" 3225    3600     90  bottom
+C14-4-1     "1206"          "unknown" 3225    5100     90  bottom
+C14-4-2     "1206"          "unknown" 3225    6600     90  bottom
+C14-4-3     "1206"          "unknown" 3225    8100     90  bottom
+C14-4-4     "1206"          "unknown" 3225    9600     90  bottom
+C14-4-5     "1206"          "unknown" 3225    11100    90  bottom
+C14-4-6     "1206"          "unknown" 3225    12600    90  bottom
+C14-4-7     "1206"          "unknown" 3225    14100    90  bottom
+C14-4-8     "1206"          "unknown" 3225    15600    90  bottom
+C14-4-9     "1206"          "unknown" 3225    17100    90  bottom
+C14-4-10    "1206"          "unknown" 3225    18600    90  bottom
+C14-4-11    "1206"          "unknown" 3225    20100    90  bottom
+C14-4-12    "1206"          "unknown" 3225    21600    90  bottom
+C14-4-13    "1206"          "unknown" 3225    23100    90  bottom
+C14-4-14    "1206"          "unknown" 3225    24600    90  bottom
+C14-5-0     "1206"          "unknown" 3725    3600     90  bottom
+C14-5-1     "1206"          "unknown" 3725    5100     90  bottom
+C14-5-2     "1206"          "unknown" 3725    6600     90  bottom
+C14-5-3     "1206"          "unknown" 3725    8100     90  bottom
+C14-5-4     "1206"          "unknown" 3725    9600     90  bottom
+C14-5-5     "1206"          "unknown" 3725    11100    90  bottom
+C14-5-6     "1206"          "unknown" 3725    12600    90  bottom
+C14-5-7     "1206"          "unknown" 3725    14100    90  bottom
+C14-5-8     "1206"          "unknown" 3725    15600    90  bottom
+C14-5-9     "1206"          "unknown" 3725    17100    90  bottom
+C14-5-10    "1206"          "unknown" 3725    18600    90  bottom
+C14-5-11    "1206"          "unknown" 3725    20100    90  bottom
+C14-5-12    "1206"          "unknown" 3725    21600    90  bottom
+C14-5-13    "1206"          "unknown" 3725    23100    90  bottom
+C14-5-14    "1206"          "unknown" 3725    24600    90  bottom
+C14-6-0     "1206"          "unknown" 4225    3600     90  bottom
+C14-6-1     "1206"          "unknown" 4225    5100     90  bottom
+C14-6-2     "1206"          "unknown" 4225    6600     90  bottom
+C14-6-3     "1206"          "unknown" 4225    8100     90  bottom
+C14-6-4     "1206"          "unknown" 4225    9600     90  bottom
+C14-6-5     "1206"          "unknown" 4225    11100    90  bottom
+C14-6-6     "1206"          "unknown" 4225    12600    90  bottom
+C14-6-7     "1206"          "unknown" 4225    14100    90  bottom
+C14-6-8     "1206"          "unknown" 4225    15600    90  bottom
+C14-6-9     "1206"          "unknown" 4225    17100    90  bottom
+C14-6-10    "1206"          "unknown" 4225    18600    90  bottom
+C14-6-11    "1206"          "unknown" 4225    20100    90  bottom
+C14-6-12    "1206"          "unknown" 4225    21600    90  bottom
+C14-6-13    "1206"          "unknown" 4225    23100    90  bottom
+C14-6-14    "1206"          "unknown" 4225    24600    90  bottom
+C14-7-0     "1206"          "unknown" 4725    3600     90  bottom
+C14-7-1     "1206"          "unknown" 4725    5100     90  bottom
+C14-7-2     "1206"          "unknown" 4725    6600     90  bottom
+C14-7-3     "1206"          "unknown" 4725    8100     90  bottom
+C14-7-4     "1206"          "unknown" 4725    9600     90  bottom
+C14-7-5     "1206"          "unknown" 4725    11100    90  bottom
+C14-7-6     "1206"          "unknown" 4725    12600    90  bottom
+C14-7-7     "1206"          "unknown" 4725    14100    90  bottom
+C14-7-8     "1206"          "unknown" 4725    15600    90  bottom
+C14-7-9     "1206"          "unknown" 4725    17100    90  bottom
+C14-7-10    "1206"          "unknown" 4725    18600    90  bottom
+C14-7-11    "1206"          "unknown" 4725    20100    90  bottom
+C14-7-12    "1206"          "unknown" 4725    21600    90  bottom
+C14-7-13    "1206"          "unknown" 4725    23100    90  bottom
+C14-7-14    "1206"          "unknown" 4725    24600    90  bottom
+C14-8-0     "1206"          "unknown" 5225    3600     90  bottom
+C14-8-1     "1206"          "unknown" 5225    5100     90  bottom
+C14-8-2     "1206"          "unknown" 5225    6600     90  bottom
+C14-8-3     "1206"          "unknown" 5225    8100     90  bottom
+C14-8-4     "1206"          "unknown" 5225    9600     90  bottom
+C14-8-5     "1206"          "unknown" 5225    11100    90  bottom
+C14-8-6     "1206"          "unknown" 5225    12600    90  bottom
+C14-8-7     "1206"          "unknown" 5225    14100    90  bottom
+C14-8-8     "1206"          "unknown" 5225    15600    90  bottom
+C14-8-9     "1206"          "unknown" 5225    17100    90  bottom
+C14-8-10    "1206"          "unknown" 5225    18600    90  bottom
+C14-8-11    "1206"          "unknown" 5225    20100    90  bottom
+C14-8-12    "1206"          "unknown" 5225    21600    90  bottom
+C14-8-13    "1206"          "unknown" 5225    23100    90  bottom
+C14-8-14    "1206"          "unknown" 5225    24600    90  bottom
+C14-9-0     "1206"          "unknown" 5725    3600     90  bottom
+C14-9-1     "1206"          "unknown" 5725    5100     90  bottom
+C14-9-2     "1206"          "unknown" 5725    6600     90  bottom
+C14-9-3     "1206"          "unknown" 5725    8100     90  bottom
+C14-9-4     "1206"          "unknown" 5725    9600     90  bottom
+C14-9-5     "1206"          "unknown" 5725    11100    90  bottom
+C14-9-6     "1206"          "unknown" 5725    12600    90  bottom
+C14-9-7     "1206"          "unknown" 5725    14100    90  bottom
+C14-9-8     "1206"          "unknown" 5725    15600    90  bottom
+C14-9-9     "1206"          "unknown" 5725    17100    90  bottom
+C14-9-10    "1206"          "unknown" 5725    18600    90  bottom
+C14-9-11    "1206"          "unknown" 5725    20100    90  bottom
+C14-9-12    "1206"          "unknown" 5725    21600    90  bottom
+C14-9-13    "1206"          "unknown" 5725    23100    90  bottom
+C14-9-14    "1206"          "unknown" 5725    24600    90  bottom
+C14-10-0    "1206"          "unknown" 6225    3600     90  bottom
+C14-10-1    "1206"          "unknown" 6225    5100     90  bottom
+C14-10-2    "1206"          "unknown" 6225    6600     90  bottom
+C14-10-3    "1206"          "unknown" 6225    8100     90  bottom
+C14-10-4    "1206"          "unknown" 6225    9600     90  bottom
+C14-10-5    "1206"          "unknown" 6225    11100    90  bottom
+C14-10-6    "1206"          "unknown" 6225    12600    90  bottom
+C14-10-7    "1206"          "unknown" 6225    14100    90  bottom
+C14-10-8    "1206"          "unknown" 6225    15600    90  bottom
+C14-10-9    "1206"          "unknown" 6225    17100    90  bottom
+C14-10-10   "1206"          "unknown" 6225    18600    90  bottom
+C14-10-11   "1206"          "unknown" 6225    20100    90  bottom
+C14-10-12   "1206"          "unknown" 6225    21600    90  bottom
+C14-10-13   "1206"          "unknown" 6225    23100    90  bottom
+C14-10-14   "1206"          "unknown" 6225    24600    90  bottom
+C14-11-0    "1206"          "unknown" 6725    3600     90  bottom
+C14-11-1    "1206"          "unknown" 6725    5100     90  bottom
+C14-11-2    "1206"          "unknown" 6725    6600     90  bottom
+C14-11-3    "1206"          "unknown" 6725    8100     90  bottom
+C14-11-4    "1206"          "unknown" 6725    9600     90  bottom
+C14-11-5    "1206"          "unknown" 6725    11100    90  bottom
+C14-11-6    "1206"          "unknown" 6725    12600    90  bottom
+C14-11-7    "1206"          "unknown" 6725    14100    90  bottom
+C14-11-8    "1206"          "unknown" 6725    15600    90  bottom
+C14-11-9    "1206"          "unknown" 6725    17100    90  bottom
+C14-11-10   "1206"          "unknown" 6725    18600    90  bottom
+C14-11-11   "1206"          "unknown" 6725    20100    90  bottom
+C14-11-12   "1206"          "unknown" 6725    21600    90  bottom
+C14-11-13   "1206"          "unknown" 6725    23100    90  bottom
+C14-11-14   "1206"          "unknown" 6725    24600    90  bottom
+C14-12-0    "1206"          "unknown" 7225    3600     90  bottom
+C14-12-1    "1206"          "unknown" 7225    5100     90  bottom
+C14-12-2    "1206"          "unknown" 7225    6600     90  bottom
+C14-12-3    "1206"          "unknown" 7225    8100     90  bottom
+C14-12-4    "1206"          "unknown" 7225    9600     90  bottom
+C14-12-5    "1206"          "unknown" 7225    11100    90  bottom
+C14-12-6    "1206"          "unknown" 7225    12600    90  bottom
+C14-12-7    "1206"          "unknown" 7225    14100    90  bottom
+C14-12-8    "1206"          "unknown" 7225    15600    90  bottom
+C14-12-9    "1206"          "unknown" 7225    17100    90  bottom
+C14-12-10   "1206"          "unknown" 7225    18600    90  bottom
+C14-12-11   "1206"          "unknown" 7225    20100    90  bottom
+C14-12-12   "1206"          "unknown" 7225    21600    90  bottom
+C14-12-13   "1206"          "unknown" 7225    23100    90  bottom
+C14-12-14   "1206"          "unknown" 7225    24600    90  bottom
+C14-13-0    "1206"          "unknown" 7725    3600     90  bottom
+C14-13-1    "1206"          "unknown" 7725    5100     90  bottom
+C14-13-2    "1206"          "unknown" 7725    6600     90  bottom
+C14-13-3    "1206"          "unknown" 7725    8100     90  bottom
+C14-13-4    "1206"          "unknown" 7725    9600     90  bottom
+C14-13-5    "1206"          "unknown" 7725    11100    90  bottom
+C14-13-6    "1206"          "unknown" 7725    12600    90  bottom
+C14-13-7    "1206"          "unknown" 7725    14100    90  bottom
+C14-13-8    "1206"          "unknown" 7725    15600    90  bottom
+C14-13-9    "1206"          "unknown" 7725    17100    90  bottom
+C14-13-10   "1206"          "unknown" 7725    18600    90  bottom
+C14-13-11   "1206"          "unknown" 7725    20100    90  bottom
+C14-13-12   "1206"          "unknown" 7725    21600    90  bottom
+C14-13-13   "1206"          "unknown" 7725    23100    90  bottom
+C14-13-14   "1206"          "unknown" 7725    24600    90  bottom
+C14-14-0    "1206"          "unknown" 8225    3600     90  bottom
+C14-14-1    "1206"          "unknown" 8225    5100     90  bottom
+C14-14-2    "1206"          "unknown" 8225    6600     90  bottom
+C14-14-3    "1206"          "unknown" 8225    8100     90  bottom
+C14-14-4    "1206"          "unknown" 8225    9600     90  bottom
+C14-14-5    "1206"          "unknown" 8225    11100    90  bottom
+C14-14-6    "1206"          "unknown" 8225    12600    90  bottom
+C14-14-7    "1206"          "unknown" 8225    14100    90  bottom
+C14-14-8    "1206"          "unknown" 8225    15600    90  bottom
+C14-14-9    "1206"          "unknown" 8225    17100    90  bottom
+C14-14-10   "1206"          "unknown" 8225    18600    90  bottom
+C14-14-11   "1206"          "unknown" 8225    20100    90  bottom
+C14-14-12   "1206"          "unknown" 8225    21600    90  bottom
+C14-14-13   "1206"          "unknown" 8225    23100    90  bottom
+C14-14-14   "1206"          "unknown" 8225    24600    90  bottom
+D6-0-0      "1206"          "unknown" 1125.00 3875.00  180 bottom
+D6-0-1      "1206"          "unknown" 1125    5375     180 bottom
+D6-0-2      "1206"          "unknown" 1125    6875     180 bottom
+D6-0-3      "1206"          "unknown" 1125    8375     180 bottom
+D6-0-4      "1206"          "unknown" 1125    9875     180 bottom
+D6-0-5      "1206"          "unknown" 1125    11375    180 bottom
+D6-0-6      "1206"          "unknown" 1125    12875    180 bottom
+D6-0-7      "1206"          "unknown" 1125    14375    180 bottom
+D6-0-8      "1206"          "unknown" 1125    15875    180 bottom
+D6-0-9      "1206"          "unknown" 1125    17375    180 bottom
+D6-0-10     "1206"          "unknown" 1125    18875    180 bottom
+D6-0-11     "1206"          "unknown" 1125    20375    180 bottom
+D6-0-12     "1206"          "unknown" 1125    21875    180 bottom
+D6-0-13     "1206"          "unknown" 1125    23375    180 bottom
+D6-0-14     "1206"          "unknown" 1125    24875    180 bottom
+D6-1-0      "1206"          "unknown" 1625    3875     180 bottom
+D6-1-1      "1206"          "unknown" 1625    5375     180 bottom
+D6-1-2      "1206"          "unknown" 1625    6875     180 bottom
+D6-1-3      "1206"          "unknown" 1625    8375     180 bottom
+D6-1-4      "1206"          "unknown" 1625    9875     180 bottom
+D6-1-5      "1206"          "unknown" 1625    11375    180 bottom
+D6-1-6      "1206"          "unknown" 1625    12875    180 bottom
+D6-1-7      "1206"          "unknown" 1625    14375    180 bottom
+D6-1-8      "1206"          "unknown" 1625    15875    180 bottom
+D6-1-9      "1206"          "unknown" 1625    17375    180 bottom
+D6-1-10     "1206"          "unknown" 1625    18875    180 bottom
+D6-1-11     "1206"          "unknown" 1625    20375    180 bottom
+D6-1-12     "1206"          "unknown" 1625    21875    180 bottom
+D6-1-13     "1206"          "unknown" 1625    23375    180 bottom
+D6-1-14     "1206"          "unknown" 1625    24875    180 bottom
+D6-2-0      "1206"          "unknown" 2125    3875     180 bottom
+D6-2-1      "1206"          "unknown" 2125    5375     180 bottom
+D6-2-2      "1206"          "unknown" 2125    6875     180 bottom
+D6-2-3      "1206"          "unknown" 2125    8375     180 bottom
+D6-2-4      "1206"          "unknown" 2125    9875     180 bottom
+D6-2-5      "1206"          "unknown" 2125    11375    180 bottom
+D6-2-6      "1206"          "unknown" 2125    12875    180 bottom
+D6-2-7      "1206"          "unknown" 2125    14375    180 bottom
+D6-2-8      "1206"          "unknown" 2125    15875    180 bottom
+D6-2-9      "1206"          "unknown" 2125    17375    180 bottom
+D6-2-10     "1206"          "unknown" 2125    18875    180 bottom
+D6-2-11     "1206"          "unknown" 2125    20375    180 bottom
+D6-2-12     "1206"          "unknown" 2125    21875    180 bottom
+D6-2-13     "1206"          "unknown" 2125    23375    180 bottom
+D6-2-14     "1206"          "unknown" 2125    24875    180 bottom
+D6-3-0      "1206"          "unknown" 2625    3875     180 bottom
+D6-3-1      "1206"          "unknown" 2625    5375     180 bottom
+D6-3-2      "1206"          "unknown" 2625    6875     180 bottom
+D6-3-3      "1206"          "unknown" 2625    8375     180 bottom
+D6-3-4      "1206"          "unknown" 2625    9875     180 bottom
+D6-3-5      "1206"          "unknown" 2625    11375    180 bottom
+D6-3-6      "1206"          "unknown" 2625    12875    180 bottom
+D6-3-7      "1206"          "unknown" 2625    14375    180 bottom
+D6-3-8      "1206"          "unknown" 2625    15875    180 bottom
+D6-3-9      "1206"          "unknown" 2625    17375    180 bottom
+D6-3-10     "1206"          "unknown" 2625    18875    180 bottom
+D6-3-11     "1206"          "unknown" 2625    20375    180 bottom
+D6-3-12     "1206"          "unknown" 2625    21875    180 bottom
+D6-3-13     "1206"          "unknown" 2625    23375    180 bottom
+D6-3-14     "1206"          "unknown" 2625    24875    180 bottom
+D6-4-0      "1206"          "unknown" 3125    3875     180 bottom
+D6-4-1      "1206"          "unknown" 3125    5375     180 bottom
+D6-4-2      "1206"          "unknown" 3125    6875     180 bottom
+D6-4-3      "1206"          "unknown" 3125    8375     180 bottom
+D6-4-4      "1206"          "unknown" 3125    9875     180 bottom
+D6-4-5      "1206"          "unknown" 3125    11375    180 bottom
+D6-4-6      "1206"          "unknown" 3125    12875    180 bottom
+D6-4-7      "1206"          "unknown" 3125    14375    180 bottom
+D6-4-8      "1206"          "unknown" 3125    15875    180 bottom
+D6-4-9      "1206"          "unknown" 3125    17375    180 bottom
+D6-4-10     "1206"          "unknown" 3125    18875    180 bottom
+D6-4-11     "1206"          "unknown" 3125    20375    180 bottom
+D6-4-12     "1206"          "unknown" 3125    21875    180 bottom
+D6-4-13     "1206"          "unknown" 3125    23375    180 bottom
+D6-4-14     "1206"          "unknown" 3125    24875    180 bottom
+D6-5-0      "1206"          "unknown" 3625    3875     180 bottom
+D6-5-1      "1206"          "unknown" 3625    5375     180 bottom
+D6-5-2      "1206"          "unknown" 3625    6875     180 bottom
+D6-5-3      "1206"          "unknown" 3625    8375     180 bottom
+D6-5-4      "1206"          "unknown" 3625    9875     180 bottom
+D6-5-5      "1206"          "unknown" 3625    11375    180 bottom
+D6-5-6      "1206"          "unknown" 3625    12875    180 bottom
+D6-5-7      "1206"          "unknown" 3625    14375    180 bottom
+D6-5-8      "1206"          "unknown" 3625    15875    180 bottom
+D6-5-9      "1206"          "unknown" 3625    17375    180 bottom
+D6-5-10     "1206"          "unknown" 3625    18875    180 bottom
+D6-5-11     "1206"          "unknown" 3625    20375    180 bottom
+D6-5-12     "1206"          "unknown" 3625    21875    180 bottom
+D6-5-13     "1206"          "unknown" 3625    23375    180 bottom
+D6-5-14     "1206"          "unknown" 3625    24875    180 bottom
+D6-6-0      "1206"          "unknown" 4125    3875     180 bottom
+D6-6-1      "1206"          "unknown" 4125    5375     180 bottom
+D6-6-2      "1206"          "unknown" 4125    6875     180 bottom
+D6-6-3      "1206"          "unknown" 4125    8375     180 bottom
+D6-6-4      "1206"          "unknown" 4125    9875     180 bottom
+D6-6-5      "1206"          "unknown" 4125    11375    180 bottom
+D6-6-6      "1206"          "unknown" 4125    12875    180 bottom
+D6-6-7      "1206"          "unknown" 4125    14375    180 bottom
+D6-6-8      "1206"          "unknown" 4125    15875    180 bottom
+D6-6-9      "1206"          "unknown" 4125    17375    180 bottom
+D6-6-10     "1206"          "unknown" 4125    18875    180 bottom
+D6-6-11     "1206"          "unknown" 4125    20375    180 bottom
+D6-6-12     "1206"          "unknown" 4125    21875    180 bottom
+D6-6-13     "1206"          "unknown" 4125    23375    180 bottom
+D6-6-14     "1206"          "unknown" 4125    24875    180 bottom
+D6-7-0      "1206"          "unknown" 4625    3875     180 bottom
+D6-7-1      "1206"          "unknown" 4625    5375     180 bottom
+D6-7-2      "1206"          "unknown" 4625    6875     180 bottom
+D6-7-3      "1206"          "unknown" 4625    8375     180 bottom
+D6-7-4      "1206"          "unknown" 4625    9875     180 bottom
+D6-7-5      "1206"          "unknown" 4625    11375    180 bottom
+D6-7-6      "1206"          "unknown" 4625    12875    180 bottom
+D6-7-7      "1206"          "unknown" 4625    14375    180 bottom
+D6-7-8      "1206"          "unknown" 4625    15875    180 bottom
+D6-7-9      "1206"          "unknown" 4625    17375    180 bottom
+D6-7-10     "1206"          "unknown" 4625    18875    180 bottom
+D6-7-11     "1206"          "unknown" 4625    20375    180 bottom
+D6-7-12     "1206"          "unknown" 4625    21875    180 bottom
+D6-7-13     "1206"          "unknown" 4625    23375    180 bottom
+D6-7-14     "1206"          "unknown" 4625    24875    180 bottom
+D6-8-0      "1206"          "unknown" 5125    3875     180 bottom
+D6-8-1      "1206"          "unknown" 5125    5375     180 bottom
+D6-8-2      "1206"          "unknown" 5125    6875     180 bottom
+D6-8-3      "1206"          "unknown" 5125    8375     180 bottom
+D6-8-4      "1206"          "unknown" 5125    9875     180 bottom
+D6-8-5      "1206"          "unknown" 5125    11375    180 bottom
+D6-8-6      "1206"          "unknown" 5125    12875    180 bottom
+D6-8-7      "1206"          "unknown" 5125    14375    180 bottom
+D6-8-8      "1206"          "unknown" 5125    15875    180 bottom
+D6-8-9      "1206"          "unknown" 5125    17375    180 bottom
+D6-8-10     "1206"          "unknown" 5125    18875    180 bottom
+D6-8-11     "1206"          "unknown" 5125    20375    180 bottom
+D6-8-12     "1206"          "unknown" 5125    21875    180 bottom
+D6-8-13     "1206"          "unknown" 5125    23375    180 bottom
+D6-8-14     "1206"          "unknown" 5125    24875    180 bottom
+D6-9-0      "1206"          "unknown" 5625    3875     180 bottom
+D6-9-1      "1206"          "unknown" 5625    5375     180 bottom
+D6-9-2      "1206"          "unknown" 5625    6875     180 bottom
+D6-9-3      "1206"          "unknown" 5625    8375     180 bottom
+D6-9-4      "1206"          "unknown" 5625    9875     180 bottom
+D6-9-5      "1206"          "unknown" 5625    11375    180 bottom
+D6-9-6      "1206"          "unknown" 5625    12875    180 bottom
+D6-9-7      "1206"          "unknown" 5625    14375    180 bottom
+D6-9-8      "1206"          "unknown" 5625    15875    180 bottom
+D6-9-9      "1206"          "unknown" 5625    17375    180 bottom
+D6-9-10     "1206"          "unknown" 5625    18875    180 bottom
+D6-9-11     "1206"          "unknown" 5625    20375    180 bottom
+D6-9-12     "1206"          "unknown" 5625    21875    180 bottom
+D6-9-13     "1206"          "unknown" 5625    23375    180 bottom
+D6-9-14     "1206"          "unknown" 5625    24875    180 bottom
+D6-10-0     "1206"          "unknown" 6125    3875     180 bottom
+D6-10-1     "1206"          "unknown" 6125    5375     180 bottom
+D6-10-2     "1206"          "unknown" 6125    6875     180 bottom
+D6-10-3     "1206"          "unknown" 6125    8375     180 bottom
+D6-10-4     "1206"          "unknown" 6125    9875     180 bottom
+D6-10-5     "1206"          "unknown" 6125    11375    180 bottom
+D6-10-6     "1206"          "unknown" 6125    12875    180 bottom
+D6-10-7     "1206"          "unknown" 6125    14375    180 bottom
+D6-10-8     "1206"          "unknown" 6125    15875    180 bottom
+D6-10-9     "1206"          "unknown" 6125    17375    180 bottom
+D6-10-10    "1206"          "unknown" 6125    18875    180 bottom
+D6-10-11    "1206"          "unknown" 6125    20375    180 bottom
+D6-10-12    "1206"          "unknown" 6125    21875    180 bottom
+D6-10-13    "1206"          "unknown" 6125    23375    180 bottom
+D6-10-14    "1206"          "unknown" 6125    24875    180 bottom
+D6-11-0     "1206"          "unknown" 6625    3875     180 bottom
+D6-11-1     "1206"          "unknown" 6625    5375     180 bottom
+D6-11-2     "1206"          "unknown" 6625    6875     180 bottom
+D6-11-3     "1206"          "unknown" 6625    8375     180 bottom
+D6-11-4     "1206"          "unknown" 6625    9875     180 bottom
+D6-11-5     "1206"          "unknown" 6625    11375    180 bottom
+D6-11-6     "1206"          "unknown" 6625    12875    180 bottom
+D6-11-7     "1206"          "unknown" 6625    14375    180 bottom
+D6-11-8     "1206"          "unknown" 6625    15875    180 bottom
+D6-11-9     "1206"          "unknown" 6625    17375    180 bottom
+D6-11-10    "1206"          "unknown" 6625    18875    180 bottom
+D6-11-11    "1206"          "unknown" 6625    20375    180 bottom
+D6-11-12    "1206"          "unknown" 6625    21875    180 bottom
+D6-11-13    "1206"          "unknown" 6625    23375    180 bottom
+D6-11-14    "1206"          "unknown" 6625    24875    180 bottom
+D6-12-0     "1206"          "unknown" 7125    3875     180 bottom
+D6-12-1     "1206"          "unknown" 7125    5375     180 bottom
+D6-12-2     "1206"          "unknown" 7125    6875     180 bottom
+D6-12-3     "1206"          "unknown" 7125    8375     180 bottom
+D6-12-4     "1206"          "unknown" 7125    9875     180 bottom
+D6-12-5     "1206"          "unknown" 7125    11375    180 bottom
+D6-12-6     "1206"          "unknown" 7125    12875    180 bottom
+D6-12-7     "1206"          "unknown" 7125    14375    180 bottom
+D6-12-8     "1206"          "unknown" 7125    15875    180 bottom
+D6-12-9     "1206"          "unknown" 7125    17375    180 bottom
+D6-12-10    "1206"          "unknown" 7125    18875    180 bottom
+D6-12-11    "1206"          "unknown" 7125    20375    180 bottom
+D6-12-12    "1206"          "unknown" 7125    21875    180 bottom
+D6-12-13    "1206"          "unknown" 7125    23375    180 bottom
+D6-12-14    "1206"          "unknown" 7125    24875    180 bottom
+D6-13-0     "1206"          "unknown" 7625    3875     180 bottom
+D6-13-1     "1206"          "unknown" 7625    5375     180 bottom
+D6-13-2     "1206"          "unknown" 7625    6875     180 bottom
+D6-13-3     "1206"          "unknown" 7625    8375     180 bottom
+D6-13-4     "1206"          "unknown" 7625    9875     180 bottom
+D6-13-5     "1206"          "unknown" 7625    11375    180 bottom
+D6-13-6     "1206"          "unknown" 7625    12875    180 bottom
+D6-13-7     "1206"          "unknown" 7625    14375    180 bottom
+D6-13-8     "1206"          "unknown" 7625    15875    180 bottom
+D6-13-9     "1206"          "unknown" 7625    17375    180 bottom
+D6-13-10    "1206"          "unknown" 7625    18875    180 bottom
+D6-13-11    "1206"          "unknown" 7625    20375    180 bottom
+D6-13-12    "1206"          "unknown" 7625    21875    180 bottom
+D6-13-13    "1206"          "unknown" 7625    23375    180 bottom
+D6-13-14    "1206"          "unknown" 7625    24875    180 bottom
+D6-14-0     "1206"          "unknown" 8125    3875     180 bottom
+D6-14-1     "1206"          "unknown" 8125    5375     180 bottom
+D6-14-2     "1206"          "unknown" 8125    6875     180 bottom
+D6-14-3     "1206"          "unknown" 8125    8375     180 bottom
+D6-14-4     "1206"          "unknown" 8125    9875     180 bottom
+D6-14-5     "1206"          "unknown" 8125    11375    180 bottom
+D6-14-6     "1206"          "unknown" 8125    12875    180 bottom
+D6-14-7     "1206"          "unknown" 8125    14375    180 bottom
+D6-14-8     "1206"          "unknown" 8125    15875    180 bottom
+D6-14-9     "1206"          "unknown" 8125    17375    180 bottom
+D6-14-10    "1206"          "unknown" 8125    18875    180 bottom
+D6-14-11    "1206"          "unknown" 8125    20375    180 bottom
+D6-14-12    "1206"          "unknown" 8125    21875    180 bottom
+D6-14-13    "1206"          "unknown" 8125    23375    180 bottom
+D6-14-14    "1206"          "unknown" 8125    24875    180 bottom
+C13-0-0     "1206"          "unknown" 1615.95 3738.19  180 bottom
+C13-0-1     "1206"          "unknown" 1615.95 5238.19  180 bottom
+C13-0-2     "1206"          "unknown" 1615.95 6738.19  180 bottom
+C13-0-3     "1206"          "unknown" 1615.95 8238.19  180 bottom
+C13-0-4     "1206"          "unknown" 1615.95 9738.19  180 bottom
+C13-0-5     "1206"          "unknown" 1615.95 11238.19 180 bottom
+C13-0-6     "1206"          "unknown" 1615.95 12738.19 180 bottom
+C13-0-7     "1206"          "unknown" 1615.95 14238.19 180 bottom
+C13-0-8     "1206"          "unknown" 1615.95 15738.19 180 bottom
+C13-0-9     "1206"          "unknown" 1615.95 17238.19 180 bottom
+C13-0-10    "1206"          "unknown" 1615.95 18738.19 180 bottom
+C13-0-11    "1206"          "unknown" 1615.95 20238.19 180 bottom
+C13-0-12    "1206"          "unknown" 1615.95 21738.19 180 bottom
+C13-0-13    "1206"          "unknown" 1615.95 23238.19 180 bottom
+C13-0-14    "1206"          "unknown" 1615.95 24738.19 180 bottom
+C13-1-0     "1206"          "unknown" 2115.95 3738.19  180 bottom
+C13-1-1     "1206"          "unknown" 2115.95 5238.19  180 bottom
+C13-1-2     "1206"          "unknown" 2115.95 6738.19  180 bottom
+C13-1-3     "1206"          "unknown" 2115.95 8238.19  180 bottom
+C13-1-4     "1206"          "unknown" 2115.95 9738.19  180 bottom
+C13-1-5     "1206"          "unknown" 2115.95 11238.19 180 bottom
+C13-1-6     "1206"          "unknown" 2115.95 12738.19 180 bottom
+C13-1-7     "1206"          "unknown" 2115.95 14238.19 180 bottom
+C13-1-8     "1206"          "unknown" 2115.95 15738.19 180 bottom
+C13-1-9     "1206"          "unknown" 2115.95 17238.19 180 bottom
+C13-1-10    "1206"          "unknown" 2115.95 18738.19 180 bottom
+C13-1-11    "1206"          "unknown" 2115.95 20238.19 180 bottom
+C13-1-12    "1206"          "unknown" 2115.95 21738.19 180 bottom
+C13-1-13    "1206"          "unknown" 2115.95 23238.19 180 bottom
+C13-1-14    "1206"          "unknown" 2115.95 24738.19 180 bottom
+C13-2-0     "1206"          "unknown" 2615.95 3738.19  180 bottom
+C13-2-1     "1206"          "unknown" 2615.95 5238.19  180 bottom
+C13-2-2     "1206"          "unknown" 2615.95 6738.19  180 bottom
+C13-2-3     "1206"          "unknown" 2615.95 8238.19  180 bottom
+C13-2-4     "1206"          "unknown" 2615.95 9738.19  180 bottom
+C13-2-5     "1206"          "unknown" 2615.95 11238.19 180 bottom
+C13-2-6     "1206"          "unknown" 2615.95 12738.19 180 bottom
+C13-2-7     "1206"          "unknown" 2615.95 14238.19 180 bottom
+C13-2-8     "1206"          "unknown" 2615.95 15738.19 180 bottom
+C13-2-9     "1206"          "unknown" 2615.95 17238.19 180 bottom
+C13-2-10    "1206"          "unknown" 2615.95 18738.19 180 bottom
+C13-2-11    "1206"          "unknown" 2615.95 20238.19 180 bottom
+C13-2-12    "1206"          "unknown" 2615.95 21738.19 180 bottom
+C13-2-13    "1206"          "unknown" 2615.95 23238.19 180 bottom
+C13-2-14    "1206"          "unknown" 2615.95 24738.19 180 bottom
+C13-3-0     "1206"          "unknown" 3115.95 3738.19  180 bottom
+C13-3-1     "1206"          "unknown" 3115.95 5238.19  180 bottom
+C13-3-2     "1206"          "unknown" 3115.95 6738.19  180 bottom
+C13-3-3     "1206"          "unknown" 3115.95 8238.19  180 bottom
+C13-3-4     "1206"          "unknown" 3115.95 9738.19  180 bottom
+C13-3-5     "1206"          "unknown" 3115.95 11238.19 180 bottom
+C13-3-6     "1206"          "unknown" 3115.95 12738.19 180 bottom
+C13-3-7     "1206"          "unknown" 3115.95 14238.19 180 bottom
+C13-3-8     "1206"          "unknown" 3115.95 15738.19 180 bottom
+C13-3-9     "1206"          "unknown" 3115.95 17238.19 180 bottom
+C13-3-10    "1206"          "unknown" 3115.95 18738.19 180 bottom
+C13-3-11    "1206"          "unknown" 3115.95 20238.19 180 bottom
+C13-3-12    "1206"          "unknown" 3115.95 21738.19 180 bottom
+C13-3-13    "1206"          "unknown" 3115.95 23238.19 180 bottom
+C13-3-14    "1206"          "unknown" 3115.95 24738.19 180 bottom
+C13-4-0     "1206"          "unknown" 3615.95 3738.19  180 bottom
+C13-4-1     "1206"          "unknown" 3615.95 5238.19  180 bottom
+C13-4-2     "1206"          "unknown" 3615.95 6738.19  180 bottom
+C13-4-3     "1206"          "unknown" 3615.95 8238.19  180 bottom
+C13-4-4     "1206"          "unknown" 3615.95 9738.19  180 bottom
+C13-4-5     "1206"          "unknown" 3615.95 11238.19 180 bottom
+C13-4-6     "1206"          "unknown" 3615.95 12738.19 180 bottom
+C13-4-7     "1206"          "unknown" 3615.95 14238.19 180 bottom
+C13-4-8     "1206"          "unknown" 3615.95 15738.19 180 bottom
+C13-4-9     "1206"          "unknown" 3615.95 17238.19 180 bottom
+C13-4-10    "1206"          "unknown" 3615.95 18738.19 180 bottom
+C13-4-11    "1206"          "unknown" 3615.95 20238.19 180 bottom
+C13-4-12    "1206"          "unknown" 3615.95 21738.19 180 bottom
+C13-4-13    "1206"          "unknown" 3615.95 23238.19 180 bottom
+C13-4-14    "1206"          "unknown" 3615.95 24738.19 180 bottom
+C13-5-0     "1206"          "unknown" 4115.95 3738.19  180 bottom
+C13-5-1     "1206"          "unknown" 4115.95 5238.19  180 bottom
+C13-5-2     "1206"          "unknown" 4115.95 6738.19  180 bottom
+C13-5-3     "1206"          "unknown" 4115.95 8238.19  180 bottom
+C13-5-4     "1206"          "unknown" 4115.95 9738.19  180 bottom
+C13-5-5     "1206"          "unknown" 4115.95 11238.19 180 bottom
+C13-5-6     "1206"          "unknown" 4115.95 12738.19 180 bottom
+C13-5-7     "1206"          "unknown" 4115.95 14238.19 180 bottom
+C13-5-8     "1206"          "unknown" 4115.95 15738.19 180 bottom
+C13-5-9     "1206"          "unknown" 4115.95 17238.19 180 bottom
+C13-5-10    "1206"          "unknown" 4115.95 18738.19 180 bottom
+C13-5-11    "1206"          "unknown" 4115.95 20238.19 180 bottom
+C13-5-12    "1206"          "unknown" 4115.95 21738.19 180 bottom
+C13-5-13    "1206"          "unknown" 4115.95 23238.19 180 bottom
+C13-5-14    "1206"          "unknown" 4115.95 24738.19 180 bottom
+C13-6-0     "1206"          "unknown" 4615.95 3738.19  180 bottom
+C13-6-1     "1206"          "unknown" 4615.95 5238.19  180 bottom
+C13-6-2     "1206"          "unknown" 4615.95 6738.19  180 bottom
+C13-6-3     "1206"          "unknown" 4615.95 8238.19  180 bottom
+C13-6-4     "1206"          "unknown" 4615.95 9738.19  180 bottom
+C13-6-5     "1206"          "unknown" 4615.95 11238.19 180 bottom
+C13-6-6     "1206"          "unknown" 4615.95 12738.19 180 bottom
+C13-6-7     "1206"          "unknown" 4615.95 14238.19 180 bottom
+C13-6-8     "1206"          "unknown" 4615.95 15738.19 180 bottom
+C13-6-9     "1206"          "unknown" 4615.95 17238.19 180 bottom
+C13-6-10    "1206"          "unknown" 4615.95 18738.19 180 bottom
+C13-6-11    "1206"          "unknown" 4615.95 20238.19 180 bottom
+C13-6-12    "1206"          "unknown" 4615.95 21738.19 180 bottom
+C13-6-13    "1206"          "unknown" 4615.95 23238.19 180 bottom
+C13-6-14    "1206"          "unknown" 4615.95 24738.19 180 bottom
+C13-7-0     "1206"          "unknown" 5115.95 3738.19  180 bottom
+C13-7-1     "1206"          "unknown" 5115.95 5238.19  180 bottom
+C13-7-2     "1206"          "unknown" 5115.95 6738.19  180 bottom
+C13-7-3     "1206"          "unknown" 5115.95 8238.19  180 bottom
+C13-7-4     "1206"          "unknown" 5115.95 9738.19  180 bottom
+C13-7-5     "1206"          "unknown" 5115.95 11238.19 180 bottom
+C13-7-6     "1206"          "unknown" 5115.95 12738.19 180 bottom
+C13-7-7     "1206"          "unknown" 5115.95 14238.19 180 bottom
+C13-7-8     "1206"          "unknown" 5115.95 15738.19 180 bottom
+C13-7-9     "1206"          "unknown" 5115.95 17238.19 180 bottom
+C13-7-10    "1206"          "unknown" 5115.95 18738.19 180 bottom
+C13-7-11    "1206"          "unknown" 5115.95 20238.19 180 bottom
+C13-7-12    "1206"          "unknown" 5115.95 21738.19 180 bottom
+C13-7-13    "1206"          "unknown" 5115.95 23238.19 180 bottom
+C13-7-14    "1206"          "unknown" 5115.95 24738.19 180 bottom
+C13-8-0     "1206"          "unknown" 5615.95 3738.19  180 bottom
+C13-8-1     "1206"          "unknown" 5615.95 5238.19  180 bottom
+C13-8-2     "1206"          "unknown" 5615.95 6738.19  180 bottom
+C13-8-3     "1206"          "unknown" 5615.95 8238.19  180 bottom
+C13-8-4     "1206"          "unknown" 5615.95 9738.19  180 bottom
+C13-8-5     "1206"          "unknown" 5615.95 11238.19 180 bottom
+C13-8-6     "1206"          "unknown" 5615.95 12738.19 180 bottom
+C13-8-7     "1206"          "unknown" 5615.95 14238.19 180 bottom
+C13-8-8     "1206"          "unknown" 5615.95 15738.19 180 bottom
+C13-8-9     "1206"          "unknown" 5615.95 17238.19 180 bottom
+C13-8-10    "1206"          "unknown" 5615.95 18738.19 180 bottom
+C13-8-11    "1206"          "unknown" 5615.95 20238.19 180 bottom
+C13-8-12    "1206"          "unknown" 5615.95 21738.19 180 bottom
+C13-8-13    "1206"          "unknown" 5615.95 23238.19 180 bottom
+C13-8-14    "1206"          "unknown" 5615.95 24738.19 180 bottom
+C13-9-0     "1206"          "unknown" 6115.95 3738.19  180 bottom
+C13-9-1     "1206"          "unknown" 6115.95 5238.19  180 bottom
+C13-9-2     "1206"          "unknown" 6115.95 6738.19  180 bottom
+C13-9-3     "1206"          "unknown" 6115.95 8238.19  180 bottom
+C13-9-4     "1206"          "unknown" 6115.95 9738.19  180 bottom
+C13-9-5     "1206"          "unknown" 6115.95 11238.19 180 bottom
+C13-9-6     "1206"          "unknown" 6115.95 12738.19 180 bottom
+C13-9-7     "1206"          "unknown" 6115.95 14238.19 180 bottom
+C13-9-8     "1206"          "unknown" 6115.95 15738.19 180 bottom
+C13-9-9     "1206"          "unknown" 6115.95 17238.19 180 bottom
+C13-9-10    "1206"          "unknown" 6115.95 18738.19 180 bottom
+C13-9-11    "1206"          "unknown" 6115.95 20238.19 180 bottom
+C13-9-12    "1206"          "unknown" 6115.95 21738.19 180 bottom
+C13-9-13    "1206"          "unknown" 6115.95 23238.19 180 bottom
+C13-9-14    "1206"          "unknown" 6115.95 24738.19 180 bottom
+C13-10-0    "1206"          "unknown" 6615.95 3738.19  180 bottom
+C13-10-1    "1206"          "unknown" 6615.95 5238.19  180 bottom
+C13-10-2    "1206"          "unknown" 6615.95 6738.19  180 bottom
+C13-10-3    "1206"          "unknown" 6615.95 8238.19  180 bottom
+C13-10-4    "1206"          "unknown" 6615.95 9738.19  180 bottom
+C13-10-5    "1206"          "unknown" 6615.95 11238.19 180 bottom
+C13-10-6    "1206"          "unknown" 6615.95 12738.19 180 bottom
+C13-10-7    "1206"          "unknown" 6615.95 14238.19 180 bottom
+C13-10-8    "1206"          "unknown" 6615.95 15738.19 180 bottom
+C13-10-9    "1206"          "unknown" 6615.95 17238.19 180 bottom
+C13-10-10   "1206"          "unknown" 6615.95 18738.19 180 bottom
+C13-10-11   "1206"          "unknown" 6615.95 20238.19 180 bottom
+C13-10-12   "1206"          "unknown" 6615.95 21738.19 180 bottom
+C13-10-13   "1206"          "unknown" 6615.95 23238.19 180 bottom
+C13-10-14   "1206"          "unknown" 6615.95 24738.19 180 bottom
+C13-11-0    "1206"          "unknown" 7115.95 3738.19  180 bottom
+C13-11-1    "1206"          "unknown" 7115.95 5238.19  180 bottom
+C13-11-2    "1206"          "unknown" 7115.95 6738.19  180 bottom
+C13-11-3    "1206"          "unknown" 7115.95 8238.19  180 bottom
+C13-11-4    "1206"          "unknown" 7115.95 9738.19  180 bottom
+C13-11-5    "1206"          "unknown" 7115.95 11238.19 180 bottom
+C13-11-6    "1206"          "unknown" 7115.95 12738.19 180 bottom
+C13-11-7    "1206"          "unknown" 7115.95 14238.19 180 bottom
+C13-11-8    "1206"          "unknown" 7115.95 15738.19 180 bottom
+C13-11-9    "1206"          "unknown" 7115.95 17238.19 180 bottom
+C13-11-10   "1206"          "unknown" 7115.95 18738.19 180 bottom
+C13-11-11   "1206"          "unknown" 7115.95 20238.19 180 bottom
+C13-11-12   "1206"          "unknown" 7115.95 21738.19 180 bottom
+C13-11-13   "1206"          "unknown" 7115.95 23238.19 180 bottom
+C13-11-14   "1206"          "unknown" 7115.95 24738.19 180 bottom
+C13-12-0    "1206"          "unknown" 7615.95 3738.19  180 bottom
+C13-12-1    "1206"          "unknown" 7615.95 5238.19  180 bottom
+C13-12-2    "1206"          "unknown" 7615.95 6738.19  180 bottom
+C13-12-3    "1206"          "unknown" 7615.95 8238.19  180 bottom
+C13-12-4    "1206"          "unknown" 7615.95 9738.19  180 bottom
+C13-12-5    "1206"          "unknown" 7615.95 11238.19 180 bottom
+C13-12-6    "1206"          "unknown" 7615.95 12738.19 180 bottom
+C13-12-7    "1206"          "unknown" 7615.95 14238.19 180 bottom
+C13-12-8    "1206"          "unknown" 7615.95 15738.19 180 bottom
+C13-12-9    "1206"          "unknown" 7615.95 17238.19 180 bottom
+C13-12-10   "1206"          "unknown" 7615.95 18738.19 180 bottom
+C13-12-11   "1206"          "unknown" 7615.95 20238.19 180 bottom
+C13-12-12   "1206"          "unknown" 7615.95 21738.19 180 bottom
+C13-12-13   "1206"          "unknown" 7615.95 23238.19 180 bottom
+C13-12-14   "1206"          "unknown" 7615.95 24738.19 180 bottom
+C13-13-0    "1206"          "unknown" 8115.95 3738.19  180 bottom
+C13-13-1    "1206"          "unknown" 8115.95 5238.19  180 bottom
+C13-13-2    "1206"          "unknown" 8115.95 6738.19  180 bottom
+C13-13-3    "1206"          "unknown" 8115.95 8238.19  180 bottom
+C13-13-4    "1206"          "unknown" 8115.95 9738.19  180 bottom
+C13-13-5    "1206"          "unknown" 8115.95 11238.19 180 bottom
+C13-13-6    "1206"          "unknown" 8115.95 12738.19 180 bottom
+C13-13-7    "1206"          "unknown" 8115.95 14238.19 180 bottom
+C13-13-8    "1206"          "unknown" 8115.95 15738.19 180 bottom
+C13-13-9    "1206"          "unknown" 8115.95 17238.19 180 bottom
+C13-13-10   "1206"          "unknown" 8115.95 18738.19 180 bottom
+C13-13-11   "1206"          "unknown" 8115.95 20238.19 180 bottom
+C13-13-12   "1206"          "unknown" 8115.95 21738.19 180 bottom
+C13-13-13   "1206"          "unknown" 8115.95 23238.19 180 bottom
+C13-13-14   "1206"          "unknown" 8115.95 24738.19 180 bottom
+C13-14-0    "1206"          "unknown" 8615.95 3738.19  180 bottom
+C13-14-1    "1206"          "unknown" 8615.95 5238.19  180 bottom
+C13-14-2    "1206"          "unknown" 8615.95 6738.19  180 bottom
+C13-14-3    "1206"          "unknown" 8615.95 8238.19  180 bottom
+C13-14-4    "1206"          "unknown" 8615.95 9738.19  180 bottom
+C13-14-5    "1206"          "unknown" 8615.95 11238.19 180 bottom
+C13-14-6    "1206"          "unknown" 8615.95 12738.19 180 bottom
+C13-14-7    "1206"          "unknown" 8615.95 14238.19 180 bottom
+C13-14-8    "1206"          "unknown" 8615.95 15738.19 180 bottom
+C13-14-9    "1206"          "unknown" 8615.95 17238.19 180 bottom
+C13-14-10   "1206"          "unknown" 8615.95 18738.19 180 bottom
+C13-14-11   "1206"          "unknown" 8615.95 20238.19 180 bottom
+C13-14-12   "1206"          "unknown" 8615.95 21738.19 180 bottom
+C13-14-13   "1206"          "unknown" 8615.95 23238.19 180 bottom
+C13-14-14   "1206"          "unknown" 8615.95 24738.19 180 bottom
+CONN3-0-0   "CONNECTOR-4-1" "unknown" 2225.00 3600.00  270 top   
+CONN3-0-1   "CONNECTOR-4-1" "unknown" 2225    5100     270 top   
+CONN3-0-2   "CONNECTOR-4-1" "unknown" 2225    6600     270 top   
+CONN3-0-3   "CONNECTOR-4-1" "unknown" 2225    8100     270 top   
+CONN3-0-4   "CONNECTOR-4-1" "unknown" 2225    9600     270 top   
+CONN3-0-5   "CONNECTOR-4-1" "unknown" 2225    11100    270 top   
+CONN3-0-6   "CONNECTOR-4-1" "unknown" 2225    12600    270 top   
+CONN3-0-7   "CONNECTOR-4-1" "unknown" 2225    14100    270 top   
+CONN3-0-8   "CONNECTOR-4-1" "unknown" 2225    15600    270 top   
+CONN3-0-9   "CONNECTOR-4-1" "unknown" 2225    17100    270 top   
+CONN3-0-10  "CONNECTOR-4-1" "unknown" 2225    18600    270 top   
+CONN3-0-11  "CONNECTOR-4-1" "unknown" 2225    20100    270 top   
+CONN3-0-12  "CONNECTOR-4-1" "unknown" 2225    21600    270 top   
+CONN3-0-13  "CONNECTOR-4-1" "unknown" 2225    23100    270 top   
+CONN3-0-14  "CONNECTOR-4-1" "unknown" 2225    24600    270 top   
+CONN3-1-0   "CONNECTOR-4-1" "unknown" 2725    3600     270 top   
+CONN3-1-1   "CONNECTOR-4-1" "unknown" 2725    5100     270 top   
+CONN3-1-2   "CONNECTOR-4-1" "unknown" 2725    6600     270 top   
+CONN3-1-3   "CONNECTOR-4-1" "unknown" 2725    8100     270 top   
+CONN3-1-4   "CONNECTOR-4-1" "unknown" 2725    9600     270 top   
+CONN3-1-5   "CONNECTOR-4-1" "unknown" 2725    11100    270 top   
+CONN3-1-6   "CONNECTOR-4-1" "unknown" 2725    12600    270 top   
+CONN3-1-7   "CONNECTOR-4-1" "unknown" 2725    14100    270 top   
+CONN3-1-8   "CONNECTOR-4-1" "unknown" 2725    15600    270 top   
+CONN3-1-9   "CONNECTOR-4-1" "unknown" 2725    17100    270 top   
+CONN3-1-10  "CONNECTOR-4-1" "unknown" 2725    18600    270 top   
+CONN3-1-11  "CONNECTOR-4-1" "unknown" 2725    20100    270 top   
+CONN3-1-12  "CONNECTOR-4-1" "unknown" 2725    21600    270 top   
+CONN3-1-13  "CONNECTOR-4-1" "unknown" 2725    23100    270 top   
+CONN3-1-14  "CONNECTOR-4-1" "unknown" 2725    24600    270 top   
+CONN3-2-0   "CONNECTOR-4-1" "unknown" 3225    3600     270 top   
+CONN3-2-1   "CONNECTOR-4-1" "unknown" 3225    5100     270 top   
+CONN3-2-2   "CONNECTOR-4-1" "unknown" 3225    6600     270 top   
+CONN3-2-3   "CONNECTOR-4-1" "unknown" 3225    8100     270 top   
+CONN3-2-4   "CONNECTOR-4-1" "unknown" 3225    9600     270 top   
+CONN3-2-5   "CONNECTOR-4-1" "unknown" 3225    11100    270 top   
+CONN3-2-6   "CONNECTOR-4-1" "unknown" 3225    12600    270 top   
+CONN3-2-7   "CONNECTOR-4-1" "unknown" 3225    14100    270 top   
+CONN3-2-8   "CONNECTOR-4-1" "unknown" 3225    15600    270 top   
+CONN3-2-9   "CONNECTOR-4-1" "unknown" 3225    17100    270 top   
+CONN3-2-10  "CONNECTOR-4-1" "unknown" 3225    18600    270 top   
+CONN3-2-11  "CONNECTOR-4-1" "unknown" 3225    20100    270 top   
+CONN3-2-12  "CONNECTOR-4-1" "unknown" 3225    21600    270 top   
+CONN3-2-13  "CONNECTOR-4-1" "unknown" 3225    23100    270 top   
+CONN3-2-14  "CONNECTOR-4-1" "unknown" 3225    24600    270 top   
+CONN3-3-0   "CONNECTOR-4-1" "unknown" 3725    3600     270 top   
+CONN3-3-1   "CONNECTOR-4-1" "unknown" 3725    5100     270 top   
+CONN3-3-2   "CONNECTOR-4-1" "unknown" 3725    6600     270 top   
+CONN3-3-3   "CONNECTOR-4-1" "unknown" 3725    8100     270 top   
+CONN3-3-4   "CONNECTOR-4-1" "unknown" 3725    9600     270 top   
+CONN3-3-5   "CONNECTOR-4-1" "unknown" 3725    11100    270 top   
+CONN3-3-6   "CONNECTOR-4-1" "unknown" 3725    12600    270 top   
+CONN3-3-7   "CONNECTOR-4-1" "unknown" 3725    14100    270 top   
+CONN3-3-8   "CONNECTOR-4-1" "unknown" 3725    15600    270 top   
+CONN3-3-9   "CONNECTOR-4-1" "unknown" 3725    17100    270 top   
+CONN3-3-10  "CONNECTOR-4-1" "unknown" 3725    18600    270 top   
+CONN3-3-11  "CONNECTOR-4-1" "unknown" 3725    20100    270 top   
+CONN3-3-12  "CONNECTOR-4-1" "unknown" 3725    21600    270 top   
+CONN3-3-13  "CONNECTOR-4-1" "unknown" 3725    23100    270 top   
+CONN3-3-14  "CONNECTOR-4-1" "unknown" 3725    24600    270 top   
+CONN3-4-0   "CONNECTOR-4-1" "unknown" 4225    3600     270 top   
+CONN3-4-1   "CONNECTOR-4-1" "unknown" 4225    5100     270 top   
+CONN3-4-2   "CONNECTOR-4-1" "unknown" 4225    6600     270 top   
+CONN3-4-3   "CONNECTOR-4-1" "unknown" 4225    8100     270 top   
+CONN3-4-4   "CONNECTOR-4-1" "unknown" 4225    9600     270 top   
+CONN3-4-5   "CONNECTOR-4-1" "unknown" 4225    11100    270 top   
+CONN3-4-6   "CONNECTOR-4-1" "unknown" 4225    12600    270 top   
+CONN3-4-7   "CONNECTOR-4-1" "unknown" 4225    14100    270 top   
+CONN3-4-8   "CONNECTOR-4-1" "unknown" 4225    15600    270 top   
+CONN3-4-9   "CONNECTOR-4-1" "unknown" 4225    17100    270 top   
+CONN3-4-10  "CONNECTOR-4-1" "unknown" 4225    18600    270 top   
+CONN3-4-11  "CONNECTOR-4-1" "unknown" 4225    20100    270 top   
+CONN3-4-12  "CONNECTOR-4-1" "unknown" 4225    21600    270 top   
+CONN3-4-13  "CONNECTOR-4-1" "unknown" 4225    23100    270 top   
+CONN3-4-14  "CONNECTOR-4-1" "unknown" 4225    24600    270 top   
+CONN3-5-0   "CONNECTOR-4-1" "unknown" 4725    3600     270 top   
+CONN3-5-1   "CONNECTOR-4-1" "unknown" 4725    5100     270 top   
+CONN3-5-2   "CONNECTOR-4-1" "unknown" 4725    6600     270 top   
+CONN3-5-3   "CONNECTOR-4-1" "unknown" 4725    8100     270 top   
+CONN3-5-4   "CONNECTOR-4-1" "unknown" 4725    9600     270 top   
+CONN3-5-5   "CONNECTOR-4-1" "unknown" 4725    11100    270 top   
+CONN3-5-6   "CONNECTOR-4-1" "unknown" 4725    12600    270 top   
+CONN3-5-7   "CONNECTOR-4-1" "unknown" 4725    14100    270 top   
+CONN3-5-8   "CONNECTOR-4-1" "unknown" 4725    15600    270 top   
+CONN3-5-9   "CONNECTOR-4-1" "unknown" 4725    17100    270 top   
+CONN3-5-10  "CONNECTOR-4-1" "unknown" 4725    18600    270 top   
+CONN3-5-11  "CONNECTOR-4-1" "unknown" 4725    20100    270 top   
+CONN3-5-12  "CONNECTOR-4-1" "unknown" 4725    21600    270 top   
+CONN3-5-13  "CONNECTOR-4-1" "unknown" 4725    23100    270 top   
+CONN3-5-14  "CONNECTOR-4-1" "unknown" 4725    24600    270 top   
+CONN3-6-0   "CONNECTOR-4-1" "unknown" 5225    3600     270 top   
+CONN3-6-1   "CONNECTOR-4-1" "unknown" 5225    5100     270 top   
+CONN3-6-2   "CONNECTOR-4-1" "unknown" 5225    6600     270 top   
+CONN3-6-3   "CONNECTOR-4-1" "unknown" 5225    8100     270 top   
+CONN3-6-4   "CONNECTOR-4-1" "unknown" 5225    9600     270 top   
+CONN3-6-5   "CONNECTOR-4-1" "unknown" 5225    11100    270 top   
+CONN3-6-6   "CONNECTOR-4-1" "unknown" 5225    12600    270 top   
+CONN3-6-7   "CONNECTOR-4-1" "unknown" 5225    14100    270 top   
+CONN3-6-8   "CONNECTOR-4-1" "unknown" 5225    15600    270 top   
+CONN3-6-9   "CONNECTOR-4-1" "unknown" 5225    17100    270 top   
+CONN3-6-10  "CONNECTOR-4-1" "unknown" 5225    18600    270 top   
+CONN3-6-11  "CONNECTOR-4-1" "unknown" 5225    20100    270 top   
+CONN3-6-12  "CONNECTOR-4-1" "unknown" 5225    21600    270 top   
+CONN3-6-13  "CONNECTOR-4-1" "unknown" 5225    23100    270 top   
+CONN3-6-14  "CONNECTOR-4-1" "unknown" 5225    24600    270 top   
+CONN3-7-0   "CONNECTOR-4-1" "unknown" 5725    3600     270 top   
+CONN3-7-1   "CONNECTOR-4-1" "unknown" 5725    5100     270 top   
+CONN3-7-2   "CONNECTOR-4-1" "unknown" 5725    6600     270 top   
+CONN3-7-3   "CONNECTOR-4-1" "unknown" 5725    8100     270 top   
+CONN3-7-4   "CONNECTOR-4-1" "unknown" 5725    9600     270 top   
+CONN3-7-5   "CONNECTOR-4-1" "unknown" 5725    11100    270 top   
+CONN3-7-6   "CONNECTOR-4-1" "unknown" 5725    12600    270 top   
+CONN3-7-7   "CONNECTOR-4-1" "unknown" 5725    14100    270 top   
+CONN3-7-8   "CONNECTOR-4-1" "unknown" 5725    15600    270 top   
+CONN3-7-9   "CONNECTOR-4-1" "unknown" 5725    17100    270 top   
+CONN3-7-10  "CONNECTOR-4-1" "unknown" 5725    18600    270 top   
+CONN3-7-11  "CONNECTOR-4-1" "unknown" 5725    20100    270 top   
+CONN3-7-12  "CONNECTOR-4-1" "unknown" 5725    21600    270 top   
+CONN3-7-13  "CONNECTOR-4-1" "unknown" 5725    23100    270 top   
+CONN3-7-14  "CONNECTOR-4-1" "unknown" 5725    24600    270 top   
+CONN3-8-0   "CONNECTOR-4-1" "unknown" 6225    3600     270 top   
+CONN3-8-1   "CONNECTOR-4-1" "unknown" 6225    5100     270 top   
+CONN3-8-2   "CONNECTOR-4-1" "unknown" 6225    6600     270 top   
+CONN3-8-3   "CONNECTOR-4-1" "unknown" 6225    8100     270 top   
+CONN3-8-4   "CONNECTOR-4-1" "unknown" 6225    9600     270 top   
+CONN3-8-5   "CONNECTOR-4-1" "unknown" 6225    11100    270 top   
+CONN3-8-6   "CONNECTOR-4-1" "unknown" 6225    12600    270 top   
+CONN3-8-7   "CONNECTOR-4-1" "unknown" 6225    14100    270 top   
+CONN3-8-8   "CONNECTOR-4-1" "unknown" 6225    15600    270 top   
+CONN3-8-9   "CONNECTOR-4-1" "unknown" 6225    17100    270 top   
+CONN3-8-10  "CONNECTOR-4-1" "unknown" 6225    18600    270 top   
+CONN3-8-11  "CONNECTOR-4-1" "unknown" 6225    20100    270 top   
+CONN3-8-12  "CONNECTOR-4-1" "unknown" 6225    21600    270 top   
+CONN3-8-13  "CONNECTOR-4-1" "unknown" 6225    23100    270 top   
+CONN3-8-14  "CONNECTOR-4-1" "unknown" 6225    24600    270 top   
+CONN3-9-0   "CONNECTOR-4-1" "unknown" 6725    3600     270 top   
+CONN3-9-1   "CONNECTOR-4-1" "unknown" 6725    5100     270 top   
+CONN3-9-2   "CONNECTOR-4-1" "unknown" 6725    6600     270 top   
+CONN3-9-3   "CONNECTOR-4-1" "unknown" 6725    8100     270 top   
+CONN3-9-4   "CONNECTOR-4-1" "unknown" 6725    9600     270 top   
+CONN3-9-5   "CONNECTOR-4-1" "unknown" 6725    11100    270 top   
+CONN3-9-6   "CONNECTOR-4-1" "unknown" 6725    12600    270 top   
+CONN3-9-7   "CONNECTOR-4-1" "unknown" 6725    14100    270 top   
+CONN3-9-8   "CONNECTOR-4-1" "unknown" 6725    15600    270 top   
+CONN3-9-9   "CONNECTOR-4-1" "unknown" 6725    17100    270 top   
+CONN3-9-10  "CONNECTOR-4-1" "unknown" 6725    18600    270 top   
+CONN3-9-11  "CONNECTOR-4-1" "unknown" 6725    20100    270 top   
+CONN3-9-12  "CONNECTOR-4-1" "unknown" 6725    21600    270 top   
+CONN3-9-13  "CONNECTOR-4-1" "unknown" 6725    23100    270 top   
+CONN3-9-14  "CONNECTOR-4-1" "unknown" 6725    24600    270 top   
+CONN3-10-0  "CONNECTOR-4-1" "unknown" 7225    3600     270 top   
+CONN3-10-1  "CONNECTOR-4-1" "unknown" 7225    5100     270 top   
+CONN3-10-2  "CONNECTOR-4-1" "unknown" 7225    6600     270 top   
+CONN3-10-3  "CONNECTOR-4-1" "unknown" 7225    8100     270 top   
+CONN3-10-4  "CONNECTOR-4-1" "unknown" 7225    9600     270 top   
+CONN3-10-5  "CONNECTOR-4-1" "unknown" 7225    11100    270 top   
+CONN3-10-6  "CONNECTOR-4-1" "unknown" 7225    12600    270 top   
+CONN3-10-7  "CONNECTOR-4-1" "unknown" 7225    14100    270 top   
+CONN3-10-8  "CONNECTOR-4-1" "unknown" 7225    15600    270 top   
+CONN3-10-9  "CONNECTOR-4-1" "unknown" 7225    17100    270 top   
+CONN3-10-10 "CONNECTOR-4-1" "unknown" 7225    18600    270 top   
+CONN3-10-11 "CONNECTOR-4-1" "unknown" 7225    20100    270 top   
+CONN3-10-12 "CONNECTOR-4-1" "unknown" 7225    21600    270 top   
+CONN3-10-13 "CONNECTOR-4-1" "unknown" 7225    23100    270 top   
+CONN3-10-14 "CONNECTOR-4-1" "unknown" 7225    24600    270 top   
+CONN3-11-0  "CONNECTOR-4-1" "unknown" 7725    3600     270 top   
+CONN3-11-1  "CONNECTOR-4-1" "unknown" 7725    5100     270 top   
+CONN3-11-2  "CONNECTOR-4-1" "unknown" 7725    6600     270 top   
+CONN3-11-3  "CONNECTOR-4-1" "unknown" 7725    8100     270 top   
+CONN3-11-4  "CONNECTOR-4-1" "unknown" 7725    9600     270 top   
+CONN3-11-5  "CONNECTOR-4-1" "unknown" 7725    11100    270 top   
+CONN3-11-6  "CONNECTOR-4-1" "unknown" 7725    12600    270 top   
+CONN3-11-7  "CONNECTOR-4-1" "unknown" 7725    14100    270 top   
+CONN3-11-8  "CONNECTOR-4-1" "unknown" 7725    15600    270 top   
+CONN3-11-9  "CONNECTOR-4-1" "unknown" 7725    17100    270 top   
+CONN3-11-10 "CONNECTOR-4-1" "unknown" 7725    18600    270 top   
+CONN3-11-11 "CONNECTOR-4-1" "unknown" 7725    20100    270 top   
+CONN3-11-12 "CONNECTOR-4-1" "unknown" 7725    21600    270 top   
+CONN3-11-13 "CONNECTOR-4-1" "unknown" 7725    23100    270 top   
+CONN3-11-14 "CONNECTOR-4-1" "unknown" 7725    24600    270 top   
+CONN3-12-0  "CONNECTOR-4-1" "unknown" 8225    3600     270 top   
+CONN3-12-1  "CONNECTOR-4-1" "unknown" 8225    5100     270 top   
+CONN3-12-2  "CONNECTOR-4-1" "unknown" 8225    6600     270 top   
+CONN3-12-3  "CONNECTOR-4-1" "unknown" 8225    8100     270 top   
+CONN3-12-4  "CONNECTOR-4-1" "unknown" 8225    9600     270 top   
+CONN3-12-5  "CONNECTOR-4-1" "unknown" 8225    11100    270 top   
+CONN3-12-6  "CONNECTOR-4-1" "unknown" 8225    12600    270 top   
+CONN3-12-7  "CONNECTOR-4-1" "unknown" 8225    14100    270 top   
+CONN3-12-8  "CONNECTOR-4-1" "unknown" 8225    15600    270 top   
+CONN3-12-9  "CONNECTOR-4-1" "unknown" 8225    17100    270 top   
+CONN3-12-10 "CONNECTOR-4-1" "unknown" 8225    18600    270 top   
+CONN3-12-11 "CONNECTOR-4-1" "unknown" 8225    20100    270 top   
+CONN3-12-12 "CONNECTOR-4-1" "unknown" 8225    21600    270 top   
+CONN3-12-13 "CONNECTOR-4-1" "unknown" 8225    23100    270 top   
+CONN3-12-14 "CONNECTOR-4-1" "unknown" 8225    24600    270 top   
+CONN3-13-0  "CONNECTOR-4-1" "unknown" 8725    3600     270 top   
+CONN3-13-1  "CONNECTOR-4-1" "unknown" 8725    5100     270 top   
+CONN3-13-2  "CONNECTOR-4-1" "unknown" 8725    6600     270 top   
+CONN3-13-3  "CONNECTOR-4-1" "unknown" 8725    8100     270 top   
+CONN3-13-4  "CONNECTOR-4-1" "unknown" 8725    9600     270 top   
+CONN3-13-5  "CONNECTOR-4-1" "unknown" 8725    11100    270 top   
+CONN3-13-6  "CONNECTOR-4-1" "unknown" 8725    12600    270 top   
+CONN3-13-7  "CONNECTOR-4-1" "unknown" 8725    14100    270 top   
+CONN3-13-8  "CONNECTOR-4-1" "unknown" 8725    15600    270 top   
+CONN3-13-9  "CONNECTOR-4-1" "unknown" 8725    17100    270 top   
+CONN3-13-10 "CONNECTOR-4-1" "unknown" 8725    18600    270 top   
+CONN3-13-11 "CONNECTOR-4-1" "unknown" 8725    20100    270 top   
+CONN3-13-12 "CONNECTOR-4-1" "unknown" 8725    21600    270 top   
+CONN3-13-13 "CONNECTOR-4-1" "unknown" 8725    23100    270 top   
+CONN3-13-14 "CONNECTOR-4-1" "unknown" 8725    24600    270 top   
+CONN3-14-0  "CONNECTOR-4-1" "unknown" 9225    3600     270 top   
+CONN3-14-1  "CONNECTOR-4-1" "unknown" 9225    5100     270 top   
+CONN3-14-2  "CONNECTOR-4-1" "unknown" 9225    6600     270 top   
+CONN3-14-3  "CONNECTOR-4-1" "unknown" 9225    8100     270 top   
+CONN3-14-4  "CONNECTOR-4-1" "unknown" 9225    9600     270 top   
+CONN3-14-5  "CONNECTOR-4-1" "unknown" 9225    11100    270 top   
+CONN3-14-6  "CONNECTOR-4-1" "unknown" 9225    12600    270 top   
+CONN3-14-7  "CONNECTOR-4-1" "unknown" 9225    14100    270 top   
+CONN3-14-8  "CONNECTOR-4-1" "unknown" 9225    15600    270 top   
+CONN3-14-9  "CONNECTOR-4-1" "unknown" 9225    17100    270 top   
+CONN3-14-10 "CONNECTOR-4-1" "unknown" 9225    18600    270 top   
+CONN3-14-11 "CONNECTOR-4-1" "unknown" 9225    20100    270 top   
+CONN3-14-12 "CONNECTOR-4-1" "unknown" 9225    21600    270 top   
+CONN3-14-13 "CONNECTOR-4-1" "unknown" 9225    23100    270 top   
+CONN3-14-14 "CONNECTOR-4-1" "unknown" 9225    24600    270 top   
+C12-0-0     "1206"          "unknown" 1438.19 3834.05  270 bottom
+C12-0-1     "1206"          "unknown" 1438.19 5334.05  270 bottom
+C12-0-2     "1206"          "unknown" 1438.19 6834.05  270 bottom
+C12-0-3     "1206"          "unknown" 1438.19 8334.05  270 bottom
+C12-0-4     "1206"          "unknown" 1438.19 9834.05  270 bottom
+C12-0-5     "1206"          "unknown" 1438.19 11334.05 270 bottom
+C12-0-6     "1206"          "unknown" 1438.19 12834.05 270 bottom
+C12-0-7     "1206"          "unknown" 1438.19 14334.05 270 bottom
+C12-0-8     "1206"          "unknown" 1438.19 15834.05 270 bottom
+C12-0-9     "1206"          "unknown" 1438.19 17334.05 270 bottom
+C12-0-10    "1206"          "unknown" 1438.19 18834.05 270 bottom
+C12-0-11    "1206"          "unknown" 1438.19 20334.05 270 bottom
+C12-0-12    "1206"          "unknown" 1438.19 21834.05 270 bottom
+C12-0-13    "1206"          "unknown" 1438.19 23334.05 270 bottom
+C12-0-14    "1206"          "unknown" 1438.19 24834.05 270 bottom
+C12-1-0     "1206"          "unknown" 1938.19 3834.05  270 bottom
+C12-1-1     "1206"          "unknown" 1938.19 5334.05  270 bottom
+C12-1-2     "1206"          "unknown" 1938.19 6834.05  270 bottom
+C12-1-3     "1206"          "unknown" 1938.19 8334.05  270 bottom
+C12-1-4     "1206"          "unknown" 1938.19 9834.05  270 bottom
+C12-1-5     "1206"          "unknown" 1938.19 11334.05 270 bottom
+C12-1-6     "1206"          "unknown" 1938.19 12834.05 270 bottom
+C12-1-7     "1206"          "unknown" 1938.19 14334.05 270 bottom
+C12-1-8     "1206"          "unknown" 1938.19 15834.05 270 bottom
+C12-1-9     "1206"          "unknown" 1938.19 17334.05 270 bottom
+C12-1-10    "1206"          "unknown" 1938.19 18834.05 270 bottom
+C12-1-11    "1206"          "unknown" 1938.19 20334.05 270 bottom
+C12-1-12    "1206"          "unknown" 1938.19 21834.05 270 bottom
+C12-1-13    "1206"          "unknown" 1938.19 23334.05 270 bottom
+C12-1-14    "1206"          "unknown" 1938.19 24834.05 270 bottom
+C12-2-0     "1206"          "unknown" 2438.19 3834.05  270 bottom
+C12-2-1     "1206"          "unknown" 2438.19 5334.05  270 bottom
+C12-2-2     "1206"          "unknown" 2438.19 6834.05  270 bottom
+C12-2-3     "1206"          "unknown" 2438.19 8334.05  270 bottom
+C12-2-4     "1206"          "unknown" 2438.19 9834.05  270 bottom
+C12-2-5     "1206"          "unknown" 2438.19 11334.05 270 bottom
+C12-2-6     "1206"          "unknown" 2438.19 12834.05 270 bottom
+C12-2-7     "1206"          "unknown" 2438.19 14334.05 270 bottom
+C12-2-8     "1206"          "unknown" 2438.19 15834.05 270 bottom
+C12-2-9     "1206"          "unknown" 2438.19 17334.05 270 bottom
+C12-2-10    "1206"          "unknown" 2438.19 18834.05 270 bottom
+C12-2-11    "1206"          "unknown" 2438.19 20334.05 270 bottom
+C12-2-12    "1206"          "unknown" 2438.19 21834.05 270 bottom
+C12-2-13    "1206"          "unknown" 2438.19 23334.05 270 bottom
+C12-2-14    "1206"          "unknown" 2438.19 24834.05 270 bottom
+C12-3-0     "1206"          "unknown" 2938.19 3834.05  270 bottom
+C12-3-1     "1206"          "unknown" 2938.19 5334.05  270 bottom
+C12-3-2     "1206"          "unknown" 2938.19 6834.05  270 bottom
+C12-3-3     "1206"          "unknown" 2938.19 8334.05  270 bottom
+C12-3-4     "1206"          "unknown" 2938.19 9834.05  270 bottom
+C12-3-5     "1206"          "unknown" 2938.19 11334.05 270 bottom
+C12-3-6     "1206"          "unknown" 2938.19 12834.05 270 bottom
+C12-3-7     "1206"          "unknown" 2938.19 14334.05 270 bottom
+C12-3-8     "1206"          "unknown" 2938.19 15834.05 270 bottom
+C12-3-9     "1206"          "unknown" 2938.19 17334.05 270 bottom
+C12-3-10    "1206"          "unknown" 2938.19 18834.05 270 bottom
+C12-3-11    "1206"          "unknown" 2938.19 20334.05 270 bottom
+C12-3-12    "1206"          "unknown" 2938.19 21834.05 270 bottom
+C12-3-13    "1206"          "unknown" 2938.19 23334.05 270 bottom
+C12-3-14    "1206"          "unknown" 2938.19 24834.05 270 bottom
+C12-4-0     "1206"          "unknown" 3438.19 3834.05  270 bottom
+C12-4-1     "1206"          "unknown" 3438.19 5334.05  270 bottom
+C12-4-2     "1206"          "unknown" 3438.19 6834.05  270 bottom
+C12-4-3     "1206"          "unknown" 3438.19 8334.05  270 bottom
+C12-4-4     "1206"          "unknown" 3438.19 9834.05  270 bottom
+C12-4-5     "1206"          "unknown" 3438.19 11334.05 270 bottom
+C12-4-6     "1206"          "unknown" 3438.19 12834.05 270 bottom
+C12-4-7     "1206"          "unknown" 3438.19 14334.05 270 bottom
+C12-4-8     "1206"          "unknown" 3438.19 15834.05 270 bottom
+C12-4-9     "1206"          "unknown" 3438.19 17334.05 270 bottom
+C12-4-10    "1206"          "unknown" 3438.19 18834.05 270 bottom
+C12-4-11    "1206"          "unknown" 3438.19 20334.05 270 bottom
+C12-4-12    "1206"          "unknown" 3438.19 21834.05 270 bottom
+C12-4-13    "1206"          "unknown" 3438.19 23334.05 270 bottom
+C12-4-14    "1206"          "unknown" 3438.19 24834.05 270 bottom
+C12-5-0     "1206"          "unknown" 3938.19 3834.05  270 bottom
+C12-5-1     "1206"          "unknown" 3938.19 5334.05  270 bottom
+C12-5-2     "1206"          "unknown" 3938.19 6834.05  270 bottom
+C12-5-3     "1206"          "unknown" 3938.19 8334.05  270 bottom
+C12-5-4     "1206"          "unknown" 3938.19 9834.05  270 bottom
+C12-5-5     "1206"          "unknown" 3938.19 11334.05 270 bottom
+C12-5-6     "1206"          "unknown" 3938.19 12834.05 270 bottom
+C12-5-7     "1206"          "unknown" 3938.19 14334.05 270 bottom
+C12-5-8     "1206"          "unknown" 3938.19 15834.05 270 bottom
+C12-5-9     "1206"          "unknown" 3938.19 17334.05 270 bottom
+C12-5-10    "1206"          "unknown" 3938.19 18834.05 270 bottom
+C12-5-11    "1206"          "unknown" 3938.19 20334.05 270 bottom
+C12-5-12    "1206"          "unknown" 3938.19 21834.05 270 bottom
+C12-5-13    "1206"          "unknown" 3938.19 23334.05 270 bottom
+C12-5-14    "1206"          "unknown" 3938.19 24834.05 270 bottom
+C12-6-0     "1206"          "unknown" 4438.19 3834.05  270 bottom
+C12-6-1     "1206"          "unknown" 4438.19 5334.05  270 bottom
+C12-6-2     "1206"          "unknown" 4438.19 6834.05  270 bottom
+C12-6-3     "1206"          "unknown" 4438.19 8334.05  270 bottom
+C12-6-4     "1206"          "unknown" 4438.19 9834.05  270 bottom
+C12-6-5     "1206"          "unknown" 4438.19 11334.05 270 bottom
+C12-6-6     "1206"          "unknown" 4438.19 12834.05 270 bottom
+C12-6-7     "1206"          "unknown" 4438.19 14334.05 270 bottom
+C12-6-8     "1206"          "unknown" 4438.19 15834.05 270 bottom
+C12-6-9     "1206"          "unknown" 4438.19 17334.05 270 bottom
+C12-6-10    "1206"          "unknown" 4438.19 18834.05 270 bottom
+C12-6-11    "1206"          "unknown" 4438.19 20334.05 270 bottom
+C12-6-12    "1206"          "unknown" 4438.19 21834.05 270 bottom
+C12-6-13    "1206"          "unknown" 4438.19 23334.05 270 bottom
+C12-6-14    "1206"          "unknown" 4438.19 24834.05 270 bottom
+C12-7-0     "1206"          "unknown" 4938.19 3834.05  270 bottom
+C12-7-1     "1206"          "unknown" 4938.19 5334.05  270 bottom
+C12-7-2     "1206"          "unknown" 4938.19 6834.05  270 bottom
+C12-7-3     "1206"          "unknown" 4938.19 8334.05  270 bottom
+C12-7-4     "1206"          "unknown" 4938.19 9834.05  270 bottom
+C12-7-5     "1206"          "unknown" 4938.19 11334.05 270 bottom
+C12-7-6     "1206"          "unknown" 4938.19 12834.05 270 bottom
+C12-7-7     "1206"          "unknown" 4938.19 14334.05 270 bottom
+C12-7-8     "1206"          "unknown" 4938.19 15834.05 270 bottom
+C12-7-9     "1206"          "unknown" 4938.19 17334.05 270 bottom
+C12-7-10    "1206"          "unknown" 4938.19 18834.05 270 bottom
+C12-7-11    "1206"          "unknown" 4938.19 20334.05 270 bottom
+C12-7-12    "1206"          "unknown" 4938.19 21834.05 270 bottom
+C12-7-13    "1206"          "unknown" 4938.19 23334.05 270 bottom
+C12-7-14    "1206"          "unknown" 4938.19 24834.05 270 bottom
+C12-8-0     "1206"          "unknown" 5438.19 3834.05  270 bottom
+C12-8-1     "1206"          "unknown" 5438.19 5334.05  270 bottom
+C12-8-2     "1206"          "unknown" 5438.19 6834.05  270 bottom
+C12-8-3     "1206"          "unknown" 5438.19 8334.05  270 bottom
+C12-8-4     "1206"          "unknown" 5438.19 9834.05  270 bottom
+C12-8-5     "1206"          "unknown" 5438.19 11334.05 270 bottom
+C12-8-6     "1206"          "unknown" 5438.19 12834.05 270 bottom
+C12-8-7     "1206"          "unknown" 5438.19 14334.05 270 bottom
+C12-8-8     "1206"          "unknown" 5438.19 15834.05 270 bottom
+C12-8-9     "1206"          "unknown" 5438.19 17334.05 270 bottom
+C12-8-10    "1206"          "unknown" 5438.19 18834.05 270 bottom
+C12-8-11    "1206"          "unknown" 5438.19 20334.05 270 bottom
+C12-8-12    "1206"          "unknown" 5438.19 21834.05 270 bottom
+C12-8-13    "1206"          "unknown" 5438.19 23334.05 270 bottom
+C12-8-14    "1206"          "unknown" 5438.19 24834.05 270 bottom
+C12-9-0     "1206"          "unknown" 5938.19 3834.05  270 bottom
+C12-9-1     "1206"          "unknown" 5938.19 5334.05  270 bottom
+C12-9-2     "1206"          "unknown" 5938.19 6834.05  270 bottom
+C12-9-3     "1206"          "unknown" 5938.19 8334.05  270 bottom
+C12-9-4     "1206"          "unknown" 5938.19 9834.05  270 bottom
+C12-9-5     "1206"          "unknown" 5938.19 11334.05 270 bottom
+C12-9-6     "1206"          "unknown" 5938.19 12834.05 270 bottom
+C12-9-7     "1206"          "unknown" 5938.19 14334.05 270 bottom
+C12-9-8     "1206"          "unknown" 5938.19 15834.05 270 bottom
+C12-9-9     "1206"          "unknown" 5938.19 17334.05 270 bottom
+C12-9-10    "1206"          "unknown" 5938.19 18834.05 270 bottom
+C12-9-11    "1206"          "unknown" 5938.19 20334.05 270 bottom
+C12-9-12    "1206"          "unknown" 5938.19 21834.05 270 bottom
+C12-9-13    "1206"          "unknown" 5938.19 23334.05 270 bottom
+C12-9-14    "1206"          "unknown" 5938.19 24834.05 270 bottom
+C12-10-0    "1206"          "unknown" 6438.19 3834.05  270 bottom
+C12-10-1    "1206"          "unknown" 6438.19 5334.05  270 bottom
+C12-10-2    "1206"          "unknown" 6438.19 6834.05  270 bottom
+C12-10-3    "1206"          "unknown" 6438.19 8334.05  270 bottom
+C12-10-4    "1206"          "unknown" 6438.19 9834.05  270 bottom
+C12-10-5    "1206"          "unknown" 6438.19 11334.05 270 bottom
+C12-10-6    "1206"          "unknown" 6438.19 12834.05 270 bottom
+C12-10-7    "1206"          "unknown" 6438.19 14334.05 270 bottom
+C12-10-8    "1206"          "unknown" 6438.19 15834.05 270 bottom
+C12-10-9    "1206"          "unknown" 6438.19 17334.05 270 bottom
+C12-10-10   "1206"          "unknown" 6438.19 18834.05 270 bottom
+C12-10-11   "1206"          "unknown" 6438.19 20334.05 270 bottom
+C12-10-12   "1206"          "unknown" 6438.19 21834.05 270 bottom
+C12-10-13   "1206"          "unknown" 6438.19 23334.05 270 bottom
+C12-10-14   "1206"          "unknown" 6438.19 24834.05 270 bottom
+C12-11-0    "1206"          "unknown" 6938.19 3834.05  270 bottom
+C12-11-1    "1206"          "unknown" 6938.19 5334.05  270 bottom
+C12-11-2    "1206"          "unknown" 6938.19 6834.05  270 bottom
+C12-11-3    "1206"          "unknown" 6938.19 8334.05  270 bottom
+C12-11-4    "1206"          "unknown" 6938.19 9834.05  270 bottom
+C12-11-5    "1206"          "unknown" 6938.19 11334.05 270 bottom
+C12-11-6    "1206"          "unknown" 6938.19 12834.05 270 bottom
+C12-11-7    "1206"          "unknown" 6938.19 14334.05 270 bottom
+C12-11-8    "1206"          "unknown" 6938.19 15834.05 270 bottom
+C12-11-9    "1206"          "unknown" 6938.19 17334.05 270 bottom
+C12-11-10   "1206"          "unknown" 6938.19 18834.05 270 bottom
+C12-11-11   "1206"          "unknown" 6938.19 20334.05 270 bottom
+C12-11-12   "1206"          "unknown" 6938.19 21834.05 270 bottom
+C12-11-13   "1206"          "unknown" 6938.19 23334.05 270 bottom
+C12-11-14   "1206"          "unknown" 6938.19 24834.05 270 bottom
+C12-12-0    "1206"          "unknown" 7438.19 3834.05  270 bottom
+C12-12-1    "1206"          "unknown" 7438.19 5334.05  270 bottom
+C12-12-2    "1206"          "unknown" 7438.19 6834.05  270 bottom
+C12-12-3    "1206"          "unknown" 7438.19 8334.05  270 bottom
+C12-12-4    "1206"          "unknown" 7438.19 9834.05  270 bottom
+C12-12-5    "1206"          "unknown" 7438.19 11334.05 270 bottom
+C12-12-6    "1206"          "unknown" 7438.19 12834.05 270 bottom
+C12-12-7    "1206"          "unknown" 7438.19 14334.05 270 bottom
+C12-12-8    "1206"          "unknown" 7438.19 15834.05 270 bottom
+C12-12-9    "1206"          "unknown" 7438.19 17334.05 270 bottom
+C12-12-10   "1206"          "unknown" 7438.19 18834.05 270 bottom
+C12-12-11   "1206"          "unknown" 7438.19 20334.05 270 bottom
+C12-12-12   "1206"          "unknown" 7438.19 21834.05 270 bottom
+C12-12-13   "1206"          "unknown" 7438.19 23334.05 270 bottom
+C12-12-14   "1206"          "unknown" 7438.19 24834.05 270 bottom
+C12-13-0    "1206"          "unknown" 7938.19 3834.05  270 bottom
+C12-13-1    "1206"          "unknown" 7938.19 5334.05  270 bottom
+C12-13-2    "1206"          "unknown" 7938.19 6834.05  270 bottom
+C12-13-3    "1206"          "unknown" 7938.19 8334.05  270 bottom
+C12-13-4    "1206"          "unknown" 7938.19 9834.05  270 bottom
+C12-13-5    "1206"          "unknown" 7938.19 11334.05 270 bottom
+C12-13-6    "1206"          "unknown" 7938.19 12834.05 270 bottom
+C12-13-7    "1206"          "unknown" 7938.19 14334.05 270 bottom
+C12-13-8    "1206"          "unknown" 7938.19 15834.05 270 bottom
+C12-13-9    "1206"          "unknown" 7938.19 17334.05 270 bottom
+C12-13-10   "1206"          "unknown" 7938.19 18834.05 270 bottom
+C12-13-11   "1206"          "unknown" 7938.19 20334.05 270 bottom
+C12-13-12   "1206"          "unknown" 7938.19 21834.05 270 bottom
+C12-13-13   "1206"          "unknown" 7938.19 23334.05 270 bottom
+C12-13-14   "1206"          "unknown" 7938.19 24834.05 270 bottom
+C12-14-0    "1206"          "unknown" 8438.19 3834.05  270 bottom
+C12-14-1    "1206"          "unknown" 8438.19 5334.05  270 bottom
+C12-14-2    "1206"          "unknown" 8438.19 6834.05  270 bottom
+C12-14-3    "1206"          "unknown" 8438.19 8334.05  270 bottom
+C12-14-4    "1206"          "unknown" 8438.19 9834.05  270 bottom
+C12-14-5    "1206"          "unknown" 8438.19 11334.05 270 bottom
+C12-14-6    "1206"          "unknown" 8438.19 12834.05 270 bottom
+C12-14-7    "1206"          "unknown" 8438.19 14334.05 270 bottom
+C12-14-8    "1206"          "unknown" 8438.19 15834.05 270 bottom
+C12-14-9    "1206"          "unknown" 8438.19 17334.05 270 bottom
+C12-14-10   "1206"          "unknown" 8438.19 18834.05 270 bottom
+C12-14-11   "1206"          "unknown" 8438.19 20334.05 270 bottom
+C12-14-12   "1206"          "unknown" 8438.19 21834.05 270 bottom
+C12-14-13   "1206"          "unknown" 8438.19 23334.05 270 bottom
+C12-14-14   "1206"          "unknown" 8438.19 24834.05 270 bottom
+U2-0-0      "TO220"         "unknown" 1342.50 4175.00  90  top   
+U2-0-1      "TO220"         "unknown" 1342.5  5675     90  top   
+U2-0-2      "TO220"         "unknown" 1342.5  7175     90  top   
+U2-0-3      "TO220"         "unknown" 1342.5  8675     90  top   
+U2-0-4      "TO220"         "unknown" 1342.5  10175    90  top   
+U2-0-5      "TO220"         "unknown" 1342.5  11675    90  top   
+U2-0-6      "TO220"         "unknown" 1342.5  13175    90  top   
+U2-0-7      "TO220"         "unknown" 1342.5  14675    90  top   
+U2-0-8      "TO220"         "unknown" 1342.5  16175    90  top   
+U2-0-9      "TO220"         "unknown" 1342.5  17675    90  top   
+U2-0-10     "TO220"         "unknown" 1342.5  19175    90  top   
+U2-0-11     "TO220"         "unknown" 1342.5  20675    90  top   
+U2-0-12     "TO220"         "unknown" 1342.5  22175    90  top   
+U2-0-13     "TO220"         "unknown" 1342.5  23675    90  top   
+U2-0-14     "TO220"         "unknown" 1342.5  25175    90  top   
+U2-1-0      "TO220"         "unknown" 1842.5  4175     90  top   
+U2-1-1      "TO220"         "unknown" 1842.5  5675     90  top   
+U2-1-2      "TO220"         "unknown" 1842.5  7175     90  top   
+U2-1-3      "TO220"         "unknown" 1842.5  8675     90  top   
+U2-1-4      "TO220"         "unknown" 1842.5  10175    90  top   
+U2-1-5      "TO220"         "unknown" 1842.5  11675    90  top   
+U2-1-6      "TO220"         "unknown" 1842.5  13175    90  top   
+U2-1-7      "TO220"         "unknown" 1842.5  14675    90  top   
+U2-1-8      "TO220"         "unknown" 1842.5  16175    90  top   
+U2-1-9      "TO220"         "unknown" 1842.5  17675    90  top   
+U2-1-10     "TO220"         "unknown" 1842.5  19175    90  top   
+U2-1-11     "TO220"         "unknown" 1842.5  20675    90  top   
+U2-1-12     "TO220"         "unknown" 1842.5  22175    90  top   
+U2-1-13     "TO220"         "unknown" 1842.5  23675    90  top   
+U2-1-14     "TO220"         "unknown" 1842.5  25175    90  top   
+U2-2-0      "TO220"         "unknown" 2342.5  4175     90  top   
+U2-2-1      "TO220"         "unknown" 2342.5  5675     90  top   
+U2-2-2      "TO220"         "unknown" 2342.5  7175     90  top   
+U2-2-3      "TO220"         "unknown" 2342.5  8675     90  top   
+U2-2-4      "TO220"         "unknown" 2342.5  10175    90  top   
+U2-2-5      "TO220"         "unknown" 2342.5  11675    90  top   
+U2-2-6      "TO220"         "unknown" 2342.5  13175    90  top   
+U2-2-7      "TO220"         "unknown" 2342.5  14675    90  top   
+U2-2-8      "TO220"         "unknown" 2342.5  16175    90  top   
+U2-2-9      "TO220"         "unknown" 2342.5  17675    90  top   
+U2-2-10     "TO220"         "unknown" 2342.5  19175    90  top   
+U2-2-11     "TO220"         "unknown" 2342.5  20675    90  top   
+U2-2-12     "TO220"         "unknown" 2342.5  22175    90  top   
+U2-2-13     "TO220"         "unknown" 2342.5  23675    90  top   
+U2-2-14     "TO220"         "unknown" 2342.5  25175    90  top   
+U2-3-0      "TO220"         "unknown" 2842.5  4175     90  top   
+U2-3-1      "TO220"         "unknown" 2842.5  5675     90  top   
+U2-3-2      "TO220"         "unknown" 2842.5  7175     90  top   
+U2-3-3      "TO220"         "unknown" 2842.5  8675     90  top   
+U2-3-4      "TO220"         "unknown" 2842.5  10175    90  top   
+U2-3-5      "TO220"         "unknown" 2842.5  11675    90  top   
+U2-3-6      "TO220"         "unknown" 2842.5  13175    90  top   
+U2-3-7      "TO220"         "unknown" 2842.5  14675    90  top   
+U2-3-8      "TO220"         "unknown" 2842.5  16175    90  top   
+U2-3-9      "TO220"         "unknown" 2842.5  17675    90  top   
+U2-3-10     "TO220"         "unknown" 2842.5  19175    90  top   
+U2-3-11     "TO220"         "unknown" 2842.5  20675    90  top   
+U2-3-12     "TO220"         "unknown" 2842.5  22175    90  top   
+U2-3-13     "TO220"         "unknown" 2842.5  23675    90  top   
+U2-3-14     "TO220"         "unknown" 2842.5  25175    90  top   
+U2-4-0      "TO220"         "unknown" 3342.5  4175     90  top   
+U2-4-1      "TO220"         "unknown" 3342.5  5675     90  top   
+U2-4-2      "TO220"         "unknown" 3342.5  7175     90  top   
+U2-4-3      "TO220"         "unknown" 3342.5  8675     90  top   
+U2-4-4      "TO220"         "unknown" 3342.5  10175    90  top   
+U2-4-5      "TO220"         "unknown" 3342.5  11675    90  top   
+U2-4-6      "TO220"         "unknown" 3342.5  13175    90  top   
+U2-4-7      "TO220"         "unknown" 3342.5  14675    90  top   
+U2-4-8      "TO220"         "unknown" 3342.5  16175    90  top   
+U2-4-9      "TO220"         "unknown" 3342.5  17675    90  top   
+U2-4-10     "TO220"         "unknown" 3342.5  19175    90  top   
+U2-4-11     "TO220"         "unknown" 3342.5  20675    90  top   
+U2-4-12     "TO220"         "unknown" 3342.5  22175    90  top   
+U2-4-13     "TO220"         "unknown" 3342.5  23675    90  top   
+U2-4-14     "TO220"         "unknown" 3342.5  25175    90  top   
+U2-5-0      "TO220"         "unknown" 3842.5  4175     90  top   
+U2-5-1      "TO220"         "unknown" 3842.5  5675     90  top   
+U2-5-2      "TO220"         "unknown" 3842.5  7175     90  top   
+U2-5-3      "TO220"         "unknown" 3842.5  8675     90  top   
+U2-5-4      "TO220"         "unknown" 3842.5  10175    90  top   
+U2-5-5      "TO220"         "unknown" 3842.5  11675    90  top   
+U2-5-6      "TO220"         "unknown" 3842.5  13175    90  top   
+U2-5-7      "TO220"         "unknown" 3842.5  14675    90  top   
+U2-5-8      "TO220"         "unknown" 3842.5  16175    90  top   
+U2-5-9      "TO220"         "unknown" 3842.5  17675    90  top   
+U2-5-10     "TO220"         "unknown" 3842.5  19175    90  top   
+U2-5-11     "TO220"         "unknown" 3842.5  20675    90  top   
+U2-5-12     "TO220"         "unknown" 3842.5  22175    90  top   
+U2-5-13     "TO220"         "unknown" 3842.5  23675    90  top   
+U2-5-14     "TO220"         "unknown" 3842.5  25175    90  top   
+U2-6-0      "TO220"         "unknown" 4342.5  4175     90  top   
+U2-6-1      "TO220"         "unknown" 4342.5  5675     90  top   
+U2-6-2      "TO220"         "unknown" 4342.5  7175     90  top   
+U2-6-3      "TO220"         "unknown" 4342.5  8675     90  top   
+U2-6-4      "TO220"         "unknown" 4342.5  10175    90  top   
+U2-6-5      "TO220"         "unknown" 4342.5  11675    90  top   
+U2-6-6      "TO220"         "unknown" 4342.5  13175    90  top   
+U2-6-7      "TO220"         "unknown" 4342.5  14675    90  top   
+U2-6-8      "TO220"         "unknown" 4342.5  16175    90  top   
+U2-6-9      "TO220"         "unknown" 4342.5  17675    90  top   
+U2-6-10     "TO220"         "unknown" 4342.5  19175    90  top   
+U2-6-11     "TO220"         "unknown" 4342.5  20675    90  top   
+U2-6-12     "TO220"         "unknown" 4342.5  22175    90  top   
+U2-6-13     "TO220"         "unknown" 4342.5  23675    90  top   
+U2-6-14     "TO220"         "unknown" 4342.5  25175    90  top   
+U2-7-0      "TO220"         "unknown" 4842.5  4175     90  top   
+U2-7-1      "TO220"         "unknown" 4842.5  5675     90  top   
+U2-7-2      "TO220"         "unknown" 4842.5  7175     90  top   
+U2-7-3      "TO220"         "unknown" 4842.5  8675     90  top   
+U2-7-4      "TO220"         "unknown" 4842.5  10175    90  top   
+U2-7-5      "TO220"         "unknown" 4842.5  11675    90  top   
+U2-7-6      "TO220"         "unknown" 4842.5  13175    90  top   
+U2-7-7      "TO220"         "unknown" 4842.5  14675    90  top   
+U2-7-8      "TO220"         "unknown" 4842.5  16175    90  top   
+U2-7-9      "TO220"         "unknown" 4842.5  17675    90  top   
+U2-7-10     "TO220"         "unknown" 4842.5  19175    90  top   
+U2-7-11     "TO220"         "unknown" 4842.5  20675    90  top   
+U2-7-12     "TO220"         "unknown" 4842.5  22175    90  top   
+U2-7-13     "TO220"         "unknown" 4842.5  23675    90  top   
+U2-7-14     "TO220"         "unknown" 4842.5  25175    90  top   
+U2-8-0      "TO220"         "unknown" 5342.5  4175     90  top   
+U2-8-1      "TO220"         "unknown" 5342.5  5675     90  top   
+U2-8-2      "TO220"         "unknown" 5342.5  7175     90  top   
+U2-8-3      "TO220"         "unknown" 5342.5  8675     90  top   
+U2-8-4      "TO220"         "unknown" 5342.5  10175    90  top   
+U2-8-5      "TO220"         "unknown" 5342.5  11675    90  top   
+U2-8-6      "TO220"         "unknown" 5342.5  13175    90  top   
+U2-8-7      "TO220"         "unknown" 5342.5  14675    90  top   
+U2-8-8      "TO220"         "unknown" 5342.5  16175    90  top   
+U2-8-9      "TO220"         "unknown" 5342.5  17675    90  top   
+U2-8-10     "TO220"         "unknown" 5342.5  19175    90  top   
+U2-8-11     "TO220"         "unknown" 5342.5  20675    90  top   
+U2-8-12     "TO220"         "unknown" 5342.5  22175    90  top   
+U2-8-13     "TO220"         "unknown" 5342.5  23675    90  top   
+U2-8-14     "TO220"         "unknown" 5342.5  25175    90  top   
+U2-9-0      "TO220"         "unknown" 5842.5  4175     90  top   
+U2-9-1      "TO220"         "unknown" 5842.5  5675     90  top   
+U2-9-2      "TO220"         "unknown" 5842.5  7175     90  top   
+U2-9-3      "TO220"         "unknown" 5842.5  8675     90  top   
+U2-9-4      "TO220"         "unknown" 5842.5  10175    90  top   
+U2-9-5      "TO220"         "unknown" 5842.5  11675    90  top   
+U2-9-6      "TO220"         "unknown" 5842.5  13175    90  top   
+U2-9-7      "TO220"         "unknown" 5842.5  14675    90  top   
+U2-9-8      "TO220"         "unknown" 5842.5  16175    90  top   
+U2-9-9      "TO220"         "unknown" 5842.5  17675    90  top   
+U2-9-10     "TO220"         "unknown" 5842.5  19175    90  top   
+U2-9-11     "TO220"         "unknown" 5842.5  20675    90  top   
+U2-9-12     "TO220"         "unknown" 5842.5  22175    90  top   
+U2-9-13     "TO220"         "unknown" 5842.5  23675    90  top   
+U2-9-14     "TO220"         "unknown" 5842.5  25175    90  top   
+U2-10-0     "TO220"         "unknown" 6342.5  4175     90  top   
+U2-10-1     "TO220"         "unknown" 6342.5  5675     90  top   
+U2-10-2     "TO220"         "unknown" 6342.5  7175     90  top   
+U2-10-3     "TO220"         "unknown" 6342.5  8675     90  top   
+U2-10-4     "TO220"         "unknown" 6342.5  10175    90  top   
+U2-10-5     "TO220"         "unknown" 6342.5  11675    90  top   
+U2-10-6     "TO220"         "unknown" 6342.5  13175    90  top   
+U2-10-7     "TO220"         "unknown" 6342.5  14675    90  top   
+U2-10-8     "TO220"         "unknown" 6342.5  16175    90  top   
+U2-10-9     "TO220"         "unknown" 6342.5  17675    90  top   
+U2-10-10    "TO220"         "unknown" 6342.5  19175    90  top   
+U2-10-11    "TO220"         "unknown" 6342.5  20675    90  top   
+U2-10-12    "TO220"         "unknown" 6342.5  22175    90  top   
+U2-10-13    "TO220"         "unknown" 6342.5  23675    90  top   
+U2-10-14    "TO220"         "unknown" 6342.5  25175    90  top   
+U2-11-0     "TO220"         "unknown" 6842.5  4175     90  top   
+U2-11-1     "TO220"         "unknown" 6842.5  5675     90  top   
+U2-11-2     "TO220"         "unknown" 6842.5  7175     90  top   
+U2-11-3     "TO220"         "unknown" 6842.5  8675     90  top   
+U2-11-4     "TO220"         "unknown" 6842.5  10175    90  top   
+U2-11-5     "TO220"         "unknown" 6842.5  11675    90  top   
+U2-11-6     "TO220"         "unknown" 6842.5  13175    90  top   
+U2-11-7     "TO220"         "unknown" 6842.5  14675    90  top   
+U2-11-8     "TO220"         "unknown" 6842.5  16175    90  top   
+U2-11-9     "TO220"         "unknown" 6842.5  17675    90  top   
+U2-11-10    "TO220"         "unknown" 6842.5  19175    90  top   
+U2-11-11    "TO220"         "unknown" 6842.5  20675    90  top   
+U2-11-12    "TO220"         "unknown" 6842.5  22175    90  top   
+U2-11-13    "TO220"         "unknown" 6842.5  23675    90  top   
+U2-11-14    "TO220"         "unknown" 6842.5  25175    90  top   
+U2-12-0     "TO220"         "unknown" 7342.5  4175     90  top   
+U2-12-1     "TO220"         "unknown" 7342.5  5675     90  top   
+U2-12-2     "TO220"         "unknown" 7342.5  7175     90  top   
+U2-12-3     "TO220"         "unknown" 7342.5  8675     90  top   
+U2-12-4     "TO220"         "unknown" 7342.5  10175    90  top   
+U2-12-5     "TO220"         "unknown" 7342.5  11675    90  top   
+U2-12-6     "TO220"         "unknown" 7342.5  13175    90  top   
+U2-12-7     "TO220"         "unknown" 7342.5  14675    90  top   
+U2-12-8     "TO220"         "unknown" 7342.5  16175    90  top   
+U2-12-9     "TO220"         "unknown" 7342.5  17675    90  top   
+U2-12-10    "TO220"         "unknown" 7342.5  19175    90  top   
+U2-12-11    "TO220"         "unknown" 7342.5  20675    90  top   
+U2-12-12    "TO220"         "unknown" 7342.5  22175    90  top   
+U2-12-13    "TO220"         "unknown" 7342.5  23675    90  top   
+U2-12-14    "TO220"         "unknown" 7342.5  25175    90  top   
+U2-13-0     "TO220"         "unknown" 7842.5  4175     90  top   
+U2-13-1     "TO220"         "unknown" 7842.5  5675     90  top   
+U2-13-2     "TO220"         "unknown" 7842.5  7175     90  top   
+U2-13-3     "TO220"         "unknown" 7842.5  8675     90  top   
+U2-13-4     "TO220"         "unknown" 7842.5  10175    90  top   
+U2-13-5     "TO220"         "unknown" 7842.5  11675    90  top   
+U2-13-6     "TO220"         "unknown" 7842.5  13175    90  top   
+U2-13-7     "TO220"         "unknown" 7842.5  14675    90  top   
+U2-13-8     "TO220"         "unknown" 7842.5  16175    90  top   
+U2-13-9     "TO220"         "unknown" 7842.5  17675    90  top   
+U2-13-10    "TO220"         "unknown" 7842.5  19175    90  top   
+U2-13-11    "TO220"         "unknown" 7842.5  20675    90  top   
+U2-13-12    "TO220"         "unknown" 7842.5  22175    90  top   
+U2-13-13    "TO220"         "unknown" 7842.5  23675    90  top   
+U2-13-14    "TO220"         "unknown" 7842.5  25175    90  top   
+U2-14-0     "TO220"         "unknown" 8342.5  4175     90  top   
+U2-14-1     "TO220"         "unknown" 8342.5  5675     90  top   
+U2-14-2     "TO220"         "unknown" 8342.5  7175     90  top   
+U2-14-3     "TO220"         "unknown" 8342.5  8675     90  top   
+U2-14-4     "TO220"         "unknown" 8342.5  10175    90  top   
+U2-14-5     "TO220"         "unknown" 8342.5  11675    90  top   
+U2-14-6     "TO220"         "unknown" 8342.5  13175    90  top   
+U2-14-7     "TO220"         "unknown" 8342.5  14675    90  top   
+U2-14-8     "TO220"         "unknown" 8342.5  16175    90  top   
+U2-14-9     "TO220"         "unknown" 8342.5  17675    90  top   
+U2-14-10    "TO220"         "unknown" 8342.5  19175    90  top   
+U2-14-11    "TO220"         "unknown" 8342.5  20675    90  top   
+U2-14-12    "TO220"         "unknown" 8342.5  22175    90  top   
+U2-14-13    "TO220"         "unknown" 8342.5  23675    90  top   
+U2-14-14    "TO220"         "unknown" 8342.5  25175    90  top   
+D7-0-0      "1206"          "unknown" 1775.00 3350.00  270 bottom
+D7-0-1      "1206"          "unknown" 1775    4850     270 bottom
+D7-0-2      "1206"          "unknown" 1775    6350     270 bottom
+D7-0-3      "1206"          "unknown" 1775    7850     270 bottom
+D7-0-4      "1206"          "unknown" 1775    9350     270 bottom
+D7-0-5      "1206"          "unknown" 1775    10850    270 bottom
+D7-0-6      "1206"          "unknown" 1775    12350    270 bottom
+D7-0-7      "1206"          "unknown" 1775    13850    270 bottom
+D7-0-8      "1206"          "unknown" 1775    15350    270 bottom
+D7-0-9      "1206"          "unknown" 1775    16850    270 bottom
+D7-0-10     "1206"          "unknown" 1775    18350    270 bottom
+D7-0-11     "1206"          "unknown" 1775    19850    270 bottom
+D7-0-12     "1206"          "unknown" 1775    21350    270 bottom
+D7-0-13     "1206"          "unknown" 1775    22850    270 bottom
+D7-0-14     "1206"          "unknown" 1775    24350    270 bottom
+D7-1-0      "1206"          "unknown" 2275    3350     270 bottom
+D7-1-1      "1206"          "unknown" 2275    4850     270 bottom
+D7-1-2      "1206"          "unknown" 2275    6350     270 bottom
+D7-1-3      "1206"          "unknown" 2275    7850     270 bottom
+D7-1-4      "1206"          "unknown" 2275    9350     270 bottom
+D7-1-5      "1206"          "unknown" 2275    10850    270 bottom
+D7-1-6      "1206"          "unknown" 2275    12350    270 bottom
+D7-1-7      "1206"          "unknown" 2275    13850    270 bottom
+D7-1-8      "1206"          "unknown" 2275    15350    270 bottom
+D7-1-9      "1206"          "unknown" 2275    16850    270 bottom
+D7-1-10     "1206"          "unknown" 2275    18350    270 bottom
+D7-1-11     "1206"          "unknown" 2275    19850    270 bottom
+D7-1-12     "1206"          "unknown" 2275    21350    270 bottom
+D7-1-13     "1206"          "unknown" 2275    22850    270 bottom
+D7-1-14     "1206"          "unknown" 2275    24350    270 bottom
+D7-2-0      "1206"          "unknown" 2775    3350     270 bottom
+D7-2-1      "1206"          "unknown" 2775    4850     270 bottom
+D7-2-2      "1206"          "unknown" 2775    6350     270 bottom
+D7-2-3      "1206"          "unknown" 2775    7850     270 bottom
+D7-2-4      "1206"          "unknown" 2775    9350     270 bottom
+D7-2-5      "1206"          "unknown" 2775    10850    270 bottom
+D7-2-6      "1206"          "unknown" 2775    12350    270 bottom
+D7-2-7      "1206"          "unknown" 2775    13850    270 bottom
+D7-2-8      "1206"          "unknown" 2775    15350    270 bottom
+D7-2-9      "1206"          "unknown" 2775    16850    270 bottom
+D7-2-10     "1206"          "unknown" 2775    18350    270 bottom
+D7-2-11     "1206"          "unknown" 2775    19850    270 bottom
+D7-2-12     "1206"          "unknown" 2775    21350    270 bottom
+D7-2-13     "1206"          "unknown" 2775    22850    270 bottom
+D7-2-14     "1206"          "unknown" 2775    24350    270 bottom
+D7-3-0      "1206"          "unknown" 3275    3350     270 bottom
+D7-3-1      "1206"          "unknown" 3275    4850     270 bottom
+D7-3-2      "1206"          "unknown" 3275    6350     270 bottom
+D7-3-3      "1206"          "unknown" 3275    7850     270 bottom
+D7-3-4      "1206"          "unknown" 3275    9350     270 bottom
+D7-3-5      "1206"          "unknown" 3275    10850    270 bottom
+D7-3-6      "1206"          "unknown" 3275    12350    270 bottom
+D7-3-7      "1206"          "unknown" 3275    13850    270 bottom
+D7-3-8      "1206"          "unknown" 3275    15350    270 bottom
+D7-3-9      "1206"          "unknown" 3275    16850    270 bottom
+D7-3-10     "1206"          "unknown" 3275    18350    270 bottom
+D7-3-11     "1206"          "unknown" 3275    19850    270 bottom
+D7-3-12     "1206"          "unknown" 3275    21350    270 bottom
+D7-3-13     "1206"          "unknown" 3275    22850    270 bottom
+D7-3-14     "1206"          "unknown" 3275    24350    270 bottom
+D7-4-0      "1206"          "unknown" 3775    3350     270 bottom
+D7-4-1      "1206"          "unknown" 3775    4850     270 bottom
+D7-4-2      "1206"          "unknown" 3775    6350     270 bottom
+D7-4-3      "1206"          "unknown" 3775    7850     270 bottom
+D7-4-4      "1206"          "unknown" 3775    9350     270 bottom
+D7-4-5      "1206"          "unknown" 3775    10850    270 bottom
+D7-4-6      "1206"          "unknown" 3775    12350    270 bottom
+D7-4-7      "1206"          "unknown" 3775    13850    270 bottom
+D7-4-8      "1206"          "unknown" 3775    15350    270 bottom
+D7-4-9      "1206"          "unknown" 3775    16850    270 bottom
+D7-4-10     "1206"          "unknown" 3775    18350    270 bottom
+D7-4-11     "1206"          "unknown" 3775    19850    270 bottom
+D7-4-12     "1206"          "unknown" 3775    21350    270 bottom
+D7-4-13     "1206"          "unknown" 3775    22850    270 bottom
+D7-4-14     "1206"          "unknown" 3775    24350    270 bottom
+D7-5-0      "1206"          "unknown" 4275    3350     270 bottom
+D7-5-1      "1206"          "unknown" 4275    4850     270 bottom
+D7-5-2      "1206"          "unknown" 4275    6350     270 bottom
+D7-5-3      "1206"          "unknown" 4275    7850     270 bottom
+D7-5-4      "1206"          "unknown" 4275    9350     270 bottom
+D7-5-5      "1206"          "unknown" 4275    10850    270 bottom
+D7-5-6      "1206"          "unknown" 4275    12350    270 bottom
+D7-5-7      "1206"          "unknown" 4275    13850    270 bottom
+D7-5-8      "1206"          "unknown" 4275    15350    270 bottom
+D7-5-9      "1206"          "unknown" 4275    16850    270 bottom
+D7-5-10     "1206"          "unknown" 4275    18350    270 bottom
+D7-5-11     "1206"          "unknown" 4275    19850    270 bottom
+D7-5-12     "1206"          "unknown" 4275    21350    270 bottom
+D7-5-13     "1206"          "unknown" 4275    22850    270 bottom
+D7-5-14     "1206"          "unknown" 4275    24350    270 bottom
+D7-6-0      "1206"          "unknown" 4775    3350     270 bottom
+D7-6-1      "1206"          "unknown" 4775    4850     270 bottom
+D7-6-2      "1206"          "unknown" 4775    6350     270 bottom
+D7-6-3      "1206"          "unknown" 4775    7850     270 bottom
+D7-6-4      "1206"          "unknown" 4775    9350     270 bottom
+D7-6-5      "1206"          "unknown" 4775    10850    270 bottom
+D7-6-6      "1206"          "unknown" 4775    12350    270 bottom
+D7-6-7      "1206"          "unknown" 4775    13850    270 bottom
+D7-6-8      "1206"          "unknown" 4775    15350    270 bottom
+D7-6-9      "1206"          "unknown" 4775    16850    270 bottom
+D7-6-10     "1206"          "unknown" 4775    18350    270 bottom
+D7-6-11     "1206"          "unknown" 4775    19850    270 bottom
+D7-6-12     "1206"          "unknown" 4775    21350    270 bottom
+D7-6-13     "1206"          "unknown" 4775    22850    270 bottom
+D7-6-14     "1206"          "unknown" 4775    24350    270 bottom
+D7-7-0      "1206"          "unknown" 5275    3350     270 bottom
+D7-7-1      "1206"          "unknown" 5275    4850     270 bottom
+D7-7-2      "1206"          "unknown" 5275    6350     270 bottom
+D7-7-3      "1206"          "unknown" 5275    7850     270 bottom
+D7-7-4      "1206"          "unknown" 5275    9350     270 bottom
+D7-7-5      "1206"          "unknown" 5275    10850    270 bottom
+D7-7-6      "1206"          "unknown" 5275    12350    270 bottom
+D7-7-7      "1206"          "unknown" 5275    13850    270 bottom
+D7-7-8      "1206"          "unknown" 5275    15350    270 bottom
+D7-7-9      "1206"          "unknown" 5275    16850    270 bottom
+D7-7-10     "1206"          "unknown" 5275    18350    270 bottom
+D7-7-11     "1206"          "unknown" 5275    19850    270 bottom
+D7-7-12     "1206"          "unknown" 5275    21350    270 bottom
+D7-7-13     "1206"          "unknown" 5275    22850    270 bottom
+D7-7-14     "1206"          "unknown" 5275    24350    270 bottom
+D7-8-0      "1206"          "unknown" 5775    3350     270 bottom
+D7-8-1      "1206"          "unknown" 5775    4850     270 bottom
+D7-8-2      "1206"          "unknown" 5775    6350     270 bottom
+D7-8-3      "1206"          "unknown" 5775    7850     270 bottom
+D7-8-4      "1206"          "unknown" 5775    9350     270 bottom
+D7-8-5      "1206"          "unknown" 5775    10850    270 bottom
+D7-8-6      "1206"          "unknown" 5775    12350    270 bottom
+D7-8-7      "1206"          "unknown" 5775    13850    270 bottom
+D7-8-8      "1206"          "unknown" 5775    15350    270 bottom
+D7-8-9      "1206"          "unknown" 5775    16850    270 bottom
+D7-8-10     "1206"          "unknown" 5775    18350    270 bottom
+D7-8-11     "1206"          "unknown" 5775    19850    270 bottom
+D7-8-12     "1206"          "unknown" 5775    21350    270 bottom
+D7-8-13     "1206"          "unknown" 5775    22850    270 bottom
+D7-8-14     "1206"          "unknown" 5775    24350    270 bottom
+D7-9-0      "1206"          "unknown" 6275    3350     270 bottom
+D7-9-1      "1206"          "unknown" 6275    4850     270 bottom
+D7-9-2      "1206"          "unknown" 6275    6350     270 bottom
+D7-9-3      "1206"          "unknown" 6275    7850     270 bottom
+D7-9-4      "1206"          "unknown" 6275    9350     270 bottom
+D7-9-5      "1206"          "unknown" 6275    10850    270 bottom
+D7-9-6      "1206"          "unknown" 6275    12350    270 bottom
+D7-9-7      "1206"          "unknown" 6275    13850    270 bottom
+D7-9-8      "1206"          "unknown" 6275    15350    270 bottom
+D7-9-9      "1206"          "unknown" 6275    16850    270 bottom
+D7-9-10     "1206"          "unknown" 6275    18350    270 bottom
+D7-9-11     "1206"          "unknown" 6275    19850    270 bottom
+D7-9-12     "1206"          "unknown" 6275    21350    270 bottom
+D7-9-13     "1206"          "unknown" 6275    22850    270 bottom
+D7-9-14     "1206"          "unknown" 6275    24350    270 bottom
+D7-10-0     "1206"          "unknown" 6775    3350     270 bottom
+D7-10-1     "1206"          "unknown" 6775    4850     270 bottom
+D7-10-2     "1206"          "unknown" 6775    6350     270 bottom
+D7-10-3     "1206"          "unknown" 6775    7850     270 bottom
+D7-10-4     "1206"          "unknown" 6775    9350     270 bottom
+D7-10-5     "1206"          "unknown" 6775    10850    270 bottom
+D7-10-6     "1206"          "unknown" 6775    12350    270 bottom
+D7-10-7     "1206"          "unknown" 6775    13850    270 bottom
+D7-10-8     "1206"          "unknown" 6775    15350    270 bottom
+D7-10-9     "1206"          "unknown" 6775    16850    270 bottom
+D7-10-10    "1206"          "unknown" 6775    18350    270 bottom
+D7-10-11    "1206"          "unknown" 6775    19850    270 bottom
+D7-10-12    "1206"          "unknown" 6775    21350    270 bottom
+D7-10-13    "1206"          "unknown" 6775    22850    270 bottom
+D7-10-14    "1206"          "unknown" 6775    24350    270 bottom
+D7-11-0     "1206"          "unknown" 7275    3350     270 bottom
+D7-11-1     "1206"          "unknown" 7275    4850     270 bottom
+D7-11-2     "1206"          "unknown" 7275    6350     270 bottom
+D7-11-3     "1206"          "unknown" 7275    7850     270 bottom
+D7-11-4     "1206"          "unknown" 7275    9350     270 bottom
+D7-11-5     "1206"          "unknown" 7275    10850    270 bottom
+D7-11-6     "1206"          "unknown" 7275    12350    270 bottom
+D7-11-7     "1206"          "unknown" 7275    13850    270 bottom
+D7-11-8     "1206"          "unknown" 7275    15350    270 bottom
+D7-11-9     "1206"          "unknown" 7275    16850    270 bottom
+D7-11-10    "1206"          "unknown" 7275    18350    270 bottom
+D7-11-11    "1206"          "unknown" 7275    19850    270 bottom
+D7-11-12    "1206"          "unknown" 7275    21350    270 bottom
+D7-11-13    "1206"          "unknown" 7275    22850    270 bottom
+D7-11-14    "1206"          "unknown" 7275    24350    270 bottom
+D7-12-0     "1206"          "unknown" 7775    3350     270 bottom
+D7-12-1     "1206"          "unknown" 7775    4850     270 bottom
+D7-12-2     "1206"          "unknown" 7775    6350     270 bottom
+D7-12-3     "1206"          "unknown" 7775    7850     270 bottom
+D7-12-4     "1206"          "unknown" 7775    9350     270 bottom
+D7-12-5     "1206"          "unknown" 7775    10850    270 bottom
+D7-12-6     "1206"          "unknown" 7775    12350    270 bottom
+D7-12-7     "1206"          "unknown" 7775    13850    270 bottom
+D7-12-8     "1206"          "unknown" 7775    15350    270 bottom
+D7-12-9     "1206"          "unknown" 7775    16850    270 bottom
+D7-12-10    "1206"          "unknown" 7775    18350    270 bottom
+D7-12-11    "1206"          "unknown" 7775    19850    270 bottom
+D7-12-12    "1206"          "unknown" 7775    21350    270 bottom
+D7-12-13    "1206"          "unknown" 7775    22850    270 bottom
+D7-12-14    "1206"          "unknown" 7775    24350    270 bottom
+D7-13-0     "1206"          "unknown" 8275    3350     270 bottom
+D7-13-1     "1206"          "unknown" 8275    4850     270 bottom
+D7-13-2     "1206"          "unknown" 8275    6350     270 bottom
+D7-13-3     "1206"          "unknown" 8275    7850     270 bottom
+D7-13-4     "1206"          "unknown" 8275    9350     270 bottom
+D7-13-5     "1206"          "unknown" 8275    10850    270 bottom
+D7-13-6     "1206"          "unknown" 8275    12350    270 bottom
+D7-13-7     "1206"          "unknown" 8275    13850    270 bottom
+D7-13-8     "1206"          "unknown" 8275    15350    270 bottom
+D7-13-9     "1206"          "unknown" 8275    16850    270 bottom
+D7-13-10    "1206"          "unknown" 8275    18350    270 bottom
+D7-13-11    "1206"          "unknown" 8275    19850    270 bottom
+D7-13-12    "1206"          "unknown" 8275    21350    270 bottom
+D7-13-13    "1206"          "unknown" 8275    22850    270 bottom
+D7-13-14    "1206"          "unknown" 8275    24350    270 bottom
+D7-14-0     "1206"          "unknown" 8775    3350     270 bottom
+D7-14-1     "1206"          "unknown" 8775    4850     270 bottom
+D7-14-2     "1206"          "unknown" 8775    6350     270 bottom
+D7-14-3     "1206"          "unknown" 8775    7850     270 bottom
+D7-14-4     "1206"          "unknown" 8775    9350     270 bottom
+D7-14-5     "1206"          "unknown" 8775    10850    270 bottom
+D7-14-6     "1206"          "unknown" 8775    12350    270 bottom
+D7-14-7     "1206"          "unknown" 8775    13850    270 bottom
+D7-14-8     "1206"          "unknown" 8775    15350    270 bottom
+D7-14-9     "1206"          "unknown" 8775    16850    270 bottom
+D7-14-10    "1206"          "unknown" 8775    18350    270 bottom
+D7-14-11    "1206"          "unknown" 8775    19850    270 bottom
+D7-14-12    "1206"          "unknown" 8775    21350    270 bottom
+D7-14-13    "1206"          "unknown" 8775    22850    270 bottom
+D7-14-14    "1206"          "unknown" 8775    24350    270 bottom
+D5-0-0      "1206"          "unknown" 1125.00 3775.00  180 bottom
+D5-0-1      "1206"          "unknown" 1125    5275     180 bottom
+D5-0-2      "1206"          "unknown" 1125    6775     180 bottom
+D5-0-3      "1206"          "unknown" 1125    8275     180 bottom
+D5-0-4      "1206"          "unknown" 1125    9775     180 bottom
+D5-0-5      "1206"          "unknown" 1125    11275    180 bottom
+D5-0-6      "1206"          "unknown" 1125    12775    180 bottom
+D5-0-7      "1206"          "unknown" 1125    14275    180 bottom
+D5-0-8      "1206"          "unknown" 1125    15775    180 bottom
+D5-0-9      "1206"          "unknown" 1125    17275    180 bottom
+D5-0-10     "1206"          "unknown" 1125    18775    180 bottom
+D5-0-11     "1206"          "unknown" 1125    20275    180 bottom
+D5-0-12     "1206"          "unknown" 1125    21775    180 bottom
+D5-0-13     "1206"          "unknown" 1125    23275    180 bottom
+D5-0-14     "1206"          "unknown" 1125    24775    180 bottom
+D5-1-0      "1206"          "unknown" 1625    3775     180 bottom
+D5-1-1      "1206"          "unknown" 1625    5275     180 bottom
+D5-1-2      "1206"          "unknown" 1625    6775     180 bottom
+D5-1-3      "1206"          "unknown" 1625    8275     180 bottom
+D5-1-4      "1206"          "unknown" 1625    9775     180 bottom
+D5-1-5      "1206"          "unknown" 1625    11275    180 bottom
+D5-1-6      "1206"          "unknown" 1625    12775    180 bottom
+D5-1-7      "1206"          "unknown" 1625    14275    180 bottom
+D5-1-8      "1206"          "unknown" 1625    15775    180 bottom
+D5-1-9      "1206"          "unknown" 1625    17275    180 bottom
+D5-1-10     "1206"          "unknown" 1625    18775    180 bottom
+D5-1-11     "1206"          "unknown" 1625    20275    180 bottom
+D5-1-12     "1206"          "unknown" 1625    21775    180 bottom
+D5-1-13     "1206"          "unknown" 1625    23275    180 bottom
+D5-1-14     "1206"          "unknown" 1625    24775    180 bottom
+D5-2-0      "1206"          "unknown" 2125    3775     180 bottom
+D5-2-1      "1206"          "unknown" 2125    5275     180 bottom
+D5-2-2      "1206"          "unknown" 2125    6775     180 bottom
+D5-2-3      "1206"          "unknown" 2125    8275     180 bottom
+D5-2-4      "1206"          "unknown" 2125    9775     180 bottom
+D5-2-5      "1206"          "unknown" 2125    11275    180 bottom
+D5-2-6      "1206"          "unknown" 2125    12775    180 bottom
+D5-2-7      "1206"          "unknown" 2125    14275    180 bottom
+D5-2-8      "1206"          "unknown" 2125    15775    180 bottom
+D5-2-9      "1206"          "unknown" 2125    17275    180 bottom
+D5-2-10     "1206"          "unknown" 2125    18775    180 bottom
+D5-2-11     "1206"          "unknown" 2125    20275    180 bottom
+D5-2-12     "1206"          "unknown" 2125    21775    180 bottom
+D5-2-13     "1206"          "unknown" 2125    23275    180 bottom
+D5-2-14     "1206"          "unknown" 2125    24775    180 bottom
+D5-3-0      "1206"          "unknown" 2625    3775     180 bottom
+D5-3-1      "1206"          "unknown" 2625    5275     180 bottom
+D5-3-2      "1206"          "unknown" 2625    6775     180 bottom
+D5-3-3      "1206"          "unknown" 2625    8275     180 bottom
+D5-3-4      "1206"          "unknown" 2625    9775     180 bottom
+D5-3-5      "1206"          "unknown" 2625    11275    180 bottom
+D5-3-6      "1206"          "unknown" 2625    12775    180 bottom
+D5-3-7      "1206"          "unknown" 2625    14275    180 bottom
+D5-3-8      "1206"          "unknown" 2625    15775    180 bottom
+D5-3-9      "1206"          "unknown" 2625    17275    180 bottom
+D5-3-10     "1206"          "unknown" 2625    18775    180 bottom
+D5-3-11     "1206"          "unknown" 2625    20275    180 bottom
+D5-3-12     "1206"          "unknown" 2625    21775    180 bottom
+D5-3-13     "1206"          "unknown" 2625    23275    180 bottom
+D5-3-14     "1206"          "unknown" 2625    24775    180 bottom
+D5-4-0      "1206"          "unknown" 3125    3775     180 bottom
+D5-4-1      "1206"          "unknown" 3125    5275     180 bottom
+D5-4-2      "1206"          "unknown" 3125    6775     180 bottom
+D5-4-3      "1206"          "unknown" 3125    8275     180 bottom
+D5-4-4      "1206"          "unknown" 3125    9775     180 bottom
+D5-4-5      "1206"          "unknown" 3125    11275    180 bottom
+D5-4-6      "1206"          "unknown" 3125    12775    180 bottom
+D5-4-7      "1206"          "unknown" 3125    14275    180 bottom
+D5-4-8      "1206"          "unknown" 3125    15775    180 bottom
+D5-4-9      "1206"          "unknown" 3125    17275    180 bottom
+D5-4-10     "1206"          "unknown" 3125    18775    180 bottom
+D5-4-11     "1206"          "unknown" 3125    20275    180 bottom
+D5-4-12     "1206"          "unknown" 3125    21775    180 bottom
+D5-4-13     "1206"          "unknown" 3125    23275    180 bottom
+D5-4-14     "1206"          "unknown" 3125    24775    180 bottom
+D5-5-0      "1206"          "unknown" 3625    3775     180 bottom
+D5-5-1      "1206"          "unknown" 3625    5275     180 bottom
+D5-5-2      "1206"          "unknown" 3625    6775     180 bottom
+D5-5-3      "1206"          "unknown" 3625    8275     180 bottom
+D5-5-4      "1206"          "unknown" 3625    9775     180 bottom
+D5-5-5      "1206"          "unknown" 3625    11275    180 bottom
+D5-5-6      "1206"          "unknown" 3625    12775    180 bottom
+D5-5-7      "1206"          "unknown" 3625    14275    180 bottom
+D5-5-8      "1206"          "unknown" 3625    15775    180 bottom
+D5-5-9      "1206"          "unknown" 3625    17275    180 bottom
+D5-5-10     "1206"          "unknown" 3625    18775    180 bottom
+D5-5-11     "1206"          "unknown" 3625    20275    180 bottom
+D5-5-12     "1206"          "unknown" 3625    21775    180 bottom
+D5-5-13     "1206"          "unknown" 3625    23275    180 bottom
+D5-5-14     "1206"          "unknown" 3625    24775    180 bottom
+D5-6-0      "1206"          "unknown" 4125    3775     180 bottom
+D5-6-1      "1206"          "unknown" 4125    5275     180 bottom
+D5-6-2      "1206"          "unknown" 4125    6775     180 bottom
+D5-6-3      "1206"          "unknown" 4125    8275     180 bottom
+D5-6-4      "1206"          "unknown" 4125    9775     180 bottom
+D5-6-5      "1206"          "unknown" 4125    11275    180 bottom
+D5-6-6      "1206"          "unknown" 4125    12775    180 bottom
+D5-6-7      "1206"          "unknown" 4125    14275    180 bottom
+D5-6-8      "1206"          "unknown" 4125    15775    180 bottom
+D5-6-9      "1206"          "unknown" 4125    17275    180 bottom
+D5-6-10     "1206"          "unknown" 4125    18775    180 bottom
+D5-6-11     "1206"          "unknown" 4125    20275    180 bottom
+D5-6-12     "1206"          "unknown" 4125    21775    180 bottom
+D5-6-13     "1206"          "unknown" 4125    23275    180 bottom
+D5-6-14     "1206"          "unknown" 4125    24775    180 bottom
+D5-7-0      "1206"          "unknown" 4625    3775     180 bottom
+D5-7-1      "1206"          "unknown" 4625    5275     180 bottom
+D5-7-2      "1206"          "unknown" 4625    6775     180 bottom
+D5-7-3      "1206"          "unknown" 4625    8275     180 bottom
+D5-7-4      "1206"          "unknown" 4625    9775     180 bottom
+D5-7-5      "1206"          "unknown" 4625    11275    180 bottom
+D5-7-6      "1206"          "unknown" 4625    12775    180 bottom
+D5-7-7      "1206"          "unknown" 4625    14275    180 bottom
+D5-7-8      "1206"          "unknown" 4625    15775    180 bottom
+D5-7-9      "1206"          "unknown" 4625    17275    180 bottom
+D5-7-10     "1206"          "unknown" 4625    18775    180 bottom
+D5-7-11     "1206"          "unknown" 4625    20275    180 bottom
+D5-7-12     "1206"          "unknown" 4625    21775    180 bottom
+D5-7-13     "1206"          "unknown" 4625    23275    180 bottom
+D5-7-14     "1206"          "unknown" 4625    24775    180 bottom
+D5-8-0      "1206"          "unknown" 5125    3775     180 bottom
+D5-8-1      "1206"          "unknown" 5125    5275     180 bottom
+D5-8-2      "1206"          "unknown" 5125    6775     180 bottom
+D5-8-3      "1206"          "unknown" 5125    8275     180 bottom
+D5-8-4      "1206"          "unknown" 5125    9775     180 bottom
+D5-8-5      "1206"          "unknown" 5125    11275    180 bottom
+D5-8-6      "1206"          "unknown" 5125    12775    180 bottom
+D5-8-7      "1206"          "unknown" 5125    14275    180 bottom
+D5-8-8      "1206"          "unknown" 5125    15775    180 bottom
+D5-8-9      "1206"          "unknown" 5125    17275    180 bottom
+D5-8-10     "1206"          "unknown" 5125    18775    180 bottom
+D5-8-11     "1206"          "unknown" 5125    20275    180 bottom
+D5-8-12     "1206"          "unknown" 5125    21775    180 bottom
+D5-8-13     "1206"          "unknown" 5125    23275    180 bottom
+D5-8-14     "1206"          "unknown" 5125    24775    180 bottom
+D5-9-0      "1206"          "unknown" 5625    3775     180 bottom
+D5-9-1      "1206"          "unknown" 5625    5275     180 bottom
+D5-9-2      "1206"          "unknown" 5625    6775     180 bottom
+D5-9-3      "1206"          "unknown" 5625    8275     180 bottom
+D5-9-4      "1206"          "unknown" 5625    9775     180 bottom
+D5-9-5      "1206"          "unknown" 5625    11275    180 bottom
+D5-9-6      "1206"          "unknown" 5625    12775    180 bottom
+D5-9-7      "1206"          "unknown" 5625    14275    180 bottom
+D5-9-8      "1206"          "unknown" 5625    15775    180 bottom
+D5-9-9      "1206"          "unknown" 5625    17275    180 bottom
+D5-9-10     "1206"          "unknown" 5625    18775    180 bottom
+D5-9-11     "1206"          "unknown" 5625    20275    180 bottom
+D5-9-12     "1206"          "unknown" 5625    21775    180 bottom
+D5-9-13     "1206"          "unknown" 5625    23275    180 bottom
+D5-9-14     "1206"          "unknown" 5625    24775    180 bottom
+D5-10-0     "1206"          "unknown" 6125    3775     180 bottom
+D5-10-1     "1206"          "unknown" 6125    5275     180 bottom
+D5-10-2     "1206"          "unknown" 6125    6775     180 bottom
+D5-10-3     "1206"          "unknown" 6125    8275     180 bottom
+D5-10-4     "1206"          "unknown" 6125    9775     180 bottom
+D5-10-5     "1206"          "unknown" 6125    11275    180 bottom
+D5-10-6     "1206"          "unknown" 6125    12775    180 bottom
+D5-10-7     "1206"          "unknown" 6125    14275    180 bottom
+D5-10-8     "1206"          "unknown" 6125    15775    180 bottom
+D5-10-9     "1206"          "unknown" 6125    17275    180 bottom
+D5-10-10    "1206"          "unknown" 6125    18775    180 bottom
+D5-10-11    "1206"          "unknown" 6125    20275    180 bottom
+D5-10-12    "1206"          "unknown" 6125    21775    180 bottom
+D5-10-13    "1206"          "unknown" 6125    23275    180 bottom
+D5-10-14    "1206"          "unknown" 6125    24775    180 bottom
+D5-11-0     "1206"          "unknown" 6625    3775     180 bottom
+D5-11-1     "1206"          "unknown" 6625    5275     180 bottom
+D5-11-2     "1206"          "unknown" 6625    6775     180 bottom
+D5-11-3     "1206"          "unknown" 6625    8275     180 bottom
+D5-11-4     "1206"          "unknown" 6625    9775     180 bottom
+D5-11-5     "1206"          "unknown" 6625    11275    180 bottom
+D5-11-6     "1206"          "unknown" 6625    12775    180 bottom
+D5-11-7     "1206"          "unknown" 6625    14275    180 bottom
+D5-11-8     "1206"          "unknown" 6625    15775    180 bottom
+D5-11-9     "1206"          "unknown" 6625    17275    180 bottom
+D5-11-10    "1206"          "unknown" 6625    18775    180 bottom
+D5-11-11    "1206"          "unknown" 6625    20275    180 bottom
+D5-11-12    "1206"          "unknown" 6625    21775    180 bottom
+D5-11-13    "1206"          "unknown" 6625    23275    180 bottom
+D5-11-14    "1206"          "unknown" 6625    24775    180 bottom
+D5-12-0     "1206"          "unknown" 7125    3775     180 bottom
+D5-12-1     "1206"          "unknown" 7125    5275     180 bottom
+D5-12-2     "1206"          "unknown" 7125    6775     180 bottom
+D5-12-3     "1206"          "unknown" 7125    8275     180 bottom
+D5-12-4     "1206"          "unknown" 7125    9775     180 bottom
+D5-12-5     "1206"          "unknown" 7125    11275    180 bottom
+D5-12-6     "1206"          "unknown" 7125    12775    180 bottom
+D5-12-7     "1206"          "unknown" 7125    14275    180 bottom
+D5-12-8     "1206"          "unknown" 7125    15775    180 bottom
+D5-12-9     "1206"          "unknown" 7125    17275    180 bottom
+D5-12-10    "1206"          "unknown" 7125    18775    180 bottom
+D5-12-11    "1206"          "unknown" 7125    20275    180 bottom
+D5-12-12    "1206"          "unknown" 7125    21775    180 bottom
+D5-12-13    "1206"          "unknown" 7125    23275    180 bottom
+D5-12-14    "1206"          "unknown" 7125    24775    180 bottom
+D5-13-0     "1206"          "unknown" 7625    3775     180 bottom
+D5-13-1     "1206"          "unknown" 7625    5275     180 bottom
+D5-13-2     "1206"          "unknown" 7625    6775     180 bottom
+D5-13-3     "1206"          "unknown" 7625    8275     180 bottom
+D5-13-4     "1206"          "unknown" 7625    9775     180 bottom
+D5-13-5     "1206"          "unknown" 7625    11275    180 bottom
+D5-13-6     "1206"          "unknown" 7625    12775    180 bottom
+D5-13-7     "1206"          "unknown" 7625    14275    180 bottom
+D5-13-8     "1206"          "unknown" 7625    15775    180 bottom
+D5-13-9     "1206"          "unknown" 7625    17275    180 bottom
+D5-13-10    "1206"          "unknown" 7625    18775    180 bottom
+D5-13-11    "1206"          "unknown" 7625    20275    180 bottom
+D5-13-12    "1206"          "unknown" 7625    21775    180 bottom
+D5-13-13    "1206"          "unknown" 7625    23275    180 bottom
+D5-13-14    "1206"          "unknown" 7625    24775    180 bottom
+D5-14-0     "1206"          "unknown" 8125    3775     180 bottom
+D5-14-1     "1206"          "unknown" 8125    5275     180 bottom
+D5-14-2     "1206"          "unknown" 8125    6775     180 bottom
+D5-14-3     "1206"          "unknown" 8125    8275     180 bottom
+D5-14-4     "1206"          "unknown" 8125    9775     180 bottom
+D5-14-5     "1206"          "unknown" 8125    11275    180 bottom
+D5-14-6     "1206"          "unknown" 8125    12775    180 bottom
+D5-14-7     "1206"          "unknown" 8125    14275    180 bottom
+D5-14-8     "1206"          "unknown" 8125    15775    180 bottom
+D5-14-9     "1206"          "unknown" 8125    17275    180 bottom
+D5-14-10    "1206"          "unknown" 8125    18775    180 bottom
+D5-14-11    "1206"          "unknown" 8125    20275    180 bottom
+D5-14-12    "1206"          "unknown" 8125    21775    180 bottom
+D5-14-13    "1206"          "unknown" 8125    23275    180 bottom
+D5-14-14    "1206"          "unknown" 8125    24775    180 bottom
+R4-0-0      "1206"          "unknown" 504.14  3527.76  180 bottom
+R4-0-1      "1206"          "unknown" 504.14  5027.76  180 bottom
+R4-0-2      "1206"          "unknown" 504.14  6527.76  180 bottom
+R4-0-3      "1206"          "unknown" 504.14  8027.76  180 bottom
+R4-0-4      "1206"          "unknown" 504.14  9527.76  180 bottom
+R4-0-5      "1206"          "unknown" 504.14  11027.76 180 bottom
+R4-0-6      "1206"          "unknown" 504.14  12527.76 180 bottom
+R4-0-7      "1206"          "unknown" 504.14  14027.76 180 bottom
+R4-0-8      "1206"          "unknown" 504.14  15527.76 180 bottom
+R4-0-9      "1206"          "unknown" 504.14  17027.76 180 bottom
+R4-0-10     "1206"          "unknown" 504.14  18527.76 180 bottom
+R4-0-11     "1206"          "unknown" 504.14  20027.76 180 bottom
+R4-0-12     "1206"          "unknown" 504.14  21527.76 180 bottom
+R4-0-13     "1206"          "unknown" 504.14  23027.76 180 bottom
+R4-0-14     "1206"          "unknown" 504.14  24527.76 180 bottom
+R4-1-0      "1206"          "unknown" 1004.14 3527.76  180 bottom
+R4-1-1      "1206"          "unknown" 1004.14 5027.76  180 bottom
+R4-1-2      "1206"          "unknown" 1004.14 6527.76  180 bottom
+R4-1-3      "1206"          "unknown" 1004.14 8027.76  180 bottom
+R4-1-4      "1206"          "unknown" 1004.14 9527.76  180 bottom
+R4-1-5      "1206"          "unknown" 1004.14 11027.76 180 bottom
+R4-1-6      "1206"          "unknown" 1004.14 12527.76 180 bottom
+R4-1-7      "1206"          "unknown" 1004.14 14027.76 180 bottom
+R4-1-8      "1206"          "unknown" 1004.14 15527.76 180 bottom
+R4-1-9      "1206"          "unknown" 1004.14 17027.76 180 bottom
+R4-1-10     "1206"          "unknown" 1004.14 18527.76 180 bottom
+R4-1-11     "1206"          "unknown" 1004.14 20027.76 180 bottom
+R4-1-12     "1206"          "unknown" 1004.14 21527.76 180 bottom
+R4-1-13     "1206"          "unknown" 1004.14 23027.76 180 bottom
+R4-1-14     "1206"          "unknown" 1004.14 24527.76 180 bottom
+R4-2-0      "1206"          "unknown" 1504.14 3527.76  180 bottom
+R4-2-1      "1206"          "unknown" 1504.14 5027.76  180 bottom
+R4-2-2      "1206"          "unknown" 1504.14 6527.76  180 bottom
+R4-2-3      "1206"          "unknown" 1504.14 8027.76  180 bottom
+R4-2-4      "1206"          "unknown" 1504.14 9527.76  180 bottom
+R4-2-5      "1206"          "unknown" 1504.14 11027.76 180 bottom
+R4-2-6      "1206"          "unknown" 1504.14 12527.76 180 bottom
+R4-2-7      "1206"          "unknown" 1504.14 14027.76 180 bottom
+R4-2-8      "1206"          "unknown" 1504.14 15527.76 180 bottom
+R4-2-9      "1206"          "unknown" 1504.14 17027.76 180 bottom
+R4-2-10     "1206"          "unknown" 1504.14 18527.76 180 bottom
+R4-2-11     "1206"          "unknown" 1504.14 20027.76 180 bottom
+R4-2-12     "1206"          "unknown" 1504.14 21527.76 180 bottom
+R4-2-13     "1206"          "unknown" 1504.14 23027.76 180 bottom
+R4-2-14     "1206"          "unknown" 1504.14 24527.76 180 bottom
+R4-3-0      "1206"          "unknown" 2004.14 3527.76  180 bottom
+R4-3-1      "1206"          "unknown" 2004.14 5027.76  180 bottom
+R4-3-2      "1206"          "unknown" 2004.14 6527.76  180 bottom
+R4-3-3      "1206"          "unknown" 2004.14 8027.76  180 bottom
+R4-3-4      "1206"          "unknown" 2004.14 9527.76  180 bottom
+R4-3-5      "1206"          "unknown" 2004.14 11027.76 180 bottom
+R4-3-6      "1206"          "unknown" 2004.14 12527.76 180 bottom
+R4-3-7      "1206"          "unknown" 2004.14 14027.76 180 bottom
+R4-3-8      "1206"          "unknown" 2004.14 15527.76 180 bottom
+R4-3-9      "1206"          "unknown" 2004.14 17027.76 180 bottom
+R4-3-10     "1206"          "unknown" 2004.14 18527.76 180 bottom
+R4-3-11     "1206"          "unknown" 2004.14 20027.76 180 bottom
+R4-3-12     "1206"          "unknown" 2004.14 21527.76 180 bottom
+R4-3-13     "1206"          "unknown" 2004.14 23027.76 180 bottom
+R4-3-14     "1206"          "unknown" 2004.14 24527.76 180 bottom
+R4-4-0      "1206"          "unknown" 2504.14 3527.76  180 bottom
+R4-4-1      "1206"          "unknown" 2504.14 5027.76  180 bottom
+R4-4-2      "1206"          "unknown" 2504.14 6527.76  180 bottom
+R4-4-3      "1206"          "unknown" 2504.14 8027.76  180 bottom
+R4-4-4      "1206"          "unknown" 2504.14 9527.76  180 bottom
+R4-4-5      "1206"          "unknown" 2504.14 11027.76 180 bottom
+R4-4-6      "1206"          "unknown" 2504.14 12527.76 180 bottom
+R4-4-7      "1206"          "unknown" 2504.14 14027.76 180 bottom
+R4-4-8      "1206"          "unknown" 2504.14 15527.76 180 bottom
+R4-4-9      "1206"          "unknown" 2504.14 17027.76 180 bottom
+R4-4-10     "1206"          "unknown" 2504.14 18527.76 180 bottom
+R4-4-11     "1206"          "unknown" 2504.14 20027.76 180 bottom
+R4-4-12     "1206"          "unknown" 2504.14 21527.76 180 bottom
+R4-4-13     "1206"          "unknown" 2504.14 23027.76 180 bottom
+R4-4-14     "1206"          "unknown" 2504.14 24527.76 180 bottom
+R4-5-0      "1206"          "unknown" 3004.14 3527.76  180 bottom
+R4-5-1      "1206"          "unknown" 3004.14 5027.76  180 bottom
+R4-5-2      "1206"          "unknown" 3004.14 6527.76  180 bottom
+R4-5-3      "1206"          "unknown" 3004.14 8027.76  180 bottom
+R4-5-4      "1206"          "unknown" 3004.14 9527.76  180 bottom
+R4-5-5      "1206"          "unknown" 3004.14 11027.76 180 bottom
+R4-5-6      "1206"          "unknown" 3004.14 12527.76 180 bottom
+R4-5-7      "1206"          "unknown" 3004.14 14027.76 180 bottom
+R4-5-8      "1206"          "unknown" 3004.14 15527.76 180 bottom
+R4-5-9      "1206"          "unknown" 3004.14 17027.76 180 bottom
+R4-5-10     "1206"          "unknown" 3004.14 18527.76 180 bottom
+R4-5-11     "1206"          "unknown" 3004.14 20027.76 180 bottom
+R4-5-12     "1206"          "unknown" 3004.14 21527.76 180 bottom
+R4-5-13     "1206"          "unknown" 3004.14 23027.76 180 bottom
+R4-5-14     "1206"          "unknown" 3004.14 24527.76 180 bottom
+R4-6-0      "1206"          "unknown" 3504.14 3527.76  180 bottom
+R4-6-1      "1206"          "unknown" 3504.14 5027.76  180 bottom
+R4-6-2      "1206"          "unknown" 3504.14 6527.76  180 bottom
+R4-6-3      "1206"          "unknown" 3504.14 8027.76  180 bottom
+R4-6-4      "1206"          "unknown" 3504.14 9527.76  180 bottom
+R4-6-5      "1206"          "unknown" 3504.14 11027.76 180 bottom
+R4-6-6      "1206"          "unknown" 3504.14 12527.76 180 bottom
+R4-6-7      "1206"          "unknown" 3504.14 14027.76 180 bottom
+R4-6-8      "1206"          "unknown" 3504.14 15527.76 180 bottom
+R4-6-9      "1206"          "unknown" 3504.14 17027.76 180 bottom
+R4-6-10     "1206"          "unknown" 3504.14 18527.76 180 bottom
+R4-6-11     "1206"          "unknown" 3504.14 20027.76 180 bottom
+R4-6-12     "1206"          "unknown" 3504.14 21527.76 180 bottom
+R4-6-13     "1206"          "unknown" 3504.14 23027.76 180 bottom
+R4-6-14     "1206"          "unknown" 3504.14 24527.76 180 bottom
+R4-7-0      "1206"          "unknown" 4004.14 3527.76  180 bottom
+R4-7-1      "1206"          "unknown" 4004.14 5027.76  180 bottom
+R4-7-2      "1206"          "unknown" 4004.14 6527.76  180 bottom
+R4-7-3      "1206"          "unknown" 4004.14 8027.76  180 bottom
+R4-7-4      "1206"          "unknown" 4004.14 9527.76  180 bottom
+R4-7-5      "1206"          "unknown" 4004.14 11027.76 180 bottom
+R4-7-6      "1206"          "unknown" 4004.14 12527.76 180 bottom
+R4-7-7      "1206"          "unknown" 4004.14 14027.76 180 bottom
+R4-7-8      "1206"          "unknown" 4004.14 15527.76 180 bottom
+R4-7-9      "1206"          "unknown" 4004.14 17027.76 180 bottom
+R4-7-10     "1206"          "unknown" 4004.14 18527.76 180 bottom
+R4-7-11     "1206"          "unknown" 4004.14 20027.76 180 bottom
+R4-7-12     "1206"          "unknown" 4004.14 21527.76 180 bottom
+R4-7-13     "1206"          "unknown" 4004.14 23027.76 180 bottom
+R4-7-14     "1206"          "unknown" 4004.14 24527.76 180 bottom
+R4-8-0      "1206"          "unknown" 4504.14 3527.76  180 bottom
+R4-8-1      "1206"          "unknown" 4504.14 5027.76  180 bottom
+R4-8-2      "1206"          "unknown" 4504.14 6527.76  180 bottom
+R4-8-3      "1206"          "unknown" 4504.14 8027.76  180 bottom
+R4-8-4      "1206"          "unknown" 4504.14 9527.76  180 bottom
+R4-8-5      "1206"          "unknown" 4504.14 11027.76 180 bottom
+R4-8-6      "1206"          "unknown" 4504.14 12527.76 180 bottom
+R4-8-7      "1206"          "unknown" 4504.14 14027.76 180 bottom
+R4-8-8      "1206"          "unknown" 4504.14 15527.76 180 bottom
+R4-8-9      "1206"          "unknown" 4504.14 17027.76 180 bottom
+R4-8-10     "1206"          "unknown" 4504.14 18527.76 180 bottom
+R4-8-11     "1206"          "unknown" 4504.14 20027.76 180 bottom
+R4-8-12     "1206"          "unknown" 4504.14 21527.76 180 bottom
+R4-8-13     "1206"          "unknown" 4504.14 23027.76 180 bottom
+R4-8-14     "1206"          "unknown" 4504.14 24527.76 180 bottom
+R4-9-0      "1206"          "unknown" 5004.14 3527.76  180 bottom
+R4-9-1      "1206"          "unknown" 5004.14 5027.76  180 bottom
+R4-9-2      "1206"          "unknown" 5004.14 6527.76  180 bottom
+R4-9-3      "1206"          "unknown" 5004.14 8027.76  180 bottom
+R4-9-4      "1206"          "unknown" 5004.14 9527.76  180 bottom
+R4-9-5      "1206"          "unknown" 5004.14 11027.76 180 bottom
+R4-9-6      "1206"          "unknown" 5004.14 12527.76 180 bottom
+R4-9-7      "1206"          "unknown" 5004.14 14027.76 180 bottom
+R4-9-8      "1206"          "unknown" 5004.14 15527.76 180 bottom
+R4-9-9      "1206"          "unknown" 5004.14 17027.76 180 bottom
+R4-9-10     "1206"          "unknown" 5004.14 18527.76 180 bottom
+R4-9-11     "1206"          "unknown" 5004.14 20027.76 180 bottom
+R4-9-12     "1206"          "unknown" 5004.14 21527.76 180 bottom
+R4-9-13     "1206"          "unknown" 5004.14 23027.76 180 bottom
+R4-9-14     "1206"          "unknown" 5004.14 24527.76 180 bottom
+R4-10-0     "1206"          "unknown" 5504.14 3527.76  180 bottom
+R4-10-1     "1206"          "unknown" 5504.14 5027.76  180 bottom
+R4-10-2     "1206"          "unknown" 5504.14 6527.76  180 bottom
+R4-10-3     "1206"          "unknown" 5504.14 8027.76  180 bottom
+R4-10-4     "1206"          "unknown" 5504.14 9527.76  180 bottom
+R4-10-5     "1206"          "unknown" 5504.14 11027.76 180 bottom
+R4-10-6     "1206"          "unknown" 5504.14 12527.76 180 bottom
+R4-10-7     "1206"          "unknown" 5504.14 14027.76 180 bottom
+R4-10-8     "1206"          "unknown" 5504.14 15527.76 180 bottom
+R4-10-9     "1206"          "unknown" 5504.14 17027.76 180 bottom
+R4-10-10    "1206"          "unknown" 5504.14 18527.76 180 bottom
+R4-10-11    "1206"          "unknown" 5504.14 20027.76 180 bottom
+R4-10-12    "1206"          "unknown" 5504.14 21527.76 180 bottom
+R4-10-13    "1206"          "unknown" 5504.14 23027.76 180 bottom
+R4-10-14    "1206"          "unknown" 5504.14 24527.76 180 bottom
+R4-11-0     "1206"          "unknown" 6004.14 3527.76  180 bottom
+R4-11-1     "1206"          "unknown" 6004.14 5027.76  180 bottom
+R4-11-2     "1206"          "unknown" 6004.14 6527.76  180 bottom
+R4-11-3     "1206"          "unknown" 6004.14 8027.76  180 bottom
+R4-11-4     "1206"          "unknown" 6004.14 9527.76  180 bottom
+R4-11-5     "1206"          "unknown" 6004.14 11027.76 180 bottom
+R4-11-6     "1206"          "unknown" 6004.14 12527.76 180 bottom
+R4-11-7     "1206"          "unknown" 6004.14 14027.76 180 bottom
+R4-11-8     "1206"          "unknown" 6004.14 15527.76 180 bottom
+R4-11-9     "1206"          "unknown" 6004.14 17027.76 180 bottom
+R4-11-10    "1206"          "unknown" 6004.14 18527.76 180 bottom
+R4-11-11    "1206"          "unknown" 6004.14 20027.76 180 bottom
+R4-11-12    "1206"          "unknown" 6004.14 21527.76 180 bottom
+R4-11-13    "1206"          "unknown" 6004.14 23027.76 180 bottom
+R4-11-14    "1206"          "unknown" 6004.14 24527.76 180 bottom
+R4-12-0     "1206"          "unknown" 6504.14 3527.76  180 bottom
+R4-12-1     "1206"          "unknown" 6504.14 5027.76  180 bottom
+R4-12-2     "1206"          "unknown" 6504.14 6527.76  180 bottom
+R4-12-3     "1206"          "unknown" 6504.14 8027.76  180 bottom
+R4-12-4     "1206"          "unknown" 6504.14 9527.76  180 bottom
+R4-12-5     "1206"          "unknown" 6504.14 11027.76 180 bottom
+R4-12-6     "1206"          "unknown" 6504.14 12527.76 180 bottom
+R4-12-7     "1206"          "unknown" 6504.14 14027.76 180 bottom
+R4-12-8     "1206"          "unknown" 6504.14 15527.76 180 bottom
+R4-12-9     "1206"          "unknown" 6504.14 17027.76 180 bottom
+R4-12-10    "1206"          "unknown" 6504.14 18527.76 180 bottom
+R4-12-11    "1206"          "unknown" 6504.14 20027.76 180 bottom
+R4-12-12    "1206"          "unknown" 6504.14 21527.76 180 bottom
+R4-12-13    "1206"          "unknown" 6504.14 23027.76 180 bottom
+R4-12-14    "1206"          "unknown" 6504.14 24527.76 180 bottom
+R4-13-0     "1206"          "unknown" 7004.14 3527.76  180 bottom
+R4-13-1     "1206"          "unknown" 7004.14 5027.76  180 bottom
+R4-13-2     "1206"          "unknown" 7004.14 6527.76  180 bottom
+R4-13-3     "1206"          "unknown" 7004.14 8027.76  180 bottom
+R4-13-4     "1206"          "unknown" 7004.14 9527.76  180 bottom
+R4-13-5     "1206"          "unknown" 7004.14 11027.76 180 bottom
+R4-13-6     "1206"          "unknown" 7004.14 12527.76 180 bottom
+R4-13-7     "1206"          "unknown" 7004.14 14027.76 180 bottom
+R4-13-8     "1206"          "unknown" 7004.14 15527.76 180 bottom
+R4-13-9     "1206"          "unknown" 7004.14 17027.76 180 bottom
+R4-13-10    "1206"          "unknown" 7004.14 18527.76 180 bottom
+R4-13-11    "1206"          "unknown" 7004.14 20027.76 180 bottom
+R4-13-12    "1206"          "unknown" 7004.14 21527.76 180 bottom
+R4-13-13    "1206"          "unknown" 7004.14 23027.76 180 bottom
+R4-13-14    "1206"          "unknown" 7004.14 24527.76 180 bottom
+R4-14-0     "1206"          "unknown" 7504.14 3527.76  180 bottom
+R4-14-1     "1206"          "unknown" 7504.14 5027.76  180 bottom
+R4-14-2     "1206"          "unknown" 7504.14 6527.76  180 bottom
+R4-14-3     "1206"          "unknown" 7504.14 8027.76  180 bottom
+R4-14-4     "1206"          "unknown" 7504.14 9527.76  180 bottom
+R4-14-5     "1206"          "unknown" 7504.14 11027.76 180 bottom
+R4-14-6     "1206"          "unknown" 7504.14 12527.76 180 bottom
+R4-14-7     "1206"          "unknown" 7504.14 14027.76 180 bottom
+R4-14-8     "1206"          "unknown" 7504.14 15527.76 180 bottom
+R4-14-9     "1206"          "unknown" 7504.14 17027.76 180 bottom
+R4-14-10    "1206"          "unknown" 7504.14 18527.76 180 bottom
+R4-14-11    "1206"          "unknown" 7504.14 20027.76 180 bottom
+R4-14-12    "1206"          "unknown" 7504.14 21527.76 180 bottom
+R4-14-13    "1206"          "unknown" 7504.14 23027.76 180 bottom
+R4-14-14    "1206"          "unknown" 7504.14 24527.76 180 bottom
+C15-0-0     "1206"          "unknown" 1225.00 3350.00  90  bottom
+C15-0-1     "1206"          "unknown" 1225    4850     90  bottom
+C15-0-2     "1206"          "unknown" 1225    6350     90  bottom
+C15-0-3     "1206"          "unknown" 1225    7850     90  bottom
+C15-0-4     "1206"          "unknown" 1225    9350     90  bottom
+C15-0-5     "1206"          "unknown" 1225    10850    90  bottom
+C15-0-6     "1206"          "unknown" 1225    12350    90  bottom
+C15-0-7     "1206"          "unknown" 1225    13850    90  bottom
+C15-0-8     "1206"          "unknown" 1225    15350    90  bottom
+C15-0-9     "1206"          "unknown" 1225    16850    90  bottom
+C15-0-10    "1206"          "unknown" 1225    18350    90  bottom
+C15-0-11    "1206"          "unknown" 1225    19850    90  bottom
+C15-0-12    "1206"          "unknown" 1225    21350    90  bottom
+C15-0-13    "1206"          "unknown" 1225    22850    90  bottom
+C15-0-14    "1206"          "unknown" 1225    24350    90  bottom
+C15-1-0     "1206"          "unknown" 1725    3350     90  bottom
+C15-1-1     "1206"          "unknown" 1725    4850     90  bottom
+C15-1-2     "1206"          "unknown" 1725    6350     90  bottom
+C15-1-3     "1206"          "unknown" 1725    7850     90  bottom
+C15-1-4     "1206"          "unknown" 1725    9350     90  bottom
+C15-1-5     "1206"          "unknown" 1725    10850    90  bottom
+C15-1-6     "1206"          "unknown" 1725    12350    90  bottom
+C15-1-7     "1206"          "unknown" 1725    13850    90  bottom
+C15-1-8     "1206"          "unknown" 1725    15350    90  bottom
+C15-1-9     "1206"          "unknown" 1725    16850    90  bottom
+C15-1-10    "1206"          "unknown" 1725    18350    90  bottom
+C15-1-11    "1206"          "unknown" 1725    19850    90  bottom
+C15-1-12    "1206"          "unknown" 1725    21350    90  bottom
+C15-1-13    "1206"          "unknown" 1725    22850    90  bottom
+C15-1-14    "1206"          "unknown" 1725    24350    90  bottom
+C15-2-0     "1206"          "unknown" 2225    3350     90  bottom
+C15-2-1     "1206"          "unknown" 2225    4850     90  bottom
+C15-2-2     "1206"          "unknown" 2225    6350     90  bottom
+C15-2-3     "1206"          "unknown" 2225    7850     90  bottom
+C15-2-4     "1206"          "unknown" 2225    9350     90  bottom
+C15-2-5     "1206"          "unknown" 2225    10850    90  bottom
+C15-2-6     "1206"          "unknown" 2225    12350    90  bottom
+C15-2-7     "1206"          "unknown" 2225    13850    90  bottom
+C15-2-8     "1206"          "unknown" 2225    15350    90  bottom
+C15-2-9     "1206"          "unknown" 2225    16850    90  bottom
+C15-2-10    "1206"          "unknown" 2225    18350    90  bottom
+C15-2-11    "1206"          "unknown" 2225    19850    90  bottom
+C15-2-12    "1206"          "unknown" 2225    21350    90  bottom
+C15-2-13    "1206"          "unknown" 2225    22850    90  bottom
+C15-2-14    "1206"          "unknown" 2225    24350    90  bottom
+C15-3-0     "1206"          "unknown" 2725    3350     90  bottom
+C15-3-1     "1206"          "unknown" 2725    4850     90  bottom
+C15-3-2     "1206"          "unknown" 2725    6350     90  bottom
+C15-3-3     "1206"          "unknown" 2725    7850     90  bottom
+C15-3-4     "1206"          "unknown" 2725    9350     90  bottom
+C15-3-5     "1206"          "unknown" 2725    10850    90  bottom
+C15-3-6     "1206"          "unknown" 2725    12350    90  bottom
+C15-3-7     "1206"          "unknown" 2725    13850    90  bottom
+C15-3-8     "1206"          "unknown" 2725    15350    90  bottom
+C15-3-9     "1206"          "unknown" 2725    16850    90  bottom
+C15-3-10    "1206"          "unknown" 2725    18350    90  bottom
+C15-3-11    "1206"          "unknown" 2725    19850    90  bottom
+C15-3-12    "1206"          "unknown" 2725    21350    90  bottom
+C15-3-13    "1206"          "unknown" 2725    22850    90  bottom
+C15-3-14    "1206"          "unknown" 2725    24350    90  bottom
+C15-4-0     "1206"          "unknown" 3225    3350     90  bottom
+C15-4-1     "1206"          "unknown" 3225    4850     90  bottom
+C15-4-2     "1206"          "unknown" 3225    6350     90  bottom
+C15-4-3     "1206"          "unknown" 3225    7850     90  bottom
+C15-4-4     "1206"          "unknown" 3225    9350     90  bottom
+C15-4-5     "1206"          "unknown" 3225    10850    90  bottom
+C15-4-6     "1206"          "unknown" 3225    12350    90  bottom
+C15-4-7     "1206"          "unknown" 3225    13850    90  bottom
+C15-4-8     "1206"          "unknown" 3225    15350    90  bottom
+C15-4-9     "1206"          "unknown" 3225    16850    90  bottom
+C15-4-10    "1206"          "unknown" 3225    18350    90  bottom
+C15-4-11    "1206"          "unknown" 3225    19850    90  bottom
+C15-4-12    "1206"          "unknown" 3225    21350    90  bottom
+C15-4-13    "1206"          "unknown" 3225    22850    90  bottom
+C15-4-14    "1206"          "unknown" 3225    24350    90  bottom
+C15-5-0     "1206"          "unknown" 3725    3350     90  bottom
+C15-5-1     "1206"          "unknown" 3725    4850     90  bottom
+C15-5-2     "1206"          "unknown" 3725    6350     90  bottom
+C15-5-3     "1206"          "unknown" 3725    7850     90  bottom
+C15-5-4     "1206"          "unknown" 3725    9350     90  bottom
+C15-5-5     "1206"          "unknown" 3725    10850    90  bottom
+C15-5-6     "1206"          "unknown" 3725    12350    90  bottom
+C15-5-7     "1206"          "unknown" 3725    13850    90  bottom
+C15-5-8     "1206"          "unknown" 3725    15350    90  bottom
+C15-5-9     "1206"          "unknown" 3725    16850    90  bottom
+C15-5-10    "1206"          "unknown" 3725    18350    90  bottom
+C15-5-11    "1206"          "unknown" 3725    19850    90  bottom
+C15-5-12    "1206"          "unknown" 3725    21350    90  bottom
+C15-5-13    "1206"          "unknown" 3725    22850    90  bottom
+C15-5-14    "1206"          "unknown" 3725    24350    90  bottom
+C15-6-0     "1206"          "unknown" 4225    3350     90  bottom
+C15-6-1     "1206"          "unknown" 4225    4850     90  bottom
+C15-6-2     "1206"          "unknown" 4225    6350     90  bottom
+C15-6-3     "1206"          "unknown" 4225    7850     90  bottom
+C15-6-4     "1206"          "unknown" 4225    9350     90  bottom
+C15-6-5     "1206"          "unknown" 4225    10850    90  bottom
+C15-6-6     "1206"          "unknown" 4225    12350    90  bottom
+C15-6-7     "1206"          "unknown" 4225    13850    90  bottom
+C15-6-8     "1206"          "unknown" 4225    15350    90  bottom
+C15-6-9     "1206"          "unknown" 4225    16850    90  bottom
+C15-6-10    "1206"          "unknown" 4225    18350    90  bottom
+C15-6-11    "1206"          "unknown" 4225    19850    90  bottom
+C15-6-12    "1206"          "unknown" 4225    21350    90  bottom
+C15-6-13    "1206"          "unknown" 4225    22850    90  bottom
+C15-6-14    "1206"          "unknown" 4225    24350    90  bottom
+C15-7-0     "1206"          "unknown" 4725    3350     90  bottom
+C15-7-1     "1206"          "unknown" 4725    4850     90  bottom
+C15-7-2     "1206"          "unknown" 4725    6350     90  bottom
+C15-7-3     "1206"          "unknown" 4725    7850     90  bottom
+C15-7-4     "1206"          "unknown" 4725    9350     90  bottom
+C15-7-5     "1206"          "unknown" 4725    10850    90  bottom
+C15-7-6     "1206"          "unknown" 4725    12350    90  bottom
+C15-7-7     "1206"          "unknown" 4725    13850    90  bottom
+C15-7-8     "1206"          "unknown" 4725    15350    90  bottom
+C15-7-9     "1206"          "unknown" 4725    16850    90  bottom
+C15-7-10    "1206"          "unknown" 4725    18350    90  bottom
+C15-7-11    "1206"          "unknown" 4725    19850    90  bottom
+C15-7-12    "1206"          "unknown" 4725    21350    90  bottom
+C15-7-13    "1206"          "unknown" 4725    22850    90  bottom
+C15-7-14    "1206"          "unknown" 4725    24350    90  bottom
+C15-8-0     "1206"          "unknown" 5225    3350     90  bottom
+C15-8-1     "1206"          "unknown" 5225    4850     90  bottom
+C15-8-2     "1206"          "unknown" 5225    6350     90  bottom
+C15-8-3     "1206"          "unknown" 5225    7850     90  bottom
+C15-8-4     "1206"          "unknown" 5225    9350     90  bottom
+C15-8-5     "1206"          "unknown" 5225    10850    90  bottom
+C15-8-6     "1206"          "unknown" 5225    12350    90  bottom
+C15-8-7     "1206"          "unknown" 5225    13850    90  bottom
+C15-8-8     "1206"          "unknown" 5225    15350    90  bottom
+C15-8-9     "1206"          "unknown" 5225    16850    90  bottom
+C15-8-10    "1206"          "unknown" 5225    18350    90  bottom
+C15-8-11    "1206"          "unknown" 5225    19850    90  bottom
+C15-8-12    "1206"          "unknown" 5225    21350    90  bottom
+C15-8-13    "1206"          "unknown" 5225    22850    90  bottom
+C15-8-14    "1206"          "unknown" 5225    24350    90  bottom
+C15-9-0     "1206"          "unknown" 5725    3350     90  bottom
+C15-9-1     "1206"          "unknown" 5725    4850     90  bottom
+C15-9-2     "1206"          "unknown" 5725    6350     90  bottom
+C15-9-3     "1206"          "unknown" 5725    7850     90  bottom
+C15-9-4     "1206"          "unknown" 5725    9350     90  bottom
+C15-9-5     "1206"          "unknown" 5725    10850    90  bottom
+C15-9-6     "1206"          "unknown" 5725    12350    90  bottom
+C15-9-7     "1206"          "unknown" 5725    13850    90  bottom
+C15-9-8     "1206"          "unknown" 5725    15350    90  bottom
+C15-9-9     "1206"          "unknown" 5725    16850    90  bottom
+C15-9-10    "1206"          "unknown" 5725    18350    90  bottom
+C15-9-11    "1206"          "unknown" 5725    19850    90  bottom
+C15-9-12    "1206"          "unknown" 5725    21350    90  bottom
+C15-9-13    "1206"          "unknown" 5725    22850    90  bottom
+C15-9-14    "1206"          "unknown" 5725    24350    90  bottom
+C15-10-0    "1206"          "unknown" 6225    3350     90  bottom
+C15-10-1    "1206"          "unknown" 6225    4850     90  bottom
+C15-10-2    "1206"          "unknown" 6225    6350     90  bottom
+C15-10-3    "1206"          "unknown" 6225    7850     90  bottom
+C15-10-4    "1206"          "unknown" 6225    9350     90  bottom
+C15-10-5    "1206"          "unknown" 6225    10850    90  bottom
+C15-10-6    "1206"          "unknown" 6225    12350    90  bottom
+C15-10-7    "1206"          "unknown" 6225    13850    90  bottom
+C15-10-8    "1206"          "unknown" 6225    15350    90  bottom
+C15-10-9    "1206"          "unknown" 6225    16850    90  bottom
+C15-10-10   "1206"          "unknown" 6225    18350    90  bottom
+C15-10-11   "1206"          "unknown" 6225    19850    90  bottom
+C15-10-12   "1206"          "unknown" 6225    21350    90  bottom
+C15-10-13   "1206"          "unknown" 6225    22850    90  bottom
+C15-10-14   "1206"          "unknown" 6225    24350    90  bottom
+C15-11-0    "1206"          "unknown" 6725    3350     90  bottom
+C15-11-1    "1206"          "unknown" 6725    4850     90  bottom
+C15-11-2    "1206"          "unknown" 6725    6350     90  bottom
+C15-11-3    "1206"          "unknown" 6725    7850     90  bottom
+C15-11-4    "1206"          "unknown" 6725    9350     90  bottom
+C15-11-5    "1206"          "unknown" 6725    10850    90  bottom
+C15-11-6    "1206"          "unknown" 6725    12350    90  bottom
+C15-11-7    "1206"          "unknown" 6725    13850    90  bottom
+C15-11-8    "1206"          "unknown" 6725    15350    90  bottom
+C15-11-9    "1206"          "unknown" 6725    16850    90  bottom
+C15-11-10   "1206"          "unknown" 6725    18350    90  bottom
+C15-11-11   "1206"          "unknown" 6725    19850    90  bottom
+C15-11-12   "1206"          "unknown" 6725    21350    90  bottom
+C15-11-13   "1206"          "unknown" 6725    22850    90  bottom
+C15-11-14   "1206"          "unknown" 6725    24350    90  bottom
+C15-12-0    "1206"          "unknown" 7225    3350     90  bottom
+C15-12-1    "1206"          "unknown" 7225    4850     90  bottom
+C15-12-2    "1206"          "unknown" 7225    6350     90  bottom
+C15-12-3    "1206"          "unknown" 7225    7850     90  bottom
+C15-12-4    "1206"          "unknown" 7225    9350     90  bottom
+C15-12-5    "1206"          "unknown" 7225    10850    90  bottom
+C15-12-6    "1206"          "unknown" 7225    12350    90  bottom
+C15-12-7    "1206"          "unknown" 7225    13850    90  bottom
+C15-12-8    "1206"          "unknown" 7225    15350    90  bottom
+C15-12-9    "1206"          "unknown" 7225    16850    90  bottom
+C15-12-10   "1206"          "unknown" 7225    18350    90  bottom
+C15-12-11   "1206"          "unknown" 7225    19850    90  bottom
+C15-12-12   "1206"          "unknown" 7225    21350    90  bottom
+C15-12-13   "1206"          "unknown" 7225    22850    90  bottom
+C15-12-14   "1206"          "unknown" 7225    24350    90  bottom
+C15-13-0    "1206"          "unknown" 7725    3350     90  bottom
+C15-13-1    "1206"          "unknown" 7725    4850     90  bottom
+C15-13-2    "1206"          "unknown" 7725    6350     90  bottom
+C15-13-3    "1206"          "unknown" 7725    7850     90  bottom
+C15-13-4    "1206"          "unknown" 7725    9350     90  bottom
+C15-13-5    "1206"          "unknown" 7725    10850    90  bottom
+C15-13-6    "1206"          "unknown" 7725    12350    90  bottom
+C15-13-7    "1206"          "unknown" 7725    13850    90  bottom
+C15-13-8    "1206"          "unknown" 7725    15350    90  bottom
+C15-13-9    "1206"          "unknown" 7725    16850    90  bottom
+C15-13-10   "1206"          "unknown" 7725    18350    90  bottom
+C15-13-11   "1206"          "unknown" 7725    19850    90  bottom
+C15-13-12   "1206"          "unknown" 7725    21350    90  bottom
+C15-13-13   "1206"          "unknown" 7725    22850    90  bottom
+C15-13-14   "1206"          "unknown" 7725    24350    90  bottom
+C15-14-0    "1206"          "unknown" 8225    3350     90  bottom
+C15-14-1    "1206"          "unknown" 8225    4850     90  bottom
+C15-14-2    "1206"          "unknown" 8225    6350     90  bottom
+C15-14-3    "1206"          "unknown" 8225    7850     90  bottom
+C15-14-4    "1206"          "unknown" 8225    9350     90  bottom
+C15-14-5    "1206"          "unknown" 8225    10850    90  bottom
+C15-14-6    "1206"          "unknown" 8225    12350    90  bottom
+C15-14-7    "1206"          "unknown" 8225    13850    90  bottom
+C15-14-8    "1206"          "unknown" 8225    15350    90  bottom
+C15-14-9    "1206"          "unknown" 8225    16850    90  bottom
+C15-14-10   "1206"          "unknown" 8225    18350    90  bottom
+C15-14-11   "1206"          "unknown" 8225    19850    90  bottom
+C15-14-12   "1206"          "unknown" 8225    21350    90  bottom
+C15-14-13   "1206"          "unknown" 8225    22850    90  bottom
+C15-14-14   "1206"          "unknown" 8225    24350    90  bottom
+U1-0-0      "TO220"         "unknown" 407.50  4180.00  90  top   
+U1-0-1      "TO220"         "unknown" 407.5   5680     90  top   
+U1-0-2      "TO220"         "unknown" 407.5   7180     90  top   
+U1-0-3      "TO220"         "unknown" 407.5   8680     90  top   
+U1-0-4      "TO220"         "unknown" 407.5   10180    90  top   
+U1-0-5      "TO220"         "unknown" 407.5   11680    90  top   
+U1-0-6      "TO220"         "unknown" 407.5   13180    90  top   
+U1-0-7      "TO220"         "unknown" 407.5   14680    90  top   
+U1-0-8      "TO220"         "unknown" 407.5   16180    90  top   
+U1-0-9      "TO220"         "unknown" 407.5   17680    90  top   
+U1-0-10     "TO220"         "unknown" 407.5   19180    90  top   
+U1-0-11     "TO220"         "unknown" 407.5   20680    90  top   
+U1-0-12     "TO220"         "unknown" 407.5   22180    90  top   
+U1-0-13     "TO220"         "unknown" 407.5   23680    90  top   
+U1-0-14     "TO220"         "unknown" 407.5   25180    90  top   
+U1-1-0      "TO220"         "unknown" 907.5   4180     90  top   
+U1-1-1      "TO220"         "unknown" 907.5   5680     90  top   
+U1-1-2      "TO220"         "unknown" 907.5   7180     90  top   
+U1-1-3      "TO220"         "unknown" 907.5   8680     90  top   
+U1-1-4      "TO220"         "unknown" 907.5   10180    90  top   
+U1-1-5      "TO220"         "unknown" 907.5   11680    90  top   
+U1-1-6      "TO220"         "unknown" 907.5   13180    90  top   
+U1-1-7      "TO220"         "unknown" 907.5   14680    90  top   
+U1-1-8      "TO220"         "unknown" 907.5   16180    90  top   
+U1-1-9      "TO220"         "unknown" 907.5   17680    90  top   
+U1-1-10     "TO220"         "unknown" 907.5   19180    90  top   
+U1-1-11     "TO220"         "unknown" 907.5   20680    90  top   
+U1-1-12     "TO220"         "unknown" 907.5   22180    90  top   
+U1-1-13     "TO220"         "unknown" 907.5   23680    90  top   
+U1-1-14     "TO220"         "unknown" 907.5   25180    90  top   
+U1-2-0      "TO220"         "unknown" 1407.5  4180     90  top   
+U1-2-1      "TO220"         "unknown" 1407.5  5680     90  top   
+U1-2-2      "TO220"         "unknown" 1407.5  7180     90  top   
+U1-2-3      "TO220"         "unknown" 1407.5  8680     90  top   
+U1-2-4      "TO220"         "unknown" 1407.5  10180    90  top   
+U1-2-5      "TO220"         "unknown" 1407.5  11680    90  top   
+U1-2-6      "TO220"         "unknown" 1407.5  13180    90  top   
+U1-2-7      "TO220"         "unknown" 1407.5  14680    90  top   
+U1-2-8      "TO220"         "unknown" 1407.5  16180    90  top   
+U1-2-9      "TO220"         "unknown" 1407.5  17680    90  top   
+U1-2-10     "TO220"         "unknown" 1407.5  19180    90  top   
+U1-2-11     "TO220"         "unknown" 1407.5  20680    90  top   
+U1-2-12     "TO220"         "unknown" 1407.5  22180    90  top   
+U1-2-13     "TO220"         "unknown" 1407.5  23680    90  top   
+U1-2-14     "TO220"         "unknown" 1407.5  25180    90  top   
+U1-3-0      "TO220"         "unknown" 1907.5  4180     90  top   
+U1-3-1      "TO220"         "unknown" 1907.5  5680     90  top   
+U1-3-2      "TO220"         "unknown" 1907.5  7180     90  top   
+U1-3-3      "TO220"         "unknown" 1907.5  8680     90  top   
+U1-3-4      "TO220"         "unknown" 1907.5  10180    90  top   
+U1-3-5      "TO220"         "unknown" 1907.5  11680    90  top   
+U1-3-6      "TO220"         "unknown" 1907.5  13180    90  top   
+U1-3-7      "TO220"         "unknown" 1907.5  14680    90  top   
+U1-3-8      "TO220"         "unknown" 1907.5  16180    90  top   
+U1-3-9      "TO220"         "unknown" 1907.5  17680    90  top   
+U1-3-10     "TO220"         "unknown" 1907.5  19180    90  top   
+U1-3-11     "TO220"         "unknown" 1907.5  20680    90  top   
+U1-3-12     "TO220"         "unknown" 1907.5  22180    90  top   
+U1-3-13     "TO220"         "unknown" 1907.5  23680    90  top   
+U1-3-14     "TO220"         "unknown" 1907.5  25180    90  top   
+U1-4-0      "TO220"         "unknown" 2407.5  4180     90  top   
+U1-4-1      "TO220"         "unknown" 2407.5  5680     90  top   
+U1-4-2      "TO220"         "unknown" 2407.5  7180     90  top   
+U1-4-3      "TO220"         "unknown" 2407.5  8680     90  top   
+U1-4-4      "TO220"         "unknown" 2407.5  10180    90  top   
+U1-4-5      "TO220"         "unknown" 2407.5  11680    90  top   
+U1-4-6      "TO220"         "unknown" 2407.5  13180    90  top   
+U1-4-7      "TO220"         "unknown" 2407.5  14680    90  top   
+U1-4-8      "TO220"         "unknown" 2407.5  16180    90  top   
+U1-4-9      "TO220"         "unknown" 2407.5  17680    90  top   
+U1-4-10     "TO220"         "unknown" 2407.5  19180    90  top   
+U1-4-11     "TO220"         "unknown" 2407.5  20680    90  top   
+U1-4-12     "TO220"         "unknown" 2407.5  22180    90  top   
+U1-4-13     "TO220"         "unknown" 2407.5  23680    90  top   
+U1-4-14     "TO220"         "unknown" 2407.5  25180    90  top   
+U1-5-0      "TO220"         "unknown" 2907.5  4180     90  top   
+U1-5-1      "TO220"         "unknown" 2907.5  5680     90  top   
+U1-5-2      "TO220"         "unknown" 2907.5  7180     90  top   
+U1-5-3      "TO220"         "unknown" 2907.5  8680     90  top   
+U1-5-4      "TO220"         "unknown" 2907.5  10180    90  top   
+U1-5-5      "TO220"         "unknown" 2907.5  11680    90  top   
+U1-5-6      "TO220"         "unknown" 2907.5  13180    90  top   
+U1-5-7      "TO220"         "unknown" 2907.5  14680    90  top   
+U1-5-8      "TO220"         "unknown" 2907.5  16180    90  top   
+U1-5-9      "TO220"         "unknown" 2907.5  17680    90  top   
+U1-5-10     "TO220"         "unknown" 2907.5  19180    90  top   
+U1-5-11     "TO220"         "unknown" 2907.5  20680    90  top   
+U1-5-12     "TO220"         "unknown" 2907.5  22180    90  top   
+U1-5-13     "TO220"         "unknown" 2907.5  23680    90  top   
+U1-5-14     "TO220"         "unknown" 2907.5  25180    90  top   
+U1-6-0      "TO220"         "unknown" 3407.5  4180     90  top   
+U1-6-1      "TO220"         "unknown" 3407.5  5680     90  top   
+U1-6-2      "TO220"         "unknown" 3407.5  7180     90  top   
+U1-6-3      "TO220"         "unknown" 3407.5  8680     90  top   
+U1-6-4      "TO220"         "unknown" 3407.5  10180    90  top   
+U1-6-5      "TO220"         "unknown" 3407.5  11680    90  top   
+U1-6-6      "TO220"         "unknown" 3407.5  13180    90  top   
+U1-6-7      "TO220"         "unknown" 3407.5  14680    90  top   
+U1-6-8      "TO220"         "unknown" 3407.5  16180    90  top   
+U1-6-9      "TO220"         "unknown" 3407.5  17680    90  top   
+U1-6-10     "TO220"         "unknown" 3407.5  19180    90  top   
+U1-6-11     "TO220"         "unknown" 3407.5  20680    90  top   
+U1-6-12     "TO220"         "unknown" 3407.5  22180    90  top   
+U1-6-13     "TO220"         "unknown" 3407.5  23680    90  top   
+U1-6-14     "TO220"         "unknown" 3407.5  25180    90  top   
+U1-7-0      "TO220"         "unknown" 3907.5  4180     90  top   
+U1-7-1      "TO220"         "unknown" 3907.5  5680     90  top   
+U1-7-2      "TO220"         "unknown" 3907.5  7180     90  top   
+U1-7-3      "TO220"         "unknown" 3907.5  8680     90  top   
+U1-7-4      "TO220"         "unknown" 3907.5  10180    90  top   
+U1-7-5      "TO220"         "unknown" 3907.5  11680    90  top   
+U1-7-6      "TO220"         "unknown" 3907.5  13180    90  top   
+U1-7-7      "TO220"         "unknown" 3907.5  14680    90  top   
+U1-7-8      "TO220"         "unknown" 3907.5  16180    90  top   
+U1-7-9      "TO220"         "unknown" 3907.5  17680    90  top   
+U1-7-10     "TO220"         "unknown" 3907.5  19180    90  top   
+U1-7-11     "TO220"         "unknown" 3907.5  20680    90  top   
+U1-7-12     "TO220"         "unknown" 3907.5  22180    90  top   
+U1-7-13     "TO220"         "unknown" 3907.5  23680    90  top   
+U1-7-14     "TO220"         "unknown" 3907.5  25180    90  top   
+U1-8-0      "TO220"         "unknown" 4407.5  4180     90  top   
+U1-8-1      "TO220"         "unknown" 4407.5  5680     90  top   
+U1-8-2      "TO220"         "unknown" 4407.5  7180     90  top   
+U1-8-3      "TO220"         "unknown" 4407.5  8680     90  top   
+U1-8-4      "TO220"         "unknown" 4407.5  10180    90  top   
+U1-8-5      "TO220"         "unknown" 4407.5  11680    90  top   
+U1-8-6      "TO220"         "unknown" 4407.5  13180    90  top   
+U1-8-7      "TO220"         "unknown" 4407.5  14680    90  top   
+U1-8-8      "TO220"         "unknown" 4407.5  16180    90  top   
+U1-8-9      "TO220"         "unknown" 4407.5  17680    90  top   
+U1-8-10     "TO220"         "unknown" 4407.5  19180    90  top   
+U1-8-11     "TO220"         "unknown" 4407.5  20680    90  top   
+U1-8-12     "TO220"         "unknown" 4407.5  22180    90  top   
+U1-8-13     "TO220"         "unknown" 4407.5  23680    90  top   
+U1-8-14     "TO220"         "unknown" 4407.5  25180    90  top   
+U1-9-0      "TO220"         "unknown" 4907.5  4180     90  top   
+U1-9-1      "TO220"         "unknown" 4907.5  5680     90  top   
+U1-9-2      "TO220"         "unknown" 4907.5  7180     90  top   
+U1-9-3      "TO220"         "unknown" 4907.5  8680     90  top   
+U1-9-4      "TO220"         "unknown" 4907.5  10180    90  top   
+U1-9-5      "TO220"         "unknown" 4907.5  11680    90  top   
+U1-9-6      "TO220"         "unknown" 4907.5  13180    90  top   
+U1-9-7      "TO220"         "unknown" 4907.5  14680    90  top   
+U1-9-8      "TO220"         "unknown" 4907.5  16180    90  top   
+U1-9-9      "TO220"         "unknown" 4907.5  17680    90  top   
+U1-9-10     "TO220"         "unknown" 4907.5  19180    90  top   
+U1-9-11     "TO220"         "unknown" 4907.5  20680    90  top   
+U1-9-12     "TO220"         "unknown" 4907.5  22180    90  top   
+U1-9-13     "TO220"         "unknown" 4907.5  23680    90  top   
+U1-9-14     "TO220"         "unknown" 4907.5  25180    90  top   
+U1-10-0     "TO220"         "unknown" 5407.5  4180     90  top   
+U1-10-1     "TO220"         "unknown" 5407.5  5680     90  top   
+U1-10-2     "TO220"         "unknown" 5407.5  7180     90  top   
+U1-10-3     "TO220"         "unknown" 5407.5  8680     90  top   
+U1-10-4     "TO220"         "unknown" 5407.5  10180    90  top   
+U1-10-5     "TO220"         "unknown" 5407.5  11680    90  top   
+U1-10-6     "TO220"         "unknown" 5407.5  13180    90  top   
+U1-10-7     "TO220"         "unknown" 5407.5  14680    90  top   
+U1-10-8     "TO220"         "unknown" 5407.5  16180    90  top   
+U1-10-9     "TO220"         "unknown" 5407.5  17680    90  top   
+U1-10-10    "TO220"         "unknown" 5407.5  19180    90  top   
+U1-10-11    "TO220"         "unknown" 5407.5  20680    90  top   
+U1-10-12    "TO220"         "unknown" 5407.5  22180    90  top   
+U1-10-13    "TO220"         "unknown" 5407.5  23680    90  top   
+U1-10-14    "TO220"         "unknown" 5407.5  25180    90  top   
+U1-11-0     "TO220"         "unknown" 5907.5  4180     90  top   
+U1-11-1     "TO220"         "unknown" 5907.5  5680     90  top   
+U1-11-2     "TO220"         "unknown" 5907.5  7180     90  top   
+U1-11-3     "TO220"         "unknown" 5907.5  8680     90  top   
+U1-11-4     "TO220"         "unknown" 5907.5  10180    90  top   
+U1-11-5     "TO220"         "unknown" 5907.5  11680    90  top   
+U1-11-6     "TO220"         "unknown" 5907.5  13180    90  top   
+U1-11-7     "TO220"         "unknown" 5907.5  14680    90  top   
+U1-11-8     "TO220"         "unknown" 5907.5  16180    90  top   
+U1-11-9     "TO220"         "unknown" 5907.5  17680    90  top   
+U1-11-10    "TO220"         "unknown" 5907.5  19180    90  top   
+U1-11-11    "TO220"         "unknown" 5907.5  20680    90  top   
+U1-11-12    "TO220"         "unknown" 5907.5  22180    90  top   
+U1-11-13    "TO220"         "unknown" 5907.5  23680    90  top   
+U1-11-14    "TO220"         "unknown" 5907.5  25180    90  top   
+U1-12-0     "TO220"         "unknown" 6407.5  4180     90  top   
+U1-12-1     "TO220"         "unknown" 6407.5  5680     90  top   
+U1-12-2     "TO220"         "unknown" 6407.5  7180     90  top   
+U1-12-3     "TO220"         "unknown" 6407.5  8680     90  top   
+U1-12-4     "TO220"         "unknown" 6407.5  10180    90  top   
+U1-12-5     "TO220"         "unknown" 6407.5  11680    90  top   
+U1-12-6     "TO220"         "unknown" 6407.5  13180    90  top   
+U1-12-7     "TO220"         "unknown" 6407.5  14680    90  top   
+U1-12-8     "TO220"         "unknown" 6407.5  16180    90  top   
+U1-12-9     "TO220"         "unknown" 6407.5  17680    90  top   
+U1-12-10    "TO220"         "unknown" 6407.5  19180    90  top   
+U1-12-11    "TO220"         "unknown" 6407.5  20680    90  top   
+U1-12-12    "TO220"         "unknown" 6407.5  22180    90  top   
+U1-12-13    "TO220"         "unknown" 6407.5  23680    90  top   
+U1-12-14    "TO220"         "unknown" 6407.5  25180    90  top   
+U1-13-0     "TO220"         "unknown" 6907.5  4180     90  top   
+U1-13-1     "TO220"         "unknown" 6907.5  5680     90  top   
+U1-13-2     "TO220"         "unknown" 6907.5  7180     90  top   
+U1-13-3     "TO220"         "unknown" 6907.5  8680     90  top   
+U1-13-4     "TO220"         "unknown" 6907.5  10180    90  top   
+U1-13-5     "TO220"         "unknown" 6907.5  11680    90  top   
+U1-13-6     "TO220"         "unknown" 6907.5  13180    90  top   
+U1-13-7     "TO220"         "unknown" 6907.5  14680    90  top   
+U1-13-8     "TO220"         "unknown" 6907.5  16180    90  top   
+U1-13-9     "TO220"         "unknown" 6907.5  17680    90  top   
+U1-13-10    "TO220"         "unknown" 6907.5  19180    90  top   
+U1-13-11    "TO220"         "unknown" 6907.5  20680    90  top   
+U1-13-12    "TO220"         "unknown" 6907.5  22180    90  top   
+U1-13-13    "TO220"         "unknown" 6907.5  23680    90  top   
+U1-13-14    "TO220"         "unknown" 6907.5  25180    90  top   
+U1-14-0     "TO220"         "unknown" 7407.5  4180     90  top   
+U1-14-1     "TO220"         "unknown" 7407.5  5680     90  top   
+U1-14-2     "TO220"         "unknown" 7407.5  7180     90  top   
+U1-14-3     "TO220"         "unknown" 7407.5  8680     90  top   
+U1-14-4     "TO220"         "unknown" 7407.5  10180    90  top   
+U1-14-5     "TO220"         "unknown" 7407.5  11680    90  top   
+U1-14-6     "TO220"         "unknown" 7407.5  13180    90  top   
+U1-14-7     "TO220"         "unknown" 7407.5  14680    90  top   
+U1-14-8     "TO220"         "unknown" 7407.5  16180    90  top   
+U1-14-9     "TO220"         "unknown" 7407.5  17680    90  top   
+U1-14-10    "TO220"         "unknown" 7407.5  19180    90  top   
+U1-14-11    "TO220"         "unknown" 7407.5  20680    90  top   
+U1-14-12    "TO220"         "unknown" 7407.5  22180    90  top   
+U1-14-13    "TO220"         "unknown" 7407.5  23680    90  top   
+U1-14-14    "TO220"         "unknown" 7407.5  25180    90  top   
+R9-0-0      "1206"          "1k"      1875.00 3350.00  90  bottom
+R9-0-1      "1206"          "1k"      1875    4850     90  bottom
+R9-0-2      "1206"          "1k"      1875    6350     90  bottom
+R9-0-3      "1206"          "1k"      1875    7850     90  bottom
+R9-0-4      "1206"          "1k"      1875    9350     90  bottom
+R9-0-5      "1206"          "1k"      1875    10850    90  bottom
+R9-0-6      "1206"          "1k"      1875    12350    90  bottom
+R9-0-7      "1206"          "1k"      1875    13850    90  bottom
+R9-0-8      "1206"          "1k"      1875    15350    90  bottom
+R9-0-9      "1206"          "1k"      1875    16850    90  bottom
+R9-0-10     "1206"          "1k"      1875    18350    90  bottom
+R9-0-11     "1206"          "1k"      1875    19850    90  bottom
+R9-0-12     "1206"          "1k"      1875    21350    90  bottom
+R9-0-13     "1206"          "1k"      1875    22850    90  bottom
+R9-0-14     "1206"          "1k"      1875    24350    90  bottom
+R9-1-0      "1206"          "1k"      2375    3350     90  bottom
+R9-1-1      "1206"          "1k"      2375    4850     90  bottom
+R9-1-2      "1206"          "1k"      2375    6350     90  bottom
+R9-1-3      "1206"          "1k"      2375    7850     90  bottom
+R9-1-4      "1206"          "1k"      2375    9350     90  bottom
+R9-1-5      "1206"          "1k"      2375    10850    90  bottom
+R9-1-6      "1206"          "1k"      2375    12350    90  bottom
+R9-1-7      "1206"          "1k"      2375    13850    90  bottom
+R9-1-8      "1206"          "1k"      2375    15350    90  bottom
+R9-1-9      "1206"          "1k"      2375    16850    90  bottom
+R9-1-10     "1206"          "1k"      2375    18350    90  bottom
+R9-1-11     "1206"          "1k"      2375    19850    90  bottom
+R9-1-12     "1206"          "1k"      2375    21350    90  bottom
+R9-1-13     "1206"          "1k"      2375    22850    90  bottom
+R9-1-14     "1206"          "1k"      2375    24350    90  bottom
+R9-2-0      "1206"          "1k"      2875    3350     90  bottom
+R9-2-1      "1206"          "1k"      2875    4850     90  bottom
+R9-2-2      "1206"          "1k"      2875    6350     90  bottom
+R9-2-3      "1206"          "1k"      2875    7850     90  bottom
+R9-2-4      "1206"          "1k"      2875    9350     90  bottom
+R9-2-5      "1206"          "1k"      2875    10850    90  bottom
+R9-2-6      "1206"          "1k"      2875    12350    90  bottom
+R9-2-7      "1206"          "1k"      2875    13850    90  bottom
+R9-2-8      "1206"          "1k"      2875    15350    90  bottom
+R9-2-9      "1206"          "1k"      2875    16850    90  bottom
+R9-2-10     "1206"          "1k"      2875    18350    90  bottom
+R9-2-11     "1206"          "1k"      2875    19850    90  bottom
+R9-2-12     "1206"          "1k"      2875    21350    90  bottom
+R9-2-13     "1206"          "1k"      2875    22850    90  bottom
+R9-2-14     "1206"          "1k"      2875    24350    90  bottom
+R9-3-0      "1206"          "1k"      3375    3350     90  bottom
+R9-3-1      "1206"          "1k"      3375    4850     90  bottom
+R9-3-2      "1206"          "1k"      3375    6350     90  bottom
+R9-3-3      "1206"          "1k"      3375    7850     90  bottom
+R9-3-4      "1206"          "1k"      3375    9350     90  bottom
+R9-3-5      "1206"          "1k"      3375    10850    90  bottom
+R9-3-6      "1206"          "1k"      3375    12350    90  bottom
+R9-3-7      "1206"          "1k"      3375    13850    90  bottom
+R9-3-8      "1206"          "1k"      3375    15350    90  bottom
+R9-3-9      "1206"          "1k"      3375    16850    90  bottom
+R9-3-10     "1206"          "1k"      3375    18350    90  bottom
+R9-3-11     "1206"          "1k"      3375    19850    90  bottom
+R9-3-12     "1206"          "1k"      3375    21350    90  bottom
+R9-3-13     "1206"          "1k"      3375    22850    90  bottom
+R9-3-14     "1206"          "1k"      3375    24350    90  bottom
+R9-4-0      "1206"          "1k"      3875    3350     90  bottom
+R9-4-1      "1206"          "1k"      3875    4850     90  bottom
+R9-4-2      "1206"          "1k"      3875    6350     90  bottom
+R9-4-3      "1206"          "1k"      3875    7850     90  bottom
+R9-4-4      "1206"          "1k"      3875    9350     90  bottom
+R9-4-5      "1206"          "1k"      3875    10850    90  bottom
+R9-4-6      "1206"          "1k"      3875    12350    90  bottom
+R9-4-7      "1206"          "1k"      3875    13850    90  bottom
+R9-4-8      "1206"          "1k"      3875    15350    90  bottom
+R9-4-9      "1206"          "1k"      3875    16850    90  bottom
+R9-4-10     "1206"          "1k"      3875    18350    90  bottom
+R9-4-11     "1206"          "1k"      3875    19850    90  bottom
+R9-4-12     "1206"          "1k"      3875    21350    90  bottom
+R9-4-13     "1206"          "1k"      3875    22850    90  bottom
+R9-4-14     "1206"          "1k"      3875    24350    90  bottom
+R9-5-0      "1206"          "1k"      4375    3350     90  bottom
+R9-5-1      "1206"          "1k"      4375    4850     90  bottom
+R9-5-2      "1206"          "1k"      4375    6350     90  bottom
+R9-5-3      "1206"          "1k"      4375    7850     90  bottom
+R9-5-4      "1206"          "1k"      4375    9350     90  bottom
+R9-5-5      "1206"          "1k"      4375    10850    90  bottom
+R9-5-6      "1206"          "1k"      4375    12350    90  bottom
+R9-5-7      "1206"          "1k"      4375    13850    90  bottom
+R9-5-8      "1206"          "1k"      4375    15350    90  bottom
+R9-5-9      "1206"          "1k"      4375    16850    90  bottom
+R9-5-10     "1206"          "1k"      4375    18350    90  bottom
+R9-5-11     "1206"          "1k"      4375    19850    90  bottom
+R9-5-12     "1206"          "1k"      4375    21350    90  bottom
+R9-5-13     "1206"          "1k"      4375    22850    90  bottom
+R9-5-14     "1206"          "1k"      4375    24350    90  bottom
+R9-6-0      "1206"          "1k"      4875    3350     90  bottom
+R9-6-1      "1206"          "1k"      4875    4850     90  bottom
+R9-6-2      "1206"          "1k"      4875    6350     90  bottom
+R9-6-3      "1206"          "1k"      4875    7850     90  bottom
+R9-6-4      "1206"          "1k"      4875    9350     90  bottom
+R9-6-5      "1206"          "1k"      4875    10850    90  bottom
+R9-6-6      "1206"          "1k"      4875    12350    90  bottom
+R9-6-7      "1206"          "1k"      4875    13850    90  bottom
+R9-6-8      "1206"          "1k"      4875    15350    90  bottom
+R9-6-9      "1206"          "1k"      4875    16850    90  bottom
+R9-6-10     "1206"          "1k"      4875    18350    90  bottom
+R9-6-11     "1206"          "1k"      4875    19850    90  bottom
+R9-6-12     "1206"          "1k"      4875    21350    90  bottom
+R9-6-13     "1206"          "1k"      4875    22850    90  bottom
+R9-6-14     "1206"          "1k"      4875    24350    90  bottom
+R9-7-0      "1206"          "1k"      5375    3350     90  bottom
+R9-7-1      "1206"          "1k"      5375    4850     90  bottom
+R9-7-2      "1206"          "1k"      5375    6350     90  bottom
+R9-7-3      "1206"          "1k"      5375    7850     90  bottom
+R9-7-4      "1206"          "1k"      5375    9350     90  bottom
+R9-7-5      "1206"          "1k"      5375    10850    90  bottom
+R9-7-6      "1206"          "1k"      5375    12350    90  bottom
+R9-7-7      "1206"          "1k"      5375    13850    90  bottom
+R9-7-8      "1206"          "1k"      5375    15350    90  bottom
+R9-7-9      "1206"          "1k"      5375    16850    90  bottom
+R9-7-10     "1206"          "1k"      5375    18350    90  bottom
+R9-7-11     "1206"          "1k"      5375    19850    90  bottom
+R9-7-12     "1206"          "1k"      5375    21350    90  bottom
+R9-7-13     "1206"          "1k"      5375    22850    90  bottom
+R9-7-14     "1206"          "1k"      5375    24350    90  bottom
+R9-8-0      "1206"          "1k"      5875    3350     90  bottom
+R9-8-1      "1206"          "1k"      5875    4850     90  bottom
+R9-8-2      "1206"          "1k"      5875    6350     90  bottom
+R9-8-3      "1206"          "1k"      5875    7850     90  bottom
+R9-8-4      "1206"          "1k"      5875    9350     90  bottom
+R9-8-5      "1206"          "1k"      5875    10850    90  bottom
+R9-8-6      "1206"          "1k"      5875    12350    90  bottom
+R9-8-7      "1206"          "1k"      5875    13850    90  bottom
+R9-8-8      "1206"          "1k"      5875    15350    90  bottom
+R9-8-9      "1206"          "1k"      5875    16850    90  bottom
+R9-8-10     "1206"          "1k"      5875    18350    90  bottom
+R9-8-11     "1206"          "1k"      5875    19850    90  bottom
+R9-8-12     "1206"          "1k"      5875    21350    90  bottom
+R9-8-13     "1206"          "1k"      5875    22850    90  bottom
+R9-8-14     "1206"          "1k"      5875    24350    90  bottom
+R9-9-0      "1206"          "1k"      6375    3350     90  bottom
+R9-9-1      "1206"          "1k"      6375    4850     90  bottom
+R9-9-2      "1206"          "1k"      6375    6350     90  bottom
+R9-9-3      "1206"          "1k"      6375    7850     90  bottom
+R9-9-4      "1206"          "1k"      6375    9350     90  bottom
+R9-9-5      "1206"          "1k"      6375    10850    90  bottom
+R9-9-6      "1206"          "1k"      6375    12350    90  bottom
+R9-9-7      "1206"          "1k"      6375    13850    90  bottom
+R9-9-8      "1206"          "1k"      6375    15350    90  bottom
+R9-9-9      "1206"          "1k"      6375    16850    90  bottom
+R9-9-10     "1206"          "1k"      6375    18350    90  bottom
+R9-9-11     "1206"          "1k"      6375    19850    90  bottom
+R9-9-12     "1206"          "1k"      6375    21350    90  bottom
+R9-9-13     "1206"          "1k"      6375    22850    90  bottom
+R9-9-14     "1206"          "1k"      6375    24350    90  bottom
+R9-10-0     "1206"          "1k"      6875    3350     90  bottom
+R9-10-1     "1206"          "1k"      6875    4850     90  bottom
+R9-10-2     "1206"          "1k"      6875    6350     90  bottom
+R9-10-3     "1206"          "1k"      6875    7850     90  bottom
+R9-10-4     "1206"          "1k"      6875    9350     90  bottom
+R9-10-5     "1206"          "1k"      6875    10850    90  bottom
+R9-10-6     "1206"          "1k"      6875    12350    90  bottom
+R9-10-7     "1206"          "1k"      6875    13850    90  bottom
+R9-10-8     "1206"          "1k"      6875    15350    90  bottom
+R9-10-9     "1206"          "1k"      6875    16850    90  bottom
+R9-10-10    "1206"          "1k"      6875    18350    90  bottom
+R9-10-11    "1206"          "1k"      6875    19850    90  bottom
+R9-10-12    "1206"          "1k"      6875    21350    90  bottom
+R9-10-13    "1206"          "1k"      6875    22850    90  bottom
+R9-10-14    "1206"          "1k"      6875    24350    90  bottom
+R9-11-0     "1206"          "1k"      7375    3350     90  bottom
+R9-11-1     "1206"          "1k"      7375    4850     90  bottom
+R9-11-2     "1206"          "1k"      7375    6350     90  bottom
+R9-11-3     "1206"          "1k"      7375    7850     90  bottom
+R9-11-4     "1206"          "1k"      7375    9350     90  bottom
+R9-11-5     "1206"          "1k"      7375    10850    90  bottom
+R9-11-6     "1206"          "1k"      7375    12350    90  bottom
+R9-11-7     "1206"          "1k"      7375    13850    90  bottom
+R9-11-8     "1206"          "1k"      7375    15350    90  bottom
+R9-11-9     "1206"          "1k"      7375    16850    90  bottom
+R9-11-10    "1206"          "1k"      7375    18350    90  bottom
+R9-11-11    "1206"          "1k"      7375    19850    90  bottom
+R9-11-12    "1206"          "1k"      7375    21350    90  bottom
+R9-11-13    "1206"          "1k"      7375    22850    90  bottom
+R9-11-14    "1206"          "1k"      7375    24350    90  bottom
+R9-12-0     "1206"          "1k"      7875    3350     90  bottom
+R9-12-1     "1206"          "1k"      7875    4850     90  bottom
+R9-12-2     "1206"          "1k"      7875    6350     90  bottom
+R9-12-3     "1206"          "1k"      7875    7850     90  bottom
+R9-12-4     "1206"          "1k"      7875    9350     90  bottom
+R9-12-5     "1206"          "1k"      7875    10850    90  bottom
+R9-12-6     "1206"          "1k"      7875    12350    90  bottom
+R9-12-7     "1206"          "1k"      7875    13850    90  bottom
+R9-12-8     "1206"          "1k"      7875    15350    90  bottom
+R9-12-9     "1206"          "1k"      7875    16850    90  bottom
+R9-12-10    "1206"          "1k"      7875    18350    90  bottom
+R9-12-11    "1206"          "1k"      7875    19850    90  bottom
+R9-12-12    "1206"          "1k"      7875    21350    90  bottom
+R9-12-13    "1206"          "1k"      7875    22850    90  bottom
+R9-12-14    "1206"          "1k"      7875    24350    90  bottom
+R9-13-0     "1206"          "1k"      8375    3350     90  bottom
+R9-13-1     "1206"          "1k"      8375    4850     90  bottom
+R9-13-2     "1206"          "1k"      8375    6350     90  bottom
+R9-13-3     "1206"          "1k"      8375    7850     90  bottom
+R9-13-4     "1206"          "1k"      8375    9350     90  bottom
+R9-13-5     "1206"          "1k"      8375    10850    90  bottom
+R9-13-6     "1206"          "1k"      8375    12350    90  bottom
+R9-13-7     "1206"          "1k"      8375    13850    90  bottom
+R9-13-8     "1206"          "1k"      8375    15350    90  bottom
+R9-13-9     "1206"          "1k"      8375    16850    90  bottom
+R9-13-10    "1206"          "1k"      8375    18350    90  bottom
+R9-13-11    "1206"          "1k"      8375    19850    90  bottom
+R9-13-12    "1206"          "1k"      8375    21350    90  bottom
+R9-13-13    "1206"          "1k"      8375    22850    90  bottom
+R9-13-14    "1206"          "1k"      8375    24350    90  bottom
+R9-14-0     "1206"          "1k"      8875    3350     90  bottom
+R9-14-1     "1206"          "1k"      8875    4850     90  bottom
+R9-14-2     "1206"          "1k"      8875    6350     90  bottom
+R9-14-3     "1206"          "1k"      8875    7850     90  bottom
+R9-14-4     "1206"          "1k"      8875    9350     90  bottom
+R9-14-5     "1206"          "1k"      8875    10850    90  bottom
+R9-14-6     "1206"          "1k"      8875    12350    90  bottom
+R9-14-7     "1206"          "1k"      8875    13850    90  bottom
+R9-14-8     "1206"          "1k"      8875    15350    90  bottom
+R9-14-9     "1206"          "1k"      8875    16850    90  bottom
+R9-14-10    "1206"          "1k"      8875    18350    90  bottom
+R9-14-11    "1206"          "1k"      8875    19850    90  bottom
+R9-14-12    "1206"          "1k"      8875    21350    90  bottom
+R9-14-13    "1206"          "1k"      8875    22850    90  bottom
+R9-14-14    "1206"          "1k"      8875    24350    90  bottom
+R10-0-0     "1206"          "1k"      1550.00 3300.00  0   bottom
+R10-0-1     "1206"          "1k"      1550    4800     0   bottom
+R10-0-2     "1206"          "1k"      1550    6300     0   bottom
+R10-0-3     "1206"          "1k"      1550    7800     0   bottom
+R10-0-4     "1206"          "1k"      1550    9300     0   bottom
+R10-0-5     "1206"          "1k"      1550    10800    0   bottom
+R10-0-6     "1206"          "1k"      1550    12300    0   bottom
+R10-0-7     "1206"          "1k"      1550    13800    0   bottom
+R10-0-8     "1206"          "1k"      1550    15300    0   bottom
+R10-0-9     "1206"          "1k"      1550    16800    0   bottom
+R10-0-10    "1206"          "1k"      1550    18300    0   bottom
+R10-0-11    "1206"          "1k"      1550    19800    0   bottom
+R10-0-12    "1206"          "1k"      1550    21300    0   bottom
+R10-0-13    "1206"          "1k"      1550    22800    0   bottom
+R10-0-14    "1206"          "1k"      1550    24300    0   bottom
+R10-1-0     "1206"          "1k"      2050    3300     0   bottom
+R10-1-1     "1206"          "1k"      2050    4800     0   bottom
+R10-1-2     "1206"          "1k"      2050    6300     0   bottom
+R10-1-3     "1206"          "1k"      2050    7800     0   bottom
+R10-1-4     "1206"          "1k"      2050    9300     0   bottom
+R10-1-5     "1206"          "1k"      2050    10800    0   bottom
+R10-1-6     "1206"          "1k"      2050    12300    0   bottom
+R10-1-7     "1206"          "1k"      2050    13800    0   bottom
+R10-1-8     "1206"          "1k"      2050    15300    0   bottom
+R10-1-9     "1206"          "1k"      2050    16800    0   bottom
+R10-1-10    "1206"          "1k"      2050    18300    0   bottom
+R10-1-11    "1206"          "1k"      2050    19800    0   bottom
+R10-1-12    "1206"          "1k"      2050    21300    0   bottom
+R10-1-13    "1206"          "1k"      2050    22800    0   bottom
+R10-1-14    "1206"          "1k"      2050    24300    0   bottom
+R10-2-0     "1206"          "1k"      2550    3300     0   bottom
+R10-2-1     "1206"          "1k"      2550    4800     0   bottom
+R10-2-2     "1206"          "1k"      2550    6300     0   bottom
+R10-2-3     "1206"          "1k"      2550    7800     0   bottom
+R10-2-4     "1206"          "1k"      2550    9300     0   bottom
+R10-2-5     "1206"          "1k"      2550    10800    0   bottom
+R10-2-6     "1206"          "1k"      2550    12300    0   bottom
+R10-2-7     "1206"          "1k"      2550    13800    0   bottom
+R10-2-8     "1206"          "1k"      2550    15300    0   bottom
+R10-2-9     "1206"          "1k"      2550    16800    0   bottom
+R10-2-10    "1206"          "1k"      2550    18300    0   bottom
+R10-2-11    "1206"          "1k"      2550    19800    0   bottom
+R10-2-12    "1206"          "1k"      2550    21300    0   bottom
+R10-2-13    "1206"          "1k"      2550    22800    0   bottom
+R10-2-14    "1206"          "1k"      2550    24300    0   bottom
+R10-3-0     "1206"          "1k"      3050    3300     0   bottom
+R10-3-1     "1206"          "1k"      3050    4800     0   bottom
+R10-3-2     "1206"          "1k"      3050    6300     0   bottom
+R10-3-3     "1206"          "1k"      3050    7800     0   bottom
+R10-3-4     "1206"          "1k"      3050    9300     0   bottom
+R10-3-5     "1206"          "1k"      3050    10800    0   bottom
+R10-3-6     "1206"          "1k"      3050    12300    0   bottom
+R10-3-7     "1206"          "1k"      3050    13800    0   bottom
+R10-3-8     "1206"          "1k"      3050    15300    0   bottom
+R10-3-9     "1206"          "1k"      3050    16800    0   bottom
+R10-3-10    "1206"          "1k"      3050    18300    0   bottom
+R10-3-11    "1206"          "1k"      3050    19800    0   bottom
+R10-3-12    "1206"          "1k"      3050    21300    0   bottom
+R10-3-13    "1206"          "1k"      3050    22800    0   bottom
+R10-3-14    "1206"          "1k"      3050    24300    0   bottom
+R10-4-0     "1206"          "1k"      3550    3300     0   bottom
+R10-4-1     "1206"          "1k"      3550    4800     0   bottom
+R10-4-2     "1206"          "1k"      3550    6300     0   bottom
+R10-4-3     "1206"          "1k"      3550    7800     0   bottom
+R10-4-4     "1206"          "1k"      3550    9300     0   bottom
+R10-4-5     "1206"          "1k"      3550    10800    0   bottom
+R10-4-6     "1206"          "1k"      3550    12300    0   bottom
+R10-4-7     "1206"          "1k"      3550    13800    0   bottom
+R10-4-8     "1206"          "1k"      3550    15300    0   bottom
+R10-4-9     "1206"          "1k"      3550    16800    0   bottom
+R10-4-10    "1206"          "1k"      3550    18300    0   bottom
+R10-4-11    "1206"          "1k"      3550    19800    0   bottom
+R10-4-12    "1206"          "1k"      3550    21300    0   bottom
+R10-4-13    "1206"          "1k"      3550    22800    0   bottom
+R10-4-14    "1206"          "1k"      3550    24300    0   bottom
+R10-5-0     "1206"          "1k"      4050    3300     0   bottom
+R10-5-1     "1206"          "1k"      4050    4800     0   bottom
+R10-5-2     "1206"          "1k"      4050    6300     0   bottom
+R10-5-3     "1206"          "1k"      4050    7800     0   bottom
+R10-5-4     "1206"          "1k"      4050    9300     0   bottom
+R10-5-5     "1206"          "1k"      4050    10800    0   bottom
+R10-5-6     "1206"          "1k"      4050    12300    0   bottom
+R10-5-7     "1206"          "1k"      4050    13800    0   bottom
+R10-5-8     "1206"          "1k"      4050    15300    0   bottom
+R10-5-9     "1206"          "1k"      4050    16800    0   bottom
+R10-5-10    "1206"          "1k"      4050    18300    0   bottom
+R10-5-11    "1206"          "1k"      4050    19800    0   bottom
+R10-5-12    "1206"          "1k"      4050    21300    0   bottom
+R10-5-13    "1206"          "1k"      4050    22800    0   bottom
+R10-5-14    "1206"          "1k"      4050    24300    0   bottom
+R10-6-0     "1206"          "1k"      4550    3300     0   bottom
+R10-6-1     "1206"          "1k"      4550    4800     0   bottom
+R10-6-2     "1206"          "1k"      4550    6300     0   bottom
+R10-6-3     "1206"          "1k"      4550    7800     0   bottom
+R10-6-4     "1206"          "1k"      4550    9300     0   bottom
+R10-6-5     "1206"          "1k"      4550    10800    0   bottom
+R10-6-6     "1206"          "1k"      4550    12300    0   bottom
+R10-6-7     "1206"          "1k"      4550    13800    0   bottom
+R10-6-8     "1206"          "1k"      4550    15300    0   bottom
+R10-6-9     "1206"          "1k"      4550    16800    0   bottom
+R10-6-10    "1206"          "1k"      4550    18300    0   bottom
+R10-6-11    "1206"          "1k"      4550    19800    0   bottom
+R10-6-12    "1206"          "1k"      4550    21300    0   bottom
+R10-6-13    "1206"          "1k"      4550    22800    0   bottom
+R10-6-14    "1206"          "1k"      4550    24300    0   bottom
+R10-7-0     "1206"          "1k"      5050    3300     0   bottom
+R10-7-1     "1206"          "1k"      5050    4800     0   bottom
+R10-7-2     "1206"          "1k"      5050    6300     0   bottom
+R10-7-3     "1206"          "1k"      5050    7800     0   bottom
+R10-7-4     "1206"          "1k"      5050    9300     0   bottom
+R10-7-5     "1206"          "1k"      5050    10800    0   bottom
+R10-7-6     "1206"          "1k"      5050    12300    0   bottom
+R10-7-7     "1206"          "1k"      5050    13800    0   bottom
+R10-7-8     "1206"          "1k"      5050    15300    0   bottom
+R10-7-9     "1206"          "1k"      5050    16800    0   bottom
+R10-7-10    "1206"          "1k"      5050    18300    0   bottom
+R10-7-11    "1206"          "1k"      5050    19800    0   bottom
+R10-7-12    "1206"          "1k"      5050    21300    0   bottom
+R10-7-13    "1206"          "1k"      5050    22800    0   bottom
+R10-7-14    "1206"          "1k"      5050    24300    0   bottom
+R10-8-0     "1206"          "1k"      5550    3300     0   bottom
+R10-8-1     "1206"          "1k"      5550    4800     0   bottom
+R10-8-2     "1206"          "1k"      5550    6300     0   bottom
+R10-8-3     "1206"          "1k"      5550    7800     0   bottom
+R10-8-4     "1206"          "1k"      5550    9300     0   bottom
+R10-8-5     "1206"          "1k"      5550    10800    0   bottom
+R10-8-6     "1206"          "1k"      5550    12300    0   bottom
+R10-8-7     "1206"          "1k"      5550    13800    0   bottom
+R10-8-8     "1206"          "1k"      5550    15300    0   bottom
+R10-8-9     "1206"          "1k"      5550    16800    0   bottom
+R10-8-10    "1206"          "1k"      5550    18300    0   bottom
+R10-8-11    "1206"          "1k"      5550    19800    0   bottom
+R10-8-12    "1206"          "1k"      5550    21300    0   bottom
+R10-8-13    "1206"          "1k"      5550    22800    0   bottom
+R10-8-14    "1206"          "1k"      5550    24300    0   bottom
+R10-9-0     "1206"          "1k"      6050    3300     0   bottom
+R10-9-1     "1206"          "1k"      6050    4800     0   bottom
+R10-9-2     "1206"          "1k"      6050    6300     0   bottom
+R10-9-3     "1206"          "1k"      6050    7800     0   bottom
+R10-9-4     "1206"          "1k"      6050    9300     0   bottom
+R10-9-5     "1206"          "1k"      6050    10800    0   bottom
+R10-9-6     "1206"          "1k"      6050    12300    0   bottom
+R10-9-7     "1206"          "1k"      6050    13800    0   bottom
+R10-9-8     "1206"          "1k"      6050    15300    0   bottom
+R10-9-9     "1206"          "1k"      6050    16800    0   bottom
+R10-9-10    "1206"          "1k"      6050    18300    0   bottom
+R10-9-11    "1206"          "1k"      6050    19800    0   bottom
+R10-9-12    "1206"          "1k"      6050    21300    0   bottom
+R10-9-13    "1206"          "1k"      6050    22800    0   bottom
+R10-9-14    "1206"          "1k"      6050    24300    0   bottom
+R10-10-0    "1206"          "1k"      6550    3300     0   bottom
+R10-10-1    "1206"          "1k"      6550    4800     0   bottom
+R10-10-2    "1206"          "1k"      6550    6300     0   bottom
+R10-10-3    "1206"          "1k"      6550    7800     0   bottom
+R10-10-4    "1206"          "1k"      6550    9300     0   bottom
+R10-10-5    "1206"          "1k"      6550    10800    0   bottom
+R10-10-6    "1206"          "1k"      6550    12300    0   bottom
+R10-10-7    "1206"          "1k"      6550    13800    0   bottom
+R10-10-8    "1206"          "1k"      6550    15300    0   bottom
+R10-10-9    "1206"          "1k"      6550    16800    0   bottom
+R10-10-10   "1206"          "1k"      6550    18300    0   bottom
+R10-10-11   "1206"          "1k"      6550    19800    0   bottom
+R10-10-12   "1206"          "1k"      6550    21300    0   bottom
+R10-10-13   "1206"          "1k"      6550    22800    0   bottom
+R10-10-14   "1206"          "1k"      6550    24300    0   bottom
+R10-11-0    "1206"          "1k"      7050    3300     0   bottom
+R10-11-1    "1206"          "1k"      7050    4800     0   bottom
+R10-11-2    "1206"          "1k"      7050    6300     0   bottom
+R10-11-3    "1206"          "1k"      7050    7800     0   bottom
+R10-11-4    "1206"          "1k"      7050    9300     0   bottom
+R10-11-5    "1206"          "1k"      7050    10800    0   bottom
+R10-11-6    "1206"          "1k"      7050    12300    0   bottom
+R10-11-7    "1206"          "1k"      7050    13800    0   bottom
+R10-11-8    "1206"          "1k"      7050    15300    0   bottom
+R10-11-9    "1206"          "1k"      7050    16800    0   bottom
+R10-11-10   "1206"          "1k"      7050    18300    0   bottom
+R10-11-11   "1206"          "1k"      7050    19800    0   bottom
+R10-11-12   "1206"          "1k"      7050    21300    0   bottom
+R10-11-13   "1206"          "1k"      7050    22800    0   bottom
+R10-11-14   "1206"          "1k"      7050    24300    0   bottom
+R10-12-0    "1206"          "1k"      7550    3300     0   bottom
+R10-12-1    "1206"          "1k"      7550    4800     0   bottom
+R10-12-2    "1206"          "1k"      7550    6300     0   bottom
+R10-12-3    "1206"          "1k"      7550    7800     0   bottom
+R10-12-4    "1206"          "1k"      7550    9300     0   bottom
+R10-12-5    "1206"          "1k"      7550    10800    0   bottom
+R10-12-6    "1206"          "1k"      7550    12300    0   bottom
+R10-12-7    "1206"          "1k"      7550    13800    0   bottom
+R10-12-8    "1206"          "1k"      7550    15300    0   bottom
+R10-12-9    "1206"          "1k"      7550    16800    0   bottom
+R10-12-10   "1206"          "1k"      7550    18300    0   bottom
+R10-12-11   "1206"          "1k"      7550    19800    0   bottom
+R10-12-12   "1206"          "1k"      7550    21300    0   bottom
+R10-12-13   "1206"          "1k"      7550    22800    0   bottom
+R10-12-14   "1206"          "1k"      7550    24300    0   bottom
+R10-13-0    "1206"          "1k"      8050    3300     0   bottom
+R10-13-1    "1206"          "1k"      8050    4800     0   bottom
+R10-13-2    "1206"          "1k"      8050    6300     0   bottom
+R10-13-3    "1206"          "1k"      8050    7800     0   bottom
+R10-13-4    "1206"          "1k"      8050    9300     0   bottom
+R10-13-5    "1206"          "1k"      8050    10800    0   bottom
+R10-13-6    "1206"          "1k"      8050    12300    0   bottom
+R10-13-7    "1206"          "1k"      8050    13800    0   bottom
+R10-13-8    "1206"          "1k"      8050    15300    0   bottom
+R10-13-9    "1206"          "1k"      8050    16800    0   bottom
+R10-13-10   "1206"          "1k"      8050    18300    0   bottom
+R10-13-11   "1206"          "1k"      8050    19800    0   bottom
+R10-13-12   "1206"          "1k"      8050    21300    0   bottom
+R10-13-13   "1206"          "1k"      8050    22800    0   bottom
+R10-13-14   "1206"          "1k"      8050    24300    0   bottom
+R10-14-0    "1206"          "1k"      8550    3300     0   bottom
+R10-14-1    "1206"          "1k"      8550    4800     0   bottom
+R10-14-2    "1206"          "1k"      8550    6300     0   bottom
+R10-14-3    "1206"          "1k"      8550    7800     0   bottom
+R10-14-4    "1206"          "1k"      8550    9300     0   bottom
+R10-14-5    "1206"          "1k"      8550    10800    0   bottom
+R10-14-6    "1206"          "1k"      8550    12300    0   bottom
+R10-14-7    "1206"          "1k"      8550    13800    0   bottom
+R10-14-8    "1206"          "1k"      8550    15300    0   bottom
+R10-14-9    "1206"          "1k"      8550    16800    0   bottom
+R10-14-10   "1206"          "1k"      8550    18300    0   bottom
+R10-14-11   "1206"          "1k"      8550    19800    0   bottom
+R10-14-12   "1206"          "1k"      8550    21300    0   bottom
+R10-14-13   "1206"          "1k"      8550    22800    0   bottom
+R10-14-14   "1206"          "1k"      8550    24300    0   bottom
+U3-0-0      "SO8"           "unknown" 1075.00 3525.00  270 bottom
+U3-0-1      "SO8"           "unknown" 1075    5025     270 bottom
+U3-0-2      "SO8"           "unknown" 1075    6525     270 bottom
+U3-0-3      "SO8"           "unknown" 1075    8025     270 bottom
+U3-0-4      "SO8"           "unknown" 1075    9525     270 bottom
+U3-0-5      "SO8"           "unknown" 1075    11025    270 bottom
+U3-0-6      "SO8"           "unknown" 1075    12525    270 bottom
+U3-0-7      "SO8"           "unknown" 1075    14025    270 bottom
+U3-0-8      "SO8"           "unknown" 1075    15525    270 bottom
+U3-0-9      "SO8"           "unknown" 1075    17025    270 bottom
+U3-0-10     "SO8"           "unknown" 1075    18525    270 bottom
+U3-0-11     "SO8"           "unknown" 1075    20025    270 bottom
+U3-0-12     "SO8"           "unknown" 1075    21525    270 bottom
+U3-0-13     "SO8"           "unknown" 1075    23025    270 bottom
+U3-0-14     "SO8"           "unknown" 1075    24525    270 bottom
+U3-1-0      "SO8"           "unknown" 1575    3525     270 bottom
+U3-1-1      "SO8"           "unknown" 1575    5025     270 bottom
+U3-1-2      "SO8"           "unknown" 1575    6525     270 bottom
+U3-1-3      "SO8"           "unknown" 1575    8025     270 bottom
+U3-1-4      "SO8"           "unknown" 1575    9525     270 bottom
+U3-1-5      "SO8"           "unknown" 1575    11025    270 bottom
+U3-1-6      "SO8"           "unknown" 1575    12525    270 bottom
+U3-1-7      "SO8"           "unknown" 1575    14025    270 bottom
+U3-1-8      "SO8"           "unknown" 1575    15525    270 bottom
+U3-1-9      "SO8"           "unknown" 1575    17025    270 bottom
+U3-1-10     "SO8"           "unknown" 1575    18525    270 bottom
+U3-1-11     "SO8"           "unknown" 1575    20025    270 bottom
+U3-1-12     "SO8"           "unknown" 1575    21525    270 bottom
+U3-1-13     "SO8"           "unknown" 1575    23025    270 bottom
+U3-1-14     "SO8"           "unknown" 1575    24525    270 bottom
+U3-2-0      "SO8"           "unknown" 2075    3525     270 bottom
+U3-2-1      "SO8"           "unknown" 2075    5025     270 bottom
+U3-2-2      "SO8"           "unknown" 2075    6525     270 bottom
+U3-2-3      "SO8"           "unknown" 2075    8025     270 bottom
+U3-2-4      "SO8"           "unknown" 2075    9525     270 bottom
+U3-2-5      "SO8"           "unknown" 2075    11025    270 bottom
+U3-2-6      "SO8"           "unknown" 2075    12525    270 bottom
+U3-2-7      "SO8"           "unknown" 2075    14025    270 bottom
+U3-2-8      "SO8"           "unknown" 2075    15525    270 bottom
+U3-2-9      "SO8"           "unknown" 2075    17025    270 bottom
+U3-2-10     "SO8"           "unknown" 2075    18525    270 bottom
+U3-2-11     "SO8"           "unknown" 2075    20025    270 bottom
+U3-2-12     "SO8"           "unknown" 2075    21525    270 bottom
+U3-2-13     "SO8"           "unknown" 2075    23025    270 bottom
+U3-2-14     "SO8"           "unknown" 2075    24525    270 bottom
+U3-3-0      "SO8"           "unknown" 2575    3525     270 bottom
+U3-3-1      "SO8"           "unknown" 2575    5025     270 bottom
+U3-3-2      "SO8"           "unknown" 2575    6525     270 bottom
+U3-3-3      "SO8"           "unknown" 2575    8025     270 bottom
+U3-3-4      "SO8"           "unknown" 2575    9525     270 bottom
+U3-3-5      "SO8"           "unknown" 2575    11025    270 bottom
+U3-3-6      "SO8"           "unknown" 2575    12525    270 bottom
+U3-3-7      "SO8"           "unknown" 2575    14025    270 bottom
+U3-3-8      "SO8"           "unknown" 2575    15525    270 bottom
+U3-3-9      "SO8"           "unknown" 2575    17025    270 bottom
+U3-3-10     "SO8"           "unknown" 2575    18525    270 bottom
+U3-3-11     "SO8"           "unknown" 2575    20025    270 bottom
+U3-3-12     "SO8"           "unknown" 2575    21525    270 bottom
+U3-3-13     "SO8"           "unknown" 2575    23025    270 bottom
+U3-3-14     "SO8"           "unknown" 2575    24525    270 bottom
+U3-4-0      "SO8"           "unknown" 3075    3525     270 bottom
+U3-4-1      "SO8"           "unknown" 3075    5025     270 bottom
+U3-4-2      "SO8"           "unknown" 3075    6525     270 bottom
+U3-4-3      "SO8"           "unknown" 3075    8025     270 bottom
+U3-4-4      "SO8"           "unknown" 3075    9525     270 bottom
+U3-4-5      "SO8"           "unknown" 3075    11025    270 bottom
+U3-4-6      "SO8"           "unknown" 3075    12525    270 bottom
+U3-4-7      "SO8"           "unknown" 3075    14025    270 bottom
+U3-4-8      "SO8"           "unknown" 3075    15525    270 bottom
+U3-4-9      "SO8"           "unknown" 3075    17025    270 bottom
+U3-4-10     "SO8"           "unknown" 3075    18525    270 bottom
+U3-4-11     "SO8"           "unknown" 3075    20025    270 bottom
+U3-4-12     "SO8"           "unknown" 3075    21525    270 bottom
+U3-4-13     "SO8"           "unknown" 3075    23025    270 bottom
+U3-4-14     "SO8"           "unknown" 3075    24525    270 bottom
+U3-5-0      "SO8"           "unknown" 3575    3525     270 bottom
+U3-5-1      "SO8"           "unknown" 3575    5025     270 bottom
+U3-5-2      "SO8"           "unknown" 3575    6525     270 bottom
+U3-5-3      "SO8"           "unknown" 3575    8025     270 bottom
+U3-5-4      "SO8"           "unknown" 3575    9525     270 bottom
+U3-5-5      "SO8"           "unknown" 3575    11025    270 bottom
+U3-5-6      "SO8"           "unknown" 3575    12525    270 bottom
+U3-5-7      "SO8"           "unknown" 3575    14025    270 bottom
+U3-5-8      "SO8"           "unknown" 3575    15525    270 bottom
+U3-5-9      "SO8"           "unknown" 3575    17025    270 bottom
+U3-5-10     "SO8"           "unknown" 3575    18525    270 bottom
+U3-5-11     "SO8"           "unknown" 3575    20025    270 bottom
+U3-5-12     "SO8"           "unknown" 3575    21525    270 bottom
+U3-5-13     "SO8"           "unknown" 3575    23025    270 bottom
+U3-5-14     "SO8"           "unknown" 3575    24525    270 bottom
+U3-6-0      "SO8"           "unknown" 4075    3525     270 bottom
+U3-6-1      "SO8"           "unknown" 4075    5025     270 bottom
+U3-6-2      "SO8"           "unknown" 4075    6525     270 bottom
+U3-6-3      "SO8"           "unknown" 4075    8025     270 bottom
+U3-6-4      "SO8"           "unknown" 4075    9525     270 bottom
+U3-6-5      "SO8"           "unknown" 4075    11025    270 bottom
+U3-6-6      "SO8"           "unknown" 4075    12525    270 bottom
+U3-6-7      "SO8"           "unknown" 4075    14025    270 bottom
+U3-6-8      "SO8"           "unknown" 4075    15525    270 bottom
+U3-6-9      "SO8"           "unknown" 4075    17025    270 bottom
+U3-6-10     "SO8"           "unknown" 4075    18525    270 bottom
+U3-6-11     "SO8"           "unknown" 4075    20025    270 bottom
+U3-6-12     "SO8"           "unknown" 4075    21525    270 bottom
+U3-6-13     "SO8"           "unknown" 4075    23025    270 bottom
+U3-6-14     "SO8"           "unknown" 4075    24525    270 bottom
+U3-7-0      "SO8"           "unknown" 4575    3525     270 bottom
+U3-7-1      "SO8"           "unknown" 4575    5025     270 bottom
+U3-7-2      "SO8"           "unknown" 4575    6525     270 bottom
+U3-7-3      "SO8"           "unknown" 4575    8025     270 bottom
+U3-7-4      "SO8"           "unknown" 4575    9525     270 bottom
+U3-7-5      "SO8"           "unknown" 4575    11025    270 bottom
+U3-7-6      "SO8"           "unknown" 4575    12525    270 bottom
+U3-7-7      "SO8"           "unknown" 4575    14025    270 bottom
+U3-7-8      "SO8"           "unknown" 4575    15525    270 bottom
+U3-7-9      "SO8"           "unknown" 4575    17025    270 bottom
+U3-7-10     "SO8"           "unknown" 4575    18525    270 bottom
+U3-7-11     "SO8"           "unknown" 4575    20025    270 bottom
+U3-7-12     "SO8"           "unknown" 4575    21525    270 bottom
+U3-7-13     "SO8"           "unknown" 4575    23025    270 bottom
+U3-7-14     "SO8"           "unknown" 4575    24525    270 bottom
+U3-8-0      "SO8"           "unknown" 5075    3525     270 bottom
+U3-8-1      "SO8"           "unknown" 5075    5025     270 bottom
+U3-8-2      "SO8"           "unknown" 5075    6525     270 bottom
+U3-8-3      "SO8"           "unknown" 5075    8025     270 bottom
+U3-8-4      "SO8"           "unknown" 5075    9525     270 bottom
+U3-8-5      "SO8"           "unknown" 5075    11025    270 bottom
+U3-8-6      "SO8"           "unknown" 5075    12525    270 bottom
+U3-8-7      "SO8"           "unknown" 5075    14025    270 bottom
+U3-8-8      "SO8"           "unknown" 5075    15525    270 bottom
+U3-8-9      "SO8"           "unknown" 5075    17025    270 bottom
+U3-8-10     "SO8"           "unknown" 5075    18525    270 bottom
+U3-8-11     "SO8"           "unknown" 5075    20025    270 bottom
+U3-8-12     "SO8"           "unknown" 5075    21525    270 bottom
+U3-8-13     "SO8"           "unknown" 5075    23025    270 bottom
+U3-8-14     "SO8"           "unknown" 5075    24525    270 bottom
+U3-9-0      "SO8"           "unknown" 5575    3525     270 bottom
+U3-9-1      "SO8"           "unknown" 5575    5025     270 bottom
+U3-9-2      "SO8"           "unknown" 5575    6525     270 bottom
+U3-9-3      "SO8"           "unknown" 5575    8025     270 bottom
+U3-9-4      "SO8"           "unknown" 5575    9525     270 bottom
+U3-9-5      "SO8"           "unknown" 5575    11025    270 bottom
+U3-9-6      "SO8"           "unknown" 5575    12525    270 bottom
+U3-9-7      "SO8"           "unknown" 5575    14025    270 bottom
+U3-9-8      "SO8"           "unknown" 5575    15525    270 bottom
+U3-9-9      "SO8"           "unknown" 5575    17025    270 bottom
+U3-9-10     "SO8"           "unknown" 5575    18525    270 bottom
+U3-9-11     "SO8"           "unknown" 5575    20025    270 bottom
+U3-9-12     "SO8"           "unknown" 5575    21525    270 bottom
+U3-9-13     "SO8"           "unknown" 5575    23025    270 bottom
+U3-9-14     "SO8"           "unknown" 5575    24525    270 bottom
+U3-10-0     "SO8"           "unknown" 6075    3525     270 bottom
+U3-10-1     "SO8"           "unknown" 6075    5025     270 bottom
+U3-10-2     "SO8"           "unknown" 6075    6525     270 bottom
+U3-10-3     "SO8"           "unknown" 6075    8025     270 bottom
+U3-10-4     "SO8"           "unknown" 6075    9525     270 bottom
+U3-10-5     "SO8"           "unknown" 6075    11025    270 bottom
+U3-10-6     "SO8"           "unknown" 6075    12525    270 bottom
+U3-10-7     "SO8"           "unknown" 6075    14025    270 bottom
+U3-10-8     "SO8"           "unknown" 6075    15525    270 bottom
+U3-10-9     "SO8"           "unknown" 6075    17025    270 bottom
+U3-10-10    "SO8"           "unknown" 6075    18525    270 bottom
+U3-10-11    "SO8"           "unknown" 6075    20025    270 bottom
+U3-10-12    "SO8"           "unknown" 6075    21525    270 bottom
+U3-10-13    "SO8"           "unknown" 6075    23025    270 bottom
+U3-10-14    "SO8"           "unknown" 6075    24525    270 bottom
+U3-11-0     "SO8"           "unknown" 6575    3525     270 bottom
+U3-11-1     "SO8"           "unknown" 6575    5025     270 bottom
+U3-11-2     "SO8"           "unknown" 6575    6525     270 bottom
+U3-11-3     "SO8"           "unknown" 6575    8025     270 bottom
+U3-11-4     "SO8"           "unknown" 6575    9525     270 bottom
+U3-11-5     "SO8"           "unknown" 6575    11025    270 bottom
+U3-11-6     "SO8"           "unknown" 6575    12525    270 bottom
+U3-11-7     "SO8"           "unknown" 6575    14025    270 bottom
+U3-11-8     "SO8"           "unknown" 6575    15525    270 bottom
+U3-11-9     "SO8"           "unknown" 6575    17025    270 bottom
+U3-11-10    "SO8"           "unknown" 6575    18525    270 bottom
+U3-11-11    "SO8"           "unknown" 6575    20025    270 bottom
+U3-11-12    "SO8"           "unknown" 6575    21525    270 bottom
+U3-11-13    "SO8"           "unknown" 6575    23025    270 bottom
+U3-11-14    "SO8"           "unknown" 6575    24525    270 bottom
+U3-12-0     "SO8"           "unknown" 7075    3525     270 bottom
+U3-12-1     "SO8"           "unknown" 7075    5025     270 bottom
+U3-12-2     "SO8"           "unknown" 7075    6525     270 bottom
+U3-12-3     "SO8"           "unknown" 7075    8025     270 bottom
+U3-12-4     "SO8"           "unknown" 7075    9525     270 bottom
+U3-12-5     "SO8"           "unknown" 7075    11025    270 bottom
+U3-12-6     "SO8"           "unknown" 7075    12525    270 bottom
+U3-12-7     "SO8"           "unknown" 7075    14025    270 bottom
+U3-12-8     "SO8"           "unknown" 7075    15525    270 bottom
+U3-12-9     "SO8"           "unknown" 7075    17025    270 bottom
+U3-12-10    "SO8"           "unknown" 7075    18525    270 bottom
+U3-12-11    "SO8"           "unknown" 7075    20025    270 bottom
+U3-12-12    "SO8"           "unknown" 7075    21525    270 bottom
+U3-12-13    "SO8"           "unknown" 7075    23025    270 bottom
+U3-12-14    "SO8"           "unknown" 7075    24525    270 bottom
+U3-13-0     "SO8"           "unknown" 7575    3525     270 bottom
+U3-13-1     "SO8"           "unknown" 7575    5025     270 bottom
+U3-13-2     "SO8"           "unknown" 7575    6525     270 bottom
+U3-13-3     "SO8"           "unknown" 7575    8025     270 bottom
+U3-13-4     "SO8"           "unknown" 7575    9525     270 bottom
+U3-13-5     "SO8"           "unknown" 7575    11025    270 bottom
+U3-13-6     "SO8"           "unknown" 7575    12525    270 bottom
+U3-13-7     "SO8"           "unknown" 7575    14025    270 bottom
+U3-13-8     "SO8"           "unknown" 7575    15525    270 bottom
+U3-13-9     "SO8"           "unknown" 7575    17025    270 bottom
+U3-13-10    "SO8"           "unknown" 7575    18525    270 bottom
+U3-13-11    "SO8"           "unknown" 7575    20025    270 bottom
+U3-13-12    "SO8"           "unknown" 7575    21525    270 bottom
+U3-13-13    "SO8"           "unknown" 7575    23025    270 bottom
+U3-13-14    "SO8"           "unknown" 7575    24525    270 bottom
+U3-14-0     "SO8"           "unknown" 8075    3525     270 bottom
+U3-14-1     "SO8"           "unknown" 8075    5025     270 bottom
+U3-14-2     "SO8"           "unknown" 8075    6525     270 bottom
+U3-14-3     "SO8"           "unknown" 8075    8025     270 bottom
+U3-14-4     "SO8"           "unknown" 8075    9525     270 bottom
+U3-14-5     "SO8"           "unknown" 8075    11025    270 bottom
+U3-14-6     "SO8"           "unknown" 8075    12525    270 bottom
+U3-14-7     "SO8"           "unknown" 8075    14025    270 bottom
+U3-14-8     "SO8"           "unknown" 8075    15525    270 bottom
+U3-14-9     "SO8"           "unknown" 8075    17025    270 bottom
+U3-14-10    "SO8"           "unknown" 8075    18525    270 bottom
+U3-14-11    "SO8"           "unknown" 8075    20025    270 bottom
+U3-14-12    "SO8"           "unknown" 8075    21525    270 bottom
+U3-14-13    "SO8"           "unknown" 8075    23025    270 bottom
+U3-14-14    "SO8"           "unknown" 8075    24525    270 bottom
+R11-0-0     "1206"          "10k"     1375.00 3300.00  180 bottom
+R11-0-1     "1206"          "10k"     1375    4800     180 bottom
+R11-0-2     "1206"          "10k"     1375    6300     180 bottom
+R11-0-3     "1206"          "10k"     1375    7800     180 bottom
+R11-0-4     "1206"          "10k"     1375    9300     180 bottom
+R11-0-5     "1206"          "10k"     1375    10800    180 bottom
+R11-0-6     "1206"          "10k"     1375    12300    180 bottom
+R11-0-7     "1206"          "10k"     1375    13800    180 bottom
+R11-0-8     "1206"          "10k"     1375    15300    180 bottom
+R11-0-9     "1206"          "10k"     1375    16800    180 bottom
+R11-0-10    "1206"          "10k"     1375    18300    180 bottom
+R11-0-11    "1206"          "10k"     1375    19800    180 bottom
+R11-0-12    "1206"          "10k"     1375    21300    180 bottom
+R11-0-13    "1206"          "10k"     1375    22800    180 bottom
+R11-0-14    "1206"          "10k"     1375    24300    180 bottom
+R11-1-0     "1206"          "10k"     1875    3300     180 bottom
+R11-1-1     "1206"          "10k"     1875    4800     180 bottom
+R11-1-2     "1206"          "10k"     1875    6300     180 bottom
+R11-1-3     "1206"          "10k"     1875    7800     180 bottom
+R11-1-4     "1206"          "10k"     1875    9300     180 bottom
+R11-1-5     "1206"          "10k"     1875    10800    180 bottom
+R11-1-6     "1206"          "10k"     1875    12300    180 bottom
+R11-1-7     "1206"          "10k"     1875    13800    180 bottom
+R11-1-8     "1206"          "10k"     1875    15300    180 bottom
+R11-1-9     "1206"          "10k"     1875    16800    180 bottom
+R11-1-10    "1206"          "10k"     1875    18300    180 bottom
+R11-1-11    "1206"          "10k"     1875    19800    180 bottom
+R11-1-12    "1206"          "10k"     1875    21300    180 bottom
+R11-1-13    "1206"          "10k"     1875    22800    180 bottom
+R11-1-14    "1206"          "10k"     1875    24300    180 bottom
+R11-2-0     "1206"          "10k"     2375    3300     180 bottom
+R11-2-1     "1206"          "10k"     2375    4800     180 bottom
+R11-2-2     "1206"          "10k"     2375    6300     180 bottom
+R11-2-3     "1206"          "10k"     2375    7800     180 bottom
+R11-2-4     "1206"          "10k"     2375    9300     180 bottom
+R11-2-5     "1206"          "10k"     2375    10800    180 bottom
+R11-2-6     "1206"          "10k"     2375    12300    180 bottom
+R11-2-7     "1206"          "10k"     2375    13800    180 bottom
+R11-2-8     "1206"          "10k"     2375    15300    180 bottom
+R11-2-9     "1206"          "10k"     2375    16800    180 bottom
+R11-2-10    "1206"          "10k"     2375    18300    180 bottom
+R11-2-11    "1206"          "10k"     2375    19800    180 bottom
+R11-2-12    "1206"          "10k"     2375    21300    180 bottom
+R11-2-13    "1206"          "10k"     2375    22800    180 bottom
+R11-2-14    "1206"          "10k"     2375    24300    180 bottom
+R11-3-0     "1206"          "10k"     2875    3300     180 bottom
+R11-3-1     "1206"          "10k"     2875    4800     180 bottom
+R11-3-2     "1206"          "10k"     2875    6300     180 bottom
+R11-3-3     "1206"          "10k"     2875    7800     180 bottom
+R11-3-4     "1206"          "10k"     2875    9300     180 bottom
+R11-3-5     "1206"          "10k"     2875    10800    180 bottom
+R11-3-6     "1206"          "10k"     2875    12300    180 bottom
+R11-3-7     "1206"          "10k"     2875    13800    180 bottom
+R11-3-8     "1206"          "10k"     2875    15300    180 bottom
+R11-3-9     "1206"          "10k"     2875    16800    180 bottom
+R11-3-10    "1206"          "10k"     2875    18300    180 bottom
+R11-3-11    "1206"          "10k"     2875    19800    180 bottom
+R11-3-12    "1206"          "10k"     2875    21300    180 bottom
+R11-3-13    "1206"          "10k"     2875    22800    180 bottom
+R11-3-14    "1206"          "10k"     2875    24300    180 bottom
+R11-4-0     "1206"          "10k"     3375    3300     180 bottom
+R11-4-1     "1206"          "10k"     3375    4800     180 bottom
+R11-4-2     "1206"          "10k"     3375    6300     180 bottom
+R11-4-3     "1206"          "10k"     3375    7800     180 bottom
+R11-4-4     "1206"          "10k"     3375    9300     180 bottom
+R11-4-5     "1206"          "10k"     3375    10800    180 bottom
+R11-4-6     "1206"          "10k"     3375    12300    180 bottom
+R11-4-7     "1206"          "10k"     3375    13800    180 bottom
+R11-4-8     "1206"          "10k"     3375    15300    180 bottom
+R11-4-9     "1206"          "10k"     3375    16800    180 bottom
+R11-4-10    "1206"          "10k"     3375    18300    180 bottom
+R11-4-11    "1206"          "10k"     3375    19800    180 bottom
+R11-4-12    "1206"          "10k"     3375    21300    180 bottom
+R11-4-13    "1206"          "10k"     3375    22800    180 bottom
+R11-4-14    "1206"          "10k"     3375    24300    180 bottom
+R11-5-0     "1206"          "10k"     3875    3300     180 bottom
+R11-5-1     "1206"          "10k"     3875    4800     180 bottom
+R11-5-2     "1206"          "10k"     3875    6300     180 bottom
+R11-5-3     "1206"          "10k"     3875    7800     180 bottom
+R11-5-4     "1206"          "10k"     3875    9300     180 bottom
+R11-5-5     "1206"          "10k"     3875    10800    180 bottom
+R11-5-6     "1206"          "10k"     3875    12300    180 bottom
+R11-5-7     "1206"          "10k"     3875    13800    180 bottom
+R11-5-8     "1206"          "10k"     3875    15300    180 bottom
+R11-5-9     "1206"          "10k"     3875    16800    180 bottom
+R11-5-10    "1206"          "10k"     3875    18300    180 bottom
+R11-5-11    "1206"          "10k"     3875    19800    180 bottom
+R11-5-12    "1206"          "10k"     3875    21300    180 bottom
+R11-5-13    "1206"          "10k"     3875    22800    180 bottom
+R11-5-14    "1206"          "10k"     3875    24300    180 bottom
+R11-6-0     "1206"          "10k"     4375    3300     180 bottom
+R11-6-1     "1206"          "10k"     4375    4800     180 bottom
+R11-6-2     "1206"          "10k"     4375    6300     180 bottom
+R11-6-3     "1206"          "10k"     4375    7800     180 bottom
+R11-6-4     "1206"          "10k"     4375    9300     180 bottom
+R11-6-5     "1206"          "10k"     4375    10800    180 bottom
+R11-6-6     "1206"          "10k"     4375    12300    180 bottom
+R11-6-7     "1206"          "10k"     4375    13800    180 bottom
+R11-6-8     "1206"          "10k"     4375    15300    180 bottom
+R11-6-9     "1206"          "10k"     4375    16800    180 bottom
+R11-6-10    "1206"          "10k"     4375    18300    180 bottom
+R11-6-11    "1206"          "10k"     4375    19800    180 bottom
+R11-6-12    "1206"          "10k"     4375    21300    180 bottom
+R11-6-13    "1206"          "10k"     4375    22800    180 bottom
+R11-6-14    "1206"          "10k"     4375    24300    180 bottom
+R11-7-0     "1206"          "10k"     4875    3300     180 bottom
+R11-7-1     "1206"          "10k"     4875    4800     180 bottom
+R11-7-2     "1206"          "10k"     4875    6300     180 bottom
+R11-7-3     "1206"          "10k"     4875    7800     180 bottom
+R11-7-4     "1206"          "10k"     4875    9300     180 bottom
+R11-7-5     "1206"          "10k"     4875    10800    180 bottom
+R11-7-6     "1206"          "10k"     4875    12300    180 bottom
+R11-7-7     "1206"          "10k"     4875    13800    180 bottom
+R11-7-8     "1206"          "10k"     4875    15300    180 bottom
+R11-7-9     "1206"          "10k"     4875    16800    180 bottom
+R11-7-10    "1206"          "10k"     4875    18300    180 bottom
+R11-7-11    "1206"          "10k"     4875    19800    180 bottom
+R11-7-12    "1206"          "10k"     4875    21300    180 bottom
+R11-7-13    "1206"          "10k"     4875    22800    180 bottom
+R11-7-14    "1206"          "10k"     4875    24300    180 bottom
+R11-8-0     "1206"          "10k"     5375    3300     180 bottom
+R11-8-1     "1206"          "10k"     5375    4800     180 bottom
+R11-8-2     "1206"          "10k"     5375    6300     180 bottom
+R11-8-3     "1206"          "10k"     5375    7800     180 bottom
+R11-8-4     "1206"          "10k"     5375    9300     180 bottom
+R11-8-5     "1206"          "10k"     5375    10800    180 bottom
+R11-8-6     "1206"          "10k"     5375    12300    180 bottom
+R11-8-7     "1206"          "10k"     5375    13800    180 bottom
+R11-8-8     "1206"          "10k"     5375    15300    180 bottom
+R11-8-9     "1206"          "10k"     5375    16800    180 bottom
+R11-8-10    "1206"          "10k"     5375    18300    180 bottom
+R11-8-11    "1206"          "10k"     5375    19800    180 bottom
+R11-8-12    "1206"          "10k"     5375    21300    180 bottom
+R11-8-13    "1206"          "10k"     5375    22800    180 bottom
+R11-8-14    "1206"          "10k"     5375    24300    180 bottom
+R11-9-0     "1206"          "10k"     5875    3300     180 bottom
+R11-9-1     "1206"          "10k"     5875    4800     180 bottom
+R11-9-2     "1206"          "10k"     5875    6300     180 bottom
+R11-9-3     "1206"          "10k"     5875    7800     180 bottom
+R11-9-4     "1206"          "10k"     5875    9300     180 bottom
+R11-9-5     "1206"          "10k"     5875    10800    180 bottom
+R11-9-6     "1206"          "10k"     5875    12300    180 bottom
+R11-9-7     "1206"          "10k"     5875    13800    180 bottom
+R11-9-8     "1206"          "10k"     5875    15300    180 bottom
+R11-9-9     "1206"          "10k"     5875    16800    180 bottom
+R11-9-10    "1206"          "10k"     5875    18300    180 bottom
+R11-9-11    "1206"          "10k"     5875    19800    180 bottom
+R11-9-12    "1206"          "10k"     5875    21300    180 bottom
+R11-9-13    "1206"          "10k"     5875    22800    180 bottom
+R11-9-14    "1206"          "10k"     5875    24300    180 bottom
+R11-10-0    "1206"          "10k"     6375    3300     180 bottom
+R11-10-1    "1206"          "10k"     6375    4800     180 bottom
+R11-10-2    "1206"          "10k"     6375    6300     180 bottom
+R11-10-3    "1206"          "10k"     6375    7800     180 bottom
+R11-10-4    "1206"          "10k"     6375    9300     180 bottom
+R11-10-5    "1206"          "10k"     6375    10800    180 bottom
+R11-10-6    "1206"          "10k"     6375    12300    180 bottom
+R11-10-7    "1206"          "10k"     6375    13800    180 bottom
+R11-10-8    "1206"          "10k"     6375    15300    180 bottom
+R11-10-9    "1206"          "10k"     6375    16800    180 bottom
+R11-10-10   "1206"          "10k"     6375    18300    180 bottom
+R11-10-11   "1206"          "10k"     6375    19800    180 bottom
+R11-10-12   "1206"          "10k"     6375    21300    180 bottom
+R11-10-13   "1206"          "10k"     6375    22800    180 bottom
+R11-10-14   "1206"          "10k"     6375    24300    180 bottom
+R11-11-0    "1206"          "10k"     6875    3300     180 bottom
+R11-11-1    "1206"          "10k"     6875    4800     180 bottom
+R11-11-2    "1206"          "10k"     6875    6300     180 bottom
+R11-11-3    "1206"          "10k"     6875    7800     180 bottom
+R11-11-4    "1206"          "10k"     6875    9300     180 bottom
+R11-11-5    "1206"          "10k"     6875    10800    180 bottom
+R11-11-6    "1206"          "10k"     6875    12300    180 bottom
+R11-11-7    "1206"          "10k"     6875    13800    180 bottom
+R11-11-8    "1206"          "10k"     6875    15300    180 bottom
+R11-11-9    "1206"          "10k"     6875    16800    180 bottom
+R11-11-10   "1206"          "10k"     6875    18300    180 bottom
+R11-11-11   "1206"          "10k"     6875    19800    180 bottom
+R11-11-12   "1206"          "10k"     6875    21300    180 bottom
+R11-11-13   "1206"          "10k"     6875    22800    180 bottom
+R11-11-14   "1206"          "10k"     6875    24300    180 bottom
+R11-12-0    "1206"          "10k"     7375    3300     180 bottom
+R11-12-1    "1206"          "10k"     7375    4800     180 bottom
+R11-12-2    "1206"          "10k"     7375    6300     180 bottom
+R11-12-3    "1206"          "10k"     7375    7800     180 bottom
+R11-12-4    "1206"          "10k"     7375    9300     180 bottom
+R11-12-5    "1206"          "10k"     7375    10800    180 bottom
+R11-12-6    "1206"          "10k"     7375    12300    180 bottom
+R11-12-7    "1206"          "10k"     7375    13800    180 bottom
+R11-12-8    "1206"          "10k"     7375    15300    180 bottom
+R11-12-9    "1206"          "10k"     7375    16800    180 bottom
+R11-12-10   "1206"          "10k"     7375    18300    180 bottom
+R11-12-11   "1206"          "10k"     7375    19800    180 bottom
+R11-12-12   "1206"          "10k"     7375    21300    180 bottom
+R11-12-13   "1206"          "10k"     7375    22800    180 bottom
+R11-12-14   "1206"          "10k"     7375    24300    180 bottom
+R11-13-0    "1206"          "10k"     7875    3300     180 bottom
+R11-13-1    "1206"          "10k"     7875    4800     180 bottom
+R11-13-2    "1206"          "10k"     7875    6300     180 bottom
+R11-13-3    "1206"          "10k"     7875    7800     180 bottom
+R11-13-4    "1206"          "10k"     7875    9300     180 bottom
+R11-13-5    "1206"          "10k"     7875    10800    180 bottom
+R11-13-6    "1206"          "10k"     7875    12300    180 bottom
+R11-13-7    "1206"          "10k"     7875    13800    180 bottom
+R11-13-8    "1206"          "10k"     7875    15300    180 bottom
+R11-13-9    "1206"          "10k"     7875    16800    180 bottom
+R11-13-10   "1206"          "10k"     7875    18300    180 bottom
+R11-13-11   "1206"          "10k"     7875    19800    180 bottom
+R11-13-12   "1206"          "10k"     7875    21300    180 bottom
+R11-13-13   "1206"          "10k"     7875    22800    180 bottom
+R11-13-14   "1206"          "10k"     7875    24300    180 bottom
+R11-14-0    "1206"          "10k"     8375    3300     180 bottom
+R11-14-1    "1206"          "10k"     8375    4800     180 bottom
+R11-14-2    "1206"          "10k"     8375    6300     180 bottom
+R11-14-3    "1206"          "10k"     8375    7800     180 bottom
+R11-14-4    "1206"          "10k"     8375    9300     180 bottom
+R11-14-5    "1206"          "10k"     8375    10800    180 bottom
+R11-14-6    "1206"          "10k"     8375    12300    180 bottom
+R11-14-7    "1206"          "10k"     8375    13800    180 bottom
+R11-14-8    "1206"          "10k"     8375    15300    180 bottom
+R11-14-9    "1206"          "10k"     8375    16800    180 bottom
+R11-14-10   "1206"          "10k"     8375    18300    180 bottom
+R11-14-11   "1206"          "10k"     8375    19800    180 bottom
+R11-14-12   "1206"          "10k"     8375    21300    180 bottom
+R11-14-13   "1206"          "10k"     8375    22800    180 bottom
+R11-14-14   "1206"          "10k"     8375    24300    180 bottom
+D2-0-0      "CONNECTOR-2-1" "unknown" 500.00  3850.00  0   top   
+D2-0-1      "CONNECTOR-2-1" "unknown" 500     5350     0   top   
+D2-0-2      "CONNECTOR-2-1" "unknown" 500     6850     0   top   
+D2-0-3      "CONNECTOR-2-1" "unknown" 500     8350     0   top   
+D2-0-4      "CONNECTOR-2-1" "unknown" 500     9850     0   top   
+D2-0-5      "CONNECTOR-2-1" "unknown" 500     11350    0   top   
+D2-0-6      "CONNECTOR-2-1" "unknown" 500     12850    0   top   
+D2-0-7      "CONNECTOR-2-1" "unknown" 500     14350    0   top   
+D2-0-8      "CONNECTOR-2-1" "unknown" 500     15850    0   top   
+D2-0-9      "CONNECTOR-2-1" "unknown" 500     17350    0   top   
+D2-0-10     "CONNECTOR-2-1" "unknown" 500     18850    0   top   
+D2-0-11     "CONNECTOR-2-1" "unknown" 500     20350    0   top   
+D2-0-12     "CONNECTOR-2-1" "unknown" 500     21850    0   top   
+D2-0-13     "CONNECTOR-2-1" "unknown" 500     23350    0   top   
+D2-0-14     "CONNECTOR-2-1" "unknown" 500     24850    0   top   
+D2-1-0      "CONNECTOR-2-1" "unknown" 1000    3850     0   top   
+D2-1-1      "CONNECTOR-2-1" "unknown" 1000    5350     0   top   
+D2-1-2      "CONNECTOR-2-1" "unknown" 1000    6850     0   top   
+D2-1-3      "CONNECTOR-2-1" "unknown" 1000    8350     0   top   
+D2-1-4      "CONNECTOR-2-1" "unknown" 1000    9850     0   top   
+D2-1-5      "CONNECTOR-2-1" "unknown" 1000    11350    0   top   
+D2-1-6      "CONNECTOR-2-1" "unknown" 1000    12850    0   top   
+D2-1-7      "CONNECTOR-2-1" "unknown" 1000    14350    0   top   
+D2-1-8      "CONNECTOR-2-1" "unknown" 1000    15850    0   top   
+D2-1-9      "CONNECTOR-2-1" "unknown" 1000    17350    0   top   
+D2-1-10     "CONNECTOR-2-1" "unknown" 1000    18850    0   top   
+D2-1-11     "CONNECTOR-2-1" "unknown" 1000    20350    0   top   
+D2-1-12     "CONNECTOR-2-1" "unknown" 1000    21850    0   top   
+D2-1-13     "CONNECTOR-2-1" "unknown" 1000    23350    0   top   
+D2-1-14     "CONNECTOR-2-1" "unknown" 1000    24850    0   top   
+D2-2-0      "CONNECTOR-2-1" "unknown" 1500    3850     0   top   
+D2-2-1      "CONNECTOR-2-1" "unknown" 1500    5350     0   top   
+D2-2-2      "CONNECTOR-2-1" "unknown" 1500    6850     0   top   
+D2-2-3      "CONNECTOR-2-1" "unknown" 1500    8350     0   top   
+D2-2-4      "CONNECTOR-2-1" "unknown" 1500    9850     0   top   
+D2-2-5      "CONNECTOR-2-1" "unknown" 1500    11350    0   top   
+D2-2-6      "CONNECTOR-2-1" "unknown" 1500    12850    0   top   
+D2-2-7      "CONNECTOR-2-1" "unknown" 1500    14350    0   top   
+D2-2-8      "CONNECTOR-2-1" "unknown" 1500    15850    0   top   
+D2-2-9      "CONNECTOR-2-1" "unknown" 1500    17350    0   top   
+D2-2-10     "CONNECTOR-2-1" "unknown" 1500    18850    0   top   
+D2-2-11     "CONNECTOR-2-1" "unknown" 1500    20350    0   top   
+D2-2-12     "CONNECTOR-2-1" "unknown" 1500    21850    0   top   
+D2-2-13     "CONNECTOR-2-1" "unknown" 1500    23350    0   top   
+D2-2-14     "CONNECTOR-2-1" "unknown" 1500    24850    0   top   
+D2-3-0      "CONNECTOR-2-1" "unknown" 2000    3850     0   top   
+D2-3-1      "CONNECTOR-2-1" "unknown" 2000    5350     0   top   
+D2-3-2      "CONNECTOR-2-1" "unknown" 2000    6850     0   top   
+D2-3-3      "CONNECTOR-2-1" "unknown" 2000    8350     0   top   
+D2-3-4      "CONNECTOR-2-1" "unknown" 2000    9850     0   top   
+D2-3-5      "CONNECTOR-2-1" "unknown" 2000    11350    0   top   
+D2-3-6      "CONNECTOR-2-1" "unknown" 2000    12850    0   top   
+D2-3-7      "CONNECTOR-2-1" "unknown" 2000    14350    0   top   
+D2-3-8      "CONNECTOR-2-1" "unknown" 2000    15850    0   top   
+D2-3-9      "CONNECTOR-2-1" "unknown" 2000    17350    0   top   
+D2-3-10     "CONNECTOR-2-1" "unknown" 2000    18850    0   top   
+D2-3-11     "CONNECTOR-2-1" "unknown" 2000    20350    0   top   
+D2-3-12     "CONNECTOR-2-1" "unknown" 2000    21850    0   top   
+D2-3-13     "CONNECTOR-2-1" "unknown" 2000    23350    0   top   
+D2-3-14     "CONNECTOR-2-1" "unknown" 2000    24850    0   top   
+D2-4-0      "CONNECTOR-2-1" "unknown" 2500    3850     0   top   
+D2-4-1      "CONNECTOR-2-1" "unknown" 2500    5350     0   top   
+D2-4-2      "CONNECTOR-2-1" "unknown" 2500    6850     0   top   
+D2-4-3      "CONNECTOR-2-1" "unknown" 2500    8350     0   top   
+D2-4-4      "CONNECTOR-2-1" "unknown" 2500    9850     0   top   
+D2-4-5      "CONNECTOR-2-1" "unknown" 2500    11350    0   top   
+D2-4-6      "CONNECTOR-2-1" "unknown" 2500    12850    0   top   
+D2-4-7      "CONNECTOR-2-1" "unknown" 2500    14350    0   top   
+D2-4-8      "CONNECTOR-2-1" "unknown" 2500    15850    0   top   
+D2-4-9      "CONNECTOR-2-1" "unknown" 2500    17350    0   top   
+D2-4-10     "CONNECTOR-2-1" "unknown" 2500    18850    0   top   
+D2-4-11     "CONNECTOR-2-1" "unknown" 2500    20350    0   top   
+D2-4-12     "CONNECTOR-2-1" "unknown" 2500    21850    0   top   
+D2-4-13     "CONNECTOR-2-1" "unknown" 2500    23350    0   top   
+D2-4-14     "CONNECTOR-2-1" "unknown" 2500    24850    0   top   
+D2-5-0      "CONNECTOR-2-1" "unknown" 3000    3850     0   top   
+D2-5-1      "CONNECTOR-2-1" "unknown" 3000    5350     0   top   
+D2-5-2      "CONNECTOR-2-1" "unknown" 3000    6850     0   top   
+D2-5-3      "CONNECTOR-2-1" "unknown" 3000    8350     0   top   
+D2-5-4      "CONNECTOR-2-1" "unknown" 3000    9850     0   top   
+D2-5-5      "CONNECTOR-2-1" "unknown" 3000    11350    0   top   
+D2-5-6      "CONNECTOR-2-1" "unknown" 3000    12850    0   top   
+D2-5-7      "CONNECTOR-2-1" "unknown" 3000    14350    0   top   
+D2-5-8      "CONNECTOR-2-1" "unknown" 3000    15850    0   top   
+D2-5-9      "CONNECTOR-2-1" "unknown" 3000    17350    0   top   
+D2-5-10     "CONNECTOR-2-1" "unknown" 3000    18850    0   top   
+D2-5-11     "CONNECTOR-2-1" "unknown" 3000    20350    0   top   
+D2-5-12     "CONNECTOR-2-1" "unknown" 3000    21850    0   top   
+D2-5-13     "CONNECTOR-2-1" "unknown" 3000    23350    0   top   
+D2-5-14     "CONNECTOR-2-1" "unknown" 3000    24850    0   top   
+D2-6-0      "CONNECTOR-2-1" "unknown" 3500    3850     0   top   
+D2-6-1      "CONNECTOR-2-1" "unknown" 3500    5350     0   top   
+D2-6-2      "CONNECTOR-2-1" "unknown" 3500    6850     0   top   
+D2-6-3      "CONNECTOR-2-1" "unknown" 3500    8350     0   top   
+D2-6-4      "CONNECTOR-2-1" "unknown" 3500    9850     0   top   
+D2-6-5      "CONNECTOR-2-1" "unknown" 3500    11350    0   top   
+D2-6-6      "CONNECTOR-2-1" "unknown" 3500    12850    0   top   
+D2-6-7      "CONNECTOR-2-1" "unknown" 3500    14350    0   top   
+D2-6-8      "CONNECTOR-2-1" "unknown" 3500    15850    0   top   
+D2-6-9      "CONNECTOR-2-1" "unknown" 3500    17350    0   top   
+D2-6-10     "CONNECTOR-2-1" "unknown" 3500    18850    0   top   
+D2-6-11     "CONNECTOR-2-1" "unknown" 3500    20350    0   top   
+D2-6-12     "CONNECTOR-2-1" "unknown" 3500    21850    0   top   
+D2-6-13     "CONNECTOR-2-1" "unknown" 3500    23350    0   top   
+D2-6-14     "CONNECTOR-2-1" "unknown" 3500    24850    0   top   
+D2-7-0      "CONNECTOR-2-1" "unknown" 4000    3850     0   top   
+D2-7-1      "CONNECTOR-2-1" "unknown" 4000    5350     0   top   
+D2-7-2      "CONNECTOR-2-1" "unknown" 4000    6850     0   top   
+D2-7-3      "CONNECTOR-2-1" "unknown" 4000    8350     0   top   
+D2-7-4      "CONNECTOR-2-1" "unknown" 4000    9850     0   top   
+D2-7-5      "CONNECTOR-2-1" "unknown" 4000    11350    0   top   
+D2-7-6      "CONNECTOR-2-1" "unknown" 4000    12850    0   top   
+D2-7-7      "CONNECTOR-2-1" "unknown" 4000    14350    0   top   
+D2-7-8      "CONNECTOR-2-1" "unknown" 4000    15850    0   top   
+D2-7-9      "CONNECTOR-2-1" "unknown" 4000    17350    0   top   
+D2-7-10     "CONNECTOR-2-1" "unknown" 4000    18850    0   top   
+D2-7-11     "CONNECTOR-2-1" "unknown" 4000    20350    0   top   
+D2-7-12     "CONNECTOR-2-1" "unknown" 4000    21850    0   top   
+D2-7-13     "CONNECTOR-2-1" "unknown" 4000    23350    0   top   
+D2-7-14     "CONNECTOR-2-1" "unknown" 4000    24850    0   top   
+D2-8-0      "CONNECTOR-2-1" "unknown" 4500    3850     0   top   
+D2-8-1      "CONNECTOR-2-1" "unknown" 4500    5350     0   top   
+D2-8-2      "CONNECTOR-2-1" "unknown" 4500    6850     0   top   
+D2-8-3      "CONNECTOR-2-1" "unknown" 4500    8350     0   top   
+D2-8-4      "CONNECTOR-2-1" "unknown" 4500    9850     0   top   
+D2-8-5      "CONNECTOR-2-1" "unknown" 4500    11350    0   top   
+D2-8-6      "CONNECTOR-2-1" "unknown" 4500    12850    0   top   
+D2-8-7      "CONNECTOR-2-1" "unknown" 4500    14350    0   top   
+D2-8-8      "CONNECTOR-2-1" "unknown" 4500    15850    0   top   
+D2-8-9      "CONNECTOR-2-1" "unknown" 4500    17350    0   top   
+D2-8-10     "CONNECTOR-2-1" "unknown" 4500    18850    0   top   
+D2-8-11     "CONNECTOR-2-1" "unknown" 4500    20350    0   top   
+D2-8-12     "CONNECTOR-2-1" "unknown" 4500    21850    0   top   
+D2-8-13     "CONNECTOR-2-1" "unknown" 4500    23350    0   top   
+D2-8-14     "CONNECTOR-2-1" "unknown" 4500    24850    0   top   
+D2-9-0      "CONNECTOR-2-1" "unknown" 5000    3850     0   top   
+D2-9-1      "CONNECTOR-2-1" "unknown" 5000    5350     0   top   
+D2-9-2      "CONNECTOR-2-1" "unknown" 5000    6850     0   top   
+D2-9-3      "CONNECTOR-2-1" "unknown" 5000    8350     0   top   
+D2-9-4      "CONNECTOR-2-1" "unknown" 5000    9850     0   top   
+D2-9-5      "CONNECTOR-2-1" "unknown" 5000    11350    0   top   
+D2-9-6      "CONNECTOR-2-1" "unknown" 5000    12850    0   top   
+D2-9-7      "CONNECTOR-2-1" "unknown" 5000    14350    0   top   
+D2-9-8      "CONNECTOR-2-1" "unknown" 5000    15850    0   top   
+D2-9-9      "CONNECTOR-2-1" "unknown" 5000    17350    0   top   
+D2-9-10     "CONNECTOR-2-1" "unknown" 5000    18850    0   top   
+D2-9-11     "CONNECTOR-2-1" "unknown" 5000    20350    0   top   
+D2-9-12     "CONNECTOR-2-1" "unknown" 5000    21850    0   top   
+D2-9-13     "CONNECTOR-2-1" "unknown" 5000    23350    0   top   
+D2-9-14     "CONNECTOR-2-1" "unknown" 5000    24850    0   top   
+D2-10-0     "CONNECTOR-2-1" "unknown" 5500    3850     0   top   
+D2-10-1     "CONNECTOR-2-1" "unknown" 5500    5350     0   top   
+D2-10-2     "CONNECTOR-2-1" "unknown" 5500    6850     0   top   
+D2-10-3     "CONNECTOR-2-1" "unknown" 5500    8350     0   top   
+D2-10-4     "CONNECTOR-2-1" "unknown" 5500    9850     0   top   
+D2-10-5     "CONNECTOR-2-1" "unknown" 5500    11350    0   top   
+D2-10-6     "CONNECTOR-2-1" "unknown" 5500    12850    0   top   
+D2-10-7     "CONNECTOR-2-1" "unknown" 5500    14350    0   top   
+D2-10-8     "CONNECTOR-2-1" "unknown" 5500    15850    0   top   
+D2-10-9     "CONNECTOR-2-1" "unknown" 5500    17350    0   top   
+D2-10-10    "CONNECTOR-2-1" "unknown" 5500    18850    0   top   
+D2-10-11    "CONNECTOR-2-1" "unknown" 5500    20350    0   top   
+D2-10-12    "CONNECTOR-2-1" "unknown" 5500    21850    0   top   
+D2-10-13    "CONNECTOR-2-1" "unknown" 5500    23350    0   top   
+D2-10-14    "CONNECTOR-2-1" "unknown" 5500    24850    0   top   
+D2-11-0     "CONNECTOR-2-1" "unknown" 6000    3850     0   top   
+D2-11-1     "CONNECTOR-2-1" "unknown" 6000    5350     0   top   
+D2-11-2     "CONNECTOR-2-1" "unknown" 6000    6850     0   top   
+D2-11-3     "CONNECTOR-2-1" "unknown" 6000    8350     0   top   
+D2-11-4     "CONNECTOR-2-1" "unknown" 6000    9850     0   top   
+D2-11-5     "CONNECTOR-2-1" "unknown" 6000    11350    0   top   
+D2-11-6     "CONNECTOR-2-1" "unknown" 6000    12850    0   top   
+D2-11-7     "CONNECTOR-2-1" "unknown" 6000    14350    0   top   
+D2-11-8     "CONNECTOR-2-1" "unknown" 6000    15850    0   top   
+D2-11-9     "CONNECTOR-2-1" "unknown" 6000    17350    0   top   
+D2-11-10    "CONNECTOR-2-1" "unknown" 6000    18850    0   top   
+D2-11-11    "CONNECTOR-2-1" "unknown" 6000    20350    0   top   
+D2-11-12    "CONNECTOR-2-1" "unknown" 6000    21850    0   top   
+D2-11-13    "CONNECTOR-2-1" "unknown" 6000    23350    0   top   
+D2-11-14    "CONNECTOR-2-1" "unknown" 6000    24850    0   top   
+D2-12-0     "CONNECTOR-2-1" "unknown" 6500    3850     0   top   
+D2-12-1     "CONNECTOR-2-1" "unknown" 6500    5350     0   top   
+D2-12-2     "CONNECTOR-2-1" "unknown" 6500    6850     0   top   
+D2-12-3     "CONNECTOR-2-1" "unknown" 6500    8350     0   top   
+D2-12-4     "CONNECTOR-2-1" "unknown" 6500    9850     0   top   
+D2-12-5     "CONNECTOR-2-1" "unknown" 6500    11350    0   top   
+D2-12-6     "CONNECTOR-2-1" "unknown" 6500    12850    0   top   
+D2-12-7     "CONNECTOR-2-1" "unknown" 6500    14350    0   top   
+D2-12-8     "CONNECTOR-2-1" "unknown" 6500    15850    0   top   
+D2-12-9     "CONNECTOR-2-1" "unknown" 6500    17350    0   top   
+D2-12-10    "CONNECTOR-2-1" "unknown" 6500    18850    0   top   
+D2-12-11    "CONNECTOR-2-1" "unknown" 6500    20350    0   top   
+D2-12-12    "CONNECTOR-2-1" "unknown" 6500    21850    0   top   
+D2-12-13    "CONNECTOR-2-1" "unknown" 6500    23350    0   top   
+D2-12-14    "CONNECTOR-2-1" "unknown" 6500    24850    0   top   
+D2-13-0     "CONNECTOR-2-1" "unknown" 7000    3850     0   top   
+D2-13-1     "CONNECTOR-2-1" "unknown" 7000    5350     0   top   
+D2-13-2     "CONNECTOR-2-1" "unknown" 7000    6850     0   top   
+D2-13-3     "CONNECTOR-2-1" "unknown" 7000    8350     0   top   
+D2-13-4     "CONNECTOR-2-1" "unknown" 7000    9850     0   top   
+D2-13-5     "CONNECTOR-2-1" "unknown" 7000    11350    0   top   
+D2-13-6     "CONNECTOR-2-1" "unknown" 7000    12850    0   top   
+D2-13-7     "CONNECTOR-2-1" "unknown" 7000    14350    0   top   
+D2-13-8     "CONNECTOR-2-1" "unknown" 7000    15850    0   top   
+D2-13-9     "CONNECTOR-2-1" "unknown" 7000    17350    0   top   
+D2-13-10    "CONNECTOR-2-1" "unknown" 7000    18850    0   top   
+D2-13-11    "CONNECTOR-2-1" "unknown" 7000    20350    0   top   
+D2-13-12    "CONNECTOR-2-1" "unknown" 7000    21850    0   top   
+D2-13-13    "CONNECTOR-2-1" "unknown" 7000    23350    0   top   
+D2-13-14    "CONNECTOR-2-1" "unknown" 7000    24850    0   top   
+D2-14-0     "CONNECTOR-2-1" "unknown" 7500    3850     0   top   
+D2-14-1     "CONNECTOR-2-1" "unknown" 7500    5350     0   top   
+D2-14-2     "CONNECTOR-2-1" "unknown" 7500    6850     0   top   
+D2-14-3     "CONNECTOR-2-1" "unknown" 7500    8350     0   top   
+D2-14-4     "CONNECTOR-2-1" "unknown" 7500    9850     0   top   
+D2-14-5     "CONNECTOR-2-1" "unknown" 7500    11350    0   top   
+D2-14-6     "CONNECTOR-2-1" "unknown" 7500    12850    0   top   
+D2-14-7     "CONNECTOR-2-1" "unknown" 7500    14350    0   top   
+D2-14-8     "CONNECTOR-2-1" "unknown" 7500    15850    0   top   
+D2-14-9     "CONNECTOR-2-1" "unknown" 7500    17350    0   top   
+D2-14-10    "CONNECTOR-2-1" "unknown" 7500    18850    0   top   
+D2-14-11    "CONNECTOR-2-1" "unknown" 7500    20350    0   top   
+D2-14-12    "CONNECTOR-2-1" "unknown" 7500    21850    0   top   
+D2-14-13    "CONNECTOR-2-1" "unknown" 7500    23350    0   top   
+D2-14-14    "CONNECTOR-2-1" "unknown" 7500    24850    0   top   
+C2-0-0      "1206"          "unknown" 925.00  3350.00  270 bottom
+C2-0-1      "1206"          "unknown" 925     4850     270 bottom
+C2-0-2      "1206"          "unknown" 925     6350     270 bottom
+C2-0-3      "1206"          "unknown" 925     7850     270 bottom
+C2-0-4      "1206"          "unknown" 925     9350     270 bottom
+C2-0-5      "1206"          "unknown" 925     10850    270 bottom
+C2-0-6      "1206"          "unknown" 925     12350    270 bottom
+C2-0-7      "1206"          "unknown" 925     13850    270 bottom
+C2-0-8      "1206"          "unknown" 925     15350    270 bottom
+C2-0-9      "1206"          "unknown" 925     16850    270 bottom
+C2-0-10     "1206"          "unknown" 925     18350    270 bottom
+C2-0-11     "1206"          "unknown" 925     19850    270 bottom
+C2-0-12     "1206"          "unknown" 925     21350    270 bottom
+C2-0-13     "1206"          "unknown" 925     22850    270 bottom
+C2-0-14     "1206"          "unknown" 925     24350    270 bottom
+C2-1-0      "1206"          "unknown" 1425    3350     270 bottom
+C2-1-1      "1206"          "unknown" 1425    4850     270 bottom
+C2-1-2      "1206"          "unknown" 1425    6350     270 bottom
+C2-1-3      "1206"          "unknown" 1425    7850     270 bottom
+C2-1-4      "1206"          "unknown" 1425    9350     270 bottom
+C2-1-5      "1206"          "unknown" 1425    10850    270 bottom
+C2-1-6      "1206"          "unknown" 1425    12350    270 bottom
+C2-1-7      "1206"          "unknown" 1425    13850    270 bottom
+C2-1-8      "1206"          "unknown" 1425    15350    270 bottom
+C2-1-9      "1206"          "unknown" 1425    16850    270 bottom
+C2-1-10     "1206"          "unknown" 1425    18350    270 bottom
+C2-1-11     "1206"          "unknown" 1425    19850    270 bottom
+C2-1-12     "1206"          "unknown" 1425    21350    270 bottom
+C2-1-13     "1206"          "unknown" 1425    22850    270 bottom
+C2-1-14     "1206"          "unknown" 1425    24350    270 bottom
+C2-2-0      "1206"          "unknown" 1925    3350     270 bottom
+C2-2-1      "1206"          "unknown" 1925    4850     270 bottom
+C2-2-2      "1206"          "unknown" 1925    6350     270 bottom
+C2-2-3      "1206"          "unknown" 1925    7850     270 bottom
+C2-2-4      "1206"          "unknown" 1925    9350     270 bottom
+C2-2-5      "1206"          "unknown" 1925    10850    270 bottom
+C2-2-6      "1206"          "unknown" 1925    12350    270 bottom
+C2-2-7      "1206"          "unknown" 1925    13850    270 bottom
+C2-2-8      "1206"          "unknown" 1925    15350    270 bottom
+C2-2-9      "1206"          "unknown" 1925    16850    270 bottom
+C2-2-10     "1206"          "unknown" 1925    18350    270 bottom
+C2-2-11     "1206"          "unknown" 1925    19850    270 bottom
+C2-2-12     "1206"          "unknown" 1925    21350    270 bottom
+C2-2-13     "1206"          "unknown" 1925    22850    270 bottom
+C2-2-14     "1206"          "unknown" 1925    24350    270 bottom
+C2-3-0      "1206"          "unknown" 2425    3350     270 bottom
+C2-3-1      "1206"          "unknown" 2425    4850     270 bottom
+C2-3-2      "1206"          "unknown" 2425    6350     270 bottom
+C2-3-3      "1206"          "unknown" 2425    7850     270 bottom
+C2-3-4      "1206"          "unknown" 2425    9350     270 bottom
+C2-3-5      "1206"          "unknown" 2425    10850    270 bottom
+C2-3-6      "1206"          "unknown" 2425    12350    270 bottom
+C2-3-7      "1206"          "unknown" 2425    13850    270 bottom
+C2-3-8      "1206"          "unknown" 2425    15350    270 bottom
+C2-3-9      "1206"          "unknown" 2425    16850    270 bottom
+C2-3-10     "1206"          "unknown" 2425    18350    270 bottom
+C2-3-11     "1206"          "unknown" 2425    19850    270 bottom
+C2-3-12     "1206"          "unknown" 2425    21350    270 bottom
+C2-3-13     "1206"          "unknown" 2425    22850    270 bottom
+C2-3-14     "1206"          "unknown" 2425    24350    270 bottom
+C2-4-0      "1206"          "unknown" 2925    3350     270 bottom
+C2-4-1      "1206"          "unknown" 2925    4850     270 bottom
+C2-4-2      "1206"          "unknown" 2925    6350     270 bottom
+C2-4-3      "1206"          "unknown" 2925    7850     270 bottom
+C2-4-4      "1206"          "unknown" 2925    9350     270 bottom
+C2-4-5      "1206"          "unknown" 2925    10850    270 bottom
+C2-4-6      "1206"          "unknown" 2925    12350    270 bottom
+C2-4-7      "1206"          "unknown" 2925    13850    270 bottom
+C2-4-8      "1206"          "unknown" 2925    15350    270 bottom
+C2-4-9      "1206"          "unknown" 2925    16850    270 bottom
+C2-4-10     "1206"          "unknown" 2925    18350    270 bottom
+C2-4-11     "1206"          "unknown" 2925    19850    270 bottom
+C2-4-12     "1206"          "unknown" 2925    21350    270 bottom
+C2-4-13     "1206"          "unknown" 2925    22850    270 bottom
+C2-4-14     "1206"          "unknown" 2925    24350    270 bottom
+C2-5-0      "1206"          "unknown" 3425    3350     270 bottom
+C2-5-1      "1206"          "unknown" 3425    4850     270 bottom
+C2-5-2      "1206"          "unknown" 3425    6350     270 bottom
+C2-5-3      "1206"          "unknown" 3425    7850     270 bottom
+C2-5-4      "1206"          "unknown" 3425    9350     270 bottom
+C2-5-5      "1206"          "unknown" 3425    10850    270 bottom
+C2-5-6      "1206"          "unknown" 3425    12350    270 bottom
+C2-5-7      "1206"          "unknown" 3425    13850    270 bottom
+C2-5-8      "1206"          "unknown" 3425    15350    270 bottom
+C2-5-9      "1206"          "unknown" 3425    16850    270 bottom
+C2-5-10     "1206"          "unknown" 3425    18350    270 bottom
+C2-5-11     "1206"          "unknown" 3425    19850    270 bottom
+C2-5-12     "1206"          "unknown" 3425    21350    270 bottom
+C2-5-13     "1206"          "unknown" 3425    22850    270 bottom
+C2-5-14     "1206"          "unknown" 3425    24350    270 bottom
+C2-6-0      "1206"          "unknown" 3925    3350     270 bottom
+C2-6-1      "1206"          "unknown" 3925    4850     270 bottom
+C2-6-2      "1206"          "unknown" 3925    6350     270 bottom
+C2-6-3      "1206"          "unknown" 3925    7850     270 bottom
+C2-6-4      "1206"          "unknown" 3925    9350     270 bottom
+C2-6-5      "1206"          "unknown" 3925    10850    270 bottom
+C2-6-6      "1206"          "unknown" 3925    12350    270 bottom
+C2-6-7      "1206"          "unknown" 3925    13850    270 bottom
+C2-6-8      "1206"          "unknown" 3925    15350    270 bottom
+C2-6-9      "1206"          "unknown" 3925    16850    270 bottom
+C2-6-10     "1206"          "unknown" 3925    18350    270 bottom
+C2-6-11     "1206"          "unknown" 3925    19850    270 bottom
+C2-6-12     "1206"          "unknown" 3925    21350    270 bottom
+C2-6-13     "1206"          "unknown" 3925    22850    270 bottom
+C2-6-14     "1206"          "unknown" 3925    24350    270 bottom
+C2-7-0      "1206"          "unknown" 4425    3350     270 bottom
+C2-7-1      "1206"          "unknown" 4425    4850     270 bottom
+C2-7-2      "1206"          "unknown" 4425    6350     270 bottom
+C2-7-3      "1206"          "unknown" 4425    7850     270 bottom
+C2-7-4      "1206"          "unknown" 4425    9350     270 bottom
+C2-7-5      "1206"          "unknown" 4425    10850    270 bottom
+C2-7-6      "1206"          "unknown" 4425    12350    270 bottom
+C2-7-7      "1206"          "unknown" 4425    13850    270 bottom
+C2-7-8      "1206"          "unknown" 4425    15350    270 bottom
+C2-7-9      "1206"          "unknown" 4425    16850    270 bottom
+C2-7-10     "1206"          "unknown" 4425    18350    270 bottom
+C2-7-11     "1206"          "unknown" 4425    19850    270 bottom
+C2-7-12     "1206"          "unknown" 4425    21350    270 bottom
+C2-7-13     "1206"          "unknown" 4425    22850    270 bottom
+C2-7-14     "1206"          "unknown" 4425    24350    270 bottom
+C2-8-0      "1206"          "unknown" 4925    3350     270 bottom
+C2-8-1      "1206"          "unknown" 4925    4850     270 bottom
+C2-8-2      "1206"          "unknown" 4925    6350     270 bottom
+C2-8-3      "1206"          "unknown" 4925    7850     270 bottom
+C2-8-4      "1206"          "unknown" 4925    9350     270 bottom
+C2-8-5      "1206"          "unknown" 4925    10850    270 bottom
+C2-8-6      "1206"          "unknown" 4925    12350    270 bottom
+C2-8-7      "1206"          "unknown" 4925    13850    270 bottom
+C2-8-8      "1206"          "unknown" 4925    15350    270 bottom
+C2-8-9      "1206"          "unknown" 4925    16850    270 bottom
+C2-8-10     "1206"          "unknown" 4925    18350    270 bottom
+C2-8-11     "1206"          "unknown" 4925    19850    270 bottom
+C2-8-12     "1206"          "unknown" 4925    21350    270 bottom
+C2-8-13     "1206"          "unknown" 4925    22850    270 bottom
+C2-8-14     "1206"          "unknown" 4925    24350    270 bottom
+C2-9-0      "1206"          "unknown" 5425    3350     270 bottom
+C2-9-1      "1206"          "unknown" 5425    4850     270 bottom
+C2-9-2      "1206"          "unknown" 5425    6350     270 bottom
+C2-9-3      "1206"          "unknown" 5425    7850     270 bottom
+C2-9-4      "1206"          "unknown" 5425    9350     270 bottom
+C2-9-5      "1206"          "unknown" 5425    10850    270 bottom
+C2-9-6      "1206"          "unknown" 5425    12350    270 bottom
+C2-9-7      "1206"          "unknown" 5425    13850    270 bottom
+C2-9-8      "1206"          "unknown" 5425    15350    270 bottom
+C2-9-9      "1206"          "unknown" 5425    16850    270 bottom
+C2-9-10     "1206"          "unknown" 5425    18350    270 bottom
+C2-9-11     "1206"          "unknown" 5425    19850    270 bottom
+C2-9-12     "1206"          "unknown" 5425    21350    270 bottom
+C2-9-13     "1206"          "unknown" 5425    22850    270 bottom
+C2-9-14     "1206"          "unknown" 5425    24350    270 bottom
+C2-10-0     "1206"          "unknown" 5925    3350     270 bottom
+C2-10-1     "1206"          "unknown" 5925    4850     270 bottom
+C2-10-2     "1206"          "unknown" 5925    6350     270 bottom
+C2-10-3     "1206"          "unknown" 5925    7850     270 bottom
+C2-10-4     "1206"          "unknown" 5925    9350     270 bottom
+C2-10-5     "1206"          "unknown" 5925    10850    270 bottom
+C2-10-6     "1206"          "unknown" 5925    12350    270 bottom
+C2-10-7     "1206"          "unknown" 5925    13850    270 bottom
+C2-10-8     "1206"          "unknown" 5925    15350    270 bottom
+C2-10-9     "1206"          "unknown" 5925    16850    270 bottom
+C2-10-10    "1206"          "unknown" 5925    18350    270 bottom
+C2-10-11    "1206"          "unknown" 5925    19850    270 bottom
+C2-10-12    "1206"          "unknown" 5925    21350    270 bottom
+C2-10-13    "1206"          "unknown" 5925    22850    270 bottom
+C2-10-14    "1206"          "unknown" 5925    24350    270 bottom
+C2-11-0     "1206"          "unknown" 6425    3350     270 bottom
+C2-11-1     "1206"          "unknown" 6425    4850     270 bottom
+C2-11-2     "1206"          "unknown" 6425    6350     270 bottom
+C2-11-3     "1206"          "unknown" 6425    7850     270 bottom
+C2-11-4     "1206"          "unknown" 6425    9350     270 bottom
+C2-11-5     "1206"          "unknown" 6425    10850    270 bottom
+C2-11-6     "1206"          "unknown" 6425    12350    270 bottom
+C2-11-7     "1206"          "unknown" 6425    13850    270 bottom
+C2-11-8     "1206"          "unknown" 6425    15350    270 bottom
+C2-11-9     "1206"          "unknown" 6425    16850    270 bottom
+C2-11-10    "1206"          "unknown" 6425    18350    270 bottom
+C2-11-11    "1206"          "unknown" 6425    19850    270 bottom
+C2-11-12    "1206"          "unknown" 6425    21350    270 bottom
+C2-11-13    "1206"          "unknown" 6425    22850    270 bottom
+C2-11-14    "1206"          "unknown" 6425    24350    270 bottom
+C2-12-0     "1206"          "unknown" 6925    3350     270 bottom
+C2-12-1     "1206"          "unknown" 6925    4850     270 bottom
+C2-12-2     "1206"          "unknown" 6925    6350     270 bottom
+C2-12-3     "1206"          "unknown" 6925    7850     270 bottom
+C2-12-4     "1206"          "unknown" 6925    9350     270 bottom
+C2-12-5     "1206"          "unknown" 6925    10850    270 bottom
+C2-12-6     "1206"          "unknown" 6925    12350    270 bottom
+C2-12-7     "1206"          "unknown" 6925    13850    270 bottom
+C2-12-8     "1206"          "unknown" 6925    15350    270 bottom
+C2-12-9     "1206"          "unknown" 6925    16850    270 bottom
+C2-12-10    "1206"          "unknown" 6925    18350    270 bottom
+C2-12-11    "1206"          "unknown" 6925    19850    270 bottom
+C2-12-12    "1206"          "unknown" 6925    21350    270 bottom
+C2-12-13    "1206"          "unknown" 6925    22850    270 bottom
+C2-12-14    "1206"          "unknown" 6925    24350    270 bottom
+C2-13-0     "1206"          "unknown" 7425    3350     270 bottom
+C2-13-1     "1206"          "unknown" 7425    4850     270 bottom
+C2-13-2     "1206"          "unknown" 7425    6350     270 bottom
+C2-13-3     "1206"          "unknown" 7425    7850     270 bottom
+C2-13-4     "1206"          "unknown" 7425    9350     270 bottom
+C2-13-5     "1206"          "unknown" 7425    10850    270 bottom
+C2-13-6     "1206"          "unknown" 7425    12350    270 bottom
+C2-13-7     "1206"          "unknown" 7425    13850    270 bottom
+C2-13-8     "1206"          "unknown" 7425    15350    270 bottom
+C2-13-9     "1206"          "unknown" 7425    16850    270 bottom
+C2-13-10    "1206"          "unknown" 7425    18350    270 bottom
+C2-13-11    "1206"          "unknown" 7425    19850    270 bottom
+C2-13-12    "1206"          "unknown" 7425    21350    270 bottom
+C2-13-13    "1206"          "unknown" 7425    22850    270 bottom
+C2-13-14    "1206"          "unknown" 7425    24350    270 bottom
+C2-14-0     "1206"          "unknown" 7925    3350     270 bottom
+C2-14-1     "1206"          "unknown" 7925    4850     270 bottom
+C2-14-2     "1206"          "unknown" 7925    6350     270 bottom
+C2-14-3     "1206"          "unknown" 7925    7850     270 bottom
+C2-14-4     "1206"          "unknown" 7925    9350     270 bottom
+C2-14-5     "1206"          "unknown" 7925    10850    270 bottom
+C2-14-6     "1206"          "unknown" 7925    12350    270 bottom
+C2-14-7     "1206"          "unknown" 7925    13850    270 bottom
+C2-14-8     "1206"          "unknown" 7925    15350    270 bottom
+C2-14-9     "1206"          "unknown" 7925    16850    270 bottom
+C2-14-10    "1206"          "unknown" 7925    18350    270 bottom
+C2-14-11    "1206"          "unknown" 7925    19850    270 bottom
+C2-14-12    "1206"          "unknown" 7925    21350    270 bottom
+C2-14-13    "1206"          "unknown" 7925    22850    270 bottom
+C2-14-14    "1206"          "unknown" 7925    24350    270 bottom
+R2-0-0      "1206"          "unknown" 506.90  3751.38  180 bottom
+R2-0-1      "1206"          "unknown" 506.9   5251.38  180 bottom
+R2-0-2      "1206"          "unknown" 506.9   6751.38  180 bottom
+R2-0-3      "1206"          "unknown" 506.9   8251.38  180 bottom
+R2-0-4      "1206"          "unknown" 506.9   9751.38  180 bottom
+R2-0-5      "1206"          "unknown" 506.9   11251.38 180 bottom
+R2-0-6      "1206"          "unknown" 506.9   12751.38 180 bottom
+R2-0-7      "1206"          "unknown" 506.9   14251.38 180 bottom
+R2-0-8      "1206"          "unknown" 506.9   15751.38 180 bottom
+R2-0-9      "1206"          "unknown" 506.9   17251.38 180 bottom
+R2-0-10     "1206"          "unknown" 506.9   18751.38 180 bottom
+R2-0-11     "1206"          "unknown" 506.9   20251.38 180 bottom
+R2-0-12     "1206"          "unknown" 506.9   21751.38 180 bottom
+R2-0-13     "1206"          "unknown" 506.9   23251.38 180 bottom
+R2-0-14     "1206"          "unknown" 506.9   24751.38 180 bottom
+R2-1-0      "1206"          "unknown" 1006.9  3751.38  180 bottom
+R2-1-1      "1206"          "unknown" 1006.9  5251.38  180 bottom
+R2-1-2      "1206"          "unknown" 1006.9  6751.38  180 bottom
+R2-1-3      "1206"          "unknown" 1006.9  8251.38  180 bottom
+R2-1-4      "1206"          "unknown" 1006.9  9751.38  180 bottom
+R2-1-5      "1206"          "unknown" 1006.9  11251.38 180 bottom
+R2-1-6      "1206"          "unknown" 1006.9  12751.38 180 bottom
+R2-1-7      "1206"          "unknown" 1006.9  14251.38 180 bottom
+R2-1-8      "1206"          "unknown" 1006.9  15751.38 180 bottom
+R2-1-9      "1206"          "unknown" 1006.9  17251.38 180 bottom
+R2-1-10     "1206"          "unknown" 1006.9  18751.38 180 bottom
+R2-1-11     "1206"          "unknown" 1006.9  20251.38 180 bottom
+R2-1-12     "1206"          "unknown" 1006.9  21751.38 180 bottom
+R2-1-13     "1206"          "unknown" 1006.9  23251.38 180 bottom
+R2-1-14     "1206"          "unknown" 1006.9  24751.38 180 bottom
+R2-2-0      "1206"          "unknown" 1506.9  3751.38  180 bottom
+R2-2-1      "1206"          "unknown" 1506.9  5251.38  180 bottom
+R2-2-2      "1206"          "unknown" 1506.9  6751.38  180 bottom
+R2-2-3      "1206"          "unknown" 1506.9  8251.38  180 bottom
+R2-2-4      "1206"          "unknown" 1506.9  9751.38  180 bottom
+R2-2-5      "1206"          "unknown" 1506.9  11251.38 180 bottom
+R2-2-6      "1206"          "unknown" 1506.9  12751.38 180 bottom
+R2-2-7      "1206"          "unknown" 1506.9  14251.38 180 bottom
+R2-2-8      "1206"          "unknown" 1506.9  15751.38 180 bottom
+R2-2-9      "1206"          "unknown" 1506.9  17251.38 180 bottom
+R2-2-10     "1206"          "unknown" 1506.9  18751.38 180 bottom
+R2-2-11     "1206"          "unknown" 1506.9  20251.38 180 bottom
+R2-2-12     "1206"          "unknown" 1506.9  21751.38 180 bottom
+R2-2-13     "1206"          "unknown" 1506.9  23251.38 180 bottom
+R2-2-14     "1206"          "unknown" 1506.9  24751.38 180 bottom
+R2-3-0      "1206"          "unknown" 2006.9  3751.38  180 bottom
+R2-3-1      "1206"          "unknown" 2006.9  5251.38  180 bottom
+R2-3-2      "1206"          "unknown" 2006.9  6751.38  180 bottom
+R2-3-3      "1206"          "unknown" 2006.9  8251.38  180 bottom
+R2-3-4      "1206"          "unknown" 2006.9  9751.38  180 bottom
+R2-3-5      "1206"          "unknown" 2006.9  11251.38 180 bottom
+R2-3-6      "1206"          "unknown" 2006.9  12751.38 180 bottom
+R2-3-7      "1206"          "unknown" 2006.9  14251.38 180 bottom
+R2-3-8      "1206"          "unknown" 2006.9  15751.38 180 bottom
+R2-3-9      "1206"          "unknown" 2006.9  17251.38 180 bottom
+R2-3-10     "1206"          "unknown" 2006.9  18751.38 180 bottom
+R2-3-11     "1206"          "unknown" 2006.9  20251.38 180 bottom
+R2-3-12     "1206"          "unknown" 2006.9  21751.38 180 bottom
+R2-3-13     "1206"          "unknown" 2006.9  23251.38 180 bottom
+R2-3-14     "1206"          "unknown" 2006.9  24751.38 180 bottom
+R2-4-0      "1206"          "unknown" 2506.9  3751.38  180 bottom
+R2-4-1      "1206"          "unknown" 2506.9  5251.38  180 bottom
+R2-4-2      "1206"          "unknown" 2506.9  6751.38  180 bottom
+R2-4-3      "1206"          "unknown" 2506.9  8251.38  180 bottom
+R2-4-4      "1206"          "unknown" 2506.9  9751.38  180 bottom
+R2-4-5      "1206"          "unknown" 2506.9  11251.38 180 bottom
+R2-4-6      "1206"          "unknown" 2506.9  12751.38 180 bottom
+R2-4-7      "1206"          "unknown" 2506.9  14251.38 180 bottom
+R2-4-8      "1206"          "unknown" 2506.9  15751.38 180 bottom
+R2-4-9      "1206"          "unknown" 2506.9  17251.38 180 bottom
+R2-4-10     "1206"          "unknown" 2506.9  18751.38 180 bottom
+R2-4-11     "1206"          "unknown" 2506.9  20251.38 180 bottom
+R2-4-12     "1206"          "unknown" 2506.9  21751.38 180 bottom
+R2-4-13     "1206"          "unknown" 2506.9  23251.38 180 bottom
+R2-4-14     "1206"          "unknown" 2506.9  24751.38 180 bottom
+R2-5-0      "1206"          "unknown" 3006.9  3751.38  180 bottom
+R2-5-1      "1206"          "unknown" 3006.9  5251.38  180 bottom
+R2-5-2      "1206"          "unknown" 3006.9  6751.38  180 bottom
+R2-5-3      "1206"          "unknown" 3006.9  8251.38  180 bottom
+R2-5-4      "1206"          "unknown" 3006.9  9751.38  180 bottom
+R2-5-5      "1206"          "unknown" 3006.9  11251.38 180 bottom
+R2-5-6      "1206"          "unknown" 3006.9  12751.38 180 bottom
+R2-5-7      "1206"          "unknown" 3006.9  14251.38 180 bottom
+R2-5-8      "1206"          "unknown" 3006.9  15751.38 180 bottom
+R2-5-9      "1206"          "unknown" 3006.9  17251.38 180 bottom
+R2-5-10     "1206"          "unknown" 3006.9  18751.38 180 bottom
+R2-5-11     "1206"          "unknown" 3006.9  20251.38 180 bottom
+R2-5-12     "1206"          "unknown" 3006.9  21751.38 180 bottom
+R2-5-13     "1206"          "unknown" 3006.9  23251.38 180 bottom
+R2-5-14     "1206"          "unknown" 3006.9  24751.38 180 bottom
+R2-6-0      "1206"          "unknown" 3506.9  3751.38  180 bottom
+R2-6-1      "1206"          "unknown" 3506.9  5251.38  180 bottom
+R2-6-2      "1206"          "unknown" 3506.9  6751.38  180 bottom
+R2-6-3      "1206"          "unknown" 3506.9  8251.38  180 bottom
+R2-6-4      "1206"          "unknown" 3506.9  9751.38  180 bottom
+R2-6-5      "1206"          "unknown" 3506.9  11251.38 180 bottom
+R2-6-6      "1206"          "unknown" 3506.9  12751.38 180 bottom
+R2-6-7      "1206"          "unknown" 3506.9  14251.38 180 bottom
+R2-6-8      "1206"          "unknown" 3506.9  15751.38 180 bottom
+R2-6-9      "1206"          "unknown" 3506.9  17251.38 180 bottom
+R2-6-10     "1206"          "unknown" 3506.9  18751.38 180 bottom
+R2-6-11     "1206"          "unknown" 3506.9  20251.38 180 bottom
+R2-6-12     "1206"          "unknown" 3506.9  21751.38 180 bottom
+R2-6-13     "1206"          "unknown" 3506.9  23251.38 180 bottom
+R2-6-14     "1206"          "unknown" 3506.9  24751.38 180 bottom
+R2-7-0      "1206"          "unknown" 4006.9  3751.38  180 bottom
+R2-7-1      "1206"          "unknown" 4006.9  5251.38  180 bottom
+R2-7-2      "1206"          "unknown" 4006.9  6751.38  180 bottom
+R2-7-3      "1206"          "unknown" 4006.9  8251.38  180 bottom
+R2-7-4      "1206"          "unknown" 4006.9  9751.38  180 bottom
+R2-7-5      "1206"          "unknown" 4006.9  11251.38 180 bottom
+R2-7-6      "1206"          "unknown" 4006.9  12751.38 180 bottom
+R2-7-7      "1206"          "unknown" 4006.9  14251.38 180 bottom
+R2-7-8      "1206"          "unknown" 4006.9  15751.38 180 bottom
+R2-7-9      "1206"          "unknown" 4006.9  17251.38 180 bottom
+R2-7-10     "1206"          "unknown" 4006.9  18751.38 180 bottom
+R2-7-11     "1206"          "unknown" 4006.9  20251.38 180 bottom
+R2-7-12     "1206"          "unknown" 4006.9  21751.38 180 bottom
+R2-7-13     "1206"          "unknown" 4006.9  23251.38 180 bottom
+R2-7-14     "1206"          "unknown" 4006.9  24751.38 180 bottom
+R2-8-0      "1206"          "unknown" 4506.9  3751.38  180 bottom
+R2-8-1      "1206"          "unknown" 4506.9  5251.38  180 bottom
+R2-8-2      "1206"          "unknown" 4506.9  6751.38  180 bottom
+R2-8-3      "1206"          "unknown" 4506.9  8251.38  180 bottom
+R2-8-4      "1206"          "unknown" 4506.9  9751.38  180 bottom
+R2-8-5      "1206"          "unknown" 4506.9  11251.38 180 bottom
+R2-8-6      "1206"          "unknown" 4506.9  12751.38 180 bottom
+R2-8-7      "1206"          "unknown" 4506.9  14251.38 180 bottom
+R2-8-8      "1206"          "unknown" 4506.9  15751.38 180 bottom
+R2-8-9      "1206"          "unknown" 4506.9  17251.38 180 bottom
+R2-8-10     "1206"          "unknown" 4506.9  18751.38 180 bottom
+R2-8-11     "1206"          "unknown" 4506.9  20251.38 180 bottom
+R2-8-12     "1206"          "unknown" 4506.9  21751.38 180 bottom
+R2-8-13     "1206"          "unknown" 4506.9  23251.38 180 bottom
+R2-8-14     "1206"          "unknown" 4506.9  24751.38 180 bottom
+R2-9-0      "1206"          "unknown" 5006.9  3751.38  180 bottom
+R2-9-1      "1206"          "unknown" 5006.9  5251.38  180 bottom
+R2-9-2      "1206"          "unknown" 5006.9  6751.38  180 bottom
+R2-9-3      "1206"          "unknown" 5006.9  8251.38  180 bottom
+R2-9-4      "1206"          "unknown" 5006.9  9751.38  180 bottom
+R2-9-5      "1206"          "unknown" 5006.9  11251.38 180 bottom
+R2-9-6      "1206"          "unknown" 5006.9  12751.38 180 bottom
+R2-9-7      "1206"          "unknown" 5006.9  14251.38 180 bottom
+R2-9-8      "1206"          "unknown" 5006.9  15751.38 180 bottom
+R2-9-9      "1206"          "unknown" 5006.9  17251.38 180 bottom
+R2-9-10     "1206"          "unknown" 5006.9  18751.38 180 bottom
+R2-9-11     "1206"          "unknown" 5006.9  20251.38 180 bottom
+R2-9-12     "1206"          "unknown" 5006.9  21751.38 180 bottom
+R2-9-13     "1206"          "unknown" 5006.9  23251.38 180 bottom
+R2-9-14     "1206"          "unknown" 5006.9  24751.38 180 bottom
+R2-10-0     "1206"          "unknown" 5506.9  3751.38  180 bottom
+R2-10-1     "1206"          "unknown" 5506.9  5251.38  180 bottom
+R2-10-2     "1206"          "unknown" 5506.9  6751.38  180 bottom
+R2-10-3     "1206"          "unknown" 5506.9  8251.38  180 bottom
+R2-10-4     "1206"          "unknown" 5506.9  9751.38  180 bottom
+R2-10-5     "1206"          "unknown" 5506.9  11251.38 180 bottom
+R2-10-6     "1206"          "unknown" 5506.9  12751.38 180 bottom
+R2-10-7     "1206"          "unknown" 5506.9  14251.38 180 bottom
+R2-10-8     "1206"          "unknown" 5506.9  15751.38 180 bottom
+R2-10-9     "1206"          "unknown" 5506.9  17251.38 180 bottom
+R2-10-10    "1206"          "unknown" 5506.9  18751.38 180 bottom
+R2-10-11    "1206"          "unknown" 5506.9  20251.38 180 bottom
+R2-10-12    "1206"          "unknown" 5506.9  21751.38 180 bottom
+R2-10-13    "1206"          "unknown" 5506.9  23251.38 180 bottom
+R2-10-14    "1206"          "unknown" 5506.9  24751.38 180 bottom
+R2-11-0     "1206"          "unknown" 6006.9  3751.38  180 bottom
+R2-11-1     "1206"          "unknown" 6006.9  5251.38  180 bottom
+R2-11-2     "1206"          "unknown" 6006.9  6751.38  180 bottom
+R2-11-3     "1206"          "unknown" 6006.9  8251.38  180 bottom
+R2-11-4     "1206"          "unknown" 6006.9  9751.38  180 bottom
+R2-11-5     "1206"          "unknown" 6006.9  11251.38 180 bottom
+R2-11-6     "1206"          "unknown" 6006.9  12751.38 180 bottom
+R2-11-7     "1206"          "unknown" 6006.9  14251.38 180 bottom
+R2-11-8     "1206"          "unknown" 6006.9  15751.38 180 bottom
+R2-11-9     "1206"          "unknown" 6006.9  17251.38 180 bottom
+R2-11-10    "1206"          "unknown" 6006.9  18751.38 180 bottom
+R2-11-11    "1206"          "unknown" 6006.9  20251.38 180 bottom
+R2-11-12    "1206"          "unknown" 6006.9  21751.38 180 bottom
+R2-11-13    "1206"          "unknown" 6006.9  23251.38 180 bottom
+R2-11-14    "1206"          "unknown" 6006.9  24751.38 180 bottom
+R2-12-0     "1206"          "unknown" 6506.9  3751.38  180 bottom
+R2-12-1     "1206"          "unknown" 6506.9  5251.38  180 bottom
+R2-12-2     "1206"          "unknown" 6506.9  6751.38  180 bottom
+R2-12-3     "1206"          "unknown" 6506.9  8251.38  180 bottom
+R2-12-4     "1206"          "unknown" 6506.9  9751.38  180 bottom
+R2-12-5     "1206"          "unknown" 6506.9  11251.38 180 bottom
+R2-12-6     "1206"          "unknown" 6506.9  12751.38 180 bottom
+R2-12-7     "1206"          "unknown" 6506.9  14251.38 180 bottom
+R2-12-8     "1206"          "unknown" 6506.9  15751.38 180 bottom
+R2-12-9     "1206"          "unknown" 6506.9  17251.38 180 bottom
+R2-12-10    "1206"          "unknown" 6506.9  18751.38 180 bottom
+R2-12-11    "1206"          "unknown" 6506.9  20251.38 180 bottom
+R2-12-12    "1206"          "unknown" 6506.9  21751.38 180 bottom
+R2-12-13    "1206"          "unknown" 6506.9  23251.38 180 bottom
+R2-12-14    "1206"          "unknown" 6506.9  24751.38 180 bottom
+R2-13-0     "1206"          "unknown" 7006.9  3751.38  180 bottom
+R2-13-1     "1206"          "unknown" 7006.9  5251.38  180 bottom
+R2-13-2     "1206"          "unknown" 7006.9  6751.38  180 bottom
+R2-13-3     "1206"          "unknown" 7006.9  8251.38  180 bottom
+R2-13-4     "1206"          "unknown" 7006.9  9751.38  180 bottom
+R2-13-5     "1206"          "unknown" 7006.9  11251.38 180 bottom
+R2-13-6     "1206"          "unknown" 7006.9  12751.38 180 bottom
+R2-13-7     "1206"          "unknown" 7006.9  14251.38 180 bottom
+R2-13-8     "1206"          "unknown" 7006.9  15751.38 180 bottom
+R2-13-9     "1206"          "unknown" 7006.9  17251.38 180 bottom
+R2-13-10    "1206"          "unknown" 7006.9  18751.38 180 bottom
+R2-13-11    "1206"          "unknown" 7006.9  20251.38 180 bottom
+R2-13-12    "1206"          "unknown" 7006.9  21751.38 180 bottom
+R2-13-13    "1206"          "unknown" 7006.9  23251.38 180 bottom
+R2-13-14    "1206"          "unknown" 7006.9  24751.38 180 bottom
+R2-14-0     "1206"          "unknown" 7506.9  3751.38  180 bottom
+R2-14-1     "1206"          "unknown" 7506.9  5251.38  180 bottom
+R2-14-2     "1206"          "unknown" 7506.9  6751.38  180 bottom
+R2-14-3     "1206"          "unknown" 7506.9  8251.38  180 bottom
+R2-14-4     "1206"          "unknown" 7506.9  9751.38  180 bottom
+R2-14-5     "1206"          "unknown" 7506.9  11251.38 180 bottom
+R2-14-6     "1206"          "unknown" 7506.9  12751.38 180 bottom
+R2-14-7     "1206"          "unknown" 7506.9  14251.38 180 bottom
+R2-14-8     "1206"          "unknown" 7506.9  15751.38 180 bottom
+R2-14-9     "1206"          "unknown" 7506.9  17251.38 180 bottom
+R2-14-10    "1206"          "unknown" 7506.9  18751.38 180 bottom
+R2-14-11    "1206"          "unknown" 7506.9  20251.38 180 bottom
+R2-14-12    "1206"          "unknown" 7506.9  21751.38 180 bottom
+R2-14-13    "1206"          "unknown" 7506.9  23251.38 180 bottom
+R2-14-14    "1206"          "unknown" 7506.9  24751.38 180 bottom
+CONN1-0-0   "CONNECTOR-2-1" "unknown" 275.00  3625.00  0   top   
+CONN1-0-1   "CONNECTOR-2-1" "unknown" 275     5125     0   top   
+CONN1-0-2   "CONNECTOR-2-1" "unknown" 275     6625     0   top   
+CONN1-0-3   "CONNECTOR-2-1" "unknown" 275     8125     0   top   
+CONN1-0-4   "CONNECTOR-2-1" "unknown" 275     9625     0   top   
+CONN1-0-5   "CONNECTOR-2-1" "unknown" 275     11125    0   top   
+CONN1-0-6   "CONNECTOR-2-1" "unknown" 275     12625    0   top   
+CONN1-0-7   "CONNECTOR-2-1" "unknown" 275     14125    0   top   
+CONN1-0-8   "CONNECTOR-2-1" "unknown" 275     15625    0   top   
+CONN1-0-9   "CONNECTOR-2-1" "unknown" 275     17125    0   top   
+CONN1-0-10  "CONNECTOR-2-1" "unknown" 275     18625    0   top   
+CONN1-0-11  "CONNECTOR-2-1" "unknown" 275     20125    0   top   
+CONN1-0-12  "CONNECTOR-2-1" "unknown" 275     21625    0   top   
+CONN1-0-13  "CONNECTOR-2-1" "unknown" 275     23125    0   top   
+CONN1-0-14  "CONNECTOR-2-1" "unknown" 275     24625    0   top   
+CONN1-1-0   "CONNECTOR-2-1" "unknown" 775     3625     0   top   
+CONN1-1-1   "CONNECTOR-2-1" "unknown" 775     5125     0   top   
+CONN1-1-2   "CONNECTOR-2-1" "unknown" 775     6625     0   top   
+CONN1-1-3   "CONNECTOR-2-1" "unknown" 775     8125     0   top   
+CONN1-1-4   "CONNECTOR-2-1" "unknown" 775     9625     0   top   
+CONN1-1-5   "CONNECTOR-2-1" "unknown" 775     11125    0   top   
+CONN1-1-6   "CONNECTOR-2-1" "unknown" 775     12625    0   top   
+CONN1-1-7   "CONNECTOR-2-1" "unknown" 775     14125    0   top   
+CONN1-1-8   "CONNECTOR-2-1" "unknown" 775     15625    0   top   
+CONN1-1-9   "CONNECTOR-2-1" "unknown" 775     17125    0   top   
+CONN1-1-10  "CONNECTOR-2-1" "unknown" 775     18625    0   top   
+CONN1-1-11  "CONNECTOR-2-1" "unknown" 775     20125    0   top   
+CONN1-1-12  "CONNECTOR-2-1" "unknown" 775     21625    0   top   
+CONN1-1-13  "CONNECTOR-2-1" "unknown" 775     23125    0   top   
+CONN1-1-14  "CONNECTOR-2-1" "unknown" 775     24625    0   top   
+CONN1-2-0   "CONNECTOR-2-1" "unknown" 1275    3625     0   top   
+CONN1-2-1   "CONNECTOR-2-1" "unknown" 1275    5125     0   top   
+CONN1-2-2   "CONNECTOR-2-1" "unknown" 1275    6625     0   top   
+CONN1-2-3   "CONNECTOR-2-1" "unknown" 1275    8125     0   top   
+CONN1-2-4   "CONNECTOR-2-1" "unknown" 1275    9625     0   top   
+CONN1-2-5   "CONNECTOR-2-1" "unknown" 1275    11125    0   top   
+CONN1-2-6   "CONNECTOR-2-1" "unknown" 1275    12625    0   top   
+CONN1-2-7   "CONNECTOR-2-1" "unknown" 1275    14125    0   top   
+CONN1-2-8   "CONNECTOR-2-1" "unknown" 1275    15625    0   top   
+CONN1-2-9   "CONNECTOR-2-1" "unknown" 1275    17125    0   top   
+CONN1-2-10  "CONNECTOR-2-1" "unknown" 1275    18625    0   top   
+CONN1-2-11  "CONNECTOR-2-1" "unknown" 1275    20125    0   top   
+CONN1-2-12  "CONNECTOR-2-1" "unknown" 1275    21625    0   top   
+CONN1-2-13  "CONNECTOR-2-1" "unknown" 1275    23125    0   top   
+CONN1-2-14  "CONNECTOR-2-1" "unknown" 1275    24625    0   top   
+CONN1-3-0   "CONNECTOR-2-1" "unknown" 1775    3625     0   top   
+CONN1-3-1   "CONNECTOR-2-1" "unknown" 1775    5125     0   top   
+CONN1-3-2   "CONNECTOR-2-1" "unknown" 1775    6625     0   top   
+CONN1-3-3   "CONNECTOR-2-1" "unknown" 1775    8125     0   top   
+CONN1-3-4   "CONNECTOR-2-1" "unknown" 1775    9625     0   top   
+CONN1-3-5   "CONNECTOR-2-1" "unknown" 1775    11125    0   top   
+CONN1-3-6   "CONNECTOR-2-1" "unknown" 1775    12625    0   top   
+CONN1-3-7   "CONNECTOR-2-1" "unknown" 1775    14125    0   top   
+CONN1-3-8   "CONNECTOR-2-1" "unknown" 1775    15625    0   top   
+CONN1-3-9   "CONNECTOR-2-1" "unknown" 1775    17125    0   top   
+CONN1-3-10  "CONNECTOR-2-1" "unknown" 1775    18625    0   top   
+CONN1-3-11  "CONNECTOR-2-1" "unknown" 1775    20125    0   top   
+CONN1-3-12  "CONNECTOR-2-1" "unknown" 1775    21625    0   top   
+CONN1-3-13  "CONNECTOR-2-1" "unknown" 1775    23125    0   top   
+CONN1-3-14  "CONNECTOR-2-1" "unknown" 1775    24625    0   top   
+CONN1-4-0   "CONNECTOR-2-1" "unknown" 2275    3625     0   top   
+CONN1-4-1   "CONNECTOR-2-1" "unknown" 2275    5125     0   top   
+CONN1-4-2   "CONNECTOR-2-1" "unknown" 2275    6625     0   top   
+CONN1-4-3   "CONNECTOR-2-1" "unknown" 2275    8125     0   top   
+CONN1-4-4   "CONNECTOR-2-1" "unknown" 2275    9625     0   top   
+CONN1-4-5   "CONNECTOR-2-1" "unknown" 2275    11125    0   top   
+CONN1-4-6   "CONNECTOR-2-1" "unknown" 2275    12625    0   top   
+CONN1-4-7   "CONNECTOR-2-1" "unknown" 2275    14125    0   top   
+CONN1-4-8   "CONNECTOR-2-1" "unknown" 2275    15625    0   top   
+CONN1-4-9   "CONNECTOR-2-1" "unknown" 2275    17125    0   top   
+CONN1-4-10  "CONNECTOR-2-1" "unknown" 2275    18625    0   top   
+CONN1-4-11  "CONNECTOR-2-1" "unknown" 2275    20125    0   top   
+CONN1-4-12  "CONNECTOR-2-1" "unknown" 2275    21625    0   top   
+CONN1-4-13  "CONNECTOR-2-1" "unknown" 2275    23125    0   top   
+CONN1-4-14  "CONNECTOR-2-1" "unknown" 2275    24625    0   top   
+CONN1-5-0   "CONNECTOR-2-1" "unknown" 2775    3625     0   top   
+CONN1-5-1   "CONNECTOR-2-1" "unknown" 2775    5125     0   top   
+CONN1-5-2   "CONNECTOR-2-1" "unknown" 2775    6625     0   top   
+CONN1-5-3   "CONNECTOR-2-1" "unknown" 2775    8125     0   top   
+CONN1-5-4   "CONNECTOR-2-1" "unknown" 2775    9625     0   top   
+CONN1-5-5   "CONNECTOR-2-1" "unknown" 2775    11125    0   top   
+CONN1-5-6   "CONNECTOR-2-1" "unknown" 2775    12625    0   top   
+CONN1-5-7   "CONNECTOR-2-1" "unknown" 2775    14125    0   top   
+CONN1-5-8   "CONNECTOR-2-1" "unknown" 2775    15625    0   top   
+CONN1-5-9   "CONNECTOR-2-1" "unknown" 2775    17125    0   top   
+CONN1-5-10  "CONNECTOR-2-1" "unknown" 2775    18625    0   top   
+CONN1-5-11  "CONNECTOR-2-1" "unknown" 2775    20125    0   top   
+CONN1-5-12  "CONNECTOR-2-1" "unknown" 2775    21625    0   top   
+CONN1-5-13  "CONNECTOR-2-1" "unknown" 2775    23125    0   top   
+CONN1-5-14  "CONNECTOR-2-1" "unknown" 2775    24625    0   top   
+CONN1-6-0   "CONNECTOR-2-1" "unknown" 3275    3625     0   top   
+CONN1-6-1   "CONNECTOR-2-1" "unknown" 3275    5125     0   top   
+CONN1-6-2   "CONNECTOR-2-1" "unknown" 3275    6625     0   top   
+CONN1-6-3   "CONNECTOR-2-1" "unknown" 3275    8125     0   top   
+CONN1-6-4   "CONNECTOR-2-1" "unknown" 3275    9625     0   top   
+CONN1-6-5   "CONNECTOR-2-1" "unknown" 3275    11125    0   top   
+CONN1-6-6   "CONNECTOR-2-1" "unknown" 3275    12625    0   top   
+CONN1-6-7   "CONNECTOR-2-1" "unknown" 3275    14125    0   top   
+CONN1-6-8   "CONNECTOR-2-1" "unknown" 3275    15625    0   top   
+CONN1-6-9   "CONNECTOR-2-1" "unknown" 3275    17125    0   top   
+CONN1-6-10  "CONNECTOR-2-1" "unknown" 3275    18625    0   top   
+CONN1-6-11  "CONNECTOR-2-1" "unknown" 3275    20125    0   top   
+CONN1-6-12  "CONNECTOR-2-1" "unknown" 3275    21625    0   top   
+CONN1-6-13  "CONNECTOR-2-1" "unknown" 3275    23125    0   top   
+CONN1-6-14  "CONNECTOR-2-1" "unknown" 3275    24625    0   top   
+CONN1-7-0   "CONNECTOR-2-1" "unknown" 3775    3625     0   top   
+CONN1-7-1   "CONNECTOR-2-1" "unknown" 3775    5125     0   top   
+CONN1-7-2   "CONNECTOR-2-1" "unknown" 3775    6625     0   top   
+CONN1-7-3   "CONNECTOR-2-1" "unknown" 3775    8125     0   top   
+CONN1-7-4   "CONNECTOR-2-1" "unknown" 3775    9625     0   top   
+CONN1-7-5   "CONNECTOR-2-1" "unknown" 3775    11125    0   top   
+CONN1-7-6   "CONNECTOR-2-1" "unknown" 3775    12625    0   top   
+CONN1-7-7   "CONNECTOR-2-1" "unknown" 3775    14125    0   top   
+CONN1-7-8   "CONNECTOR-2-1" "unknown" 3775    15625    0   top   
+CONN1-7-9   "CONNECTOR-2-1" "unknown" 3775    17125    0   top   
+CONN1-7-10  "CONNECTOR-2-1" "unknown" 3775    18625    0   top   
+CONN1-7-11  "CONNECTOR-2-1" "unknown" 3775    20125    0   top   
+CONN1-7-12  "CONNECTOR-2-1" "unknown" 3775    21625    0   top   
+CONN1-7-13  "CONNECTOR-2-1" "unknown" 3775    23125    0   top   
+CONN1-7-14  "CONNECTOR-2-1" "unknown" 3775    24625    0   top   
+CONN1-8-0   "CONNECTOR-2-1" "unknown" 4275    3625     0   top   
+CONN1-8-1   "CONNECTOR-2-1" "unknown" 4275    5125     0   top   
+CONN1-8-2   "CONNECTOR-2-1" "unknown" 4275    6625     0   top   
+CONN1-8-3   "CONNECTOR-2-1" "unknown" 4275    8125     0   top   
+CONN1-8-4   "CONNECTOR-2-1" "unknown" 4275    9625     0   top   
+CONN1-8-5   "CONNECTOR-2-1" "unknown" 4275    11125    0   top   
+CONN1-8-6   "CONNECTOR-2-1" "unknown" 4275    12625    0   top   
+CONN1-8-7   "CONNECTOR-2-1" "unknown" 4275    14125    0   top   
+CONN1-8-8   "CONNECTOR-2-1" "unknown" 4275    15625    0   top   
+CONN1-8-9   "CONNECTOR-2-1" "unknown" 4275    17125    0   top   
+CONN1-8-10  "CONNECTOR-2-1" "unknown" 4275    18625    0   top   
+CONN1-8-11  "CONNECTOR-2-1" "unknown" 4275    20125    0   top   
+CONN1-8-12  "CONNECTOR-2-1" "unknown" 4275    21625    0   top   
+CONN1-8-13  "CONNECTOR-2-1" "unknown" 4275    23125    0   top   
+CONN1-8-14  "CONNECTOR-2-1" "unknown" 4275    24625    0   top   
+CONN1-9-0   "CONNECTOR-2-1" "unknown" 4775    3625     0   top   
+CONN1-9-1   "CONNECTOR-2-1" "unknown" 4775    5125     0   top   
+CONN1-9-2   "CONNECTOR-2-1" "unknown" 4775    6625     0   top   
+CONN1-9-3   "CONNECTOR-2-1" "unknown" 4775    8125     0   top   
+CONN1-9-4   "CONNECTOR-2-1" "unknown" 4775    9625     0   top   
+CONN1-9-5   "CONNECTOR-2-1" "unknown" 4775    11125    0   top   
+CONN1-9-6   "CONNECTOR-2-1" "unknown" 4775    12625    0   top   
+CONN1-9-7   "CONNECTOR-2-1" "unknown" 4775    14125    0   top   
+CONN1-9-8   "CONNECTOR-2-1" "unknown" 4775    15625    0   top   
+CONN1-9-9   "CONNECTOR-2-1" "unknown" 4775    17125    0   top   
+CONN1-9-10  "CONNECTOR-2-1" "unknown" 4775    18625    0   top   
+CONN1-9-11  "CONNECTOR-2-1" "unknown" 4775    20125    0   top   
+CONN1-9-12  "CONNECTOR-2-1" "unknown" 4775    21625    0   top   
+CONN1-9-13  "CONNECTOR-2-1" "unknown" 4775    23125    0   top   
+CONN1-9-14  "CONNECTOR-2-1" "unknown" 4775    24625    0   top   
+CONN1-10-0  "CONNECTOR-2-1" "unknown" 5275    3625     0   top   
+CONN1-10-1  "CONNECTOR-2-1" "unknown" 5275    5125     0   top   
+CONN1-10-2  "CONNECTOR-2-1" "unknown" 5275    6625     0   top   
+CONN1-10-3  "CONNECTOR-2-1" "unknown" 5275    8125     0   top   
+CONN1-10-4  "CONNECTOR-2-1" "unknown" 5275    9625     0   top   
+CONN1-10-5  "CONNECTOR-2-1" "unknown" 5275    11125    0   top   
+CONN1-10-6  "CONNECTOR-2-1" "unknown" 5275    12625    0   top   
+CONN1-10-7  "CONNECTOR-2-1" "unknown" 5275    14125    0   top   
+CONN1-10-8  "CONNECTOR-2-1" "unknown" 5275    15625    0   top   
+CONN1-10-9  "CONNECTOR-2-1" "unknown" 5275    17125    0   top   
+CONN1-10-10 "CONNECTOR-2-1" "unknown" 5275    18625    0   top   
+CONN1-10-11 "CONNECTOR-2-1" "unknown" 5275    20125    0   top   
+CONN1-10-12 "CONNECTOR-2-1" "unknown" 5275    21625    0   top   
+CONN1-10-13 "CONNECTOR-2-1" "unknown" 5275    23125    0   top   
+CONN1-10-14 "CONNECTOR-2-1" "unknown" 5275    24625    0   top   
+CONN1-11-0  "CONNECTOR-2-1" "unknown" 5775    3625     0   top   
+CONN1-11-1  "CONNECTOR-2-1" "unknown" 5775    5125     0   top   
+CONN1-11-2  "CONNECTOR-2-1" "unknown" 5775    6625     0   top   
+CONN1-11-3  "CONNECTOR-2-1" "unknown" 5775    8125     0   top   
+CONN1-11-4  "CONNECTOR-2-1" "unknown" 5775    9625     0   top   
+CONN1-11-5  "CONNECTOR-2-1" "unknown" 5775    11125    0   top   
+CONN1-11-6  "CONNECTOR-2-1" "unknown" 5775    12625    0   top   
+CONN1-11-7  "CONNECTOR-2-1" "unknown" 5775    14125    0   top   
+CONN1-11-8  "CONNECTOR-2-1" "unknown" 5775    15625    0   top   
+CONN1-11-9  "CONNECTOR-2-1" "unknown" 5775    17125    0   top   
+CONN1-11-10 "CONNECTOR-2-1" "unknown" 5775    18625    0   top   
+CONN1-11-11 "CONNECTOR-2-1" "unknown" 5775    20125    0   top   
+CONN1-11-12 "CONNECTOR-2-1" "unknown" 5775    21625    0   top   
+CONN1-11-13 "CONNECTOR-2-1" "unknown" 5775    23125    0   top   
+CONN1-11-14 "CONNECTOR-2-1" "unknown" 5775    24625    0   top   
+CONN1-12-0  "CONNECTOR-2-1" "unknown" 6275    3625     0   top   
+CONN1-12-1  "CONNECTOR-2-1" "unknown" 6275    5125     0   top   
+CONN1-12-2  "CONNECTOR-2-1" "unknown" 6275    6625     0   top   
+CONN1-12-3  "CONNECTOR-2-1" "unknown" 6275    8125     0   top   
+CONN1-12-4  "CONNECTOR-2-1" "unknown" 6275    9625     0   top   
+CONN1-12-5  "CONNECTOR-2-1" "unknown" 6275    11125    0   top   
+CONN1-12-6  "CONNECTOR-2-1" "unknown" 6275    12625    0   top   
+CONN1-12-7  "CONNECTOR-2-1" "unknown" 6275    14125    0   top   
+CONN1-12-8  "CONNECTOR-2-1" "unknown" 6275    15625    0   top   
+CONN1-12-9  "CONNECTOR-2-1" "unknown" 6275    17125    0   top   
+CONN1-12-10 "CONNECTOR-2-1" "unknown" 6275    18625    0   top   
+CONN1-12-11 "CONNECTOR-2-1" "unknown" 6275    20125    0   top   
+CONN1-12-12 "CONNECTOR-2-1" "unknown" 6275    21625    0   top   
+CONN1-12-13 "CONNECTOR-2-1" "unknown" 6275    23125    0   top   
+CONN1-12-14 "CONNECTOR-2-1" "unknown" 6275    24625    0   top   
+CONN1-13-0  "CONNECTOR-2-1" "unknown" 6775    3625     0   top   
+CONN1-13-1  "CONNECTOR-2-1" "unknown" 6775    5125     0   top   
+CONN1-13-2  "CONNECTOR-2-1" "unknown" 6775    6625     0   top   
+CONN1-13-3  "CONNECTOR-2-1" "unknown" 6775    8125     0   top   
+CONN1-13-4  "CONNECTOR-2-1" "unknown" 6775    9625     0   top   
+CONN1-13-5  "CONNECTOR-2-1" "unknown" 6775    11125    0   top   
+CONN1-13-6  "CONNECTOR-2-1" "unknown" 6775    12625    0   top   
+CONN1-13-7  "CONNECTOR-2-1" "unknown" 6775    14125    0   top   
+CONN1-13-8  "CONNECTOR-2-1" "unknown" 6775    15625    0   top   
+CONN1-13-9  "CONNECTOR-2-1" "unknown" 6775    17125    0   top   
+CONN1-13-10 "CONNECTOR-2-1" "unknown" 6775    18625    0   top   
+CONN1-13-11 "CONNECTOR-2-1" "unknown" 6775    20125    0   top   
+CONN1-13-12 "CONNECTOR-2-1" "unknown" 6775    21625    0   top   
+CONN1-13-13 "CONNECTOR-2-1" "unknown" 6775    23125    0   top   
+CONN1-13-14 "CONNECTOR-2-1" "unknown" 6775    24625    0   top   
+CONN1-14-0  "CONNECTOR-2-1" "unknown" 7275    3625     0   top   
+CONN1-14-1  "CONNECTOR-2-1" "unknown" 7275    5125     0   top   
+CONN1-14-2  "CONNECTOR-2-1" "unknown" 7275    6625     0   top   
+CONN1-14-3  "CONNECTOR-2-1" "unknown" 7275    8125     0   top   
+CONN1-14-4  "CONNECTOR-2-1" "unknown" 7275    9625     0   top   
+CONN1-14-5  "CONNECTOR-2-1" "unknown" 7275    11125    0   top   
+CONN1-14-6  "CONNECTOR-2-1" "unknown" 7275    12625    0   top   
+CONN1-14-7  "CONNECTOR-2-1" "unknown" 7275    14125    0   top   
+CONN1-14-8  "CONNECTOR-2-1" "unknown" 7275    15625    0   top   
+CONN1-14-9  "CONNECTOR-2-1" "unknown" 7275    17125    0   top   
+CONN1-14-10 "CONNECTOR-2-1" "unknown" 7275    18625    0   top   
+CONN1-14-11 "CONNECTOR-2-1" "unknown" 7275    20125    0   top   
+CONN1-14-12 "CONNECTOR-2-1" "unknown" 7275    21625    0   top   
+CONN1-14-13 "CONNECTOR-2-1" "unknown" 7275    23125    0   top   
+CONN1-14-14 "CONNECTOR-2-1" "unknown" 7275    24625    0   top   
+D4-0-0      "CONNECTOR-2-1" "unknown" 500.00  3625.00  0   top   
+D4-0-1      "CONNECTOR-2-1" "unknown" 500     5125     0   top   
+D4-0-2      "CONNECTOR-2-1" "unknown" 500     6625     0   top   
+D4-0-3      "CONNECTOR-2-1" "unknown" 500     8125     0   top   
+D4-0-4      "CONNECTOR-2-1" "unknown" 500     9625     0   top   
+D4-0-5      "CONNECTOR-2-1" "unknown" 500     11125    0   top   
+D4-0-6      "CONNECTOR-2-1" "unknown" 500     12625    0   top   
+D4-0-7      "CONNECTOR-2-1" "unknown" 500     14125    0   top   
+D4-0-8      "CONNECTOR-2-1" "unknown" 500     15625    0   top   
+D4-0-9      "CONNECTOR-2-1" "unknown" 500     17125    0   top   
+D4-0-10     "CONNECTOR-2-1" "unknown" 500     18625    0   top   
+D4-0-11     "CONNECTOR-2-1" "unknown" 500     20125    0   top   
+D4-0-12     "CONNECTOR-2-1" "unknown" 500     21625    0   top   
+D4-0-13     "CONNECTOR-2-1" "unknown" 500     23125    0   top   
+D4-0-14     "CONNECTOR-2-1" "unknown" 500     24625    0   top   
+D4-1-0      "CONNECTOR-2-1" "unknown" 1000    3625     0   top   
+D4-1-1      "CONNECTOR-2-1" "unknown" 1000    5125     0   top   
+D4-1-2      "CONNECTOR-2-1" "unknown" 1000    6625     0   top   
+D4-1-3      "CONNECTOR-2-1" "unknown" 1000    8125     0   top   
+D4-1-4      "CONNECTOR-2-1" "unknown" 1000    9625     0   top   
+D4-1-5      "CONNECTOR-2-1" "unknown" 1000    11125    0   top   
+D4-1-6      "CONNECTOR-2-1" "unknown" 1000    12625    0   top   
+D4-1-7      "CONNECTOR-2-1" "unknown" 1000    14125    0   top   
+D4-1-8      "CONNECTOR-2-1" "unknown" 1000    15625    0   top   
+D4-1-9      "CONNECTOR-2-1" "unknown" 1000    17125    0   top   
+D4-1-10     "CONNECTOR-2-1" "unknown" 1000    18625    0   top   
+D4-1-11     "CONNECTOR-2-1" "unknown" 1000    20125    0   top   
+D4-1-12     "CONNECTOR-2-1" "unknown" 1000    21625    0   top   
+D4-1-13     "CONNECTOR-2-1" "unknown" 1000    23125    0   top   
+D4-1-14     "CONNECTOR-2-1" "unknown" 1000    24625    0   top   
+D4-2-0      "CONNECTOR-2-1" "unknown" 1500    3625     0   top   
+D4-2-1      "CONNECTOR-2-1" "unknown" 1500    5125     0   top   
+D4-2-2      "CONNECTOR-2-1" "unknown" 1500    6625     0   top   
+D4-2-3      "CONNECTOR-2-1" "unknown" 1500    8125     0   top   
+D4-2-4      "CONNECTOR-2-1" "unknown" 1500    9625     0   top   
+D4-2-5      "CONNECTOR-2-1" "unknown" 1500    11125    0   top   
+D4-2-6      "CONNECTOR-2-1" "unknown" 1500    12625    0   top   
+D4-2-7      "CONNECTOR-2-1" "unknown" 1500    14125    0   top   
+D4-2-8      "CONNECTOR-2-1" "unknown" 1500    15625    0   top   
+D4-2-9      "CONNECTOR-2-1" "unknown" 1500    17125    0   top   
+D4-2-10     "CONNECTOR-2-1" "unknown" 1500    18625    0   top   
+D4-2-11     "CONNECTOR-2-1" "unknown" 1500    20125    0   top   
+D4-2-12     "CONNECTOR-2-1" "unknown" 1500    21625    0   top   
+D4-2-13     "CONNECTOR-2-1" "unknown" 1500    23125    0   top   
+D4-2-14     "CONNECTOR-2-1" "unknown" 1500    24625    0   top   
+D4-3-0      "CONNECTOR-2-1" "unknown" 2000    3625     0   top   
+D4-3-1      "CONNECTOR-2-1" "unknown" 2000    5125     0   top   
+D4-3-2      "CONNECTOR-2-1" "unknown" 2000    6625     0   top   
+D4-3-3      "CONNECTOR-2-1" "unknown" 2000    8125     0   top   
+D4-3-4      "CONNECTOR-2-1" "unknown" 2000    9625     0   top   
+D4-3-5      "CONNECTOR-2-1" "unknown" 2000    11125    0   top   
+D4-3-6      "CONNECTOR-2-1" "unknown" 2000    12625    0   top   
+D4-3-7      "CONNECTOR-2-1" "unknown" 2000    14125    0   top   
+D4-3-8      "CONNECTOR-2-1" "unknown" 2000    15625    0   top   
+D4-3-9      "CONNECTOR-2-1" "unknown" 2000    17125    0   top   
+D4-3-10     "CONNECTOR-2-1" "unknown" 2000    18625    0   top   
+D4-3-11     "CONNECTOR-2-1" "unknown" 2000    20125    0   top   
+D4-3-12     "CONNECTOR-2-1" "unknown" 2000    21625    0   top   
+D4-3-13     "CONNECTOR-2-1" "unknown" 2000    23125    0   top   
+D4-3-14     "CONNECTOR-2-1" "unknown" 2000    24625    0   top   
+D4-4-0      "CONNECTOR-2-1" "unknown" 2500    3625     0   top   
+D4-4-1      "CONNECTOR-2-1" "unknown" 2500    5125     0   top   
+D4-4-2      "CONNECTOR-2-1" "unknown" 2500    6625     0   top   
+D4-4-3      "CONNECTOR-2-1" "unknown" 2500    8125     0   top   
+D4-4-4      "CONNECTOR-2-1" "unknown" 2500    9625     0   top   
+D4-4-5      "CONNECTOR-2-1" "unknown" 2500    11125    0   top   
+D4-4-6      "CONNECTOR-2-1" "unknown" 2500    12625    0   top   
+D4-4-7      "CONNECTOR-2-1" "unknown" 2500    14125    0   top   
+D4-4-8      "CONNECTOR-2-1" "unknown" 2500    15625    0   top   
+D4-4-9      "CONNECTOR-2-1" "unknown" 2500    17125    0   top   
+D4-4-10     "CONNECTOR-2-1" "unknown" 2500    18625    0   top   
+D4-4-11     "CONNECTOR-2-1" "unknown" 2500    20125    0   top   
+D4-4-12     "CONNECTOR-2-1" "unknown" 2500    21625    0   top   
+D4-4-13     "CONNECTOR-2-1" "unknown" 2500    23125    0   top   
+D4-4-14     "CONNECTOR-2-1" "unknown" 2500    24625    0   top   
+D4-5-0      "CONNECTOR-2-1" "unknown" 3000    3625     0   top   
+D4-5-1      "CONNECTOR-2-1" "unknown" 3000    5125     0   top   
+D4-5-2      "CONNECTOR-2-1" "unknown" 3000    6625     0   top   
+D4-5-3      "CONNECTOR-2-1" "unknown" 3000    8125     0   top   
+D4-5-4      "CONNECTOR-2-1" "unknown" 3000    9625     0   top   
+D4-5-5      "CONNECTOR-2-1" "unknown" 3000    11125    0   top   
+D4-5-6      "CONNECTOR-2-1" "unknown" 3000    12625    0   top   
+D4-5-7      "CONNECTOR-2-1" "unknown" 3000    14125    0   top   
+D4-5-8      "CONNECTOR-2-1" "unknown" 3000    15625    0   top   
+D4-5-9      "CONNECTOR-2-1" "unknown" 3000    17125    0   top   
+D4-5-10     "CONNECTOR-2-1" "unknown" 3000    18625    0   top   
+D4-5-11     "CONNECTOR-2-1" "unknown" 3000    20125    0   top   
+D4-5-12     "CONNECTOR-2-1" "unknown" 3000    21625    0   top   
+D4-5-13     "CONNECTOR-2-1" "unknown" 3000    23125    0   top   
+D4-5-14     "CONNECTOR-2-1" "unknown" 3000    24625    0   top   
+D4-6-0      "CONNECTOR-2-1" "unknown" 3500    3625     0   top   
+D4-6-1      "CONNECTOR-2-1" "unknown" 3500    5125     0   top   
+D4-6-2      "CONNECTOR-2-1" "unknown" 3500    6625     0   top   
+D4-6-3      "CONNECTOR-2-1" "unknown" 3500    8125     0   top   
+D4-6-4      "CONNECTOR-2-1" "unknown" 3500    9625     0   top   
+D4-6-5      "CONNECTOR-2-1" "unknown" 3500    11125    0   top   
+D4-6-6      "CONNECTOR-2-1" "unknown" 3500    12625    0   top   
+D4-6-7      "CONNECTOR-2-1" "unknown" 3500    14125    0   top   
+D4-6-8      "CONNECTOR-2-1" "unknown" 3500    15625    0   top   
+D4-6-9      "CONNECTOR-2-1" "unknown" 3500    17125    0   top   
+D4-6-10     "CONNECTOR-2-1" "unknown" 3500    18625    0   top   
+D4-6-11     "CONNECTOR-2-1" "unknown" 3500    20125    0   top   
+D4-6-12     "CONNECTOR-2-1" "unknown" 3500    21625    0   top   
+D4-6-13     "CONNECTOR-2-1" "unknown" 3500    23125    0   top   
+D4-6-14     "CONNECTOR-2-1" "unknown" 3500    24625    0   top   
+D4-7-0      "CONNECTOR-2-1" "unknown" 4000    3625     0   top   
+D4-7-1      "CONNECTOR-2-1" "unknown" 4000    5125     0   top   
+D4-7-2      "CONNECTOR-2-1" "unknown" 4000    6625     0   top   
+D4-7-3      "CONNECTOR-2-1" "unknown" 4000    8125     0   top   
+D4-7-4      "CONNECTOR-2-1" "unknown" 4000    9625     0   top   
+D4-7-5      "CONNECTOR-2-1" "unknown" 4000    11125    0   top   
+D4-7-6      "CONNECTOR-2-1" "unknown" 4000    12625    0   top   
+D4-7-7      "CONNECTOR-2-1" "unknown" 4000    14125    0   top   
+D4-7-8      "CONNECTOR-2-1" "unknown" 4000    15625    0   top   
+D4-7-9      "CONNECTOR-2-1" "unknown" 4000    17125    0   top   
+D4-7-10     "CONNECTOR-2-1" "unknown" 4000    18625    0   top   
+D4-7-11     "CONNECTOR-2-1" "unknown" 4000    20125    0   top   
+D4-7-12     "CONNECTOR-2-1" "unknown" 4000    21625    0   top   
+D4-7-13     "CONNECTOR-2-1" "unknown" 4000    23125    0   top   
+D4-7-14     "CONNECTOR-2-1" "unknown" 4000    24625    0   top   
+D4-8-0      "CONNECTOR-2-1" "unknown" 4500    3625     0   top   
+D4-8-1      "CONNECTOR-2-1" "unknown" 4500    5125     0   top   
+D4-8-2      "CONNECTOR-2-1" "unknown" 4500    6625     0   top   
+D4-8-3      "CONNECTOR-2-1" "unknown" 4500    8125     0   top   
+D4-8-4      "CONNECTOR-2-1" "unknown" 4500    9625     0   top   
+D4-8-5      "CONNECTOR-2-1" "unknown" 4500    11125    0   top   
+D4-8-6      "CONNECTOR-2-1" "unknown" 4500    12625    0   top   
+D4-8-7      "CONNECTOR-2-1" "unknown" 4500    14125    0   top   
+D4-8-8      "CONNECTOR-2-1" "unknown" 4500    15625    0   top   
+D4-8-9      "CONNECTOR-2-1" "unknown" 4500    17125    0   top   
+D4-8-10     "CONNECTOR-2-1" "unknown" 4500    18625    0   top   
+D4-8-11     "CONNECTOR-2-1" "unknown" 4500    20125    0   top   
+D4-8-12     "CONNECTOR-2-1" "unknown" 4500    21625    0   top   
+D4-8-13     "CONNECTOR-2-1" "unknown" 4500    23125    0   top   
+D4-8-14     "CONNECTOR-2-1" "unknown" 4500    24625    0   top   
+D4-9-0      "CONNECTOR-2-1" "unknown" 5000    3625     0   top   
+D4-9-1      "CONNECTOR-2-1" "unknown" 5000    5125     0   top   
+D4-9-2      "CONNECTOR-2-1" "unknown" 5000    6625     0   top   
+D4-9-3      "CONNECTOR-2-1" "unknown" 5000    8125     0   top   
+D4-9-4      "CONNECTOR-2-1" "unknown" 5000    9625     0   top   
+D4-9-5      "CONNECTOR-2-1" "unknown" 5000    11125    0   top   
+D4-9-6      "CONNECTOR-2-1" "unknown" 5000    12625    0   top   
+D4-9-7      "CONNECTOR-2-1" "unknown" 5000    14125    0   top   
+D4-9-8      "CONNECTOR-2-1" "unknown" 5000    15625    0   top   
+D4-9-9      "CONNECTOR-2-1" "unknown" 5000    17125    0   top   
+D4-9-10     "CONNECTOR-2-1" "unknown" 5000    18625    0   top   
+D4-9-11     "CONNECTOR-2-1" "unknown" 5000    20125    0   top   
+D4-9-12     "CONNECTOR-2-1" "unknown" 5000    21625    0   top   
+D4-9-13     "CONNECTOR-2-1" "unknown" 5000    23125    0   top   
+D4-9-14     "CONNECTOR-2-1" "unknown" 5000    24625    0   top   
+D4-10-0     "CONNECTOR-2-1" "unknown" 5500    3625     0   top   
+D4-10-1     "CONNECTOR-2-1" "unknown" 5500    5125     0   top   
+D4-10-2     "CONNECTOR-2-1" "unknown" 5500    6625     0   top   
+D4-10-3     "CONNECTOR-2-1" "unknown" 5500    8125     0   top   
+D4-10-4     "CONNECTOR-2-1" "unknown" 5500    9625     0   top   
+D4-10-5     "CONNECTOR-2-1" "unknown" 5500    11125    0   top   
+D4-10-6     "CONNECTOR-2-1" "unknown" 5500    12625    0   top   
+D4-10-7     "CONNECTOR-2-1" "unknown" 5500    14125    0   top   
+D4-10-8     "CONNECTOR-2-1" "unknown" 5500    15625    0   top   
+D4-10-9     "CONNECTOR-2-1" "unknown" 5500    17125    0   top   
+D4-10-10    "CONNECTOR-2-1" "unknown" 5500    18625    0   top   
+D4-10-11    "CONNECTOR-2-1" "unknown" 5500    20125    0   top   
+D4-10-12    "CONNECTOR-2-1" "unknown" 5500    21625    0   top   
+D4-10-13    "CONNECTOR-2-1" "unknown" 5500    23125    0   top   
+D4-10-14    "CONNECTOR-2-1" "unknown" 5500    24625    0   top   
+D4-11-0     "CONNECTOR-2-1" "unknown" 6000    3625     0   top   
+D4-11-1     "CONNECTOR-2-1" "unknown" 6000    5125     0   top   
+D4-11-2     "CONNECTOR-2-1" "unknown" 6000    6625     0   top   
+D4-11-3     "CONNECTOR-2-1" "unknown" 6000    8125     0   top   
+D4-11-4     "CONNECTOR-2-1" "unknown" 6000    9625     0   top   
+D4-11-5     "CONNECTOR-2-1" "unknown" 6000    11125    0   top   
+D4-11-6     "CONNECTOR-2-1" "unknown" 6000    12625    0   top   
+D4-11-7     "CONNECTOR-2-1" "unknown" 6000    14125    0   top   
+D4-11-8     "CONNECTOR-2-1" "unknown" 6000    15625    0   top   
+D4-11-9     "CONNECTOR-2-1" "unknown" 6000    17125    0   top   
+D4-11-10    "CONNECTOR-2-1" "unknown" 6000    18625    0   top   
+D4-11-11    "CONNECTOR-2-1" "unknown" 6000    20125    0   top   
+D4-11-12    "CONNECTOR-2-1" "unknown" 6000    21625    0   top   
+D4-11-13    "CONNECTOR-2-1" "unknown" 6000    23125    0   top   
+D4-11-14    "CONNECTOR-2-1" "unknown" 6000    24625    0   top   
+D4-12-0     "CONNECTOR-2-1" "unknown" 6500    3625     0   top   
+D4-12-1     "CONNECTOR-2-1" "unknown" 6500    5125     0   top   
+D4-12-2     "CONNECTOR-2-1" "unknown" 6500    6625     0   top   
+D4-12-3     "CONNECTOR-2-1" "unknown" 6500    8125     0   top   
+D4-12-4     "CONNECTOR-2-1" "unknown" 6500    9625     0   top   
+D4-12-5     "CONNECTOR-2-1" "unknown" 6500    11125    0   top   
+D4-12-6     "CONNECTOR-2-1" "unknown" 6500    12625    0   top   
+D4-12-7     "CONNECTOR-2-1" "unknown" 6500    14125    0   top   
+D4-12-8     "CONNECTOR-2-1" "unknown" 6500    15625    0   top   
+D4-12-9     "CONNECTOR-2-1" "unknown" 6500    17125    0   top   
+D4-12-10    "CONNECTOR-2-1" "unknown" 6500    18625    0   top   
+D4-12-11    "CONNECTOR-2-1" "unknown" 6500    20125    0   top   
+D4-12-12    "CONNECTOR-2-1" "unknown" 6500    21625    0   top   
+D4-12-13    "CONNECTOR-2-1" "unknown" 6500    23125    0   top   
+D4-12-14    "CONNECTOR-2-1" "unknown" 6500    24625    0   top   
+D4-13-0     "CONNECTOR-2-1" "unknown" 7000    3625     0   top   
+D4-13-1     "CONNECTOR-2-1" "unknown" 7000    5125     0   top   
+D4-13-2     "CONNECTOR-2-1" "unknown" 7000    6625     0   top   
+D4-13-3     "CONNECTOR-2-1" "unknown" 7000    8125     0   top   
+D4-13-4     "CONNECTOR-2-1" "unknown" 7000    9625     0   top   
+D4-13-5     "CONNECTOR-2-1" "unknown" 7000    11125    0   top   
+D4-13-6     "CONNECTOR-2-1" "unknown" 7000    12625    0   top   
+D4-13-7     "CONNECTOR-2-1" "unknown" 7000    14125    0   top   
+D4-13-8     "CONNECTOR-2-1" "unknown" 7000    15625    0   top   
+D4-13-9     "CONNECTOR-2-1" "unknown" 7000    17125    0   top   
+D4-13-10    "CONNECTOR-2-1" "unknown" 7000    18625    0   top   
+D4-13-11    "CONNECTOR-2-1" "unknown" 7000    20125    0   top   
+D4-13-12    "CONNECTOR-2-1" "unknown" 7000    21625    0   top   
+D4-13-13    "CONNECTOR-2-1" "unknown" 7000    23125    0   top   
+D4-13-14    "CONNECTOR-2-1" "unknown" 7000    24625    0   top   
+D4-14-0     "CONNECTOR-2-1" "unknown" 7500    3625     0   top   
+D4-14-1     "CONNECTOR-2-1" "unknown" 7500    5125     0   top   
+D4-14-2     "CONNECTOR-2-1" "unknown" 7500    6625     0   top   
+D4-14-3     "CONNECTOR-2-1" "unknown" 7500    8125     0   top   
+D4-14-4     "CONNECTOR-2-1" "unknown" 7500    9625     0   top   
+D4-14-5     "CONNECTOR-2-1" "unknown" 7500    11125    0   top   
+D4-14-6     "CONNECTOR-2-1" "unknown" 7500    12625    0   top   
+D4-14-7     "CONNECTOR-2-1" "unknown" 7500    14125    0   top   
+D4-14-8     "CONNECTOR-2-1" "unknown" 7500    15625    0   top   
+D4-14-9     "CONNECTOR-2-1" "unknown" 7500    17125    0   top   
+D4-14-10    "CONNECTOR-2-1" "unknown" 7500    18625    0   top   
+D4-14-11    "CONNECTOR-2-1" "unknown" 7500    20125    0   top   
+D4-14-12    "CONNECTOR-2-1" "unknown" 7500    21625    0   top   
+D4-14-13    "CONNECTOR-2-1" "unknown" 7500    23125    0   top   
+D4-14-14    "CONNECTOR-2-1" "unknown" 7500    24625    0   top   
+R1-0-0      "1206"          "unknown" 425.00  3375.00  90  bottom
+R1-0-1      "1206"          "unknown" 425     4875     90  bottom
+R1-0-2      "1206"          "unknown" 425     6375     90  bottom
+R1-0-3      "1206"          "unknown" 425     7875     90  bottom
+R1-0-4      "1206"          "unknown" 425     9375     90  bottom
+R1-0-5      "1206"          "unknown" 425     10875    90  bottom
+R1-0-6      "1206"          "unknown" 425     12375    90  bottom
+R1-0-7      "1206"          "unknown" 425     13875    90  bottom
+R1-0-8      "1206"          "unknown" 425     15375    90  bottom
+R1-0-9      "1206"          "unknown" 425     16875    90  bottom
+R1-0-10     "1206"          "unknown" 425     18375    90  bottom
+R1-0-11     "1206"          "unknown" 425     19875    90  bottom
+R1-0-12     "1206"          "unknown" 425     21375    90  bottom
+R1-0-13     "1206"          "unknown" 425     22875    90  bottom
+R1-0-14     "1206"          "unknown" 425     24375    90  bottom
+R1-1-0      "1206"          "unknown" 925     3375     90  bottom
+R1-1-1      "1206"          "unknown" 925     4875     90  bottom
+R1-1-2      "1206"          "unknown" 925     6375     90  bottom
+R1-1-3      "1206"          "unknown" 925     7875     90  bottom
+R1-1-4      "1206"          "unknown" 925     9375     90  bottom
+R1-1-5      "1206"          "unknown" 925     10875    90  bottom
+R1-1-6      "1206"          "unknown" 925     12375    90  bottom
+R1-1-7      "1206"          "unknown" 925     13875    90  bottom
+R1-1-8      "1206"          "unknown" 925     15375    90  bottom
+R1-1-9      "1206"          "unknown" 925     16875    90  bottom
+R1-1-10     "1206"          "unknown" 925     18375    90  bottom
+R1-1-11     "1206"          "unknown" 925     19875    90  bottom
+R1-1-12     "1206"          "unknown" 925     21375    90  bottom
+R1-1-13     "1206"          "unknown" 925     22875    90  bottom
+R1-1-14     "1206"          "unknown" 925     24375    90  bottom
+R1-2-0      "1206"          "unknown" 1425    3375     90  bottom
+R1-2-1      "1206"          "unknown" 1425    4875     90  bottom
+R1-2-2      "1206"          "unknown" 1425    6375     90  bottom
+R1-2-3      "1206"          "unknown" 1425    7875     90  bottom
+R1-2-4      "1206"          "unknown" 1425    9375     90  bottom
+R1-2-5      "1206"          "unknown" 1425    10875    90  bottom
+R1-2-6      "1206"          "unknown" 1425    12375    90  bottom
+R1-2-7      "1206"          "unknown" 1425    13875    90  bottom
+R1-2-8      "1206"          "unknown" 1425    15375    90  bottom
+R1-2-9      "1206"          "unknown" 1425    16875    90  bottom
+R1-2-10     "1206"          "unknown" 1425    18375    90  bottom
+R1-2-11     "1206"          "unknown" 1425    19875    90  bottom
+R1-2-12     "1206"          "unknown" 1425    21375    90  bottom
+R1-2-13     "1206"          "unknown" 1425    22875    90  bottom
+R1-2-14     "1206"          "unknown" 1425    24375    90  bottom
+R1-3-0      "1206"          "unknown" 1925    3375     90  bottom
+R1-3-1      "1206"          "unknown" 1925    4875     90  bottom
+R1-3-2      "1206"          "unknown" 1925    6375     90  bottom
+R1-3-3      "1206"          "unknown" 1925    7875     90  bottom
+R1-3-4      "1206"          "unknown" 1925    9375     90  bottom
+R1-3-5      "1206"          "unknown" 1925    10875    90  bottom
+R1-3-6      "1206"          "unknown" 1925    12375    90  bottom
+R1-3-7      "1206"          "unknown" 1925    13875    90  bottom
+R1-3-8      "1206"          "unknown" 1925    15375    90  bottom
+R1-3-9      "1206"          "unknown" 1925    16875    90  bottom
+R1-3-10     "1206"          "unknown" 1925    18375    90  bottom
+R1-3-11     "1206"          "unknown" 1925    19875    90  bottom
+R1-3-12     "1206"          "unknown" 1925    21375    90  bottom
+R1-3-13     "1206"          "unknown" 1925    22875    90  bottom
+R1-3-14     "1206"          "unknown" 1925    24375    90  bottom
+R1-4-0      "1206"          "unknown" 2425    3375     90  bottom
+R1-4-1      "1206"          "unknown" 2425    4875     90  bottom
+R1-4-2      "1206"          "unknown" 2425    6375     90  bottom
+R1-4-3      "1206"          "unknown" 2425    7875     90  bottom
+R1-4-4      "1206"          "unknown" 2425    9375     90  bottom
+R1-4-5      "1206"          "unknown" 2425    10875    90  bottom
+R1-4-6      "1206"          "unknown" 2425    12375    90  bottom
+R1-4-7      "1206"          "unknown" 2425    13875    90  bottom
+R1-4-8      "1206"          "unknown" 2425    15375    90  bottom
+R1-4-9      "1206"          "unknown" 2425    16875    90  bottom
+R1-4-10     "1206"          "unknown" 2425    18375    90  bottom
+R1-4-11     "1206"          "unknown" 2425    19875    90  bottom
+R1-4-12     "1206"          "unknown" 2425    21375    90  bottom
+R1-4-13     "1206"          "unknown" 2425    22875    90  bottom
+R1-4-14     "1206"          "unknown" 2425    24375    90  bottom
+R1-5-0      "1206"          "unknown" 2925    3375     90  bottom
+R1-5-1      "1206"          "unknown" 2925    4875     90  bottom
+R1-5-2      "1206"          "unknown" 2925    6375     90  bottom
+R1-5-3      "1206"          "unknown" 2925    7875     90  bottom
+R1-5-4      "1206"          "unknown" 2925    9375     90  bottom
+R1-5-5      "1206"          "unknown" 2925    10875    90  bottom
+R1-5-6      "1206"          "unknown" 2925    12375    90  bottom
+R1-5-7      "1206"          "unknown" 2925    13875    90  bottom
+R1-5-8      "1206"          "unknown" 2925    15375    90  bottom
+R1-5-9      "1206"          "unknown" 2925    16875    90  bottom
+R1-5-10     "1206"          "unknown" 2925    18375    90  bottom
+R1-5-11     "1206"          "unknown" 2925    19875    90  bottom
+R1-5-12     "1206"          "unknown" 2925    21375    90  bottom
+R1-5-13     "1206"          "unknown" 2925    22875    90  bottom
+R1-5-14     "1206"          "unknown" 2925    24375    90  bottom
+R1-6-0      "1206"          "unknown" 3425    3375     90  bottom
+R1-6-1      "1206"          "unknown" 3425    4875     90  bottom
+R1-6-2      "1206"          "unknown" 3425    6375     90  bottom
+R1-6-3      "1206"          "unknown" 3425    7875     90  bottom
+R1-6-4      "1206"          "unknown" 3425    9375     90  bottom
+R1-6-5      "1206"          "unknown" 3425    10875    90  bottom
+R1-6-6      "1206"          "unknown" 3425    12375    90  bottom
+R1-6-7      "1206"          "unknown" 3425    13875    90  bottom
+R1-6-8      "1206"          "unknown" 3425    15375    90  bottom
+R1-6-9      "1206"          "unknown" 3425    16875    90  bottom
+R1-6-10     "1206"          "unknown" 3425    18375    90  bottom
+R1-6-11     "1206"          "unknown" 3425    19875    90  bottom
+R1-6-12     "1206"          "unknown" 3425    21375    90  bottom
+R1-6-13     "1206"          "unknown" 3425    22875    90  bottom
+R1-6-14     "1206"          "unknown" 3425    24375    90  bottom
+R1-7-0      "1206"          "unknown" 3925    3375     90  bottom
+R1-7-1      "1206"          "unknown" 3925    4875     90  bottom
+R1-7-2      "1206"          "unknown" 3925    6375     90  bottom
+R1-7-3      "1206"          "unknown" 3925    7875     90  bottom
+R1-7-4      "1206"          "unknown" 3925    9375     90  bottom
+R1-7-5      "1206"          "unknown" 3925    10875    90  bottom
+R1-7-6      "1206"          "unknown" 3925    12375    90  bottom
+R1-7-7      "1206"          "unknown" 3925    13875    90  bottom
+R1-7-8      "1206"          "unknown" 3925    15375    90  bottom
+R1-7-9      "1206"          "unknown" 3925    16875    90  bottom
+R1-7-10     "1206"          "unknown" 3925    18375    90  bottom
+R1-7-11     "1206"          "unknown" 3925    19875    90  bottom
+R1-7-12     "1206"          "unknown" 3925    21375    90  bottom
+R1-7-13     "1206"          "unknown" 3925    22875    90  bottom
+R1-7-14     "1206"          "unknown" 3925    24375    90  bottom
+R1-8-0      "1206"          "unknown" 4425    3375     90  bottom
+R1-8-1      "1206"          "unknown" 4425    4875     90  bottom
+R1-8-2      "1206"          "unknown" 4425    6375     90  bottom
+R1-8-3      "1206"          "unknown" 4425    7875     90  bottom
+R1-8-4      "1206"          "unknown" 4425    9375     90  bottom
+R1-8-5      "1206"          "unknown" 4425    10875    90  bottom
+R1-8-6      "1206"          "unknown" 4425    12375    90  bottom
+R1-8-7      "1206"          "unknown" 4425    13875    90  bottom
+R1-8-8      "1206"          "unknown" 4425    15375    90  bottom
+R1-8-9      "1206"          "unknown" 4425    16875    90  bottom
+R1-8-10     "1206"          "unknown" 4425    18375    90  bottom
+R1-8-11     "1206"          "unknown" 4425    19875    90  bottom
+R1-8-12     "1206"          "unknown" 4425    21375    90  bottom
+R1-8-13     "1206"          "unknown" 4425    22875    90  bottom
+R1-8-14     "1206"          "unknown" 4425    24375    90  bottom
+R1-9-0      "1206"          "unknown" 4925    3375     90  bottom
+R1-9-1      "1206"          "unknown" 4925    4875     90  bottom
+R1-9-2      "1206"          "unknown" 4925    6375     90  bottom
+R1-9-3      "1206"          "unknown" 4925    7875     90  bottom
+R1-9-4      "1206"          "unknown" 4925    9375     90  bottom
+R1-9-5      "1206"          "unknown" 4925    10875    90  bottom
+R1-9-6      "1206"          "unknown" 4925    12375    90  bottom
+R1-9-7      "1206"          "unknown" 4925    13875    90  bottom
+R1-9-8      "1206"          "unknown" 4925    15375    90  bottom
+R1-9-9      "1206"          "unknown" 4925    16875    90  bottom
+R1-9-10     "1206"          "unknown" 4925    18375    90  bottom
+R1-9-11     "1206"          "unknown" 4925    19875    90  bottom
+R1-9-12     "1206"          "unknown" 4925    21375    90  bottom
+R1-9-13     "1206"          "unknown" 4925    22875    90  bottom
+R1-9-14     "1206"          "unknown" 4925    24375    90  bottom
+R1-10-0     "1206"          "unknown" 5425    3375     90  bottom
+R1-10-1     "1206"          "unknown" 5425    4875     90  bottom
+R1-10-2     "1206"          "unknown" 5425    6375     90  bottom
+R1-10-3     "1206"          "unknown" 5425    7875     90  bottom
+R1-10-4     "1206"          "unknown" 5425    9375     90  bottom
+R1-10-5     "1206"          "unknown" 5425    10875    90  bottom
+R1-10-6     "1206"          "unknown" 5425    12375    90  bottom
+R1-10-7     "1206"          "unknown" 5425    13875    90  bottom
+R1-10-8     "1206"          "unknown" 5425    15375    90  bottom
+R1-10-9     "1206"          "unknown" 5425    16875    90  bottom
+R1-10-10    "1206"          "unknown" 5425    18375    90  bottom
+R1-10-11    "1206"          "unknown" 5425    19875    90  bottom
+R1-10-12    "1206"          "unknown" 5425    21375    90  bottom
+R1-10-13    "1206"          "unknown" 5425    22875    90  bottom
+R1-10-14    "1206"          "unknown" 5425    24375    90  bottom
+R1-11-0     "1206"          "unknown" 5925    3375     90  bottom
+R1-11-1     "1206"          "unknown" 5925    4875     90  bottom
+R1-11-2     "1206"          "unknown" 5925    6375     90  bottom
+R1-11-3     "1206"          "unknown" 5925    7875     90  bottom
+R1-11-4     "1206"          "unknown" 5925    9375     90  bottom
+R1-11-5     "1206"          "unknown" 5925    10875    90  bottom
+R1-11-6     "1206"          "unknown" 5925    12375    90  bottom
+R1-11-7     "1206"          "unknown" 5925    13875    90  bottom
+R1-11-8     "1206"          "unknown" 5925    15375    90  bottom
+R1-11-9     "1206"          "unknown" 5925    16875    90  bottom
+R1-11-10    "1206"          "unknown" 5925    18375    90  bottom
+R1-11-11    "1206"          "unknown" 5925    19875    90  bottom
+R1-11-12    "1206"          "unknown" 5925    21375    90  bottom
+R1-11-13    "1206"          "unknown" 5925    22875    90  bottom
+R1-11-14    "1206"          "unknown" 5925    24375    90  bottom
+R1-12-0     "1206"          "unknown" 6425    3375     90  bottom
+R1-12-1     "1206"          "unknown" 6425    4875     90  bottom
+R1-12-2     "1206"          "unknown" 6425    6375     90  bottom
+R1-12-3     "1206"          "unknown" 6425    7875     90  bottom
+R1-12-4     "1206"          "unknown" 6425    9375     90  bottom
+R1-12-5     "1206"          "unknown" 6425    10875    90  bottom
+R1-12-6     "1206"          "unknown" 6425    12375    90  bottom
+R1-12-7     "1206"          "unknown" 6425    13875    90  bottom
+R1-12-8     "1206"          "unknown" 6425    15375    90  bottom
+R1-12-9     "1206"          "unknown" 6425    16875    90  bottom
+R1-12-10    "1206"          "unknown" 6425    18375    90  bottom
+R1-12-11    "1206"          "unknown" 6425    19875    90  bottom
+R1-12-12    "1206"          "unknown" 6425    21375    90  bottom
+R1-12-13    "1206"          "unknown" 6425    22875    90  bottom
+R1-12-14    "1206"          "unknown" 6425    24375    90  bottom
+R1-13-0     "1206"          "unknown" 6925    3375     90  bottom
+R1-13-1     "1206"          "unknown" 6925    4875     90  bottom
+R1-13-2     "1206"          "unknown" 6925    6375     90  bottom
+R1-13-3     "1206"          "unknown" 6925    7875     90  bottom
+R1-13-4     "1206"          "unknown" 6925    9375     90  bottom
+R1-13-5     "1206"          "unknown" 6925    10875    90  bottom
+R1-13-6     "1206"          "unknown" 6925    12375    90  bottom
+R1-13-7     "1206"          "unknown" 6925    13875    90  bottom
+R1-13-8     "1206"          "unknown" 6925    15375    90  bottom
+R1-13-9     "1206"          "unknown" 6925    16875    90  bottom
+R1-13-10    "1206"          "unknown" 6925    18375    90  bottom
+R1-13-11    "1206"          "unknown" 6925    19875    90  bottom
+R1-13-12    "1206"          "unknown" 6925    21375    90  bottom
+R1-13-13    "1206"          "unknown" 6925    22875    90  bottom
+R1-13-14    "1206"          "unknown" 6925    24375    90  bottom
+R1-14-0     "1206"          "unknown" 7425    3375     90  bottom
+R1-14-1     "1206"          "unknown" 7425    4875     90  bottom
+R1-14-2     "1206"          "unknown" 7425    6375     90  bottom
+R1-14-3     "1206"          "unknown" 7425    7875     90  bottom
+R1-14-4     "1206"          "unknown" 7425    9375     90  bottom
+R1-14-5     "1206"          "unknown" 7425    10875    90  bottom
+R1-14-6     "1206"          "unknown" 7425    12375    90  bottom
+R1-14-7     "1206"          "unknown" 7425    13875    90  bottom
+R1-14-8     "1206"          "unknown" 7425    15375    90  bottom
+R1-14-9     "1206"          "unknown" 7425    16875    90  bottom
+R1-14-10    "1206"          "unknown" 7425    18375    90  bottom
+R1-14-11    "1206"          "unknown" 7425    19875    90  bottom
+R1-14-12    "1206"          "unknown" 7425    21375    90  bottom
+R1-14-13    "1206"          "unknown" 7425    22875    90  bottom
+R1-14-14    "1206"          "unknown" 7425    24375    90  bottom
+C11-0-0     "1206"          "unknown" 1336.81 3834.05  90  bottom
+C11-0-1     "1206"          "unknown" 1336.81 5334.05  90  bottom
+C11-0-2     "1206"          "unknown" 1336.81 6834.05  90  bottom
+C11-0-3     "1206"          "unknown" 1336.81 8334.05  90  bottom
+C11-0-4     "1206"          "unknown" 1336.81 9834.05  90  bottom
+C11-0-5     "1206"          "unknown" 1336.81 11334.05 90  bottom
+C11-0-6     "1206"          "unknown" 1336.81 12834.05 90  bottom
+C11-0-7     "1206"          "unknown" 1336.81 14334.05 90  bottom
+C11-0-8     "1206"          "unknown" 1336.81 15834.05 90  bottom
+C11-0-9     "1206"          "unknown" 1336.81 17334.05 90  bottom
+C11-0-10    "1206"          "unknown" 1336.81 18834.05 90  bottom
+C11-0-11    "1206"          "unknown" 1336.81 20334.05 90  bottom
+C11-0-12    "1206"          "unknown" 1336.81 21834.05 90  bottom
+C11-0-13    "1206"          "unknown" 1336.81 23334.05 90  bottom
+C11-0-14    "1206"          "unknown" 1336.81 24834.05 90  bottom
+C11-1-0     "1206"          "unknown" 1836.81 3834.05  90  bottom
+C11-1-1     "1206"          "unknown" 1836.81 5334.05  90  bottom
+C11-1-2     "1206"          "unknown" 1836.81 6834.05  90  bottom
+C11-1-3     "1206"          "unknown" 1836.81 8334.05  90  bottom
+C11-1-4     "1206"          "unknown" 1836.81 9834.05  90  bottom
+C11-1-5     "1206"          "unknown" 1836.81 11334.05 90  bottom
+C11-1-6     "1206"          "unknown" 1836.81 12834.05 90  bottom
+C11-1-7     "1206"          "unknown" 1836.81 14334.05 90  bottom
+C11-1-8     "1206"          "unknown" 1836.81 15834.05 90  bottom
+C11-1-9     "1206"          "unknown" 1836.81 17334.05 90  bottom
+C11-1-10    "1206"          "unknown" 1836.81 18834.05 90  bottom
+C11-1-11    "1206"          "unknown" 1836.81 20334.05 90  bottom
+C11-1-12    "1206"          "unknown" 1836.81 21834.05 90  bottom
+C11-1-13    "1206"          "unknown" 1836.81 23334.05 90  bottom
+C11-1-14    "1206"          "unknown" 1836.81 24834.05 90  bottom
+C11-2-0     "1206"          "unknown" 2336.81 3834.05  90  bottom
+C11-2-1     "1206"          "unknown" 2336.81 5334.05  90  bottom
+C11-2-2     "1206"          "unknown" 2336.81 6834.05  90  bottom
+C11-2-3     "1206"          "unknown" 2336.81 8334.05  90  bottom
+C11-2-4     "1206"          "unknown" 2336.81 9834.05  90  bottom
+C11-2-5     "1206"          "unknown" 2336.81 11334.05 90  bottom
+C11-2-6     "1206"          "unknown" 2336.81 12834.05 90  bottom
+C11-2-7     "1206"          "unknown" 2336.81 14334.05 90  bottom
+C11-2-8     "1206"          "unknown" 2336.81 15834.05 90  bottom
+C11-2-9     "1206"          "unknown" 2336.81 17334.05 90  bottom
+C11-2-10    "1206"          "unknown" 2336.81 18834.05 90  bottom
+C11-2-11    "1206"          "unknown" 2336.81 20334.05 90  bottom
+C11-2-12    "1206"          "unknown" 2336.81 21834.05 90  bottom
+C11-2-13    "1206"          "unknown" 2336.81 23334.05 90  bottom
+C11-2-14    "1206"          "unknown" 2336.81 24834.05 90  bottom
+C11-3-0     "1206"          "unknown" 2836.81 3834.05  90  bottom
+C11-3-1     "1206"          "unknown" 2836.81 5334.05  90  bottom
+C11-3-2     "1206"          "unknown" 2836.81 6834.05  90  bottom
+C11-3-3     "1206"          "unknown" 2836.81 8334.05  90  bottom
+C11-3-4     "1206"          "unknown" 2836.81 9834.05  90  bottom
+C11-3-5     "1206"          "unknown" 2836.81 11334.05 90  bottom
+C11-3-6     "1206"          "unknown" 2836.81 12834.05 90  bottom
+C11-3-7     "1206"          "unknown" 2836.81 14334.05 90  bottom
+C11-3-8     "1206"          "unknown" 2836.81 15834.05 90  bottom
+C11-3-9     "1206"          "unknown" 2836.81 17334.05 90  bottom
+C11-3-10    "1206"          "unknown" 2836.81 18834.05 90  bottom
+C11-3-11    "1206"          "unknown" 2836.81 20334.05 90  bottom
+C11-3-12    "1206"          "unknown" 2836.81 21834.05 90  bottom
+C11-3-13    "1206"          "unknown" 2836.81 23334.05 90  bottom
+C11-3-14    "1206"          "unknown" 2836.81 24834.05 90  bottom
+C11-4-0     "1206"          "unknown" 3336.81 3834.05  90  bottom
+C11-4-1     "1206"          "unknown" 3336.81 5334.05  90  bottom
+C11-4-2     "1206"          "unknown" 3336.81 6834.05  90  bottom
+C11-4-3     "1206"          "unknown" 3336.81 8334.05  90  bottom
+C11-4-4     "1206"          "unknown" 3336.81 9834.05  90  bottom
+C11-4-5     "1206"          "unknown" 3336.81 11334.05 90  bottom
+C11-4-6     "1206"          "unknown" 3336.81 12834.05 90  bottom
+C11-4-7     "1206"          "unknown" 3336.81 14334.05 90  bottom
+C11-4-8     "1206"          "unknown" 3336.81 15834.05 90  bottom
+C11-4-9     "1206"          "unknown" 3336.81 17334.05 90  bottom
+C11-4-10    "1206"          "unknown" 3336.81 18834.05 90  bottom
+C11-4-11    "1206"          "unknown" 3336.81 20334.05 90  bottom
+C11-4-12    "1206"          "unknown" 3336.81 21834.05 90  bottom
+C11-4-13    "1206"          "unknown" 3336.81 23334.05 90  bottom
+C11-4-14    "1206"          "unknown" 3336.81 24834.05 90  bottom
+C11-5-0     "1206"          "unknown" 3836.81 3834.05  90  bottom
+C11-5-1     "1206"          "unknown" 3836.81 5334.05  90  bottom
+C11-5-2     "1206"          "unknown" 3836.81 6834.05  90  bottom
+C11-5-3     "1206"          "unknown" 3836.81 8334.05  90  bottom
+C11-5-4     "1206"          "unknown" 3836.81 9834.05  90  bottom
+C11-5-5     "1206"          "unknown" 3836.81 11334.05 90  bottom
+C11-5-6     "1206"          "unknown" 3836.81 12834.05 90  bottom
+C11-5-7     "1206"          "unknown" 3836.81 14334.05 90  bottom
+C11-5-8     "1206"          "unknown" 3836.81 15834.05 90  bottom
+C11-5-9     "1206"          "unknown" 3836.81 17334.05 90  bottom
+C11-5-10    "1206"          "unknown" 3836.81 18834.05 90  bottom
+C11-5-11    "1206"          "unknown" 3836.81 20334.05 90  bottom
+C11-5-12    "1206"          "unknown" 3836.81 21834.05 90  bottom
+C11-5-13    "1206"          "unknown" 3836.81 23334.05 90  bottom
+C11-5-14    "1206"          "unknown" 3836.81 24834.05 90  bottom
+C11-6-0     "1206"          "unknown" 4336.81 3834.05  90  bottom
+C11-6-1     "1206"          "unknown" 4336.81 5334.05  90  bottom
+C11-6-2     "1206"          "unknown" 4336.81 6834.05  90  bottom
+C11-6-3     "1206"          "unknown" 4336.81 8334.05  90  bottom
+C11-6-4     "1206"          "unknown" 4336.81 9834.05  90  bottom
+C11-6-5     "1206"          "unknown" 4336.81 11334.05 90  bottom
+C11-6-6     "1206"          "unknown" 4336.81 12834.05 90  bottom
+C11-6-7     "1206"          "unknown" 4336.81 14334.05 90  bottom
+C11-6-8     "1206"          "unknown" 4336.81 15834.05 90  bottom
+C11-6-9     "1206"          "unknown" 4336.81 17334.05 90  bottom
+C11-6-10    "1206"          "unknown" 4336.81 18834.05 90  bottom
+C11-6-11    "1206"          "unknown" 4336.81 20334.05 90  bottom
+C11-6-12    "1206"          "unknown" 4336.81 21834.05 90  bottom
+C11-6-13    "1206"          "unknown" 4336.81 23334.05 90  bottom
+C11-6-14    "1206"          "unknown" 4336.81 24834.05 90  bottom
+C11-7-0     "1206"          "unknown" 4836.81 3834.05  90  bottom
+C11-7-1     "1206"          "unknown" 4836.81 5334.05  90  bottom
+C11-7-2     "1206"          "unknown" 4836.81 6834.05  90  bottom
+C11-7-3     "1206"          "unknown" 4836.81 8334.05  90  bottom
+C11-7-4     "1206"          "unknown" 4836.81 9834.05  90  bottom
+C11-7-5     "1206"          "unknown" 4836.81 11334.05 90  bottom
+C11-7-6     "1206"          "unknown" 4836.81 12834.05 90  bottom
+C11-7-7     "1206"          "unknown" 4836.81 14334.05 90  bottom
+C11-7-8     "1206"          "unknown" 4836.81 15834.05 90  bottom
+C11-7-9     "1206"          "unknown" 4836.81 17334.05 90  bottom
+C11-7-10    "1206"          "unknown" 4836.81 18834.05 90  bottom
+C11-7-11    "1206"          "unknown" 4836.81 20334.05 90  bottom
+C11-7-12    "1206"          "unknown" 4836.81 21834.05 90  bottom
+C11-7-13    "1206"          "unknown" 4836.81 23334.05 90  bottom
+C11-7-14    "1206"          "unknown" 4836.81 24834.05 90  bottom
+C11-8-0     "1206"          "unknown" 5336.81 3834.05  90  bottom
+C11-8-1     "1206"          "unknown" 5336.81 5334.05  90  bottom
+C11-8-2     "1206"          "unknown" 5336.81 6834.05  90  bottom
+C11-8-3     "1206"          "unknown" 5336.81 8334.05  90  bottom
+C11-8-4     "1206"          "unknown" 5336.81 9834.05  90  bottom
+C11-8-5     "1206"          "unknown" 5336.81 11334.05 90  bottom
+C11-8-6     "1206"          "unknown" 5336.81 12834.05 90  bottom
+C11-8-7     "1206"          "unknown" 5336.81 14334.05 90  bottom
+C11-8-8     "1206"          "unknown" 5336.81 15834.05 90  bottom
+C11-8-9     "1206"          "unknown" 5336.81 17334.05 90  bottom
+C11-8-10    "1206"          "unknown" 5336.81 18834.05 90  bottom
+C11-8-11    "1206"          "unknown" 5336.81 20334.05 90  bottom
+C11-8-12    "1206"          "unknown" 5336.81 21834.05 90  bottom
+C11-8-13    "1206"          "unknown" 5336.81 23334.05 90  bottom
+C11-8-14    "1206"          "unknown" 5336.81 24834.05 90  bottom
+C11-9-0     "1206"          "unknown" 5836.81 3834.05  90  bottom
+C11-9-1     "1206"          "unknown" 5836.81 5334.05  90  bottom
+C11-9-2     "1206"          "unknown" 5836.81 6834.05  90  bottom
+C11-9-3     "1206"          "unknown" 5836.81 8334.05  90  bottom
+C11-9-4     "1206"          "unknown" 5836.81 9834.05  90  bottom
+C11-9-5     "1206"          "unknown" 5836.81 11334.05 90  bottom
+C11-9-6     "1206"          "unknown" 5836.81 12834.05 90  bottom
+C11-9-7     "1206"          "unknown" 5836.81 14334.05 90  bottom
+C11-9-8     "1206"          "unknown" 5836.81 15834.05 90  bottom
+C11-9-9     "1206"          "unknown" 5836.81 17334.05 90  bottom
+C11-9-10    "1206"          "unknown" 5836.81 18834.05 90  bottom
+C11-9-11    "1206"          "unknown" 5836.81 20334.05 90  bottom
+C11-9-12    "1206"          "unknown" 5836.81 21834.05 90  bottom
+C11-9-13    "1206"          "unknown" 5836.81 23334.05 90  bottom
+C11-9-14    "1206"          "unknown" 5836.81 24834.05 90  bottom
+C11-10-0    "1206"          "unknown" 6336.81 3834.05  90  bottom
+C11-10-1    "1206"          "unknown" 6336.81 5334.05  90  bottom
+C11-10-2    "1206"          "unknown" 6336.81 6834.05  90  bottom
+C11-10-3    "1206"          "unknown" 6336.81 8334.05  90  bottom
+C11-10-4    "1206"          "unknown" 6336.81 9834.05  90  bottom
+C11-10-5    "1206"          "unknown" 6336.81 11334.05 90  bottom
+C11-10-6    "1206"          "unknown" 6336.81 12834.05 90  bottom
+C11-10-7    "1206"          "unknown" 6336.81 14334.05 90  bottom
+C11-10-8    "1206"          "unknown" 6336.81 15834.05 90  bottom
+C11-10-9    "1206"          "unknown" 6336.81 17334.05 90  bottom
+C11-10-10   "1206"          "unknown" 6336.81 18834.05 90  bottom
+C11-10-11   "1206"          "unknown" 6336.81 20334.05 90  bottom
+C11-10-12   "1206"          "unknown" 6336.81 21834.05 90  bottom
+C11-10-13   "1206"          "unknown" 6336.81 23334.05 90  bottom
+C11-10-14   "1206"          "unknown" 6336.81 24834.05 90  bottom
+C11-11-0    "1206"          "unknown" 6836.81 3834.05  90  bottom
+C11-11-1    "1206"          "unknown" 6836.81 5334.05  90  bottom
+C11-11-2    "1206"          "unknown" 6836.81 6834.05  90  bottom
+C11-11-3    "1206"          "unknown" 6836.81 8334.05  90  bottom
+C11-11-4    "1206"          "unknown" 6836.81 9834.05  90  bottom
+C11-11-5    "1206"          "unknown" 6836.81 11334.05 90  bottom
+C11-11-6    "1206"          "unknown" 6836.81 12834.05 90  bottom
+C11-11-7    "1206"          "unknown" 6836.81 14334.05 90  bottom
+C11-11-8    "1206"          "unknown" 6836.81 15834.05 90  bottom
+C11-11-9    "1206"          "unknown" 6836.81 17334.05 90  bottom
+C11-11-10   "1206"          "unknown" 6836.81 18834.05 90  bottom
+C11-11-11   "1206"          "unknown" 6836.81 20334.05 90  bottom
+C11-11-12   "1206"          "unknown" 6836.81 21834.05 90  bottom
+C11-11-13   "1206"          "unknown" 6836.81 23334.05 90  bottom
+C11-11-14   "1206"          "unknown" 6836.81 24834.05 90  bottom
+C11-12-0    "1206"          "unknown" 7336.81 3834.05  90  bottom
+C11-12-1    "1206"          "unknown" 7336.81 5334.05  90  bottom
+C11-12-2    "1206"          "unknown" 7336.81 6834.05  90  bottom
+C11-12-3    "1206"          "unknown" 7336.81 8334.05  90  bottom
+C11-12-4    "1206"          "unknown" 7336.81 9834.05  90  bottom
+C11-12-5    "1206"          "unknown" 7336.81 11334.05 90  bottom
+C11-12-6    "1206"          "unknown" 7336.81 12834.05 90  bottom
+C11-12-7    "1206"          "unknown" 7336.81 14334.05 90  bottom
+C11-12-8    "1206"          "unknown" 7336.81 15834.05 90  bottom
+C11-12-9    "1206"          "unknown" 7336.81 17334.05 90  bottom
+C11-12-10   "1206"          "unknown" 7336.81 18834.05 90  bottom
+C11-12-11   "1206"          "unknown" 7336.81 20334.05 90  bottom
+C11-12-12   "1206"          "unknown" 7336.81 21834.05 90  bottom
+C11-12-13   "1206"          "unknown" 7336.81 23334.05 90  bottom
+C11-12-14   "1206"          "unknown" 7336.81 24834.05 90  bottom
+C11-13-0    "1206"          "unknown" 7836.81 3834.05  90  bottom
+C11-13-1    "1206"          "unknown" 7836.81 5334.05  90  bottom
+C11-13-2    "1206"          "unknown" 7836.81 6834.05  90  bottom
+C11-13-3    "1206"          "unknown" 7836.81 8334.05  90  bottom
+C11-13-4    "1206"          "unknown" 7836.81 9834.05  90  bottom
+C11-13-5    "1206"          "unknown" 7836.81 11334.05 90  bottom
+C11-13-6    "1206"          "unknown" 7836.81 12834.05 90  bottom
+C11-13-7    "1206"          "unknown" 7836.81 14334.05 90  bottom
+C11-13-8    "1206"          "unknown" 7836.81 15834.05 90  bottom
+C11-13-9    "1206"          "unknown" 7836.81 17334.05 90  bottom
+C11-13-10   "1206"          "unknown" 7836.81 18834.05 90  bottom
+C11-13-11   "1206"          "unknown" 7836.81 20334.05 90  bottom
+C11-13-12   "1206"          "unknown" 7836.81 21834.05 90  bottom
+C11-13-13   "1206"          "unknown" 7836.81 23334.05 90  bottom
+C11-13-14   "1206"          "unknown" 7836.81 24834.05 90  bottom
+C11-14-0    "1206"          "unknown" 8336.81 3834.05  90  bottom
+C11-14-1    "1206"          "unknown" 8336.81 5334.05  90  bottom
+C11-14-2    "1206"          "unknown" 8336.81 6834.05  90  bottom
+C11-14-3    "1206"          "unknown" 8336.81 8334.05  90  bottom
+C11-14-4    "1206"          "unknown" 8336.81 9834.05  90  bottom
+C11-14-5    "1206"          "unknown" 8336.81 11334.05 90  bottom
+C11-14-6    "1206"          "unknown" 8336.81 12834.05 90  bottom
+C11-14-7    "1206"          "unknown" 8336.81 14334.05 90  bottom
+C11-14-8    "1206"          "unknown" 8336.81 15834.05 90  bottom
+C11-14-9    "1206"          "unknown" 8336.81 17334.05 90  bottom
+C11-14-10   "1206"          "unknown" 8336.81 18834.05 90  bottom
+C11-14-11   "1206"          "unknown" 8336.81 20334.05 90  bottom
+C11-14-12   "1206"          "unknown" 8336.81 21834.05 90  bottom
+C11-14-13   "1206"          "unknown" 8336.81 23334.05 90  bottom
+C11-14-14   "1206"          "unknown" 8336.81 24834.05 90  bottom
+CONN2-0-0   "CONNECTOR-2-1" "unknown" 750.00  3625.00  0   top   
+CONN2-0-1   "CONNECTOR-2-1" "unknown" 750     5125     0   top   
+CONN2-0-2   "CONNECTOR-2-1" "unknown" 750     6625     0   top   
+CONN2-0-3   "CONNECTOR-2-1" "unknown" 750     8125     0   top   
+CONN2-0-4   "CONNECTOR-2-1" "unknown" 750     9625     0   top   
+CONN2-0-5   "CONNECTOR-2-1" "unknown" 750     11125    0   top   
+CONN2-0-6   "CONNECTOR-2-1" "unknown" 750     12625    0   top   
+CONN2-0-7   "CONNECTOR-2-1" "unknown" 750     14125    0   top   
+CONN2-0-8   "CONNECTOR-2-1" "unknown" 750     15625    0   top   
+CONN2-0-9   "CONNECTOR-2-1" "unknown" 750     17125    0   top   
+CONN2-0-10  "CONNECTOR-2-1" "unknown" 750     18625    0   top   
+CONN2-0-11  "CONNECTOR-2-1" "unknown" 750     20125    0   top   
+CONN2-0-12  "CONNECTOR-2-1" "unknown" 750     21625    0   top   
+CONN2-0-13  "CONNECTOR-2-1" "unknown" 750     23125    0   top   
+CONN2-0-14  "CONNECTOR-2-1" "unknown" 750     24625    0   top   
+CONN2-1-0   "CONNECTOR-2-1" "unknown" 1250    3625     0   top   
+CONN2-1-1   "CONNECTOR-2-1" "unknown" 1250    5125     0   top   
+CONN2-1-2   "CONNECTOR-2-1" "unknown" 1250    6625     0   top   
+CONN2-1-3   "CONNECTOR-2-1" "unknown" 1250    8125     0   top   
+CONN2-1-4   "CONNECTOR-2-1" "unknown" 1250    9625     0   top   
+CONN2-1-5   "CONNECTOR-2-1" "unknown" 1250    11125    0   top   
+CONN2-1-6   "CONNECTOR-2-1" "unknown" 1250    12625    0   top   
+CONN2-1-7   "CONNECTOR-2-1" "unknown" 1250    14125    0   top   
+CONN2-1-8   "CONNECTOR-2-1" "unknown" 1250    15625    0   top   
+CONN2-1-9   "CONNECTOR-2-1" "unknown" 1250    17125    0   top   
+CONN2-1-10  "CONNECTOR-2-1" "unknown" 1250    18625    0   top   
+CONN2-1-11  "CONNECTOR-2-1" "unknown" 1250    20125    0   top   
+CONN2-1-12  "CONNECTOR-2-1" "unknown" 1250    21625    0   top   
+CONN2-1-13  "CONNECTOR-2-1" "unknown" 1250    23125    0   top   
+CONN2-1-14  "CONNECTOR-2-1" "unknown" 1250    24625    0   top   
+CONN2-2-0   "CONNECTOR-2-1" "unknown" 1750    3625     0   top   
+CONN2-2-1   "CONNECTOR-2-1" "unknown" 1750    5125     0   top   
+CONN2-2-2   "CONNECTOR-2-1" "unknown" 1750    6625     0   top   
+CONN2-2-3   "CONNECTOR-2-1" "unknown" 1750    8125     0   top   
+CONN2-2-4   "CONNECTOR-2-1" "unknown" 1750    9625     0   top   
+CONN2-2-5   "CONNECTOR-2-1" "unknown" 1750    11125    0   top   
+CONN2-2-6   "CONNECTOR-2-1" "unknown" 1750    12625    0   top   
+CONN2-2-7   "CONNECTOR-2-1" "unknown" 1750    14125    0   top   
+CONN2-2-8   "CONNECTOR-2-1" "unknown" 1750    15625    0   top   
+CONN2-2-9   "CONNECTOR-2-1" "unknown" 1750    17125    0   top   
+CONN2-2-10  "CONNECTOR-2-1" "unknown" 1750    18625    0   top   
+CONN2-2-11  "CONNECTOR-2-1" "unknown" 1750    20125    0   top   
+CONN2-2-12  "CONNECTOR-2-1" "unknown" 1750    21625    0   top   
+CONN2-2-13  "CONNECTOR-2-1" "unknown" 1750    23125    0   top   
+CONN2-2-14  "CONNECTOR-2-1" "unknown" 1750    24625    0   top   
+CONN2-3-0   "CONNECTOR-2-1" "unknown" 2250    3625     0   top   
+CONN2-3-1   "CONNECTOR-2-1" "unknown" 2250    5125     0   top   
+CONN2-3-2   "CONNECTOR-2-1" "unknown" 2250    6625     0   top   
+CONN2-3-3   "CONNECTOR-2-1" "unknown" 2250    8125     0   top   
+CONN2-3-4   "CONNECTOR-2-1" "unknown" 2250    9625     0   top   
+CONN2-3-5   "CONNECTOR-2-1" "unknown" 2250    11125    0   top   
+CONN2-3-6   "CONNECTOR-2-1" "unknown" 2250    12625    0   top   
+CONN2-3-7   "CONNECTOR-2-1" "unknown" 2250    14125    0   top   
+CONN2-3-8   "CONNECTOR-2-1" "unknown" 2250    15625    0   top   
+CONN2-3-9   "CONNECTOR-2-1" "unknown" 2250    17125    0   top   
+CONN2-3-10  "CONNECTOR-2-1" "unknown" 2250    18625    0   top   
+CONN2-3-11  "CONNECTOR-2-1" "unknown" 2250    20125    0   top   
+CONN2-3-12  "CONNECTOR-2-1" "unknown" 2250    21625    0   top   
+CONN2-3-13  "CONNECTOR-2-1" "unknown" 2250    23125    0   top   
+CONN2-3-14  "CONNECTOR-2-1" "unknown" 2250    24625    0   top   
+CONN2-4-0   "CONNECTOR-2-1" "unknown" 2750    3625     0   top   
+CONN2-4-1   "CONNECTOR-2-1" "unknown" 2750    5125     0   top   
+CONN2-4-2   "CONNECTOR-2-1" "unknown" 2750    6625     0   top   
+CONN2-4-3   "CONNECTOR-2-1" "unknown" 2750    8125     0   top   
+CONN2-4-4   "CONNECTOR-2-1" "unknown" 2750    9625     0   top   
+CONN2-4-5   "CONNECTOR-2-1" "unknown" 2750    11125    0   top   
+CONN2-4-6   "CONNECTOR-2-1" "unknown" 2750    12625    0   top   
+CONN2-4-7   "CONNECTOR-2-1" "unknown" 2750    14125    0   top   
+CONN2-4-8   "CONNECTOR-2-1" "unknown" 2750    15625    0   top   
+CONN2-4-9   "CONNECTOR-2-1" "unknown" 2750    17125    0   top   
+CONN2-4-10  "CONNECTOR-2-1" "unknown" 2750    18625    0   top   
+CONN2-4-11  "CONNECTOR-2-1" "unknown" 2750    20125    0   top   
+CONN2-4-12  "CONNECTOR-2-1" "unknown" 2750    21625    0   top   
+CONN2-4-13  "CONNECTOR-2-1" "unknown" 2750    23125    0   top   
+CONN2-4-14  "CONNECTOR-2-1" "unknown" 2750    24625    0   top   
+CONN2-5-0   "CONNECTOR-2-1" "unknown" 3250    3625     0   top   
+CONN2-5-1   "CONNECTOR-2-1" "unknown" 3250    5125     0   top   
+CONN2-5-2   "CONNECTOR-2-1" "unknown" 3250    6625     0   top   
+CONN2-5-3   "CONNECTOR-2-1" "unknown" 3250    8125     0   top   
+CONN2-5-4   "CONNECTOR-2-1" "unknown" 3250    9625     0   top   
+CONN2-5-5   "CONNECTOR-2-1" "unknown" 3250    11125    0   top   
+CONN2-5-6   "CONNECTOR-2-1" "unknown" 3250    12625    0   top   
+CONN2-5-7   "CONNECTOR-2-1" "unknown" 3250    14125    0   top   
+CONN2-5-8   "CONNECTOR-2-1" "unknown" 3250    15625    0   top   
+CONN2-5-9   "CONNECTOR-2-1" "unknown" 3250    17125    0   top   
+CONN2-5-10  "CONNECTOR-2-1" "unknown" 3250    18625    0   top   
+CONN2-5-11  "CONNECTOR-2-1" "unknown" 3250    20125    0   top   
+CONN2-5-12  "CONNECTOR-2-1" "unknown" 3250    21625    0   top   
+CONN2-5-13  "CONNECTOR-2-1" "unknown" 3250    23125    0   top   
+CONN2-5-14  "CONNECTOR-2-1" "unknown" 3250    24625    0   top   
+CONN2-6-0   "CONNECTOR-2-1" "unknown" 3750    3625     0   top   
+CONN2-6-1   "CONNECTOR-2-1" "unknown" 3750    5125     0   top   
+CONN2-6-2   "CONNECTOR-2-1" "unknown" 3750    6625     0   top   
+CONN2-6-3   "CONNECTOR-2-1" "unknown" 3750    8125     0   top   
+CONN2-6-4   "CONNECTOR-2-1" "unknown" 3750    9625     0   top   
+CONN2-6-5   "CONNECTOR-2-1" "unknown" 3750    11125    0   top   
+CONN2-6-6   "CONNECTOR-2-1" "unknown" 3750    12625    0   top   
+CONN2-6-7   "CONNECTOR-2-1" "unknown" 3750    14125    0   top   
+CONN2-6-8   "CONNECTOR-2-1" "unknown" 3750    15625    0   top   
+CONN2-6-9   "CONNECTOR-2-1" "unknown" 3750    17125    0   top   
+CONN2-6-10  "CONNECTOR-2-1" "unknown" 3750    18625    0   top   
+CONN2-6-11  "CONNECTOR-2-1" "unknown" 3750    20125    0   top   
+CONN2-6-12  "CONNECTOR-2-1" "unknown" 3750    21625    0   top   
+CONN2-6-13  "CONNECTOR-2-1" "unknown" 3750    23125    0   top   
+CONN2-6-14  "CONNECTOR-2-1" "unknown" 3750    24625    0   top   
+CONN2-7-0   "CONNECTOR-2-1" "unknown" 4250    3625     0   top   
+CONN2-7-1   "CONNECTOR-2-1" "unknown" 4250    5125     0   top   
+CONN2-7-2   "CONNECTOR-2-1" "unknown" 4250    6625     0   top   
+CONN2-7-3   "CONNECTOR-2-1" "unknown" 4250    8125     0   top   
+CONN2-7-4   "CONNECTOR-2-1" "unknown" 4250    9625     0   top   
+CONN2-7-5   "CONNECTOR-2-1" "unknown" 4250    11125    0   top   
+CONN2-7-6   "CONNECTOR-2-1" "unknown" 4250    12625    0   top   
+CONN2-7-7   "CONNECTOR-2-1" "unknown" 4250    14125    0   top   
+CONN2-7-8   "CONNECTOR-2-1" "unknown" 4250    15625    0   top   
+CONN2-7-9   "CONNECTOR-2-1" "unknown" 4250    17125    0   top   
+CONN2-7-10  "CONNECTOR-2-1" "unknown" 4250    18625    0   top   
+CONN2-7-11  "CONNECTOR-2-1" "unknown" 4250    20125    0   top   
+CONN2-7-12  "CONNECTOR-2-1" "unknown" 4250    21625    0   top   
+CONN2-7-13  "CONNECTOR-2-1" "unknown" 4250    23125    0   top   
+CONN2-7-14  "CONNECTOR-2-1" "unknown" 4250    24625    0   top   
+CONN2-8-0   "CONNECTOR-2-1" "unknown" 4750    3625     0   top   
+CONN2-8-1   "CONNECTOR-2-1" "unknown" 4750    5125     0   top   
+CONN2-8-2   "CONNECTOR-2-1" "unknown" 4750    6625     0   top   
+CONN2-8-3   "CONNECTOR-2-1" "unknown" 4750    8125     0   top   
+CONN2-8-4   "CONNECTOR-2-1" "unknown" 4750    9625     0   top   
+CONN2-8-5   "CONNECTOR-2-1" "unknown" 4750    11125    0   top   
+CONN2-8-6   "CONNECTOR-2-1" "unknown" 4750    12625    0   top   
+CONN2-8-7   "CONNECTOR-2-1" "unknown" 4750    14125    0   top   
+CONN2-8-8   "CONNECTOR-2-1" "unknown" 4750    15625    0   top   
+CONN2-8-9   "CONNECTOR-2-1" "unknown" 4750    17125    0   top   
+CONN2-8-10  "CONNECTOR-2-1" "unknown" 4750    18625    0   top   
+CONN2-8-11  "CONNECTOR-2-1" "unknown" 4750    20125    0   top   
+CONN2-8-12  "CONNECTOR-2-1" "unknown" 4750    21625    0   top   
+CONN2-8-13  "CONNECTOR-2-1" "unknown" 4750    23125    0   top   
+CONN2-8-14  "CONNECTOR-2-1" "unknown" 4750    24625    0   top   
+CONN2-9-0   "CONNECTOR-2-1" "unknown" 5250    3625     0   top   
+CONN2-9-1   "CONNECTOR-2-1" "unknown" 5250    5125     0   top   
+CONN2-9-2   "CONNECTOR-2-1" "unknown" 5250    6625     0   top   
+CONN2-9-3   "CONNECTOR-2-1" "unknown" 5250    8125     0   top   
+CONN2-9-4   "CONNECTOR-2-1" "unknown" 5250    9625     0   top   
+CONN2-9-5   "CONNECTOR-2-1" "unknown" 5250    11125    0   top   
+CONN2-9-6   "CONNECTOR-2-1" "unknown" 5250    12625    0   top   
+CONN2-9-7   "CONNECTOR-2-1" "unknown" 5250    14125    0   top   
+CONN2-9-8   "CONNECTOR-2-1" "unknown" 5250    15625    0   top   
+CONN2-9-9   "CONNECTOR-2-1" "unknown" 5250    17125    0   top   
+CONN2-9-10  "CONNECTOR-2-1" "unknown" 5250    18625    0   top   
+CONN2-9-11  "CONNECTOR-2-1" "unknown" 5250    20125    0   top   
+CONN2-9-12  "CONNECTOR-2-1" "unknown" 5250    21625    0   top   
+CONN2-9-13  "CONNECTOR-2-1" "unknown" 5250    23125    0   top   
+CONN2-9-14  "CONNECTOR-2-1" "unknown" 5250    24625    0   top   
+CONN2-10-0  "CONNECTOR-2-1" "unknown" 5750    3625     0   top   
+CONN2-10-1  "CONNECTOR-2-1" "unknown" 5750    5125     0   top   
+CONN2-10-2  "CONNECTOR-2-1" "unknown" 5750    6625     0   top   
+CONN2-10-3  "CONNECTOR-2-1" "unknown" 5750    8125     0   top   
+CONN2-10-4  "CONNECTOR-2-1" "unknown" 5750    9625     0   top   
+CONN2-10-5  "CONNECTOR-2-1" "unknown" 5750    11125    0   top   
+CONN2-10-6  "CONNECTOR-2-1" "unknown" 5750    12625    0   top   
+CONN2-10-7  "CONNECTOR-2-1" "unknown" 5750    14125    0   top   
+CONN2-10-8  "CONNECTOR-2-1" "unknown" 5750    15625    0   top   
+CONN2-10-9  "CONNECTOR-2-1" "unknown" 5750    17125    0   top   
+CONN2-10-10 "CONNECTOR-2-1" "unknown" 5750    18625    0   top   
+CONN2-10-11 "CONNECTOR-2-1" "unknown" 5750    20125    0   top   
+CONN2-10-12 "CONNECTOR-2-1" "unknown" 5750    21625    0   top   
+CONN2-10-13 "CONNECTOR-2-1" "unknown" 5750    23125    0   top   
+CONN2-10-14 "CONNECTOR-2-1" "unknown" 5750    24625    0   top   
+CONN2-11-0  "CONNECTOR-2-1" "unknown" 6250    3625     0   top   
+CONN2-11-1  "CONNECTOR-2-1" "unknown" 6250    5125     0   top   
+CONN2-11-2  "CONNECTOR-2-1" "unknown" 6250    6625     0   top   
+CONN2-11-3  "CONNECTOR-2-1" "unknown" 6250    8125     0   top   
+CONN2-11-4  "CONNECTOR-2-1" "unknown" 6250    9625     0   top   
+CONN2-11-5  "CONNECTOR-2-1" "unknown" 6250    11125    0   top   
+CONN2-11-6  "CONNECTOR-2-1" "unknown" 6250    12625    0   top   
+CONN2-11-7  "CONNECTOR-2-1" "unknown" 6250    14125    0   top   
+CONN2-11-8  "CONNECTOR-2-1" "unknown" 6250    15625    0   top   
+CONN2-11-9  "CONNECTOR-2-1" "unknown" 6250    17125    0   top   
+CONN2-11-10 "CONNECTOR-2-1" "unknown" 6250    18625    0   top   
+CONN2-11-11 "CONNECTOR-2-1" "unknown" 6250    20125    0   top   
+CONN2-11-12 "CONNECTOR-2-1" "unknown" 6250    21625    0   top   
+CONN2-11-13 "CONNECTOR-2-1" "unknown" 6250    23125    0   top   
+CONN2-11-14 "CONNECTOR-2-1" "unknown" 6250    24625    0   top   
+CONN2-12-0  "CONNECTOR-2-1" "unknown" 6750    3625     0   top   
+CONN2-12-1  "CONNECTOR-2-1" "unknown" 6750    5125     0   top   
+CONN2-12-2  "CONNECTOR-2-1" "unknown" 6750    6625     0   top   
+CONN2-12-3  "CONNECTOR-2-1" "unknown" 6750    8125     0   top   
+CONN2-12-4  "CONNECTOR-2-1" "unknown" 6750    9625     0   top   
+CONN2-12-5  "CONNECTOR-2-1" "unknown" 6750    11125    0   top   
+CONN2-12-6  "CONNECTOR-2-1" "unknown" 6750    12625    0   top   
+CONN2-12-7  "CONNECTOR-2-1" "unknown" 6750    14125    0   top   
+CONN2-12-8  "CONNECTOR-2-1" "unknown" 6750    15625    0   top   
+CONN2-12-9  "CONNECTOR-2-1" "unknown" 6750    17125    0   top   
+CONN2-12-10 "CONNECTOR-2-1" "unknown" 6750    18625    0   top   
+CONN2-12-11 "CONNECTOR-2-1" "unknown" 6750    20125    0   top   
+CONN2-12-12 "CONNECTOR-2-1" "unknown" 6750    21625    0   top   
+CONN2-12-13 "CONNECTOR-2-1" "unknown" 6750    23125    0   top   
+CONN2-12-14 "CONNECTOR-2-1" "unknown" 6750    24625    0   top   
+CONN2-13-0  "CONNECTOR-2-1" "unknown" 7250    3625     0   top   
+CONN2-13-1  "CONNECTOR-2-1" "unknown" 7250    5125     0   top   
+CONN2-13-2  "CONNECTOR-2-1" "unknown" 7250    6625     0   top   
+CONN2-13-3  "CONNECTOR-2-1" "unknown" 7250    8125     0   top   
+CONN2-13-4  "CONNECTOR-2-1" "unknown" 7250    9625     0   top   
+CONN2-13-5  "CONNECTOR-2-1" "unknown" 7250    11125    0   top   
+CONN2-13-6  "CONNECTOR-2-1" "unknown" 7250    12625    0   top   
+CONN2-13-7  "CONNECTOR-2-1" "unknown" 7250    14125    0   top   
+CONN2-13-8  "CONNECTOR-2-1" "unknown" 7250    15625    0   top   
+CONN2-13-9  "CONNECTOR-2-1" "unknown" 7250    17125    0   top   
+CONN2-13-10 "CONNECTOR-2-1" "unknown" 7250    18625    0   top   
+CONN2-13-11 "CONNECTOR-2-1" "unknown" 7250    20125    0   top   
+CONN2-13-12 "CONNECTOR-2-1" "unknown" 7250    21625    0   top   
+CONN2-13-13 "CONNECTOR-2-1" "unknown" 7250    23125    0   top   
+CONN2-13-14 "CONNECTOR-2-1" "unknown" 7250    24625    0   top   
+CONN2-14-0  "CONNECTOR-2-1" "unknown" 7750    3625     0   top   
+CONN2-14-1  "CONNECTOR-2-1" "unknown" 7750    5125     0   top   
+CONN2-14-2  "CONNECTOR-2-1" "unknown" 7750    6625     0   top   
+CONN2-14-3  "CONNECTOR-2-1" "unknown" 7750    8125     0   top   
+CONN2-14-4  "CONNECTOR-2-1" "unknown" 7750    9625     0   top   
+CONN2-14-5  "CONNECTOR-2-1" "unknown" 7750    11125    0   top   
+CONN2-14-6  "CONNECTOR-2-1" "unknown" 7750    12625    0   top   
+CONN2-14-7  "CONNECTOR-2-1" "unknown" 7750    14125    0   top   
+CONN2-14-8  "CONNECTOR-2-1" "unknown" 7750    15625    0   top   
+CONN2-14-9  "CONNECTOR-2-1" "unknown" 7750    17125    0   top   
+CONN2-14-10 "CONNECTOR-2-1" "unknown" 7750    18625    0   top   
+CONN2-14-11 "CONNECTOR-2-1" "unknown" 7750    20125    0   top   
+CONN2-14-12 "CONNECTOR-2-1" "unknown" 7750    21625    0   top   
+CONN2-14-13 "CONNECTOR-2-1" "unknown" 7750    23125    0   top   
+CONN2-14-14 "CONNECTOR-2-1" "unknown" 7750    24625    0   top   
+S2-0-0      "CONNECTOR-2-1" "unknown" 750.00  3850.00  180 top   
+S2-0-1      "CONNECTOR-2-1" "unknown" 750     5350     180 top   
+S2-0-2      "CONNECTOR-2-1" "unknown" 750     6850     180 top   
+S2-0-3      "CONNECTOR-2-1" "unknown" 750     8350     180 top   
+S2-0-4      "CONNECTOR-2-1" "unknown" 750     9850     180 top   
+S2-0-5      "CONNECTOR-2-1" "unknown" 750     11350    180 top   
+S2-0-6      "CONNECTOR-2-1" "unknown" 750     12850    180 top   
+S2-0-7      "CONNECTOR-2-1" "unknown" 750     14350    180 top   
+S2-0-8      "CONNECTOR-2-1" "unknown" 750     15850    180 top   
+S2-0-9      "CONNECTOR-2-1" "unknown" 750     17350    180 top   
+S2-0-10     "CONNECTOR-2-1" "unknown" 750     18850    180 top   
+S2-0-11     "CONNECTOR-2-1" "unknown" 750     20350    180 top   
+S2-0-12     "CONNECTOR-2-1" "unknown" 750     21850    180 top   
+S2-0-13     "CONNECTOR-2-1" "unknown" 750     23350    180 top   
+S2-0-14     "CONNECTOR-2-1" "unknown" 750     24850    180 top   
+S2-1-0      "CONNECTOR-2-1" "unknown" 1250    3850     180 top   
+S2-1-1      "CONNECTOR-2-1" "unknown" 1250    5350     180 top   
+S2-1-2      "CONNECTOR-2-1" "unknown" 1250    6850     180 top   
+S2-1-3      "CONNECTOR-2-1" "unknown" 1250    8350     180 top   
+S2-1-4      "CONNECTOR-2-1" "unknown" 1250    9850     180 top   
+S2-1-5      "CONNECTOR-2-1" "unknown" 1250    11350    180 top   
+S2-1-6      "CONNECTOR-2-1" "unknown" 1250    12850    180 top   
+S2-1-7      "CONNECTOR-2-1" "unknown" 1250    14350    180 top   
+S2-1-8      "CONNECTOR-2-1" "unknown" 1250    15850    180 top   
+S2-1-9      "CONNECTOR-2-1" "unknown" 1250    17350    180 top   
+S2-1-10     "CONNECTOR-2-1" "unknown" 1250    18850    180 top   
+S2-1-11     "CONNECTOR-2-1" "unknown" 1250    20350    180 top   
+S2-1-12     "CONNECTOR-2-1" "unknown" 1250    21850    180 top   
+S2-1-13     "CONNECTOR-2-1" "unknown" 1250    23350    180 top   
+S2-1-14     "CONNECTOR-2-1" "unknown" 1250    24850    180 top   
+S2-2-0      "CONNECTOR-2-1" "unknown" 1750    3850     180 top   
+S2-2-1      "CONNECTOR-2-1" "unknown" 1750    5350     180 top   
+S2-2-2      "CONNECTOR-2-1" "unknown" 1750    6850     180 top   
+S2-2-3      "CONNECTOR-2-1" "unknown" 1750    8350     180 top   
+S2-2-4      "CONNECTOR-2-1" "unknown" 1750    9850     180 top   
+S2-2-5      "CONNECTOR-2-1" "unknown" 1750    11350    180 top   
+S2-2-6      "CONNECTOR-2-1" "unknown" 1750    12850    180 top   
+S2-2-7      "CONNECTOR-2-1" "unknown" 1750    14350    180 top   
+S2-2-8      "CONNECTOR-2-1" "unknown" 1750    15850    180 top   
+S2-2-9      "CONNECTOR-2-1" "unknown" 1750    17350    180 top   
+S2-2-10     "CONNECTOR-2-1" "unknown" 1750    18850    180 top   
+S2-2-11     "CONNECTOR-2-1" "unknown" 1750    20350    180 top   
+S2-2-12     "CONNECTOR-2-1" "unknown" 1750    21850    180 top   
+S2-2-13     "CONNECTOR-2-1" "unknown" 1750    23350    180 top   
+S2-2-14     "CONNECTOR-2-1" "unknown" 1750    24850    180 top   
+S2-3-0      "CONNECTOR-2-1" "unknown" 2250    3850     180 top   
+S2-3-1      "CONNECTOR-2-1" "unknown" 2250    5350     180 top   
+S2-3-2      "CONNECTOR-2-1" "unknown" 2250    6850     180 top   
+S2-3-3      "CONNECTOR-2-1" "unknown" 2250    8350     180 top   
+S2-3-4      "CONNECTOR-2-1" "unknown" 2250    9850     180 top   
+S2-3-5      "CONNECTOR-2-1" "unknown" 2250    11350    180 top   
+S2-3-6      "CONNECTOR-2-1" "unknown" 2250    12850    180 top   
+S2-3-7      "CONNECTOR-2-1" "unknown" 2250    14350    180 top   
+S2-3-8      "CONNECTOR-2-1" "unknown" 2250    15850    180 top   
+S2-3-9      "CONNECTOR-2-1" "unknown" 2250    17350    180 top   
+S2-3-10     "CONNECTOR-2-1" "unknown" 2250    18850    180 top   
+S2-3-11     "CONNECTOR-2-1" "unknown" 2250    20350    180 top   
+S2-3-12     "CONNECTOR-2-1" "unknown" 2250    21850    180 top   
+S2-3-13     "CONNECTOR-2-1" "unknown" 2250    23350    180 top   
+S2-3-14     "CONNECTOR-2-1" "unknown" 2250    24850    180 top   
+S2-4-0      "CONNECTOR-2-1" "unknown" 2750    3850     180 top   
+S2-4-1      "CONNECTOR-2-1" "unknown" 2750    5350     180 top   
+S2-4-2      "CONNECTOR-2-1" "unknown" 2750    6850     180 top   
+S2-4-3      "CONNECTOR-2-1" "unknown" 2750    8350     180 top   
+S2-4-4      "CONNECTOR-2-1" "unknown" 2750    9850     180 top   
+S2-4-5      "CONNECTOR-2-1" "unknown" 2750    11350    180 top   
+S2-4-6      "CONNECTOR-2-1" "unknown" 2750    12850    180 top   
+S2-4-7      "CONNECTOR-2-1" "unknown" 2750    14350    180 top   
+S2-4-8      "CONNECTOR-2-1" "unknown" 2750    15850    180 top   
+S2-4-9      "CONNECTOR-2-1" "unknown" 2750    17350    180 top   
+S2-4-10     "CONNECTOR-2-1" "unknown" 2750    18850    180 top   
+S2-4-11     "CONNECTOR-2-1" "unknown" 2750    20350    180 top   
+S2-4-12     "CONNECTOR-2-1" "unknown" 2750    21850    180 top   
+S2-4-13     "CONNECTOR-2-1" "unknown" 2750    23350    180 top   
+S2-4-14     "CONNECTOR-2-1" "unknown" 2750    24850    180 top   
+S2-5-0      "CONNECTOR-2-1" "unknown" 3250    3850     180 top   
+S2-5-1      "CONNECTOR-2-1" "unknown" 3250    5350     180 top   
+S2-5-2      "CONNECTOR-2-1" "unknown" 3250    6850     180 top   
+S2-5-3      "CONNECTOR-2-1" "unknown" 3250    8350     180 top   
+S2-5-4      "CONNECTOR-2-1" "unknown" 3250    9850     180 top   
+S2-5-5      "CONNECTOR-2-1" "unknown" 3250    11350    180 top   
+S2-5-6      "CONNECTOR-2-1" "unknown" 3250    12850    180 top   
+S2-5-7      "CONNECTOR-2-1" "unknown" 3250    14350    180 top   
+S2-5-8      "CONNECTOR-2-1" "unknown" 3250    15850    180 top   
+S2-5-9      "CONNECTOR-2-1" "unknown" 3250    17350    180 top   
+S2-5-10     "CONNECTOR-2-1" "unknown" 3250    18850    180 top   
+S2-5-11     "CONNECTOR-2-1" "unknown" 3250    20350    180 top   
+S2-5-12     "CONNECTOR-2-1" "unknown" 3250    21850    180 top   
+S2-5-13     "CONNECTOR-2-1" "unknown" 3250    23350    180 top   
+S2-5-14     "CONNECTOR-2-1" "unknown" 3250    24850    180 top   
+S2-6-0      "CONNECTOR-2-1" "unknown" 3750    3850     180 top   
+S2-6-1      "CONNECTOR-2-1" "unknown" 3750    5350     180 top   
+S2-6-2      "CONNECTOR-2-1" "unknown" 3750    6850     180 top   
+S2-6-3      "CONNECTOR-2-1" "unknown" 3750    8350     180 top   
+S2-6-4      "CONNECTOR-2-1" "unknown" 3750    9850     180 top   
+S2-6-5      "CONNECTOR-2-1" "unknown" 3750    11350    180 top   
+S2-6-6      "CONNECTOR-2-1" "unknown" 3750    12850    180 top   
+S2-6-7      "CONNECTOR-2-1" "unknown" 3750    14350    180 top   
+S2-6-8      "CONNECTOR-2-1" "unknown" 3750    15850    180 top   
+S2-6-9      "CONNECTOR-2-1" "unknown" 3750    17350    180 top   
+S2-6-10     "CONNECTOR-2-1" "unknown" 3750    18850    180 top   
+S2-6-11     "CONNECTOR-2-1" "unknown" 3750    20350    180 top   
+S2-6-12     "CONNECTOR-2-1" "unknown" 3750    21850    180 top   
+S2-6-13     "CONNECTOR-2-1" "unknown" 3750    23350    180 top   
+S2-6-14     "CONNECTOR-2-1" "unknown" 3750    24850    180 top   
+S2-7-0      "CONNECTOR-2-1" "unknown" 4250    3850     180 top   
+S2-7-1      "CONNECTOR-2-1" "unknown" 4250    5350     180 top   
+S2-7-2      "CONNECTOR-2-1" "unknown" 4250    6850     180 top   
+S2-7-3      "CONNECTOR-2-1" "unknown" 4250    8350     180 top   
+S2-7-4      "CONNECTOR-2-1" "unknown" 4250    9850     180 top   
+S2-7-5      "CONNECTOR-2-1" "unknown" 4250    11350    180 top   
+S2-7-6      "CONNECTOR-2-1" "unknown" 4250    12850    180 top   
+S2-7-7      "CONNECTOR-2-1" "unknown" 4250    14350    180 top   
+S2-7-8      "CONNECTOR-2-1" "unknown" 4250    15850    180 top   
+S2-7-9      "CONNECTOR-2-1" "unknown" 4250    17350    180 top   
+S2-7-10     "CONNECTOR-2-1" "unknown" 4250    18850    180 top   
+S2-7-11     "CONNECTOR-2-1" "unknown" 4250    20350    180 top   
+S2-7-12     "CONNECTOR-2-1" "unknown" 4250    21850    180 top   
+S2-7-13     "CONNECTOR-2-1" "unknown" 4250    23350    180 top   
+S2-7-14     "CONNECTOR-2-1" "unknown" 4250    24850    180 top   
+S2-8-0      "CONNECTOR-2-1" "unknown" 4750    3850     180 top   
+S2-8-1      "CONNECTOR-2-1" "unknown" 4750    5350     180 top   
+S2-8-2      "CONNECTOR-2-1" "unknown" 4750    6850     180 top   
+S2-8-3      "CONNECTOR-2-1" "unknown" 4750    8350     180 top   
+S2-8-4      "CONNECTOR-2-1" "unknown" 4750    9850     180 top   
+S2-8-5      "CONNECTOR-2-1" "unknown" 4750    11350    180 top   
+S2-8-6      "CONNECTOR-2-1" "unknown" 4750    12850    180 top   
+S2-8-7      "CONNECTOR-2-1" "unknown" 4750    14350    180 top   
+S2-8-8      "CONNECTOR-2-1" "unknown" 4750    15850    180 top   
+S2-8-9      "CONNECTOR-2-1" "unknown" 4750    17350    180 top   
+S2-8-10     "CONNECTOR-2-1" "unknown" 4750    18850    180 top   
+S2-8-11     "CONNECTOR-2-1" "unknown" 4750    20350    180 top   
+S2-8-12     "CONNECTOR-2-1" "unknown" 4750    21850    180 top   
+S2-8-13     "CONNECTOR-2-1" "unknown" 4750    23350    180 top   
+S2-8-14     "CONNECTOR-2-1" "unknown" 4750    24850    180 top   
+S2-9-0      "CONNECTOR-2-1" "unknown" 5250    3850     180 top   
+S2-9-1      "CONNECTOR-2-1" "unknown" 5250    5350     180 top   
+S2-9-2      "CONNECTOR-2-1" "unknown" 5250    6850     180 top   
+S2-9-3      "CONNECTOR-2-1" "unknown" 5250    8350     180 top   
+S2-9-4      "CONNECTOR-2-1" "unknown" 5250    9850     180 top   
+S2-9-5      "CONNECTOR-2-1" "unknown" 5250    11350    180 top   
+S2-9-6      "CONNECTOR-2-1" "unknown" 5250    12850    180 top   
+S2-9-7      "CONNECTOR-2-1" "unknown" 5250    14350    180 top   
+S2-9-8      "CONNECTOR-2-1" "unknown" 5250    15850    180 top   
+S2-9-9      "CONNECTOR-2-1" "unknown" 5250    17350    180 top   
+S2-9-10     "CONNECTOR-2-1" "unknown" 5250    18850    180 top   
+S2-9-11     "CONNECTOR-2-1" "unknown" 5250    20350    180 top   
+S2-9-12     "CONNECTOR-2-1" "unknown" 5250    21850    180 top   
+S2-9-13     "CONNECTOR-2-1" "unknown" 5250    23350    180 top   
+S2-9-14     "CONNECTOR-2-1" "unknown" 5250    24850    180 top   
+S2-10-0     "CONNECTOR-2-1" "unknown" 5750    3850     180 top   
+S2-10-1     "CONNECTOR-2-1" "unknown" 5750    5350     180 top   
+S2-10-2     "CONNECTOR-2-1" "unknown" 5750    6850     180 top   
+S2-10-3     "CONNECTOR-2-1" "unknown" 5750    8350     180 top   
+S2-10-4     "CONNECTOR-2-1" "unknown" 5750    9850     180 top   
+S2-10-5     "CONNECTOR-2-1" "unknown" 5750    11350    180 top   
+S2-10-6     "CONNECTOR-2-1" "unknown" 5750    12850    180 top   
+S2-10-7     "CONNECTOR-2-1" "unknown" 5750    14350    180 top   
+S2-10-8     "CONNECTOR-2-1" "unknown" 5750    15850    180 top   
+S2-10-9     "CONNECTOR-2-1" "unknown" 5750    17350    180 top   
+S2-10-10    "CONNECTOR-2-1" "unknown" 5750    18850    180 top   
+S2-10-11    "CONNECTOR-2-1" "unknown" 5750    20350    180 top   
+S2-10-12    "CONNECTOR-2-1" "unknown" 5750    21850    180 top   
+S2-10-13    "CONNECTOR-2-1" "unknown" 5750    23350    180 top   
+S2-10-14    "CONNECTOR-2-1" "unknown" 5750    24850    180 top   
+S2-11-0     "CONNECTOR-2-1" "unknown" 6250    3850     180 top   
+S2-11-1     "CONNECTOR-2-1" "unknown" 6250    5350     180 top   
+S2-11-2     "CONNECTOR-2-1" "unknown" 6250    6850     180 top   
+S2-11-3     "CONNECTOR-2-1" "unknown" 6250    8350     180 top   
+S2-11-4     "CONNECTOR-2-1" "unknown" 6250    9850     180 top   
+S2-11-5     "CONNECTOR-2-1" "unknown" 6250    11350    180 top   
+S2-11-6     "CONNECTOR-2-1" "unknown" 6250    12850    180 top   
+S2-11-7     "CONNECTOR-2-1" "unknown" 6250    14350    180 top   
+S2-11-8     "CONNECTOR-2-1" "unknown" 6250    15850    180 top   
+S2-11-9     "CONNECTOR-2-1" "unknown" 6250    17350    180 top   
+S2-11-10    "CONNECTOR-2-1" "unknown" 6250    18850    180 top   
+S2-11-11    "CONNECTOR-2-1" "unknown" 6250    20350    180 top   
+S2-11-12    "CONNECTOR-2-1" "unknown" 6250    21850    180 top   
+S2-11-13    "CONNECTOR-2-1" "unknown" 6250    23350    180 top   
+S2-11-14    "CONNECTOR-2-1" "unknown" 6250    24850    180 top   
+S2-12-0     "CONNECTOR-2-1" "unknown" 6750    3850     180 top   
+S2-12-1     "CONNECTOR-2-1" "unknown" 6750    5350     180 top   
+S2-12-2     "CONNECTOR-2-1" "unknown" 6750    6850     180 top   
+S2-12-3     "CONNECTOR-2-1" "unknown" 6750    8350     180 top   
+S2-12-4     "CONNECTOR-2-1" "unknown" 6750    9850     180 top   
+S2-12-5     "CONNECTOR-2-1" "unknown" 6750    11350    180 top   
+S2-12-6     "CONNECTOR-2-1" "unknown" 6750    12850    180 top   
+S2-12-7     "CONNECTOR-2-1" "unknown" 6750    14350    180 top   
+S2-12-8     "CONNECTOR-2-1" "unknown" 6750    15850    180 top   
+S2-12-9     "CONNECTOR-2-1" "unknown" 6750    17350    180 top   
+S2-12-10    "CONNECTOR-2-1" "unknown" 6750    18850    180 top   
+S2-12-11    "CONNECTOR-2-1" "unknown" 6750    20350    180 top   
+S2-12-12    "CONNECTOR-2-1" "unknown" 6750    21850    180 top   
+S2-12-13    "CONNECTOR-2-1" "unknown" 6750    23350    180 top   
+S2-12-14    "CONNECTOR-2-1" "unknown" 6750    24850    180 top   
+S2-13-0     "CONNECTOR-2-1" "unknown" 7250    3850     180 top   
+S2-13-1     "CONNECTOR-2-1" "unknown" 7250    5350     180 top   
+S2-13-2     "CONNECTOR-2-1" "unknown" 7250    6850     180 top   
+S2-13-3     "CONNECTOR-2-1" "unknown" 7250    8350     180 top   
+S2-13-4     "CONNECTOR-2-1" "unknown" 7250    9850     180 top   
+S2-13-5     "CONNECTOR-2-1" "unknown" 7250    11350    180 top   
+S2-13-6     "CONNECTOR-2-1" "unknown" 7250    12850    180 top   
+S2-13-7     "CONNECTOR-2-1" "unknown" 7250    14350    180 top   
+S2-13-8     "CONNECTOR-2-1" "unknown" 7250    15850    180 top   
+S2-13-9     "CONNECTOR-2-1" "unknown" 7250    17350    180 top   
+S2-13-10    "CONNECTOR-2-1" "unknown" 7250    18850    180 top   
+S2-13-11    "CONNECTOR-2-1" "unknown" 7250    20350    180 top   
+S2-13-12    "CONNECTOR-2-1" "unknown" 7250    21850    180 top   
+S2-13-13    "CONNECTOR-2-1" "unknown" 7250    23350    180 top   
+S2-13-14    "CONNECTOR-2-1" "unknown" 7250    24850    180 top   
+S2-14-0     "CONNECTOR-2-1" "unknown" 7750    3850     180 top   
+S2-14-1     "CONNECTOR-2-1" "unknown" 7750    5350     180 top   
+S2-14-2     "CONNECTOR-2-1" "unknown" 7750    6850     180 top   
+S2-14-3     "CONNECTOR-2-1" "unknown" 7750    8350     180 top   
+S2-14-4     "CONNECTOR-2-1" "unknown" 7750    9850     180 top   
+S2-14-5     "CONNECTOR-2-1" "unknown" 7750    11350    180 top   
+S2-14-6     "CONNECTOR-2-1" "unknown" 7750    12850    180 top   
+S2-14-7     "CONNECTOR-2-1" "unknown" 7750    14350    180 top   
+S2-14-8     "CONNECTOR-2-1" "unknown" 7750    15850    180 top   
+S2-14-9     "CONNECTOR-2-1" "unknown" 7750    17350    180 top   
+S2-14-10    "CONNECTOR-2-1" "unknown" 7750    18850    180 top   
+S2-14-11    "CONNECTOR-2-1" "unknown" 7750    20350    180 top   
+S2-14-12    "CONNECTOR-2-1" "unknown" 7750    21850    180 top   
+S2-14-13    "CONNECTOR-2-1" "unknown" 7750    23350    180 top   
+S2-14-14    "CONNECTOR-2-1" "unknown" 7750    24850    180 top   
+S1-0-0      "CONNECTOR-2-1" "unknown" 275.00  3850.00  0   top   
+S1-0-1      "CONNECTOR-2-1" "unknown" 275     5350     0   top   
+S1-0-2      "CONNECTOR-2-1" "unknown" 275     6850     0   top   
+S1-0-3      "CONNECTOR-2-1" "unknown" 275     8350     0   top   
+S1-0-4      "CONNECTOR-2-1" "unknown" 275     9850     0   top   
+S1-0-5      "CONNECTOR-2-1" "unknown" 275     11350    0   top   
+S1-0-6      "CONNECTOR-2-1" "unknown" 275     12850    0   top   
+S1-0-7      "CONNECTOR-2-1" "unknown" 275     14350    0   top   
+S1-0-8      "CONNECTOR-2-1" "unknown" 275     15850    0   top   
+S1-0-9      "CONNECTOR-2-1" "unknown" 275     17350    0   top   
+S1-0-10     "CONNECTOR-2-1" "unknown" 275     18850    0   top   
+S1-0-11     "CONNECTOR-2-1" "unknown" 275     20350    0   top   
+S1-0-12     "CONNECTOR-2-1" "unknown" 275     21850    0   top   
+S1-0-13     "CONNECTOR-2-1" "unknown" 275     23350    0   top   
+S1-0-14     "CONNECTOR-2-1" "unknown" 275     24850    0   top   
+S1-1-0      "CONNECTOR-2-1" "unknown" 775     3850     0   top   
+S1-1-1      "CONNECTOR-2-1" "unknown" 775     5350     0   top   
+S1-1-2      "CONNECTOR-2-1" "unknown" 775     6850     0   top   
+S1-1-3      "CONNECTOR-2-1" "unknown" 775     8350     0   top   
+S1-1-4      "CONNECTOR-2-1" "unknown" 775     9850     0   top   
+S1-1-5      "CONNECTOR-2-1" "unknown" 775     11350    0   top   
+S1-1-6      "CONNECTOR-2-1" "unknown" 775     12850    0   top   
+S1-1-7      "CONNECTOR-2-1" "unknown" 775     14350    0   top   
+S1-1-8      "CONNECTOR-2-1" "unknown" 775     15850    0   top   
+S1-1-9      "CONNECTOR-2-1" "unknown" 775     17350    0   top   
+S1-1-10     "CONNECTOR-2-1" "unknown" 775     18850    0   top   
+S1-1-11     "CONNECTOR-2-1" "unknown" 775     20350    0   top   
+S1-1-12     "CONNECTOR-2-1" "unknown" 775     21850    0   top   
+S1-1-13     "CONNECTOR-2-1" "unknown" 775     23350    0   top   
+S1-1-14     "CONNECTOR-2-1" "unknown" 775     24850    0   top   
+S1-2-0      "CONNECTOR-2-1" "unknown" 1275    3850     0   top   
+S1-2-1      "CONNECTOR-2-1" "unknown" 1275    5350     0   top   
+S1-2-2      "CONNECTOR-2-1" "unknown" 1275    6850     0   top   
+S1-2-3      "CONNECTOR-2-1" "unknown" 1275    8350     0   top   
+S1-2-4      "CONNECTOR-2-1" "unknown" 1275    9850     0   top   
+S1-2-5      "CONNECTOR-2-1" "unknown" 1275    11350    0   top   
+S1-2-6      "CONNECTOR-2-1" "unknown" 1275    12850    0   top   
+S1-2-7      "CONNECTOR-2-1" "unknown" 1275    14350    0   top   
+S1-2-8      "CONNECTOR-2-1" "unknown" 1275    15850    0   top   
+S1-2-9      "CONNECTOR-2-1" "unknown" 1275    17350    0   top   
+S1-2-10     "CONNECTOR-2-1" "unknown" 1275    18850    0   top   
+S1-2-11     "CONNECTOR-2-1" "unknown" 1275    20350    0   top   
+S1-2-12     "CONNECTOR-2-1" "unknown" 1275    21850    0   top   
+S1-2-13     "CONNECTOR-2-1" "unknown" 1275    23350    0   top   
+S1-2-14     "CONNECTOR-2-1" "unknown" 1275    24850    0   top   
+S1-3-0      "CONNECTOR-2-1" "unknown" 1775    3850     0   top   
+S1-3-1      "CONNECTOR-2-1" "unknown" 1775    5350     0   top   
+S1-3-2      "CONNECTOR-2-1" "unknown" 1775    6850     0   top   
+S1-3-3      "CONNECTOR-2-1" "unknown" 1775    8350     0   top   
+S1-3-4      "CONNECTOR-2-1" "unknown" 1775    9850     0   top   
+S1-3-5      "CONNECTOR-2-1" "unknown" 1775    11350    0   top   
+S1-3-6      "CONNECTOR-2-1" "unknown" 1775    12850    0   top   
+S1-3-7      "CONNECTOR-2-1" "unknown" 1775    14350    0   top   
+S1-3-8      "CONNECTOR-2-1" "unknown" 1775    15850    0   top   
+S1-3-9      "CONNECTOR-2-1" "unknown" 1775    17350    0   top   
+S1-3-10     "CONNECTOR-2-1" "unknown" 1775    18850    0   top   
+S1-3-11     "CONNECTOR-2-1" "unknown" 1775    20350    0   top   
+S1-3-12     "CONNECTOR-2-1" "unknown" 1775    21850    0   top   
+S1-3-13     "CONNECTOR-2-1" "unknown" 1775    23350    0   top   
+S1-3-14     "CONNECTOR-2-1" "unknown" 1775    24850    0   top   
+S1-4-0      "CONNECTOR-2-1" "unknown" 2275    3850     0   top   
+S1-4-1      "CONNECTOR-2-1" "unknown" 2275    5350     0   top   
+S1-4-2      "CONNECTOR-2-1" "unknown" 2275    6850     0   top   
+S1-4-3      "CONNECTOR-2-1" "unknown" 2275    8350     0   top   
+S1-4-4      "CONNECTOR-2-1" "unknown" 2275    9850     0   top   
+S1-4-5      "CONNECTOR-2-1" "unknown" 2275    11350    0   top   
+S1-4-6      "CONNECTOR-2-1" "unknown" 2275    12850    0   top   
+S1-4-7      "CONNECTOR-2-1" "unknown" 2275    14350    0   top   
+S1-4-8      "CONNECTOR-2-1" "unknown" 2275    15850    0   top   
+S1-4-9      "CONNECTOR-2-1" "unknown" 2275    17350    0   top   
+S1-4-10     "CONNECTOR-2-1" "unknown" 2275    18850    0   top   
+S1-4-11     "CONNECTOR-2-1" "unknown" 2275    20350    0   top   
+S1-4-12     "CONNECTOR-2-1" "unknown" 2275    21850    0   top   
+S1-4-13     "CONNECTOR-2-1" "unknown" 2275    23350    0   top   
+S1-4-14     "CONNECTOR-2-1" "unknown" 2275    24850    0   top   
+S1-5-0      "CONNECTOR-2-1" "unknown" 2775    3850     0   top   
+S1-5-1      "CONNECTOR-2-1" "unknown" 2775    5350     0   top   
+S1-5-2      "CONNECTOR-2-1" "unknown" 2775    6850     0   top   
+S1-5-3      "CONNECTOR-2-1" "unknown" 2775    8350     0   top   
+S1-5-4      "CONNECTOR-2-1" "unknown" 2775    9850     0   top   
+S1-5-5      "CONNECTOR-2-1" "unknown" 2775    11350    0   top   
+S1-5-6      "CONNECTOR-2-1" "unknown" 2775    12850    0   top   
+S1-5-7      "CONNECTOR-2-1" "unknown" 2775    14350    0   top   
+S1-5-8      "CONNECTOR-2-1" "unknown" 2775    15850    0   top   
+S1-5-9      "CONNECTOR-2-1" "unknown" 2775    17350    0   top   
+S1-5-10     "CONNECTOR-2-1" "unknown" 2775    18850    0   top   
+S1-5-11     "CONNECTOR-2-1" "unknown" 2775    20350    0   top   
+S1-5-12     "CONNECTOR-2-1" "unknown" 2775    21850    0   top   
+S1-5-13     "CONNECTOR-2-1" "unknown" 2775    23350    0   top   
+S1-5-14     "CONNECTOR-2-1" "unknown" 2775    24850    0   top   
+S1-6-0      "CONNECTOR-2-1" "unknown" 3275    3850     0   top   
+S1-6-1      "CONNECTOR-2-1" "unknown" 3275    5350     0   top   
+S1-6-2      "CONNECTOR-2-1" "unknown" 3275    6850     0   top   
+S1-6-3      "CONNECTOR-2-1" "unknown" 3275    8350     0   top   
+S1-6-4      "CONNECTOR-2-1" "unknown" 3275    9850     0   top   
+S1-6-5      "CONNECTOR-2-1" "unknown" 3275    11350    0   top   
+S1-6-6      "CONNECTOR-2-1" "unknown" 3275    12850    0   top   
+S1-6-7      "CONNECTOR-2-1" "unknown" 3275    14350    0   top   
+S1-6-8      "CONNECTOR-2-1" "unknown" 3275    15850    0   top   
+S1-6-9      "CONNECTOR-2-1" "unknown" 3275    17350    0   top   
+S1-6-10     "CONNECTOR-2-1" "unknown" 3275    18850    0   top   
+S1-6-11     "CONNECTOR-2-1" "unknown" 3275    20350    0   top   
+S1-6-12     "CONNECTOR-2-1" "unknown" 3275    21850    0   top   
+S1-6-13     "CONNECTOR-2-1" "unknown" 3275    23350    0   top   
+S1-6-14     "CONNECTOR-2-1" "unknown" 3275    24850    0   top   
+S1-7-0      "CONNECTOR-2-1" "unknown" 3775    3850     0   top   
+S1-7-1      "CONNECTOR-2-1" "unknown" 3775    5350     0   top   
+S1-7-2      "CONNECTOR-2-1" "unknown" 3775    6850     0   top   
+S1-7-3      "CONNECTOR-2-1" "unknown" 3775    8350     0   top   
+S1-7-4      "CONNECTOR-2-1" "unknown" 3775    9850     0   top   
+S1-7-5      "CONNECTOR-2-1" "unknown" 3775    11350    0   top   
+S1-7-6      "CONNECTOR-2-1" "unknown" 3775    12850    0   top   
+S1-7-7      "CONNECTOR-2-1" "unknown" 3775    14350    0   top   
+S1-7-8      "CONNECTOR-2-1" "unknown" 3775    15850    0   top   
+S1-7-9      "CONNECTOR-2-1" "unknown" 3775    17350    0   top   
+S1-7-10     "CONNECTOR-2-1" "unknown" 3775    18850    0   top   
+S1-7-11     "CONNECTOR-2-1" "unknown" 3775    20350    0   top   
+S1-7-12     "CONNECTOR-2-1" "unknown" 3775    21850    0   top   
+S1-7-13     "CONNECTOR-2-1" "unknown" 3775    23350    0   top   
+S1-7-14     "CONNECTOR-2-1" "unknown" 3775    24850    0   top   
+S1-8-0      "CONNECTOR-2-1" "unknown" 4275    3850     0   top   
+S1-8-1      "CONNECTOR-2-1" "unknown" 4275    5350     0   top   
+S1-8-2      "CONNECTOR-2-1" "unknown" 4275    6850     0   top   
+S1-8-3      "CONNECTOR-2-1" "unknown" 4275    8350     0   top   
+S1-8-4      "CONNECTOR-2-1" "unknown" 4275    9850     0   top   
+S1-8-5      "CONNECTOR-2-1" "unknown" 4275    11350    0   top   
+S1-8-6      "CONNECTOR-2-1" "unknown" 4275    12850    0   top   
+S1-8-7      "CONNECTOR-2-1" "unknown" 4275    14350    0   top   
+S1-8-8      "CONNECTOR-2-1" "unknown" 4275    15850    0   top   
+S1-8-9      "CONNECTOR-2-1" "unknown" 4275    17350    0   top   
+S1-8-10     "CONNECTOR-2-1" "unknown" 4275    18850    0   top   
+S1-8-11     "CONNECTOR-2-1" "unknown" 4275    20350    0   top   
+S1-8-12     "CONNECTOR-2-1" "unknown" 4275    21850    0   top   
+S1-8-13     "CONNECTOR-2-1" "unknown" 4275    23350    0   top   
+S1-8-14     "CONNECTOR-2-1" "unknown" 4275    24850    0   top   
+S1-9-0      "CONNECTOR-2-1" "unknown" 4775    3850     0   top   
+S1-9-1      "CONNECTOR-2-1" "unknown" 4775    5350     0   top   
+S1-9-2      "CONNECTOR-2-1" "unknown" 4775    6850     0   top   
+S1-9-3      "CONNECTOR-2-1" "unknown" 4775    8350     0   top   
+S1-9-4      "CONNECTOR-2-1" "unknown" 4775    9850     0   top   
+S1-9-5      "CONNECTOR-2-1" "unknown" 4775    11350    0   top   
+S1-9-6      "CONNECTOR-2-1" "unknown" 4775    12850    0   top   
+S1-9-7      "CONNECTOR-2-1" "unknown" 4775    14350    0   top   
+S1-9-8      "CONNECTOR-2-1" "unknown" 4775    15850    0   top   
+S1-9-9      "CONNECTOR-2-1" "unknown" 4775    17350    0   top   
+S1-9-10     "CONNECTOR-2-1" "unknown" 4775    18850    0   top   
+S1-9-11     "CONNECTOR-2-1" "unknown" 4775    20350    0   top   
+S1-9-12     "CONNECTOR-2-1" "unknown" 4775    21850    0   top   
+S1-9-13     "CONNECTOR-2-1" "unknown" 4775    23350    0   top   
+S1-9-14     "CONNECTOR-2-1" "unknown" 4775    24850    0   top   
+S1-10-0     "CONNECTOR-2-1" "unknown" 5275    3850     0   top   
+S1-10-1     "CONNECTOR-2-1" "unknown" 5275    5350     0   top   
+S1-10-2     "CONNECTOR-2-1" "unknown" 5275    6850     0   top   
+S1-10-3     "CONNECTOR-2-1" "unknown" 5275    8350     0   top   
+S1-10-4     "CONNECTOR-2-1" "unknown" 5275    9850     0   top   
+S1-10-5     "CONNECTOR-2-1" "unknown" 5275    11350    0   top   
+S1-10-6     "CONNECTOR-2-1" "unknown" 5275    12850    0   top   
+S1-10-7     "CONNECTOR-2-1" "unknown" 5275    14350    0   top   
+S1-10-8     "CONNECTOR-2-1" "unknown" 5275    15850    0   top   
+S1-10-9     "CONNECTOR-2-1" "unknown" 5275    17350    0   top   
+S1-10-10    "CONNECTOR-2-1" "unknown" 5275    18850    0   top   
+S1-10-11    "CONNECTOR-2-1" "unknown" 5275    20350    0   top   
+S1-10-12    "CONNECTOR-2-1" "unknown" 5275    21850    0   top   
+S1-10-13    "CONNECTOR-2-1" "unknown" 5275    23350    0   top   
+S1-10-14    "CONNECTOR-2-1" "unknown" 5275    24850    0   top   
+S1-11-0     "CONNECTOR-2-1" "unknown" 5775    3850     0   top   
+S1-11-1     "CONNECTOR-2-1" "unknown" 5775    5350     0   top   
+S1-11-2     "CONNECTOR-2-1" "unknown" 5775    6850     0   top   
+S1-11-3     "CONNECTOR-2-1" "unknown" 5775    8350     0   top   
+S1-11-4     "CONNECTOR-2-1" "unknown" 5775    9850     0   top   
+S1-11-5     "CONNECTOR-2-1" "unknown" 5775    11350    0   top   
+S1-11-6     "CONNECTOR-2-1" "unknown" 5775    12850    0   top   
+S1-11-7     "CONNECTOR-2-1" "unknown" 5775    14350    0   top   
+S1-11-8     "CONNECTOR-2-1" "unknown" 5775    15850    0   top   
+S1-11-9     "CONNECTOR-2-1" "unknown" 5775    17350    0   top   
+S1-11-10    "CONNECTOR-2-1" "unknown" 5775    18850    0   top   
+S1-11-11    "CONNECTOR-2-1" "unknown" 5775    20350    0   top   
+S1-11-12    "CONNECTOR-2-1" "unknown" 5775    21850    0   top   
+S1-11-13    "CONNECTOR-2-1" "unknown" 5775    23350    0   top   
+S1-11-14    "CONNECTOR-2-1" "unknown" 5775    24850    0   top   
+S1-12-0     "CONNECTOR-2-1" "unknown" 6275    3850     0   top   
+S1-12-1     "CONNECTOR-2-1" "unknown" 6275    5350     0   top   
+S1-12-2     "CONNECTOR-2-1" "unknown" 6275    6850     0   top   
+S1-12-3     "CONNECTOR-2-1" "unknown" 6275    8350     0   top   
+S1-12-4     "CONNECTOR-2-1" "unknown" 6275    9850     0   top   
+S1-12-5     "CONNECTOR-2-1" "unknown" 6275    11350    0   top   
+S1-12-6     "CONNECTOR-2-1" "unknown" 6275    12850    0   top   
+S1-12-7     "CONNECTOR-2-1" "unknown" 6275    14350    0   top   
+S1-12-8     "CONNECTOR-2-1" "unknown" 6275    15850    0   top   
+S1-12-9     "CONNECTOR-2-1" "unknown" 6275    17350    0   top   
+S1-12-10    "CONNECTOR-2-1" "unknown" 6275    18850    0   top   
+S1-12-11    "CONNECTOR-2-1" "unknown" 6275    20350    0   top   
+S1-12-12    "CONNECTOR-2-1" "unknown" 6275    21850    0   top   
+S1-12-13    "CONNECTOR-2-1" "unknown" 6275    23350    0   top   
+S1-12-14    "CONNECTOR-2-1" "unknown" 6275    24850    0   top   
+S1-13-0     "CONNECTOR-2-1" "unknown" 6775    3850     0   top   
+S1-13-1     "CONNECTOR-2-1" "unknown" 6775    5350     0   top   
+S1-13-2     "CONNECTOR-2-1" "unknown" 6775    6850     0   top   
+S1-13-3     "CONNECTOR-2-1" "unknown" 6775    8350     0   top   
+S1-13-4     "CONNECTOR-2-1" "unknown" 6775    9850     0   top   
+S1-13-5     "CONNECTOR-2-1" "unknown" 6775    11350    0   top   
+S1-13-6     "CONNECTOR-2-1" "unknown" 6775    12850    0   top   
+S1-13-7     "CONNECTOR-2-1" "unknown" 6775    14350    0   top   
+S1-13-8     "CONNECTOR-2-1" "unknown" 6775    15850    0   top   
+S1-13-9     "CONNECTOR-2-1" "unknown" 6775    17350    0   top   
+S1-13-10    "CONNECTOR-2-1" "unknown" 6775    18850    0   top   
+S1-13-11    "CONNECTOR-2-1" "unknown" 6775    20350    0   top   
+S1-13-12    "CONNECTOR-2-1" "unknown" 6775    21850    0   top   
+S1-13-13    "CONNECTOR-2-1" "unknown" 6775    23350    0   top   
+S1-13-14    "CONNECTOR-2-1" "unknown" 6775    24850    0   top   
+S1-14-0     "CONNECTOR-2-1" "unknown" 7275    3850     0   top   
+S1-14-1     "CONNECTOR-2-1" "unknown" 7275    5350     0   top   
+S1-14-2     "CONNECTOR-2-1" "unknown" 7275    6850     0   top   
+S1-14-3     "CONNECTOR-2-1" "unknown" 7275    8350     0   top   
+S1-14-4     "CONNECTOR-2-1" "unknown" 7275    9850     0   top   
+S1-14-5     "CONNECTOR-2-1" "unknown" 7275    11350    0   top   
+S1-14-6     "CONNECTOR-2-1" "unknown" 7275    12850    0   top   
+S1-14-7     "CONNECTOR-2-1" "unknown" 7275    14350    0   top   
+S1-14-8     "CONNECTOR-2-1" "unknown" 7275    15850    0   top   
+S1-14-9     "CONNECTOR-2-1" "unknown" 7275    17350    0   top   
+S1-14-10    "CONNECTOR-2-1" "unknown" 7275    18850    0   top   
+S1-14-11    "CONNECTOR-2-1" "unknown" 7275    20350    0   top   
+S1-14-12    "CONNECTOR-2-1" "unknown" 7275    21850    0   top   
+S1-14-13    "CONNECTOR-2-1" "unknown" 7275    23350    0   top   
+S1-14-14    "CONNECTOR-2-1" "unknown" 7275    24850    0   top   
+D3-0-0      "CONNECTOR-2-1" "unknown" 750.00  3350.00  0   top   
+D3-0-1      "CONNECTOR-2-1" "unknown" 750     4850     0   top   
+D3-0-2      "CONNECTOR-2-1" "unknown" 750     6350     0   top   
+D3-0-3      "CONNECTOR-2-1" "unknown" 750     7850     0   top   
+D3-0-4      "CONNECTOR-2-1" "unknown" 750     9350     0   top   
+D3-0-5      "CONNECTOR-2-1" "unknown" 750     10850    0   top   
+D3-0-6      "CONNECTOR-2-1" "unknown" 750     12350    0   top   
+D3-0-7      "CONNECTOR-2-1" "unknown" 750     13850    0   top   
+D3-0-8      "CONNECTOR-2-1" "unknown" 750     15350    0   top   
+D3-0-9      "CONNECTOR-2-1" "unknown" 750     16850    0   top   
+D3-0-10     "CONNECTOR-2-1" "unknown" 750     18350    0   top   
+D3-0-11     "CONNECTOR-2-1" "unknown" 750     19850    0   top   
+D3-0-12     "CONNECTOR-2-1" "unknown" 750     21350    0   top   
+D3-0-13     "CONNECTOR-2-1" "unknown" 750     22850    0   top   
+D3-0-14     "CONNECTOR-2-1" "unknown" 750     24350    0   top   
+D3-1-0      "CONNECTOR-2-1" "unknown" 1250    3350     0   top   
+D3-1-1      "CONNECTOR-2-1" "unknown" 1250    4850     0   top   
+D3-1-2      "CONNECTOR-2-1" "unknown" 1250    6350     0   top   
+D3-1-3      "CONNECTOR-2-1" "unknown" 1250    7850     0   top   
+D3-1-4      "CONNECTOR-2-1" "unknown" 1250    9350     0   top   
+D3-1-5      "CONNECTOR-2-1" "unknown" 1250    10850    0   top   
+D3-1-6      "CONNECTOR-2-1" "unknown" 1250    12350    0   top   
+D3-1-7      "CONNECTOR-2-1" "unknown" 1250    13850    0   top   
+D3-1-8      "CONNECTOR-2-1" "unknown" 1250    15350    0   top   
+D3-1-9      "CONNECTOR-2-1" "unknown" 1250    16850    0   top   
+D3-1-10     "CONNECTOR-2-1" "unknown" 1250    18350    0   top   
+D3-1-11     "CONNECTOR-2-1" "unknown" 1250    19850    0   top   
+D3-1-12     "CONNECTOR-2-1" "unknown" 1250    21350    0   top   
+D3-1-13     "CONNECTOR-2-1" "unknown" 1250    22850    0   top   
+D3-1-14     "CONNECTOR-2-1" "unknown" 1250    24350    0   top   
+D3-2-0      "CONNECTOR-2-1" "unknown" 1750    3350     0   top   
+D3-2-1      "CONNECTOR-2-1" "unknown" 1750    4850     0   top   
+D3-2-2      "CONNECTOR-2-1" "unknown" 1750    6350     0   top   
+D3-2-3      "CONNECTOR-2-1" "unknown" 1750    7850     0   top   
+D3-2-4      "CONNECTOR-2-1" "unknown" 1750    9350     0   top   
+D3-2-5      "CONNECTOR-2-1" "unknown" 1750    10850    0   top   
+D3-2-6      "CONNECTOR-2-1" "unknown" 1750    12350    0   top   
+D3-2-7      "CONNECTOR-2-1" "unknown" 1750    13850    0   top   
+D3-2-8      "CONNECTOR-2-1" "unknown" 1750    15350    0   top   
+D3-2-9      "CONNECTOR-2-1" "unknown" 1750    16850    0   top   
+D3-2-10     "CONNECTOR-2-1" "unknown" 1750    18350    0   top   
+D3-2-11     "CONNECTOR-2-1" "unknown" 1750    19850    0   top   
+D3-2-12     "CONNECTOR-2-1" "unknown" 1750    21350    0   top   
+D3-2-13     "CONNECTOR-2-1" "unknown" 1750    22850    0   top   
+D3-2-14     "CONNECTOR-2-1" "unknown" 1750    24350    0   top   
+D3-3-0      "CONNECTOR-2-1" "unknown" 2250    3350     0   top   
+D3-3-1      "CONNECTOR-2-1" "unknown" 2250    4850     0   top   
+D3-3-2      "CONNECTOR-2-1" "unknown" 2250    6350     0   top   
+D3-3-3      "CONNECTOR-2-1" "unknown" 2250    7850     0   top   
+D3-3-4      "CONNECTOR-2-1" "unknown" 2250    9350     0   top   
+D3-3-5      "CONNECTOR-2-1" "unknown" 2250    10850    0   top   
+D3-3-6      "CONNECTOR-2-1" "unknown" 2250    12350    0   top   
+D3-3-7      "CONNECTOR-2-1" "unknown" 2250    13850    0   top   
+D3-3-8      "CONNECTOR-2-1" "unknown" 2250    15350    0   top   
+D3-3-9      "CONNECTOR-2-1" "unknown" 2250    16850    0   top   
+D3-3-10     "CONNECTOR-2-1" "unknown" 2250    18350    0   top   
+D3-3-11     "CONNECTOR-2-1" "unknown" 2250    19850    0   top   
+D3-3-12     "CONNECTOR-2-1" "unknown" 2250    21350    0   top   
+D3-3-13     "CONNECTOR-2-1" "unknown" 2250    22850    0   top   
+D3-3-14     "CONNECTOR-2-1" "unknown" 2250    24350    0   top   
+D3-4-0      "CONNECTOR-2-1" "unknown" 2750    3350     0   top   
+D3-4-1      "CONNECTOR-2-1" "unknown" 2750    4850     0   top   
+D3-4-2      "CONNECTOR-2-1" "unknown" 2750    6350     0   top   
+D3-4-3      "CONNECTOR-2-1" "unknown" 2750    7850     0   top   
+D3-4-4      "CONNECTOR-2-1" "unknown" 2750    9350     0   top   
+D3-4-5      "CONNECTOR-2-1" "unknown" 2750    10850    0   top   
+D3-4-6      "CONNECTOR-2-1" "unknown" 2750    12350    0   top   
+D3-4-7      "CONNECTOR-2-1" "unknown" 2750    13850    0   top   
+D3-4-8      "CONNECTOR-2-1" "unknown" 2750    15350    0   top   
+D3-4-9      "CONNECTOR-2-1" "unknown" 2750    16850    0   top   
+D3-4-10     "CONNECTOR-2-1" "unknown" 2750    18350    0   top   
+D3-4-11     "CONNECTOR-2-1" "unknown" 2750    19850    0   top   
+D3-4-12     "CONNECTOR-2-1" "unknown" 2750    21350    0   top   
+D3-4-13     "CONNECTOR-2-1" "unknown" 2750    22850    0   top   
+D3-4-14     "CONNECTOR-2-1" "unknown" 2750    24350    0   top   
+D3-5-0      "CONNECTOR-2-1" "unknown" 3250    3350     0   top   
+D3-5-1      "CONNECTOR-2-1" "unknown" 3250    4850     0   top   
+D3-5-2      "CONNECTOR-2-1" "unknown" 3250    6350     0   top   
+D3-5-3      "CONNECTOR-2-1" "unknown" 3250    7850     0   top   
+D3-5-4      "CONNECTOR-2-1" "unknown" 3250    9350     0   top   
+D3-5-5      "CONNECTOR-2-1" "unknown" 3250    10850    0   top   
+D3-5-6      "CONNECTOR-2-1" "unknown" 3250    12350    0   top   
+D3-5-7      "CONNECTOR-2-1" "unknown" 3250    13850    0   top   
+D3-5-8      "CONNECTOR-2-1" "unknown" 3250    15350    0   top   
+D3-5-9      "CONNECTOR-2-1" "unknown" 3250    16850    0   top   
+D3-5-10     "CONNECTOR-2-1" "unknown" 3250    18350    0   top   
+D3-5-11     "CONNECTOR-2-1" "unknown" 3250    19850    0   top   
+D3-5-12     "CONNECTOR-2-1" "unknown" 3250    21350    0   top   
+D3-5-13     "CONNECTOR-2-1" "unknown" 3250    22850    0   top   
+D3-5-14     "CONNECTOR-2-1" "unknown" 3250    24350    0   top   
+D3-6-0      "CONNECTOR-2-1" "unknown" 3750    3350     0   top   
+D3-6-1      "CONNECTOR-2-1" "unknown" 3750    4850     0   top   
+D3-6-2      "CONNECTOR-2-1" "unknown" 3750    6350     0   top   
+D3-6-3      "CONNECTOR-2-1" "unknown" 3750    7850     0   top   
+D3-6-4      "CONNECTOR-2-1" "unknown" 3750    9350     0   top   
+D3-6-5      "CONNECTOR-2-1" "unknown" 3750    10850    0   top   
+D3-6-6      "CONNECTOR-2-1" "unknown" 3750    12350    0   top   
+D3-6-7      "CONNECTOR-2-1" "unknown" 3750    13850    0   top   
+D3-6-8      "CONNECTOR-2-1" "unknown" 3750    15350    0   top   
+D3-6-9      "CONNECTOR-2-1" "unknown" 3750    16850    0   top   
+D3-6-10     "CONNECTOR-2-1" "unknown" 3750    18350    0   top   
+D3-6-11     "CONNECTOR-2-1" "unknown" 3750    19850    0   top   
+D3-6-12     "CONNECTOR-2-1" "unknown" 3750    21350    0   top   
+D3-6-13     "CONNECTOR-2-1" "unknown" 3750    22850    0   top   
+D3-6-14     "CONNECTOR-2-1" "unknown" 3750    24350    0   top   
+D3-7-0      "CONNECTOR-2-1" "unknown" 4250    3350     0   top   
+D3-7-1      "CONNECTOR-2-1" "unknown" 4250    4850     0   top   
+D3-7-2      "CONNECTOR-2-1" "unknown" 4250    6350     0   top   
+D3-7-3      "CONNECTOR-2-1" "unknown" 4250    7850     0   top   
+D3-7-4      "CONNECTOR-2-1" "unknown" 4250    9350     0   top   
+D3-7-5      "CONNECTOR-2-1" "unknown" 4250    10850    0   top   
+D3-7-6      "CONNECTOR-2-1" "unknown" 4250    12350    0   top   
+D3-7-7      "CONNECTOR-2-1" "unknown" 4250    13850    0   top   
+D3-7-8      "CONNECTOR-2-1" "unknown" 4250    15350    0   top   
+D3-7-9      "CONNECTOR-2-1" "unknown" 4250    16850    0   top   
+D3-7-10     "CONNECTOR-2-1" "unknown" 4250    18350    0   top   
+D3-7-11     "CONNECTOR-2-1" "unknown" 4250    19850    0   top   
+D3-7-12     "CONNECTOR-2-1" "unknown" 4250    21350    0   top   
+D3-7-13     "CONNECTOR-2-1" "unknown" 4250    22850    0   top   
+D3-7-14     "CONNECTOR-2-1" "unknown" 4250    24350    0   top   
+D3-8-0      "CONNECTOR-2-1" "unknown" 4750    3350     0   top   
+D3-8-1      "CONNECTOR-2-1" "unknown" 4750    4850     0   top   
+D3-8-2      "CONNECTOR-2-1" "unknown" 4750    6350     0   top   
+D3-8-3      "CONNECTOR-2-1" "unknown" 4750    7850     0   top   
+D3-8-4      "CONNECTOR-2-1" "unknown" 4750    9350     0   top   
+D3-8-5      "CONNECTOR-2-1" "unknown" 4750    10850    0   top   
+D3-8-6      "CONNECTOR-2-1" "unknown" 4750    12350    0   top   
+D3-8-7      "CONNECTOR-2-1" "unknown" 4750    13850    0   top   
+D3-8-8      "CONNECTOR-2-1" "unknown" 4750    15350    0   top   
+D3-8-9      "CONNECTOR-2-1" "unknown" 4750    16850    0   top   
+D3-8-10     "CONNECTOR-2-1" "unknown" 4750    18350    0   top   
+D3-8-11     "CONNECTOR-2-1" "unknown" 4750    19850    0   top   
+D3-8-12     "CONNECTOR-2-1" "unknown" 4750    21350    0   top   
+D3-8-13     "CONNECTOR-2-1" "unknown" 4750    22850    0   top   
+D3-8-14     "CONNECTOR-2-1" "unknown" 4750    24350    0   top   
+D3-9-0      "CONNECTOR-2-1" "unknown" 5250    3350     0   top   
+D3-9-1      "CONNECTOR-2-1" "unknown" 5250    4850     0   top   
+D3-9-2      "CONNECTOR-2-1" "unknown" 5250    6350     0   top   
+D3-9-3      "CONNECTOR-2-1" "unknown" 5250    7850     0   top   
+D3-9-4      "CONNECTOR-2-1" "unknown" 5250    9350     0   top   
+D3-9-5      "CONNECTOR-2-1" "unknown" 5250    10850    0   top   
+D3-9-6      "CONNECTOR-2-1" "unknown" 5250    12350    0   top   
+D3-9-7      "CONNECTOR-2-1" "unknown" 5250    13850    0   top   
+D3-9-8      "CONNECTOR-2-1" "unknown" 5250    15350    0   top   
+D3-9-9      "CONNECTOR-2-1" "unknown" 5250    16850    0   top   
+D3-9-10     "CONNECTOR-2-1" "unknown" 5250    18350    0   top   
+D3-9-11     "CONNECTOR-2-1" "unknown" 5250    19850    0   top   
+D3-9-12     "CONNECTOR-2-1" "unknown" 5250    21350    0   top   
+D3-9-13     "CONNECTOR-2-1" "unknown" 5250    22850    0   top   
+D3-9-14     "CONNECTOR-2-1" "unknown" 5250    24350    0   top   
+D3-10-0     "CONNECTOR-2-1" "unknown" 5750    3350     0   top   
+D3-10-1     "CONNECTOR-2-1" "unknown" 5750    4850     0   top   
+D3-10-2     "CONNECTOR-2-1" "unknown" 5750    6350     0   top   
+D3-10-3     "CONNECTOR-2-1" "unknown" 5750    7850     0   top   
+D3-10-4     "CONNECTOR-2-1" "unknown" 5750    9350     0   top   
+D3-10-5     "CONNECTOR-2-1" "unknown" 5750    10850    0   top   
+D3-10-6     "CONNECTOR-2-1" "unknown" 5750    12350    0   top   
+D3-10-7     "CONNECTOR-2-1" "unknown" 5750    13850    0   top   
+D3-10-8     "CONNECTOR-2-1" "unknown" 5750    15350    0   top   
+D3-10-9     "CONNECTOR-2-1" "unknown" 5750    16850    0   top   
+D3-10-10    "CONNECTOR-2-1" "unknown" 5750    18350    0   top   
+D3-10-11    "CONNECTOR-2-1" "unknown" 5750    19850    0   top   
+D3-10-12    "CONNECTOR-2-1" "unknown" 5750    21350    0   top   
+D3-10-13    "CONNECTOR-2-1" "unknown" 5750    22850    0   top   
+D3-10-14    "CONNECTOR-2-1" "unknown" 5750    24350    0   top   
+D3-11-0     "CONNECTOR-2-1" "unknown" 6250    3350     0   top   
+D3-11-1     "CONNECTOR-2-1" "unknown" 6250    4850     0   top   
+D3-11-2     "CONNECTOR-2-1" "unknown" 6250    6350     0   top   
+D3-11-3     "CONNECTOR-2-1" "unknown" 6250    7850     0   top   
+D3-11-4     "CONNECTOR-2-1" "unknown" 6250    9350     0   top   
+D3-11-5     "CONNECTOR-2-1" "unknown" 6250    10850    0   top   
+D3-11-6     "CONNECTOR-2-1" "unknown" 6250    12350    0   top   
+D3-11-7     "CONNECTOR-2-1" "unknown" 6250    13850    0   top   
+D3-11-8     "CONNECTOR-2-1" "unknown" 6250    15350    0   top   
+D3-11-9     "CONNECTOR-2-1" "unknown" 6250    16850    0   top   
+D3-11-10    "CONNECTOR-2-1" "unknown" 6250    18350    0   top   
+D3-11-11    "CONNECTOR-2-1" "unknown" 6250    19850    0   top   
+D3-11-12    "CONNECTOR-2-1" "unknown" 6250    21350    0   top   
+D3-11-13    "CONNECTOR-2-1" "unknown" 6250    22850    0   top   
+D3-11-14    "CONNECTOR-2-1" "unknown" 6250    24350    0   top   
+D3-12-0     "CONNECTOR-2-1" "unknown" 6750    3350     0   top   
+D3-12-1     "CONNECTOR-2-1" "unknown" 6750    4850     0   top   
+D3-12-2     "CONNECTOR-2-1" "unknown" 6750    6350     0   top   
+D3-12-3     "CONNECTOR-2-1" "unknown" 6750    7850     0   top   
+D3-12-4     "CONNECTOR-2-1" "unknown" 6750    9350     0   top   
+D3-12-5     "CONNECTOR-2-1" "unknown" 6750    10850    0   top   
+D3-12-6     "CONNECTOR-2-1" "unknown" 6750    12350    0   top   
+D3-12-7     "CONNECTOR-2-1" "unknown" 6750    13850    0   top   
+D3-12-8     "CONNECTOR-2-1" "unknown" 6750    15350    0   top   
+D3-12-9     "CONNECTOR-2-1" "unknown" 6750    16850    0   top   
+D3-12-10    "CONNECTOR-2-1" "unknown" 6750    18350    0   top   
+D3-12-11    "CONNECTOR-2-1" "unknown" 6750    19850    0   top   
+D3-12-12    "CONNECTOR-2-1" "unknown" 6750    21350    0   top   
+D3-12-13    "CONNECTOR-2-1" "unknown" 6750    22850    0   top   
+D3-12-14    "CONNECTOR-2-1" "unknown" 6750    24350    0   top   
+D3-13-0     "CONNECTOR-2-1" "unknown" 7250    3350     0   top   
+D3-13-1     "CONNECTOR-2-1" "unknown" 7250    4850     0   top   
+D3-13-2     "CONNECTOR-2-1" "unknown" 7250    6350     0   top   
+D3-13-3     "CONNECTOR-2-1" "unknown" 7250    7850     0   top   
+D3-13-4     "CONNECTOR-2-1" "unknown" 7250    9350     0   top   
+D3-13-5     "CONNECTOR-2-1" "unknown" 7250    10850    0   top   
+D3-13-6     "CONNECTOR-2-1" "unknown" 7250    12350    0   top   
+D3-13-7     "CONNECTOR-2-1" "unknown" 7250    13850    0   top   
+D3-13-8     "CONNECTOR-2-1" "unknown" 7250    15350    0   top   
+D3-13-9     "CONNECTOR-2-1" "unknown" 7250    16850    0   top   
+D3-13-10    "CONNECTOR-2-1" "unknown" 7250    18350    0   top   
+D3-13-11    "CONNECTOR-2-1" "unknown" 7250    19850    0   top   
+D3-13-12    "CONNECTOR-2-1" "unknown" 7250    21350    0   top   
+D3-13-13    "CONNECTOR-2-1" "unknown" 7250    22850    0   top   
+D3-13-14    "CONNECTOR-2-1" "unknown" 7250    24350    0   top   
+D3-14-0     "CONNECTOR-2-1" "unknown" 7750    3350     0   top   
+D3-14-1     "CONNECTOR-2-1" "unknown" 7750    4850     0   top   
+D3-14-2     "CONNECTOR-2-1" "unknown" 7750    6350     0   top   
+D3-14-3     "CONNECTOR-2-1" "unknown" 7750    7850     0   top   
+D3-14-4     "CONNECTOR-2-1" "unknown" 7750    9350     0   top   
+D3-14-5     "CONNECTOR-2-1" "unknown" 7750    10850    0   top   
+D3-14-6     "CONNECTOR-2-1" "unknown" 7750    12350    0   top   
+D3-14-7     "CONNECTOR-2-1" "unknown" 7750    13850    0   top   
+D3-14-8     "CONNECTOR-2-1" "unknown" 7750    15350    0   top   
+D3-14-9     "CONNECTOR-2-1" "unknown" 7750    16850    0   top   
+D3-14-10    "CONNECTOR-2-1" "unknown" 7750    18350    0   top   
+D3-14-11    "CONNECTOR-2-1" "unknown" 7750    19850    0   top   
+D3-14-12    "CONNECTOR-2-1" "unknown" 7750    21350    0   top   
+D3-14-13    "CONNECTOR-2-1" "unknown" 7750    22850    0   top   
+D3-14-14    "CONNECTOR-2-1" "unknown" 7750    24350    0   top   
+U4-0-0      "SO16"          "unknown" 1500.00 3525.00  90  bottom
+U4-0-1      "SO16"          "unknown" 1500    5025     90  bottom
+U4-0-2      "SO16"          "unknown" 1500    6525     90  bottom
+U4-0-3      "SO16"          "unknown" 1500    8025     90  bottom
+U4-0-4      "SO16"          "unknown" 1500    9525     90  bottom
+U4-0-5      "SO16"          "unknown" 1500    11025    90  bottom
+U4-0-6      "SO16"          "unknown" 1500    12525    90  bottom
+U4-0-7      "SO16"          "unknown" 1500    14025    90  bottom
+U4-0-8      "SO16"          "unknown" 1500    15525    90  bottom
+U4-0-9      "SO16"          "unknown" 1500    17025    90  bottom
+U4-0-10     "SO16"          "unknown" 1500    18525    90  bottom
+U4-0-11     "SO16"          "unknown" 1500    20025    90  bottom
+U4-0-12     "SO16"          "unknown" 1500    21525    90  bottom
+U4-0-13     "SO16"          "unknown" 1500    23025    90  bottom
+U4-0-14     "SO16"          "unknown" 1500    24525    90  bottom
+U4-1-0      "SO16"          "unknown" 2000    3525     90  bottom
+U4-1-1      "SO16"          "unknown" 2000    5025     90  bottom
+U4-1-2      "SO16"          "unknown" 2000    6525     90  bottom
+U4-1-3      "SO16"          "unknown" 2000    8025     90  bottom
+U4-1-4      "SO16"          "unknown" 2000    9525     90  bottom
+U4-1-5      "SO16"          "unknown" 2000    11025    90  bottom
+U4-1-6      "SO16"          "unknown" 2000    12525    90  bottom
+U4-1-7      "SO16"          "unknown" 2000    14025    90  bottom
+U4-1-8      "SO16"          "unknown" 2000    15525    90  bottom
+U4-1-9      "SO16"          "unknown" 2000    17025    90  bottom
+U4-1-10     "SO16"          "unknown" 2000    18525    90  bottom
+U4-1-11     "SO16"          "unknown" 2000    20025    90  bottom
+U4-1-12     "SO16"          "unknown" 2000    21525    90  bottom
+U4-1-13     "SO16"          "unknown" 2000    23025    90  bottom
+U4-1-14     "SO16"          "unknown" 2000    24525    90  bottom
+U4-2-0      "SO16"          "unknown" 2500    3525     90  bottom
+U4-2-1      "SO16"          "unknown" 2500    5025     90  bottom
+U4-2-2      "SO16"          "unknown" 2500    6525     90  bottom
+U4-2-3      "SO16"          "unknown" 2500    8025     90  bottom
+U4-2-4      "SO16"          "unknown" 2500    9525     90  bottom
+U4-2-5      "SO16"          "unknown" 2500    11025    90  bottom
+U4-2-6      "SO16"          "unknown" 2500    12525    90  bottom
+U4-2-7      "SO16"          "unknown" 2500    14025    90  bottom
+U4-2-8      "SO16"          "unknown" 2500    15525    90  bottom
+U4-2-9      "SO16"          "unknown" 2500    17025    90  bottom
+U4-2-10     "SO16"          "unknown" 2500    18525    90  bottom
+U4-2-11     "SO16"          "unknown" 2500    20025    90  bottom
+U4-2-12     "SO16"          "unknown" 2500    21525    90  bottom
+U4-2-13     "SO16"          "unknown" 2500    23025    90  bottom
+U4-2-14     "SO16"          "unknown" 2500    24525    90  bottom
+U4-3-0      "SO16"          "unknown" 3000    3525     90  bottom
+U4-3-1      "SO16"          "unknown" 3000    5025     90  bottom
+U4-3-2      "SO16"          "unknown" 3000    6525     90  bottom
+U4-3-3      "SO16"          "unknown" 3000    8025     90  bottom
+U4-3-4      "SO16"          "unknown" 3000    9525     90  bottom
+U4-3-5      "SO16"          "unknown" 3000    11025    90  bottom
+U4-3-6      "SO16"          "unknown" 3000    12525    90  bottom
+U4-3-7      "SO16"          "unknown" 3000    14025    90  bottom
+U4-3-8      "SO16"          "unknown" 3000    15525    90  bottom
+U4-3-9      "SO16"          "unknown" 3000    17025    90  bottom
+U4-3-10     "SO16"          "unknown" 3000    18525    90  bottom
+U4-3-11     "SO16"          "unknown" 3000    20025    90  bottom
+U4-3-12     "SO16"          "unknown" 3000    21525    90  bottom
+U4-3-13     "SO16"          "unknown" 3000    23025    90  bottom
+U4-3-14     "SO16"          "unknown" 3000    24525    90  bottom
+U4-4-0      "SO16"          "unknown" 3500    3525     90  bottom
+U4-4-1      "SO16"          "unknown" 3500    5025     90  bottom
+U4-4-2      "SO16"          "unknown" 3500    6525     90  bottom
+U4-4-3      "SO16"          "unknown" 3500    8025     90  bottom
+U4-4-4      "SO16"          "unknown" 3500    9525     90  bottom
+U4-4-5      "SO16"          "unknown" 3500    11025    90  bottom
+U4-4-6      "SO16"          "unknown" 3500    12525    90  bottom
+U4-4-7      "SO16"          "unknown" 3500    14025    90  bottom
+U4-4-8      "SO16"          "unknown" 3500    15525    90  bottom
+U4-4-9      "SO16"          "unknown" 3500    17025    90  bottom
+U4-4-10     "SO16"          "unknown" 3500    18525    90  bottom
+U4-4-11     "SO16"          "unknown" 3500    20025    90  bottom
+U4-4-12     "SO16"          "unknown" 3500    21525    90  bottom
+U4-4-13     "SO16"          "unknown" 3500    23025    90  bottom
+U4-4-14     "SO16"          "unknown" 3500    24525    90  bottom
+U4-5-0      "SO16"          "unknown" 4000    3525     90  bottom
+U4-5-1      "SO16"          "unknown" 4000    5025     90  bottom
+U4-5-2      "SO16"          "unknown" 4000    6525     90  bottom
+U4-5-3      "SO16"          "unknown" 4000    8025     90  bottom
+U4-5-4      "SO16"          "unknown" 4000    9525     90  bottom
+U4-5-5      "SO16"          "unknown" 4000    11025    90  bottom
+U4-5-6      "SO16"          "unknown" 4000    12525    90  bottom
+U4-5-7      "SO16"          "unknown" 4000    14025    90  bottom
+U4-5-8      "SO16"          "unknown" 4000    15525    90  bottom
+U4-5-9      "SO16"          "unknown" 4000    17025    90  bottom
+U4-5-10     "SO16"          "unknown" 4000    18525    90  bottom
+U4-5-11     "SO16"          "unknown" 4000    20025    90  bottom
+U4-5-12     "SO16"          "unknown" 4000    21525    90  bottom
+U4-5-13     "SO16"          "unknown" 4000    23025    90  bottom
+U4-5-14     "SO16"          "unknown" 4000    24525    90  bottom
+U4-6-0      "SO16"          "unknown" 4500    3525     90  bottom
+U4-6-1      "SO16"          "unknown" 4500    5025     90  bottom
+U4-6-2      "SO16"          "unknown" 4500    6525     90  bottom
+U4-6-3      "SO16"          "unknown" 4500    8025     90  bottom
+U4-6-4      "SO16"          "unknown" 4500    9525     90  bottom
+U4-6-5      "SO16"          "unknown" 4500    11025    90  bottom
+U4-6-6      "SO16"          "unknown" 4500    12525    90  bottom
+U4-6-7      "SO16"          "unknown" 4500    14025    90  bottom
+U4-6-8      "SO16"          "unknown" 4500    15525    90  bottom
+U4-6-9      "SO16"          "unknown" 4500    17025    90  bottom
+U4-6-10     "SO16"          "unknown" 4500    18525    90  bottom
+U4-6-11     "SO16"          "unknown" 4500    20025    90  bottom
+U4-6-12     "SO16"          "unknown" 4500    21525    90  bottom
+U4-6-13     "SO16"          "unknown" 4500    23025    90  bottom
+U4-6-14     "SO16"          "unknown" 4500    24525    90  bottom
+U4-7-0      "SO16"          "unknown" 5000    3525     90  bottom
+U4-7-1      "SO16"          "unknown" 5000    5025     90  bottom
+U4-7-2      "SO16"          "unknown" 5000    6525     90  bottom
+U4-7-3      "SO16"          "unknown" 5000    8025     90  bottom
+U4-7-4      "SO16"          "unknown" 5000    9525     90  bottom
+U4-7-5      "SO16"          "unknown" 5000    11025    90  bottom
+U4-7-6      "SO16"          "unknown" 5000    12525    90  bottom
+U4-7-7      "SO16"          "unknown" 5000    14025    90  bottom
+U4-7-8      "SO16"          "unknown" 5000    15525    90  bottom
+U4-7-9      "SO16"          "unknown" 5000    17025    90  bottom
+U4-7-10     "SO16"          "unknown" 5000    18525    90  bottom
+U4-7-11     "SO16"          "unknown" 5000    20025    90  bottom
+U4-7-12     "SO16"          "unknown" 5000    21525    90  bottom
+U4-7-13     "SO16"          "unknown" 5000    23025    90  bottom
+U4-7-14     "SO16"          "unknown" 5000    24525    90  bottom
+U4-8-0      "SO16"          "unknown" 5500    3525     90  bottom
+U4-8-1      "SO16"          "unknown" 5500    5025     90  bottom
+U4-8-2      "SO16"          "unknown" 5500    6525     90  bottom
+U4-8-3      "SO16"          "unknown" 5500    8025     90  bottom
+U4-8-4      "SO16"          "unknown" 5500    9525     90  bottom
+U4-8-5      "SO16"          "unknown" 5500    11025    90  bottom
+U4-8-6      "SO16"          "unknown" 5500    12525    90  bottom
+U4-8-7      "SO16"          "unknown" 5500    14025    90  bottom
+U4-8-8      "SO16"          "unknown" 5500    15525    90  bottom
+U4-8-9      "SO16"          "unknown" 5500    17025    90  bottom
+U4-8-10     "SO16"          "unknown" 5500    18525    90  bottom
+U4-8-11     "SO16"          "unknown" 5500    20025    90  bottom
+U4-8-12     "SO16"          "unknown" 5500    21525    90  bottom
+U4-8-13     "SO16"          "unknown" 5500    23025    90  bottom
+U4-8-14     "SO16"          "unknown" 5500    24525    90  bottom
+U4-9-0      "SO16"          "unknown" 6000    3525     90  bottom
+U4-9-1      "SO16"          "unknown" 6000    5025     90  bottom
+U4-9-2      "SO16"          "unknown" 6000    6525     90  bottom
+U4-9-3      "SO16"          "unknown" 6000    8025     90  bottom
+U4-9-4      "SO16"          "unknown" 6000    9525     90  bottom
+U4-9-5      "SO16"          "unknown" 6000    11025    90  bottom
+U4-9-6      "SO16"          "unknown" 6000    12525    90  bottom
+U4-9-7      "SO16"          "unknown" 6000    14025    90  bottom
+U4-9-8      "SO16"          "unknown" 6000    15525    90  bottom
+U4-9-9      "SO16"          "unknown" 6000    17025    90  bottom
+U4-9-10     "SO16"          "unknown" 6000    18525    90  bottom
+U4-9-11     "SO16"          "unknown" 6000    20025    90  bottom
+U4-9-12     "SO16"          "unknown" 6000    21525    90  bottom
+U4-9-13     "SO16"          "unknown" 6000    23025    90  bottom
+U4-9-14     "SO16"          "unknown" 6000    24525    90  bottom
+U4-10-0     "SO16"          "unknown" 6500    3525     90  bottom
+U4-10-1     "SO16"          "unknown" 6500    5025     90  bottom
+U4-10-2     "SO16"          "unknown" 6500    6525     90  bottom
+U4-10-3     "SO16"          "unknown" 6500    8025     90  bottom
+U4-10-4     "SO16"          "unknown" 6500    9525     90  bottom
+U4-10-5     "SO16"          "unknown" 6500    11025    90  bottom
+U4-10-6     "SO16"          "unknown" 6500    12525    90  bottom
+U4-10-7     "SO16"          "unknown" 6500    14025    90  bottom
+U4-10-8     "SO16"          "unknown" 6500    15525    90  bottom
+U4-10-9     "SO16"          "unknown" 6500    17025    90  bottom
+U4-10-10    "SO16"          "unknown" 6500    18525    90  bottom
+U4-10-11    "SO16"          "unknown" 6500    20025    90  bottom
+U4-10-12    "SO16"          "unknown" 6500    21525    90  bottom
+U4-10-13    "SO16"          "unknown" 6500    23025    90  bottom
+U4-10-14    "SO16"          "unknown" 6500    24525    90  bottom
+U4-11-0     "SO16"          "unknown" 7000    3525     90  bottom
+U4-11-1     "SO16"          "unknown" 7000    5025     90  bottom
+U4-11-2     "SO16"          "unknown" 7000    6525     90  bottom
+U4-11-3     "SO16"          "unknown" 7000    8025     90  bottom
+U4-11-4     "SO16"          "unknown" 7000    9525     90  bottom
+U4-11-5     "SO16"          "unknown" 7000    11025    90  bottom
+U4-11-6     "SO16"          "unknown" 7000    12525    90  bottom
+U4-11-7     "SO16"          "unknown" 7000    14025    90  bottom
+U4-11-8     "SO16"          "unknown" 7000    15525    90  bottom
+U4-11-9     "SO16"          "unknown" 7000    17025    90  bottom
+U4-11-10    "SO16"          "unknown" 7000    18525    90  bottom
+U4-11-11    "SO16"          "unknown" 7000    20025    90  bottom
+U4-11-12    "SO16"          "unknown" 7000    21525    90  bottom
+U4-11-13    "SO16"          "unknown" 7000    23025    90  bottom
+U4-11-14    "SO16"          "unknown" 7000    24525    90  bottom
+U4-12-0     "SO16"          "unknown" 7500    3525     90  bottom
+U4-12-1     "SO16"          "unknown" 7500    5025     90  bottom
+U4-12-2     "SO16"          "unknown" 7500    6525     90  bottom
+U4-12-3     "SO16"          "unknown" 7500    8025     90  bottom
+U4-12-4     "SO16"          "unknown" 7500    9525     90  bottom
+U4-12-5     "SO16"          "unknown" 7500    11025    90  bottom
+U4-12-6     "SO16"          "unknown" 7500    12525    90  bottom
+U4-12-7     "SO16"          "unknown" 7500    14025    90  bottom
+U4-12-8     "SO16"          "unknown" 7500    15525    90  bottom
+U4-12-9     "SO16"          "unknown" 7500    17025    90  bottom
+U4-12-10    "SO16"          "unknown" 7500    18525    90  bottom
+U4-12-11    "SO16"          "unknown" 7500    20025    90  bottom
+U4-12-12    "SO16"          "unknown" 7500    21525    90  bottom
+U4-12-13    "SO16"          "unknown" 7500    23025    90  bottom
+U4-12-14    "SO16"          "unknown" 7500    24525    90  bottom
+U4-13-0     "SO16"          "unknown" 8000    3525     90  bottom
+U4-13-1     "SO16"          "unknown" 8000    5025     90  bottom
+U4-13-2     "SO16"          "unknown" 8000    6525     90  bottom
+U4-13-3     "SO16"          "unknown" 8000    8025     90  bottom
+U4-13-4     "SO16"          "unknown" 8000    9525     90  bottom
+U4-13-5     "SO16"          "unknown" 8000    11025    90  bottom
+U4-13-6     "SO16"          "unknown" 8000    12525    90  bottom
+U4-13-7     "SO16"          "unknown" 8000    14025    90  bottom
+U4-13-8     "SO16"          "unknown" 8000    15525    90  bottom
+U4-13-9     "SO16"          "unknown" 8000    17025    90  bottom
+U4-13-10    "SO16"          "unknown" 8000    18525    90  bottom
+U4-13-11    "SO16"          "unknown" 8000    20025    90  bottom
+U4-13-12    "SO16"          "unknown" 8000    21525    90  bottom
+U4-13-13    "SO16"          "unknown" 8000    23025    90  bottom
+U4-13-14    "SO16"          "unknown" 8000    24525    90  bottom
+U4-14-0     "SO16"          "unknown" 8500    3525     90  bottom
+U4-14-1     "SO16"          "unknown" 8500    5025     90  bottom
+U4-14-2     "SO16"          "unknown" 8500    6525     90  bottom
+U4-14-3     "SO16"          "unknown" 8500    8025     90  bottom
+U4-14-4     "SO16"          "unknown" 8500    9525     90  bottom
+U4-14-5     "SO16"          "unknown" 8500    11025    90  bottom
+U4-14-6     "SO16"          "unknown" 8500    12525    90  bottom
+U4-14-7     "SO16"          "unknown" 8500    14025    90  bottom
+U4-14-8     "SO16"          "unknown" 8500    15525    90  bottom
+U4-14-9     "SO16"          "unknown" 8500    17025    90  bottom
+U4-14-10    "SO16"          "unknown" 8500    18525    90  bottom
+U4-14-11    "SO16"          "unknown" 8500    20025    90  bottom
+U4-14-12    "SO16"          "unknown" 8500    21525    90  bottom
+U4-14-13    "SO16"          "unknown" 8500    23025    90  bottom
+U4-14-14    "SO16"          "unknown" 8500    24525    90  bottom
+D1-0-0      "CONNECTOR-2-1" "unknown" 275.00  3350.00  0   top   
+D1-0-1      "CONNECTOR-2-1" "unknown" 275     4850     0   top   
+D1-0-2      "CONNECTOR-2-1" "unknown" 275     6350     0   top   
+D1-0-3      "CONNECTOR-2-1" "unknown" 275     7850     0   top   
+D1-0-4      "CONNECTOR-2-1" "unknown" 275     9350     0   top   
+D1-0-5      "CONNECTOR-2-1" "unknown" 275     10850    0   top   
+D1-0-6      "CONNECTOR-2-1" "unknown" 275     12350    0   top   
+D1-0-7      "CONNECTOR-2-1" "unknown" 275     13850    0   top   
+D1-0-8      "CONNECTOR-2-1" "unknown" 275     15350    0   top   
+D1-0-9      "CONNECTOR-2-1" "unknown" 275     16850    0   top   
+D1-0-10     "CONNECTOR-2-1" "unknown" 275     18350    0   top   
+D1-0-11     "CONNECTOR-2-1" "unknown" 275     19850    0   top   
+D1-0-12     "CONNECTOR-2-1" "unknown" 275     21350    0   top   
+D1-0-13     "CONNECTOR-2-1" "unknown" 275     22850    0   top   
+D1-0-14     "CONNECTOR-2-1" "unknown" 275     24350    0   top   
+D1-1-0      "CONNECTOR-2-1" "unknown" 775     3350     0   top   
+D1-1-1      "CONNECTOR-2-1" "unknown" 775     4850     0   top   
+D1-1-2      "CONNECTOR-2-1" "unknown" 775     6350     0   top   
+D1-1-3      "CONNECTOR-2-1" "unknown" 775     7850     0   top   
+D1-1-4      "CONNECTOR-2-1" "unknown" 775     9350     0   top   
+D1-1-5      "CONNECTOR-2-1" "unknown" 775     10850    0   top   
+D1-1-6      "CONNECTOR-2-1" "unknown" 775     12350    0   top   
+D1-1-7      "CONNECTOR-2-1" "unknown" 775     13850    0   top   
+D1-1-8      "CONNECTOR-2-1" "unknown" 775     15350    0   top   
+D1-1-9      "CONNECTOR-2-1" "unknown" 775     16850    0   top   
+D1-1-10     "CONNECTOR-2-1" "unknown" 775     18350    0   top   
+D1-1-11     "CONNECTOR-2-1" "unknown" 775     19850    0   top   
+D1-1-12     "CONNECTOR-2-1" "unknown" 775     21350    0   top   
+D1-1-13     "CONNECTOR-2-1" "unknown" 775     22850    0   top   
+D1-1-14     "CONNECTOR-2-1" "unknown" 775     24350    0   top   
+D1-2-0      "CONNECTOR-2-1" "unknown" 1275    3350     0   top   
+D1-2-1      "CONNECTOR-2-1" "unknown" 1275    4850     0   top   
+D1-2-2      "CONNECTOR-2-1" "unknown" 1275    6350     0   top   
+D1-2-3      "CONNECTOR-2-1" "unknown" 1275    7850     0   top   
+D1-2-4      "CONNECTOR-2-1" "unknown" 1275    9350     0   top   
+D1-2-5      "CONNECTOR-2-1" "unknown" 1275    10850    0   top   
+D1-2-6      "CONNECTOR-2-1" "unknown" 1275    12350    0   top   
+D1-2-7      "CONNECTOR-2-1" "unknown" 1275    13850    0   top   
+D1-2-8      "CONNECTOR-2-1" "unknown" 1275    15350    0   top   
+D1-2-9      "CONNECTOR-2-1" "unknown" 1275    16850    0   top   
+D1-2-10     "CONNECTOR-2-1" "unknown" 1275    18350    0   top   
+D1-2-11     "CONNECTOR-2-1" "unknown" 1275    19850    0   top   
+D1-2-12     "CONNECTOR-2-1" "unknown" 1275    21350    0   top   
+D1-2-13     "CONNECTOR-2-1" "unknown" 1275    22850    0   top   
+D1-2-14     "CONNECTOR-2-1" "unknown" 1275    24350    0   top   
+D1-3-0      "CONNECTOR-2-1" "unknown" 1775    3350     0   top   
+D1-3-1      "CONNECTOR-2-1" "unknown" 1775    4850     0   top   
+D1-3-2      "CONNECTOR-2-1" "unknown" 1775    6350     0   top   
+D1-3-3      "CONNECTOR-2-1" "unknown" 1775    7850     0   top   
+D1-3-4      "CONNECTOR-2-1" "unknown" 1775    9350     0   top   
+D1-3-5      "CONNECTOR-2-1" "unknown" 1775    10850    0   top   
+D1-3-6      "CONNECTOR-2-1" "unknown" 1775    12350    0   top   
+D1-3-7      "CONNECTOR-2-1" "unknown" 1775    13850    0   top   
+D1-3-8      "CONNECTOR-2-1" "unknown" 1775    15350    0   top   
+D1-3-9      "CONNECTOR-2-1" "unknown" 1775    16850    0   top   
+D1-3-10     "CONNECTOR-2-1" "unknown" 1775    18350    0   top   
+D1-3-11     "CONNECTOR-2-1" "unknown" 1775    19850    0   top   
+D1-3-12     "CONNECTOR-2-1" "unknown" 1775    21350    0   top   
+D1-3-13     "CONNECTOR-2-1" "unknown" 1775    22850    0   top   
+D1-3-14     "CONNECTOR-2-1" "unknown" 1775    24350    0   top   
+D1-4-0      "CONNECTOR-2-1" "unknown" 2275    3350     0   top   
+D1-4-1      "CONNECTOR-2-1" "unknown" 2275    4850     0   top   
+D1-4-2      "CONNECTOR-2-1" "unknown" 2275    6350     0   top   
+D1-4-3      "CONNECTOR-2-1" "unknown" 2275    7850     0   top   
+D1-4-4      "CONNECTOR-2-1" "unknown" 2275    9350     0   top   
+D1-4-5      "CONNECTOR-2-1" "unknown" 2275    10850    0   top   
+D1-4-6      "CONNECTOR-2-1" "unknown" 2275    12350    0   top   
+D1-4-7      "CONNECTOR-2-1" "unknown" 2275    13850    0   top   
+D1-4-8      "CONNECTOR-2-1" "unknown" 2275    15350    0   top   
+D1-4-9      "CONNECTOR-2-1" "unknown" 2275    16850    0   top   
+D1-4-10     "CONNECTOR-2-1" "unknown" 2275    18350    0   top   
+D1-4-11     "CONNECTOR-2-1" "unknown" 2275    19850    0   top   
+D1-4-12     "CONNECTOR-2-1" "unknown" 2275    21350    0   top   
+D1-4-13     "CONNECTOR-2-1" "unknown" 2275    22850    0   top   
+D1-4-14     "CONNECTOR-2-1" "unknown" 2275    24350    0   top   
+D1-5-0      "CONNECTOR-2-1" "unknown" 2775    3350     0   top   
+D1-5-1      "CONNECTOR-2-1" "unknown" 2775    4850     0   top   
+D1-5-2      "CONNECTOR-2-1" "unknown" 2775    6350     0   top   
+D1-5-3      "CONNECTOR-2-1" "unknown" 2775    7850     0   top   
+D1-5-4      "CONNECTOR-2-1" "unknown" 2775    9350     0   top   
+D1-5-5      "CONNECTOR-2-1" "unknown" 2775    10850    0   top   
+D1-5-6      "CONNECTOR-2-1" "unknown" 2775    12350    0   top   
+D1-5-7      "CONNECTOR-2-1" "unknown" 2775    13850    0   top   
+D1-5-8      "CONNECTOR-2-1" "unknown" 2775    15350    0   top   
+D1-5-9      "CONNECTOR-2-1" "unknown" 2775    16850    0   top   
+D1-5-10     "CONNECTOR-2-1" "unknown" 2775    18350    0   top   
+D1-5-11     "CONNECTOR-2-1" "unknown" 2775    19850    0   top   
+D1-5-12     "CONNECTOR-2-1" "unknown" 2775    21350    0   top   
+D1-5-13     "CONNECTOR-2-1" "unknown" 2775    22850    0   top   
+D1-5-14     "CONNECTOR-2-1" "unknown" 2775    24350    0   top   
+D1-6-0      "CONNECTOR-2-1" "unknown" 3275    3350     0   top   
+D1-6-1      "CONNECTOR-2-1" "unknown" 3275    4850     0   top   
+D1-6-2      "CONNECTOR-2-1" "unknown" 3275    6350     0   top   
+D1-6-3      "CONNECTOR-2-1" "unknown" 3275    7850     0   top   
+D1-6-4      "CONNECTOR-2-1" "unknown" 3275    9350     0   top   
+D1-6-5      "CONNECTOR-2-1" "unknown" 3275    10850    0   top   
+D1-6-6      "CONNECTOR-2-1" "unknown" 3275    12350    0   top   
+D1-6-7      "CONNECTOR-2-1" "unknown" 3275    13850    0   top   
+D1-6-8      "CONNECTOR-2-1" "unknown" 3275    15350    0   top   
+D1-6-9      "CONNECTOR-2-1" "unknown" 3275    16850    0   top   
+D1-6-10     "CONNECTOR-2-1" "unknown" 3275    18350    0   top   
+D1-6-11     "CONNECTOR-2-1" "unknown" 3275    19850    0   top   
+D1-6-12     "CONNECTOR-2-1" "unknown" 3275    21350    0   top   
+D1-6-13     "CONNECTOR-2-1" "unknown" 3275    22850    0   top   
+D1-6-14     "CONNECTOR-2-1" "unknown" 3275    24350    0   top   
+D1-7-0      "CONNECTOR-2-1" "unknown" 3775    3350     0   top   
+D1-7-1      "CONNECTOR-2-1" "unknown" 3775    4850     0   top   
+D1-7-2      "CONNECTOR-2-1" "unknown" 3775    6350     0   top   
+D1-7-3      "CONNECTOR-2-1" "unknown" 3775    7850     0   top   
+D1-7-4      "CONNECTOR-2-1" "unknown" 3775    9350     0   top   
+D1-7-5      "CONNECTOR-2-1" "unknown" 3775    10850    0   top   
+D1-7-6      "CONNECTOR-2-1" "unknown" 3775    12350    0   top   
+D1-7-7      "CONNECTOR-2-1" "unknown" 3775    13850    0   top   
+D1-7-8      "CONNECTOR-2-1" "unknown" 3775    15350    0   top   
+D1-7-9      "CONNECTOR-2-1" "unknown" 3775    16850    0   top   
+D1-7-10     "CONNECTOR-2-1" "unknown" 3775    18350    0   top   
+D1-7-11     "CONNECTOR-2-1" "unknown" 3775    19850    0   top   
+D1-7-12     "CONNECTOR-2-1" "unknown" 3775    21350    0   top   
+D1-7-13     "CONNECTOR-2-1" "unknown" 3775    22850    0   top   
+D1-7-14     "CONNECTOR-2-1" "unknown" 3775    24350    0   top   
+D1-8-0      "CONNECTOR-2-1" "unknown" 4275    3350     0   top   
+D1-8-1      "CONNECTOR-2-1" "unknown" 4275    4850     0   top   
+D1-8-2      "CONNECTOR-2-1" "unknown" 4275    6350     0   top   
+D1-8-3      "CONNECTOR-2-1" "unknown" 4275    7850     0   top   
+D1-8-4      "CONNECTOR-2-1" "unknown" 4275    9350     0   top   
+D1-8-5      "CONNECTOR-2-1" "unknown" 4275    10850    0   top   
+D1-8-6      "CONNECTOR-2-1" "unknown" 4275    12350    0   top   
+D1-8-7      "CONNECTOR-2-1" "unknown" 4275    13850    0   top   
+D1-8-8      "CONNECTOR-2-1" "unknown" 4275    15350    0   top   
+D1-8-9      "CONNECTOR-2-1" "unknown" 4275    16850    0   top   
+D1-8-10     "CONNECTOR-2-1" "unknown" 4275    18350    0   top   
+D1-8-11     "CONNECTOR-2-1" "unknown" 4275    19850    0   top   
+D1-8-12     "CONNECTOR-2-1" "unknown" 4275    21350    0   top   
+D1-8-13     "CONNECTOR-2-1" "unknown" 4275    22850    0   top   
+D1-8-14     "CONNECTOR-2-1" "unknown" 4275    24350    0   top   
+D1-9-0      "CONNECTOR-2-1" "unknown" 4775    3350     0   top   
+D1-9-1      "CONNECTOR-2-1" "unknown" 4775    4850     0   top   
+D1-9-2      "CONNECTOR-2-1" "unknown" 4775    6350     0   top   
+D1-9-3      "CONNECTOR-2-1" "unknown" 4775    7850     0   top   
+D1-9-4      "CONNECTOR-2-1" "unknown" 4775    9350     0   top   
+D1-9-5      "CONNECTOR-2-1" "unknown" 4775    10850    0   top   
+D1-9-6      "CONNECTOR-2-1" "unknown" 4775    12350    0   top   
+D1-9-7      "CONNECTOR-2-1" "unknown" 4775    13850    0   top   
+D1-9-8      "CONNECTOR-2-1" "unknown" 4775    15350    0   top   
+D1-9-9      "CONNECTOR-2-1" "unknown" 4775    16850    0   top   
+D1-9-10     "CONNECTOR-2-1" "unknown" 4775    18350    0   top   
+D1-9-11     "CONNECTOR-2-1" "unknown" 4775    19850    0   top   
+D1-9-12     "CONNECTOR-2-1" "unknown" 4775    21350    0   top   
+D1-9-13     "CONNECTOR-2-1" "unknown" 4775    22850    0   top   
+D1-9-14     "CONNECTOR-2-1" "unknown" 4775    24350    0   top   
+D1-10-0     "CONNECTOR-2-1" "unknown" 5275    3350     0   top   
+D1-10-1     "CONNECTOR-2-1" "unknown" 5275    4850     0   top   
+D1-10-2     "CONNECTOR-2-1" "unknown" 5275    6350     0   top   
+D1-10-3     "CONNECTOR-2-1" "unknown" 5275    7850     0   top   
+D1-10-4     "CONNECTOR-2-1" "unknown" 5275    9350     0   top   
+D1-10-5     "CONNECTOR-2-1" "unknown" 5275    10850    0   top   
+D1-10-6     "CONNECTOR-2-1" "unknown" 5275    12350    0   top   
+D1-10-7     "CONNECTOR-2-1" "unknown" 5275    13850    0   top   
+D1-10-8     "CONNECTOR-2-1" "unknown" 5275    15350    0   top   
+D1-10-9     "CONNECTOR-2-1" "unknown" 5275    16850    0   top   
+D1-10-10    "CONNECTOR-2-1" "unknown" 5275    18350    0   top   
+D1-10-11    "CONNECTOR-2-1" "unknown" 5275    19850    0   top   
+D1-10-12    "CONNECTOR-2-1" "unknown" 5275    21350    0   top   
+D1-10-13    "CONNECTOR-2-1" "unknown" 5275    22850    0   top   
+D1-10-14    "CONNECTOR-2-1" "unknown" 5275    24350    0   top   
+D1-11-0     "CONNECTOR-2-1" "unknown" 5775    3350     0   top   
+D1-11-1     "CONNECTOR-2-1" "unknown" 5775    4850     0   top   
+D1-11-2     "CONNECTOR-2-1" "unknown" 5775    6350     0   top   
+D1-11-3     "CONNECTOR-2-1" "unknown" 5775    7850     0   top   
+D1-11-4     "CONNECTOR-2-1" "unknown" 5775    9350     0   top   
+D1-11-5     "CONNECTOR-2-1" "unknown" 5775    10850    0   top   
+D1-11-6     "CONNECTOR-2-1" "unknown" 5775    12350    0   top   
+D1-11-7     "CONNECTOR-2-1" "unknown" 5775    13850    0   top   
+D1-11-8     "CONNECTOR-2-1" "unknown" 5775    15350    0   top   
+D1-11-9     "CONNECTOR-2-1" "unknown" 5775    16850    0   top   
+D1-11-10    "CONNECTOR-2-1" "unknown" 5775    18350    0   top   
+D1-11-11    "CONNECTOR-2-1" "unknown" 5775    19850    0   top   
+D1-11-12    "CONNECTOR-2-1" "unknown" 5775    21350    0   top   
+D1-11-13    "CONNECTOR-2-1" "unknown" 5775    22850    0   top   
+D1-11-14    "CONNECTOR-2-1" "unknown" 5775    24350    0   top   
+D1-12-0     "CONNECTOR-2-1" "unknown" 6275    3350     0   top   
+D1-12-1     "CONNECTOR-2-1" "unknown" 6275    4850     0   top   
+D1-12-2     "CONNECTOR-2-1" "unknown" 6275    6350     0   top   
+D1-12-3     "CONNECTOR-2-1" "unknown" 6275    7850     0   top   
+D1-12-4     "CONNECTOR-2-1" "unknown" 6275    9350     0   top   
+D1-12-5     "CONNECTOR-2-1" "unknown" 6275    10850    0   top   
+D1-12-6     "CONNECTOR-2-1" "unknown" 6275    12350    0   top   
+D1-12-7     "CONNECTOR-2-1" "unknown" 6275    13850    0   top   
+D1-12-8     "CONNECTOR-2-1" "unknown" 6275    15350    0   top   
+D1-12-9     "CONNECTOR-2-1" "unknown" 6275    16850    0   top   
+D1-12-10    "CONNECTOR-2-1" "unknown" 6275    18350    0   top   
+D1-12-11    "CONNECTOR-2-1" "unknown" 6275    19850    0   top   
+D1-12-12    "CONNECTOR-2-1" "unknown" 6275    21350    0   top   
+D1-12-13    "CONNECTOR-2-1" "unknown" 6275    22850    0   top   
+D1-12-14    "CONNECTOR-2-1" "unknown" 6275    24350    0   top   
+D1-13-0     "CONNECTOR-2-1" "unknown" 6775    3350     0   top   
+D1-13-1     "CONNECTOR-2-1" "unknown" 6775    4850     0   top   
+D1-13-2     "CONNECTOR-2-1" "unknown" 6775    6350     0   top   
+D1-13-3     "CONNECTOR-2-1" "unknown" 6775    7850     0   top   
+D1-13-4     "CONNECTOR-2-1" "unknown" 6775    9350     0   top   
+D1-13-5     "CONNECTOR-2-1" "unknown" 6775    10850    0   top   
+D1-13-6     "CONNECTOR-2-1" "unknown" 6775    12350    0   top   
+D1-13-7     "CONNECTOR-2-1" "unknown" 6775    13850    0   top   
+D1-13-8     "CONNECTOR-2-1" "unknown" 6775    15350    0   top   
+D1-13-9     "CONNECTOR-2-1" "unknown" 6775    16850    0   top   
+D1-13-10    "CONNECTOR-2-1" "unknown" 6775    18350    0   top   
+D1-13-11    "CONNECTOR-2-1" "unknown" 6775    19850    0   top   
+D1-13-12    "CONNECTOR-2-1" "unknown" 6775    21350    0   top   
+D1-13-13    "CONNECTOR-2-1" "unknown" 6775    22850    0   top   
+D1-13-14    "CONNECTOR-2-1" "unknown" 6775    24350    0   top   
+D1-14-0     "CONNECTOR-2-1" "unknown" 7275    3350     0   top   
+D1-14-1     "CONNECTOR-2-1" "unknown" 7275    4850     0   top   
+D1-14-2     "CONNECTOR-2-1" "unknown" 7275    6350     0   top   
+D1-14-3     "CONNECTOR-2-1" "unknown" 7275    7850     0   top   
+D1-14-4     "CONNECTOR-2-1" "unknown" 7275    9350     0   top   
+D1-14-5     "CONNECTOR-2-1" "unknown" 7275    10850    0   top   
+D1-14-6     "CONNECTOR-2-1" "unknown" 7275    12350    0   top   
+D1-14-7     "CONNECTOR-2-1" "unknown" 7275    13850    0   top   
+D1-14-8     "CONNECTOR-2-1" "unknown" 7275    15350    0   top   
+D1-14-9     "CONNECTOR-2-1" "unknown" 7275    16850    0   top   
+D1-14-10    "CONNECTOR-2-1" "unknown" 7275    18350    0   top   
+D1-14-11    "CONNECTOR-2-1" "unknown" 7275    19850    0   top   
+D1-14-12    "CONNECTOR-2-1" "unknown" 7275    21350    0   top   
+D1-14-13    "CONNECTOR-2-1" "unknown" 7275    22850    0   top   
+D1-14-14    "CONNECTOR-2-1" "unknown" 7275    24350    0   top   
+R3-0-0      "1206"          "unknown" 600.00  3375.00  90  bottom
+R3-0-1      "1206"          "unknown" 600     4875     90  bottom
+R3-0-2      "1206"          "unknown" 600     6375     90  bottom
+R3-0-3      "1206"          "unknown" 600     7875     90  bottom
+R3-0-4      "1206"          "unknown" 600     9375     90  bottom
+R3-0-5      "1206"          "unknown" 600     10875    90  bottom
+R3-0-6      "1206"          "unknown" 600     12375    90  bottom
+R3-0-7      "1206"          "unknown" 600     13875    90  bottom
+R3-0-8      "1206"          "unknown" 600     15375    90  bottom
+R3-0-9      "1206"          "unknown" 600     16875    90  bottom
+R3-0-10     "1206"          "unknown" 600     18375    90  bottom
+R3-0-11     "1206"          "unknown" 600     19875    90  bottom
+R3-0-12     "1206"          "unknown" 600     21375    90  bottom
+R3-0-13     "1206"          "unknown" 600     22875    90  bottom
+R3-0-14     "1206"          "unknown" 600     24375    90  bottom
+R3-1-0      "1206"          "unknown" 1100    3375     90  bottom
+R3-1-1      "1206"          "unknown" 1100    4875     90  bottom
+R3-1-2      "1206"          "unknown" 1100    6375     90  bottom
+R3-1-3      "1206"          "unknown" 1100    7875     90  bottom
+R3-1-4      "1206"          "unknown" 1100    9375     90  bottom
+R3-1-5      "1206"          "unknown" 1100    10875    90  bottom
+R3-1-6      "1206"          "unknown" 1100    12375    90  bottom
+R3-1-7      "1206"          "unknown" 1100    13875    90  bottom
+R3-1-8      "1206"          "unknown" 1100    15375    90  bottom
+R3-1-9      "1206"          "unknown" 1100    16875    90  bottom
+R3-1-10     "1206"          "unknown" 1100    18375    90  bottom
+R3-1-11     "1206"          "unknown" 1100    19875    90  bottom
+R3-1-12     "1206"          "unknown" 1100    21375    90  bottom
+R3-1-13     "1206"          "unknown" 1100    22875    90  bottom
+R3-1-14     "1206"          "unknown" 1100    24375    90  bottom
+R3-2-0      "1206"          "unknown" 1600    3375     90  bottom
+R3-2-1      "1206"          "unknown" 1600    4875     90  bottom
+R3-2-2      "1206"          "unknown" 1600    6375     90  bottom
+R3-2-3      "1206"          "unknown" 1600    7875     90  bottom
+R3-2-4      "1206"          "unknown" 1600    9375     90  bottom
+R3-2-5      "1206"          "unknown" 1600    10875    90  bottom
+R3-2-6      "1206"          "unknown" 1600    12375    90  bottom
+R3-2-7      "1206"          "unknown" 1600    13875    90  bottom
+R3-2-8      "1206"          "unknown" 1600    15375    90  bottom
+R3-2-9      "1206"          "unknown" 1600    16875    90  bottom
+R3-2-10     "1206"          "unknown" 1600    18375    90  bottom
+R3-2-11     "1206"          "unknown" 1600    19875    90  bottom
+R3-2-12     "1206"          "unknown" 1600    21375    90  bottom
+R3-2-13     "1206"          "unknown" 1600    22875    90  bottom
+R3-2-14     "1206"          "unknown" 1600    24375    90  bottom
+R3-3-0      "1206"          "unknown" 2100    3375     90  bottom
+R3-3-1      "1206"          "unknown" 2100    4875     90  bottom
+R3-3-2      "1206"          "unknown" 2100    6375     90  bottom
+R3-3-3      "1206"          "unknown" 2100    7875     90  bottom
+R3-3-4      "1206"          "unknown" 2100    9375     90  bottom
+R3-3-5      "1206"          "unknown" 2100    10875    90  bottom
+R3-3-6      "1206"          "unknown" 2100    12375    90  bottom
+R3-3-7      "1206"          "unknown" 2100    13875    90  bottom
+R3-3-8      "1206"          "unknown" 2100    15375    90  bottom
+R3-3-9      "1206"          "unknown" 2100    16875    90  bottom
+R3-3-10     "1206"          "unknown" 2100    18375    90  bottom
+R3-3-11     "1206"          "unknown" 2100    19875    90  bottom
+R3-3-12     "1206"          "unknown" 2100    21375    90  bottom
+R3-3-13     "1206"          "unknown" 2100    22875    90  bottom
+R3-3-14     "1206"          "unknown" 2100    24375    90  bottom
+R3-4-0      "1206"          "unknown" 2600    3375     90  bottom
+R3-4-1      "1206"          "unknown" 2600    4875     90  bottom
+R3-4-2      "1206"          "unknown" 2600    6375     90  bottom
+R3-4-3      "1206"          "unknown" 2600    7875     90  bottom
+R3-4-4      "1206"          "unknown" 2600    9375     90  bottom
+R3-4-5      "1206"          "unknown" 2600    10875    90  bottom
+R3-4-6      "1206"          "unknown" 2600    12375    90  bottom
+R3-4-7      "1206"          "unknown" 2600    13875    90  bottom
+R3-4-8      "1206"          "unknown" 2600    15375    90  bottom
+R3-4-9      "1206"          "unknown" 2600    16875    90  bottom
+R3-4-10     "1206"          "unknown" 2600    18375    90  bottom
+R3-4-11     "1206"          "unknown" 2600    19875    90  bottom
+R3-4-12     "1206"          "unknown" 2600    21375    90  bottom
+R3-4-13     "1206"          "unknown" 2600    22875    90  bottom
+R3-4-14     "1206"          "unknown" 2600    24375    90  bottom
+R3-5-0      "1206"          "unknown" 3100    3375     90  bottom
+R3-5-1      "1206"          "unknown" 3100    4875     90  bottom
+R3-5-2      "1206"          "unknown" 3100    6375     90  bottom
+R3-5-3      "1206"          "unknown" 3100    7875     90  bottom
+R3-5-4      "1206"          "unknown" 3100    9375     90  bottom
+R3-5-5      "1206"          "unknown" 3100    10875    90  bottom
+R3-5-6      "1206"          "unknown" 3100    12375    90  bottom
+R3-5-7      "1206"          "unknown" 3100    13875    90  bottom
+R3-5-8      "1206"          "unknown" 3100    15375    90  bottom
+R3-5-9      "1206"          "unknown" 3100    16875    90  bottom
+R3-5-10     "1206"          "unknown" 3100    18375    90  bottom
+R3-5-11     "1206"          "unknown" 3100    19875    90  bottom
+R3-5-12     "1206"          "unknown" 3100    21375    90  bottom
+R3-5-13     "1206"          "unknown" 3100    22875    90  bottom
+R3-5-14     "1206"          "unknown" 3100    24375    90  bottom
+R3-6-0      "1206"          "unknown" 3600    3375     90  bottom
+R3-6-1      "1206"          "unknown" 3600    4875     90  bottom
+R3-6-2      "1206"          "unknown" 3600    6375     90  bottom
+R3-6-3      "1206"          "unknown" 3600    7875     90  bottom
+R3-6-4      "1206"          "unknown" 3600    9375     90  bottom
+R3-6-5      "1206"          "unknown" 3600    10875    90  bottom
+R3-6-6      "1206"          "unknown" 3600    12375    90  bottom
+R3-6-7      "1206"          "unknown" 3600    13875    90  bottom
+R3-6-8      "1206"          "unknown" 3600    15375    90  bottom
+R3-6-9      "1206"          "unknown" 3600    16875    90  bottom
+R3-6-10     "1206"          "unknown" 3600    18375    90  bottom
+R3-6-11     "1206"          "unknown" 3600    19875    90  bottom
+R3-6-12     "1206"          "unknown" 3600    21375    90  bottom
+R3-6-13     "1206"          "unknown" 3600    22875    90  bottom
+R3-6-14     "1206"          "unknown" 3600    24375    90  bottom
+R3-7-0      "1206"          "unknown" 4100    3375     90  bottom
+R3-7-1      "1206"          "unknown" 4100    4875     90  bottom
+R3-7-2      "1206"          "unknown" 4100    6375     90  bottom
+R3-7-3      "1206"          "unknown" 4100    7875     90  bottom
+R3-7-4      "1206"          "unknown" 4100    9375     90  bottom
+R3-7-5      "1206"          "unknown" 4100    10875    90  bottom
+R3-7-6      "1206"          "unknown" 4100    12375    90  bottom
+R3-7-7      "1206"          "unknown" 4100    13875    90  bottom
+R3-7-8      "1206"          "unknown" 4100    15375    90  bottom
+R3-7-9      "1206"          "unknown" 4100    16875    90  bottom
+R3-7-10     "1206"          "unknown" 4100    18375    90  bottom
+R3-7-11     "1206"          "unknown" 4100    19875    90  bottom
+R3-7-12     "1206"          "unknown" 4100    21375    90  bottom
+R3-7-13     "1206"          "unknown" 4100    22875    90  bottom
+R3-7-14     "1206"          "unknown" 4100    24375    90  bottom
+R3-8-0      "1206"          "unknown" 4600    3375     90  bottom
+R3-8-1      "1206"          "unknown" 4600    4875     90  bottom
+R3-8-2      "1206"          "unknown" 4600    6375     90  bottom
+R3-8-3      "1206"          "unknown" 4600    7875     90  bottom
+R3-8-4      "1206"          "unknown" 4600    9375     90  bottom
+R3-8-5      "1206"          "unknown" 4600    10875    90  bottom
+R3-8-6      "1206"          "unknown" 4600    12375    90  bottom
+R3-8-7      "1206"          "unknown" 4600    13875    90  bottom
+R3-8-8      "1206"          "unknown" 4600    15375    90  bottom
+R3-8-9      "1206"          "unknown" 4600    16875    90  bottom
+R3-8-10     "1206"          "unknown" 4600    18375    90  bottom
+R3-8-11     "1206"          "unknown" 4600    19875    90  bottom
+R3-8-12     "1206"          "unknown" 4600    21375    90  bottom
+R3-8-13     "1206"          "unknown" 4600    22875    90  bottom
+R3-8-14     "1206"          "unknown" 4600    24375    90  bottom
+R3-9-0      "1206"          "unknown" 5100    3375     90  bottom
+R3-9-1      "1206"          "unknown" 5100    4875     90  bottom
+R3-9-2      "1206"          "unknown" 5100    6375     90  bottom
+R3-9-3      "1206"          "unknown" 5100    7875     90  bottom
+R3-9-4      "1206"          "unknown" 5100    9375     90  bottom
+R3-9-5      "1206"          "unknown" 5100    10875    90  bottom
+R3-9-6      "1206"          "unknown" 5100    12375    90  bottom
+R3-9-7      "1206"          "unknown" 5100    13875    90  bottom
+R3-9-8      "1206"          "unknown" 5100    15375    90  bottom
+R3-9-9      "1206"          "unknown" 5100    16875    90  bottom
+R3-9-10     "1206"          "unknown" 5100    18375    90  bottom
+R3-9-11     "1206"          "unknown" 5100    19875    90  bottom
+R3-9-12     "1206"          "unknown" 5100    21375    90  bottom
+R3-9-13     "1206"          "unknown" 5100    22875    90  bottom
+R3-9-14     "1206"          "unknown" 5100    24375    90  bottom
+R3-10-0     "1206"          "unknown" 5600    3375     90  bottom
+R3-10-1     "1206"          "unknown" 5600    4875     90  bottom
+R3-10-2     "1206"          "unknown" 5600    6375     90  bottom
+R3-10-3     "1206"          "unknown" 5600    7875     90  bottom
+R3-10-4     "1206"          "unknown" 5600    9375     90  bottom
+R3-10-5     "1206"          "unknown" 5600    10875    90  bottom
+R3-10-6     "1206"          "unknown" 5600    12375    90  bottom
+R3-10-7     "1206"          "unknown" 5600    13875    90  bottom
+R3-10-8     "1206"          "unknown" 5600    15375    90  bottom
+R3-10-9     "1206"          "unknown" 5600    16875    90  bottom
+R3-10-10    "1206"          "unknown" 5600    18375    90  bottom
+R3-10-11    "1206"          "unknown" 5600    19875    90  bottom
+R3-10-12    "1206"          "unknown" 5600    21375    90  bottom
+R3-10-13    "1206"          "unknown" 5600    22875    90  bottom
+R3-10-14    "1206"          "unknown" 5600    24375    90  bottom
+R3-11-0     "1206"          "unknown" 6100    3375     90  bottom
+R3-11-1     "1206"          "unknown" 6100    4875     90  bottom
+R3-11-2     "1206"          "unknown" 6100    6375     90  bottom
+R3-11-3     "1206"          "unknown" 6100    7875     90  bottom
+R3-11-4     "1206"          "unknown" 6100    9375     90  bottom
+R3-11-5     "1206"          "unknown" 6100    10875    90  bottom
+R3-11-6     "1206"          "unknown" 6100    12375    90  bottom
+R3-11-7     "1206"          "unknown" 6100    13875    90  bottom
+R3-11-8     "1206"          "unknown" 6100    15375    90  bottom
+R3-11-9     "1206"          "unknown" 6100    16875    90  bottom
+R3-11-10    "1206"          "unknown" 6100    18375    90  bottom
+R3-11-11    "1206"          "unknown" 6100    19875    90  bottom
+R3-11-12    "1206"          "unknown" 6100    21375    90  bottom
+R3-11-13    "1206"          "unknown" 6100    22875    90  bottom
+R3-11-14    "1206"          "unknown" 6100    24375    90  bottom
+R3-12-0     "1206"          "unknown" 6600    3375     90  bottom
+R3-12-1     "1206"          "unknown" 6600    4875     90  bottom
+R3-12-2     "1206"          "unknown" 6600    6375     90  bottom
+R3-12-3     "1206"          "unknown" 6600    7875     90  bottom
+R3-12-4     "1206"          "unknown" 6600    9375     90  bottom
+R3-12-5     "1206"          "unknown" 6600    10875    90  bottom
+R3-12-6     "1206"          "unknown" 6600    12375    90  bottom
+R3-12-7     "1206"          "unknown" 6600    13875    90  bottom
+R3-12-8     "1206"          "unknown" 6600    15375    90  bottom
+R3-12-9     "1206"          "unknown" 6600    16875    90  bottom
+R3-12-10    "1206"          "unknown" 6600    18375    90  bottom
+R3-12-11    "1206"          "unknown" 6600    19875    90  bottom
+R3-12-12    "1206"          "unknown" 6600    21375    90  bottom
+R3-12-13    "1206"          "unknown" 6600    22875    90  bottom
+R3-12-14    "1206"          "unknown" 6600    24375    90  bottom
+R3-13-0     "1206"          "unknown" 7100    3375     90  bottom
+R3-13-1     "1206"          "unknown" 7100    4875     90  bottom
+R3-13-2     "1206"          "unknown" 7100    6375     90  bottom
+R3-13-3     "1206"          "unknown" 7100    7875     90  bottom
+R3-13-4     "1206"          "unknown" 7100    9375     90  bottom
+R3-13-5     "1206"          "unknown" 7100    10875    90  bottom
+R3-13-6     "1206"          "unknown" 7100    12375    90  bottom
+R3-13-7     "1206"          "unknown" 7100    13875    90  bottom
+R3-13-8     "1206"          "unknown" 7100    15375    90  bottom
+R3-13-9     "1206"          "unknown" 7100    16875    90  bottom
+R3-13-10    "1206"          "unknown" 7100    18375    90  bottom
+R3-13-11    "1206"          "unknown" 7100    19875    90  bottom
+R3-13-12    "1206"          "unknown" 7100    21375    90  bottom
+R3-13-13    "1206"          "unknown" 7100    22875    90  bottom
+R3-13-14    "1206"          "unknown" 7100    24375    90  bottom
+R3-14-0     "1206"          "unknown" 7600    3375     90  bottom
+R3-14-1     "1206"          "unknown" 7600    4875     90  bottom
+R3-14-2     "1206"          "unknown" 7600    6375     90  bottom
+R3-14-3     "1206"          "unknown" 7600    7875     90  bottom
+R3-14-4     "1206"          "unknown" 7600    9375     90  bottom
+R3-14-5     "1206"          "unknown" 7600    10875    90  bottom
+R3-14-6     "1206"          "unknown" 7600    12375    90  bottom
+R3-14-7     "1206"          "unknown" 7600    13875    90  bottom
+R3-14-8     "1206"          "unknown" 7600    15375    90  bottom
+R3-14-9     "1206"          "unknown" 7600    16875    90  bottom
+R3-14-10    "1206"          "unknown" 7600    18375    90  bottom
+R3-14-11    "1206"          "unknown" 7600    19875    90  bottom
+R3-14-12    "1206"          "unknown" 7600    21375    90  bottom
+R3-14-13    "1206"          "unknown" 7600    22875    90  bottom
+R3-14-14    "1206"          "unknown" 7600    24375    90  bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_tabulate-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_tabulate-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..8c0e150
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_x_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..8c0e150
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/panelize_y_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
+Error: panelize_xyrs: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/process_comment-pcb_example1.xy b/utils/tests/gxyrs/outputs/process_comment-pcb_example1.xy
new file mode 100644
index 0000000..92a695a
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/process_comment-pcb_example1.xy
@@ -0,0 +1,43 @@
+#This line is a comment
+#This line is a comment
+#This line is a comment
+#This line is a comment
+#This line is a comment
+#This line is a comment
+#This line is a comment
+#This line is a comment
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/process_comment-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/process_comment-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..cf4c991
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_bad_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
+Error: rotate_comp: wrong column argument: 6d.
diff --git a/utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..b806f02
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_bad_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
+Error: rotate_comp: wrong column argument: d6.
diff --git a/utils/tests/gxyrs/outputs/rotate_case_insensitive-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_case_insensitive-pcb_example1.xy
new file mode 100644
index 0000000..6fe78d2
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_case_insensitive-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,270,top
+R5,"ACY1000","unknown",3225.00,4050.00,270,top
+R8,"ACY1000","unknown",3225.00,3825.00,90,top
+R7,"ACY1000","unknown",3225.00,3600.00,90,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,270,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,180,bottom
+R10,"1206","1k",1550.00,3300.00,90,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,270,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,270,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,180,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,180,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_case_insensitive-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_case_insensitive-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/rotate_case_sensitive-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_case_sensitive-pcb_example1.xy
new file mode 100644
index 0000000..6fe78d2
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_case_sensitive-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,270,top
+R5,"ACY1000","unknown",3225.00,4050.00,270,top
+R8,"ACY1000","unknown",3225.00,3825.00,90,top
+R7,"ACY1000","unknown",3225.00,3600.00,90,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,270,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,180,bottom
+R10,"1206","1k",1550.00,3300.00,90,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,270,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,270,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,180,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,180,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_case_sensitive-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_case_sensitive-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/rotate_check_columns_no_match-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_check_columns_no_match-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_check_columns_no_match-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_check_columns_no_match-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_check_columns_no_match-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy-error
new file mode 100644
index 0000000..d62840d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_check_columns_return_minus1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..87e7c6d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
+Error: rotate_comp: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/rotate_negative_angle-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_negative_angle-pcb_example1.xy
new file mode 100644
index 0000000..b0436cd
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_negative_angle-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,90,top
+R5,"ACY1000","unknown",3225.00,4050.00,90,top
+R8,"ACY1000","unknown",3225.00,3825.00,-90,top
+R7,"ACY1000","unknown",3225.00,3600.00,-90,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,90,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,0,bottom
+R10,"1206","1k",1550.00,3300.00,-90,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,90,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,90,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,0,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,0,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_negative_angle-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_negative_angle-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..556a5ef
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_negative_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
+Error: rotate_comp: wrong column argument: -6.
diff --git a/utils/tests/gxyrs/outputs/rotate_negative_real_angle-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_negative_real_angle-pcb_example1.xy
new file mode 100644
index 0000000..b0436cd
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_negative_real_angle-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,90,top
+R5,"ACY1000","unknown",3225.00,4050.00,90,top
+R8,"ACY1000","unknown",3225.00,3825.00,-90,top
+R7,"ACY1000","unknown",3225.00,3600.00,-90,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,90,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,0,bottom
+R10,"1206","1k",1550.00,3300.00,-90,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,90,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,90,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,0,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,0,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_negative_real_angle-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_negative_real_angle-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/rotate_real_angle-pcb_example1.xy b/utils/tests/gxyrs/outputs/rotate_real_angle-pcb_example1.xy
new file mode 100644
index 0000000..6fe78d2
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/rotate_real_angle-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,270,top
+R5,"ACY1000","unknown",3225.00,4050.00,270,top
+R8,"ACY1000","unknown",3225.00,3825.00,90,top
+R7,"ACY1000","unknown",3225.00,3600.00,90,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,270,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,180,bottom
+R10,"1206","1k",1550.00,3300.00,90,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,270,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,270,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,180,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,180,bottom
diff --git a/utils/tests/gxyrs/outputs/rotate_real_angle-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/rotate_real_angle-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..e87c6af
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_bad_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
+Error: subst_col_val: wrong column argument: 6d.
diff --git a/utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..7dd1b11
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_bad_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
+Error: subst_col_val: wrong column argument: d6.
diff --git a/utils/tests/gxyrs/outputs/subst_check_columns_match-pcb_example1.xy b/utils/tests/gxyrs/outputs/subst_check_columns_match-pcb_example1.xy
new file mode 100644
index 0000000..7abaf4d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_check_columns_match-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","100K",3225.00,4275.00,180,top
+R5,"ACY1000","100K",3225.00,4050.00,180,top
+R8,"ACY1000","100K",3225.00,3825.00,0,top
+R7,"ACY1000","100K",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","100K",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","100K",1875.00,3350.00,90,bottom
+R10,"1206","100K",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","100K",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","100K",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","100K",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","100K",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/subst_check_columns_match-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/subst_check_columns_match-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/subst_check_columns_no_match-pcb_example1.xy b/utils/tests/gxyrs/outputs/subst_check_columns_no_match-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_check_columns_no_match-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/subst_check_columns_no_match-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/subst_check_columns_no_match-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy b/utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy-error
new file mode 100644
index 0000000..d62840d
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_check_columns_return_minus1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
+Error: check_columns: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..2075c59
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
+Error: subst_col_val: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..c428ba7
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/subst_negative_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
+Error: subst_col_val: wrong column argument: -6.
diff --git a/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..24658e1
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
diff --git a/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..00f6fde
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_bad_column1_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
diff --git a/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..24658e1
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
+Error: swap_columns: wrong column argument: d2.
diff --git a/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..00f6fde
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_bad_column2_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
+Error: swap_columns: wrong column argument: 2d.
diff --git a/utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..5d891bc
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_column1_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..5d891bc
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_column2_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
+Error: swap_columns: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy-error
new file mode 100644
index 0000000..4ed6cf0
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_negative_column1_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy-error
new file mode 100644
index 0000000..4ed6cf0
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_negative_column2_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
+Error: swap_columns: wrong column argument: -1.
diff --git a/utils/tests/gxyrs/outputs/swap_columns_no_match-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_no_match-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_no_match-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_no_match-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_no_match-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/swap_columns_no_matchlist-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_no_matchlist-pcb_example1.xy
new file mode 100644
index 0000000..acd1c59
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_no_matchlist-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+"CONNECTOR-3-1",CONN4,"unknown",2000.00,3650.00,90,top
+"ACY1000",R6,"unknown",3225.00,4275.00,180,top
+"ACY1000",R5,"unknown",3225.00,4050.00,180,top
+"ACY1000",R8,"unknown",3225.00,3825.00,0,top
+"ACY1000",R7,"unknown",3225.00,3600.00,0,top
+"1206",C1,"unknown",950.00,3775.00,0,bottom
+"1206",C14,"unknown",1225.00,3600.00,90,bottom
+"1206",D6,"unknown",1125.00,3875.00,180,bottom
+"1206",C13,"unknown",1615.95,3738.19,180,bottom
+"CONNECTOR-4-1",CONN3,"unknown",2225.00,3600.00,270,top
+"1206",C12,"unknown",1438.19,3834.05,270,bottom
+"TO220",U2,"unknown",1342.50,4175.00,90,top
+"1206",D7,"unknown",1775.00,3350.00,270,bottom
+"1206",D5,"unknown",1125.00,3775.00,180,bottom
+"1206",R4,"unknown",504.14,3527.76,180,bottom
+"1206",C15,"unknown",1225.00,3350.00,90,bottom
+"TO220",U1,"unknown",407.50,4180.00,90,top
+"1206",R9,"1k",1875.00,3350.00,90,bottom
+"1206",R10,"1k",1550.00,3300.00,0,bottom
+"SO8",U3,"unknown",1075.00,3525.00,270,bottom
+"1206",R11,"10k",1375.00,3300.00,180,bottom
+"CONNECTOR-2-1",D2,"unknown",500.00,3850.00,0,top
+"1206",C2,"unknown",925.00,3350.00,270,bottom
+"1206",R2,"unknown",506.90,3751.38,180,bottom
+"CONNECTOR-2-1",CONN1,"unknown",275.00,3625.00,0,top
+"CONNECTOR-2-1",D4,"unknown",500.00,3625.00,0,top
+"1206",R1,"unknown",425.00,3375.00,90,bottom
+"1206",C11,"unknown",1336.81,3834.05,90,bottom
+"CONNECTOR-2-1",CONN2,"unknown",750.00,3625.00,0,top
+"CONNECTOR-2-1",S2,"unknown",750.00,3850.00,180,top
+"CONNECTOR-2-1",S1,"unknown",275.00,3850.00,0,top
+"CONNECTOR-2-1",D3,"unknown",750.00,3350.00,0,top
+"SO16",U4,"unknown",1500.00,3525.00,90,bottom
+"CONNECTOR-2-1",D1,"unknown",275.00,3350.00,0,top
+"1206",R3,"unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_no_matchlist-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_no_matchlist-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/swap_columns_with_match-pcb_example1.xy b/utils/tests/gxyrs/outputs/swap_columns_with_match-pcb_example1.xy
new file mode 100644
index 0000000..4baaba0
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/swap_columns_with_match-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+"ACY1000",R6,"unknown",3225.00,4275.00,180,top
+"ACY1000",R5,"unknown",3225.00,4050.00,180,top
+"ACY1000",R8,"unknown",3225.00,3825.00,0,top
+"ACY1000",R7,"unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+"1206",R4,"unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+"1206",R9,"1k",1875.00,3350.00,90,bottom
+"1206",R10,"1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+"1206",R11,"10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+"1206",R2,"unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+"1206",R1,"unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+"1206",R3,"unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/swap_columns_with_match-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/swap_columns_with_match-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy b/utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy-error
new file mode 100644
index 0000000..7f984fd
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_bad_column_number1-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
+Error: translate_col_val: wrong column argument: 4d.
diff --git a/utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy b/utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy-error
new file mode 100644
index 0000000..b7829f3
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_bad_column_number2-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
+Error: translate_col_val: wrong column argument: d4.
diff --git a/utils/tests/gxyrs/outputs/translate_column_change_R10_value-pcb_example1.xy b/utils/tests/gxyrs/outputs/translate_column_change_R10_value-pcb_example1.xy
new file mode 100644
index 0000000..05027e2
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_column_change_R10_value-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206",1K,1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/translate_column_change_R10_value-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/translate_column_change_R10_value-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/translate_column_change_R10_value_case_insensitive-pcb_example1.xy b/utils/tests/gxyrs/outputs/translate_column_change_R10_value_case_insensitive-pcb_example1.xy
new file mode 100644
index 0000000..6d4deaa
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_column_change_R10_value_case_insensitive-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206",1kilohms,1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/translate_column_change_R10_value_case_insensitive-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/translate_column_change_R10_value_case_insensitive-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/translate_column_change_all_value_plus_k-pcb_example1.xy b/utils/tests/gxyrs/outputs/translate_column_change_all_value_plus_k-pcb_example1.xy
new file mode 100644
index 0000000..867ce82
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_column_change_all_value_plus_k-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206",1K,1875.00,3350.00,90,bottom
+R10,"1206",1K,1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206",10K,1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/translate_column_change_all_value_plus_k-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/translate_column_change_all_value_plus_k-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/translate_column_no_match1-pcb_example1.xy b/utils/tests/gxyrs/outputs/translate_column_no_match1-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_column_no_match1-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/translate_column_no_match1-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/translate_column_no_match1-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/translate_column_no_match2-pcb_example1.xy b/utils/tests/gxyrs/outputs/translate_column_no_match2-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_column_no_match2-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/translate_column_no_match2-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/translate_column_no_match2-pcb_example1.xy-error
new file mode 100644
index 0000000..e69de29
diff --git a/utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy b/utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy-error
new file mode 100644
index 0000000..a26d9ad
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_column_number_too_high-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
+Error: translate_col_val: Element number (100) is not within (0..7).
diff --git a/utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy b/utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy
new file mode 100644
index 0000000..ee9854b
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy
@@ -0,0 +1,43 @@
+# $Id$
+# PcbXY Version 1.0
+# Date: Sat Sep  6 14:29:26 2008 UTC
+# Author: 
+# Title: (unknown) - PCB X-Y
+# RefDes, Description, Value, X, Y, rotation, top/bottom
+# X,Y in mils.  rotation in degrees.
+# --------------------------------------------
+CONN4,"CONNECTOR-3-1","unknown",2000.00,3650.00,90,top
+R6,"ACY1000","unknown",3225.00,4275.00,180,top
+R5,"ACY1000","unknown",3225.00,4050.00,180,top
+R8,"ACY1000","unknown",3225.00,3825.00,0,top
+R7,"ACY1000","unknown",3225.00,3600.00,0,top
+C1,"1206","unknown",950.00,3775.00,0,bottom
+C14,"1206","unknown",1225.00,3600.00,90,bottom
+D6,"1206","unknown",1125.00,3875.00,180,bottom
+C13,"1206","unknown",1615.95,3738.19,180,bottom
+CONN3,"CONNECTOR-4-1","unknown",2225.00,3600.00,270,top
+C12,"1206","unknown",1438.19,3834.05,270,bottom
+U2,"TO220","unknown",1342.50,4175.00,90,top
+D7,"1206","unknown",1775.00,3350.00,270,bottom
+D5,"1206","unknown",1125.00,3775.00,180,bottom
+R4,"1206","unknown",504.14,3527.76,180,bottom
+C15,"1206","unknown",1225.00,3350.00,90,bottom
+U1,"TO220","unknown",407.50,4180.00,90,top
+R9,"1206","1k",1875.00,3350.00,90,bottom
+R10,"1206","1k",1550.00,3300.00,0,bottom
+U3,"SO8","unknown",1075.00,3525.00,270,bottom
+R11,"1206","10k",1375.00,3300.00,180,bottom
+D2,"CONNECTOR-2-1","unknown",500.00,3850.00,0,top
+C2,"1206","unknown",925.00,3350.00,270,bottom
+R2,"1206","unknown",506.90,3751.38,180,bottom
+CONN1,"CONNECTOR-2-1","unknown",275.00,3625.00,0,top
+D4,"CONNECTOR-2-1","unknown",500.00,3625.00,0,top
+R1,"1206","unknown",425.00,3375.00,90,bottom
+C11,"1206","unknown",1336.81,3834.05,90,bottom
+CONN2,"CONNECTOR-2-1","unknown",750.00,3625.00,0,top
+S2,"CONNECTOR-2-1","unknown",750.00,3850.00,180,top
+S1,"CONNECTOR-2-1","unknown",275.00,3850.00,0,top
+D3,"CONNECTOR-2-1","unknown",750.00,3350.00,0,top
+U4,"SO16","unknown",1500.00,3525.00,90,bottom
+D1,"CONNECTOR-2-1","unknown",275.00,3350.00,0,top
+R3,"1206","unknown",600.00,3375.00,90,bottom
diff --git a/utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy-error b/utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy-error
new file mode 100644
index 0000000..5f213ba
--- /dev/null
+++ b/utils/tests/gxyrs/outputs/translate_negative_column_number-pcb_example1.xy-error
@@ -0,0 +1,70 @@
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
+Error: translate_col_val: wrong column argument: -4.
diff --git a/utils/tests/gxyrs/run_tests.sh b/utils/tests/gxyrs/run_tests.sh
new file mode 100755
index 0000000..a508c17
--- /dev/null
+++ b/utils/tests/gxyrs/run_tests.sh
@@ -0,0 +1,249 @@
+#!/bin/sh
+
+# Copyright (C) 2008 Carlos Nieves Onega
+#    adapted from refdes_renum test suite by Dan McMahill.
+# Copyright (C) 2008 other contributors
+#                        (see ChangeLog or SCM history for details)
+ 
+# This file is part of gxyrs.
+
+# 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, version 2
+# of the License.
+
+# 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.
+
+regen=no
+
+usage() {
+cat << EOF
+
+$0 -- Testsuite program for refdes_renum
+
+Usage
+
+  $0 [-h | --help]
+  $0 [-r | --regen] [test1 [test2 [....]]]
+
+Options
+
+  -h | --help     Prints this help message and exits.
+
+  -r | --regen    Regenerates the reference files.  If you use
+                  this option, YOU MUST HAND VERIFY THE RESULTS
+                  BEFORE COMMITTING to the repository.
+
+Description
+
+$0 reads a file, tests.list,  describing tests to run on geda_filter.
+If no specific test is specified on the $0 command line, then all 
+tests are run.
+
+Examples
+
+$0
+$0 --regen new_test 
+
+EOF
+}
+while test -n "$1"
+do
+    case "$1"
+    in
+
+    -h|--help)
+	usage
+	exit 0
+	;;
+
+    -r|--regen)
+	# regenerate the 'golden' output files.  Use this with caution.
+	# In particular, all differences should be noted and understood.
+	regen=yes
+	shift
+	;;
+
+    -*)
+	echo "unknown option: $1"
+	usage
+	exit 1
+	;;
+
+    *)
+	break
+	;;
+
+    esac
+done
+
+
+# make sure we have the right paths when running this from inside the
+# source tree and also from outside the source tree.
+here=`pwd`
+srcdir=${srcdir:-$here}
+srcdir=`cd $srcdir && pwd`
+
+top_srcdir=${top_srcdir:-$here/../../..}
+top_srcdir=`cd $top_srcdir && pwd`
+
+# the perl program
+PERL=${PERL:-perl}
+
+rundir=${here}/run
+
+GOLDEN_DIR=${srcdir}/outputs
+INPUT_DIR=${srcdir}/inputs
+
+
+TESTLIST=${srcdir}/tests.list
+
+if test ! -f $TESTLIST ; then
+    echo "ERROR: ($0)  Test list $TESTLIST does not exist"
+    exit 1
+fi
+
+# fail/pass/total counts
+fail=0
+pass=0
+skip=0
+tot=0
+
+if test -z "$1" ; then
+    all_tests=`awk 'BEGIN{FS="|"} /^#/{next} /^[ \t]*$/{next} {print $1}' $TESTLIST | sed 's; ;;g'`
+else
+    all_tests=$*
+fi
+
+cat << EOF
+
+Starting tests in $here
+srcdir:     $srcdir
+top_srcdir: $top_srcdir
+INPUT_DIR:  ${INPUT_DIR}
+GOLDEN_DIR: ${GOLDEN_DIR}
+all_tests:
+
+${all_tests}
+
+EOF
+
+for t in $all_tests ; do
+
+    # strip any leading garbage
+    t=`echo $t | sed 's;^\*;;g'`
+
+    # figure out what files we need to copy for this test and what
+    # arguments to feed refdes_renum
+    files=`grep "^[ \t]*${t}[ \t]*|" $TESTLIST | awk 'BEGIN{FS="|"} {print $2}'`
+    adjust_file=`grep "^[ \t]*${t}[ \t]*|" $TESTLIST | awk 'BEGIN{FS="|"} {print $3}'`
+    args=`grep "^[ \t]*${t}[ \t]*|" $TESTLIST | awk 'BEGIN{FS="|"} {print $4}'`
+    code=`grep "^[ \t]*${t}[ \t]*|" $TESTLIST | awk 'BEGIN{FS="|"} {print $5}'`
+    out_file='out.txt'
+    error_file='error.txt'
+    if test "X$code" = "X" ; then
+	code=0
+    fi
+
+
+    tot=`expr $tot + 1`
+
+    # create temporary run directory
+    if test ! -d $rundir ; then
+	mkdir -p $rundir
+    fi
+
+    # Create the files needed
+    if test ! -z "$files" ; then
+	for f in $files $adjust_file; do
+	    cp ${INPUT_DIR}/${f} ${rundir}
+	    chmod 644 ${rundir}/${f}
+	done
+    fi
+    
+    # run gxyrs
+    #
+    
+    if test "X$adjust_file" = "X" -o "X$adjust_file" = "X " ; then
+	command="cd ${rundir} && ${PERL} -w ${top_srcdir}/utils/gxyrs/gxyrs $args $files --output $out_file 2> $error_file"
+    else
+	command="cd ${rundir} && ${PERL} -w ${top_srcdir}/utils/gxyrs/gxyrs $args $files --adjust $adjust_file --output $out_file 2> $error_file"
+    fi
+    echo "Running test ${t}"
+    echo $command
+    eval $command
+    rc=$?
+    if test $rc -ne $code ; then
+	echo "FAILED:  gxyrs returned $rc which did not match the expected $code"
+	fail=`expr $fail + 1`
+	continue
+    fi
+
+    good=1
+    bad=0
+    soso=0
+    for f in ${files} ; do
+	ref=${GOLDEN_DIR}/${t}-${f}
+	out=${rundir}/$out_file
+	ref_error=${GOLDEN_DIR}/${t}-${f}-error
+	error=${rundir}/$error_file
+
+	if test "X$regen" = "Xyes" ; then
+	    cp ${out} ${ref}
+	    echo "Regenerated ${ref}"
+	    cp ${error} ${ref_error}
+	    echo "Regenerated ${ref_error}"
+	elif test -f ${ref} ; then
+	    if diff -w ${ref} ${out} >/dev/null ; then
+		if diff -w ${ref_error} ${error} >/dev/null ; then
+		    echo "PASS"
+		else
+		    echo "FAILED:  See diff -w ${ref_error} ${error}"
+		    fail=`expr $fail + 1`
+		    bad=1
+		    good=0
+	    fi
+	    else
+		echo "FAILED:  See diff -w ${ref} ${out}"
+		fail=`expr $fail + 1`
+		bad=1
+		good=0
+	    fi
+	else
+	    echo "No reference file.  Skipping"
+	    good=0
+	    soso=1
+	fi
+    done
+    if test $soso -ne 0 ; then
+	good=0
+	bad=0
+    fi
+    pass=`expr $pass + $good`
+    fail=`expr $fail + $bad`
+    skip=`expr $skip + $soso`
+
+    cd $here
+    
+    # clean up the rundirectory
+    rm -fr ${rundir}
+
+done
+
+echo "Passed $pass, failed $fail, skipped $skip out of $tot tests."
+
+rc=0
+if test $pass -ne $tot ; then
+    rc=`expr $tot - $pass`
+
+fi
+
+exit $rc
diff --git a/utils/tests/gxyrs/tests.list b/utils/tests/gxyrs/tests.list
new file mode 100644
index 0000000..d22d9a9
--- /dev/null
+++ b/utils/tests/gxyrs/tests.list
@@ -0,0 +1,191 @@
+# $Id$
+#
+#
+# Format:
+#
+# test_name | input file | adjust file| extra flags to pass to gxyrs | return code if non-zero expected
+#
+
+
+# -----------------------------------------
+# Do nothing
+# -----------------------------------------
+
+do_nothing_tabulated | pcb_example1.xy | do_nothing.pl | --tabulate |1
+do_nothing | pcb_example1.xy | do_nothing.pl | | 1
+
+# -----------------------------------------
+# Tests for match subroutine in gxyrs package.
+# -----------------------------------------
+match_column_is_not_number| pcb_example1.xy | | --eval "return check_columns 'd1', 'R[0-9]+'" | 255
+match_column_is_not_number2| pcb_example1.xy | | --eval "return check_columns '1d', 'R[0-9]+'" | 255
+match_column_is_real| pcb_example1.xy | | --eval "return check_columns '1.1', 'R[0-9]+'" | 255
+match_column_is_negative| pcb_example1.xy | | --eval "return check_columns '-1', 'R[0-9]+'" | 255
+match_column_is_too_high| pcb_example1.xy | | --eval "return check_columns '100', 'R[0-9]+'" | 255
+match_column_insensitive1| pcb_example2.xy | | --caseinsensitive --eval "return check_columns 1, 'R[0-9]+'" | 1
+match_column_insensitive2| pcb_example2.xy | | --caseinsensitive --eval "return check_columns 1, 'r[0-9]+'" | 1
+match_column_insensitive3| pcb_example1.xy | | --caseinsensitive --eval "return check_columns 1, 'R[0-9]+'" | 1
+match_column_insensitive4| pcb_example1.xy | | --caseinsensitive --eval "return check_columns 1, 'r[0-9]+'" | 1
+match_column_sensitive1| pcb_example1.xy | | --eval "return check_columns 1, 'r[0-9]+'" | 0
+match_column_sensitive2| pcb_example1.xy | | --eval "return check_columns 1, 'R[0-9]+'" | 1
+match_column_sensitive3| pcb_example2.xy | | --eval "return check_columns 1, 'R[0-9]+'" | 0
+match_column_sensitive4| pcb_example2.xy | | --eval "return check_columns 1, 'r[0-9]+'" | 1
+match_no_args| pcb_example1.xy | | --caseinsensitive --eval "return check_columns " | 1
+
+# -----------------------------------------
+# Tests for del_line subroutine in gxyrs package.
+# -----------------------------------------
+del_case_sensitive1 | pcb_example1.xy | | --eval "return del_line 1, 'R[0-9]+'"| 1
+del_case_sensitive2 | pcb_example2.xy | | --eval "return del_line 1, 'R[0-9]+'"| 0
+del_case_sensitive3 | pcb_example1.xy | | --eval "return del_line 1, 'r[0-9]+'"| 0
+del_case_sensitive4 | pcb_example2.xy | | --eval "return del_line 1, 'r[0-9]+'"| 1
+del_case_insensitive1 | pcb_example1.xy | | --caseinsensitive --eval "return del_line 1, 'r[0-9]+'"| 1
+del_case_insensitive2 | pcb_example2.xy | | --caseinsensitive --eval "return del_line 1, 'R[0-9]+'"| 1
+del_check_columns_return_minus1 | pcb_example1.xy | | --eval "return del_line -1, 'r[0-9]+'" | 255
+del_check_columns_no_match | pcb_example1.xy | | --eval "return del_line 1, 'component[0-9]+'" | 0
+
+# -----------------------------------------
+# Tests for rotate subroutine in gxyrs package.
+# -----------------------------------------
+rotate_case_sensitive | pcb_example1.xy | | --eval "return rotate_comp 6, 90, 1, 'R[0-9]+'"| 1
+rotate_case_insensitive | pcb_example1.xy | | --caseinsensitive --eval "return rotate_comp 6, 90, 1, 'r[0-9]+'"| 1
+rotate_check_columns_return_minus1 | pcb_example1.xy | | --eval "return rotate_comp 6, 90, -1, 'r[0-9]+'" | 255
+rotate_check_columns_no_match | pcb_example1.xy | | --eval "return rotate_comp 6, 90, 1, 'component[0-9]+'" | 0
+rotate_real_angle | pcb_example1.xy | | --eval "return rotate_comp 6, 90.0, 1, 'R[0-9]+'"| 1
+rotate_negative_real_angle | pcb_example1.xy | | --eval "return rotate_comp 6, -90.0, 1, 'R[0-9]+'"| 1
+rotate_negative_angle | pcb_example1.xy | | --eval "return rotate_comp 6, -90, 1, 'R[0-9]+'"| 1
+rotate_bad_column_number1 | pcb_example1.xy | | --eval "return rotate_comp '6d', -90, 1, 'R[0-9]+'"| 255
+rotate_bad_column_number2 | pcb_example1.xy | | --eval "return rotate_comp 'd6', -90, 1, 'R[0-9]+'"| 255
+rotate_negative_column_number | pcb_example1.xy | | --eval "return rotate_comp -6, -90, 1, 'R[0-9]+'"| 255
+rotate_column_number_too_high | pcb_example1.xy | | --eval "return rotate_comp 100, -90, 1, 'R[0-9]+'"| 255
+
+# -----------------------------------------
+# Tests for subst_col_val subroutine in gxyrs package.
+# -----------------------------------------
+subst_bad_column_number1 | pcb_example1.xy | | --eval "return subst_col_val '6d', -90, 1, 'R[0-9]+'"| 255
+subst_bad_column_number2 | pcb_example1.xy | | --eval "return subst_col_val 'd6', -90, 1, 'R[0-9]+'"| 255
+subst_negative_column_number | pcb_example1.xy | | --eval "return subst_col_val -6, -90, 1, 'R[0-9]+'"| 255
+subst_column_number_too_high | pcb_example1.xy | | --eval "return subst_col_val 100, -90, 1, 'R[0-9]+'"| 255
+subst_check_columns_return_minus1 | pcb_example1.xy | | --eval "return subst_col_val 3, '\"100K\"', '-1', 'r[0-9]+'" | 255
+subst_check_columns_no_match | pcb_example1.xy | | --eval "return subst_col_val 3, '\"100K\"', 1, 'component[0-9]+'" | 0
+subst_check_columns_match | pcb_example1.xy | | --eval "return subst_col_val 3, '\"100K\"', 1, 'R[0-9]+'" | 1
+
+# -----------------------------------------
+# Tests for change_col_units subroutine in gxyrs package.
+# -----------------------------------------
+change_units_bad_column_number1 | pcb_example1.xy | | --eval "return change_col_units 'mm', '4d'"| 255
+change_units_bad_column_number2 | pcb_example1.xy | | --eval "return change_col_units 'mm', 'd4'"| 255
+change_units_negative_column_number | pcb_example1.xy | | --eval "return change_col_units 'mm', -4"| 255
+change_units_column_number_too_high | pcb_example1.xy | | --eval "return change_col_units 'mm', 100"| 255
+change_units_no_units | pcb_example1.xy | | --eval "return change_col_units 'mm', 4"| 254
+change_units_to_mm_6col_tabulated | protel_example1_mil.txt | | --tabulate --eval "return change_col_units 'mm', 3, 4, 5, 6, 7, 8"| 254
+change_units_to_mm_6col_tabulated_no_title | protel_example1_mil.txt | | --tabulate --eval "if (\$LINE_NUMBER != \$TITLE_LINE) {return change_col_units 'mm', 3, 4, 5, 6, 7, 8}"| 1
+change_units_already_done | protel_example1_mil.txt | | --eval "return change_col_units 'mil', 3"| 254
+change_units_already_done_no_title | protel_example1_mil.txt | | --eval "if (\$LINE_NUMBER != \$TITLE_LINE) {return change_col_units 'mil', 3}"| 0
+change_units_units_not_supported | protel_example1_mil.txt | | --eval "return change_col_units 'gallons', 3"| 255
+change_units_to_mm | protel_example1_mil.txt | | --eval "return change_col_units 'mm', 3"| 254
+change_units_to_mm_no_title | protel_example1_mil.txt | | --eval "if (\$LINE_NUMBER != \$TITLE_LINE) {return change_col_units 'mm', 3}"| 1
+change_units_to_mil | protel_example1_mm.txt| | --eval "if (\$LINE_NUMBER != \$TITLE_LINE) {return change_col_units 'mil', 3}"| 1
+change_units_to_mm_2cols | protel_example1_mil.txt | | --eval "if (\$LINE_NUMBER != \$TITLE_LINE) {return change_col_units 'mm', 3, 4}"| 1
+change_units_to_mil_2cols | protel_example1_mm.txt | | --eval "if (\$LINE_NUMBER != \$TITLE_LINE) {return change_col_units 'mil', 3, 4}"| 1
+
+# -----------------------------------------
+# Tests for add_number_to_col subroutine in gxyrs package.
+# -----------------------------------------
+offset_bad_column_number1 | pcb_example1.xy | | --eval "return add_number_to_col '4d', -90, 1, 'R[0-9]+'"| 255
+offset_bad_column_number2 | pcb_example1.xy | | --eval "return add_number_to_col 'd4', -90, 1, 'R[0-9]+'"| 255
+offset_negative_column_number | pcb_example1.xy | | --eval "return add_number_to_col -4, -90, 1, 'R[0-9]+'"| 255
+offset_column_number_too_high | pcb_example1.xy | | --eval "return add_number_to_col 100, -90, 1, 'R[0-9]+'"| 255
+offset_check_columns_return_minus1 | pcb_example1.xy | | --eval "return add_number_to_col 4, 100, -1, 'r[0-9]+'" | 255
+offset_check_columns_no_match | pcb_example1.xy | | --eval "return add_number_to_col 4, 100, 1, 'component[0-9]+'" | 0
+offset_check_columns_match | pcb_example1.xy | | --eval "return add_number_to_col 4, 100, 1, 'R[0-9]+'" | 1
+offset_match_negative_offset | pcb_example1.xy | | --eval "return add_number_to_col 4, -100, 1, 'R[0-9]+'" | 1
+offset_match_real_offset | pcb_example1.xy | | --eval "return add_number_to_col 4, 10.3, 1, 'R[0-9]+'" | 1
+offset_match_negative_real_offset | pcb_example1.xy | | --eval "return add_number_to_col 4, -10.3, 1, 'R[0-9]+'" | 1
+offset_match_offset_with_units_but_no_units_in_file | pcb_example1.xy | | --eval "return add_number_to_col 4, '-10.3mm', 1, 'R[0-9]+'" | 255
+
+# -----------------------------------------
+# Tests for translate_col_val subroutine in gxyrs package.
+# -----------------------------------------
+translate_bad_column_number1 | pcb_example1.xy | | --eval "return translate_col_val '4d', '^.([0-9]+)k.$','sprintf(\"%dK\",$1)', 1, 'R[0-9]+'"| 255
+translate_bad_column_number2 | pcb_example1.xy | | --eval "return translate_col_val 'd4', '^.([0-9]+)k.$','sprintf(\"%dK\",$1)', 1, 'R[0-9]+'"| 255
+translate_negative_column_number | pcb_example1.xy | | --eval "return translate_col_val -4, '^.([0-9]+)k.$','sprintf(\"%dK\",$1)', 1, 'R[0-9]+'"| 255
+translate_column_number_too_high | pcb_example1.xy | | --eval "return translate_col_val 100, '^.([0-9]+)k.$','sprintf(\"%dK\",$1)', 1, 'R[0-9]+'"| 255
+translate_column_change_all_value_plus_k | pcb_example1.xy | | --eval "return translate_col_val 3, '^.([0-9]+)k.$','sprintf(\"%dK\",\$1)'"| 1
+translate_column_change_R10_value | pcb_example1.xy | | --eval "return translate_col_val 3, '^.([0-9]+)k.$','sprintf(\"%dK\",\$1)', 1, 'R10'"| 1
+translate_column_change_R10_value_case_insensitive | pcb_example1.xy | | --caseinsensitive --eval "return translate_col_val 3, '^.([0-9]+)K.$','sprintf(\"%dkilohms\",\$1)', 1, 'R10'"| 1
+translate_column_no_match1 | pcb_example1.xy | | --eval "return translate_col_val 3, '^.([0-9]+)k.$','sprintf(\"%dK\",\$1)', 1, 'R90'"| 0
+translate_column_no_match2 | pcb_example1.xy | | --eval "return translate_col_val 3, '^.([0-9]+)n.$','sprintf(\"%dnF\",\$1)', 1, 'R10'"| 0
+
+# -----------------------------------------
+# Tests for output delimiter option in gxyrs.
+# -----------------------------------------
+output_delimiter | pcb_example1.xy | | --tabulate --output-delimiter " " --eval "return 1"| 1
+
+# -----------------------------------------
+# Tests for panelize_xyrs subroutine in gxyrs package.
+# -----------------------------------------
+panelize_bad_x_column_number1 | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,'d2',\$Y_COL, \$REF_COL, ''"| 255
+panelize_bad_y_column_number1 | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,\$X_COL, 'd2', \$REF_COL, ''"| 255
+panelize_bad_ref_column_number1 | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500, \$X_COL,\$Y_COL, 'd2', ''"| 255
+panelize_bad_x_column_number2 | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,'2d',\$Y_COL, \$REF_COL, ''"| 255
+panelize_bad_y_column_number2 | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,\$X_COL,'2d', \$REF_COL, ''"| 255
+panelize_bad_ref_column_number2 | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,\$REF_COL,\$Y_COL, '2d', ''"| 255
+panelize_negative_x_column_number | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,-1,\$Y_COL, \$REF_COL, ''"| 255
+panelize_negative_y_column_number | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,\$X_COL,-1, \$REF_COL, ''"| 255
+panelize_negative_ref_column_number | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,\$X_COL,\$Y_COL, -1, ''"| 255
+panelize_x_column_number_too_high | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,100,\$Y_COL, \$REF_COL, ''"| 255
+panelize_y_column_number_too_high | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,\$X_COL,100, \$REF_COL, ''"| 255
+panelize_ref_column_number_too_high | pcb_example1.xy | | --eval "return panelize_xyrs 15,15,500,1500,\$X_COL,\$Y_COL, 100, ''"| 255
+panelize_tabulate | pcb_example1.xy | | --tabulate --output-delimiter " " --eval "return panelize_xyrs 15,15,500,1500,\$X_COL,\$Y_COL, \$REF_COL, ''"| 1
+
+# -----------------------------------------
+# Tests for multiply subroutine in gxyrs package.
+# -----------------------------------------
+multiply_bad_column_number1 | pcb_example1.xy | | --eval "return mul_col_val 'd2', 2"| 255
+multiply_bad_column_number2 | pcb_example1.xy | | --eval "return mul_col_val '2d', 2"| 255
+multiply_negative_column_number | pcb_example1.xy | | --eval "return mul_col_val -1, 2"| 255
+multiply_column_number_too_high | pcb_example1.xy | | --eval "return mul_col_val 100, 100"| 255
+multiply_real_factor | pcb_example1.xy | | --eval "return mul_col_val \$Y_COL, 2.5"| 1
+multiply_negative_real_factor | pcb_example1.xy | | --eval "return mul_col_val \$Y_COL, -2.5"| 1
+multiply_integer_factor | pcb_example1.xy | | --eval "return mul_col_val \$Y_COL, 2"| 1
+multiply_negative_integer_factor | pcb_example1.xy | | --eval "return mul_col_val \$Y_COL, -2"| 1
+multiply_with_checklist | pcb_example1.xy | | --eval "return mul_col_val \$Y_COL, -2, \$REF_COL, 'R[0-9]+'" | 1
+
+# -----------------------------------------
+# Tests for swap_columns subroutine in gxyrs package.
+# -----------------------------------------
+swap_columns_bad_column1_number1 | pcb_example1.xy | | --eval "return swap_columns 'd2', 2"| 255
+swap_columns_bad_column1_number2 | pcb_example1.xy | | --eval "return swap_columns '2d', 2"| 255
+swap_columns_negative_column1_number | pcb_example1.xy | | --eval "return swap_columns -1, 2"| 255
+swap_columns_column1_number_too_high | pcb_example1.xy | | --eval "return swap_columns 100, 1"| 255
+swap_columns_bad_column2_number1 | pcb_example1.xy | | --eval "return swap_columns 2, 'd2'"| 255
+swap_columns_bad_column2_number2 | pcb_example1.xy | | --eval "return swap_columns 2, '2d'"| 255
+swap_columns_negative_column2_number | pcb_example1.xy | | --eval "return swap_columns 2, -1"| 255
+swap_columns_column2_number_too_high | pcb_example1.xy | | --eval "return swap_columns 1, 100"| 255
+swap_columns_with_match | pcb_example1.xy | | --eval "return swap_columns 1, 2, \$REF_COL, 'R[0-9]+'"| 1
+swap_columns_no_match | pcb_example1.xy | | --eval "return swap_columns 1, 2, \$REF_COL, 'Rb[0-9]+'"| 0
+swap_columns_no_matchlist | pcb_example1.xy | | --eval "return swap_columns 1, 2"| 1
+
+# -----------------------------------------
+# Tests for insert_column subroutine in gxyrs package.
+# -----------------------------------------
+insert_column_bad_column_number1 | pcb_example1.xy | | --eval "return insert_column 'd2', 2"| 255
+insert_column_bad_column_number2 | pcb_example1.xy | | --eval "return insert_column '2d', 2"| 255
+insert_column_negative_column_number | pcb_example1.xy | | --eval "return insert_column -1, 2"| 255
+insert_column_column_number_too_high | pcb_example1.xy | | --eval "return insert_column 100, 100"| 255
+insert_column_first_pos | pcb_example1.xy | | --eval "return insert_column 0, 'new_value'"| 1
+insert_column_second_pos | pcb_example1.xy | | --eval "return insert_column 1, 'new_value'"| 1
+
+# -----------------------------------------
+# Tests if footprint field is guessed in several file formats.
+# -----------------------------------------
+footprint_report1| report1.txt | | --tabulate --eval "return subst_col_val \$FOOTPRINT_COL, '\"footprint\"'"| 1
+footprint_pcb1| pcb_example1.xy | | --tabulate --eval "return subst_col_val \$FOOTPRINT_COL, 'footprint'"| 1
+footprint_protel1| protel_example1_mil.txt | | --tabulate --eval "return subst_col_val \$FOOTPRINT_COL, 'footprint'"| 1
+
+# -----------------------------------------
+# Tests for process comment option in gxyrs.
+# -----------------------------------------
+process_comment | pcb_example1.xy | | --process-comments --eval "if (\$is_comment==1) {@LINE='#This line is a comment';return 1}"| 1
+



_______________________________________________
geda-cvs mailing list
geda-cvs@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-cvs